const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DatePeriodSelector-B7d5SXAv.js","assets/DatePeriodSelector-C3h44B1J.css"])))=>i.map(i=>d[i]);
true              &&(function polyfill() {
  const relList = document.createElement("link").relList;
  if (relList && relList.supports && relList.supports("modulepreload")) {
    return;
  }
  for (const link of document.querySelectorAll('link[rel="modulepreload"]')) {
    processPreload(link);
  }
  new MutationObserver((mutations) => {
    for (const mutation of mutations) {
      if (mutation.type !== "childList") {
        continue;
      }
      for (const node of mutation.addedNodes) {
        if (node.tagName === "LINK" && node.rel === "modulepreload")
          processPreload(node);
      }
    }
  }).observe(document, { childList: true, subtree: true });
  function getFetchOpts(link) {
    const fetchOpts = {};
    if (link.integrity) fetchOpts.integrity = link.integrity;
    if (link.referrerPolicy) fetchOpts.referrerPolicy = link.referrerPolicy;
    if (link.crossOrigin === "use-credentials")
      fetchOpts.credentials = "include";
    else if (link.crossOrigin === "anonymous") fetchOpts.credentials = "omit";
    else fetchOpts.credentials = "same-origin";
    return fetchOpts;
  }
  function processPreload(link) {
    if (link.ep)
      return;
    link.ep = true;
    const fetchOpts = getFetchOpts(link);
    fetch(link.href, fetchOpts);
  }
}());

const scriptRel = 'modulepreload';const assetsURL = function(dep) { return "/"+dep };const seen$2 = {};const __vitePreload = function preload(baseModule, deps, importerUrl) {
  let promise = Promise.resolve();
  if (true               && deps && deps.length > 0) {
    let allSettled2 = function(promises) {
      return Promise.all(
        promises.map(
          (p) => Promise.resolve(p).then(
            (value) => ({ status: "fulfilled", value }),
            (reason) => ({ status: "rejected", reason })
          )
        )
      );
    };
    const links = document.getElementsByTagName("link");
    const cspNonceMeta = document.querySelector(
      "meta[property=csp-nonce]"
    );
    const cspNonce = cspNonceMeta?.nonce || cspNonceMeta?.getAttribute("nonce");
    promise = allSettled2(
      deps.map((dep) => {
        dep = assetsURL(dep, importerUrl);
        if (dep in seen$2) return;
        seen$2[dep] = true;
        const isCss = dep.endsWith(".css");
        const cssSelector = isCss ? '[rel="stylesheet"]' : "";
        const isBaseRelative = !!importerUrl;
        if (isBaseRelative) {
          for (let i = links.length - 1; i >= 0; i--) {
            const link2 = links[i];
            if (link2.href === dep && (!isCss || link2.rel === "stylesheet")) {
              return;
            }
          }
        } else if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
          return;
        }
        const link = document.createElement("link");
        link.rel = isCss ? "stylesheet" : scriptRel;
        if (!isCss) {
          link.as = "script";
        }
        link.crossOrigin = "";
        link.href = dep;
        if (cspNonce) {
          link.setAttribute("nonce", cspNonce);
        }
        document.head.appendChild(link);
        if (isCss) {
          return new Promise((res, rej) => {
            link.addEventListener("load", res);
            link.addEventListener(
              "error",
              () => rej(new Error(`Unable to preload CSS for ${dep}`))
            );
          });
        }
      })
    );
  }
  function handlePreloadError(err) {
    const e = new Event("vite:preloadError", {
      cancelable: true
    });
    e.payload = err;
    window.dispatchEvent(e);
    if (!e.defaultPrevented) {
      throw err;
    }
  }
  return promise.then((res) => {
    for (const item of res || []) {
      if (item.status !== "rejected") continue;
      handlePreloadError(item.reason);
    }
    return baseModule().catch(handlePreloadError);
  });
};

/**
 * Copyright (c) Microsoft Corporation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const __pw_hooks_before_mount = [];
const __pw_hooks_after_mount = [];

window.__pw_hooks_before_mount = __pw_hooks_before_mount;
window.__pw_hooks_after_mount = __pw_hooks_after_mount;

const beforeMount$2 = callback => {
  __pw_hooks_before_mount.push(callback);
};

const afterMount = callback => {
  __pw_hooks_after_mount.push(callback);
};

/**
* @vue/shared v3.5.31
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
// @__NO_SIDE_EFFECTS__
function makeMap(str) {
  const map = /* @__PURE__ */ Object.create(null);
  for (const key of str.split(",")) map[key] = 1;
  return (val) => val in map;
}
const EMPTY_OBJ = false ? Object.freeze({}) : {};
const EMPTY_ARR = false ? Object.freeze([]) : [];
const NOOP = () => {
};
const NO = () => false;
const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter
(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);
const isModelListener = (key) => key.startsWith("onUpdate:");
const extend = Object.assign;
const remove = (arr, el) => {
  const i = arr.indexOf(el);
  if (i > -1) {
    arr.splice(i, 1);
  }
};
const hasOwnProperty$2 = Object.prototype.hasOwnProperty;
const hasOwn$1 = (val, key) => hasOwnProperty$2.call(val, key);
const isArray$1 = Array.isArray;
const isMap = (val) => toTypeString$1(val) === "[object Map]";
const isSet = (val) => toTypeString$1(val) === "[object Set]";
const isDate$1 = (val) => toTypeString$1(val) === "[object Date]";
const isRegExp$1 = (val) => toTypeString$1(val) === "[object RegExp]";
const isFunction$1 = (val) => typeof val === "function";
const isString$2 = (val) => typeof val === "string";
const isSymbol$1 = (val) => typeof val === "symbol";
const isObject$3 = (val) => val !== null && typeof val === "object";
const isPromise$1 = (val) => {
  return (isObject$3(val) || isFunction$1(val)) && isFunction$1(val.then) && isFunction$1(val.catch);
};
const objectToString$1 = Object.prototype.toString;
const toTypeString$1 = (value) => objectToString$1.call(value);
const toRawType = (value) => {
  return toTypeString$1(value).slice(8, -1);
};
const isPlainObject$2 = (val) => toTypeString$1(val) === "[object Object]";
const isIntegerKey = (key) => isString$2(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
const isReservedProp = /* @__PURE__ */ makeMap(
  // the leading comma is intentional so empty string "" is also included
  ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"
);
const isBuiltInDirective = /* @__PURE__ */ makeMap(
  "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"
);
const cacheStringFunction = (fn) => {
  const cache = /* @__PURE__ */ Object.create(null);
  return ((str) => {
    const hit = cache[str];
    return hit || (cache[str] = fn(str));
  });
};
const camelizeRE = /-\w/g;
const camelize = cacheStringFunction(
  (str) => {
    return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());
  }
);
const hyphenateRE = /\B([A-Z])/g;
const hyphenate = cacheStringFunction(
  (str) => str.replace(hyphenateRE, "-$1").toLowerCase()
);
const capitalize$1 = cacheStringFunction((str) => {
  return str.charAt(0).toUpperCase() + str.slice(1);
});
const toHandlerKey = cacheStringFunction(
  (str) => {
    const s = str ? `on${capitalize$1(str)}` : ``;
    return s;
  }
);
const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
const invokeArrayFns = (fns, ...arg) => {
  for (let i = 0; i < fns.length; i++) {
    fns[i](...arg);
  }
};
const def = (obj, key, value, writable = false) => {
  Object.defineProperty(obj, key, {
    configurable: true,
    enumerable: false,
    writable,
    value
  });
};
const looseToNumber = (val) => {
  const n = parseFloat(val);
  return isNaN(n) ? val : n;
};
const toNumber = (val) => {
  const n = isString$2(val) ? Number(val) : NaN;
  return isNaN(n) ? val : n;
};
let _globalThis$1;
const getGlobalThis$1 = () => {
  return _globalThis$1 || (_globalThis$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
};
const identRE = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;
function genPropsAccessExp(name) {
  return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;
}
function genCacheKey(source, options) {
  return source + JSON.stringify(
    options,
    (_, val) => typeof val === "function" ? val.toString() : val
  );
}
const PatchFlags = {
  "TEXT": 1,
  "1": "TEXT",
  "CLASS": 2,
  "2": "CLASS",
  "STYLE": 4,
  "4": "STYLE",
  "PROPS": 8,
  "8": "PROPS",
  "FULL_PROPS": 16,
  "16": "FULL_PROPS",
  "NEED_HYDRATION": 32,
  "32": "NEED_HYDRATION",
  "STABLE_FRAGMENT": 64,
  "64": "STABLE_FRAGMENT",
  "KEYED_FRAGMENT": 128,
  "128": "KEYED_FRAGMENT",
  "UNKEYED_FRAGMENT": 256,
  "256": "UNKEYED_FRAGMENT",
  "NEED_PATCH": 512,
  "512": "NEED_PATCH",
  "DYNAMIC_SLOTS": 1024,
  "1024": "DYNAMIC_SLOTS",
  "DEV_ROOT_FRAGMENT": 2048,
  "2048": "DEV_ROOT_FRAGMENT",
  "CACHED": -1,
  "-1": "CACHED",
  "BAIL": -2,
  "-2": "BAIL"
};
const PatchFlagNames = {
  [1]: `TEXT`,
  [2]: `CLASS`,
  [4]: `STYLE`,
  [8]: `PROPS`,
  [16]: `FULL_PROPS`,
  [32]: `NEED_HYDRATION`,
  [64]: `STABLE_FRAGMENT`,
  [128]: `KEYED_FRAGMENT`,
  [256]: `UNKEYED_FRAGMENT`,
  [512]: `NEED_PATCH`,
  [1024]: `DYNAMIC_SLOTS`,
  [2048]: `DEV_ROOT_FRAGMENT`,
  [-1]: `CACHED`,
  [-2]: `BAIL`
};
const ShapeFlags = {
  "ELEMENT": 1,
  "1": "ELEMENT",
  "FUNCTIONAL_COMPONENT": 2,
  "2": "FUNCTIONAL_COMPONENT",
  "STATEFUL_COMPONENT": 4,
  "4": "STATEFUL_COMPONENT",
  "TEXT_CHILDREN": 8,
  "8": "TEXT_CHILDREN",
  "ARRAY_CHILDREN": 16,
  "16": "ARRAY_CHILDREN",
  "SLOTS_CHILDREN": 32,
  "32": "SLOTS_CHILDREN",
  "TELEPORT": 64,
  "64": "TELEPORT",
  "SUSPENSE": 128,
  "128": "SUSPENSE",
  "COMPONENT_SHOULD_KEEP_ALIVE": 256,
  "256": "COMPONENT_SHOULD_KEEP_ALIVE",
  "COMPONENT_KEPT_ALIVE": 512,
  "512": "COMPONENT_KEPT_ALIVE",
  "COMPONENT": 6,
  "6": "COMPONENT"
};
const SlotFlags = {
  "STABLE": 1,
  "1": "STABLE",
  "DYNAMIC": 2,
  "2": "DYNAMIC",
  "FORWARDED": 3,
  "3": "FORWARDED"
};
const slotFlagsText = {
  [1]: "STABLE",
  [2]: "DYNAMIC",
  [3]: "FORWARDED"
};
const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol";
const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);
const isGloballyWhitelisted = isGloballyAllowed;
const range = 2;
function generateCodeFrame$1(source, start = 0, end = source.length) {
  start = Math.max(0, Math.min(start, source.length));
  end = Math.max(0, Math.min(end, source.length));
  if (start > end) return "";
  let lines = source.split(/(\r?\n)/);
  const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);
  lines = lines.filter((_, idx) => idx % 2 === 0);
  let count = 0;
  const res = [];
  for (let i = 0; i < lines.length; i++) {
    count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);
    if (count >= start) {
      for (let j = i - range; j <= i + range || end > count; j++) {
        if (j < 0 || j >= lines.length) continue;
        const line = j + 1;
        res.push(
          `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}|  ${lines[j]}`
        );
        const lineLength = lines[j].length;
        const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;
        if (j === i) {
          const pad = start - (count - (lineLength + newLineSeqLength));
          const length = Math.max(
            1,
            end > count ? lineLength - pad : end - start
          );
          res.push(`   |  ` + " ".repeat(pad) + "^".repeat(length));
        } else if (j > i) {
          if (end > count) {
            const length = Math.max(Math.min(end - count, lineLength), 1);
            res.push(`   |  ` + "^".repeat(length));
          }
          count += lineLength + newLineSeqLength;
        }
      }
      break;
    }
  }
  return res.join("\n");
}
function normalizeStyle(value) {
  if (isArray$1(value)) {
    const res = {};
    for (let i = 0; i < value.length; i++) {
      const item = value[i];
      const normalized = isString$2(item) ? parseStringStyle(item) : normalizeStyle(item);
      if (normalized) {
        for (const key in normalized) {
          res[key] = normalized[key];
        }
      }
    }
    return res;
  } else if (isString$2(value) || isObject$3(value)) {
    return value;
  }
}
const listDelimiterRE = /;(?![^(]*\))/g;
const propertyDelimiterRE = /:([^]+)/;
const styleCommentRE = /\/\*[^]*?\*\//g;
function parseStringStyle(cssText) {
  const ret = {};
  cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
    if (item) {
      const tmp = item.split(propertyDelimiterRE);
      tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
    }
  });
  return ret;
}
function stringifyStyle(styles) {
  if (!styles) return "";
  if (isString$2(styles)) return styles;
  let ret = "";
  for (const key in styles) {
    const value = styles[key];
    if (isString$2(value) || typeof value === "number") {
      const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);
      ret += `${normalizedKey}:${value};`;
    }
  }
  return ret;
}
function normalizeClass(value) {
  let res = "";
  if (isString$2(value)) {
    res = value;
  } else if (isArray$1(value)) {
    for (let i = 0; i < value.length; i++) {
      const normalized = normalizeClass(value[i]);
      if (normalized) {
        res += normalized + " ";
      }
    }
  } else if (isObject$3(value)) {
    for (const name in value) {
      if (value[name]) {
        res += name + " ";
      }
    }
  }
  return res.trim();
}
function normalizeProps(props) {
  if (!props) return null;
  let { class: klass, style } = props;
  if (klass && !isString$2(klass)) {
    props.class = normalizeClass(klass);
  }
  if (style) {
    props.style = normalizeStyle(style);
  }
  return props;
}
const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot";
const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view";
const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics";
const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr";
const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
const isBooleanAttr = /* @__PURE__ */ makeMap(
  specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
);
function includeBooleanAttr(value) {
  return !!value || value === "";
}
const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/;
const attrValidationCache = {};
function isSSRSafeAttrName(name) {
  if (attrValidationCache.hasOwnProperty(name)) {
    return attrValidationCache[name];
  }
  const isUnsafe = unsafeAttrCharRE.test(name);
  if (isUnsafe) {
    console.error(`unsafe attribute name: ${name}`);
  }
  return attrValidationCache[name] = !isUnsafe;
}
const propsToAttrMap = {
  acceptCharset: "accept-charset",
  className: "class",
  htmlFor: "for",
  httpEquiv: "http-equiv"
};
const isKnownHtmlAttr = /* @__PURE__ */ makeMap(
  `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`
);
const isKnownSvgAttr = /* @__PURE__ */ makeMap(
  `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`
);
const isKnownMathMLAttr = /* @__PURE__ */ makeMap(
  `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`
);
function isRenderableAttrValue(value) {
  if (value == null) {
    return false;
  }
  const type = typeof value;
  return type === "string" || type === "number" || type === "boolean";
}
const escapeRE = /["'&<>]/;
function escapeHtml$1(string) {
  const str = "" + string;
  const match = escapeRE.exec(str);
  if (!match) {
    return str;
  }
  let html = "";
  let escaped;
  let index;
  let lastIndex = 0;
  for (index = match.index; index < str.length; index++) {
    switch (str.charCodeAt(index)) {
      case 34:
        escaped = "&quot;";
        break;
      case 38:
        escaped = "&amp;";
        break;
      case 39:
        escaped = "&#39;";
        break;
      case 60:
        escaped = "&lt;";
        break;
      case 62:
        escaped = "&gt;";
        break;
      default:
        continue;
    }
    if (lastIndex !== index) {
      html += str.slice(lastIndex, index);
    }
    lastIndex = index + 1;
    html += escaped;
  }
  return lastIndex !== index ? html + str.slice(lastIndex, index) : html;
}
const commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;
function escapeHtmlComment(src) {
  return src.replace(commentStripRE, "");
}
const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g;
function getEscapedCssVarName(key, doubleEscape) {
  return key.replace(
    cssVarNameEscapeSymbolsRE,
    (s) => doubleEscape ? s === '"' ? '\\\\\\"' : `\\\\${s}` : `\\${s}`
  );
}
function looseCompareArrays(a, b) {
  if (a.length !== b.length) return false;
  let equal = true;
  for (let i = 0; equal && i < a.length; i++) {
    equal = looseEqual(a[i], b[i]);
  }
  return equal;
}
function looseEqual(a, b) {
  if (a === b) return true;
  let aValidType = isDate$1(a);
  let bValidType = isDate$1(b);
  if (aValidType || bValidType) {
    return aValidType && bValidType ? a.getTime() === b.getTime() : false;
  }
  aValidType = isSymbol$1(a);
  bValidType = isSymbol$1(b);
  if (aValidType || bValidType) {
    return a === b;
  }
  aValidType = isArray$1(a);
  bValidType = isArray$1(b);
  if (aValidType || bValidType) {
    return aValidType && bValidType ? looseCompareArrays(a, b) : false;
  }
  aValidType = isObject$3(a);
  bValidType = isObject$3(b);
  if (aValidType || bValidType) {
    if (!aValidType || !bValidType) {
      return false;
    }
    const aKeysCount = Object.keys(a).length;
    const bKeysCount = Object.keys(b).length;
    if (aKeysCount !== bKeysCount) {
      return false;
    }
    for (const key in a) {
      const aHasKey = a.hasOwnProperty(key);
      const bHasKey = b.hasOwnProperty(key);
      if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {
        return false;
      }
    }
  }
  return String(a) === String(b);
}
function looseIndexOf(arr, val) {
  return arr.findIndex((item) => looseEqual(item, val));
}
const isRef$1 = (val) => {
  return !!(val && val["__v_isRef"] === true);
};
const toDisplayString$1 = (val) => {
  return isString$2(val) ? val : val == null ? "" : isArray$1(val) || isObject$3(val) && (val.toString === objectToString$1 || !isFunction$1(val.toString)) ? isRef$1(val) ? toDisplayString$1(val.value) : JSON.stringify(val, replacer, 2) : String(val);
};
const replacer = (_key, val) => {
  if (isRef$1(val)) {
    return replacer(_key, val.value);
  } else if (isMap(val)) {
    return {
      [`Map(${val.size})`]: [...val.entries()].reduce(
        (entries, [key, val2], i) => {
          entries[stringifySymbol(key, i) + " =>"] = val2;
          return entries;
        },
        {}
      )
    };
  } else if (isSet(val)) {
    return {
      [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))
    };
  } else if (isSymbol$1(val)) {
    return stringifySymbol(val);
  } else if (isObject$3(val) && !isArray$1(val) && !isPlainObject$2(val)) {
    return String(val);
  }
  return val;
};
const stringifySymbol = (v, i = "") => {
  var _a;
  return (
    // Symbol.description in es2019+ so we need to cast here to pass
    // the lib: es2016 check
    isSymbol$1(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v
  );
};
function normalizeCssVarValue(value) {
  if (value == null) {
    return "initial";
  }
  if (typeof value === "string") {
    return value === "" ? " " : value;
  }
  if (typeof value !== "number" || !Number.isFinite(value)) {
    if (false) {
      console.warn(
        "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:",
        value
      );
    }
  }
  return String(value);
}

/**
* @vue/reactivity v3.5.31
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
function warn$3(msg, ...args) {
  console.warn(`[Vue warn] ${msg}`, ...args);
}
let activeEffectScope;
class EffectScope {
  // TODO isolatedDeclarations "__v_skip"
  constructor(detached = false) {
    this.detached = detached;
    this._active = true;
    this._on = 0;
    this.effects = [];
    this.cleanups = [];
    this._isPaused = false;
    this.__v_skip = true;
    this.parent = activeEffectScope;
    if (!detached && activeEffectScope) {
      this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(
        this
      ) - 1;
    }
  }
  get active() {
    return this._active;
  }
  pause() {
    if (this._active) {
      this._isPaused = true;
      let i, l;
      if (this.scopes) {
        for (i = 0, l = this.scopes.length; i < l; i++) {
          this.scopes[i].pause();
        }
      }
      for (i = 0, l = this.effects.length; i < l; i++) {
        this.effects[i].pause();
      }
    }
  }
  /**
   * Resumes the effect scope, including all child scopes and effects.
   */
  resume() {
    if (this._active) {
      if (this._isPaused) {
        this._isPaused = false;
        let i, l;
        if (this.scopes) {
          for (i = 0, l = this.scopes.length; i < l; i++) {
            this.scopes[i].resume();
          }
        }
        for (i = 0, l = this.effects.length; i < l; i++) {
          this.effects[i].resume();
        }
      }
    }
  }
  run(fn) {
    if (this._active) {
      const currentEffectScope = activeEffectScope;
      try {
        activeEffectScope = this;
        return fn();
      } finally {
        activeEffectScope = currentEffectScope;
      }
    } else if (false) {
      warn$3(`cannot run an inactive effect scope.`);
    }
  }
  /**
   * This should only be called on non-detached scopes
   * @internal
   */
  on() {
    if (++this._on === 1) {
      this.prevScope = activeEffectScope;
      activeEffectScope = this;
    }
  }
  /**
   * This should only be called on non-detached scopes
   * @internal
   */
  off() {
    if (this._on > 0 && --this._on === 0) {
      activeEffectScope = this.prevScope;
      this.prevScope = void 0;
    }
  }
  stop(fromParent) {
    if (this._active) {
      this._active = false;
      let i, l;
      for (i = 0, l = this.effects.length; i < l; i++) {
        this.effects[i].stop();
      }
      this.effects.length = 0;
      for (i = 0, l = this.cleanups.length; i < l; i++) {
        this.cleanups[i]();
      }
      this.cleanups.length = 0;
      if (this.scopes) {
        for (i = 0, l = this.scopes.length; i < l; i++) {
          this.scopes[i].stop(true);
        }
        this.scopes.length = 0;
      }
      if (!this.detached && this.parent && !fromParent) {
        const last = this.parent.scopes.pop();
        if (last && last !== this) {
          this.parent.scopes[this.index] = last;
          last.index = this.index;
        }
      }
      this.parent = void 0;
    }
  }
}
function effectScope(detached) {
  return new EffectScope(detached);
}
function getCurrentScope() {
  return activeEffectScope;
}
function onScopeDispose(fn, failSilently = false) {
  if (activeEffectScope) {
    activeEffectScope.cleanups.push(fn);
  } else if (false) {
    warn$3(
      `onScopeDispose() is called when there is no active effect scope to be associated with.`
    );
  }
}
let activeSub;
const EffectFlags = {
  "ACTIVE": 1,
  "1": "ACTIVE",
  "RUNNING": 2,
  "2": "RUNNING",
  "TRACKING": 4,
  "4": "TRACKING",
  "NOTIFIED": 8,
  "8": "NOTIFIED",
  "DIRTY": 16,
  "16": "DIRTY",
  "ALLOW_RECURSE": 32,
  "32": "ALLOW_RECURSE",
  "PAUSED": 64,
  "64": "PAUSED",
  "EVALUATED": 128,
  "128": "EVALUATED"
};
const pausedQueueEffects = /* @__PURE__ */ new WeakSet();
class ReactiveEffect {
  constructor(fn) {
    this.fn = fn;
    this.deps = void 0;
    this.depsTail = void 0;
    this.flags = 1 | 4;
    this.next = void 0;
    this.cleanup = void 0;
    this.scheduler = void 0;
    if (activeEffectScope && activeEffectScope.active) {
      activeEffectScope.effects.push(this);
    }
  }
  pause() {
    this.flags |= 64;
  }
  resume() {
    if (this.flags & 64) {
      this.flags &= -65;
      if (pausedQueueEffects.has(this)) {
        pausedQueueEffects.delete(this);
        this.trigger();
      }
    }
  }
  /**
   * @internal
   */
  notify() {
    if (this.flags & 2 && !(this.flags & 32)) {
      return;
    }
    if (!(this.flags & 8)) {
      batch(this);
    }
  }
  run() {
    if (!(this.flags & 1)) {
      return this.fn();
    }
    this.flags |= 2;
    cleanupEffect(this);
    prepareDeps(this);
    const prevEffect = activeSub;
    const prevShouldTrack = shouldTrack;
    activeSub = this;
    shouldTrack = true;
    try {
      return this.fn();
    } finally {
      if (false) {
        warn$3(
          "Active effect was not restored correctly - this is likely a Vue internal bug."
        );
      }
      cleanupDeps(this);
      activeSub = prevEffect;
      shouldTrack = prevShouldTrack;
      this.flags &= -3;
    }
  }
  stop() {
    if (this.flags & 1) {
      for (let link = this.deps; link; link = link.nextDep) {
        removeSub(link);
      }
      this.deps = this.depsTail = void 0;
      cleanupEffect(this);
      this.onStop && this.onStop();
      this.flags &= -2;
    }
  }
  trigger() {
    if (this.flags & 64) {
      pausedQueueEffects.add(this);
    } else if (this.scheduler) {
      this.scheduler();
    } else {
      this.runIfDirty();
    }
  }
  /**
   * @internal
   */
  runIfDirty() {
    if (isDirty(this)) {
      this.run();
    }
  }
  get dirty() {
    return isDirty(this);
  }
}
let batchDepth = 0;
let batchedSub;
let batchedComputed;
function batch(sub, isComputed = false) {
  sub.flags |= 8;
  if (isComputed) {
    sub.next = batchedComputed;
    batchedComputed = sub;
    return;
  }
  sub.next = batchedSub;
  batchedSub = sub;
}
function startBatch() {
  batchDepth++;
}
function endBatch() {
  if (--batchDepth > 0) {
    return;
  }
  if (batchedComputed) {
    let e = batchedComputed;
    batchedComputed = void 0;
    while (e) {
      const next = e.next;
      e.next = void 0;
      e.flags &= -9;
      e = next;
    }
  }
  let error;
  while (batchedSub) {
    let e = batchedSub;
    batchedSub = void 0;
    while (e) {
      const next = e.next;
      e.next = void 0;
      e.flags &= -9;
      if (e.flags & 1) {
        try {
          ;
          e.trigger();
        } catch (err) {
          if (!error) error = err;
        }
      }
      e = next;
    }
  }
  if (error) throw error;
}
function prepareDeps(sub) {
  for (let link = sub.deps; link; link = link.nextDep) {
    link.version = -1;
    link.prevActiveLink = link.dep.activeLink;
    link.dep.activeLink = link;
  }
}
function cleanupDeps(sub) {
  let head;
  let tail = sub.depsTail;
  let link = tail;
  while (link) {
    const prev = link.prevDep;
    if (link.version === -1) {
      if (link === tail) tail = prev;
      removeSub(link);
      removeDep(link);
    } else {
      head = link;
    }
    link.dep.activeLink = link.prevActiveLink;
    link.prevActiveLink = void 0;
    link = prev;
  }
  sub.deps = head;
  sub.depsTail = tail;
}
function isDirty(sub) {
  for (let link = sub.deps; link; link = link.nextDep) {
    if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {
      return true;
    }
  }
  if (sub._dirty) {
    return true;
  }
  return false;
}
function refreshComputed(computed2) {
  if (computed2.flags & 4 && !(computed2.flags & 16)) {
    return;
  }
  computed2.flags &= -17;
  if (computed2.globalVersion === globalVersion) {
    return;
  }
  computed2.globalVersion = globalVersion;
  if (!computed2.isSSR && computed2.flags & 128 && (!computed2.deps && !computed2._dirty || !isDirty(computed2))) {
    return;
  }
  computed2.flags |= 2;
  const dep = computed2.dep;
  const prevSub = activeSub;
  const prevShouldTrack = shouldTrack;
  activeSub = computed2;
  shouldTrack = true;
  try {
    prepareDeps(computed2);
    const value = computed2.fn(computed2._value);
    if (dep.version === 0 || hasChanged(value, computed2._value)) {
      computed2.flags |= 128;
      computed2._value = value;
      dep.version++;
    }
  } catch (err) {
    dep.version++;
    throw err;
  } finally {
    activeSub = prevSub;
    shouldTrack = prevShouldTrack;
    cleanupDeps(computed2);
    computed2.flags &= -3;
  }
}
function removeSub(link, soft = false) {
  const { dep, prevSub, nextSub } = link;
  if (prevSub) {
    prevSub.nextSub = nextSub;
    link.prevSub = void 0;
  }
  if (nextSub) {
    nextSub.prevSub = prevSub;
    link.nextSub = void 0;
  }
  if (false) {
    dep.subsHead = nextSub;
  }
  if (dep.subs === link) {
    dep.subs = prevSub;
    if (!prevSub && dep.computed) {
      dep.computed.flags &= -5;
      for (let l = dep.computed.deps; l; l = l.nextDep) {
        removeSub(l, true);
      }
    }
  }
  if (!soft && !--dep.sc && dep.map) {
    dep.map.delete(dep.key);
  }
}
function removeDep(link) {
  const { prevDep, nextDep } = link;
  if (prevDep) {
    prevDep.nextDep = nextDep;
    link.prevDep = void 0;
  }
  if (nextDep) {
    nextDep.prevDep = prevDep;
    link.nextDep = void 0;
  }
}
function effect(fn, options) {
  if (fn.effect instanceof ReactiveEffect) {
    fn = fn.effect.fn;
  }
  const e = new ReactiveEffect(fn);
  if (options) {
    extend(e, options);
  }
  try {
    e.run();
  } catch (err) {
    e.stop();
    throw err;
  }
  const runner = e.run.bind(e);
  runner.effect = e;
  return runner;
}
function stop(runner) {
  runner.effect.stop();
}
let shouldTrack = true;
const trackStack = [];
function pauseTracking() {
  trackStack.push(shouldTrack);
  shouldTrack = false;
}
function enableTracking() {
  trackStack.push(shouldTrack);
  shouldTrack = true;
}
function resetTracking() {
  const last = trackStack.pop();
  shouldTrack = last === void 0 ? true : last;
}
function onEffectCleanup(fn, failSilently = false) {
  if (activeSub instanceof ReactiveEffect) {
    activeSub.cleanup = fn;
  } else if (false) {
    warn$3(
      `onEffectCleanup() was called when there was no active effect to associate with.`
    );
  }
}
function cleanupEffect(e) {
  const { cleanup } = e;
  e.cleanup = void 0;
  if (cleanup) {
    const prevSub = activeSub;
    activeSub = void 0;
    try {
      cleanup();
    } finally {
      activeSub = prevSub;
    }
  }
}
let globalVersion = 0;
class Link {
  constructor(sub, dep) {
    this.sub = sub;
    this.dep = dep;
    this.version = dep.version;
    this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;
  }
}
class Dep {
  // TODO isolatedDeclarations "__v_skip"
  constructor(computed2) {
    this.computed = computed2;
    this.version = 0;
    this.activeLink = void 0;
    this.subs = void 0;
    this.map = void 0;
    this.key = void 0;
    this.sc = 0;
    this.__v_skip = true;
    if (false) {
      this.subsHead = void 0;
    }
  }
  track(debugInfo) {
    if (!activeSub || !shouldTrack || activeSub === this.computed) {
      return;
    }
    let link = this.activeLink;
    if (link === void 0 || link.sub !== activeSub) {
      link = this.activeLink = new Link(activeSub, this);
      if (!activeSub.deps) {
        activeSub.deps = activeSub.depsTail = link;
      } else {
        link.prevDep = activeSub.depsTail;
        activeSub.depsTail.nextDep = link;
        activeSub.depsTail = link;
      }
      addSub(link);
    } else if (link.version === -1) {
      link.version = this.version;
      if (link.nextDep) {
        const next = link.nextDep;
        next.prevDep = link.prevDep;
        if (link.prevDep) {
          link.prevDep.nextDep = next;
        }
        link.prevDep = activeSub.depsTail;
        link.nextDep = void 0;
        activeSub.depsTail.nextDep = link;
        activeSub.depsTail = link;
        if (activeSub.deps === link) {
          activeSub.deps = next;
        }
      }
    }
    if (false) {
      activeSub.onTrack(
        extend(
          {
            effect: activeSub
          },
          debugInfo
        )
      );
    }
    return link;
  }
  trigger(debugInfo) {
    this.version++;
    globalVersion++;
    this.notify(debugInfo);
  }
  notify(debugInfo) {
    startBatch();
    try {
      if (false) {
        for (let head = this.subsHead; head; head = head.nextSub) {
          if (head.sub.onTrigger && !(head.sub.flags & 8)) {
            head.sub.onTrigger(
              extend(
                {
                  effect: head.sub
                },
                debugInfo
              )
            );
          }
        }
      }
      for (let link = this.subs; link; link = link.prevSub) {
        if (link.sub.notify()) {
          ;
          link.sub.dep.notify();
        }
      }
    } finally {
      endBatch();
    }
  }
}
function addSub(link) {
  link.dep.sc++;
  if (link.sub.flags & 4) {
    const computed2 = link.dep.computed;
    if (computed2 && !link.dep.subs) {
      computed2.flags |= 4 | 16;
      for (let l = computed2.deps; l; l = l.nextDep) {
        addSub(l);
      }
    }
    const currentTail = link.dep.subs;
    if (currentTail !== link) {
      link.prevSub = currentTail;
      if (currentTail) currentTail.nextSub = link;
    }
    if (false) {
      link.dep.subsHead = link;
    }
    link.dep.subs = link;
  }
}
const targetMap = /* @__PURE__ */ new WeakMap();
const ITERATE_KEY = /* @__PURE__ */ Symbol(
  false ? "Object iterate" : ""
);
const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(
  false ? "Map keys iterate" : ""
);
const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(
  false ? "Array iterate" : ""
);
function track(target, type, key) {
  if (shouldTrack && activeSub) {
    let depsMap = targetMap.get(target);
    if (!depsMap) {
      targetMap.set(target, depsMap = /* @__PURE__ */ new Map());
    }
    let dep = depsMap.get(key);
    if (!dep) {
      depsMap.set(key, dep = new Dep());
      dep.map = depsMap;
      dep.key = key;
    }
    if (false) {
      dep.track({
        target,
        type,
        key
      });
    } else {
      dep.track();
    }
  }
}
function trigger(target, type, key, newValue, oldValue, oldTarget) {
  const depsMap = targetMap.get(target);
  if (!depsMap) {
    globalVersion++;
    return;
  }
  const run = (dep) => {
    if (dep) {
      if (false) {
        dep.trigger({
          target,
          type,
          key,
          newValue,
          oldValue,
          oldTarget
        });
      } else {
        dep.trigger();
      }
    }
  };
  startBatch();
  if (type === "clear") {
    depsMap.forEach(run);
  } else {
    const targetIsArray = isArray$1(target);
    const isArrayIndex = targetIsArray && isIntegerKey(key);
    if (targetIsArray && key === "length") {
      const newLength = Number(newValue);
      depsMap.forEach((dep, key2) => {
        if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol$1(key2) && key2 >= newLength) {
          run(dep);
        }
      });
    } else {
      if (key !== void 0 || depsMap.has(void 0)) {
        run(depsMap.get(key));
      }
      if (isArrayIndex) {
        run(depsMap.get(ARRAY_ITERATE_KEY));
      }
      switch (type) {
        case "add":
          if (!targetIsArray) {
            run(depsMap.get(ITERATE_KEY));
            if (isMap(target)) {
              run(depsMap.get(MAP_KEY_ITERATE_KEY));
            }
          } else if (isArrayIndex) {
            run(depsMap.get("length"));
          }
          break;
        case "delete":
          if (!targetIsArray) {
            run(depsMap.get(ITERATE_KEY));
            if (isMap(target)) {
              run(depsMap.get(MAP_KEY_ITERATE_KEY));
            }
          }
          break;
        case "set":
          if (isMap(target)) {
            run(depsMap.get(ITERATE_KEY));
          }
          break;
      }
    }
  }
  endBatch();
}
function getDepFromReactive(object, key) {
  const depMap = targetMap.get(object);
  return depMap && depMap.get(key);
}
function reactiveReadArray(array) {
  const raw = /* @__PURE__ */ toRaw(array);
  if (raw === array) return raw;
  track(raw, "iterate", ARRAY_ITERATE_KEY);
  return /* @__PURE__ */ isShallow(array) ? raw : raw.map(toReactive);
}
function shallowReadArray(arr) {
  track(arr = /* @__PURE__ */ toRaw(arr), "iterate", ARRAY_ITERATE_KEY);
  return arr;
}
function toWrapped(target, item) {
  if (/* @__PURE__ */ isReadonly(target)) {
    return /* @__PURE__ */ isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);
  }
  return toReactive(item);
}
const arrayInstrumentations = {
  __proto__: null,
  [Symbol.iterator]() {
    return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));
  },
  concat(...args) {
    return reactiveReadArray(this).concat(
      ...args.map((x) => isArray$1(x) ? reactiveReadArray(x) : x)
    );
  },
  entries() {
    return iterator(this, "entries", (value) => {
      value[1] = toWrapped(this, value[1]);
      return value;
    });
  },
  every(fn, thisArg) {
    return apply$1(this, "every", fn, thisArg, void 0, arguments);
  },
  filter(fn, thisArg) {
    return apply$1(
      this,
      "filter",
      fn,
      thisArg,
      (v) => v.map((item) => toWrapped(this, item)),
      arguments
    );
  },
  find(fn, thisArg) {
    return apply$1(
      this,
      "find",
      fn,
      thisArg,
      (item) => toWrapped(this, item),
      arguments
    );
  },
  findIndex(fn, thisArg) {
    return apply$1(this, "findIndex", fn, thisArg, void 0, arguments);
  },
  findLast(fn, thisArg) {
    return apply$1(
      this,
      "findLast",
      fn,
      thisArg,
      (item) => toWrapped(this, item),
      arguments
    );
  },
  findLastIndex(fn, thisArg) {
    return apply$1(this, "findLastIndex", fn, thisArg, void 0, arguments);
  },
  // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement
  forEach(fn, thisArg) {
    return apply$1(this, "forEach", fn, thisArg, void 0, arguments);
  },
  includes(...args) {
    return searchProxy(this, "includes", args);
  },
  indexOf(...args) {
    return searchProxy(this, "indexOf", args);
  },
  join(separator) {
    return reactiveReadArray(this).join(separator);
  },
  // keys() iterator only reads `length`, no optimization required
  lastIndexOf(...args) {
    return searchProxy(this, "lastIndexOf", args);
  },
  map(fn, thisArg) {
    return apply$1(this, "map", fn, thisArg, void 0, arguments);
  },
  pop() {
    return noTracking(this, "pop");
  },
  push(...args) {
    return noTracking(this, "push", args);
  },
  reduce(fn, ...args) {
    return reduce(this, "reduce", fn, args);
  },
  reduceRight(fn, ...args) {
    return reduce(this, "reduceRight", fn, args);
  },
  shift() {
    return noTracking(this, "shift");
  },
  // slice could use ARRAY_ITERATE but also seems to beg for range tracking
  some(fn, thisArg) {
    return apply$1(this, "some", fn, thisArg, void 0, arguments);
  },
  splice(...args) {
    return noTracking(this, "splice", args);
  },
  toReversed() {
    return reactiveReadArray(this).toReversed();
  },
  toSorted(comparer) {
    return reactiveReadArray(this).toSorted(comparer);
  },
  toSpliced(...args) {
    return reactiveReadArray(this).toSpliced(...args);
  },
  unshift(...args) {
    return noTracking(this, "unshift", args);
  },
  values() {
    return iterator(this, "values", (item) => toWrapped(this, item));
  }
};
function iterator(self, method, wrapValue) {
  const arr = shallowReadArray(self);
  const iter = arr[method]();
  if (arr !== self && !/* @__PURE__ */ isShallow(self)) {
    iter._next = iter.next;
    iter.next = () => {
      const result = iter._next();
      if (!result.done) {
        result.value = wrapValue(result.value);
      }
      return result;
    };
  }
  return iter;
}
const arrayProto = Array.prototype;
function apply$1(self, method, fn, thisArg, wrappedRetFn, args) {
  const arr = shallowReadArray(self);
  const needsWrap = arr !== self && !/* @__PURE__ */ isShallow(self);
  const methodFn = arr[method];
  if (methodFn !== arrayProto[method]) {
    const result2 = methodFn.apply(self, args);
    return needsWrap ? toReactive(result2) : result2;
  }
  let wrappedFn = fn;
  if (arr !== self) {
    if (needsWrap) {
      wrappedFn = function(item, index) {
        return fn.call(this, toWrapped(self, item), index, self);
      };
    } else if (fn.length > 2) {
      wrappedFn = function(item, index) {
        return fn.call(this, item, index, self);
      };
    }
  }
  const result = methodFn.call(arr, wrappedFn, thisArg);
  return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;
}
function reduce(self, method, fn, args) {
  const arr = shallowReadArray(self);
  const needsWrap = arr !== self && !/* @__PURE__ */ isShallow(self);
  let wrappedFn = fn;
  let wrapInitialAccumulator = false;
  if (arr !== self) {
    if (needsWrap) {
      wrapInitialAccumulator = args.length === 0;
      wrappedFn = function(acc, item, index) {
        if (wrapInitialAccumulator) {
          wrapInitialAccumulator = false;
          acc = toWrapped(self, acc);
        }
        return fn.call(this, acc, toWrapped(self, item), index, self);
      };
    } else if (fn.length > 3) {
      wrappedFn = function(acc, item, index) {
        return fn.call(this, acc, item, index, self);
      };
    }
  }
  const result = arr[method](wrappedFn, ...args);
  return wrapInitialAccumulator ? toWrapped(self, result) : result;
}
function searchProxy(self, method, args) {
  const arr = /* @__PURE__ */ toRaw(self);
  track(arr, "iterate", ARRAY_ITERATE_KEY);
  const res = arr[method](...args);
  if ((res === -1 || res === false) && /* @__PURE__ */ isProxy(args[0])) {
    args[0] = /* @__PURE__ */ toRaw(args[0]);
    return arr[method](...args);
  }
  return res;
}
function noTracking(self, method, args = []) {
  pauseTracking();
  startBatch();
  const res = (/* @__PURE__ */ toRaw(self))[method].apply(self, args);
  endBatch();
  resetTracking();
  return res;
}
const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
const builtInSymbols = new Set(
  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol$1)
);
function hasOwnProperty$1(key) {
  if (!isSymbol$1(key)) key = String(key);
  const obj = /* @__PURE__ */ toRaw(this);
  track(obj, "has", key);
  return obj.hasOwnProperty(key);
}
class BaseReactiveHandler {
  constructor(_isReadonly = false, _isShallow = false) {
    this._isReadonly = _isReadonly;
    this._isShallow = _isShallow;
  }
  get(target, key, receiver) {
    if (key === "__v_skip") return target["__v_skip"];
    const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
    if (key === "__v_isReactive") {
      return !isReadonly2;
    } else if (key === "__v_isReadonly") {
      return isReadonly2;
    } else if (key === "__v_isShallow") {
      return isShallow2;
    } else if (key === "__v_raw") {
      if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
      // this means the receiver is a user proxy of the reactive proxy
      Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
        return target;
      }
      return;
    }
    const targetIsArray = isArray$1(target);
    if (!isReadonly2) {
      let fn;
      if (targetIsArray && (fn = arrayInstrumentations[key])) {
        return fn;
      }
      if (key === "hasOwnProperty") {
        return hasOwnProperty$1;
      }
    }
    const res = Reflect.get(
      target,
      key,
      // if this is a proxy wrapping a ref, return methods using the raw ref
      // as receiver so that we don't have to call `toRaw` on the ref in all
      // its class methods
      /* @__PURE__ */ isRef(target) ? target : receiver
    );
    if (isSymbol$1(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {
      return res;
    }
    if (!isReadonly2) {
      track(target, "get", key);
    }
    if (isShallow2) {
      return res;
    }
    if (/* @__PURE__ */ isRef(res)) {
      const value = targetIsArray && isIntegerKey(key) ? res : res.value;
      return isReadonly2 && isObject$3(value) ? /* @__PURE__ */ readonly(value) : value;
    }
    if (isObject$3(res)) {
      return isReadonly2 ? /* @__PURE__ */ readonly(res) : /* @__PURE__ */ reactive(res);
    }
    return res;
  }
}
class MutableReactiveHandler extends BaseReactiveHandler {
  constructor(isShallow2 = false) {
    super(false, isShallow2);
  }
  set(target, key, value, receiver) {
    let oldValue = target[key];
    const isArrayWithIntegerKey = isArray$1(target) && isIntegerKey(key);
    if (!this._isShallow) {
      const isOldValueReadonly = /* @__PURE__ */ isReadonly(oldValue);
      if (!/* @__PURE__ */ isShallow(value) && !/* @__PURE__ */ isReadonly(value)) {
        oldValue = /* @__PURE__ */ toRaw(oldValue);
        value = /* @__PURE__ */ toRaw(value);
      }
      if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
        if (isOldValueReadonly) {
          if (false) {
            warn$3(
              `Set operation on key "${String(key)}" failed: target is readonly.`,
              target[key]
            );
          }
          return true;
        } else {
          oldValue.value = value;
          return true;
        }
      }
    }
    const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn$1(target, key);
    const result = Reflect.set(
      target,
      key,
      value,
      /* @__PURE__ */ isRef(target) ? target : receiver
    );
    if (target === /* @__PURE__ */ toRaw(receiver)) {
      if (!hadKey) {
        trigger(target, "add", key, value);
      } else if (hasChanged(value, oldValue)) {
        trigger(target, "set", key, value, oldValue);
      }
    }
    return result;
  }
  deleteProperty(target, key) {
    const hadKey = hasOwn$1(target, key);
    const oldValue = target[key];
    const result = Reflect.deleteProperty(target, key);
    if (result && hadKey) {
      trigger(target, "delete", key, void 0, oldValue);
    }
    return result;
  }
  has(target, key) {
    const result = Reflect.has(target, key);
    if (!isSymbol$1(key) || !builtInSymbols.has(key)) {
      track(target, "has", key);
    }
    return result;
  }
  ownKeys(target) {
    track(
      target,
      "iterate",
      isArray$1(target) ? "length" : ITERATE_KEY
    );
    return Reflect.ownKeys(target);
  }
}
class ReadonlyReactiveHandler extends BaseReactiveHandler {
  constructor(isShallow2 = false) {
    super(true, isShallow2);
  }
  set(target, key) {
    if (false) {
      warn$3(
        `Set operation on key "${String(key)}" failed: target is readonly.`,
        target
      );
    }
    return true;
  }
  deleteProperty(target, key) {
    if (false) {
      warn$3(
        `Delete operation on key "${String(key)}" failed: target is readonly.`,
        target
      );
    }
    return true;
  }
}
const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
const toShallow = (value) => value;
const getProto = (v) => Reflect.getPrototypeOf(v);
function createIterableMethod(method, isReadonly2, isShallow2) {
  return function(...args) {
    const target = this["__v_raw"];
    const rawTarget = /* @__PURE__ */ toRaw(target);
    const targetIsMap = isMap(rawTarget);
    const isPair = method === "entries" || method === Symbol.iterator && targetIsMap;
    const isKeyOnly = method === "keys" && targetIsMap;
    const innerIterator = target[method](...args);
    const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
    !isReadonly2 && track(
      rawTarget,
      "iterate",
      isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY
    );
    return extend(
      // inheriting all iterator properties
      Object.create(innerIterator),
      {
        // iterator protocol
        next() {
          const { value, done } = innerIterator.next();
          return done ? { value, done } : {
            value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),
            done
          };
        }
      }
    );
  };
}
function createReadonlyMethod(type) {
  return function(...args) {
    if (false) {
      const key = args[0] ? `on key "${args[0]}" ` : ``;
      warn$3(
        `${capitalize$1(type)} operation ${key}failed: target is readonly.`,
        /* @__PURE__ */ toRaw(this)
      );
    }
    return type === "delete" ? false : type === "clear" ? void 0 : this;
  };
}
function createInstrumentations(readonly2, shallow) {
  const instrumentations = {
    get(key) {
      const target = this["__v_raw"];
      const rawTarget = /* @__PURE__ */ toRaw(target);
      const rawKey = /* @__PURE__ */ toRaw(key);
      if (!readonly2) {
        if (hasChanged(key, rawKey)) {
          track(rawTarget, "get", key);
        }
        track(rawTarget, "get", rawKey);
      }
      const { has } = getProto(rawTarget);
      const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive;
      if (has.call(rawTarget, key)) {
        return wrap(target.get(key));
      } else if (has.call(rawTarget, rawKey)) {
        return wrap(target.get(rawKey));
      } else if (target !== rawTarget) {
        target.get(key);
      }
    },
    get size() {
      const target = this["__v_raw"];
      !readonly2 && track(/* @__PURE__ */ toRaw(target), "iterate", ITERATE_KEY);
      return target.size;
    },
    has(key) {
      const target = this["__v_raw"];
      const rawTarget = /* @__PURE__ */ toRaw(target);
      const rawKey = /* @__PURE__ */ toRaw(key);
      if (!readonly2) {
        if (hasChanged(key, rawKey)) {
          track(rawTarget, "has", key);
        }
        track(rawTarget, "has", rawKey);
      }
      return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
    },
    forEach(callback, thisArg) {
      const observed = this;
      const target = observed["__v_raw"];
      const rawTarget = /* @__PURE__ */ toRaw(target);
      const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive;
      !readonly2 && track(rawTarget, "iterate", ITERATE_KEY);
      return target.forEach((value, key) => {
        return callback.call(thisArg, wrap(value), wrap(key), observed);
      });
    }
  };
  extend(
    instrumentations,
    readonly2 ? {
      add: createReadonlyMethod("add"),
      set: createReadonlyMethod("set"),
      delete: createReadonlyMethod("delete"),
      clear: createReadonlyMethod("clear")
    } : {
      add(value) {
        const target = /* @__PURE__ */ toRaw(this);
        const proto = getProto(target);
        const rawValue = /* @__PURE__ */ toRaw(value);
        const valueToAdd = !shallow && !/* @__PURE__ */ isShallow(value) && !/* @__PURE__ */ isReadonly(value) ? rawValue : value;
        const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue);
        if (!hadKey) {
          target.add(valueToAdd);
          trigger(target, "add", valueToAdd, valueToAdd);
        }
        return this;
      },
      set(key, value) {
        if (!shallow && !/* @__PURE__ */ isShallow(value) && !/* @__PURE__ */ isReadonly(value)) {
          value = /* @__PURE__ */ toRaw(value);
        }
        const target = /* @__PURE__ */ toRaw(this);
        const { has, get } = getProto(target);
        let hadKey = has.call(target, key);
        if (!hadKey) {
          key = /* @__PURE__ */ toRaw(key);
          hadKey = has.call(target, key);
        } else if (false) {
          checkIdentityKeys(target, has, key);
        }
        const oldValue = get.call(target, key);
        target.set(key, value);
        if (!hadKey) {
          trigger(target, "add", key, value);
        } else if (hasChanged(value, oldValue)) {
          trigger(target, "set", key, value, oldValue);
        }
        return this;
      },
      delete(key) {
        const target = /* @__PURE__ */ toRaw(this);
        const { has, get } = getProto(target);
        let hadKey = has.call(target, key);
        if (!hadKey) {
          key = /* @__PURE__ */ toRaw(key);
          hadKey = has.call(target, key);
        } else if (false) {
          checkIdentityKeys(target, has, key);
        }
        const oldValue = get ? get.call(target, key) : void 0;
        const result = target.delete(key);
        if (hadKey) {
          trigger(target, "delete", key, void 0, oldValue);
        }
        return result;
      },
      clear() {
        const target = /* @__PURE__ */ toRaw(this);
        const hadItems = target.size !== 0;
        const oldTarget = false ? isMap(target) ? new Map(target) : new Set(target) : void 0;
        const result = target.clear();
        if (hadItems) {
          trigger(
            target,
            "clear",
            void 0,
            void 0,
            oldTarget
          );
        }
        return result;
      }
    }
  );
  const iteratorMethods = [
    "keys",
    "values",
    "entries",
    Symbol.iterator
  ];
  iteratorMethods.forEach((method) => {
    instrumentations[method] = createIterableMethod(method, readonly2, shallow);
  });
  return instrumentations;
}
function createInstrumentationGetter(isReadonly2, shallow) {
  const instrumentations = createInstrumentations(isReadonly2, shallow);
  return (target, key, receiver) => {
    if (key === "__v_isReactive") {
      return !isReadonly2;
    } else if (key === "__v_isReadonly") {
      return isReadonly2;
    } else if (key === "__v_raw") {
      return target;
    }
    return Reflect.get(
      hasOwn$1(instrumentations, key) && key in target ? instrumentations : target,
      key,
      receiver
    );
  };
}
const mutableCollectionHandlers = {
  get: /* @__PURE__ */ createInstrumentationGetter(false, false)
};
const shallowCollectionHandlers = {
  get: /* @__PURE__ */ createInstrumentationGetter(false, true)
};
const readonlyCollectionHandlers = {
  get: /* @__PURE__ */ createInstrumentationGetter(true, false)
};
const shallowReadonlyCollectionHandlers = {
  get: /* @__PURE__ */ createInstrumentationGetter(true, true)
};
function checkIdentityKeys(target, has, key) {
  const rawKey = /* @__PURE__ */ toRaw(key);
  if (rawKey !== key && has.call(target, rawKey)) {
    const type = toRawType(target);
    warn$3(
      `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`
    );
  }
}
const reactiveMap = /* @__PURE__ */ new WeakMap();
const shallowReactiveMap = /* @__PURE__ */ new WeakMap();
const readonlyMap = /* @__PURE__ */ new WeakMap();
const shallowReadonlyMap = /* @__PURE__ */ new WeakMap();
function targetTypeMap(rawType) {
  switch (rawType) {
    case "Object":
    case "Array":
      return 1;
    case "Map":
    case "Set":
    case "WeakMap":
    case "WeakSet":
      return 2;
    default:
      return 0;
  }
}
function getTargetType(value) {
  return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
}
// @__NO_SIDE_EFFECTS__
function reactive(target) {
  if (/* @__PURE__ */ isReadonly(target)) {
    return target;
  }
  return createReactiveObject(
    target,
    false,
    mutableHandlers,
    mutableCollectionHandlers,
    reactiveMap
  );
}
// @__NO_SIDE_EFFECTS__
function shallowReactive(target) {
  return createReactiveObject(
    target,
    false,
    shallowReactiveHandlers,
    shallowCollectionHandlers,
    shallowReactiveMap
  );
}
// @__NO_SIDE_EFFECTS__
function readonly(target) {
  return createReactiveObject(
    target,
    true,
    readonlyHandlers,
    readonlyCollectionHandlers,
    readonlyMap
  );
}
// @__NO_SIDE_EFFECTS__
function shallowReadonly(target) {
  return createReactiveObject(
    target,
    true,
    shallowReadonlyHandlers,
    shallowReadonlyCollectionHandlers,
    shallowReadonlyMap
  );
}
function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
  if (!isObject$3(target)) {
    if (false) {
      warn$3(
        `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String(
          target
        )}`
      );
    }
    return target;
  }
  if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
    return target;
  }
  const targetType = getTargetType(target);
  if (targetType === 0) {
    return target;
  }
  const existingProxy = proxyMap.get(target);
  if (existingProxy) {
    return existingProxy;
  }
  const proxy = new Proxy(
    target,
    targetType === 2 ? collectionHandlers : baseHandlers
  );
  proxyMap.set(target, proxy);
  return proxy;
}
// @__NO_SIDE_EFFECTS__
function isReactive(value) {
  if (/* @__PURE__ */ isReadonly(value)) {
    return /* @__PURE__ */ isReactive(value["__v_raw"]);
  }
  return !!(value && value["__v_isReactive"]);
}
// @__NO_SIDE_EFFECTS__
function isReadonly(value) {
  return !!(value && value["__v_isReadonly"]);
}
// @__NO_SIDE_EFFECTS__
function isShallow(value) {
  return !!(value && value["__v_isShallow"]);
}
// @__NO_SIDE_EFFECTS__
function isProxy(value) {
  return value ? !!value["__v_raw"] : false;
}
// @__NO_SIDE_EFFECTS__
function toRaw(observed) {
  const raw = observed && observed["__v_raw"];
  return raw ? /* @__PURE__ */ toRaw(raw) : observed;
}
function markRaw(value) {
  if (!hasOwn$1(value, "__v_skip") && Object.isExtensible(value)) {
    def(value, "__v_skip", true);
  }
  return value;
}
const toReactive = (value) => isObject$3(value) ? /* @__PURE__ */ reactive(value) : value;
const toReadonly = (value) => isObject$3(value) ? /* @__PURE__ */ readonly(value) : value;
// @__NO_SIDE_EFFECTS__
function isRef(r) {
  return r ? r["__v_isRef"] === true : false;
}
// @__NO_SIDE_EFFECTS__
function ref(value) {
  return createRef(value, false);
}
// @__NO_SIDE_EFFECTS__
function shallowRef(value) {
  return createRef(value, true);
}
function createRef(rawValue, shallow) {
  if (/* @__PURE__ */ isRef(rawValue)) {
    return rawValue;
  }
  return new RefImpl(rawValue, shallow);
}
class RefImpl {
  constructor(value, isShallow2) {
    this.dep = new Dep();
    this["__v_isRef"] = true;
    this["__v_isShallow"] = false;
    this._rawValue = isShallow2 ? value : /* @__PURE__ */ toRaw(value);
    this._value = isShallow2 ? value : toReactive(value);
    this["__v_isShallow"] = isShallow2;
  }
  get value() {
    if (false) {
      this.dep.track({
        target: this,
        type: "get",
        key: "value"
      });
    } else {
      this.dep.track();
    }
    return this._value;
  }
  set value(newValue) {
    const oldValue = this._rawValue;
    const useDirectValue = this["__v_isShallow"] || /* @__PURE__ */ isShallow(newValue) || /* @__PURE__ */ isReadonly(newValue);
    newValue = useDirectValue ? newValue : /* @__PURE__ */ toRaw(newValue);
    if (hasChanged(newValue, oldValue)) {
      this._rawValue = newValue;
      this._value = useDirectValue ? newValue : toReactive(newValue);
      if (false) {
        this.dep.trigger({
          target: this,
          type: "set",
          key: "value",
          newValue,
          oldValue
        });
      } else {
        this.dep.trigger();
      }
    }
  }
}
function triggerRef(ref2) {
  if (ref2.dep) {
    if (false) {
      ref2.dep.trigger({
        target: ref2,
        type: "set",
        key: "value",
        newValue: ref2._value
      });
    } else {
      ref2.dep.trigger();
    }
  }
}
function unref(ref2) {
  return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;
}
function toValue(source) {
  return isFunction$1(source) ? source() : unref(source);
}
const shallowUnwrapHandlers = {
  get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)),
  set: (target, key, value, receiver) => {
    const oldValue = target[key];
    if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
      oldValue.value = value;
      return true;
    } else {
      return Reflect.set(target, key, value, receiver);
    }
  }
};
function proxyRefs(objectWithRefs) {
  return /* @__PURE__ */ isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);
}
class CustomRefImpl {
  constructor(factory) {
    this["__v_isRef"] = true;
    this._value = void 0;
    const dep = this.dep = new Dep();
    const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));
    this._get = get;
    this._set = set;
  }
  get value() {
    return this._value = this._get();
  }
  set value(newVal) {
    this._set(newVal);
  }
}
function customRef(factory) {
  return new CustomRefImpl(factory);
}
// @__NO_SIDE_EFFECTS__
function toRefs(object) {
  if (false) {
    warn$3(`toRefs() expects a reactive object but received a plain one.`);
  }
  const ret = isArray$1(object) ? new Array(object.length) : {};
  for (const key in object) {
    ret[key] = propertyToRef(object, key);
  }
  return ret;
}
class ObjectRefImpl {
  constructor(_object, key, _defaultValue) {
    this._object = _object;
    this._defaultValue = _defaultValue;
    this["__v_isRef"] = true;
    this._value = void 0;
    this._key = isSymbol$1(key) ? key : String(key);
    this._raw = /* @__PURE__ */ toRaw(_object);
    let shallow = true;
    let obj = _object;
    if (!isArray$1(_object) || isSymbol$1(this._key) || !isIntegerKey(this._key)) {
      do {
        shallow = !/* @__PURE__ */ isProxy(obj) || /* @__PURE__ */ isShallow(obj);
      } while (shallow && (obj = obj["__v_raw"]));
    }
    this._shallow = shallow;
  }
  get value() {
    let val = this._object[this._key];
    if (this._shallow) {
      val = unref(val);
    }
    return this._value = val === void 0 ? this._defaultValue : val;
  }
  set value(newVal) {
    if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) {
      const nestedRef = this._object[this._key];
      if (/* @__PURE__ */ isRef(nestedRef)) {
        nestedRef.value = newVal;
        return;
      }
    }
    this._object[this._key] = newVal;
  }
  get dep() {
    return getDepFromReactive(this._raw, this._key);
  }
}
class GetterRefImpl {
  constructor(_getter) {
    this._getter = _getter;
    this["__v_isRef"] = true;
    this["__v_isReadonly"] = true;
    this._value = void 0;
  }
  get value() {
    return this._value = this._getter();
  }
}
// @__NO_SIDE_EFFECTS__
function toRef(source, key, defaultValue) {
  if (/* @__PURE__ */ isRef(source)) {
    return source;
  } else if (isFunction$1(source)) {
    return new GetterRefImpl(source);
  } else if (isObject$3(source) && arguments.length > 1) {
    return propertyToRef(source, key, defaultValue);
  } else {
    return /* @__PURE__ */ ref(source);
  }
}
function propertyToRef(source, key, defaultValue) {
  return new ObjectRefImpl(source, key, defaultValue);
}
class ComputedRefImpl {
  constructor(fn, setter, isSSR) {
    this.fn = fn;
    this.setter = setter;
    this._value = void 0;
    this.dep = new Dep(this);
    this.__v_isRef = true;
    this.deps = void 0;
    this.depsTail = void 0;
    this.flags = 16;
    this.globalVersion = globalVersion - 1;
    this.next = void 0;
    this.effect = this;
    this["__v_isReadonly"] = !setter;
    this.isSSR = isSSR;
  }
  /**
   * @internal
   */
  notify() {
    this.flags |= 16;
    if (!(this.flags & 8) && // avoid infinite self recursion
    activeSub !== this) {
      batch(this, true);
      return true;
    } else if (false) ;
  }
  get value() {
    const link = false ? this.dep.track({
      target: this,
      type: "get",
      key: "value"
    }) : this.dep.track();
    refreshComputed(this);
    if (link) {
      link.version = this.dep.version;
    }
    return this._value;
  }
  set value(newValue) {
    if (this.setter) {
      this.setter(newValue);
    } else if (false) {
      warn$3("Write operation failed: computed value is readonly");
    }
  }
}
// @__NO_SIDE_EFFECTS__
function computed$1(getterOrOptions, debugOptions, isSSR = false) {
  let getter;
  let setter;
  if (isFunction$1(getterOrOptions)) {
    getter = getterOrOptions;
  } else {
    getter = getterOrOptions.get;
    setter = getterOrOptions.set;
  }
  const cRef = new ComputedRefImpl(getter, setter, isSSR);
  if (false) {
    cRef.onTrack = debugOptions.onTrack;
    cRef.onTrigger = debugOptions.onTrigger;
  }
  return cRef;
}
const TrackOpTypes = {
  "GET": "get",
  "HAS": "has",
  "ITERATE": "iterate"
};
const TriggerOpTypes = {
  "SET": "set",
  "ADD": "add",
  "DELETE": "delete",
  "CLEAR": "clear"
};
const ReactiveFlags = {
  "SKIP": "__v_skip",
  "IS_REACTIVE": "__v_isReactive",
  "IS_READONLY": "__v_isReadonly",
  "IS_SHALLOW": "__v_isShallow",
  "RAW": "__v_raw",
  "IS_REF": "__v_isRef"
};
const WatchErrorCodes = {
  "WATCH_GETTER": 2,
  "2": "WATCH_GETTER",
  "WATCH_CALLBACK": 3,
  "3": "WATCH_CALLBACK",
  "WATCH_CLEANUP": 4,
  "4": "WATCH_CLEANUP"
};
const INITIAL_WATCHER_VALUE = {};
const cleanupMap = /* @__PURE__ */ new WeakMap();
let activeWatcher = void 0;
function getCurrentWatcher() {
  return activeWatcher;
}
function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {
  if (owner) {
    let cleanups = cleanupMap.get(owner);
    if (!cleanups) cleanupMap.set(owner, cleanups = []);
    cleanups.push(cleanupFn);
  } else if (false) {
    warn$3(
      `onWatcherCleanup() was called when there was no active watcher to associate with.`
    );
  }
}
function watch$1(source, cb, options = EMPTY_OBJ) {
  const { immediate, deep, once, scheduler, augmentJob, call } = options;
  const warnInvalidSource = (s) => {
    (options.onWarn || warn$3)(
      `Invalid watch source: `,
      s,
      `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`
    );
  };
  const reactiveGetter = (source2) => {
    if (deep) return source2;
    if (/* @__PURE__ */ isShallow(source2) || deep === false || deep === 0)
      return traverse(source2, 1);
    return traverse(source2);
  };
  let effect2;
  let getter;
  let cleanup;
  let boundCleanup;
  let forceTrigger = false;
  let isMultiSource = false;
  if (/* @__PURE__ */ isRef(source)) {
    getter = () => source.value;
    forceTrigger = /* @__PURE__ */ isShallow(source);
  } else if (/* @__PURE__ */ isReactive(source)) {
    getter = () => reactiveGetter(source);
    forceTrigger = true;
  } else if (isArray$1(source)) {
    isMultiSource = true;
    forceTrigger = source.some((s) => /* @__PURE__ */ isReactive(s) || /* @__PURE__ */ isShallow(s));
    getter = () => source.map((s) => {
      if (/* @__PURE__ */ isRef(s)) {
        return s.value;
      } else if (/* @__PURE__ */ isReactive(s)) {
        return reactiveGetter(s);
      } else if (isFunction$1(s)) {
        return call ? call(s, 2) : s();
      } else {
      }
    });
  } else if (isFunction$1(source)) {
    if (cb) {
      getter = call ? () => call(source, 2) : source;
    } else {
      getter = () => {
        if (cleanup) {
          pauseTracking();
          try {
            cleanup();
          } finally {
            resetTracking();
          }
        }
        const currentEffect = activeWatcher;
        activeWatcher = effect2;
        try {
          return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);
        } finally {
          activeWatcher = currentEffect;
        }
      };
    }
  } else {
    getter = NOOP;
  }
  if (cb && deep) {
    const baseGetter = getter;
    const depth = deep === true ? Infinity : deep;
    getter = () => traverse(baseGetter(), depth);
  }
  const scope = getCurrentScope();
  const watchHandle = () => {
    effect2.stop();
    if (scope && scope.active) {
      remove(scope.effects, effect2);
    }
  };
  if (once && cb) {
    const _cb = cb;
    cb = (...args) => {
      _cb(...args);
      watchHandle();
    };
  }
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
  const job = (immediateFirstRun) => {
    if (!(effect2.flags & 1) || !effect2.dirty && !immediateFirstRun) {
      return;
    }
    if (cb) {
      const newValue = effect2.run();
      if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
        if (cleanup) {
          cleanup();
        }
        const currentWatcher = activeWatcher;
        activeWatcher = effect2;
        try {
          const args = [
            newValue,
            // pass undefined as the old value when it's changed for the first time
            oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
            boundCleanup
          ];
          oldValue = newValue;
          call ? call(cb, 3, args) : (
            // @ts-expect-error
            cb(...args)
          );
        } finally {
          activeWatcher = currentWatcher;
        }
      }
    } else {
      effect2.run();
    }
  };
  if (augmentJob) {
    augmentJob(job);
  }
  effect2 = new ReactiveEffect(getter);
  effect2.scheduler = scheduler ? () => scheduler(job, false) : job;
  boundCleanup = (fn) => onWatcherCleanup(fn, false, effect2);
  cleanup = effect2.onStop = () => {
    const cleanups = cleanupMap.get(effect2);
    if (cleanups) {
      if (call) {
        call(cleanups, 4);
      } else {
        for (const cleanup2 of cleanups) cleanup2();
      }
      cleanupMap.delete(effect2);
    }
  };
  if (false) {
    effect2.onTrack = options.onTrack;
    effect2.onTrigger = options.onTrigger;
  }
  if (cb) {
    if (immediate) {
      job(true);
    } else {
      oldValue = effect2.run();
    }
  } else if (scheduler) {
    scheduler(job.bind(null, true), true);
  } else {
    effect2.run();
  }
  watchHandle.pause = effect2.pause.bind(effect2);
  watchHandle.resume = effect2.resume.bind(effect2);
  watchHandle.stop = watchHandle;
  return watchHandle;
}
function traverse(value, depth = Infinity, seen) {
  if (depth <= 0 || !isObject$3(value) || value["__v_skip"]) {
    return value;
  }
  seen = seen || /* @__PURE__ */ new Map();
  if ((seen.get(value) || 0) >= depth) {
    return value;
  }
  seen.set(value, depth);
  depth--;
  if (/* @__PURE__ */ isRef(value)) {
    traverse(value.value, depth, seen);
  } else if (isArray$1(value)) {
    for (let i = 0; i < value.length; i++) {
      traverse(value[i], depth, seen);
    }
  } else if (isSet(value) || isMap(value)) {
    value.forEach((v) => {
      traverse(v, depth, seen);
    });
  } else if (isPlainObject$2(value)) {
    for (const key in value) {
      traverse(value[key], depth, seen);
    }
    for (const key of Object.getOwnPropertySymbols(value)) {
      if (Object.prototype.propertyIsEnumerable.call(value, key)) {
        traverse(value[key], depth, seen);
      }
    }
  }
  return value;
}

/**
* @vue/runtime-core v3.5.31
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
const stack$1 = [];
function pushWarningContext(vnode) {
  stack$1.push(vnode);
}
function popWarningContext() {
  stack$1.pop();
}
let isWarning = false;
function warn$1(msg, ...args) {
  if (isWarning) return;
  isWarning = true;
  pauseTracking();
  const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null;
  const appWarnHandler = instance && instance.appContext.config.warnHandler;
  const trace = getComponentTrace();
  if (appWarnHandler) {
    callWithErrorHandling(
      appWarnHandler,
      instance,
      11,
      [
        // eslint-disable-next-line no-restricted-syntax
        msg + args.map((a) => {
          var _a, _b;
          return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
        }).join(""),
        instance && instance.proxy,
        trace.map(
          ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`
        ).join("\n"),
        trace
      ]
    );
  } else {
    const warnArgs = [`[Vue warn]: ${msg}`, ...args];
    if (trace.length && // avoid spamming console during tests
    true) {
      warnArgs.push(`
`, ...formatTrace(trace));
    }
    console.warn(...warnArgs);
  }
  resetTracking();
  isWarning = false;
}
function getComponentTrace() {
  let currentVNode = stack$1[stack$1.length - 1];
  if (!currentVNode) {
    return [];
  }
  const normalizedStack = [];
  while (currentVNode) {
    const last = normalizedStack[0];
    if (last && last.vnode === currentVNode) {
      last.recurseCount++;
    } else {
      normalizedStack.push({
        vnode: currentVNode,
        recurseCount: 0
      });
    }
    const parentInstance = currentVNode.component && currentVNode.component.parent;
    currentVNode = parentInstance && parentInstance.vnode;
  }
  return normalizedStack;
}
function formatTrace(trace) {
  const logs = [];
  trace.forEach((entry, i) => {
    logs.push(...i === 0 ? [] : [`
`], ...formatTraceEntry(entry));
  });
  return logs;
}
function formatTraceEntry({ vnode, recurseCount }) {
  const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;
  const isRoot = vnode.component ? vnode.component.parent == null : false;
  const open = ` at <${formatComponentName(
    vnode.component,
    vnode.type,
    isRoot
  )}`;
  const close = `>` + postfix;
  return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];
}
function formatProps(props) {
  const res = [];
  const keys = Object.keys(props);
  keys.slice(0, 3).forEach((key) => {
    res.push(...formatProp(key, props[key]));
  });
  if (keys.length > 3) {
    res.push(` ...`);
  }
  return res;
}
function formatProp(key, value, raw) {
  if (isString$2(value)) {
    value = JSON.stringify(value);
    return raw ? value : [`${key}=${value}`];
  } else if (typeof value === "number" || typeof value === "boolean" || value == null) {
    return raw ? value : [`${key}=${value}`];
  } else if (isRef(value)) {
    value = formatProp(key, toRaw(value.value), true);
    return raw ? value : [`${key}=Ref<`, value, `>`];
  } else if (isFunction$1(value)) {
    return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];
  } else {
    value = toRaw(value);
    return raw ? value : [`${key}=`, value];
  }
}
function assertNumber(val, type) {
  if (true) return;
  if (val === void 0) {
    return;
  } else if (typeof val !== "number") {
    warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);
  } else if (isNaN(val)) {
    warn$1(`${type} is NaN - the duration expression might be incorrect.`);
  }
}
const ErrorCodes$1 = {
  "SETUP_FUNCTION": 0,
  "0": "SETUP_FUNCTION",
  "RENDER_FUNCTION": 1,
  "1": "RENDER_FUNCTION",
  "NATIVE_EVENT_HANDLER": 5,
  "5": "NATIVE_EVENT_HANDLER",
  "COMPONENT_EVENT_HANDLER": 6,
  "6": "COMPONENT_EVENT_HANDLER",
  "VNODE_HOOK": 7,
  "7": "VNODE_HOOK",
  "DIRECTIVE_HOOK": 8,
  "8": "DIRECTIVE_HOOK",
  "TRANSITION_HOOK": 9,
  "9": "TRANSITION_HOOK",
  "APP_ERROR_HANDLER": 10,
  "10": "APP_ERROR_HANDLER",
  "APP_WARN_HANDLER": 11,
  "11": "APP_WARN_HANDLER",
  "FUNCTION_REF": 12,
  "12": "FUNCTION_REF",
  "ASYNC_COMPONENT_LOADER": 13,
  "13": "ASYNC_COMPONENT_LOADER",
  "SCHEDULER": 14,
  "14": "SCHEDULER",
  "COMPONENT_UPDATE": 15,
  "15": "COMPONENT_UPDATE",
  "APP_UNMOUNT_CLEANUP": 16,
  "16": "APP_UNMOUNT_CLEANUP"
};
const ErrorTypeStrings$1 = {
  ["sp"]: "serverPrefetch hook",
  ["bc"]: "beforeCreate hook",
  ["c"]: "created hook",
  ["bm"]: "beforeMount hook",
  ["m"]: "mounted hook",
  ["bu"]: "beforeUpdate hook",
  ["u"]: "updated",
  ["bum"]: "beforeUnmount hook",
  ["um"]: "unmounted hook",
  ["a"]: "activated hook",
  ["da"]: "deactivated hook",
  ["ec"]: "errorCaptured hook",
  ["rtc"]: "renderTracked hook",
  ["rtg"]: "renderTriggered hook",
  [0]: "setup function",
  [1]: "render function",
  [2]: "watcher getter",
  [3]: "watcher callback",
  [4]: "watcher cleanup function",
  [5]: "native event handler",
  [6]: "component event handler",
  [7]: "vnode hook",
  [8]: "directive hook",
  [9]: "transition hook",
  [10]: "app errorHandler",
  [11]: "app warnHandler",
  [12]: "ref function",
  [13]: "async component loader",
  [14]: "scheduler flush",
  [15]: "component update",
  [16]: "app unmount cleanup function"
};
function callWithErrorHandling(fn, instance, type, args) {
  try {
    return args ? fn(...args) : fn();
  } catch (err) {
    handleError(err, instance, type);
  }
}
function callWithAsyncErrorHandling(fn, instance, type, args) {
  if (isFunction$1(fn)) {
    const res = callWithErrorHandling(fn, instance, type, args);
    if (res && isPromise$1(res)) {
      res.catch((err) => {
        handleError(err, instance, type);
      });
    }
    return res;
  }
  if (isArray$1(fn)) {
    const values = [];
    for (let i = 0; i < fn.length; i++) {
      values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));
    }
    return values;
  } else if (false) {
    warn$1(
      `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`
    );
  }
}
function handleError(err, instance, type, throwInDev = true) {
  const contextVNode = instance ? instance.vnode : null;
  const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;
  if (instance) {
    let cur = instance.parent;
    const exposedInstance = instance.proxy;
    const errorInfo = false ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;
    while (cur) {
      const errorCapturedHooks = cur.ec;
      if (errorCapturedHooks) {
        for (let i = 0; i < errorCapturedHooks.length; i++) {
          if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {
            return;
          }
        }
      }
      cur = cur.parent;
    }
    if (errorHandler) {
      pauseTracking();
      callWithErrorHandling(errorHandler, null, 10, [
        err,
        exposedInstance,
        errorInfo
      ]);
      resetTracking();
      return;
    }
  }
  logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);
}
function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {
  if (false) {
    const info = ErrorTypeStrings$1[type];
    if (contextVNode) {
      pushWarningContext(contextVNode);
    }
    warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);
    if (contextVNode) {
      popWarningContext();
    }
    if (throwInDev) {
      throw err;
    } else {
      console.error(err);
    }
  } else if (throwInProd) {
    throw err;
  } else {
    console.error(err);
  }
}
const queue = [];
let flushIndex = -1;
const pendingPostFlushCbs = [];
let activePostFlushCbs = null;
let postFlushIndex = 0;
const resolvedPromise = /* @__PURE__ */ Promise.resolve();
let currentFlushPromise = null;
const RECURSION_LIMIT = 100;
function nextTick(fn) {
  const p = currentFlushPromise || resolvedPromise;
  return fn ? p.then(this ? fn.bind(this) : fn) : p;
}
function findInsertionIndex(id) {
  let start = flushIndex + 1;
  let end = queue.length;
  while (start < end) {
    const middle = start + end >>> 1;
    const middleJob = queue[middle];
    const middleJobId = getId(middleJob);
    if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {
      start = middle + 1;
    } else {
      end = middle;
    }
  }
  return start;
}
function queueJob(job) {
  if (!(job.flags & 1)) {
    const jobId = getId(job);
    const lastJob = queue[queue.length - 1];
    if (!lastJob || // fast path when the job id is larger than the tail
    !(job.flags & 2) && jobId >= getId(lastJob)) {
      queue.push(job);
    } else {
      queue.splice(findInsertionIndex(jobId), 0, job);
    }
    job.flags |= 1;
    queueFlush();
  }
}
function queueFlush() {
  if (!currentFlushPromise) {
    currentFlushPromise = resolvedPromise.then(flushJobs);
  }
}
function queuePostFlushCb(cb) {
  if (!isArray$1(cb)) {
    if (activePostFlushCbs && cb.id === -1) {
      activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);
    } else if (!(cb.flags & 1)) {
      pendingPostFlushCbs.push(cb);
      cb.flags |= 1;
    }
  } else {
    pendingPostFlushCbs.push(...cb);
  }
  queueFlush();
}
function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
  if (false) {
    seen = seen || /* @__PURE__ */ new Map();
  }
  for (; i < queue.length; i++) {
    const cb = queue[i];
    if (cb && cb.flags & 2) {
      if (instance && cb.id !== instance.uid) {
        continue;
      }
      if (false) {
        continue;
      }
      queue.splice(i, 1);
      i--;
      if (cb.flags & 4) {
        cb.flags &= -2;
      }
      cb();
      if (!(cb.flags & 4)) {
        cb.flags &= -2;
      }
    }
  }
}
function flushPostFlushCbs(seen) {
  if (pendingPostFlushCbs.length) {
    const deduped = [...new Set(pendingPostFlushCbs)].sort(
      (a, b) => getId(a) - getId(b)
    );
    pendingPostFlushCbs.length = 0;
    if (activePostFlushCbs) {
      activePostFlushCbs.push(...deduped);
      return;
    }
    activePostFlushCbs = deduped;
    if (false) {
      seen = seen || /* @__PURE__ */ new Map();
    }
    for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
      const cb = activePostFlushCbs[postFlushIndex];
      if (false) {
        continue;
      }
      if (cb.flags & 4) {
        cb.flags &= -2;
      }
      if (!(cb.flags & 8)) cb();
      cb.flags &= -2;
    }
    activePostFlushCbs = null;
    postFlushIndex = 0;
  }
}
const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
function flushJobs(seen) {
  if (false) {
    seen = seen || /* @__PURE__ */ new Map();
  }
  const check = false ? (job) => checkRecursiveUpdates(seen, job) : NOOP;
  try {
    for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {
      const job = queue[flushIndex];
      if (job && !(job.flags & 8)) {
        if (false) {
          continue;
        }
        if (job.flags & 4) {
          job.flags &= ~1;
        }
        callWithErrorHandling(
          job,
          job.i,
          job.i ? 15 : 14
        );
        if (!(job.flags & 4)) {
          job.flags &= ~1;
        }
      }
    }
  } finally {
    for (; flushIndex < queue.length; flushIndex++) {
      const job = queue[flushIndex];
      if (job) {
        job.flags &= -2;
      }
    }
    flushIndex = -1;
    queue.length = 0;
    flushPostFlushCbs(seen);
    currentFlushPromise = null;
    if (queue.length || pendingPostFlushCbs.length) {
      flushJobs(seen);
    }
  }
}
function checkRecursiveUpdates(seen, fn) {
  const count = seen.get(fn) || 0;
  if (count > RECURSION_LIMIT) {
    const instance = fn.i;
    const componentName = instance && getComponentName(instance.type);
    handleError(
      `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,
      null,
      10
    );
    return true;
  }
  seen.set(fn, count + 1);
  return false;
}
let isHmrUpdating = false;
const setHmrUpdating = (v) => {
  try {
    return isHmrUpdating;
  } finally {
    isHmrUpdating = v;
  }
};
const hmrDirtyComponents = /* @__PURE__ */ new Map();
if (false) {
  getGlobalThis$1().__VUE_HMR_RUNTIME__ = {
    createRecord: tryWrap(createRecord),
    rerender: tryWrap(rerender),
    reload: tryWrap(reload)
  };
}
const map = /* @__PURE__ */ new Map();
function registerHMR(instance) {
  const id = instance.type.__hmrId;
  let record = map.get(id);
  if (!record) {
    createRecord(id, instance.type);
    record = map.get(id);
  }
  record.instances.add(instance);
}
function unregisterHMR(instance) {
  map.get(instance.type.__hmrId).instances.delete(instance);
}
function createRecord(id, initialDef) {
  if (map.has(id)) {
    return false;
  }
  map.set(id, {
    initialDef: normalizeClassComponent(initialDef),
    instances: /* @__PURE__ */ new Set()
  });
  return true;
}
function normalizeClassComponent(component) {
  return isClassComponent(component) ? component.__vccOpts : component;
}
function rerender(id, newRender) {
  const record = map.get(id);
  if (!record) {
    return;
  }
  record.initialDef.render = newRender;
  [...record.instances].forEach((instance) => {
    if (newRender) {
      instance.render = newRender;
      normalizeClassComponent(instance.type).render = newRender;
    }
    instance.renderCache = [];
    isHmrUpdating = true;
    if (!(instance.job.flags & 8)) {
      instance.update();
    }
    isHmrUpdating = false;
  });
}
function reload(id, newComp) {
  const record = map.get(id);
  if (!record) return;
  newComp = normalizeClassComponent(newComp);
  updateComponentDef(record.initialDef, newComp);
  const instances = [...record.instances];
  for (let i = 0; i < instances.length; i++) {
    const instance = instances[i];
    const oldComp = normalizeClassComponent(instance.type);
    let dirtyInstances = hmrDirtyComponents.get(oldComp);
    if (!dirtyInstances) {
      if (oldComp !== record.initialDef) {
        updateComponentDef(oldComp, newComp);
      }
      hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());
    }
    dirtyInstances.add(instance);
    instance.appContext.propsCache.delete(instance.type);
    instance.appContext.emitsCache.delete(instance.type);
    instance.appContext.optionsCache.delete(instance.type);
    if (instance.ceReload) {
      dirtyInstances.add(instance);
      instance.ceReload(newComp.styles);
      dirtyInstances.delete(instance);
    } else if (instance.parent) {
      queueJob(() => {
        if (!(instance.job.flags & 8)) {
          isHmrUpdating = true;
          instance.parent.update();
          isHmrUpdating = false;
          dirtyInstances.delete(instance);
        }
      });
    } else if (instance.appContext.reload) {
      instance.appContext.reload();
    } else if (typeof window !== "undefined") {
      window.location.reload();
    } else {
      console.warn(
        "[HMR] Root or manually mounted instance modified. Full reload required."
      );
    }
    if (instance.root.ce && instance !== instance.root) {
      instance.root.ce._removeChildStyle(oldComp);
    }
  }
  queuePostFlushCb(() => {
    hmrDirtyComponents.clear();
  });
}
function updateComponentDef(oldComp, newComp) {
  extend(oldComp, newComp);
  for (const key in oldComp) {
    if (key !== "__file" && !(key in newComp)) {
      delete oldComp[key];
    }
  }
}
function tryWrap(fn) {
  return (id, arg) => {
    try {
      return fn(id, arg);
    } catch (e) {
      console.error(e);
      console.warn(
        `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`
      );
    }
  };
}
let devtools$1;
let buffer = [];
let devtoolsNotInstalled = false;
function emit$1(event, ...args) {
  if (devtools$1) {
    devtools$1.emit(event, ...args);
  } else if (!devtoolsNotInstalled) {
    buffer.push({ event, args });
  }
}
function setDevtoolsHook$1(hook, target) {
  var _a, _b;
  devtools$1 = hook;
  if (devtools$1) {
    devtools$1.enabled = true;
    buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));
    buffer = [];
  } else if (
    // handle late devtools injection - only do this if we are in an actual
    // browser environment to avoid the timer handle stalling test runner exit
    // (#4815)
    typeof window !== "undefined" && // some envs mock window but not fully
    window.HTMLElement && // also exclude jsdom
    // eslint-disable-next-line no-restricted-syntax
    !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom"))
  ) {
    const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];
    replay.push((newHook) => {
      setDevtoolsHook$1(newHook, target);
    });
    setTimeout(() => {
      if (!devtools$1) {
        target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
        devtoolsNotInstalled = true;
        buffer = [];
      }
    }, 3e3);
  } else {
    devtoolsNotInstalled = true;
    buffer = [];
  }
}
function devtoolsInitApp(app, version2) {
  emit$1("app:init", app, version2, {
    Fragment,
    Text,
    Comment,
    Static
  });
}
function devtoolsUnmountApp(app) {
  emit$1("app:unmount", app);
}
const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(
  "component:added"
  /* COMPONENT_ADDED */
);
const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(
  "component:updated"
  /* COMPONENT_UPDATED */
);
const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(
  "component:removed"
  /* COMPONENT_REMOVED */
);
const devtoolsComponentRemoved = (component) => {
  if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered
  !devtools$1.cleanupBuffer(component)) {
    _devtoolsComponentRemoved(component);
  }
};
// @__NO_SIDE_EFFECTS__
function createDevtoolsComponentHook(hook) {
  return (component) => {
    emit$1(
      hook,
      component.appContext.app,
      component.uid,
      component.parent ? component.parent.uid : void 0,
      component
    );
  };
}
const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(
  "perf:start"
  /* PERFORMANCE_START */
);
const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(
  "perf:end"
  /* PERFORMANCE_END */
);
function createDevtoolsPerformanceHook(hook) {
  return (component, type, time) => {
    emit$1(hook, component.appContext.app, component.uid, component, type, time);
  };
}
function devtoolsComponentEmit(component, event, params) {
  emit$1(
    "component:emit",
    component.appContext.app,
    component,
    event,
    params
  );
}
let currentRenderingInstance = null;
let currentScopeId = null;
function setCurrentRenderingInstance(instance) {
  const prev = currentRenderingInstance;
  currentRenderingInstance = instance;
  currentScopeId = instance && instance.type.__scopeId || null;
  return prev;
}
function pushScopeId(id) {
  currentScopeId = id;
}
function popScopeId() {
  currentScopeId = null;
}
const withScopeId = (_id) => withCtx;
function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
  if (!ctx) return fn;
  if (fn._n) {
    return fn;
  }
  const renderFnWithContext = (...args) => {
    if (renderFnWithContext._d) {
      setBlockTracking(-1);
    }
    const prevInstance = setCurrentRenderingInstance(ctx);
    let res;
    try {
      res = fn(...args);
    } finally {
      setCurrentRenderingInstance(prevInstance);
      if (renderFnWithContext._d) {
        setBlockTracking(1);
      }
    }
    if (true) {
      devtoolsComponentUpdated(ctx);
    }
    return res;
  };
  renderFnWithContext._n = true;
  renderFnWithContext._c = true;
  renderFnWithContext._d = true;
  return renderFnWithContext;
}
function validateDirectiveName(name) {
  if (isBuiltInDirective(name)) {
    warn$1("Do not use built-in directive ids as custom directive id: " + name);
  }
}
function withDirectives(vnode, directives) {
  if (currentRenderingInstance === null) {
    return vnode;
  }
  const instance = getComponentPublicInstance(currentRenderingInstance);
  const bindings = vnode.dirs || (vnode.dirs = []);
  for (let i = 0; i < directives.length; i++) {
    let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
    if (dir) {
      if (isFunction$1(dir)) {
        dir = {
          mounted: dir,
          updated: dir
        };
      }
      if (dir.deep) {
        traverse(value);
      }
      bindings.push({
        dir,
        instance,
        value,
        oldValue: void 0,
        arg,
        modifiers
      });
    }
  }
  return vnode;
}
function invokeDirectiveHook(vnode, prevVNode, instance, name) {
  const bindings = vnode.dirs;
  const oldBindings = prevVNode && prevVNode.dirs;
  for (let i = 0; i < bindings.length; i++) {
    const binding = bindings[i];
    if (oldBindings) {
      binding.oldValue = oldBindings[i].value;
    }
    let hook = binding.dir[name];
    if (hook) {
      pauseTracking();
      callWithAsyncErrorHandling(hook, instance, 8, [
        vnode.el,
        binding,
        vnode,
        prevVNode
      ]);
      resetTracking();
    }
  }
}
function provide(key, value) {
  if (false) {
    if (!currentInstance || currentInstance.isMounted) {
      warn$1(`provide() can only be used inside setup().`);
    }
  }
  if (currentInstance) {
    let provides = currentInstance.provides;
    const parentProvides = currentInstance.parent && currentInstance.parent.provides;
    if (parentProvides === provides) {
      provides = currentInstance.provides = Object.create(parentProvides);
    }
    provides[key] = value;
  }
}
function inject(key, defaultValue, treatDefaultAsFactory = false) {
  const instance = getCurrentInstance();
  if (instance || currentApp) {
    let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;
    if (provides && key in provides) {
      return provides[key];
    } else if (arguments.length > 1) {
      return treatDefaultAsFactory && isFunction$1(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
    } else if (false) {
      warn$1(`injection "${String(key)}" not found.`);
    }
  } else if (false) {
    warn$1(`inject() can only be used inside setup() or functional components.`);
  }
}
function hasInjectionContext() {
  return !!(getCurrentInstance() || currentApp);
}
const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx");
const useSSRContext = () => {
  {
    const ctx = inject(ssrContextKey);
    if (!ctx) {
    }
    return ctx;
  }
};
function watchEffect(effect2, options) {
  return doWatch(effect2, null, options);
}
function watchPostEffect(effect2, options) {
  return doWatch(
    effect2,
    null,
    false ? extend({}, options, { flush: "post" }) : { flush: "post" }
  );
}
function watchSyncEffect(effect2, options) {
  return doWatch(
    effect2,
    null,
    false ? extend({}, options, { flush: "sync" }) : { flush: "sync" }
  );
}
function watch(source, cb, options) {
  if (false) {
    warn$1(
      `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.`
    );
  }
  return doWatch(source, cb, options);
}
function doWatch(source, cb, options = EMPTY_OBJ) {
  const { immediate, deep, flush, once } = options;
  if (false) {
    if (immediate !== void 0) {
      warn$1(
        `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.`
      );
    }
    if (deep !== void 0) {
      warn$1(
        `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`
      );
    }
    if (once !== void 0) {
      warn$1(
        `watch() "once" option is only respected when using the watch(source, callback, options?) signature.`
      );
    }
  }
  const baseWatchOptions = extend({}, options);
  if (false) baseWatchOptions.onWarn = warn$1;
  const runsImmediately = cb && immediate || !cb && flush !== "post";
  let ssrCleanup;
  if (isInSSRComponentSetup) {
    if (flush === "sync") {
      const ctx = useSSRContext();
      ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
    } else if (!runsImmediately) {
      const watchStopHandle = () => {
      };
      watchStopHandle.stop = NOOP;
      watchStopHandle.resume = NOOP;
      watchStopHandle.pause = NOOP;
      return watchStopHandle;
    }
  }
  const instance = currentInstance;
  baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);
  let isPre = false;
  if (flush === "post") {
    baseWatchOptions.scheduler = (job) => {
      queuePostRenderEffect(job, instance && instance.suspense);
    };
  } else if (flush !== "sync") {
    isPre = true;
    baseWatchOptions.scheduler = (job, isFirstRun) => {
      if (isFirstRun) {
        job();
      } else {
        queueJob(job);
      }
    };
  }
  baseWatchOptions.augmentJob = (job) => {
    if (cb) {
      job.flags |= 4;
    }
    if (isPre) {
      job.flags |= 2;
      if (instance) {
        job.id = instance.uid;
        job.i = instance;
      }
    }
  };
  const watchHandle = watch$1(source, cb, baseWatchOptions);
  if (isInSSRComponentSetup) {
    if (ssrCleanup) {
      ssrCleanup.push(watchHandle);
    } else if (runsImmediately) {
      watchHandle();
    }
  }
  return watchHandle;
}
function instanceWatch(source, value, options) {
  const publicThis = this.proxy;
  const getter = isString$2(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
  let cb;
  if (isFunction$1(value)) {
    cb = value;
  } else {
    cb = value.handler;
    options = value;
  }
  const reset = setCurrentInstance(this);
  const res = doWatch(getter, cb.bind(publicThis), options);
  reset();
  return res;
}
function createPathGetter(ctx, path) {
  const segments = path.split(".");
  return () => {
    let cur = ctx;
    for (let i = 0; i < segments.length && cur; i++) {
      cur = cur[segments[i]];
    }
    return cur;
  };
}
const TeleportEndKey = /* @__PURE__ */ Symbol("_vte");
const isTeleport = (type) => type.__isTeleport;
const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
const isTeleportDeferred = (props) => props && (props.defer || props.defer === "");
const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement;
const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
const resolveTarget = (props, select) => {
  const targetSelector = props && props.to;
  if (isString$2(targetSelector)) {
    if (!select) {
      return null;
    } else {
      const target = select(targetSelector);
      if (false) {
        warn$1(
          `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`
        );
      }
      return target;
    }
  } else {
    if (false) {
      warn$1(`Invalid Teleport target: ${targetSelector}`);
    }
    return targetSelector;
  }
};
const TeleportImpl = {
  name: "Teleport",
  __isTeleport: true,
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {
    const {
      mc: mountChildren,
      pc: patchChildren,
      pbc: patchBlockChildren,
      o: { insert, querySelector, createText, createComment }
    } = internals;
    const disabled = isTeleportDisabled(n2.props);
    let { shapeFlag, children, dynamicChildren } = n2;
    if (false) {
      optimized = false;
      dynamicChildren = null;
    }
    if (n1 == null) {
      const placeholder = n2.el = false ? createComment("teleport start") : createText("");
      const mainAnchor = n2.anchor = false ? createComment("teleport end") : createText("");
      insert(placeholder, container, anchor);
      insert(mainAnchor, container, anchor);
      const mount = (container2, anchor2) => {
        if (shapeFlag & 16) {
          mountChildren(
            children,
            container2,
            anchor2,
            parentComponent,
            parentSuspense,
            namespace,
            slotScopeIds,
            optimized
          );
        }
      };
      const mountToTarget = () => {
        const target = n2.target = resolveTarget(n2.props, querySelector);
        const targetAnchor = prepareAnchor(target, n2, createText, insert);
        if (target) {
          if (namespace !== "svg" && isTargetSVG(target)) {
            namespace = "svg";
          } else if (namespace !== "mathml" && isTargetMathML(target)) {
            namespace = "mathml";
          }
          if (parentComponent && parentComponent.isCE) {
            (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
          }
          if (!disabled) {
            mount(target, targetAnchor);
            updateCssVars(n2, false);
          }
        } else if (false) {
          warn$1(
            "Invalid Teleport target on mount:",
            target,
            `(${typeof target})`
          );
        }
      };
      if (disabled) {
        mount(container, mainAnchor);
        updateCssVars(n2, true);
      }
      if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
        n2.el.__isMounted = false;
        queuePostRenderEffect(() => {
          if (n2.el.__isMounted !== false) return;
          mountToTarget();
          delete n2.el.__isMounted;
        }, parentSuspense);
      } else {
        mountToTarget();
      }
    } else {
      n2.el = n1.el;
      n2.targetStart = n1.targetStart;
      const mainAnchor = n2.anchor = n1.anchor;
      const target = n2.target = n1.target;
      const targetAnchor = n2.targetAnchor = n1.targetAnchor;
      if (n1.el.__isMounted === false) {
        queuePostRenderEffect(() => {
          TeleportImpl.process(
            n1,
            n2,
            container,
            anchor,
            parentComponent,
            parentSuspense,
            namespace,
            slotScopeIds,
            optimized,
            internals
          );
        }, parentSuspense);
        return;
      }
      const wasDisabled = isTeleportDisabled(n1.props);
      const currentContainer = wasDisabled ? container : target;
      const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
      if (namespace === "svg" || isTargetSVG(target)) {
        namespace = "svg";
      } else if (namespace === "mathml" || isTargetMathML(target)) {
        namespace = "mathml";
      }
      if (dynamicChildren) {
        patchBlockChildren(
          n1.dynamicChildren,
          dynamicChildren,
          currentContainer,
          parentComponent,
          parentSuspense,
          namespace,
          slotScopeIds
        );
        traverseStaticChildren(n1, n2, true);
      } else if (!optimized) {
        patchChildren(
          n1,
          n2,
          currentContainer,
          currentAnchor,
          parentComponent,
          parentSuspense,
          namespace,
          slotScopeIds,
          false
        );
      }
      if (disabled) {
        if (!wasDisabled) {
          moveTeleport(
            n2,
            container,
            mainAnchor,
            internals,
            1
          );
        } else {
          if (n2.props && n1.props && n2.props.to !== n1.props.to) {
            n2.props.to = n1.props.to;
          }
        }
      } else {
        if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
          const nextTarget = n2.target = resolveTarget(
            n2.props,
            querySelector
          );
          if (nextTarget) {
            moveTeleport(
              n2,
              nextTarget,
              null,
              internals,
              0
            );
          } else if (false) {
            warn$1(
              "Invalid Teleport target on update:",
              target,
              `(${typeof target})`
            );
          }
        } else if (wasDisabled) {
          moveTeleport(
            n2,
            target,
            targetAnchor,
            internals,
            1
          );
        }
      }
      updateCssVars(n2, disabled);
    }
  },
  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
    const {
      shapeFlag,
      children,
      anchor,
      targetStart,
      targetAnchor,
      target,
      props
    } = vnode;
    if (target) {
      hostRemove(targetStart);
      hostRemove(targetAnchor);
    }
    doRemove && hostRemove(anchor);
    if (shapeFlag & 16) {
      const shouldRemove = doRemove || !isTeleportDisabled(props);
      for (let i = 0; i < children.length; i++) {
        const child = children[i];
        unmount(
          child,
          parentComponent,
          parentSuspense,
          shouldRemove,
          !!child.dynamicChildren
        );
      }
    }
  },
  move: moveTeleport,
  hydrate: hydrateTeleport
};
function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
  if (moveType === 0) {
    insert(vnode.targetAnchor, container, parentAnchor);
  }
  const { el, anchor, shapeFlag, children, props } = vnode;
  const isReorder = moveType === 2;
  if (isReorder) {
    insert(el, container, parentAnchor);
  }
  if (!isReorder || isTeleportDisabled(props)) {
    if (shapeFlag & 16) {
      for (let i = 0; i < children.length; i++) {
        move(
          children[i],
          container,
          parentAnchor,
          2
        );
      }
    }
  }
  if (isReorder) {
    insert(anchor, container, parentAnchor);
  }
}
function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
  o: { nextSibling, parentNode, querySelector, insert, createText }
}, hydrateChildren) {
  function hydrateAnchor(target2, targetNode) {
    let targetAnchor = targetNode;
    while (targetAnchor) {
      if (targetAnchor && targetAnchor.nodeType === 8) {
        if (targetAnchor.data === "teleport start anchor") {
          vnode.targetStart = targetAnchor;
        } else if (targetAnchor.data === "teleport anchor") {
          vnode.targetAnchor = targetAnchor;
          target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
          break;
        }
      }
      targetAnchor = nextSibling(targetAnchor);
    }
  }
  function hydrateDisabledTeleport(node2, vnode2) {
    vnode2.anchor = hydrateChildren(
      nextSibling(node2),
      vnode2,
      parentNode(node2),
      parentComponent,
      parentSuspense,
      slotScopeIds,
      optimized
    );
  }
  const target = vnode.target = resolveTarget(
    vnode.props,
    querySelector
  );
  const disabled = isTeleportDisabled(vnode.props);
  if (target) {
    const targetNode = target._lpa || target.firstChild;
    if (vnode.shapeFlag & 16) {
      if (disabled) {
        hydrateDisabledTeleport(node, vnode);
        hydrateAnchor(target, targetNode);
        if (!vnode.targetAnchor) {
          prepareAnchor(
            target,
            vnode,
            createText,
            insert,
            // if target is the same as the main view, insert anchors before current node
            // to avoid hydrating mismatch
            parentNode(node) === target ? node : null
          );
        }
      } else {
        vnode.anchor = nextSibling(node);
        hydrateAnchor(target, targetNode);
        if (!vnode.targetAnchor) {
          prepareAnchor(target, vnode, createText, insert);
        }
        hydrateChildren(
          targetNode && nextSibling(targetNode),
          vnode,
          target,
          parentComponent,
          parentSuspense,
          slotScopeIds,
          optimized
        );
      }
    }
    updateCssVars(vnode, disabled);
  } else if (disabled) {
    if (vnode.shapeFlag & 16) {
      hydrateDisabledTeleport(node, vnode);
      vnode.targetStart = node;
      vnode.targetAnchor = nextSibling(node);
    }
  }
  return vnode.anchor && nextSibling(vnode.anchor);
}
const Teleport = TeleportImpl;
function updateCssVars(vnode, isDisabled) {
  const ctx = vnode.ctx;
  if (ctx && ctx.ut) {
    let node, anchor;
    if (isDisabled) {
      node = vnode.el;
      anchor = vnode.anchor;
    } else {
      node = vnode.targetStart;
      anchor = vnode.targetAnchor;
    }
    while (node && node !== anchor) {
      if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid);
      node = node.nextSibling;
    }
    ctx.ut();
  }
}
function prepareAnchor(target, vnode, createText, insert, anchor = null) {
  const targetStart = vnode.targetStart = createText("");
  const targetAnchor = vnode.targetAnchor = createText("");
  targetStart[TeleportEndKey] = targetAnchor;
  if (target) {
    insert(targetStart, target, anchor);
    insert(targetAnchor, target, anchor);
  }
  return targetAnchor;
}
const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb");
const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb");
function useTransitionState() {
  const state = {
    isMounted: false,
    isLeaving: false,
    isUnmounting: false,
    leavingVNodes: /* @__PURE__ */ new Map()
  };
  onMounted(() => {
    state.isMounted = true;
  });
  onBeforeUnmount(() => {
    state.isUnmounting = true;
  });
  return state;
}
const TransitionHookValidator = [Function, Array];
const BaseTransitionPropsValidators = {
  mode: String,
  appear: Boolean,
  persisted: Boolean,
  // enter
  onBeforeEnter: TransitionHookValidator,
  onEnter: TransitionHookValidator,
  onAfterEnter: TransitionHookValidator,
  onEnterCancelled: TransitionHookValidator,
  // leave
  onBeforeLeave: TransitionHookValidator,
  onLeave: TransitionHookValidator,
  onAfterLeave: TransitionHookValidator,
  onLeaveCancelled: TransitionHookValidator,
  // appear
  onBeforeAppear: TransitionHookValidator,
  onAppear: TransitionHookValidator,
  onAfterAppear: TransitionHookValidator,
  onAppearCancelled: TransitionHookValidator
};
const recursiveGetSubtree = (instance) => {
  const subTree = instance.subTree;
  return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
};
const BaseTransitionImpl = {
  name: `BaseTransition`,
  props: BaseTransitionPropsValidators,
  setup(props, { slots }) {
    const instance = getCurrentInstance();
    const state = useTransitionState();
    return () => {
      const children = slots.default && getTransitionRawChildren(slots.default(), true);
      if (!children || !children.length) {
        return;
      }
      const child = findNonCommentChild(children);
      const rawProps = toRaw(props);
      const { mode } = rawProps;
      if (false) {
        warn$1(`invalid <transition> mode: ${mode}`);
      }
      if (state.isLeaving) {
        return emptyPlaceholder(child);
      }
      const innerChild = getInnerChild$1(child);
      if (!innerChild) {
        return emptyPlaceholder(child);
      }
      let enterHooks = resolveTransitionHooks(
        innerChild,
        rawProps,
        state,
        instance,
        // #11061, ensure enterHooks is fresh after clone
        (hooks) => enterHooks = hooks
      );
      if (innerChild.type !== Comment) {
        setTransitionHooks(innerChild, enterHooks);
      }
      let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
      if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
        let leavingHooks = resolveTransitionHooks(
          oldInnerChild,
          rawProps,
          state,
          instance
        );
        setTransitionHooks(oldInnerChild, leavingHooks);
        if (mode === "out-in" && innerChild.type !== Comment) {
          state.isLeaving = true;
          leavingHooks.afterLeave = () => {
            state.isLeaving = false;
            if (!(instance.job.flags & 8)) {
              instance.update();
            }
            delete leavingHooks.afterLeave;
            oldInnerChild = void 0;
          };
          return emptyPlaceholder(child);
        } else if (mode === "in-out" && innerChild.type !== Comment) {
          leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
            const leavingVNodesCache = getLeavingNodesForType(
              state,
              oldInnerChild
            );
            leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
            el[leaveCbKey] = () => {
              earlyRemove();
              el[leaveCbKey] = void 0;
              delete enterHooks.delayedLeave;
              oldInnerChild = void 0;
            };
            enterHooks.delayedLeave = () => {
              delayedLeave();
              delete enterHooks.delayedLeave;
              oldInnerChild = void 0;
            };
          };
        } else {
          oldInnerChild = void 0;
        }
      } else if (oldInnerChild) {
        oldInnerChild = void 0;
      }
      return child;
    };
  }
};
function findNonCommentChild(children) {
  let child = children[0];
  if (children.length > 1) {
    let hasFound = false;
    for (const c of children) {
      if (c.type !== Comment) {
        if (false) {
          warn$1(
            "<transition> can only be used on a single element or component. Use <transition-group> for lists."
          );
          break;
        }
        child = c;
        hasFound = true;
        if (true) break;
      }
    }
  }
  return child;
}
const BaseTransition = BaseTransitionImpl;
function getLeavingNodesForType(state, vnode) {
  const { leavingVNodes } = state;
  let leavingVNodesCache = leavingVNodes.get(vnode.type);
  if (!leavingVNodesCache) {
    leavingVNodesCache = /* @__PURE__ */ Object.create(null);
    leavingVNodes.set(vnode.type, leavingVNodesCache);
  }
  return leavingVNodesCache;
}
function resolveTransitionHooks(vnode, props, state, instance, postClone) {
  const {
    appear,
    mode,
    persisted = false,
    onBeforeEnter,
    onEnter,
    onAfterEnter,
    onEnterCancelled,
    onBeforeLeave,
    onLeave,
    onAfterLeave,
    onLeaveCancelled,
    onBeforeAppear,
    onAppear,
    onAfterAppear,
    onAppearCancelled
  } = props;
  const key = String(vnode.key);
  const leavingVNodesCache = getLeavingNodesForType(state, vnode);
  const callHook2 = (hook, args) => {
    hook && callWithAsyncErrorHandling(
      hook,
      instance,
      9,
      args
    );
  };
  const callAsyncHook = (hook, args) => {
    const done = args[1];
    callHook2(hook, args);
    if (isArray$1(hook)) {
      if (hook.every((hook2) => hook2.length <= 1)) done();
    } else if (hook.length <= 1) {
      done();
    }
  };
  const hooks = {
    mode,
    persisted,
    beforeEnter(el) {
      let hook = onBeforeEnter;
      if (!state.isMounted) {
        if (appear) {
          hook = onBeforeAppear || onBeforeEnter;
        } else {
          return;
        }
      }
      if (el[leaveCbKey]) {
        el[leaveCbKey](
          true
          /* cancelled */
        );
      }
      const leavingVNode = leavingVNodesCache[key];
      if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
        leavingVNode.el[leaveCbKey]();
      }
      callHook2(hook, [el]);
    },
    enter(el) {
      if (!isHmrUpdating && leavingVNodesCache[key] === vnode) return;
      let hook = onEnter;
      let afterHook = onAfterEnter;
      let cancelHook = onEnterCancelled;
      if (!state.isMounted) {
        if (appear) {
          hook = onAppear || onEnter;
          afterHook = onAfterAppear || onAfterEnter;
          cancelHook = onAppearCancelled || onEnterCancelled;
        } else {
          return;
        }
      }
      let called = false;
      el[enterCbKey$1] = (cancelled) => {
        if (called) return;
        called = true;
        if (cancelled) {
          callHook2(cancelHook, [el]);
        } else {
          callHook2(afterHook, [el]);
        }
        if (hooks.delayedLeave) {
          hooks.delayedLeave();
        }
        el[enterCbKey$1] = void 0;
      };
      const done = el[enterCbKey$1].bind(null, false);
      if (hook) {
        callAsyncHook(hook, [el, done]);
      } else {
        done();
      }
    },
    leave(el, remove2) {
      const key2 = String(vnode.key);
      if (el[enterCbKey$1]) {
        el[enterCbKey$1](
          true
          /* cancelled */
        );
      }
      if (state.isUnmounting) {
        return remove2();
      }
      callHook2(onBeforeLeave, [el]);
      let called = false;
      el[leaveCbKey] = (cancelled) => {
        if (called) return;
        called = true;
        remove2();
        if (cancelled) {
          callHook2(onLeaveCancelled, [el]);
        } else {
          callHook2(onAfterLeave, [el]);
        }
        el[leaveCbKey] = void 0;
        if (leavingVNodesCache[key2] === vnode) {
          delete leavingVNodesCache[key2];
        }
      };
      const done = el[leaveCbKey].bind(null, false);
      leavingVNodesCache[key2] = vnode;
      if (onLeave) {
        callAsyncHook(onLeave, [el, done]);
      } else {
        done();
      }
    },
    clone(vnode2) {
      const hooks2 = resolveTransitionHooks(
        vnode2,
        props,
        state,
        instance,
        postClone
      );
      if (postClone) postClone(hooks2);
      return hooks2;
    }
  };
  return hooks;
}
function emptyPlaceholder(vnode) {
  if (isKeepAlive(vnode)) {
    vnode = cloneVNode(vnode);
    vnode.children = null;
    return vnode;
  }
}
function getInnerChild$1(vnode) {
  if (!isKeepAlive(vnode)) {
    if (isTeleport(vnode.type) && vnode.children) {
      return findNonCommentChild(vnode.children);
    }
    return vnode;
  }
  if (vnode.component) {
    return vnode.component.subTree;
  }
  const { shapeFlag, children } = vnode;
  if (children) {
    if (shapeFlag & 16) {
      return children[0];
    }
    if (shapeFlag & 32 && isFunction$1(children.default)) {
      return children.default();
    }
  }
}
function setTransitionHooks(vnode, hooks) {
  if (vnode.shapeFlag & 6 && vnode.component) {
    vnode.transition = hooks;
    setTransitionHooks(vnode.component.subTree, hooks);
  } else if (vnode.shapeFlag & 128) {
    vnode.ssContent.transition = hooks.clone(vnode.ssContent);
    vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
  } else {
    vnode.transition = hooks;
  }
}
function getTransitionRawChildren(children, keepComment = false, parentKey) {
  let ret = [];
  let keyedFragmentCount = 0;
  for (let i = 0; i < children.length; i++) {
    let child = children[i];
    const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);
    if (child.type === Fragment) {
      if (child.patchFlag & 128) keyedFragmentCount++;
      ret = ret.concat(
        getTransitionRawChildren(child.children, keepComment, key)
      );
    } else if (keepComment || child.type !== Comment) {
      ret.push(key != null ? cloneVNode(child, { key }) : child);
    }
  }
  if (keyedFragmentCount > 1) {
    for (let i = 0; i < ret.length; i++) {
      ret[i].patchFlag = -2;
    }
  }
  return ret;
}
// @__NO_SIDE_EFFECTS__
function defineComponent(options, extraOptions) {
  return isFunction$1(options) ? (
    // #8236: extend call and options.name access are considered side-effects
    // by Rollup, so we have to wrap it in a pure-annotated IIFE.
    /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()
  ) : options;
}
function useId() {
  const i = getCurrentInstance();
  if (i) {
    return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++;
  } else if (false) {
    warn$1(
      `useId() is called when there is no active component instance to be associated with.`
    );
  }
  return "";
}
function markAsyncBoundary(instance) {
  instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0];
}
const knownTemplateRefs = /* @__PURE__ */ new WeakSet();
function useTemplateRef(key) {
  const i = getCurrentInstance();
  const r = shallowRef(null);
  if (i) {
    const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
    if (false) {
      warn$1(`useTemplateRef('${key}') already exists.`);
    } else {
      Object.defineProperty(refs, key, {
        enumerable: true,
        get: () => r.value,
        set: (val) => r.value = val
      });
    }
  } else if (false) {
    warn$1(
      `useTemplateRef() is called when there is no active component instance to be associated with.`
    );
  }
  const ret = false ? readonly(r) : r;
  if (false) {
    knownTemplateRefs.add(ret);
  }
  return ret;
}
function isTemplateRefKey(refs, key) {
  let desc;
  return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
}
const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
  if (isArray$1(rawRef)) {
    rawRef.forEach(
      (r, i) => setRef(
        r,
        oldRawRef && (isArray$1(oldRawRef) ? oldRawRef[i] : oldRawRef),
        parentSuspense,
        vnode,
        isUnmount
      )
    );
    return;
  }
  if (isAsyncWrapper(vnode) && !isUnmount) {
    if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {
      setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);
    }
    return;
  }
  const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;
  const value = isUnmount ? null : refValue;
  const { i: owner, r: ref3 } = rawRef;
  if (false) {
    warn$1(
      `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`
    );
    return;
  }
  const oldRef = oldRawRef && oldRawRef.r;
  const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
  const setupState = owner.setupState;
  const rawSetupState = toRaw(setupState);
  const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {
    if (false) {
      if (hasOwn$1(rawSetupState, key) && !isRef(rawSetupState[key])) {
        warn$1(
          `Template ref "${key}" used on a non-ref value. It will not work in the production build.`
        );
      }
      if (knownTemplateRefs.has(rawSetupState[key])) {
        return false;
      }
    }
    if (isTemplateRefKey(refs, key)) {
      return false;
    }
    return hasOwn$1(rawSetupState, key);
  };
  const canSetRef = (ref22, key) => {
    if (false) {
      return false;
    }
    if (key && isTemplateRefKey(refs, key)) {
      return false;
    }
    return true;
  };
  if (oldRef != null && oldRef !== ref3) {
    invalidatePendingSetRef(oldRawRef);
    if (isString$2(oldRef)) {
      refs[oldRef] = null;
      if (canSetSetupRef(oldRef)) {
        setupState[oldRef] = null;
      }
    } else if (isRef(oldRef)) {
      const oldRawRefAtom = oldRawRef;
      if (canSetRef(oldRef, oldRawRefAtom.k)) {
        oldRef.value = null;
      }
      if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
    }
  }
  if (isFunction$1(ref3)) {
    callWithErrorHandling(ref3, owner, 12, [value, refs]);
  } else {
    const _isString = isString$2(ref3);
    const _isRef = isRef(ref3);
    if (_isString || _isRef) {
      const doSet = () => {
        if (rawRef.f) {
          const existing = _isString ? canSetSetupRef(ref3) ? setupState[ref3] : refs[ref3] : canSetRef(ref3) || !rawRef.k ? ref3.value : refs[rawRef.k];
          if (isUnmount) {
            isArray$1(existing) && remove(existing, refValue);
          } else {
            if (!isArray$1(existing)) {
              if (_isString) {
                refs[ref3] = [refValue];
                if (canSetSetupRef(ref3)) {
                  setupState[ref3] = refs[ref3];
                }
              } else {
                const newVal = [refValue];
                if (canSetRef(ref3, rawRef.k)) {
                  ref3.value = newVal;
                }
                if (rawRef.k) refs[rawRef.k] = newVal;
              }
            } else if (!existing.includes(refValue)) {
              existing.push(refValue);
            }
          }
        } else if (_isString) {
          refs[ref3] = value;
          if (canSetSetupRef(ref3)) {
            setupState[ref3] = value;
          }
        } else if (_isRef) {
          if (canSetRef(ref3, rawRef.k)) {
            ref3.value = value;
          }
          if (rawRef.k) refs[rawRef.k] = value;
        } else if (false) {
          warn$1("Invalid template ref type:", ref3, `(${typeof ref3})`);
        }
      };
      if (value) {
        const job = () => {
          doSet();
          pendingSetRefMap.delete(rawRef);
        };
        job.id = -1;
        pendingSetRefMap.set(rawRef, job);
        queuePostRenderEffect(job, parentSuspense);
      } else {
        invalidatePendingSetRef(rawRef);
        doSet();
      }
    } else if (false) {
      warn$1("Invalid template ref type:", ref3, `(${typeof ref3})`);
    }
  }
}
function invalidatePendingSetRef(rawRef) {
  const pendingSetRef = pendingSetRefMap.get(rawRef);
  if (pendingSetRef) {
    pendingSetRef.flags |= 8;
    pendingSetRefMap.delete(rawRef);
  }
}
let hasLoggedMismatchError = false;
const logMismatchError = () => {
  if (hasLoggedMismatchError) {
    return;
  }
  console.error("Hydration completed but contains mismatches.");
  hasLoggedMismatchError = true;
};
const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
const getContainerType = (container) => {
  if (container.nodeType !== 1) return void 0;
  if (isSVGContainer(container)) return "svg";
  if (isMathMLContainer(container)) return "mathml";
  return void 0;
};
const isComment = (node) => node.nodeType === 8;
function createHydrationFunctions(rendererInternals) {
  const {
    mt: mountComponent,
    p: patch,
    o: {
      patchProp,
      createText,
      nextSibling,
      parentNode,
      remove: remove2,
      insert,
      createComment
    }
  } = rendererInternals;
  const hydrate = (vnode, container) => {
    if (!container.hasChildNodes()) {
      patch(null, vnode, container);
      flushPostFlushCbs();
      container._vnode = vnode;
      return;
    }
    hydrateNode(container.firstChild, vnode, null, null, null);
    flushPostFlushCbs();
    container._vnode = vnode;
  };
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
    optimized = optimized || !!vnode.dynamicChildren;
    const isFragmentStart = isComment(node) && node.data === "[";
    const onMismatch = () => handleMismatch(
      node,
      vnode,
      parentComponent,
      parentSuspense,
      slotScopeIds,
      isFragmentStart
    );
    const { type, ref: ref3, shapeFlag, patchFlag } = vnode;
    let domType = node.nodeType;
    vnode.el = node;
    if (true) {
      def(node, "__vnode", vnode, true);
      def(node, "__vueParentComponent", parentComponent, true);
    }
    if (patchFlag === -2) {
      optimized = false;
      vnode.dynamicChildren = null;
    }
    let nextNode = null;
    switch (type) {
      case Text:
        if (domType !== 3) {
          if (vnode.children === "") {
            insert(vnode.el = createText(""), parentNode(node), node);
            nextNode = node;
          } else {
            nextNode = onMismatch();
          }
        } else {
          if (node.data !== vnode.children) {
            logMismatchError();
            node.data = vnode.children;
          }
          nextNode = nextSibling(node);
        }
        break;
      case Comment:
        if (isTemplateNode(node)) {
          nextNode = nextSibling(node);
          replaceNode(
            vnode.el = node.content.firstChild,
            node,
            parentComponent
          );
        } else if (domType !== 8 || isFragmentStart) {
          nextNode = onMismatch();
        } else {
          nextNode = nextSibling(node);
        }
        break;
      case Static:
        if (isFragmentStart) {
          node = nextSibling(node);
          domType = node.nodeType;
        }
        if (domType === 1 || domType === 3) {
          nextNode = node;
          const needToAdoptContent = !vnode.children.length;
          for (let i = 0; i < vnode.staticCount; i++) {
            if (needToAdoptContent)
              vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;
            if (i === vnode.staticCount - 1) {
              vnode.anchor = nextNode;
            }
            nextNode = nextSibling(nextNode);
          }
          return isFragmentStart ? nextSibling(nextNode) : nextNode;
        } else {
          onMismatch();
        }
        break;
      case Fragment:
        if (!isFragmentStart) {
          nextNode = onMismatch();
        } else {
          nextNode = hydrateFragment(
            node,
            vnode,
            parentComponent,
            parentSuspense,
            slotScopeIds,
            optimized
          );
        }
        break;
      default:
        if (shapeFlag & 1) {
          if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {
            nextNode = onMismatch();
          } else {
            nextNode = hydrateElement(
              node,
              vnode,
              parentComponent,
              parentSuspense,
              slotScopeIds,
              optimized
            );
          }
        } else if (shapeFlag & 6) {
          vnode.slotScopeIds = slotScopeIds;
          const container = parentNode(node);
          if (isFragmentStart) {
            nextNode = locateClosingAnchor(node);
          } else if (isComment(node) && node.data === "teleport start") {
            nextNode = locateClosingAnchor(node, node.data, "teleport end");
          } else {
            nextNode = nextSibling(node);
          }
          mountComponent(
            vnode,
            container,
            null,
            parentComponent,
            parentSuspense,
            getContainerType(container),
            optimized
          );
          if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {
            let subTree;
            if (isFragmentStart) {
              subTree = createVNode(Fragment);
              subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
            } else {
              subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
            }
            subTree.el = node;
            vnode.component.subTree = subTree;
          }
        } else if (shapeFlag & 64) {
          if (domType !== 8) {
            nextNode = onMismatch();
          } else {
            nextNode = vnode.type.hydrate(
              node,
              vnode,
              parentComponent,
              parentSuspense,
              slotScopeIds,
              optimized,
              rendererInternals,
              hydrateChildren
            );
          }
        } else if (shapeFlag & 128) {
          nextNode = vnode.type.hydrate(
            node,
            vnode,
            parentComponent,
            parentSuspense,
            getContainerType(parentNode(node)),
            slotScopeIds,
            optimized,
            rendererInternals,
            hydrateNode
          );
        } else if (false) {
          warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
        }
    }
    if (ref3 != null) {
      setRef(ref3, null, parentSuspense, vnode);
    }
    return nextNode;
  };
  const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
    optimized = optimized || !!vnode.dynamicChildren;
    const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;
    const forcePatch = type === "input" || type === "option";
    if (forcePatch || patchFlag !== -1) {
      if (dirs) {
        invokeDirectiveHook(vnode, null, parentComponent, "created");
      }
      let needCallTransitionHooks = false;
      if (isTemplateNode(el)) {
        needCallTransitionHooks = needTransition(
          null,
          // no need check parentSuspense in hydration
          transition
        ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
        const content = el.content.firstChild;
        if (needCallTransitionHooks) {
          const cls = content.getAttribute("class");
          if (cls) content.$cls = cls;
          transition.beforeEnter(content);
        }
        replaceNode(content, el, parentComponent);
        vnode.el = el = content;
      }
      if (shapeFlag & 16 && // skip if element has innerHTML / textContent
      !(props && (props.innerHTML || props.textContent))) {
        let next = hydrateChildren(
          el.firstChild,
          vnode,
          el,
          parentComponent,
          parentSuspense,
          slotScopeIds,
          optimized
        );
        let hasWarned2 = false;
        while (next) {
          if (!isMismatchAllowed(
            el,
            1
            /* CHILDREN */
          )) {
            if (false) {
              warn$1(
                `Hydration children mismatch on`,
                el,
                `
Server rendered element contains more child nodes than client vdom.`
              );
              hasWarned2 = true;
            }
            logMismatchError();
          }
          const cur = next;
          next = next.nextSibling;
          remove2(cur);
        }
      } else if (shapeFlag & 8) {
        let clientText = vnode.children;
        if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) {
          clientText = clientText.slice(1);
        }
        const { textContent } = el;
        if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM
        textContent !== clientText.replace(/\r\n|\r/g, "\n")) {
          if (!isMismatchAllowed(
            el,
            0
            /* TEXT */
          )) {
            logMismatchError();
          }
          el.textContent = vnode.children;
        }
      }
      if (props) {
        if (forcePatch || !optimized || patchFlag & (16 | 32)) {
          const isCustomElement = el.tagName.includes("-");
          for (const key in props) {
            if (false) {
              logMismatchError();
            }
            if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
            key[0] === "." || isCustomElement && !isReservedProp(key)) {
              patchProp(el, key, null, props[key], void 0, parentComponent);
            }
          }
        } else if (props.onClick) {
          patchProp(
            el,
            "onClick",
            null,
            props.onClick,
            void 0,
            parentComponent
          );
        } else if (patchFlag & 4 && isReactive(props.style)) {
          for (const key in props.style) props.style[key];
        }
      }
      let vnodeHooks;
      if (vnodeHooks = props && props.onVnodeBeforeMount) {
        invokeVNodeHook(vnodeHooks, parentComponent, vnode);
      }
      if (dirs) {
        invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
      }
      if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {
        queueEffectWithSuspense(() => {
          vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);
          needCallTransitionHooks && transition.enter(el);
          dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
        }, parentSuspense);
      }
    }
    return el.nextSibling;
  };
  const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {
    optimized = optimized || !!parentVNode.dynamicChildren;
    const children = parentVNode.children;
    const l = children.length;
    let hasWarned2 = false;
    for (let i = 0; i < l; i++) {
      const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
      const isText = vnode.type === Text;
      if (node) {
        if (isText && !optimized) {
          if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {
            insert(
              createText(
                node.data.slice(vnode.children.length)
              ),
              container,
              nextSibling(node)
            );
            node.data = vnode.children;
          }
        }
        node = hydrateNode(
          node,
          vnode,
          parentComponent,
          parentSuspense,
          slotScopeIds,
          optimized
        );
      } else if (isText && !vnode.children) {
        insert(vnode.el = createText(""), container);
      } else {
        if (!isMismatchAllowed(
          container,
          1
          /* CHILDREN */
        )) {
          if (false) {
            warn$1(
              `Hydration children mismatch on`,
              container,
              `
Server rendered element contains fewer child nodes than client vdom.`
            );
            hasWarned2 = true;
          }
          logMismatchError();
        }
        patch(
          null,
          vnode,
          container,
          null,
          parentComponent,
          parentSuspense,
          getContainerType(container),
          slotScopeIds
        );
      }
    }
    return node;
  };
  const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
    const { slotScopeIds: fragmentSlotScopeIds } = vnode;
    if (fragmentSlotScopeIds) {
      slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
    }
    const container = parentNode(node);
    const next = hydrateChildren(
      nextSibling(node),
      vnode,
      container,
      parentComponent,
      parentSuspense,
      slotScopeIds,
      optimized
    );
    if (next && isComment(next) && next.data === "]") {
      return nextSibling(vnode.anchor = next);
    } else {
      logMismatchError();
      insert(vnode.anchor = createComment(`]`), container, next);
      return next;
    }
  };
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
    if (!isMismatchAllowed(
      node.parentElement,
      1
      /* CHILDREN */
    )) {
      logMismatchError();
    }
    vnode.el = null;
    if (isFragment) {
      const end = locateClosingAnchor(node);
      while (true) {
        const next2 = nextSibling(node);
        if (next2 && next2 !== end) {
          remove2(next2);
        } else {
          break;
        }
      }
    }
    const next = nextSibling(node);
    const container = parentNode(node);
    remove2(node);
    patch(
      null,
      vnode,
      container,
      next,
      parentComponent,
      parentSuspense,
      getContainerType(container),
      slotScopeIds
    );
    if (parentComponent) {
      parentComponent.vnode.el = vnode.el;
      updateHOCHostEl(parentComponent, vnode.el);
    }
    return next;
  };
  const locateClosingAnchor = (node, open = "[", close = "]") => {
    let match = 0;
    while (node) {
      node = nextSibling(node);
      if (node && isComment(node)) {
        if (node.data === open) match++;
        if (node.data === close) {
          if (match === 0) {
            return nextSibling(node);
          } else {
            match--;
          }
        }
      }
    }
    return node;
  };
  const replaceNode = (newNode, oldNode, parentComponent) => {
    const parentNode2 = oldNode.parentNode;
    if (parentNode2) {
      parentNode2.replaceChild(newNode, oldNode);
    }
    let parent = parentComponent;
    while (parent) {
      if (parent.vnode.el === oldNode) {
        parent.vnode.el = parent.subTree.el = newNode;
      }
      parent = parent.parent;
    }
  };
  const isTemplateNode = (node) => {
    return node.nodeType === 1 && node.tagName === "TEMPLATE";
  };
  return [hydrate, hydrateNode];
}
function propHasMismatch(el, key, clientValue, vnode, instance) {
  let mismatchType;
  let mismatchKey;
  let actual;
  let expected;
  if (key === "class") {
    if (el.$cls) {
      actual = el.$cls;
      delete el.$cls;
    } else {
      actual = el.getAttribute("class");
    }
    expected = normalizeClass(clientValue);
    if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) {
      mismatchType = 2;
      mismatchKey = `class`;
    }
  } else if (key === "style") {
    actual = el.getAttribute("style") || "";
    expected = isString$2(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));
    const actualMap = toStyleMap(actual);
    const expectedMap = toStyleMap(expected);
    if (vnode.dirs) {
      for (const { dir, value } of vnode.dirs) {
        if (dir.name === "show" && !value) {
          expectedMap.set("display", "none");
        }
      }
    }
    if (instance) {
      resolveCssVars(instance, vnode, expectedMap);
    }
    if (!isMapEqual(actualMap, expectedMap)) {
      mismatchType = 3;
      mismatchKey = "style";
    }
  } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {
    if (isBooleanAttr(key)) {
      actual = el.hasAttribute(key);
      expected = includeBooleanAttr(clientValue);
    } else if (clientValue == null) {
      actual = el.hasAttribute(key);
      expected = false;
    } else {
      if (el.hasAttribute(key)) {
        actual = el.getAttribute(key);
      } else if (key === "value" && el.tagName === "TEXTAREA") {
        actual = el.value;
      } else {
        actual = false;
      }
      expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;
    }
    if (actual !== expected) {
      mismatchType = 4;
      mismatchKey = key;
    }
  }
  if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {
    const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
    const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;
    const postSegment = `
  - rendered on server: ${format(actual)}
  - expected on client: ${format(expected)}
  Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.
  You should fix the source of the mismatch.`;
    {
      warn$1(preSegment, el, postSegment);
    }
    return true;
  }
  return false;
}
function toClassSet(str) {
  return new Set(str.trim().split(/\s+/));
}
function isSetEqual(a, b) {
  if (a.size !== b.size) {
    return false;
  }
  for (const s of a) {
    if (!b.has(s)) {
      return false;
    }
  }
  return true;
}
function toStyleMap(str) {
  const styleMap = /* @__PURE__ */ new Map();
  for (const item of str.split(";")) {
    let [key, value] = item.split(":");
    key = key.trim();
    value = value && value.trim();
    if (key && value) {
      styleMap.set(key, value);
    }
  }
  return styleMap;
}
function isMapEqual(a, b) {
  if (a.size !== b.size) {
    return false;
  }
  for (const [key, value] of a) {
    if (value !== b.get(key)) {
      return false;
    }
  }
  return true;
}
function resolveCssVars(instance, vnode, expectedMap) {
  const root = instance.subTree;
  if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {
    const cssVars = instance.getCssVars();
    for (const key in cssVars) {
      const value = normalizeCssVarValue(cssVars[key]);
      expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);
    }
  }
  if (vnode === root && instance.parent) {
    resolveCssVars(instance.parent, instance.vnode, expectedMap);
  }
}
const allowMismatchAttr = "data-allow-mismatch";
const MismatchTypeString = {
  [
    0
    /* TEXT */
  ]: "text",
  [
    1
    /* CHILDREN */
  ]: "children",
  [
    2
    /* CLASS */
  ]: "class",
  [
    3
    /* STYLE */
  ]: "style",
  [
    4
    /* ATTRIBUTE */
  ]: "attribute"
};
function isMismatchAllowed(el, allowedType) {
  if (allowedType === 0 || allowedType === 1) {
    while (el && !el.hasAttribute(allowMismatchAttr)) {
      el = el.parentElement;
    }
  }
  const allowedAttr = el && el.getAttribute(allowMismatchAttr);
  if (allowedAttr == null) {
    return false;
  } else if (allowedAttr === "") {
    return true;
  } else {
    const list = allowedAttr.split(",");
    if (allowedType === 0 && list.includes("children")) {
      return true;
    }
    return list.includes(MismatchTypeString[allowedType]);
  }
}
const requestIdleCallback = getGlobalThis$1().requestIdleCallback || ((cb) => setTimeout(cb, 1));
const cancelIdleCallback = getGlobalThis$1().cancelIdleCallback || ((id) => clearTimeout(id));
const hydrateOnIdle = (timeout = 1e4) => (hydrate) => {
  const id = requestIdleCallback(hydrate, { timeout });
  return () => cancelIdleCallback(id);
};
function elementIsVisibleInViewport(el) {
  const { top, left, bottom, right } = el.getBoundingClientRect();
  const { innerHeight, innerWidth } = window;
  return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);
}
const hydrateOnVisible = (opts) => (hydrate, forEach) => {
  const ob = new IntersectionObserver((entries) => {
    for (const e of entries) {
      if (!e.isIntersecting) continue;
      ob.disconnect();
      hydrate();
      break;
    }
  }, opts);
  forEach((el) => {
    if (!(el instanceof Element)) return;
    if (elementIsVisibleInViewport(el)) {
      hydrate();
      ob.disconnect();
      return false;
    }
    ob.observe(el);
  });
  return () => ob.disconnect();
};
const hydrateOnMediaQuery = (query) => (hydrate) => {
  if (query) {
    const mql = matchMedia(query);
    if (mql.matches) {
      hydrate();
    } else {
      mql.addEventListener("change", hydrate, { once: true });
      return () => mql.removeEventListener("change", hydrate);
    }
  }
};
const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
  if (isString$2(interactions)) interactions = [interactions];
  let hasHydrated = false;
  const doHydrate = (e) => {
    if (!hasHydrated) {
      hasHydrated = true;
      teardown();
      hydrate();
      e.target.dispatchEvent(new e.constructor(e.type, e));
    }
  };
  const teardown = () => {
    forEach((el) => {
      for (const i of interactions) {
        el.removeEventListener(i, doHydrate);
      }
    });
  };
  forEach((el) => {
    for (const i of interactions) {
      el.addEventListener(i, doHydrate, { once: true });
    }
  });
  return teardown;
};
function forEachElement(node, cb) {
  if (isComment(node) && node.data === "[") {
    let depth = 1;
    let next = node.nextSibling;
    while (next) {
      if (next.nodeType === 1) {
        const result = cb(next);
        if (result === false) {
          break;
        }
      } else if (isComment(next)) {
        if (next.data === "]") {
          if (--depth === 0) break;
        } else if (next.data === "[") {
          depth++;
        }
      }
      next = next.nextSibling;
    }
  } else {
    cb(node);
  }
}
const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
// @__NO_SIDE_EFFECTS__
function defineAsyncComponent(source) {
  if (isFunction$1(source)) {
    source = { loader: source };
  }
  const {
    loader,
    loadingComponent,
    errorComponent,
    delay = 200,
    hydrate: hydrateStrategy,
    timeout,
    // undefined = never times out
    suspensible = true,
    onError: userOnError
  } = source;
  let pendingRequest = null;
  let resolvedComp;
  let retries = 0;
  const retry = () => {
    retries++;
    pendingRequest = null;
    return load();
  };
  const load = () => {
    let thisRequest;
    return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {
      err = err instanceof Error ? err : new Error(String(err));
      if (userOnError) {
        return new Promise((resolve2, reject) => {
          const userRetry = () => resolve2(retry());
          const userFail = () => reject(err);
          userOnError(err, userRetry, userFail, retries + 1);
        });
      } else {
        throw err;
      }
    }).then((comp) => {
      if (thisRequest !== pendingRequest && pendingRequest) {
        return pendingRequest;
      }
      if (false) {
        warn$1(
          `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`
        );
      }
      if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) {
        comp = comp.default;
      }
      if (false) {
        throw new Error(`Invalid async component load result: ${comp}`);
      }
      resolvedComp = comp;
      return comp;
    }));
  };
  return /* @__PURE__ */ defineComponent({
    name: "AsyncComponentWrapper",
    __asyncLoader: load,
    __asyncHydrate(el, instance, hydrate) {
      let patched = false;
      (instance.bu || (instance.bu = [])).push(() => patched = true);
      const performHydrate = () => {
        if (patched) {
          if (false) {
            warn$1(
              `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`
            );
          }
          return;
        }
        hydrate();
      };
      const doHydrate = hydrateStrategy ? () => {
        const teardown = hydrateStrategy(
          performHydrate,
          (cb) => forEachElement(el, cb)
        );
        if (teardown) {
          (instance.bum || (instance.bum = [])).push(teardown);
        }
      } : performHydrate;
      if (resolvedComp) {
        doHydrate();
      } else {
        load().then(() => !instance.isUnmounted && doHydrate());
      }
    },
    get __asyncResolved() {
      return resolvedComp;
    },
    setup() {
      const instance = currentInstance;
      markAsyncBoundary(instance);
      if (resolvedComp) {
        return () => createInnerComp(resolvedComp, instance);
      }
      const onError = (err) => {
        pendingRequest = null;
        handleError(
          err,
          instance,
          13,
          !errorComponent
        );
      };
      if (suspensible && instance.suspense || isInSSRComponentSetup) {
        return load().then((comp) => {
          return () => createInnerComp(comp, instance);
        }).catch((err) => {
          onError(err);
          return () => errorComponent ? createVNode(errorComponent, {
            error: err
          }) : null;
        });
      }
      const loaded = ref(false);
      const error = ref();
      const delayed = ref(!!delay);
      if (delay) {
        setTimeout(() => {
          delayed.value = false;
        }, delay);
      }
      if (timeout != null) {
        setTimeout(() => {
          if (!loaded.value && !error.value) {
            const err = new Error(
              `Async component timed out after ${timeout}ms.`
            );
            onError(err);
            error.value = err;
          }
        }, timeout);
      }
      load().then(() => {
        loaded.value = true;
        if (instance.parent && isKeepAlive(instance.parent.vnode)) {
          instance.parent.update();
        }
      }).catch((err) => {
        onError(err);
        error.value = err;
      });
      return () => {
        if (loaded.value && resolvedComp) {
          return createInnerComp(resolvedComp, instance);
        } else if (error.value && errorComponent) {
          return createVNode(errorComponent, {
            error: error.value
          });
        } else if (loadingComponent && !delayed.value) {
          return createInnerComp(
            loadingComponent,
            instance
          );
        }
      };
    }
  });
}
function createInnerComp(comp, parent) {
  const { ref: ref22, props, children, ce } = parent.vnode;
  const vnode = createVNode(comp, props, children);
  vnode.ref = ref22;
  vnode.ce = ce;
  delete parent.vnode.ce;
  return vnode;
}
const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
const KeepAliveImpl = {
  name: `KeepAlive`,
  // Marker for special handling inside the renderer. We are not using a ===
  // check directly on KeepAlive in the renderer, because importing it directly
  // would prevent it from being tree-shaken.
  __isKeepAlive: true,
  props: {
    include: [String, RegExp, Array],
    exclude: [String, RegExp, Array],
    max: [String, Number]
  },
  setup(props, { slots }) {
    const instance = getCurrentInstance();
    const sharedContext = instance.ctx;
    if (!sharedContext.renderer) {
      return () => {
        const children = slots.default && slots.default();
        return children && children.length === 1 ? children[0] : children;
      };
    }
    const cache = /* @__PURE__ */ new Map();
    const keys = /* @__PURE__ */ new Set();
    let current = null;
    if (true) {
      instance.__v_cache = cache;
    }
    const parentSuspense = instance.suspense;
    const {
      renderer: {
        p: patch,
        m: move,
        um: _unmount,
        o: { createElement }
      }
    } = sharedContext;
    const storageContainer = createElement("div");
    sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {
      const instance2 = vnode.component;
      move(vnode, container, anchor, 0, parentSuspense);
      patch(
        instance2.vnode,
        vnode,
        container,
        anchor,
        instance2,
        parentSuspense,
        namespace,
        vnode.slotScopeIds,
        optimized
      );
      queuePostRenderEffect(() => {
        instance2.isDeactivated = false;
        if (instance2.a) {
          invokeArrayFns(instance2.a);
        }
        const vnodeHook = vnode.props && vnode.props.onVnodeMounted;
        if (vnodeHook) {
          invokeVNodeHook(vnodeHook, instance2.parent, vnode);
        }
      }, parentSuspense);
      if (true) {
        devtoolsComponentAdded(instance2);
      }
    };
    sharedContext.deactivate = (vnode) => {
      const instance2 = vnode.component;
      invalidateMount(instance2.m);
      invalidateMount(instance2.a);
      move(vnode, storageContainer, null, 1, parentSuspense);
      queuePostRenderEffect(() => {
        if (instance2.da) {
          invokeArrayFns(instance2.da);
        }
        const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;
        if (vnodeHook) {
          invokeVNodeHook(vnodeHook, instance2.parent, vnode);
        }
        instance2.isDeactivated = true;
      }, parentSuspense);
      if (true) {
        devtoolsComponentAdded(instance2);
      }
      if (false) {
        instance2.__keepAliveStorageContainer = storageContainer;
      }
    };
    function unmount(vnode) {
      resetShapeFlag(vnode);
      _unmount(vnode, instance, parentSuspense, true);
    }
    function pruneCache(filter) {
      cache.forEach((vnode, key) => {
        const name = getComponentName(
          isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type
        );
        if (name && !filter(name)) {
          pruneCacheEntry(key);
        }
      });
    }
    function pruneCacheEntry(key) {
      const cached = cache.get(key);
      if (cached && (!current || !isSameVNodeType(cached, current))) {
        unmount(cached);
      } else if (current) {
        resetShapeFlag(current);
      }
      cache.delete(key);
      keys.delete(key);
    }
    watch(
      () => [props.include, props.exclude],
      ([include, exclude]) => {
        include && pruneCache((name) => matches(include, name));
        exclude && pruneCache((name) => !matches(exclude, name));
      },
      // prune post-render after `current` has been updated
      { flush: "post", deep: true }
    );
    let pendingCacheKey = null;
    const cacheSubtree = () => {
      if (pendingCacheKey != null) {
        if (isSuspense(instance.subTree.type)) {
          queuePostRenderEffect(() => {
            cache.set(pendingCacheKey, getInnerChild(instance.subTree));
          }, instance.subTree.suspense);
        } else {
          cache.set(pendingCacheKey, getInnerChild(instance.subTree));
        }
      }
    };
    onMounted(cacheSubtree);
    onUpdated(cacheSubtree);
    onBeforeUnmount(() => {
      cache.forEach((cached) => {
        const { subTree, suspense } = instance;
        const vnode = getInnerChild(subTree);
        if (cached.type === vnode.type && cached.key === vnode.key) {
          resetShapeFlag(vnode);
          const da = vnode.component.da;
          da && queuePostRenderEffect(da, suspense);
          return;
        }
        unmount(cached);
      });
    });
    return () => {
      pendingCacheKey = null;
      if (!slots.default) {
        return current = null;
      }
      const children = slots.default();
      const rawVNode = children[0];
      if (children.length > 1) {
        if (false) {
          warn$1(`KeepAlive should contain exactly one component child.`);
        }
        current = null;
        return children;
      } else if (!isVNode$1(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {
        current = null;
        return rawVNode;
      }
      let vnode = getInnerChild(rawVNode);
      if (vnode.type === Comment) {
        current = null;
        return vnode;
      }
      const comp = vnode.type;
      const name = getComponentName(
        isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp
      );
      const { include, exclude, max } = props;
      if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
        vnode.shapeFlag &= -257;
        current = vnode;
        return rawVNode;
      }
      const key = vnode.key == null ? comp : vnode.key;
      const cachedVNode = cache.get(key);
      if (vnode.el) {
        vnode = cloneVNode(vnode);
        if (rawVNode.shapeFlag & 128) {
          rawVNode.ssContent = vnode;
        }
      }
      pendingCacheKey = key;
      if (cachedVNode) {
        vnode.el = cachedVNode.el;
        vnode.component = cachedVNode.component;
        if (vnode.transition) {
          setTransitionHooks(vnode, vnode.transition);
        }
        vnode.shapeFlag |= 512;
        keys.delete(key);
        keys.add(key);
      } else {
        keys.add(key);
        if (max && keys.size > parseInt(max, 10)) {
          pruneCacheEntry(keys.values().next().value);
        }
      }
      vnode.shapeFlag |= 256;
      current = vnode;
      return isSuspense(rawVNode.type) ? rawVNode : vnode;
    };
  }
};
const KeepAlive = KeepAliveImpl;
function matches(pattern, name) {
  if (isArray$1(pattern)) {
    return pattern.some((p) => matches(p, name));
  } else if (isString$2(pattern)) {
    return pattern.split(",").includes(name);
  } else if (isRegExp$1(pattern)) {
    pattern.lastIndex = 0;
    return pattern.test(name);
  }
  return false;
}
function onActivated(hook, target) {
  registerKeepAliveHook(hook, "a", target);
}
function onDeactivated(hook, target) {
  registerKeepAliveHook(hook, "da", target);
}
function registerKeepAliveHook(hook, type, target = currentInstance) {
  const wrappedHook = hook.__wdc || (hook.__wdc = () => {
    let current = target;
    while (current) {
      if (current.isDeactivated) {
        return;
      }
      current = current.parent;
    }
    return hook();
  });
  injectHook(type, wrappedHook, target);
  if (target) {
    let current = target.parent;
    while (current && current.parent) {
      if (isKeepAlive(current.parent.vnode)) {
        injectToKeepAliveRoot(wrappedHook, type, target, current);
      }
      current = current.parent;
    }
  }
}
function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
  const injected = injectHook(
    type,
    hook,
    keepAliveRoot,
    true
    /* prepend */
  );
  onUnmounted(() => {
    remove(keepAliveRoot[type], injected);
  }, target);
}
function resetShapeFlag(vnode) {
  vnode.shapeFlag &= -257;
  vnode.shapeFlag &= -513;
}
function getInnerChild(vnode) {
  return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
}
function injectHook(type, hook, target = currentInstance, prepend = false) {
  if (target) {
    const hooks = target[type] || (target[type] = []);
    const wrappedHook = hook.__weh || (hook.__weh = (...args) => {
      pauseTracking();
      const reset = setCurrentInstance(target);
      const res = callWithAsyncErrorHandling(hook, target, type, args);
      reset();
      resetTracking();
      return res;
    });
    if (prepend) {
      hooks.unshift(wrappedHook);
    } else {
      hooks.push(wrappedHook);
    }
    return wrappedHook;
  } else if (false) {
    const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, ""));
    warn$1(
      `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`
    );
  }
}
const createHook = (lifecycle) => (hook, target = currentInstance) => {
  if (!isInSSRComponentSetup || lifecycle === "sp") {
    injectHook(lifecycle, (...args) => hook(...args), target);
  }
};
const onBeforeMount = createHook("bm");
const onMounted = createHook("m");
const onBeforeUpdate = createHook(
  "bu"
);
const onUpdated = createHook("u");
const onBeforeUnmount = createHook(
  "bum"
);
const onUnmounted = createHook("um");
const onServerPrefetch = createHook(
  "sp"
);
const onRenderTriggered = createHook("rtg");
const onRenderTracked = createHook("rtc");
function onErrorCaptured(hook, target = currentInstance) {
  injectHook("ec", hook, target);
}
const COMPONENTS = "components";
const DIRECTIVES = "directives";
function resolveComponent(name, maybeSelfReference) {
  return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
}
const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc");
function resolveDynamicComponent(component) {
  if (isString$2(component)) {
    return resolveAsset(COMPONENTS, component, false) || component;
  } else {
    return component || NULL_DYNAMIC_COMPONENT;
  }
}
function resolveDirective(name) {
  return resolveAsset(DIRECTIVES, name);
}
function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
  const instance = currentRenderingInstance || currentInstance;
  if (instance) {
    const Component = instance.type;
    if (type === COMPONENTS) {
      const selfName = getComponentName(
        Component,
        false
      );
      if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize$1(camelize(name)))) {
        return Component;
      }
    }
    const res = (
      // local registration
      // check instance[type] first which is resolved for options API
      resolve(instance[type] || Component[type], name) || // global registration
      resolve(instance.appContext[type], name)
    );
    if (!res && maybeSelfReference) {
      return Component;
    }
    if (false) {
      const extra = type === COMPONENTS ? `
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
      warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
    }
    return res;
  } else if (false) {
    warn$1(
      `resolve${capitalize$1(type.slice(0, -1))} can only be used in render() or setup().`
    );
  }
}
function resolve(registry, name) {
  return registry && (registry[name] || registry[camelize(name)] || registry[capitalize$1(camelize(name))]);
}
function renderList(source, renderItem, cache, index) {
  let ret;
  const cached = cache && cache[index];
  const sourceIsArray = isArray$1(source);
  if (sourceIsArray || isString$2(source)) {
    const sourceIsReactiveArray = sourceIsArray && isReactive(source);
    let needsWrap = false;
    let isReadonlySource = false;
    if (sourceIsReactiveArray) {
      needsWrap = !isShallow(source);
      isReadonlySource = isReadonly(source);
      source = shallowReadArray(source);
    }
    ret = new Array(source.length);
    for (let i = 0, l = source.length; i < l; i++) {
      ret[i] = renderItem(
        needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],
        i,
        void 0,
        cached && cached[i]
      );
    }
  } else if (typeof source === "number") {
    if (false) {
      warn$1(
        `The v-for range expects a positive integer value but got ${source}.`
      );
      ret = [];
    } else {
      ret = new Array(source);
      for (let i = 0; i < source; i++) {
        ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
      }
    }
  } else if (isObject$3(source)) {
    if (source[Symbol.iterator]) {
      ret = Array.from(
        source,
        (item, i) => renderItem(item, i, void 0, cached && cached[i])
      );
    } else {
      const keys = Object.keys(source);
      ret = new Array(keys.length);
      for (let i = 0, l = keys.length; i < l; i++) {
        const key = keys[i];
        ret[i] = renderItem(source[key], key, i, cached && cached[i]);
      }
    }
  } else {
    ret = [];
  }
  if (cache) {
    cache[index] = ret;
  }
  return ret;
}
function createSlots(slots, dynamicSlots) {
  for (let i = 0; i < dynamicSlots.length; i++) {
    const slot = dynamicSlots[i];
    if (isArray$1(slot)) {
      for (let j = 0; j < slot.length; j++) {
        slots[slot[j].name] = slot[j].fn;
      }
    } else if (slot) {
      slots[slot.name] = slot.key ? (...args) => {
        const res = slot.fn(...args);
        if (res) res.key = slot.key;
        return res;
      } : slot.fn;
    }
  }
  return slots;
}
function renderSlot(slots, name, props = {}, fallback, noSlotted) {
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
    const hasProps = Object.keys(props).length > 0;
    if (name !== "default") props.name = name;
    return openBlock(), createBlock(
      Fragment,
      null,
      [createVNode("slot", props, fallback && fallback())],
      hasProps ? -2 : 64
    );
  }
  let slot = slots[name];
  if (false) {
    warn$1(
      `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`
    );
    slot = () => [];
  }
  if (slot && slot._c) {
    slot._d = false;
  }
  openBlock();
  const validSlotContent = slot && ensureValidVNode(slot(props));
  const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch
  // key attached in the `createSlots` helper, respect that
  validSlotContent && validSlotContent.key;
  const rendered = createBlock(
    Fragment,
    {
      key: (slotKey && !isSymbol$1(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
      (!validSlotContent && fallback ? "_fb" : "")
    },
    validSlotContent || (fallback ? fallback() : []),
    validSlotContent && slots._ === 1 ? 64 : -2
  );
  if (!noSlotted && rendered.scopeId) {
    rendered.slotScopeIds = [rendered.scopeId + "-s"];
  }
  if (slot && slot._c) {
    slot._d = true;
  }
  return rendered;
}
function ensureValidVNode(vnodes) {
  return vnodes.some((child) => {
    if (!isVNode$1(child)) return true;
    if (child.type === Comment) return false;
    if (child.type === Fragment && !ensureValidVNode(child.children))
      return false;
    return true;
  }) ? vnodes : null;
}
function toHandlers(obj, preserveCaseIfNecessary) {
  const ret = {};
  if (false) {
    warn$1(`v-on with no argument expects an object value.`);
    return ret;
  }
  for (const key in obj) {
    ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];
  }
  return ret;
}
const getPublicInstance = (i) => {
  if (!i) return null;
  if (isStatefulComponent(i)) return getComponentPublicInstance(i);
  return getPublicInstance(i.parent);
};
const publicPropertiesMap = (
  // Move PURE marker to new line to workaround compiler discarding it
  // due to type annotation
  /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {
    $: (i) => i,
    $el: (i) => i.vnode.el,
    $data: (i) => i.data,
    $props: (i) => false ? shallowReadonly(i.props) : i.props,
    $attrs: (i) => false ? shallowReadonly(i.attrs) : i.attrs,
    $slots: (i) => false ? shallowReadonly(i.slots) : i.slots,
    $refs: (i) => false ? shallowReadonly(i.refs) : i.refs,
    $parent: (i) => getPublicInstance(i.parent),
    $root: (i) => getPublicInstance(i.root),
    $host: (i) => i.ce,
    $emit: (i) => i.emit,
    $options: (i) => true ? resolveMergedOptions(i) : i.type,
    $forceUpdate: (i) => i.f || (i.f = () => {
      queueJob(i.update);
    }),
    $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),
    $watch: (i) => true ? instanceWatch.bind(i) : NOOP
  })
);
const isReservedPrefix = (key) => key === "_" || key === "$";
const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn$1(state, key);
const PublicInstanceProxyHandlers = {
  get({ _: instance }, key) {
    if (key === "__v_skip") {
      return true;
    }
    const { ctx, setupState, data, props, accessCache, type, appContext } = instance;
    if (false) {
      return true;
    }
    if (key[0] !== "$") {
      const n = accessCache[key];
      if (n !== void 0) {
        switch (n) {
          case 1:
            return setupState[key];
          case 2:
            return data[key];
          case 4:
            return ctx[key];
          case 3:
            return props[key];
        }
      } else if (hasSetupBinding(setupState, key)) {
        accessCache[key] = 1;
        return setupState[key];
      } else if (data !== EMPTY_OBJ && hasOwn$1(data, key)) {
        accessCache[key] = 2;
        return data[key];
      } else if (hasOwn$1(props, key)) {
        accessCache[key] = 3;
        return props[key];
      } else if (ctx !== EMPTY_OBJ && hasOwn$1(ctx, key)) {
        accessCache[key] = 4;
        return ctx[key];
      } else if (shouldCacheAccess) {
        accessCache[key] = 0;
      }
    }
    const publicGetter = publicPropertiesMap[key];
    let cssModule, globalProperties;
    if (publicGetter) {
      if (key === "$attrs") {
        track(instance.attrs, "get", "");
      } else if (false) {
        track(instance, "get", key);
      }
      return publicGetter(instance);
    } else if (
      // css module (injected by vue-loader)
      (cssModule = type.__cssModules) && (cssModule = cssModule[key])
    ) {
      return cssModule;
    } else if (ctx !== EMPTY_OBJ && hasOwn$1(ctx, key)) {
      accessCache[key] = 4;
      return ctx[key];
    } else if (
      // global properties
      globalProperties = appContext.config.globalProperties, hasOwn$1(globalProperties, key)
    ) {
      {
        return globalProperties[key];
      }
    } else if (false) {
      if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn$1(data, key)) {
        warn$1(
          `Property ${JSON.stringify(
            key
          )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`
        );
      } else if (instance === currentRenderingInstance) {
        warn$1(
          `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`
        );
      }
    }
  },
  set({ _: instance }, key, value) {
    const { data, setupState, ctx } = instance;
    if (hasSetupBinding(setupState, key)) {
      setupState[key] = value;
      return true;
    } else if (false) {
      warn$1(`Cannot mutate <script setup> binding "${key}" from Options API.`);
      return false;
    } else if (data !== EMPTY_OBJ && hasOwn$1(data, key)) {
      data[key] = value;
      return true;
    } else if (hasOwn$1(instance.props, key)) {
      return false;
    }
    if (key[0] === "$" && key.slice(1) in instance) {
      return false;
    } else {
      if (false) {
        Object.defineProperty(ctx, key, {
          enumerable: true,
          configurable: true,
          value
        });
      } else {
        ctx[key] = value;
      }
    }
    return true;
  },
  has({
    _: { data, setupState, accessCache, ctx, appContext, props, type }
  }, key) {
    let cssModules;
    return !!(accessCache[key] || data !== EMPTY_OBJ && key[0] !== "$" && hasOwn$1(data, key) || hasSetupBinding(setupState, key) || hasOwn$1(props, key) || hasOwn$1(ctx, key) || hasOwn$1(publicPropertiesMap, key) || hasOwn$1(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]);
  },
  defineProperty(target, key, descriptor) {
    if (descriptor.get != null) {
      target._.accessCache[key] = 0;
    } else if (hasOwn$1(descriptor, "value")) {
      this.set(target, key, descriptor.value, null);
    }
    return Reflect.defineProperty(target, key, descriptor);
  }
};
if (false) {
  PublicInstanceProxyHandlers.ownKeys = (target) => {
    warn$1(
      `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`
    );
    return Reflect.ownKeys(target);
  };
}
const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
  get(target, key) {
    if (key === Symbol.unscopables) {
      return;
    }
    return PublicInstanceProxyHandlers.get(target, key, target);
  },
  has(_, key) {
    const has = key[0] !== "_" && !isGloballyAllowed(key);
    if (false) {
      warn$1(
        `Property ${JSON.stringify(
          key
        )} should not start with _ which is a reserved prefix for Vue internals.`
      );
    }
    return has;
  }
});
function createDevRenderContext(instance) {
  const target = {};
  Object.defineProperty(target, `_`, {
    configurable: true,
    enumerable: false,
    get: () => instance
  });
  Object.keys(publicPropertiesMap).forEach((key) => {
    Object.defineProperty(target, key, {
      configurable: true,
      enumerable: false,
      get: () => publicPropertiesMap[key](instance),
      // intercepted by the proxy so no need for implementation,
      // but needed to prevent set errors
      set: NOOP
    });
  });
  return target;
}
function exposePropsOnRenderContext(instance) {
  const {
    ctx,
    propsOptions: [propsOptions]
  } = instance;
  if (propsOptions) {
    Object.keys(propsOptions).forEach((key) => {
      Object.defineProperty(ctx, key, {
        enumerable: true,
        configurable: true,
        get: () => instance.props[key],
        set: NOOP
      });
    });
  }
}
function exposeSetupStateOnRenderContext(instance) {
  const { ctx, setupState } = instance;
  Object.keys(toRaw(setupState)).forEach((key) => {
    if (!setupState.__isScriptSetup) {
      if (isReservedPrefix(key[0])) {
        warn$1(
          `setup() return property ${JSON.stringify(
            key
          )} should not start with "$" or "_" which are reserved prefixes for Vue internals.`
        );
        return;
      }
      Object.defineProperty(ctx, key, {
        enumerable: true,
        configurable: true,
        get: () => setupState[key],
        set: NOOP
      });
    }
  });
}
const warnRuntimeUsage = (method) => warn$1(
  `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`
);
function defineProps() {
  if (false) {
    warnRuntimeUsage(`defineProps`);
  }
  return null;
}
function defineEmits() {
  if (false) {
    warnRuntimeUsage(`defineEmits`);
  }
  return null;
}
function defineExpose(exposed) {
  if (false) {
    warnRuntimeUsage(`defineExpose`);
  }
}
function defineOptions(options) {
  if (false) {
    warnRuntimeUsage(`defineOptions`);
  }
}
function defineSlots() {
  if (false) {
    warnRuntimeUsage(`defineSlots`);
  }
  return null;
}
function defineModel() {
  if (false) {
    warnRuntimeUsage("defineModel");
  }
}
function withDefaults(props, defaults) {
  if (false) {
    warnRuntimeUsage(`withDefaults`);
  }
  return null;
}
function useSlots() {
  return getContext("useSlots").slots;
}
function useAttrs() {
  return getContext("useAttrs").attrs;
}
function getContext(calledFunctionName) {
  const i = getCurrentInstance();
  if (false) {
    warn$1(`${calledFunctionName}() called without active instance.`);
  }
  return i.setupContext || (i.setupContext = createSetupContext(i));
}
function normalizePropsOrEmits(props) {
  return isArray$1(props) ? props.reduce(
    (normalized, p) => (normalized[p] = null, normalized),
    {}
  ) : props;
}
function mergeDefaults(raw, defaults) {
  const props = normalizePropsOrEmits(raw);
  for (const key in defaults) {
    if (key.startsWith("__skip")) continue;
    let opt = props[key];
    if (opt) {
      if (isArray$1(opt) || isFunction$1(opt)) {
        opt = props[key] = { type: opt, default: defaults[key] };
      } else {
        opt.default = defaults[key];
      }
    } else if (opt === null) {
      opt = props[key] = { default: defaults[key] };
    } else if (false) {
      warn$1(`props default key "${key}" has no corresponding declaration.`);
    }
    if (opt && defaults[`__skip_${key}`]) {
      opt.skipFactory = true;
    }
  }
  return props;
}
function mergeModels(a, b) {
  if (!a || !b) return a || b;
  if (isArray$1(a) && isArray$1(b)) return a.concat(b);
  return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));
}
function createPropsRestProxy(props, excludedKeys) {
  const ret = {};
  for (const key in props) {
    if (!excludedKeys.includes(key)) {
      Object.defineProperty(ret, key, {
        enumerable: true,
        get: () => props[key]
      });
    }
  }
  return ret;
}
function withAsyncContext(getAwaitable) {
  const ctx = getCurrentInstance();
  const inSSRSetup = isInSSRComponentSetup;
  if (false) {
    warn$1(
      `withAsyncContext called without active current instance. This is likely a bug.`
    );
  }
  let awaitable = getAwaitable();
  unsetCurrentInstance();
  if (inSSRSetup) {
    setInSSRSetupState(false);
  }
  const restore = () => {
    setCurrentInstance(ctx);
    if (inSSRSetup) {
      setInSSRSetupState(true);
    }
  };
  const cleanup = () => {
    if (getCurrentInstance() !== ctx) ctx.scope.off();
    unsetCurrentInstance();
    if (inSSRSetup) {
      setInSSRSetupState(false);
    }
  };
  if (isPromise$1(awaitable)) {
    awaitable = awaitable.catch((e) => {
      restore();
      Promise.resolve().then(() => Promise.resolve().then(cleanup));
      throw e;
    });
  }
  return [
    awaitable,
    () => {
      restore();
      Promise.resolve().then(cleanup);
    }
  ];
}
function createDuplicateChecker() {
  const cache = /* @__PURE__ */ Object.create(null);
  return (type, key) => {
    if (cache[key]) {
      warn$1(`${type} property "${key}" is already defined in ${cache[key]}.`);
    } else {
      cache[key] = type;
    }
  };
}
let shouldCacheAccess = true;
function applyOptions(instance) {
  const options = resolveMergedOptions(instance);
  const publicThis = instance.proxy;
  const ctx = instance.ctx;
  shouldCacheAccess = false;
  if (options.beforeCreate) {
    callHook$1(options.beforeCreate, instance, "bc");
  }
  const {
    // state
    data: dataOptions,
    computed: computedOptions,
    methods,
    watch: watchOptions,
    provide: provideOptions,
    inject: injectOptions,
    // lifecycle
    created,
    beforeMount,
    mounted,
    beforeUpdate,
    updated,
    activated,
    deactivated,
    beforeDestroy,
    beforeUnmount,
    destroyed,
    unmounted,
    render,
    renderTracked,
    renderTriggered,
    errorCaptured,
    serverPrefetch,
    // public API
    expose,
    inheritAttrs,
    // assets
    components,
    directives,
    filters
  } = options;
  const checkDuplicateProperties = false ? createDuplicateChecker() : null;
  if (false) {
    const [propsOptions] = instance.propsOptions;
    if (propsOptions) {
      for (const key in propsOptions) {
        checkDuplicateProperties("Props", key);
      }
    }
  }
  if (injectOptions) {
    resolveInjections(injectOptions, ctx, checkDuplicateProperties);
  }
  if (methods) {
    for (const key in methods) {
      const methodHandler = methods[key];
      if (isFunction$1(methodHandler)) {
        if (false) {
          Object.defineProperty(ctx, key, {
            value: methodHandler.bind(publicThis),
            configurable: true,
            enumerable: true,
            writable: true
          });
        } else {
          ctx[key] = methodHandler.bind(publicThis);
        }
        if (false) {
          checkDuplicateProperties("Methods", key);
        }
      } else if (false) {
        warn$1(
          `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?`
        );
      }
    }
  }
  if (dataOptions) {
    if (false) {
      warn$1(
        `The data option must be a function. Plain object usage is no longer supported.`
      );
    }
    const data = dataOptions.call(publicThis, publicThis);
    if (false) {
      warn$1(
        `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`
      );
    }
    if (!isObject$3(data)) {
    } else {
      instance.data = reactive(data);
      if (false) {
        for (const key in data) {
          checkDuplicateProperties("Data", key);
          if (!isReservedPrefix(key[0])) {
            Object.defineProperty(ctx, key, {
              configurable: true,
              enumerable: true,
              get: () => data[key],
              set: NOOP
            });
          }
        }
      }
    }
  }
  shouldCacheAccess = true;
  if (computedOptions) {
    for (const key in computedOptions) {
      const opt = computedOptions[key];
      const get = isFunction$1(opt) ? opt.bind(publicThis, publicThis) : isFunction$1(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
      if (false) {
        warn$1(`Computed property "${key}" has no getter.`);
      }
      const set = !isFunction$1(opt) && isFunction$1(opt.set) ? opt.set.bind(publicThis) : false ? () => {
        warn$1(
          `Write operation failed: computed property "${key}" is readonly.`
        );
      } : NOOP;
      const c = computed({
        get,
        set
      });
      Object.defineProperty(ctx, key, {
        enumerable: true,
        configurable: true,
        get: () => c.value,
        set: (v) => c.value = v
      });
      if (false) {
        checkDuplicateProperties("Computed", key);
      }
    }
  }
  if (watchOptions) {
    for (const key in watchOptions) {
      createWatcher(watchOptions[key], ctx, publicThis, key);
    }
  }
  if (provideOptions) {
    const provides = isFunction$1(provideOptions) ? provideOptions.call(publicThis) : provideOptions;
    Reflect.ownKeys(provides).forEach((key) => {
      provide(key, provides[key]);
    });
  }
  if (created) {
    callHook$1(created, instance, "c");
  }
  function registerLifecycleHook(register, hook) {
    if (isArray$1(hook)) {
      hook.forEach((_hook) => register(_hook.bind(publicThis)));
    } else if (hook) {
      register(hook.bind(publicThis));
    }
  }
  registerLifecycleHook(onBeforeMount, beforeMount);
  registerLifecycleHook(onMounted, mounted);
  registerLifecycleHook(onBeforeUpdate, beforeUpdate);
  registerLifecycleHook(onUpdated, updated);
  registerLifecycleHook(onActivated, activated);
  registerLifecycleHook(onDeactivated, deactivated);
  registerLifecycleHook(onErrorCaptured, errorCaptured);
  registerLifecycleHook(onRenderTracked, renderTracked);
  registerLifecycleHook(onRenderTriggered, renderTriggered);
  registerLifecycleHook(onBeforeUnmount, beforeUnmount);
  registerLifecycleHook(onUnmounted, unmounted);
  registerLifecycleHook(onServerPrefetch, serverPrefetch);
  if (isArray$1(expose)) {
    if (expose.length) {
      const exposed = instance.exposed || (instance.exposed = {});
      expose.forEach((key) => {
        Object.defineProperty(exposed, key, {
          get: () => publicThis[key],
          set: (val) => publicThis[key] = val,
          enumerable: true
        });
      });
    } else if (!instance.exposed) {
      instance.exposed = {};
    }
  }
  if (render && instance.render === NOOP) {
    instance.render = render;
  }
  if (inheritAttrs != null) {
    instance.inheritAttrs = inheritAttrs;
  }
  if (components) instance.components = components;
  if (directives) instance.directives = directives;
  if (serverPrefetch) {
    markAsyncBoundary(instance);
  }
}
function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {
  if (isArray$1(injectOptions)) {
    injectOptions = normalizeInject(injectOptions);
  }
  for (const key in injectOptions) {
    const opt = injectOptions[key];
    let injected;
    if (isObject$3(opt)) {
      if ("default" in opt) {
        injected = inject(
          opt.from || key,
          opt.default,
          true
        );
      } else {
        injected = inject(opt.from || key);
      }
    } else {
      injected = inject(opt);
    }
    if (isRef(injected)) {
      Object.defineProperty(ctx, key, {
        enumerable: true,
        configurable: true,
        get: () => injected.value,
        set: (v) => injected.value = v
      });
    } else {
      ctx[key] = injected;
    }
    if (false) {
      checkDuplicateProperties("Inject", key);
    }
  }
}
function callHook$1(hook, instance, type) {
  callWithAsyncErrorHandling(
    isArray$1(hook) ? hook.map((h2) => h2.bind(instance.proxy)) : hook.bind(instance.proxy),
    instance,
    type
  );
}
function createWatcher(raw, ctx, publicThis, key) {
  let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key];
  if (isString$2(raw)) {
    const handler = ctx[raw];
    if (isFunction$1(handler)) {
      {
        watch(getter, handler);
      }
    } else if (false) {
      warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
    }
  } else if (isFunction$1(raw)) {
    {
      watch(getter, raw.bind(publicThis));
    }
  } else if (isObject$3(raw)) {
    if (isArray$1(raw)) {
      raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
    } else {
      const handler = isFunction$1(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
      if (isFunction$1(handler)) {
        watch(getter, handler, raw);
      } else if (false) {
        warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
      }
    }
  } else if (false) {
    warn$1(`Invalid watch option: "${key}"`, raw);
  }
}
function resolveMergedOptions(instance) {
  const base = instance.type;
  const { mixins, extends: extendsOptions } = base;
  const {
    mixins: globalMixins,
    optionsCache: cache,
    config: { optionMergeStrategies }
  } = instance.appContext;
  const cached = cache.get(base);
  let resolved;
  if (cached) {
    resolved = cached;
  } else if (!globalMixins.length && !mixins && !extendsOptions) {
    {
      resolved = base;
    }
  } else {
    resolved = {};
    if (globalMixins.length) {
      globalMixins.forEach(
        (m) => mergeOptions(resolved, m, optionMergeStrategies, true)
      );
    }
    mergeOptions(resolved, base, optionMergeStrategies);
  }
  if (isObject$3(base)) {
    cache.set(base, resolved);
  }
  return resolved;
}
function mergeOptions(to, from, strats, asMixin = false) {
  const { mixins, extends: extendsOptions } = from;
  if (extendsOptions) {
    mergeOptions(to, extendsOptions, strats, true);
  }
  if (mixins) {
    mixins.forEach(
      (m) => mergeOptions(to, m, strats, true)
    );
  }
  for (const key in from) {
    if (asMixin && key === "expose") {
    } else {
      const strat = internalOptionMergeStrats[key] || strats && strats[key];
      to[key] = strat ? strat(to[key], from[key]) : from[key];
    }
  }
  return to;
}
const internalOptionMergeStrats = {
  data: mergeDataFn,
  props: mergeEmitsOrPropsOptions,
  emits: mergeEmitsOrPropsOptions,
  // objects
  methods: mergeObjectOptions,
  computed: mergeObjectOptions,
  // lifecycle
  beforeCreate: mergeAsArray$1,
  created: mergeAsArray$1,
  beforeMount: mergeAsArray$1,
  mounted: mergeAsArray$1,
  beforeUpdate: mergeAsArray$1,
  updated: mergeAsArray$1,
  beforeDestroy: mergeAsArray$1,
  beforeUnmount: mergeAsArray$1,
  destroyed: mergeAsArray$1,
  unmounted: mergeAsArray$1,
  activated: mergeAsArray$1,
  deactivated: mergeAsArray$1,
  errorCaptured: mergeAsArray$1,
  serverPrefetch: mergeAsArray$1,
  // assets
  components: mergeObjectOptions,
  directives: mergeObjectOptions,
  // watch
  watch: mergeWatchOptions,
  // provide / inject
  provide: mergeDataFn,
  inject: mergeInject
};
function mergeDataFn(to, from) {
  if (!from) {
    return to;
  }
  if (!to) {
    return from;
  }
  return function mergedDataFn() {
    return extend(
      isFunction$1(to) ? to.call(this, this) : to,
      isFunction$1(from) ? from.call(this, this) : from
    );
  };
}
function mergeInject(to, from) {
  return mergeObjectOptions(normalizeInject(to), normalizeInject(from));
}
function normalizeInject(raw) {
  if (isArray$1(raw)) {
    const res = {};
    for (let i = 0; i < raw.length; i++) {
      res[raw[i]] = raw[i];
    }
    return res;
  }
  return raw;
}
function mergeAsArray$1(to, from) {
  return to ? [...new Set([].concat(to, from))] : from;
}
function mergeObjectOptions(to, from) {
  return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;
}
function mergeEmitsOrPropsOptions(to, from) {
  if (to) {
    if (isArray$1(to) && isArray$1(from)) {
      return [.../* @__PURE__ */ new Set([...to, ...from])];
    }
    return extend(
      /* @__PURE__ */ Object.create(null),
      normalizePropsOrEmits(to),
      normalizePropsOrEmits(from != null ? from : {})
    );
  } else {
    return from;
  }
}
function mergeWatchOptions(to, from) {
  if (!to) return from;
  if (!from) return to;
  const merged = extend(/* @__PURE__ */ Object.create(null), to);
  for (const key in from) {
    merged[key] = mergeAsArray$1(to[key], from[key]);
  }
  return merged;
}
function createAppContext() {
  return {
    app: null,
    config: {
      isNativeTag: NO,
      performance: false,
      globalProperties: {},
      optionMergeStrategies: {},
      errorHandler: void 0,
      warnHandler: void 0,
      compilerOptions: {}
    },
    mixins: [],
    components: {},
    directives: {},
    provides: /* @__PURE__ */ Object.create(null),
    optionsCache: /* @__PURE__ */ new WeakMap(),
    propsCache: /* @__PURE__ */ new WeakMap(),
    emitsCache: /* @__PURE__ */ new WeakMap()
  };
}
let uid$1 = 0;
function createAppAPI(render, hydrate) {
  return function createApp(rootComponent, rootProps = null) {
    if (!isFunction$1(rootComponent)) {
      rootComponent = extend({}, rootComponent);
    }
    if (rootProps != null && !isObject$3(rootProps)) {
      rootProps = null;
    }
    const context = createAppContext();
    const installedPlugins = /* @__PURE__ */ new WeakSet();
    const pluginCleanupFns = [];
    let isMounted = false;
    const app = context.app = {
      _uid: uid$1++,
      _component: rootComponent,
      _props: rootProps,
      _container: null,
      _context: context,
      _instance: null,
      version,
      get config() {
        return context.config;
      },
      set config(v) {
        if (false) {
          warn$1(
            `app.config cannot be replaced. Modify individual options instead.`
          );
        }
      },
      use(plugin, ...options) {
        if (installedPlugins.has(plugin)) {
        } else if (plugin && isFunction$1(plugin.install)) {
          installedPlugins.add(plugin);
          plugin.install(app, ...options);
        } else if (isFunction$1(plugin)) {
          installedPlugins.add(plugin);
          plugin(app, ...options);
        } else if (false) {
          warn$1(
            `A plugin must either be a function or an object with an "install" function.`
          );
        }
        return app;
      },
      mixin(mixin) {
        if (true) {
          if (!context.mixins.includes(mixin)) {
            context.mixins.push(mixin);
          } else if (false) {
            warn$1(
              "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "")
            );
          }
        } else if (false) {
          warn$1("Mixins are only available in builds supporting Options API");
        }
        return app;
      },
      component(name, component) {
        if (false) {
          validateComponentName(name, context.config);
        }
        if (!component) {
          return context.components[name];
        }
        if (false) {
          warn$1(`Component "${name}" has already been registered in target app.`);
        }
        context.components[name] = component;
        return app;
      },
      directive(name, directive) {
        if (false) {
          validateDirectiveName(name);
        }
        if (!directive) {
          return context.directives[name];
        }
        if (false) {
          warn$1(`Directive "${name}" has already been registered in target app.`);
        }
        context.directives[name] = directive;
        return app;
      },
      mount(rootContainer, isHydrate, namespace) {
        if (!isMounted) {
          if (false) {
            warn$1(
              `There is already an app instance mounted on the host container.
 If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
            );
          }
          const vnode = app._ceVNode || createVNode(rootComponent, rootProps);
          vnode.appContext = context;
          if (namespace === true) {
            namespace = "svg";
          } else if (namespace === false) {
            namespace = void 0;
          }
          if (false) {
            context.reload = () => {
              const cloned = cloneVNode(vnode);
              cloned.el = null;
              render(cloned, rootContainer, namespace);
            };
          }
          if (isHydrate && hydrate) {
            hydrate(vnode, rootContainer);
          } else {
            render(vnode, rootContainer, namespace);
          }
          isMounted = true;
          app._container = rootContainer;
          rootContainer.__vue_app__ = app;
          if (true) {
            app._instance = vnode.component;
            devtoolsInitApp(app, version);
          }
          return getComponentPublicInstance(vnode.component);
        } else if (false) {
          warn$1(
            `App has already been mounted.
If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\``
          );
        }
      },
      onUnmount(cleanupFn) {
        if (false) {
          warn$1(
            `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}`
          );
        }
        pluginCleanupFns.push(cleanupFn);
      },
      unmount() {
        if (isMounted) {
          callWithAsyncErrorHandling(
            pluginCleanupFns,
            app._instance,
            16
          );
          render(null, app._container);
          if (true) {
            app._instance = null;
            devtoolsUnmountApp(app);
          }
          delete app._container.__vue_app__;
        } else if (false) {
          warn$1(`Cannot unmount an app that is not mounted.`);
        }
      },
      provide(key, value) {
        if (false) {
          if (hasOwn$1(context.provides, key)) {
            warn$1(
              `App already provides property with key "${String(key)}". It will be overwritten with the new value.`
            );
          } else {
            warn$1(
              `App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`
            );
          }
        }
        context.provides[key] = value;
        return app;
      },
      runWithContext(fn) {
        const lastApp = currentApp;
        currentApp = app;
        try {
          return fn();
        } finally {
          currentApp = lastApp;
        }
      }
    };
    return app;
  };
}
let currentApp = null;
function useModel(props, name, options = EMPTY_OBJ) {
  const i = getCurrentInstance();
  if (false) {
    warn$1(`useModel() called without active instance.`);
    return ref();
  }
  const camelizedName = camelize(name);
  if (false) {
    warn$1(`useModel() called with prop "${name}" which is not declared.`);
    return ref();
  }
  const hyphenatedName = hyphenate(name);
  const modifiers = getModelModifiers(props, camelizedName);
  const res = customRef((track2, trigger2) => {
    let localValue;
    let prevSetValue = EMPTY_OBJ;
    let prevEmittedValue;
    watchSyncEffect(() => {
      const propValue = props[camelizedName];
      if (hasChanged(localValue, propValue)) {
        localValue = propValue;
        trigger2();
      }
    });
    return {
      get() {
        track2();
        return options.get ? options.get(localValue) : localValue;
      },
      set(value) {
        const emittedValue = options.set ? options.set(value) : value;
        if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {
          return;
        }
        const rawProps = i.vnode.props;
        if (!(rawProps && // check if parent has passed v-model
        (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) {
          localValue = value;
          trigger2();
        }
        i.emit(`update:${name}`, emittedValue);
        if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {
          trigger2();
        }
        prevSetValue = value;
        prevEmittedValue = emittedValue;
      }
    };
  });
  res[Symbol.iterator] = () => {
    let i2 = 0;
    return {
      next() {
        if (i2 < 2) {
          return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false };
        } else {
          return { done: true };
        }
      }
    };
  };
  return res;
}
const getModelModifiers = (props, modelName) => {
  return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`];
};
function emit(instance, event, ...rawArgs) {
  if (instance.isUnmounted) return;
  const props = instance.vnode.props || EMPTY_OBJ;
  if (false) {
    const {
      emitsOptions,
      propsOptions: [propsOptions]
    } = instance;
    if (emitsOptions) {
      if (!(event in emitsOptions) && true) {
        if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) {
          warn$1(
            `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.`
          );
        }
      } else {
        const validator = emitsOptions[event];
        if (isFunction$1(validator)) {
          const isValid = validator(...rawArgs);
          if (!isValid) {
            warn$1(
              `Invalid event arguments: event validation failed for event "${event}".`
            );
          }
        }
      }
    }
  }
  let args = rawArgs;
  const isModelListener2 = event.startsWith("update:");
  const modifiers = isModelListener2 && getModelModifiers(props, event.slice(7));
  if (modifiers) {
    if (modifiers.trim) {
      args = rawArgs.map((a) => isString$2(a) ? a.trim() : a);
    }
    if (modifiers.number) {
      args = rawArgs.map(looseToNumber);
    }
  }
  if (true) {
    devtoolsComponentEmit(instance, event, args);
  }
  if (false) {
    const lowerCaseEvent = event.toLowerCase();
    if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {
      warn$1(
        `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName(
          instance,
          instance.type
        )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(
          event
        )}" instead of "${event}".`
      );
    }
  }
  let handlerName;
  let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)
  props[handlerName = toHandlerKey(camelize(event))];
  if (!handler && isModelListener2) {
    handler = props[handlerName = toHandlerKey(hyphenate(event))];
  }
  if (handler) {
    callWithAsyncErrorHandling(
      handler,
      instance,
      6,
      args
    );
  }
  const onceHandler = props[handlerName + `Once`];
  if (onceHandler) {
    if (!instance.emitted) {
      instance.emitted = {};
    } else if (instance.emitted[handlerName]) {
      return;
    }
    instance.emitted[handlerName] = true;
    callWithAsyncErrorHandling(
      onceHandler,
      instance,
      6,
      args
    );
  }
}
const mixinEmitsCache = /* @__PURE__ */ new WeakMap();
function normalizeEmitsOptions(comp, appContext, asMixin = false) {
  const cache = asMixin ? mixinEmitsCache : appContext.emitsCache;
  const cached = cache.get(comp);
  if (cached !== void 0) {
    return cached;
  }
  const raw = comp.emits;
  let normalized = {};
  let hasExtends = false;
  if (!isFunction$1(comp)) {
    const extendEmits = (raw2) => {
      const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);
      if (normalizedFromExtend) {
        hasExtends = true;
        extend(normalized, normalizedFromExtend);
      }
    };
    if (!asMixin && appContext.mixins.length) {
      appContext.mixins.forEach(extendEmits);
    }
    if (comp.extends) {
      extendEmits(comp.extends);
    }
    if (comp.mixins) {
      comp.mixins.forEach(extendEmits);
    }
  }
  if (!raw && !hasExtends) {
    if (isObject$3(comp)) {
      cache.set(comp, null);
    }
    return null;
  }
  if (isArray$1(raw)) {
    raw.forEach((key) => normalized[key] = null);
  } else {
    extend(normalized, raw);
  }
  if (isObject$3(comp)) {
    cache.set(comp, normalized);
  }
  return normalized;
}
function isEmitListener(options, key) {
  if (!options || !isOn(key)) {
    return false;
  }
  key = key.slice(2).replace(/Once$/, "");
  return hasOwn$1(options, key[0].toLowerCase() + key.slice(1)) || hasOwn$1(options, hyphenate(key)) || hasOwn$1(options, key);
}
let accessedAttrs = false;
function markAttrsAccessed() {
  accessedAttrs = true;
}
function renderComponentRoot(instance) {
  const {
    type: Component,
    vnode,
    proxy,
    withProxy,
    propsOptions: [propsOptions],
    slots,
    attrs,
    emit: emit2,
    render,
    renderCache,
    props,
    data,
    setupState,
    ctx,
    inheritAttrs
  } = instance;
  const prev = setCurrentRenderingInstance(instance);
  let result;
  let fallthroughAttrs;
  if (false) {
    accessedAttrs = false;
  }
  try {
    if (vnode.shapeFlag & 4) {
      const proxyToUse = withProxy || proxy;
      const thisProxy = false ? new Proxy(proxyToUse, {
        get(target, key, receiver) {
          warn$1(
            `Property '${String(
              key
            )}' was accessed via 'this'. Avoid using 'this' in templates.`
          );
          return Reflect.get(target, key, receiver);
        }
      }) : proxyToUse;
      result = normalizeVNode(
        render.call(
          thisProxy,
          proxyToUse,
          renderCache,
          false ? shallowReadonly(props) : props,
          setupState,
          data,
          ctx
        )
      );
      fallthroughAttrs = attrs;
    } else {
      const render2 = Component;
      if (false) {
        markAttrsAccessed();
      }
      result = normalizeVNode(
        render2.length > 1 ? render2(
          false ? shallowReadonly(props) : props,
          false ? {
            get attrs() {
              markAttrsAccessed();
              return shallowReadonly(attrs);
            },
            slots,
            emit: emit2
          } : { attrs, slots, emit: emit2 }
        ) : render2(
          false ? shallowReadonly(props) : props,
          null
        )
      );
      fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);
    }
  } catch (err) {
    blockStack.length = 0;
    handleError(err, instance, 1);
    result = createVNode(Comment);
  }
  let root = result;
  let setRoot = void 0;
  if (false) {
    [root, setRoot] = getChildRoot(result);
  }
  if (fallthroughAttrs && inheritAttrs !== false) {
    const keys = Object.keys(fallthroughAttrs);
    const { shapeFlag } = root;
    if (keys.length) {
      if (shapeFlag & (1 | 6)) {
        if (propsOptions && keys.some(isModelListener)) {
          fallthroughAttrs = filterModelListeners(
            fallthroughAttrs,
            propsOptions
          );
        }
        root = cloneVNode(root, fallthroughAttrs, false, true);
      } else if (false) {
        const allAttrs = Object.keys(attrs);
        const eventAttrs = [];
        const extraAttrs = [];
        for (let i = 0, l = allAttrs.length; i < l; i++) {
          const key = allAttrs[i];
          if (isOn(key)) {
            if (!isModelListener(key)) {
              eventAttrs.push(key[2].toLowerCase() + key.slice(3));
            }
          } else {
            extraAttrs.push(key);
          }
        }
        if (extraAttrs.length) {
          warn$1(
            `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`
          );
        }
        if (eventAttrs.length) {
          warn$1(
            `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`
          );
        }
      }
    }
  }
  if (vnode.dirs) {
    if (false) {
      warn$1(
        `Runtime directive used on component with non-element root node. The directives will not function as intended.`
      );
    }
    root = cloneVNode(root, null, false, true);
    root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
  }
  if (vnode.transition) {
    if (false) {
      warn$1(
        `Component inside <Transition> renders non-element root node that cannot be animated.`
      );
    }
    setTransitionHooks(root, vnode.transition);
  }
  if (false) {
    setRoot(root);
  } else {
    result = root;
  }
  setCurrentRenderingInstance(prev);
  return result;
}
const getChildRoot = (vnode) => {
  const rawChildren = vnode.children;
  const dynamicChildren = vnode.dynamicChildren;
  const childRoot = filterSingleRoot(rawChildren, false);
  if (!childRoot) {
    return [vnode, void 0];
  } else if (false) {
    return getChildRoot(childRoot);
  }
  const index = rawChildren.indexOf(childRoot);
  const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;
  const setRoot = (updatedRoot) => {
    rawChildren[index] = updatedRoot;
    if (dynamicChildren) {
      if (dynamicIndex > -1) {
        dynamicChildren[dynamicIndex] = updatedRoot;
      } else if (updatedRoot.patchFlag > 0) {
        vnode.dynamicChildren = [...dynamicChildren, updatedRoot];
      }
    }
  };
  return [normalizeVNode(childRoot), setRoot];
};
function filterSingleRoot(children, recurse = true) {
  let singleRoot;
  for (let i = 0; i < children.length; i++) {
    const child = children[i];
    if (isVNode$1(child)) {
      if (child.type !== Comment || child.children === "v-if") {
        if (singleRoot) {
          return;
        } else {
          singleRoot = child;
          if (false) {
            return filterSingleRoot(singleRoot.children);
          }
        }
      }
    } else {
      return;
    }
  }
  return singleRoot;
}
const getFunctionalFallthrough = (attrs) => {
  let res;
  for (const key in attrs) {
    if (key === "class" || key === "style" || isOn(key)) {
      (res || (res = {}))[key] = attrs[key];
    }
  }
  return res;
};
const filterModelListeners = (attrs, props) => {
  const res = {};
  for (const key in attrs) {
    if (!isModelListener(key) || !(key.slice(9) in props)) {
      res[key] = attrs[key];
    }
  }
  return res;
};
const isElementRoot = (vnode) => {
  return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;
};
function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
  const { props: prevProps, children: prevChildren, component } = prevVNode;
  const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;
  const emits = component.emitsOptions;
  if (false) {
    return true;
  }
  if (nextVNode.dirs || nextVNode.transition) {
    return true;
  }
  if (optimized && patchFlag >= 0) {
    if (patchFlag & 1024) {
      return true;
    }
    if (patchFlag & 16) {
      if (!prevProps) {
        return !!nextProps;
      }
      return hasPropsChanged(prevProps, nextProps, emits);
    } else if (patchFlag & 8) {
      const dynamicProps = nextVNode.dynamicProps;
      for (let i = 0; i < dynamicProps.length; i++) {
        const key = dynamicProps[i];
        if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {
          return true;
        }
      }
    }
  } else {
    if (prevChildren || nextChildren) {
      if (!nextChildren || !nextChildren.$stable) {
        return true;
      }
    }
    if (prevProps === nextProps) {
      return false;
    }
    if (!prevProps) {
      return !!nextProps;
    }
    if (!nextProps) {
      return true;
    }
    return hasPropsChanged(prevProps, nextProps, emits);
  }
  return false;
}
function hasPropsChanged(prevProps, nextProps, emitsOptions) {
  const nextKeys = Object.keys(nextProps);
  if (nextKeys.length !== Object.keys(prevProps).length) {
    return true;
  }
  for (let i = 0; i < nextKeys.length; i++) {
    const key = nextKeys[i];
    if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
      return true;
    }
  }
  return false;
}
function hasPropValueChanged(nextProps, prevProps, key) {
  const nextProp = nextProps[key];
  const prevProp = prevProps[key];
  if (key === "style" && isObject$3(nextProp) && isObject$3(prevProp)) {
    return !looseEqual(nextProp, prevProp);
  }
  return nextProp !== prevProp;
}
function updateHOCHostEl({ vnode, parent, suspense }, el) {
  while (parent) {
    const root = parent.subTree;
    if (root.suspense && root.suspense.activeBranch === vnode) {
      root.suspense.vnode.el = root.el = el;
      vnode = root;
    }
    if (root === vnode) {
      (vnode = parent.vnode).el = el;
      parent = parent.parent;
    } else {
      break;
    }
  }
  if (suspense && suspense.activeBranch === vnode) {
    suspense.vnode.el = el;
  }
}
const internalObjectProto = {};
const createInternalObject = () => Object.create(internalObjectProto);
const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;
function initProps(instance, rawProps, isStateful, isSSR = false) {
  const props = {};
  const attrs = createInternalObject();
  instance.propsDefaults = /* @__PURE__ */ Object.create(null);
  setFullProps(instance, rawProps, props, attrs);
  for (const key in instance.propsOptions[0]) {
    if (!(key in props)) {
      props[key] = void 0;
    }
  }
  if (false) {
    validateProps(rawProps || {}, props, instance);
  }
  if (isStateful) {
    instance.props = isSSR ? props : shallowReactive(props);
  } else {
    if (!instance.type.props) {
      instance.props = attrs;
    } else {
      instance.props = props;
    }
  }
  instance.attrs = attrs;
}
function isInHmrContext(instance) {
  while (instance) {
    if (instance.type.__hmrId) return true;
    instance = instance.parent;
  }
}
function updateProps(instance, rawProps, rawPrevProps, optimized) {
  const {
    props,
    attrs,
    vnode: { patchFlag }
  } = instance;
  const rawCurrentProps = toRaw(props);
  const [options] = instance.propsOptions;
  let hasAttrsChanged = false;
  if (
    // always force full diff in dev
    // - #1942 if hmr is enabled with sfc component
    // - vite#872 non-sfc component used by sfc component
    (optimized || patchFlag > 0) && !(patchFlag & 16)
  ) {
    if (patchFlag & 8) {
      const propsToUpdate = instance.vnode.dynamicProps;
      for (let i = 0; i < propsToUpdate.length; i++) {
        let key = propsToUpdate[i];
        if (isEmitListener(instance.emitsOptions, key)) {
          continue;
        }
        const value = rawProps[key];
        if (options) {
          if (hasOwn$1(attrs, key)) {
            if (value !== attrs[key]) {
              attrs[key] = value;
              hasAttrsChanged = true;
            }
          } else {
            const camelizedKey = camelize(key);
            props[camelizedKey] = resolvePropValue(
              options,
              rawCurrentProps,
              camelizedKey,
              value,
              instance,
              false
            );
          }
        } else {
          if (value !== attrs[key]) {
            attrs[key] = value;
            hasAttrsChanged = true;
          }
        }
      }
    }
  } else {
    if (setFullProps(instance, rawProps, props, attrs)) {
      hasAttrsChanged = true;
    }
    let kebabKey;
    for (const key in rawCurrentProps) {
      if (!rawProps || // for camelCase
      !hasOwn$1(rawProps, key) && // it's possible the original props was passed in as kebab-case
      // and converted to camelCase (#955)
      ((kebabKey = hyphenate(key)) === key || !hasOwn$1(rawProps, kebabKey))) {
        if (options) {
          if (rawPrevProps && // for camelCase
          (rawPrevProps[key] !== void 0 || // for kebab-case
          rawPrevProps[kebabKey] !== void 0)) {
            props[key] = resolvePropValue(
              options,
              rawCurrentProps,
              key,
              void 0,
              instance,
              true
            );
          }
        } else {
          delete props[key];
        }
      }
    }
    if (attrs !== rawCurrentProps) {
      for (const key in attrs) {
        if (!rawProps || !hasOwn$1(rawProps, key) && true) {
          delete attrs[key];
          hasAttrsChanged = true;
        }
      }
    }
  }
  if (hasAttrsChanged) {
    trigger(instance.attrs, "set", "");
  }
  if (false) {
    validateProps(rawProps || {}, props, instance);
  }
}
function setFullProps(instance, rawProps, props, attrs) {
  const [options, needCastKeys] = instance.propsOptions;
  let hasAttrsChanged = false;
  let rawCastValues;
  if (rawProps) {
    for (let key in rawProps) {
      if (isReservedProp(key)) {
        continue;
      }
      const value = rawProps[key];
      let camelKey;
      if (options && hasOwn$1(options, camelKey = camelize(key))) {
        if (!needCastKeys || !needCastKeys.includes(camelKey)) {
          props[camelKey] = value;
        } else {
          (rawCastValues || (rawCastValues = {}))[camelKey] = value;
        }
      } else if (!isEmitListener(instance.emitsOptions, key)) {
        if (!(key in attrs) || value !== attrs[key]) {
          attrs[key] = value;
          hasAttrsChanged = true;
        }
      }
    }
  }
  if (needCastKeys) {
    const rawCurrentProps = toRaw(props);
    const castValues = rawCastValues || EMPTY_OBJ;
    for (let i = 0; i < needCastKeys.length; i++) {
      const key = needCastKeys[i];
      props[key] = resolvePropValue(
        options,
        rawCurrentProps,
        key,
        castValues[key],
        instance,
        !hasOwn$1(castValues, key)
      );
    }
  }
  return hasAttrsChanged;
}
function resolvePropValue(options, props, key, value, instance, isAbsent) {
  const opt = options[key];
  if (opt != null) {
    const hasDefault = hasOwn$1(opt, "default");
    if (hasDefault && value === void 0) {
      const defaultValue = opt.default;
      if (opt.type !== Function && !opt.skipFactory && isFunction$1(defaultValue)) {
        const { propsDefaults } = instance;
        if (key in propsDefaults) {
          value = propsDefaults[key];
        } else {
          const reset = setCurrentInstance(instance);
          value = propsDefaults[key] = defaultValue.call(
            null,
            props
          );
          reset();
        }
      } else {
        value = defaultValue;
      }
      if (instance.ce) {
        instance.ce._setProp(key, value);
      }
    }
    if (opt[
      0
      /* shouldCast */
    ]) {
      if (isAbsent && !hasDefault) {
        value = false;
      } else if (opt[
        1
        /* shouldCastTrue */
      ] && (value === "" || value === hyphenate(key))) {
        value = true;
      }
    }
  }
  return value;
}
const mixinPropsCache = /* @__PURE__ */ new WeakMap();
function normalizePropsOptions(comp, appContext, asMixin = false) {
  const cache = asMixin ? mixinPropsCache : appContext.propsCache;
  const cached = cache.get(comp);
  if (cached) {
    return cached;
  }
  const raw = comp.props;
  const normalized = {};
  const needCastKeys = [];
  let hasExtends = false;
  if (!isFunction$1(comp)) {
    const extendProps = (raw2) => {
      hasExtends = true;
      const [props, keys] = normalizePropsOptions(raw2, appContext, true);
      extend(normalized, props);
      if (keys) needCastKeys.push(...keys);
    };
    if (!asMixin && appContext.mixins.length) {
      appContext.mixins.forEach(extendProps);
    }
    if (comp.extends) {
      extendProps(comp.extends);
    }
    if (comp.mixins) {
      comp.mixins.forEach(extendProps);
    }
  }
  if (!raw && !hasExtends) {
    if (isObject$3(comp)) {
      cache.set(comp, EMPTY_ARR);
    }
    return EMPTY_ARR;
  }
  if (isArray$1(raw)) {
    for (let i = 0; i < raw.length; i++) {
      if (false) {
        warn$1(`props must be strings when using array syntax.`, raw[i]);
      }
      const normalizedKey = camelize(raw[i]);
      if (validatePropName(normalizedKey)) {
        normalized[normalizedKey] = EMPTY_OBJ;
      }
    }
  } else if (raw) {
    if (false) {
      warn$1(`invalid props options`, raw);
    }
    for (const key in raw) {
      const normalizedKey = camelize(key);
      if (validatePropName(normalizedKey)) {
        const opt = raw[key];
        const prop = normalized[normalizedKey] = isArray$1(opt) || isFunction$1(opt) ? { type: opt } : extend({}, opt);
        const propType = prop.type;
        let shouldCast = false;
        let shouldCastTrue = true;
        if (isArray$1(propType)) {
          for (let index = 0; index < propType.length; ++index) {
            const type = propType[index];
            const typeName = isFunction$1(type) && type.name;
            if (typeName === "Boolean") {
              shouldCast = true;
              break;
            } else if (typeName === "String") {
              shouldCastTrue = false;
            }
          }
        } else {
          shouldCast = isFunction$1(propType) && propType.name === "Boolean";
        }
        prop[
          0
          /* shouldCast */
        ] = shouldCast;
        prop[
          1
          /* shouldCastTrue */
        ] = shouldCastTrue;
        if (shouldCast || hasOwn$1(prop, "default")) {
          needCastKeys.push(normalizedKey);
        }
      }
    }
  }
  const res = [normalized, needCastKeys];
  if (isObject$3(comp)) {
    cache.set(comp, res);
  }
  return res;
}
function validatePropName(key) {
  if (key[0] !== "$" && !isReservedProp(key)) {
    return true;
  } else if (false) {
    warn$1(`Invalid prop name: "${key}" is a reserved property.`);
  }
  return false;
}
function getType(ctor) {
  if (ctor === null) {
    return "null";
  }
  if (typeof ctor === "function") {
    return ctor.name || "";
  } else if (typeof ctor === "object") {
    const name = ctor.constructor && ctor.constructor.name;
    return name || "";
  }
  return "";
}
function validateProps(rawProps, props, instance) {
  const resolvedValues = toRaw(props);
  const options = instance.propsOptions[0];
  const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key));
  for (const key in options) {
    let opt = options[key];
    if (opt == null) continue;
    validateProp(
      key,
      resolvedValues[key],
      opt,
      false ? shallowReadonly(resolvedValues) : resolvedValues,
      !camelizePropsKey.includes(key)
    );
  }
}
function validateProp(name, value, prop, props, isAbsent) {
  const { type, required, validator, skipCheck } = prop;
  if (required && isAbsent) {
    warn$1('Missing required prop: "' + name + '"');
    return;
  }
  if (value == null && !required) {
    return;
  }
  if (type != null && type !== true && !skipCheck) {
    let isValid = false;
    const types = isArray$1(type) ? type : [type];
    const expectedTypes = [];
    for (let i = 0; i < types.length && !isValid; i++) {
      const { valid, expectedType } = assertType(value, types[i]);
      expectedTypes.push(expectedType || "");
      isValid = valid;
    }
    if (!isValid) {
      warn$1(getInvalidTypeMessage(name, value, expectedTypes));
      return;
    }
  }
  if (validator && !validator(value, props)) {
    warn$1('Invalid prop: custom validator check failed for prop "' + name + '".');
  }
}
const isSimpleType = /* @__PURE__ */ makeMap(
  "String,Number,Boolean,Function,Symbol,BigInt"
);
function assertType(value, type) {
  let valid;
  const expectedType = getType(type);
  if (expectedType === "null") {
    valid = value === null;
  } else if (isSimpleType(expectedType)) {
    const t = typeof value;
    valid = t === expectedType.toLowerCase();
    if (!valid && t === "object") {
      valid = value instanceof type;
    }
  } else if (expectedType === "Object") {
    valid = isObject$3(value);
  } else if (expectedType === "Array") {
    valid = isArray$1(value);
  } else {
    valid = value instanceof type;
  }
  return {
    valid,
    expectedType
  };
}
function getInvalidTypeMessage(name, value, expectedTypes) {
  if (expectedTypes.length === 0) {
    return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`;
  }
  let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize$1).join(" | ")}`;
  const expectedType = expectedTypes[0];
  const receivedType = toRawType(value);
  const expectedValue = styleValue(value, expectedType);
  const receivedValue = styleValue(value, receivedType);
  if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean$1(expectedType, receivedType)) {
    message += ` with value ${expectedValue}`;
  }
  message += `, got ${receivedType} `;
  if (isExplicable(receivedType)) {
    message += `with value ${receivedValue}.`;
  }
  return message;
}
function styleValue(value, type) {
  if (type === "String") {
    return `"${value}"`;
  } else if (type === "Number") {
    return `${Number(value)}`;
  } else {
    return `${value}`;
  }
}
function isExplicable(type) {
  const explicitTypes = ["string", "number", "boolean"];
  return explicitTypes.some((elem) => type.toLowerCase() === elem);
}
function isBoolean$1(...args) {
  return args.some((elem) => elem.toLowerCase() === "boolean");
}
const isInternalKey = (key) => key === "_" || key === "_ctx" || key === "$stable";
const normalizeSlotValue = (value) => isArray$1(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];
const normalizeSlot = (key, rawSlot, ctx) => {
  if (rawSlot._n) {
    return rawSlot;
  }
  const normalized = withCtx((...args) => {
    if (false) {
      warn$1(
        `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
      );
    }
    return normalizeSlotValue(rawSlot(...args));
  }, ctx);
  normalized._c = false;
  return normalized;
};
const normalizeObjectSlots = (rawSlots, slots, instance) => {
  const ctx = rawSlots._ctx;
  for (const key in rawSlots) {
    if (isInternalKey(key)) continue;
    const value = rawSlots[key];
    if (isFunction$1(value)) {
      slots[key] = normalizeSlot(key, value, ctx);
    } else if (value != null) {
      if (false) {
        warn$1(
          `Non-function value encountered for slot "${key}". Prefer function slots for better performance.`
        );
      }
      const normalized = normalizeSlotValue(value);
      slots[key] = () => normalized;
    }
  }
};
const normalizeVNodeSlots = (instance, children) => {
  if (false) {
    warn$1(
      `Non-function value encountered for default slot. Prefer function slots for better performance.`
    );
  }
  const normalized = normalizeSlotValue(children);
  instance.slots.default = () => normalized;
};
const assignSlots = (slots, children, optimized) => {
  for (const key in children) {
    if (optimized || !isInternalKey(key)) {
      slots[key] = children[key];
    }
  }
};
const initSlots = (instance, children, optimized) => {
  const slots = instance.slots = createInternalObject();
  if (instance.vnode.shapeFlag & 32) {
    const type = children._;
    if (type) {
      assignSlots(slots, children, optimized);
      if (optimized) {
        def(slots, "_", type, true);
      }
    } else {
      normalizeObjectSlots(children, slots);
    }
  } else if (children) {
    normalizeVNodeSlots(instance, children);
  }
};
const updateSlots = (instance, children, optimized) => {
  const { vnode, slots } = instance;
  let needDeletionCheck = true;
  let deletionComparisonTarget = EMPTY_OBJ;
  if (vnode.shapeFlag & 32) {
    const type = children._;
    if (type) {
      if (false) {
        assignSlots(slots, children, optimized);
        trigger(instance, "set", "$slots");
      } else if (optimized && type === 1) {
        needDeletionCheck = false;
      } else {
        assignSlots(slots, children, optimized);
      }
    } else {
      needDeletionCheck = !children.$stable;
      normalizeObjectSlots(children, slots);
    }
    deletionComparisonTarget = children;
  } else if (children) {
    normalizeVNodeSlots(instance, children);
    deletionComparisonTarget = { default: 1 };
  }
  if (needDeletionCheck) {
    for (const key in slots) {
      if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {
        delete slots[key];
      }
    }
  }
};
let supported$1;
let perf$1;
function startMeasure(instance, type) {
  if (instance.appContext.config.performance && isSupported()) {
    perf$1.mark(`vue-${type}-${instance.uid}`);
  }
  if (true) {
    devtoolsPerfStart(instance, type, isSupported() ? perf$1.now() : Date.now());
  }
}
function endMeasure(instance, type) {
  if (instance.appContext.config.performance && isSupported()) {
    const startTag = `vue-${type}-${instance.uid}`;
    const endTag = startTag + `:end`;
    const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`;
    perf$1.mark(endTag);
    perf$1.measure(measureName, startTag, endTag);
    perf$1.clearMeasures(measureName);
    perf$1.clearMarks(startTag);
    perf$1.clearMarks(endTag);
  }
  if (true) {
    devtoolsPerfEnd(instance, type, isSupported() ? perf$1.now() : Date.now());
  }
}
function isSupported() {
  if (supported$1 !== void 0) {
    return supported$1;
  }
  if (typeof window !== "undefined" && window.performance) {
    supported$1 = true;
    perf$1 = window.performance;
  } else {
    supported$1 = false;
  }
  return supported$1;
}
function initFeatureFlags$2() {
  const needWarn = [];
  if (false) {
    getGlobalThis$1().__VUE_OPTIONS_API__ = true;
  }
  if (false) {
    getGlobalThis$1().__VUE_PROD_DEVTOOLS__ = false;
  }
  if (false) {
    getGlobalThis$1().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;
  }
  if (false) {
    const multi = needWarn.length > 1;
    console.warn(
      `Feature flag${multi ? `s` : ``} ${needWarn.join(", ")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.

For more details, see https://link.vuejs.org/feature-flags.`
    );
  }
}
const queuePostRenderEffect = queueEffectWithSuspense;
function createRenderer(options) {
  return baseCreateRenderer(options);
}
function createHydrationRenderer(options) {
  return baseCreateRenderer(options, createHydrationFunctions);
}
function baseCreateRenderer(options, createHydrationFns) {
  {
    initFeatureFlags$2();
  }
  const target = getGlobalThis$1();
  target.__VUE__ = true;
  if (true) {
    setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
  }
  const {
    insert: hostInsert,
    remove: hostRemove,
    patchProp: hostPatchProp,
    createElement: hostCreateElement,
    createText: hostCreateText,
    createComment: hostCreateComment,
    setText: hostSetText,
    setElementText: hostSetElementText,
    parentNode: hostParentNode,
    nextSibling: hostNextSibling,
    setScopeId: hostSetScopeId = NOOP,
    insertStaticContent: hostInsertStaticContent
  } = options;
  const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = false ? false : !!n2.dynamicChildren) => {
    if (n1 === n2) {
      return;
    }
    if (n1 && !isSameVNodeType(n1, n2)) {
      anchor = getNextHostNode(n1);
      unmount(n1, parentComponent, parentSuspense, true);
      n1 = null;
    }
    if (n2.patchFlag === -2) {
      optimized = false;
      n2.dynamicChildren = null;
    }
    const { type, ref: ref3, shapeFlag } = n2;
    switch (type) {
      case Text:
        processText(n1, n2, container, anchor);
        break;
      case Comment:
        processCommentNode(n1, n2, container, anchor);
        break;
      case Static:
        if (n1 == null) {
          mountStaticNode(n2, container, anchor, namespace);
        } else if (false) {
          patchStaticNode(n1, n2, container, namespace);
        }
        break;
      case Fragment:
        processFragment(
          n1,
          n2,
          container,
          anchor,
          parentComponent,
          parentSuspense,
          namespace,
          slotScopeIds,
          optimized
        );
        break;
      default:
        if (shapeFlag & 1) {
          processElement(
            n1,
            n2,
            container,
            anchor,
            parentComponent,
            parentSuspense,
            namespace,
            slotScopeIds,
            optimized
          );
        } else if (shapeFlag & 6) {
          processComponent(
            n1,
            n2,
            container,
            anchor,
            parentComponent,
            parentSuspense,
            namespace,
            slotScopeIds,
            optimized
          );
        } else if (shapeFlag & 64) {
          type.process(
            n1,
            n2,
            container,
            anchor,
            parentComponent,
            parentSuspense,
            namespace,
            slotScopeIds,
            optimized,
            internals
          );
        } else if (shapeFlag & 128) {
          type.process(
            n1,
            n2,
            container,
            anchor,
            parentComponent,
            parentSuspense,
            namespace,
            slotScopeIds,
            optimized,
            internals
          );
        } else if (false) {
          warn$1("Invalid VNode type:", type, `(${typeof type})`);
        }
    }
    if (ref3 != null && parentComponent) {
      setRef(ref3, n1 && n1.ref, parentSuspense, n2 || n1, !n2);
    } else if (ref3 == null && n1 && n1.ref != null) {
      setRef(n1.ref, null, parentSuspense, n1, true);
    }
  };
  const processText = (n1, n2, container, anchor) => {
    if (n1 == null) {
      hostInsert(
        n2.el = hostCreateText(n2.children),
        container,
        anchor
      );
    } else {
      const el = n2.el = n1.el;
      if (n2.children !== n1.children) {
        hostSetText(el, n2.children);
      }
    }
  };
  const processCommentNode = (n1, n2, container, anchor) => {
    if (n1 == null) {
      hostInsert(
        n2.el = hostCreateComment(n2.children || ""),
        container,
        anchor
      );
    } else {
      n2.el = n1.el;
    }
  };
  const mountStaticNode = (n2, container, anchor, namespace) => {
    [n2.el, n2.anchor] = hostInsertStaticContent(
      n2.children,
      container,
      anchor,
      namespace,
      n2.el,
      n2.anchor
    );
  };
  const patchStaticNode = (n1, n2, container, namespace) => {
    if (n2.children !== n1.children) {
      const anchor = hostNextSibling(n1.anchor);
      removeStaticNode(n1);
      [n2.el, n2.anchor] = hostInsertStaticContent(
        n2.children,
        container,
        anchor,
        namespace
      );
    } else {
      n2.el = n1.el;
      n2.anchor = n1.anchor;
    }
  };
  const moveStaticNode = ({ el, anchor }, container, nextSibling) => {
    let next;
    while (el && el !== anchor) {
      next = hostNextSibling(el);
      hostInsert(el, container, nextSibling);
      el = next;
    }
    hostInsert(anchor, container, nextSibling);
  };
  const removeStaticNode = ({ el, anchor }) => {
    let next;
    while (el && el !== anchor) {
      next = hostNextSibling(el);
      hostRemove(el);
      el = next;
    }
    hostRemove(anchor);
  };
  const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
    if (n2.type === "svg") {
      namespace = "svg";
    } else if (n2.type === "math") {
      namespace = "mathml";
    }
    if (n1 == null) {
      mountElement(
        n2,
        container,
        anchor,
        parentComponent,
        parentSuspense,
        namespace,
        slotScopeIds,
        optimized
      );
    } else {
      const customElement = n1.el && n1.el._isVueCE ? n1.el : null;
      try {
        if (customElement) {
          customElement._beginPatch();
        }
        patchElement(
          n1,
          n2,
          parentComponent,
          parentSuspense,
          namespace,
          slotScopeIds,
          optimized
        );
      } finally {
        if (customElement) {
          customElement._endPatch();
        }
      }
    }
  };
  const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
    let el;
    let vnodeHook;
    const { props, shapeFlag, transition, dirs } = vnode;
    el = vnode.el = hostCreateElement(
      vnode.type,
      namespace,
      props && props.is,
      props
    );
    if (shapeFlag & 8) {
      hostSetElementText(el, vnode.children);
    } else if (shapeFlag & 16) {
      mountChildren(
        vnode.children,
        el,
        null,
        parentComponent,
        parentSuspense,
        resolveChildrenNamespace(vnode, namespace),
        slotScopeIds,
        optimized
      );
    }
    if (dirs) {
      invokeDirectiveHook(vnode, null, parentComponent, "created");
    }
    setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);
    if (props) {
      for (const key in props) {
        if (key !== "value" && !isReservedProp(key)) {
          hostPatchProp(el, key, null, props[key], namespace, parentComponent);
        }
      }
      if ("value" in props) {
        hostPatchProp(el, "value", null, props.value, namespace);
      }
      if (vnodeHook = props.onVnodeBeforeMount) {
        invokeVNodeHook(vnodeHook, parentComponent, vnode);
      }
    }
    if (true) {
      def(el, "__vnode", vnode, true);
      def(el, "__vueParentComponent", parentComponent, true);
    }
    if (dirs) {
      invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
    }
    const needCallTransitionHooks = needTransition(parentSuspense, transition);
    if (needCallTransitionHooks) {
      transition.beforeEnter(el);
    }
    hostInsert(el, container, anchor);
    if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {
      const isHmr = false;
      queuePostRenderEffect(() => {
        let prev;
        if (false) prev = setHmrUpdating(isHmr);
        try {
          vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
          needCallTransitionHooks && transition.enter(el);
          dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
        } finally {
          if (false) setHmrUpdating(prev);
        }
      }, parentSuspense);
    }
  };
  const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {
    if (scopeId) {
      hostSetScopeId(el, scopeId);
    }
    if (slotScopeIds) {
      for (let i = 0; i < slotScopeIds.length; i++) {
        hostSetScopeId(el, slotScopeIds[i]);
      }
    }
    if (parentComponent) {
      let subTree = parentComponent.subTree;
      if (false) {
        subTree = filterSingleRoot(subTree.children) || subTree;
      }
      if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) {
        const parentVNode = parentComponent.vnode;
        setScopeId(
          el,
          parentVNode,
          parentVNode.scopeId,
          parentVNode.slotScopeIds,
          parentComponent.parent
        );
      }
    }
  };
  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
    for (let i = start; i < children.length; i++) {
      const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
      patch(
        null,
        child,
        container,
        anchor,
        parentComponent,
        parentSuspense,
        namespace,
        slotScopeIds,
        optimized
      );
    }
  };
  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
    const el = n2.el = n1.el;
    if (true) {
      el.__vnode = n2;
    }
    let { patchFlag, dynamicChildren, dirs } = n2;
    patchFlag |= n1.patchFlag & 16;
    const oldProps = n1.props || EMPTY_OBJ;
    const newProps = n2.props || EMPTY_OBJ;
    let vnodeHook;
    parentComponent && toggleRecurse(parentComponent, false);
    if (vnodeHook = newProps.onVnodeBeforeUpdate) {
      invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
    }
    if (dirs) {
      invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
    }
    parentComponent && toggleRecurse(parentComponent, true);
    if (false) {
      patchFlag = 0;
      optimized = false;
      dynamicChildren = null;
    }
    if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) {
      hostSetElementText(el, "");
    }
    if (dynamicChildren) {
      patchBlockChildren(
        n1.dynamicChildren,
        dynamicChildren,
        el,
        parentComponent,
        parentSuspense,
        resolveChildrenNamespace(n2, namespace),
        slotScopeIds
      );
      if (false) {
        traverseStaticChildren(n1, n2);
      }
    } else if (!optimized) {
      patchChildren(
        n1,
        n2,
        el,
        null,
        parentComponent,
        parentSuspense,
        resolveChildrenNamespace(n2, namespace),
        slotScopeIds,
        false
      );
    }
    if (patchFlag > 0) {
      if (patchFlag & 16) {
        patchProps(el, oldProps, newProps, parentComponent, namespace);
      } else {
        if (patchFlag & 2) {
          if (oldProps.class !== newProps.class) {
            hostPatchProp(el, "class", null, newProps.class, namespace);
          }
        }
        if (patchFlag & 4) {
          hostPatchProp(el, "style", oldProps.style, newProps.style, namespace);
        }
        if (patchFlag & 8) {
          const propsToUpdate = n2.dynamicProps;
          for (let i = 0; i < propsToUpdate.length; i++) {
            const key = propsToUpdate[i];
            const prev = oldProps[key];
            const next = newProps[key];
            if (next !== prev || key === "value") {
              hostPatchProp(el, key, prev, next, namespace, parentComponent);
            }
          }
        }
      }
      if (patchFlag & 1) {
        if (n1.children !== n2.children) {
          hostSetElementText(el, n2.children);
        }
      }
    } else if (!optimized && dynamicChildren == null) {
      patchProps(el, oldProps, newProps, parentComponent, namespace);
    }
    if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {
      queuePostRenderEffect(() => {
        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
        dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
      }, parentSuspense);
    }
  };
  const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {
    for (let i = 0; i < newChildren.length; i++) {
      const oldVNode = oldChildren[i];
      const newVNode = newChildren[i];
      const container = (
        // oldVNode may be an errored async setup() component inside Suspense
        // which will not have a mounted element
        oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
        // of the Fragment itself so it can move its children.
        (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
        // which also requires the correct parent container
        !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
        oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
          // In other cases, the parent container is not actually used so we
          // just pass the block element here to avoid a DOM parentNode call.
          fallbackContainer
        )
      );
      patch(
        oldVNode,
        newVNode,
        container,
        null,
        parentComponent,
        parentSuspense,
        namespace,
        slotScopeIds,
        true
      );
    }
  };
  const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
    if (oldProps !== newProps) {
      if (oldProps !== EMPTY_OBJ) {
        for (const key in oldProps) {
          if (!isReservedProp(key) && !(key in newProps)) {
            hostPatchProp(
              el,
              key,
              oldProps[key],
              null,
              namespace,
              parentComponent
            );
          }
        }
      }
      for (const key in newProps) {
        if (isReservedProp(key)) continue;
        const next = newProps[key];
        const prev = oldProps[key];
        if (next !== prev && key !== "value") {
          hostPatchProp(el, key, prev, next, namespace, parentComponent);
        }
      }
      if ("value" in newProps) {
        hostPatchProp(el, "value", oldProps.value, newProps.value, namespace);
      }
    }
  };
  const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
    const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText("");
    const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText("");
    let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;
    if (false) {
      patchFlag = 0;
      optimized = false;
      dynamicChildren = null;
    }
    if (fragmentSlotScopeIds) {
      slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
    }
    if (n1 == null) {
      hostInsert(fragmentStartAnchor, container, anchor);
      hostInsert(fragmentEndAnchor, container, anchor);
      mountChildren(
        // #10007
        // such fragment like `<></>` will be compiled into
        // a fragment which doesn't have a children.
        // In this case fallback to an empty array
        n2.children || [],
        container,
        fragmentEndAnchor,
        parentComponent,
        parentSuspense,
        namespace,
        slotScopeIds,
        optimized
      );
    } else {
      if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result
      // of renderSlot() with no valid children
      n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) {
        patchBlockChildren(
          n1.dynamicChildren,
          dynamicChildren,
          container,
          parentComponent,
          parentSuspense,
          namespace,
          slotScopeIds
        );
        if (false) {
          traverseStaticChildren(n1, n2);
        } else if (
          // #2080 if the stable fragment has a key, it's a <template v-for> that may
          //  get moved around. Make sure all root level vnodes inherit el.
          // #2134 or if it's a component root, it may also get moved around
          // as the component is being moved.
          n2.key != null || parentComponent && n2 === parentComponent.subTree
        ) {
          traverseStaticChildren(
            n1,
            n2,
            true
            /* shallow */
          );
        }
      } else {
        patchChildren(
          n1,
          n2,
          container,
          fragmentEndAnchor,
          parentComponent,
          parentSuspense,
          namespace,
          slotScopeIds,
          optimized
        );
      }
    }
  };
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
    n2.slotScopeIds = slotScopeIds;
    if (n1 == null) {
      if (n2.shapeFlag & 512) {
        parentComponent.ctx.activate(
          n2,
          container,
          anchor,
          namespace,
          optimized
        );
      } else {
        mountComponent(
          n2,
          container,
          anchor,
          parentComponent,
          parentSuspense,
          namespace,
          optimized
        );
      }
    } else {
      updateComponent(n1, n2, optimized);
    }
  };
  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
    const instance = initialVNode.component = createComponentInstance(
      initialVNode,
      parentComponent,
      parentSuspense
    );
    if (false) {
      registerHMR(instance);
    }
    if (false) {
      pushWarningContext(initialVNode);
      startMeasure(instance, `mount`);
    }
    if (isKeepAlive(initialVNode)) {
      instance.ctx.renderer = internals;
    }
    {
      if (false) {
        startMeasure(instance, `init`);
      }
      setupComponent(instance, false, optimized);
      if (false) {
        endMeasure(instance, `init`);
      }
    }
    if (false) initialVNode.el = null;
    if (instance.asyncDep) {
      parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
      if (!initialVNode.el) {
        const placeholder = instance.subTree = createVNode(Comment);
        processCommentNode(null, placeholder, container, anchor);
        initialVNode.placeholder = placeholder.el;
      }
    } else {
      setupRenderEffect(
        instance,
        initialVNode,
        container,
        anchor,
        parentSuspense,
        namespace,
        optimized
      );
    }
    if (false) {
      popWarningContext();
      endMeasure(instance, `mount`);
    }
  };
  const updateComponent = (n1, n2, optimized) => {
    const instance = n2.component = n1.component;
    if (shouldUpdateComponent(n1, n2, optimized)) {
      if (instance.asyncDep && !instance.asyncResolved) {
        if (false) {
          pushWarningContext(n2);
        }
        updateComponentPreRender(instance, n2, optimized);
        if (false) {
          popWarningContext();
        }
        return;
      } else {
        instance.next = n2;
        instance.update();
      }
    } else {
      n2.el = n1.el;
      instance.vnode = n2;
    }
  };
  const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {
    const componentUpdateFn = () => {
      if (!instance.isMounted) {
        let vnodeHook;
        const { el, props } = initialVNode;
        const { bm, m, parent, root, type } = instance;
        const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);
        toggleRecurse(instance, false);
        if (bm) {
          invokeArrayFns(bm);
        }
        if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {
          invokeVNodeHook(vnodeHook, parent, initialVNode);
        }
        toggleRecurse(instance, true);
        if (el && hydrateNode) {
          const hydrateSubTree = () => {
            if (false) {
              startMeasure(instance, `render`);
            }
            instance.subTree = renderComponentRoot(instance);
            if (false) {
              endMeasure(instance, `render`);
            }
            if (false) {
              startMeasure(instance, `hydrate`);
            }
            hydrateNode(
              el,
              instance.subTree,
              instance,
              parentSuspense,
              null
            );
            if (false) {
              endMeasure(instance, `hydrate`);
            }
          };
          if (isAsyncWrapperVNode && type.__asyncHydrate) {
            type.__asyncHydrate(
              el,
              instance,
              hydrateSubTree
            );
          } else {
            hydrateSubTree();
          }
        } else {
          if (root.ce && root.ce._hasShadowRoot()) {
            root.ce._injectChildStyle(
              type,
              instance.parent ? instance.parent.type : void 0
            );
          }
          if (false) {
            startMeasure(instance, `render`);
          }
          const subTree = instance.subTree = renderComponentRoot(instance);
          if (false) {
            endMeasure(instance, `render`);
          }
          if (false) {
            startMeasure(instance, `patch`);
          }
          patch(
            null,
            subTree,
            container,
            anchor,
            instance,
            parentSuspense,
            namespace
          );
          if (false) {
            endMeasure(instance, `patch`);
          }
          initialVNode.el = subTree.el;
        }
        if (m) {
          queuePostRenderEffect(m, parentSuspense);
        }
        if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {
          const scopedInitialVNode = initialVNode;
          queuePostRenderEffect(
            () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),
            parentSuspense
          );
        }
        if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {
          instance.a && queuePostRenderEffect(instance.a, parentSuspense);
        }
        instance.isMounted = true;
        if (true) {
          devtoolsComponentAdded(instance);
        }
        initialVNode = container = anchor = null;
      } else {
        let { next, bu, u, parent, vnode } = instance;
        {
          const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
          if (nonHydratedAsyncRoot) {
            if (next) {
              next.el = vnode.el;
              updateComponentPreRender(instance, next, optimized);
            }
            nonHydratedAsyncRoot.asyncDep.then(() => {
              queuePostRenderEffect(() => {
                if (!instance.isUnmounted) update();
              }, parentSuspense);
            });
            return;
          }
        }
        let originNext = next;
        let vnodeHook;
        if (false) {
          pushWarningContext(next || instance.vnode);
        }
        toggleRecurse(instance, false);
        if (next) {
          next.el = vnode.el;
          updateComponentPreRender(instance, next, optimized);
        } else {
          next = vnode;
        }
        if (bu) {
          invokeArrayFns(bu);
        }
        if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {
          invokeVNodeHook(vnodeHook, parent, next, vnode);
        }
        toggleRecurse(instance, true);
        if (false) {
          startMeasure(instance, `render`);
        }
        const nextTree = renderComponentRoot(instance);
        if (false) {
          endMeasure(instance, `render`);
        }
        const prevTree = instance.subTree;
        instance.subTree = nextTree;
        if (false) {
          startMeasure(instance, `patch`);
        }
        patch(
          prevTree,
          nextTree,
          // parent may have changed if it's in a teleport
          hostParentNode(prevTree.el),
          // anchor may have changed if it's in a fragment
          getNextHostNode(prevTree),
          instance,
          parentSuspense,
          namespace
        );
        if (false) {
          endMeasure(instance, `patch`);
        }
        next.el = nextTree.el;
        if (originNext === null) {
          updateHOCHostEl(instance, nextTree.el);
        }
        if (u) {
          queuePostRenderEffect(u, parentSuspense);
        }
        if (vnodeHook = next.props && next.props.onVnodeUpdated) {
          queuePostRenderEffect(
            () => invokeVNodeHook(vnodeHook, parent, next, vnode),
            parentSuspense
          );
        }
        if (true) {
          devtoolsComponentUpdated(instance);
        }
        if (false) {
          popWarningContext();
        }
      }
    };
    instance.scope.on();
    const effect2 = instance.effect = new ReactiveEffect(componentUpdateFn);
    instance.scope.off();
    const update = instance.update = effect2.run.bind(effect2);
    const job = instance.job = effect2.runIfDirty.bind(effect2);
    job.i = instance;
    job.id = instance.uid;
    effect2.scheduler = () => queueJob(job);
    toggleRecurse(instance, true);
    if (false) {
      effect2.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;
      effect2.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;
    }
    update();
  };
  const updateComponentPreRender = (instance, nextVNode, optimized) => {
    nextVNode.component = instance;
    const prevProps = instance.vnode.props;
    instance.vnode = nextVNode;
    instance.next = null;
    updateProps(instance, nextVNode.props, prevProps, optimized);
    updateSlots(instance, nextVNode.children, optimized);
    pauseTracking();
    flushPreFlushCbs(instance);
    resetTracking();
  };
  const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {
    const c1 = n1 && n1.children;
    const prevShapeFlag = n1 ? n1.shapeFlag : 0;
    const c2 = n2.children;
    const { patchFlag, shapeFlag } = n2;
    if (patchFlag > 0) {
      if (patchFlag & 128) {
        patchKeyedChildren(
          c1,
          c2,
          container,
          anchor,
          parentComponent,
          parentSuspense,
          namespace,
          slotScopeIds,
          optimized
        );
        return;
      } else if (patchFlag & 256) {
        patchUnkeyedChildren(
          c1,
          c2,
          container,
          anchor,
          parentComponent,
          parentSuspense,
          namespace,
          slotScopeIds,
          optimized
        );
        return;
      }
    }
    if (shapeFlag & 8) {
      if (prevShapeFlag & 16) {
        unmountChildren(c1, parentComponent, parentSuspense);
      }
      if (c2 !== c1) {
        hostSetElementText(container, c2);
      }
    } else {
      if (prevShapeFlag & 16) {
        if (shapeFlag & 16) {
          patchKeyedChildren(
            c1,
            c2,
            container,
            anchor,
            parentComponent,
            parentSuspense,
            namespace,
            slotScopeIds,
            optimized
          );
        } else {
          unmountChildren(c1, parentComponent, parentSuspense, true);
        }
      } else {
        if (prevShapeFlag & 8) {
          hostSetElementText(container, "");
        }
        if (shapeFlag & 16) {
          mountChildren(
            c2,
            container,
            anchor,
            parentComponent,
            parentSuspense,
            namespace,
            slotScopeIds,
            optimized
          );
        }
      }
    }
  };
  const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
    c1 = c1 || EMPTY_ARR;
    c2 = c2 || EMPTY_ARR;
    const oldLength = c1.length;
    const newLength = c2.length;
    const commonLength = Math.min(oldLength, newLength);
    let i;
    for (i = 0; i < commonLength; i++) {
      const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
      patch(
        c1[i],
        nextChild,
        container,
        null,
        parentComponent,
        parentSuspense,
        namespace,
        slotScopeIds,
        optimized
      );
    }
    if (oldLength > newLength) {
      unmountChildren(
        c1,
        parentComponent,
        parentSuspense,
        true,
        false,
        commonLength
      );
    } else {
      mountChildren(
        c2,
        container,
        anchor,
        parentComponent,
        parentSuspense,
        namespace,
        slotScopeIds,
        optimized,
        commonLength
      );
    }
  };
  const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
    let i = 0;
    const l2 = c2.length;
    let e1 = c1.length - 1;
    let e2 = l2 - 1;
    while (i <= e1 && i <= e2) {
      const n1 = c1[i];
      const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
      if (isSameVNodeType(n1, n2)) {
        patch(
          n1,
          n2,
          container,
          null,
          parentComponent,
          parentSuspense,
          namespace,
          slotScopeIds,
          optimized
        );
      } else {
        break;
      }
      i++;
    }
    while (i <= e1 && i <= e2) {
      const n1 = c1[e1];
      const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);
      if (isSameVNodeType(n1, n2)) {
        patch(
          n1,
          n2,
          container,
          null,
          parentComponent,
          parentSuspense,
          namespace,
          slotScopeIds,
          optimized
        );
      } else {
        break;
      }
      e1--;
      e2--;
    }
    if (i > e1) {
      if (i <= e2) {
        const nextPos = e2 + 1;
        const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;
        while (i <= e2) {
          patch(
            null,
            c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),
            container,
            anchor,
            parentComponent,
            parentSuspense,
            namespace,
            slotScopeIds,
            optimized
          );
          i++;
        }
      }
    } else if (i > e2) {
      while (i <= e1) {
        unmount(c1[i], parentComponent, parentSuspense, true);
        i++;
      }
    } else {
      const s1 = i;
      const s2 = i;
      const keyToNewIndexMap = /* @__PURE__ */ new Map();
      for (i = s2; i <= e2; i++) {
        const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
        if (nextChild.key != null) {
          if (false) {
            warn$1(
              `Duplicate keys found during update:`,
              JSON.stringify(nextChild.key),
              `Make sure keys are unique.`
            );
          }
          keyToNewIndexMap.set(nextChild.key, i);
        }
      }
      let j;
      let patched = 0;
      const toBePatched = e2 - s2 + 1;
      let moved = false;
      let maxNewIndexSoFar = 0;
      const newIndexToOldIndexMap = new Array(toBePatched);
      for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0;
      for (i = s1; i <= e1; i++) {
        const prevChild = c1[i];
        if (patched >= toBePatched) {
          unmount(prevChild, parentComponent, parentSuspense, true);
          continue;
        }
        let newIndex;
        if (prevChild.key != null) {
          newIndex = keyToNewIndexMap.get(prevChild.key);
        } else {
          for (j = s2; j <= e2; j++) {
            if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {
              newIndex = j;
              break;
            }
          }
        }
        if (newIndex === void 0) {
          unmount(prevChild, parentComponent, parentSuspense, true);
        } else {
          newIndexToOldIndexMap[newIndex - s2] = i + 1;
          if (newIndex >= maxNewIndexSoFar) {
            maxNewIndexSoFar = newIndex;
          } else {
            moved = true;
          }
          patch(
            prevChild,
            c2[newIndex],
            container,
            null,
            parentComponent,
            parentSuspense,
            namespace,
            slotScopeIds,
            optimized
          );
          patched++;
        }
      }
      const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;
      j = increasingNewIndexSequence.length - 1;
      for (i = toBePatched - 1; i >= 0; i--) {
        const nextIndex = s2 + i;
        const nextChild = c2[nextIndex];
        const anchorVNode = c2[nextIndex + 1];
        const anchor = nextIndex + 1 < l2 ? (
          // #13559, #14173 fallback to el placeholder for unresolved async component
          anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode)
        ) : parentAnchor;
        if (newIndexToOldIndexMap[i] === 0) {
          patch(
            null,
            nextChild,
            container,
            anchor,
            parentComponent,
            parentSuspense,
            namespace,
            slotScopeIds,
            optimized
          );
        } else if (moved) {
          if (j < 0 || i !== increasingNewIndexSequence[j]) {
            move(nextChild, container, anchor, 2);
          } else {
            j--;
          }
        }
      }
    }
  };
  const move = (vnode, container, anchor, moveType, parentSuspense = null) => {
    const { el, type, transition, children, shapeFlag } = vnode;
    if (shapeFlag & 6) {
      move(vnode.component.subTree, container, anchor, moveType);
      return;
    }
    if (shapeFlag & 128) {
      vnode.suspense.move(container, anchor, moveType);
      return;
    }
    if (shapeFlag & 64) {
      type.move(vnode, container, anchor, internals);
      return;
    }
    if (type === Fragment) {
      hostInsert(el, container, anchor);
      for (let i = 0; i < children.length; i++) {
        move(children[i], container, anchor, moveType);
      }
      hostInsert(vnode.anchor, container, anchor);
      return;
    }
    if (type === Static) {
      moveStaticNode(vnode, container, anchor);
      return;
    }
    const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;
    if (needTransition2) {
      if (moveType === 0) {
        transition.beforeEnter(el);
        hostInsert(el, container, anchor);
        queuePostRenderEffect(() => transition.enter(el), parentSuspense);
      } else {
        const { leave, delayLeave, afterLeave } = transition;
        const remove22 = () => {
          if (vnode.ctx.isUnmounted) {
            hostRemove(el);
          } else {
            hostInsert(el, container, anchor);
          }
        };
        const performLeave = () => {
          if (el._isLeaving) {
            el[leaveCbKey](
              true
              /* cancelled */
            );
          }
          leave(el, () => {
            remove22();
            afterLeave && afterLeave();
          });
        };
        if (delayLeave) {
          delayLeave(el, remove22, performLeave);
        } else {
          performLeave();
        }
      }
    } else {
      hostInsert(el, container, anchor);
    }
  };
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
    const {
      type,
      props,
      ref: ref3,
      children,
      dynamicChildren,
      shapeFlag,
      patchFlag,
      dirs,
      cacheIndex,
      memo
    } = vnode;
    if (patchFlag === -2) {
      optimized = false;
    }
    if (ref3 != null) {
      pauseTracking();
      setRef(ref3, null, parentSuspense, vnode, true);
      resetTracking();
    }
    if (cacheIndex != null) {
      parentComponent.renderCache[cacheIndex] = void 0;
    }
    if (shapeFlag & 256) {
      parentComponent.ctx.deactivate(vnode);
      return;
    }
    const shouldInvokeDirs = shapeFlag & 1 && dirs;
    const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
    let vnodeHook;
    if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {
      invokeVNodeHook(vnodeHook, parentComponent, vnode);
    }
    if (shapeFlag & 6) {
      unmountComponent(vnode.component, parentSuspense, doRemove);
    } else {
      if (shapeFlag & 128) {
        vnode.suspense.unmount(parentSuspense, doRemove);
        return;
      }
      if (shouldInvokeDirs) {
        invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
      }
      if (shapeFlag & 64) {
        vnode.type.remove(
          vnode,
          parentComponent,
          parentSuspense,
          internals,
          doRemove
        );
      } else if (dynamicChildren && // #5154
      // when v-once is used inside a block, setBlockTracking(-1) marks the
      // parent block with hasOnce: true
      // so that it doesn't take the fast path during unmount - otherwise
      // components nested in v-once are never unmounted.
      !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments
      (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {
        unmountChildren(
          dynamicChildren,
          parentComponent,
          parentSuspense,
          false,
          true
        );
      } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {
        unmountChildren(children, parentComponent, parentSuspense);
      }
      if (doRemove) {
        remove2(vnode);
      }
    }
    const shouldInvalidateMemo = memo != null && cacheIndex == null;
    if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs || shouldInvalidateMemo) {
      queuePostRenderEffect(() => {
        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
        shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
        if (shouldInvalidateMemo) {
          vnode.el = null;
        }
      }, parentSuspense);
    }
  };
  const remove2 = (vnode) => {
    const { type, el, anchor, transition } = vnode;
    if (type === Fragment) {
      if (false) {
        vnode.children.forEach((child) => {
          if (child.type === Comment) {
            hostRemove(child.el);
          } else {
            remove2(child);
          }
        });
      } else {
        removeFragment(el, anchor);
      }
      return;
    }
    if (type === Static) {
      removeStaticNode(vnode);
      return;
    }
    const performRemove = () => {
      hostRemove(el);
      if (transition && !transition.persisted && transition.afterLeave) {
        transition.afterLeave();
      }
    };
    if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
      const { leave, delayLeave } = transition;
      const performLeave = () => leave(el, performRemove);
      if (delayLeave) {
        delayLeave(vnode.el, performRemove, performLeave);
      } else {
        performLeave();
      }
    } else {
      performRemove();
    }
  };
  const removeFragment = (cur, end) => {
    let next;
    while (cur !== end) {
      next = hostNextSibling(cur);
      hostRemove(cur);
      cur = next;
    }
    hostRemove(end);
  };
  const unmountComponent = (instance, parentSuspense, doRemove) => {
    if (false) {
      unregisterHMR(instance);
    }
    const { bum, scope, job, subTree, um, m, a } = instance;
    invalidateMount(m);
    invalidateMount(a);
    if (bum) {
      invokeArrayFns(bum);
    }
    scope.stop();
    if (job) {
      job.flags |= 8;
      unmount(subTree, instance, parentSuspense, doRemove);
    }
    if (um) {
      queuePostRenderEffect(um, parentSuspense);
    }
    queuePostRenderEffect(() => {
      instance.isUnmounted = true;
    }, parentSuspense);
    if (true) {
      devtoolsComponentRemoved(instance);
    }
  };
  const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {
    for (let i = start; i < children.length; i++) {
      unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);
    }
  };
  const getNextHostNode = (vnode) => {
    if (vnode.shapeFlag & 6) {
      return getNextHostNode(vnode.component.subTree);
    }
    if (vnode.shapeFlag & 128) {
      return vnode.suspense.next();
    }
    const el = hostNextSibling(vnode.anchor || vnode.el);
    const teleportEnd = el && el[TeleportEndKey];
    return teleportEnd ? hostNextSibling(teleportEnd) : el;
  };
  let isFlushing = false;
  const render = (vnode, container, namespace) => {
    let instance;
    if (vnode == null) {
      if (container._vnode) {
        unmount(container._vnode, null, null, true);
        instance = container._vnode.component;
      }
    } else {
      patch(
        container._vnode || null,
        vnode,
        container,
        null,
        null,
        null,
        namespace
      );
    }
    container._vnode = vnode;
    if (!isFlushing) {
      isFlushing = true;
      flushPreFlushCbs(instance);
      flushPostFlushCbs();
      isFlushing = false;
    }
  };
  const internals = {
    p: patch,
    um: unmount,
    m: move,
    r: remove2,
    mt: mountComponent,
    mc: mountChildren,
    pc: patchChildren,
    pbc: patchBlockChildren,
    n: getNextHostNode,
    o: options
  };
  let hydrate;
  let hydrateNode;
  if (createHydrationFns) {
    [hydrate, hydrateNode] = createHydrationFns(
      internals
    );
  }
  return {
    render,
    hydrate,
    createApp: createAppAPI(render, hydrate)
  };
}
function resolveChildrenNamespace({ type, props }, currentNamespace) {
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
}
function toggleRecurse({ effect: effect2, job }, allowed) {
  if (allowed) {
    effect2.flags |= 32;
    job.flags |= 4;
  } else {
    effect2.flags &= -33;
    job.flags &= -5;
  }
}
function needTransition(parentSuspense, transition) {
  return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;
}
function traverseStaticChildren(n1, n2, shallow = false) {
  const ch1 = n1.children;
  const ch2 = n2.children;
  if (isArray$1(ch1) && isArray$1(ch2)) {
    for (let i = 0; i < ch1.length; i++) {
      const c1 = ch1[i];
      let c2 = ch2[i];
      if (c2.shapeFlag & 1 && !c2.dynamicChildren) {
        if (c2.patchFlag <= 0 || c2.patchFlag === 32) {
          c2 = ch2[i] = cloneIfMounted(ch2[i]);
          c2.el = c1.el;
        }
        if (!shallow && c2.patchFlag !== -2)
          traverseStaticChildren(c1, c2);
      }
      if (c2.type === Text) {
        if (c2.patchFlag === -1) {
          c2 = ch2[i] = cloneIfMounted(c2);
        }
        c2.el = c1.el;
      }
      if (c2.type === Comment && !c2.el) {
        c2.el = c1.el;
      }
      if (false) {
        c2.el && (c2.el.__vnode = c2);
      }
    }
  }
}
function getSequence(arr) {
  const p = arr.slice();
  const result = [0];
  let i, j, u, v, c;
  const len = arr.length;
  for (i = 0; i < len; i++) {
    const arrI = arr[i];
    if (arrI !== 0) {
      j = result[result.length - 1];
      if (arr[j] < arrI) {
        p[i] = j;
        result.push(i);
        continue;
      }
      u = 0;
      v = result.length - 1;
      while (u < v) {
        c = u + v >> 1;
        if (arr[result[c]] < arrI) {
          u = c + 1;
        } else {
          v = c;
        }
      }
      if (arrI < arr[result[u]]) {
        if (u > 0) {
          p[i] = result[u - 1];
        }
        result[u] = i;
      }
    }
  }
  u = result.length;
  v = result[u - 1];
  while (u-- > 0) {
    result[u] = v;
    v = p[v];
  }
  return result;
}
function locateNonHydratedAsyncRoot(instance) {
  const subComponent = instance.subTree.component;
  if (subComponent) {
    if (subComponent.asyncDep && !subComponent.asyncResolved) {
      return subComponent;
    } else {
      return locateNonHydratedAsyncRoot(subComponent);
    }
  }
}
function invalidateMount(hooks) {
  if (hooks) {
    for (let i = 0; i < hooks.length; i++)
      hooks[i].flags |= 8;
  }
}
function resolveAsyncComponentPlaceholder(anchorVnode) {
  if (anchorVnode.placeholder) {
    return anchorVnode.placeholder;
  }
  const instance = anchorVnode.component;
  if (instance) {
    return resolveAsyncComponentPlaceholder(instance.subTree);
  }
  return null;
}
const isSuspense = (type) => type.__isSuspense;
let suspenseId = 0;
const SuspenseImpl = {
  name: "Suspense",
  // In order to make Suspense tree-shakable, we need to avoid importing it
  // directly in the renderer. The renderer checks for the __isSuspense flag
  // on a vnode's type and calls the `process` method, passing in renderer
  // internals.
  __isSuspense: true,
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
    if (n1 == null) {
      mountSuspense(
        n2,
        container,
        anchor,
        parentComponent,
        parentSuspense,
        namespace,
        slotScopeIds,
        optimized,
        rendererInternals
      );
    } else {
      if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
        n2.suspense = n1.suspense;
        n2.suspense.vnode = n2;
        n2.el = n1.el;
        return;
      }
      patchSuspense(
        n1,
        n2,
        container,
        anchor,
        parentComponent,
        namespace,
        slotScopeIds,
        optimized,
        rendererInternals
      );
    }
  },
  hydrate: hydrateSuspense,
  normalize: normalizeSuspenseChildren
};
const Suspense = SuspenseImpl;
function triggerEvent(vnode, name) {
  const eventListener = vnode.props && vnode.props[name];
  if (isFunction$1(eventListener)) {
    eventListener();
  }
}
function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
  const {
    p: patch,
    o: { createElement }
  } = rendererInternals;
  const hiddenContainer = createElement("div");
  const suspense = vnode.suspense = createSuspenseBoundary(
    vnode,
    parentSuspense,
    parentComponent,
    container,
    hiddenContainer,
    anchor,
    namespace,
    slotScopeIds,
    optimized,
    rendererInternals
  );
  patch(
    null,
    suspense.pendingBranch = vnode.ssContent,
    hiddenContainer,
    null,
    parentComponent,
    suspense,
    namespace,
    slotScopeIds
  );
  if (suspense.deps > 0) {
    triggerEvent(vnode, "onPending");
    triggerEvent(vnode, "onFallback");
    patch(
      null,
      vnode.ssFallback,
      container,
      anchor,
      parentComponent,
      null,
      // fallback tree will not have suspense context
      namespace,
      slotScopeIds
    );
    setActiveBranch(suspense, vnode.ssFallback);
  } else {
    suspense.resolve(false, true);
  }
}
function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {
  const suspense = n2.suspense = n1.suspense;
  suspense.vnode = n2;
  n2.el = n1.el;
  const newBranch = n2.ssContent;
  const newFallback = n2.ssFallback;
  const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;
  if (pendingBranch) {
    suspense.pendingBranch = newBranch;
    if (isSameVNodeType(pendingBranch, newBranch)) {
      patch(
        pendingBranch,
        newBranch,
        suspense.hiddenContainer,
        null,
        parentComponent,
        suspense,
        namespace,
        slotScopeIds,
        optimized
      );
      if (suspense.deps <= 0) {
        suspense.resolve();
      } else if (isInFallback) {
        if (!isHydrating) {
          patch(
            activeBranch,
            newFallback,
            container,
            anchor,
            parentComponent,
            null,
            // fallback tree will not have suspense context
            namespace,
            slotScopeIds,
            optimized
          );
          setActiveBranch(suspense, newFallback);
        }
      }
    } else {
      suspense.pendingId = suspenseId++;
      if (isHydrating) {
        suspense.isHydrating = false;
        suspense.activeBranch = pendingBranch;
      } else {
        unmount(pendingBranch, parentComponent, suspense);
      }
      suspense.deps = 0;
      suspense.effects.length = 0;
      suspense.hiddenContainer = createElement("div");
      if (isInFallback) {
        patch(
          null,
          newBranch,
          suspense.hiddenContainer,
          null,
          parentComponent,
          suspense,
          namespace,
          slotScopeIds,
          optimized
        );
        if (suspense.deps <= 0) {
          suspense.resolve();
        } else {
          patch(
            activeBranch,
            newFallback,
            container,
            anchor,
            parentComponent,
            null,
            // fallback tree will not have suspense context
            namespace,
            slotScopeIds,
            optimized
          );
          setActiveBranch(suspense, newFallback);
        }
      } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {
        patch(
          activeBranch,
          newBranch,
          container,
          anchor,
          parentComponent,
          suspense,
          namespace,
          slotScopeIds,
          optimized
        );
        suspense.resolve(true);
      } else {
        patch(
          null,
          newBranch,
          suspense.hiddenContainer,
          null,
          parentComponent,
          suspense,
          namespace,
          slotScopeIds,
          optimized
        );
        if (suspense.deps <= 0) {
          suspense.resolve();
        }
      }
    }
  } else {
    if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {
      patch(
        activeBranch,
        newBranch,
        container,
        anchor,
        parentComponent,
        suspense,
        namespace,
        slotScopeIds,
        optimized
      );
      setActiveBranch(suspense, newBranch);
    } else {
      triggerEvent(n2, "onPending");
      suspense.pendingBranch = newBranch;
      if (newBranch.shapeFlag & 512) {
        suspense.pendingId = newBranch.component.suspenseId;
      } else {
        suspense.pendingId = suspenseId++;
      }
      patch(
        null,
        newBranch,
        suspense.hiddenContainer,
        null,
        parentComponent,
        suspense,
        namespace,
        slotScopeIds,
        optimized
      );
      if (suspense.deps <= 0) {
        suspense.resolve();
      } else {
        const { timeout, pendingId } = suspense;
        if (timeout > 0) {
          setTimeout(() => {
            if (suspense.pendingId === pendingId) {
              suspense.fallback(newFallback);
            }
          }, timeout);
        } else if (timeout === 0) {
          suspense.fallback(newFallback);
        }
      }
    }
  }
}
let hasWarned$1 = false;
function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {
  if (false) {
    hasWarned$1 = true;
    console[console.info ? "info" : "log"](
      `<Suspense> is an experimental feature and its API will likely change.`
    );
  }
  const {
    p: patch,
    m: move,
    um: unmount,
    n: next,
    o: { parentNode, remove: remove2 }
  } = rendererInternals;
  let parentSuspenseId;
  const isSuspensible = isVNodeSuspensible(vnode);
  if (isSuspensible) {
    if (parentSuspense && parentSuspense.pendingBranch) {
      parentSuspenseId = parentSuspense.pendingId;
      parentSuspense.deps++;
    }
  }
  const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;
  if (false) {
    assertNumber(timeout, `Suspense timeout`);
  }
  const initialAnchor = anchor;
  const suspense = {
    vnode,
    parent: parentSuspense,
    parentComponent,
    namespace,
    container,
    hiddenContainer,
    deps: 0,
    pendingId: suspenseId++,
    timeout: typeof timeout === "number" ? timeout : -1,
    activeBranch: null,
    isFallbackMountPending: false,
    pendingBranch: null,
    isInFallback: !isHydrating,
    isHydrating,
    isUnmounted: false,
    effects: [],
    resolve(resume = false, sync = false) {
      if (false) {
        if (!resume && !suspense.pendingBranch) {
          throw new Error(
            `suspense.resolve() is called without a pending branch.`
          );
        }
        if (suspense.isUnmounted) {
          throw new Error(
            `suspense.resolve() is called on an already unmounted suspense boundary.`
          );
        }
      }
      const {
        vnode: vnode2,
        activeBranch,
        pendingBranch,
        pendingId,
        effects,
        parentComponent: parentComponent2,
        container: container2,
        isInFallback
      } = suspense;
      let delayEnter = false;
      if (suspense.isHydrating) {
        suspense.isHydrating = false;
      } else if (!resume) {
        delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in";
        if (delayEnter) {
          activeBranch.transition.afterLeave = () => {
            if (pendingId === suspense.pendingId) {
              move(
                pendingBranch,
                container2,
                anchor === initialAnchor ? next(activeBranch) : anchor,
                0
              );
              queuePostFlushCb(effects);
              if (isInFallback && vnode2.ssFallback) {
                vnode2.ssFallback.el = null;
              }
            }
          };
        }
        if (activeBranch && !suspense.isFallbackMountPending) {
          if (parentNode(activeBranch.el) === container2) {
            anchor = next(activeBranch);
          }
          unmount(activeBranch, parentComponent2, suspense, true);
          if (!delayEnter && isInFallback && vnode2.ssFallback) {
            queuePostRenderEffect(() => vnode2.ssFallback.el = null, suspense);
          }
        }
        if (!delayEnter) {
          move(pendingBranch, container2, anchor, 0);
        }
      }
      suspense.isFallbackMountPending = false;
      setActiveBranch(suspense, pendingBranch);
      suspense.pendingBranch = null;
      suspense.isInFallback = false;
      let parent = suspense.parent;
      let hasUnresolvedAncestor = false;
      while (parent) {
        if (parent.pendingBranch) {
          parent.effects.push(...effects);
          hasUnresolvedAncestor = true;
          break;
        }
        parent = parent.parent;
      }
      if (!hasUnresolvedAncestor && !delayEnter) {
        queuePostFlushCb(effects);
      }
      suspense.effects = [];
      if (isSuspensible) {
        if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
          parentSuspense.deps--;
          if (parentSuspense.deps === 0 && !sync) {
            parentSuspense.resolve();
          }
        }
      }
      triggerEvent(vnode2, "onResolve");
    },
    fallback(fallbackVNode) {
      if (!suspense.pendingBranch) {
        return;
      }
      const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;
      triggerEvent(vnode2, "onFallback");
      const anchor2 = next(activeBranch);
      const mountFallback = () => {
        suspense.isFallbackMountPending = false;
        if (!suspense.isInFallback) {
          return;
        }
        patch(
          null,
          fallbackVNode,
          container2,
          anchor2,
          parentComponent2,
          null,
          // fallback tree will not have suspense context
          namespace2,
          slotScopeIds,
          optimized
        );
        setActiveBranch(suspense, fallbackVNode);
      };
      const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
      if (delayEnter) {
        suspense.isFallbackMountPending = true;
        activeBranch.transition.afterLeave = mountFallback;
      }
      suspense.isInFallback = true;
      unmount(
        activeBranch,
        parentComponent2,
        null,
        // no suspense so unmount hooks fire now
        true
        // shouldRemove
      );
      if (!delayEnter) {
        mountFallback();
      }
    },
    move(container2, anchor2, type) {
      suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);
      suspense.container = container2;
    },
    next() {
      return suspense.activeBranch && next(suspense.activeBranch);
    },
    registerDep(instance, setupRenderEffect, optimized2) {
      const isInPendingSuspense = !!suspense.pendingBranch;
      if (isInPendingSuspense) {
        suspense.deps++;
      }
      const hydratedEl = instance.vnode.el;
      instance.asyncDep.catch((err) => {
        handleError(err, instance, 0);
      }).then((asyncSetupResult) => {
        if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {
          return;
        }
        instance.asyncResolved = true;
        const { vnode: vnode2 } = instance;
        if (false) {
          pushWarningContext(vnode2);
        }
        handleSetupResult(instance, asyncSetupResult, false);
        if (hydratedEl) {
          vnode2.el = hydratedEl;
        }
        const placeholder = !hydratedEl && instance.subTree.el;
        setupRenderEffect(
          instance,
          vnode2,
          // component may have been moved before resolve.
          // if this is not a hydration, instance.subTree will be the comment
          // placeholder.
          parentNode(hydratedEl || instance.subTree.el),
          // anchor will not be used if this is hydration, so only need to
          // consider the comment placeholder case.
          hydratedEl ? null : next(instance.subTree),
          suspense,
          namespace,
          optimized2
        );
        if (placeholder) {
          vnode2.placeholder = null;
          remove2(placeholder);
        }
        updateHOCHostEl(instance, vnode2.el);
        if (false) {
          popWarningContext();
        }
        if (isInPendingSuspense && --suspense.deps === 0) {
          suspense.resolve();
        }
      });
    },
    unmount(parentSuspense2, doRemove) {
      suspense.isUnmounted = true;
      if (suspense.activeBranch) {
        unmount(
          suspense.activeBranch,
          parentComponent,
          parentSuspense2,
          doRemove
        );
      }
      if (suspense.pendingBranch) {
        unmount(
          suspense.pendingBranch,
          parentComponent,
          parentSuspense2,
          doRemove
        );
      }
    }
  };
  return suspense;
}
function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {
  const suspense = vnode.suspense = createSuspenseBoundary(
    vnode,
    parentSuspense,
    parentComponent,
    node.parentNode,
    // eslint-disable-next-line no-restricted-globals
    document.createElement("div"),
    null,
    namespace,
    slotScopeIds,
    optimized,
    rendererInternals,
    true
  );
  const result = hydrateNode(
    node,
    suspense.pendingBranch = vnode.ssContent,
    parentComponent,
    suspense,
    slotScopeIds,
    optimized
  );
  if (suspense.deps === 0) {
    suspense.resolve(false, true);
  }
  return result;
}
function normalizeSuspenseChildren(vnode) {
  const { shapeFlag, children } = vnode;
  const isSlotChildren = shapeFlag & 32;
  vnode.ssContent = normalizeSuspenseSlot(
    isSlotChildren ? children.default : children
  );
  vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);
}
function normalizeSuspenseSlot(s) {
  let block;
  if (isFunction$1(s)) {
    const trackBlock = isBlockTreeEnabled && s._c;
    if (trackBlock) {
      s._d = false;
      openBlock();
    }
    s = s();
    if (trackBlock) {
      s._d = true;
      block = currentBlock;
      closeBlock();
    }
  }
  if (isArray$1(s)) {
    const singleChild = filterSingleRoot(s);
    if (false) {
      warn$1(`<Suspense> slots expect a single root node.`);
    }
    s = singleChild;
  }
  s = normalizeVNode(s);
  if (block && !s.dynamicChildren) {
    s.dynamicChildren = block.filter((c) => c !== s);
  }
  return s;
}
function queueEffectWithSuspense(fn, suspense) {
  if (suspense && suspense.pendingBranch) {
    if (isArray$1(fn)) {
      suspense.effects.push(...fn);
    } else {
      suspense.effects.push(fn);
    }
  } else {
    queuePostFlushCb(fn);
  }
}
function setActiveBranch(suspense, branch) {
  suspense.activeBranch = branch;
  const { vnode, parentComponent } = suspense;
  let el = branch.el;
  while (!el && branch.component) {
    branch = branch.component.subTree;
    el = branch.el;
  }
  vnode.el = el;
  if (parentComponent && parentComponent.subTree === vnode) {
    parentComponent.vnode.el = el;
    updateHOCHostEl(parentComponent, el);
  }
}
function isVNodeSuspensible(vnode) {
  const suspensible = vnode.props && vnode.props.suspensible;
  return suspensible != null && suspensible !== false;
}
const Fragment = /* @__PURE__ */ Symbol.for("v-fgt");
const Text = /* @__PURE__ */ Symbol.for("v-txt");
const Comment = /* @__PURE__ */ Symbol.for("v-cmt");
const Static = /* @__PURE__ */ Symbol.for("v-stc");
const blockStack = [];
let currentBlock = null;
function openBlock(disableTracking = false) {
  blockStack.push(currentBlock = disableTracking ? null : []);
}
function closeBlock() {
  blockStack.pop();
  currentBlock = blockStack[blockStack.length - 1] || null;
}
let isBlockTreeEnabled = 1;
function setBlockTracking(value, inVOnce = false) {
  isBlockTreeEnabled += value;
  if (value < 0 && currentBlock && inVOnce) {
    currentBlock.hasOnce = true;
  }
}
function setupBlock(vnode) {
  vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;
  closeBlock();
  if (isBlockTreeEnabled > 0 && currentBlock) {
    currentBlock.push(vnode);
  }
  return vnode;
}
function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {
  return setupBlock(
    createBaseVNode(
      type,
      props,
      children,
      patchFlag,
      dynamicProps,
      shapeFlag,
      true
    )
  );
}
function createBlock(type, props, children, patchFlag, dynamicProps) {
  return setupBlock(
    createVNode(
      type,
      props,
      children,
      patchFlag,
      dynamicProps,
      true
    )
  );
}
function isVNode$1(value) {
  return value ? value.__v_isVNode === true : false;
}
function isSameVNodeType(n1, n2) {
  if (false) {
    const dirtyInstances = hmrDirtyComponents.get(n2.type);
    if (dirtyInstances && dirtyInstances.has(n1.component)) {
      n1.shapeFlag &= -257;
      n2.shapeFlag &= -513;
      return false;
    }
  }
  return n1.type === n2.type && n1.key === n2.key;
}
let vnodeArgsTransformer;
function transformVNodeArgs(transformer) {
  vnodeArgsTransformer = transformer;
}
const createVNodeWithArgsTransform = (...args) => {
  return _createVNode(
    ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args
  );
};
const normalizeKey = ({ key }) => key != null ? key : null;
const normalizeRef = ({
  ref: ref3,
  ref_key,
  ref_for
}) => {
  if (typeof ref3 === "number") {
    ref3 = "" + ref3;
  }
  return ref3 != null ? isString$2(ref3) || isRef(ref3) || isFunction$1(ref3) ? { i: currentRenderingInstance, r: ref3, k: ref_key, f: !!ref_for } : ref3 : null;
};
function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {
  const vnode = {
    __v_isVNode: true,
    __v_skip: true,
    type,
    props,
    key: props && normalizeKey(props),
    ref: props && normalizeRef(props),
    scopeId: currentScopeId,
    slotScopeIds: null,
    children,
    component: null,
    suspense: null,
    ssContent: null,
    ssFallback: null,
    dirs: null,
    transition: null,
    el: null,
    anchor: null,
    target: null,
    targetStart: null,
    targetAnchor: null,
    staticCount: 0,
    shapeFlag,
    patchFlag,
    dynamicProps,
    dynamicChildren: null,
    appContext: null,
    ctx: currentRenderingInstance
  };
  if (needFullChildrenNormalization) {
    normalizeChildren(vnode, children);
    if (shapeFlag & 128) {
      type.normalize(vnode);
    }
  } else if (children) {
    vnode.shapeFlag |= isString$2(children) ? 8 : 16;
  }
  if (false) {
    warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
  }
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
  !isBlockNode && // has current parent block
  currentBlock && // presence of a patch flag indicates this node needs patching on updates.
  // component nodes also should always be patched, because even if the
  // component doesn't need to update, it needs to persist the instance on to
  // the next vnode so that it can be properly unmounted later.
  (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the
  // vnode should not be considered dynamic due to handler caching.
  vnode.patchFlag !== 32) {
    currentBlock.push(vnode);
  }
  return vnode;
}
const createVNode = false ? createVNodeWithArgsTransform : _createVNode;
function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
    if (false) {
      warn$1(`Invalid vnode type when creating vnode: ${type}.`);
    }
    type = Comment;
  }
  if (isVNode$1(type)) {
    const cloned = cloneVNode(
      type,
      props,
      true
      /* mergeRef: true */
    );
    if (children) {
      normalizeChildren(cloned, children);
    }
    if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
      if (cloned.shapeFlag & 6) {
        currentBlock[currentBlock.indexOf(type)] = cloned;
      } else {
        currentBlock.push(cloned);
      }
    }
    cloned.patchFlag = -2;
    return cloned;
  }
  if (isClassComponent(type)) {
    type = type.__vccOpts;
  }
  if (props) {
    props = guardReactiveProps(props);
    let { class: klass, style } = props;
    if (klass && !isString$2(klass)) {
      props.class = normalizeClass(klass);
    }
    if (isObject$3(style)) {
      if (isProxy(style) && !isArray$1(style)) {
        style = extend({}, style);
      }
      props.style = normalizeStyle(style);
    }
  }
  const shapeFlag = isString$2(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject$3(type) ? 4 : isFunction$1(type) ? 2 : 0;
  if (false) {
    type = toRaw(type);
    warn$1(
      `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`,
      `
Component that was made reactive: `,
      type
    );
  }
  return createBaseVNode(
    type,
    props,
    children,
    patchFlag,
    dynamicProps,
    shapeFlag,
    isBlockNode,
    true
  );
}
function guardReactiveProps(props) {
  if (!props) return null;
  return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;
}
function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {
  const { props, ref: ref3, patchFlag, children, transition } = vnode;
  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;
  const cloned = {
    __v_isVNode: true,
    __v_skip: true,
    type: vnode.type,
    props: mergedProps,
    key: mergedProps && normalizeKey(mergedProps),
    ref: extraProps && extraProps.ref ? (
      // #2078 in the case of <component :is="vnode" ref="extra"/>
      // if the vnode itself already has a ref, cloneVNode will need to merge
      // the refs so the single vnode can be set on multiple refs
      mergeRef && ref3 ? isArray$1(ref3) ? ref3.concat(normalizeRef(extraProps)) : [ref3, normalizeRef(extraProps)] : normalizeRef(extraProps)
    ) : ref3,
    scopeId: vnode.scopeId,
    slotScopeIds: vnode.slotScopeIds,
    children: false ? children.map(deepCloneVNode) : children,
    target: vnode.target,
    targetStart: vnode.targetStart,
    targetAnchor: vnode.targetAnchor,
    staticCount: vnode.staticCount,
    shapeFlag: vnode.shapeFlag,
    // if the vnode is cloned with extra props, we can no longer assume its
    // existing patch flag to be reliable and need to add the FULL_PROPS flag.
    // note: preserve flag for fragments since they use the flag for children
    // fast paths only.
    patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,
    dynamicProps: vnode.dynamicProps,
    dynamicChildren: vnode.dynamicChildren,
    appContext: vnode.appContext,
    dirs: vnode.dirs,
    transition,
    // These should technically only be non-null on mounted VNodes. However,
    // they *should* be copied for kept-alive vnodes. So we just always copy
    // them since them being non-null during a mount doesn't affect the logic as
    // they will simply be overwritten.
    component: vnode.component,
    suspense: vnode.suspense,
    ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),
    ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),
    placeholder: vnode.placeholder,
    el: vnode.el,
    anchor: vnode.anchor,
    ctx: vnode.ctx,
    ce: vnode.ce
  };
  if (transition && cloneTransition) {
    setTransitionHooks(
      cloned,
      transition.clone(cloned)
    );
  }
  return cloned;
}
function deepCloneVNode(vnode) {
  const cloned = cloneVNode(vnode);
  if (isArray$1(vnode.children)) {
    cloned.children = vnode.children.map(deepCloneVNode);
  }
  return cloned;
}
function createTextVNode(text = " ", flag = 0) {
  return createVNode(Text, null, text, flag);
}
function createStaticVNode(content, numberOfNodes) {
  const vnode = createVNode(Static, null, content);
  vnode.staticCount = numberOfNodes;
  return vnode;
}
function createCommentVNode(text = "", asBlock = false) {
  return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);
}
function normalizeVNode(child) {
  if (child == null || typeof child === "boolean") {
    return createVNode(Comment);
  } else if (isArray$1(child)) {
    return createVNode(
      Fragment,
      null,
      // #3666, avoid reference pollution when reusing vnode
      child.slice()
    );
  } else if (isVNode$1(child)) {
    return cloneIfMounted(child);
  } else {
    return createVNode(Text, null, String(child));
  }
}
function cloneIfMounted(child) {
  return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);
}
function normalizeChildren(vnode, children) {
  let type = 0;
  const { shapeFlag } = vnode;
  if (children == null) {
    children = null;
  } else if (isArray$1(children)) {
    type = 16;
  } else if (typeof children === "object") {
    if (shapeFlag & (1 | 64)) {
      const slot = children.default;
      if (slot) {
        slot._c && (slot._d = false);
        normalizeChildren(vnode, slot());
        slot._c && (slot._d = true);
      }
      return;
    } else {
      type = 32;
      const slotFlag = children._;
      if (!slotFlag && !isInternalObject(children)) {
        children._ctx = currentRenderingInstance;
      } else if (slotFlag === 3 && currentRenderingInstance) {
        if (currentRenderingInstance.slots._ === 1) {
          children._ = 1;
        } else {
          children._ = 2;
          vnode.patchFlag |= 1024;
        }
      }
    }
  } else if (isFunction$1(children)) {
    children = { default: children, _ctx: currentRenderingInstance };
    type = 32;
  } else {
    children = String(children);
    if (shapeFlag & 64) {
      type = 16;
      children = [createTextVNode(children)];
    } else {
      type = 8;
    }
  }
  vnode.children = children;
  vnode.shapeFlag |= type;
}
function mergeProps(...args) {
  const ret = {};
  for (let i = 0; i < args.length; i++) {
    const toMerge = args[i];
    for (const key in toMerge) {
      if (key === "class") {
        if (ret.class !== toMerge.class) {
          ret.class = normalizeClass([ret.class, toMerge.class]);
        }
      } else if (key === "style") {
        ret.style = normalizeStyle([ret.style, toMerge.style]);
      } else if (isOn(key)) {
        const existing = ret[key];
        const incoming = toMerge[key];
        if (incoming && existing !== incoming && !(isArray$1(existing) && existing.includes(incoming))) {
          ret[key] = existing ? [].concat(existing, incoming) : incoming;
        } else if (incoming == null && existing == null && // mergeProps({ 'onUpdate:modelValue': undefined }) should not retain
        // the model listener.
        !isModelListener(key)) {
          ret[key] = incoming;
        }
      } else if (key !== "") {
        ret[key] = toMerge[key];
      }
    }
  }
  return ret;
}
function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
  callWithAsyncErrorHandling(hook, instance, 7, [
    vnode,
    prevVNode
  ]);
}
const emptyAppContext = createAppContext();
let uid = 0;
function createComponentInstance(vnode, parent, suspense) {
  const type = vnode.type;
  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
  const instance = {
    uid: uid++,
    vnode,
    type,
    parent,
    appContext,
    root: null,
    // to be immediately set
    next: null,
    subTree: null,
    // will be set synchronously right after creation
    effect: null,
    update: null,
    // will be set synchronously right after creation
    job: null,
    scope: new EffectScope(
      true
      /* detached */
    ),
    render: null,
    proxy: null,
    exposed: null,
    exposeProxy: null,
    withProxy: null,
    provides: parent ? parent.provides : Object.create(appContext.provides),
    ids: parent ? parent.ids : ["", 0, 0],
    accessCache: null,
    renderCache: [],
    // local resolved assets
    components: null,
    directives: null,
    // resolved props and emits options
    propsOptions: normalizePropsOptions(type, appContext),
    emitsOptions: normalizeEmitsOptions(type, appContext),
    // emit
    emit: null,
    // to be set immediately
    emitted: null,
    // props default value
    propsDefaults: EMPTY_OBJ,
    // inheritAttrs
    inheritAttrs: type.inheritAttrs,
    // state
    ctx: EMPTY_OBJ,
    data: EMPTY_OBJ,
    props: EMPTY_OBJ,
    attrs: EMPTY_OBJ,
    slots: EMPTY_OBJ,
    refs: EMPTY_OBJ,
    setupState: EMPTY_OBJ,
    setupContext: null,
    // suspense related
    suspense,
    suspenseId: suspense ? suspense.pendingId : 0,
    asyncDep: null,
    asyncResolved: false,
    // lifecycle hooks
    // not using enums here because it results in computed properties
    isMounted: false,
    isUnmounted: false,
    isDeactivated: false,
    bc: null,
    c: null,
    bm: null,
    m: null,
    bu: null,
    u: null,
    um: null,
    bum: null,
    da: null,
    a: null,
    rtg: null,
    rtc: null,
    ec: null,
    sp: null
  };
  if (false) {
    instance.ctx = createDevRenderContext(instance);
  } else {
    instance.ctx = { _: instance };
  }
  instance.root = parent ? parent.root : instance;
  instance.emit = emit.bind(null, instance);
  if (vnode.ce) {
    vnode.ce(instance);
  }
  return instance;
}
let currentInstance = null;
const getCurrentInstance = () => currentInstance || currentRenderingInstance;
let internalSetCurrentInstance;
let setInSSRSetupState;
{
  const g = getGlobalThis$1();
  const registerGlobalSetter = (key, setter) => {
    let setters;
    if (!(setters = g[key])) setters = g[key] = [];
    setters.push(setter);
    return (v) => {
      if (setters.length > 1) setters.forEach((set) => set(v));
      else setters[0](v);
    };
  };
  internalSetCurrentInstance = registerGlobalSetter(
    `__VUE_INSTANCE_SETTERS__`,
    (v) => currentInstance = v
  );
  setInSSRSetupState = registerGlobalSetter(
    `__VUE_SSR_SETTERS__`,
    (v) => isInSSRComponentSetup = v
  );
}
const setCurrentInstance = (instance) => {
  const prev = currentInstance;
  internalSetCurrentInstance(instance);
  instance.scope.on();
  return () => {
    instance.scope.off();
    internalSetCurrentInstance(prev);
  };
};
const unsetCurrentInstance = () => {
  currentInstance && currentInstance.scope.off();
  internalSetCurrentInstance(null);
};
const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
function validateComponentName(name, { isNativeTag }) {
  if (isBuiltInTag(name) || isNativeTag(name)) {
    warn$1(
      "Do not use built-in or reserved HTML elements as component id: " + name
    );
  }
}
function isStatefulComponent(instance) {
  return instance.vnode.shapeFlag & 4;
}
let isInSSRComponentSetup = false;
function setupComponent(instance, isSSR = false, optimized = false) {
  isSSR && setInSSRSetupState(isSSR);
  const { props, children } = instance.vnode;
  const isStateful = isStatefulComponent(instance);
  initProps(instance, props, isStateful, isSSR);
  initSlots(instance, children, optimized || isSSR);
  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
  isSSR && setInSSRSetupState(false);
  return setupResult;
}
function setupStatefulComponent(instance, isSSR) {
  const Component = instance.type;
  if (false) {
    if (Component.name) {
      validateComponentName(Component.name, instance.appContext.config);
    }
    if (Component.components) {
      const names = Object.keys(Component.components);
      for (let i = 0; i < names.length; i++) {
        validateComponentName(names[i], instance.appContext.config);
      }
    }
    if (Component.directives) {
      const names = Object.keys(Component.directives);
      for (let i = 0; i < names.length; i++) {
        validateDirectiveName(names[i]);
      }
    }
    if (Component.compilerOptions && isRuntimeOnly()) {
      warn$1(
        `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`
      );
    }
  }
  instance.accessCache = /* @__PURE__ */ Object.create(null);
  instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);
  if (false) {
    exposePropsOnRenderContext(instance);
  }
  const { setup } = Component;
  if (setup) {
    pauseTracking();
    const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
    const reset = setCurrentInstance(instance);
    const setupResult = callWithErrorHandling(
      setup,
      instance,
      0,
      [
        false ? shallowReadonly(instance.props) : instance.props,
        setupContext
      ]
    );
    const isAsyncSetup = isPromise$1(setupResult);
    resetTracking();
    reset();
    if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {
      markAsyncBoundary(instance);
    }
    if (isAsyncSetup) {
      setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
      if (isSSR) {
        return setupResult.then((resolvedResult) => {
          handleSetupResult(instance, resolvedResult, isSSR);
        }).catch((e) => {
          handleError(e, instance, 0);
        });
      } else {
        instance.asyncDep = setupResult;
        if (false) {
          const name = formatComponentName(instance, Component);
          warn$1(
            `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`
          );
        }
      }
    } else {
      handleSetupResult(instance, setupResult, isSSR);
    }
  } else {
    finishComponentSetup(instance, isSSR);
  }
}
function handleSetupResult(instance, setupResult, isSSR) {
  if (isFunction$1(setupResult)) {
    if (instance.type.__ssrInlineRender) {
      instance.ssrRender = setupResult;
    } else {
      instance.render = setupResult;
    }
  } else if (isObject$3(setupResult)) {
    if (false) {
      warn$1(
        `setup() should not return VNodes directly - return a render function instead.`
      );
    }
    if (true) {
      instance.devtoolsRawSetupState = setupResult;
    }
    instance.setupState = proxyRefs(setupResult);
    if (false) {
      exposeSetupStateOnRenderContext(instance);
    }
  } else if (false) {
    warn$1(
      `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}`
    );
  }
  finishComponentSetup(instance, isSSR);
}
let compile$3;
let installWithProxy;
function registerRuntimeCompiler(_compile) {
  compile$3 = _compile;
  installWithProxy = (i) => {
    if (i.render._rc) {
      i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);
    }
  };
}
const isRuntimeOnly = () => !compile$3;
function finishComponentSetup(instance, isSSR, skipOptions) {
  const Component = instance.type;
  if (!instance.render) {
    if (!isSSR && compile$3 && !Component.render) {
      const template = Component.template || resolveMergedOptions(instance).template;
      if (template) {
        if (false) {
          startMeasure(instance, `compile`);
        }
        const { isCustomElement, compilerOptions } = instance.appContext.config;
        const { delimiters, compilerOptions: componentCompilerOptions } = Component;
        const finalCompilerOptions = extend(
          extend(
            {
              isCustomElement,
              delimiters
            },
            compilerOptions
          ),
          componentCompilerOptions
        );
        Component.render = compile$3(template, finalCompilerOptions);
        if (false) {
          endMeasure(instance, `compile`);
        }
      }
    }
    instance.render = Component.render || NOOP;
    if (installWithProxy) {
      installWithProxy(instance);
    }
  }
  if (true) {
    const reset = setCurrentInstance(instance);
    pauseTracking();
    try {
      applyOptions(instance);
    } finally {
      resetTracking();
      reset();
    }
  }
  if (false) {
    if (!compile$3 && Component.template) {
      warn$1(
        `Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".`
      );
    } else {
      warn$1(`Component is missing template or render function: `, Component);
    }
  }
}
const attrsProxyHandlers = false ? {
  get(target, key) {
    markAttrsAccessed();
    track(target, "get", "");
    return target[key];
  },
  set() {
    warn$1(`setupContext.attrs is readonly.`);
    return false;
  },
  deleteProperty() {
    warn$1(`setupContext.attrs is readonly.`);
    return false;
  }
} : {
  get(target, key) {
    track(target, "get", "");
    return target[key];
  }
};
function getSlotsProxy(instance) {
  return new Proxy(instance.slots, {
    get(target, key) {
      track(instance, "get", "$slots");
      return target[key];
    }
  });
}
function createSetupContext(instance) {
  const expose = (exposed) => {
    if (false) {
      if (instance.exposed) {
        warn$1(`expose() should be called only once per setup().`);
      }
      if (exposed != null) {
        let exposedType = typeof exposed;
        if (exposedType === "object") {
          if (isArray$1(exposed)) {
            exposedType = "array";
          } else if (isRef(exposed)) {
            exposedType = "ref";
          }
        }
        if (exposedType !== "object") {
          warn$1(
            `expose() should be passed a plain object, received ${exposedType}.`
          );
        }
      }
    }
    instance.exposed = exposed || {};
  };
  if (false) {
    let attrsProxy;
    let slotsProxy;
    return Object.freeze({
      get attrs() {
        return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers));
      },
      get slots() {
        return slotsProxy || (slotsProxy = getSlotsProxy(instance));
      },
      get emit() {
        return (event, ...args) => instance.emit(event, ...args);
      },
      expose
    });
  } else {
    return {
      attrs: new Proxy(instance.attrs, attrsProxyHandlers),
      slots: instance.slots,
      emit: instance.emit,
      expose
    };
  }
}
function getComponentPublicInstance(instance) {
  if (instance.exposed) {
    return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
      get(target, key) {
        if (key in target) {
          return target[key];
        } else if (key in publicPropertiesMap) {
          return publicPropertiesMap[key](instance);
        }
      },
      has(target, key) {
        return key in target || key in publicPropertiesMap;
      }
    }));
  } else {
    return instance.proxy;
  }
}
const classifyRE = /(?:^|[-_])\w/g;
const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, "");
function getComponentName(Component, includeInferred = true) {
  return isFunction$1(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
}
function formatComponentName(instance, Component, isRoot = false) {
  let name = getComponentName(Component);
  if (!name && Component.__file) {
    const match = Component.__file.match(/([^/\\]+)\.\w+$/);
    if (match) {
      name = match[1];
    }
  }
  if (!name && instance) {
    const inferFromRegistry = (registry) => {
      for (const key in registry) {
        if (registry[key] === Component) {
          return key;
        }
      }
    };
    name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry(
      instance.parent.type.components
    ) || inferFromRegistry(instance.appContext.components);
  }
  return name ? classify(name) : isRoot ? `App` : `Anonymous`;
}
function isClassComponent(value) {
  return isFunction$1(value) && "__vccOpts" in value;
}
const computed = (getterOrOptions, debugOptions) => {
  const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
  if (false) {
    const i = getCurrentInstance();
    if (i && i.appContext.config.warnRecursiveComputed) {
      c._warnRecursive = true;
    }
  }
  return c;
};
function h(type, propsOrChildren, children) {
  try {
    setBlockTracking(-1);
    const l = arguments.length;
    if (l === 2) {
      if (isObject$3(propsOrChildren) && !isArray$1(propsOrChildren)) {
        if (isVNode$1(propsOrChildren)) {
          return createVNode(type, null, [propsOrChildren]);
        }
        return createVNode(type, propsOrChildren);
      } else {
        return createVNode(type, null, propsOrChildren);
      }
    } else {
      if (l > 3) {
        children = Array.prototype.slice.call(arguments, 2);
      } else if (l === 3 && isVNode$1(children)) {
        children = [children];
      }
      return createVNode(type, propsOrChildren, children);
    }
  } finally {
    setBlockTracking(1);
  }
}
function initCustomFormatter() {
  if (true) {
    return;
  }
  const vueStyle = { style: "color:#3ba776" };
  const numberStyle = { style: "color:#1677ff" };
  const stringStyle = { style: "color:#f5222d" };
  const keywordStyle = { style: "color:#eb2f96" };
  const formatter = {
    __vue_custom_formatter: true,
    header(obj) {
      if (!isObject$3(obj)) {
        return null;
      }
      if (obj.__isVue) {
        return ["div", vueStyle, `VueInstance`];
      } else if (isRef(obj)) {
        pauseTracking();
        const value = obj.value;
        resetTracking();
        return [
          "div",
          {},
          ["span", vueStyle, genRefFlag(obj)],
          "<",
          formatValue(value),
          `>`
        ];
      } else if (isReactive(obj)) {
        return [
          "div",
          {},
          ["span", vueStyle, isShallow(obj) ? "ShallowReactive" : "Reactive"],
          "<",
          formatValue(obj),
          `>${isReadonly(obj) ? ` (readonly)` : ``}`
        ];
      } else if (isReadonly(obj)) {
        return [
          "div",
          {},
          ["span", vueStyle, isShallow(obj) ? "ShallowReadonly" : "Readonly"],
          "<",
          formatValue(obj),
          ">"
        ];
      }
      return null;
    },
    hasBody(obj) {
      return obj && obj.__isVue;
    },
    body(obj) {
      if (obj && obj.__isVue) {
        return [
          "div",
          {},
          ...formatInstance(obj.$)
        ];
      }
    }
  };
  function formatInstance(instance) {
    const blocks = [];
    if (instance.type.props && instance.props) {
      blocks.push(createInstanceBlock("props", toRaw(instance.props)));
    }
    if (instance.setupState !== EMPTY_OBJ) {
      blocks.push(createInstanceBlock("setup", instance.setupState));
    }
    if (instance.data !== EMPTY_OBJ) {
      blocks.push(createInstanceBlock("data", toRaw(instance.data)));
    }
    const computed2 = extractKeys(instance, "computed");
    if (computed2) {
      blocks.push(createInstanceBlock("computed", computed2));
    }
    const injected = extractKeys(instance, "inject");
    if (injected) {
      blocks.push(createInstanceBlock("injected", injected));
    }
    blocks.push([
      "div",
      {},
      [
        "span",
        {
          style: keywordStyle.style + ";opacity:0.66"
        },
        "$ (internal): "
      ],
      ["object", { object: instance }]
    ]);
    return blocks;
  }
  function createInstanceBlock(type, target) {
    target = extend({}, target);
    if (!Object.keys(target).length) {
      return ["span", {}];
    }
    return [
      "div",
      { style: "line-height:1.25em;margin-bottom:0.6em" },
      [
        "div",
        {
          style: "color:#476582"
        },
        type
      ],
      [
        "div",
        {
          style: "padding-left:1.25em"
        },
        ...Object.keys(target).map((key) => {
          return [
            "div",
            {},
            ["span", keywordStyle, key + ": "],
            formatValue(target[key], false)
          ];
        })
      ]
    ];
  }
  function formatValue(v, asRaw = true) {
    if (typeof v === "number") {
      return ["span", numberStyle, v];
    } else if (typeof v === "string") {
      return ["span", stringStyle, JSON.stringify(v)];
    } else if (typeof v === "boolean") {
      return ["span", keywordStyle, v];
    } else if (isObject$3(v)) {
      return ["object", { object: asRaw ? toRaw(v) : v }];
    } else {
      return ["span", stringStyle, String(v)];
    }
  }
  function extractKeys(instance, type) {
    const Comp = instance.type;
    if (isFunction$1(Comp)) {
      return;
    }
    const extracted = {};
    for (const key in instance.ctx) {
      if (isKeyOfType(Comp, key, type)) {
        extracted[key] = instance.ctx[key];
      }
    }
    return extracted;
  }
  function isKeyOfType(Comp, key, type) {
    const opts = Comp[type];
    if (isArray$1(opts) && opts.includes(key) || isObject$3(opts) && key in opts) {
      return true;
    }
    if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {
      return true;
    }
    if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {
      return true;
    }
  }
  function genRefFlag(v) {
    if (isShallow(v)) {
      return `ShallowRef`;
    }
    if (v.effect) {
      return `ComputedRef`;
    }
    return `Ref`;
  }
  if (window.devtoolsFormatters) {
    window.devtoolsFormatters.push(formatter);
  } else {
    window.devtoolsFormatters = [formatter];
  }
}
function withMemo(memo, render, cache, index) {
  const cached = cache[index];
  if (cached && isMemoSame(cached, memo)) {
    return cached;
  }
  const ret = render();
  ret.memo = memo.slice();
  ret.cacheIndex = index;
  return cache[index] = ret;
}
function isMemoSame(cached, memo) {
  const prev = cached.memo;
  if (prev.length != memo.length) {
    return false;
  }
  for (let i = 0; i < prev.length; i++) {
    if (hasChanged(prev[i], memo[i])) {
      return false;
    }
  }
  if (isBlockTreeEnabled > 0 && currentBlock) {
    currentBlock.push(cached);
  }
  return true;
}
const version = "3.5.31";
const warn$2 = false ? warn$1 : NOOP;
const ErrorTypeStrings = ErrorTypeStrings$1;
const devtools$2 = true ? devtools$1 : void 0;
const setDevtoolsHook = true ? setDevtoolsHook$1 : NOOP;
const _ssrUtils = {
  createComponentInstance,
  setupComponent,
  renderComponentRoot,
  setCurrentRenderingInstance,
  isVNode: isVNode$1,
  normalizeVNode,
  getComponentPublicInstance,
  ensureValidVNode,
  pushWarningContext,
  popWarningContext
};
const ssrUtils = _ssrUtils;
const resolveFilter = null;
const compatUtils = null;
const DeprecationTypes = null;

/**
* @vue/runtime-dom v3.5.31
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
let policy = void 0;
const tt = typeof window !== "undefined" && window.trustedTypes;
if (tt) {
  try {
    policy = /* @__PURE__ */ tt.createPolicy("vue", {
      createHTML: (val) => val
    });
  } catch (e) {
  }
}
const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;
const svgNS = "http://www.w3.org/2000/svg";
const mathmlNS = "http://www.w3.org/1998/Math/MathML";
const doc = typeof document !== "undefined" ? document : null;
const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
const nodeOps = {
  insert: (child, parent, anchor) => {
    parent.insertBefore(child, anchor || null);
  },
  remove: (child) => {
    const parent = child.parentNode;
    if (parent) {
      parent.removeChild(child);
    }
  },
  createElement: (tag, namespace, is, props) => {
    const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag);
    if (tag === "select" && props && props.multiple != null) {
      el.setAttribute("multiple", props.multiple);
    }
    return el;
  },
  createText: (text) => doc.createTextNode(text),
  createComment: (text) => doc.createComment(text),
  setText: (node, text) => {
    node.nodeValue = text;
  },
  setElementText: (el, text) => {
    el.textContent = text;
  },
  parentNode: (node) => node.parentNode,
  nextSibling: (node) => node.nextSibling,
  querySelector: (selector) => doc.querySelector(selector),
  setScopeId(el, id) {
    el.setAttribute(id, "");
  },
  // __UNSAFE__
  // Reason: innerHTML.
  // Static content here can only come from compiled templates.
  // As long as the user only uses trusted templates, this is safe.
  insertStaticContent(content, parent, anchor, namespace, start, end) {
    const before = anchor ? anchor.previousSibling : parent.lastChild;
    if (start && (start === end || start.nextSibling)) {
      while (true) {
        parent.insertBefore(start.cloneNode(true), anchor);
        if (start === end || !(start = start.nextSibling)) break;
      }
    } else {
      templateContainer.innerHTML = unsafeToTrustedHTML(
        namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content
      );
      const template = templateContainer.content;
      if (namespace === "svg" || namespace === "mathml") {
        const wrapper = template.firstChild;
        while (wrapper.firstChild) {
          template.appendChild(wrapper.firstChild);
        }
        template.removeChild(wrapper);
      }
      parent.insertBefore(template, anchor);
    }
    return [
      // first
      before ? before.nextSibling : parent.firstChild,
      // last
      anchor ? anchor.previousSibling : parent.lastChild
    ];
  }
};
const TRANSITION$1 = "transition";
const ANIMATION = "animation";
const vtcKey = /* @__PURE__ */ Symbol("_vtc");
const DOMTransitionPropsValidators = {
  name: String,
  type: String,
  css: {
    type: Boolean,
    default: true
  },
  duration: [String, Number, Object],
  enterFromClass: String,
  enterActiveClass: String,
  enterToClass: String,
  appearFromClass: String,
  appearActiveClass: String,
  appearToClass: String,
  leaveFromClass: String,
  leaveActiveClass: String,
  leaveToClass: String
};
const TransitionPropsValidators = /* @__PURE__ */ extend(
  {},
  BaseTransitionPropsValidators,
  DOMTransitionPropsValidators
);
const decorate$1 = (t) => {
  t.displayName = "Transition";
  t.props = TransitionPropsValidators;
  return t;
};
const Transition = /* @__PURE__ */ decorate$1(
  (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots)
);
const callHook = (hook, args = []) => {
  if (isArray$1(hook)) {
    hook.forEach((h2) => h2(...args));
  } else if (hook) {
    hook(...args);
  }
};
const hasExplicitCallback = (hook) => {
  return hook ? isArray$1(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
};
function resolveTransitionProps(rawProps) {
  const baseProps = {};
  for (const key in rawProps) {
    if (!(key in DOMTransitionPropsValidators)) {
      baseProps[key] = rawProps[key];
    }
  }
  if (rawProps.css === false) {
    return baseProps;
  }
  const {
    name = "v",
    type,
    duration,
    enterFromClass = `${name}-enter-from`,
    enterActiveClass = `${name}-enter-active`,
    enterToClass = `${name}-enter-to`,
    appearFromClass = enterFromClass,
    appearActiveClass = enterActiveClass,
    appearToClass = enterToClass,
    leaveFromClass = `${name}-leave-from`,
    leaveActiveClass = `${name}-leave-active`,
    leaveToClass = `${name}-leave-to`
  } = rawProps;
  const durations = normalizeDuration(duration);
  const enterDuration = durations && durations[0];
  const leaveDuration = durations && durations[1];
  const {
    onBeforeEnter,
    onEnter,
    onEnterCancelled,
    onLeave,
    onLeaveCancelled,
    onBeforeAppear = onBeforeEnter,
    onAppear = onEnter,
    onAppearCancelled = onEnterCancelled
  } = baseProps;
  const finishEnter = (el, isAppear, done, isCancelled) => {
    el._enterCancelled = isCancelled;
    removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
    removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
    done && done();
  };
  const finishLeave = (el, done) => {
    el._isLeaving = false;
    removeTransitionClass(el, leaveFromClass);
    removeTransitionClass(el, leaveToClass);
    removeTransitionClass(el, leaveActiveClass);
    done && done();
  };
  const makeEnterHook = (isAppear) => {
    return (el, done) => {
      const hook = isAppear ? onAppear : onEnter;
      const resolve = () => finishEnter(el, isAppear, done);
      callHook(hook, [el, resolve]);
      nextFrame(() => {
        removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
        addTransitionClass(el, isAppear ? appearToClass : enterToClass);
        if (!hasExplicitCallback(hook)) {
          whenTransitionEnds(el, type, enterDuration, resolve);
        }
      });
    };
  };
  return extend(baseProps, {
    onBeforeEnter(el) {
      callHook(onBeforeEnter, [el]);
      addTransitionClass(el, enterFromClass);
      addTransitionClass(el, enterActiveClass);
    },
    onBeforeAppear(el) {
      callHook(onBeforeAppear, [el]);
      addTransitionClass(el, appearFromClass);
      addTransitionClass(el, appearActiveClass);
    },
    onEnter: makeEnterHook(false),
    onAppear: makeEnterHook(true),
    onLeave(el, done) {
      el._isLeaving = true;
      const resolve = () => finishLeave(el, done);
      addTransitionClass(el, leaveFromClass);
      if (!el._enterCancelled) {
        forceReflow(el);
        addTransitionClass(el, leaveActiveClass);
      } else {
        addTransitionClass(el, leaveActiveClass);
        forceReflow(el);
      }
      nextFrame(() => {
        if (!el._isLeaving) {
          return;
        }
        removeTransitionClass(el, leaveFromClass);
        addTransitionClass(el, leaveToClass);
        if (!hasExplicitCallback(onLeave)) {
          whenTransitionEnds(el, type, leaveDuration, resolve);
        }
      });
      callHook(onLeave, [el, resolve]);
    },
    onEnterCancelled(el) {
      finishEnter(el, false, void 0, true);
      callHook(onEnterCancelled, [el]);
    },
    onAppearCancelled(el) {
      finishEnter(el, true, void 0, true);
      callHook(onAppearCancelled, [el]);
    },
    onLeaveCancelled(el) {
      finishLeave(el);
      callHook(onLeaveCancelled, [el]);
    }
  });
}
function normalizeDuration(duration) {
  if (duration == null) {
    return null;
  } else if (isObject$3(duration)) {
    return [NumberOf(duration.enter), NumberOf(duration.leave)];
  } else {
    const n = NumberOf(duration);
    return [n, n];
  }
}
function NumberOf(val) {
  const res = toNumber(val);
  if (false) {
    assertNumber(res, "<transition> explicit duration");
  }
  return res;
}
function addTransitionClass(el, cls) {
  cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
  (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
}
function removeTransitionClass(el, cls) {
  cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
  const _vtc = el[vtcKey];
  if (_vtc) {
    _vtc.delete(cls);
    if (!_vtc.size) {
      el[vtcKey] = void 0;
    }
  }
}
function nextFrame(cb) {
  requestAnimationFrame(() => {
    requestAnimationFrame(cb);
  });
}
let endId = 0;
function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
  const id = el._endId = ++endId;
  const resolveIfNotStale = () => {
    if (id === el._endId) {
      resolve();
    }
  };
  if (explicitTimeout != null) {
    return setTimeout(resolveIfNotStale, explicitTimeout);
  }
  const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
  if (!type) {
    return resolve();
  }
  const endEvent = type + "end";
  let ended = 0;
  const end = () => {
    el.removeEventListener(endEvent, onEnd);
    resolveIfNotStale();
  };
  const onEnd = (e) => {
    if (e.target === el && ++ended >= propCount) {
      end();
    }
  };
  setTimeout(() => {
    if (ended < propCount) {
      end();
    }
  }, timeout + 1);
  el.addEventListener(endEvent, onEnd);
}
function getTransitionInfo(el, expectedType) {
  const styles = window.getComputedStyle(el);
  const getStyleProperties = (key) => (styles[key] || "").split(", ");
  const transitionDelays = getStyleProperties(`${TRANSITION$1}Delay`);
  const transitionDurations = getStyleProperties(`${TRANSITION$1}Duration`);
  const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
  const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
  const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
  const animationTimeout = getTimeout(animationDelays, animationDurations);
  let type = null;
  let timeout = 0;
  let propCount = 0;
  if (expectedType === TRANSITION$1) {
    if (transitionTimeout > 0) {
      type = TRANSITION$1;
      timeout = transitionTimeout;
      propCount = transitionDurations.length;
    }
  } else if (expectedType === ANIMATION) {
    if (animationTimeout > 0) {
      type = ANIMATION;
      timeout = animationTimeout;
      propCount = animationDurations.length;
    }
  } else {
    timeout = Math.max(transitionTimeout, animationTimeout);
    type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION$1 : ANIMATION : null;
    propCount = type ? type === TRANSITION$1 ? transitionDurations.length : animationDurations.length : 0;
  }
  const hasTransform = type === TRANSITION$1 && /\b(?:transform|all)(?:,|$)/.test(
    getStyleProperties(`${TRANSITION$1}Property`).toString()
  );
  return {
    type,
    timeout,
    propCount,
    hasTransform
  };
}
function getTimeout(delays, durations) {
  while (delays.length < durations.length) {
    delays = delays.concat(delays);
  }
  return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
}
function toMs(s) {
  if (s === "auto") return 0;
  return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
}
function forceReflow(el) {
  const targetDocument = el ? el.ownerDocument : document;
  return targetDocument.body.offsetHeight;
}
function patchClass(el, value, isSVG) {
  const transitionClasses = el[vtcKey];
  if (transitionClasses) {
    value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
  }
  if (value == null) {
    el.removeAttribute("class");
  } else if (isSVG) {
    el.setAttribute("class", value);
  } else {
    el.className = value;
  }
}
const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod");
const vShowHidden = /* @__PURE__ */ Symbol("_vsh");
const vShow = {
  // used for prop mismatch check during hydration
  name: "show",
  beforeMount(el, { value }, { transition }) {
    el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display;
    if (transition && value) {
      transition.beforeEnter(el);
    } else {
      setDisplay(el, value);
    }
  },
  mounted(el, { value }, { transition }) {
    if (transition && value) {
      transition.enter(el);
    }
  },
  updated(el, { value, oldValue }, { transition }) {
    if (!value === !oldValue) return;
    if (transition) {
      if (value) {
        transition.beforeEnter(el);
        setDisplay(el, true);
        transition.enter(el);
      } else {
        transition.leave(el, () => {
          setDisplay(el, false);
        });
      }
    } else {
      setDisplay(el, value);
    }
  },
  beforeUnmount(el, { value }) {
    setDisplay(el, value);
  }
};
function setDisplay(el, value) {
  el.style.display = value ? el[vShowOriginalDisplay] : "none";
  el[vShowHidden] = !value;
}
function initVShowForSSR() {
  vShow.getSSRProps = ({ value }) => {
    if (!value) {
      return { style: { display: "none" } };
    }
  };
}
const CSS_VAR_TEXT = /* @__PURE__ */ Symbol(false ? "CSS_VAR_TEXT" : "");
function useCssVars(getter) {
  const instance = getCurrentInstance();
  if (!instance) {
    return;
  }
  const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
    Array.from(
      document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
    ).forEach((node) => setVarsOnNode(node, vars));
  };
  if (false) {
    instance.getCssVars = () => getter(instance.proxy);
  }
  const setVars = () => {
    const vars = getter(instance.proxy);
    if (instance.ce) {
      setVarsOnNode(instance.ce, vars);
    } else {
      setVarsOnVNode(instance.subTree, vars);
    }
    updateTeleports(vars);
  };
  onBeforeUpdate(() => {
    queuePostFlushCb(setVars);
  });
  onMounted(() => {
    watch(setVars, NOOP, { flush: "post" });
    const ob = new MutationObserver(setVars);
    ob.observe(instance.subTree.el.parentNode, { childList: true });
    onUnmounted(() => ob.disconnect());
  });
}
function setVarsOnVNode(vnode, vars) {
  if (vnode.shapeFlag & 128) {
    const suspense = vnode.suspense;
    vnode = suspense.activeBranch;
    if (suspense.pendingBranch && !suspense.isHydrating) {
      suspense.effects.push(() => {
        setVarsOnVNode(suspense.activeBranch, vars);
      });
    }
  }
  while (vnode.component) {
    vnode = vnode.component.subTree;
  }
  if (vnode.shapeFlag & 1 && vnode.el) {
    setVarsOnNode(vnode.el, vars);
  } else if (vnode.type === Fragment) {
    vnode.children.forEach((c) => setVarsOnVNode(c, vars));
  } else if (vnode.type === Static) {
    let { el, anchor } = vnode;
    while (el) {
      setVarsOnNode(el, vars);
      if (el === anchor) break;
      el = el.nextSibling;
    }
  }
}
function setVarsOnNode(el, vars) {
  if (el.nodeType === 1) {
    const style = el.style;
    let cssText = "";
    for (const key in vars) {
      const value = normalizeCssVarValue(vars[key]);
      style.setProperty(`--${key}`, value);
      cssText += `--${key}: ${value};`;
    }
    style[CSS_VAR_TEXT] = cssText;
  }
}
const displayRE = /(?:^|;)\s*display\s*:/;
function patchStyle(el, prev, next) {
  const style = el.style;
  const isCssString = isString$2(next);
  let hasControlledDisplay = false;
  if (next && !isCssString) {
    if (prev) {
      if (!isString$2(prev)) {
        for (const key in prev) {
          if (next[key] == null) {
            setStyle(style, key, "");
          }
        }
      } else {
        for (const prevStyle of prev.split(";")) {
          const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
          if (next[key] == null) {
            setStyle(style, key, "");
          }
        }
      }
    }
    for (const key in next) {
      if (key === "display") {
        hasControlledDisplay = true;
      }
      setStyle(style, key, next[key]);
    }
  } else {
    if (isCssString) {
      if (prev !== next) {
        const cssVarText = style[CSS_VAR_TEXT];
        if (cssVarText) {
          next += ";" + cssVarText;
        }
        style.cssText = next;
        hasControlledDisplay = displayRE.test(next);
      }
    } else if (prev) {
      el.removeAttribute("style");
    }
  }
  if (vShowOriginalDisplay in el) {
    el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
    if (el[vShowHidden]) {
      style.display = "none";
    }
  }
}
const semicolonRE = /[^\\];\s*$/;
const importantRE = /\s*!important$/;
function setStyle(style, name, val) {
  if (isArray$1(val)) {
    val.forEach((v) => setStyle(style, name, v));
  } else {
    if (val == null) val = "";
    if (false) {
      if (semicolonRE.test(val)) {
        warn$2(
          `Unexpected semicolon at the end of '${name}' style value: '${val}'`
        );
      }
    }
    if (name.startsWith("--")) {
      style.setProperty(name, val);
    } else {
      const prefixed = autoPrefix(style, name);
      if (importantRE.test(val)) {
        style.setProperty(
          hyphenate(prefixed),
          val.replace(importantRE, ""),
          "important"
        );
      } else {
        style[prefixed] = val;
      }
    }
  }
}
const prefixes = ["Webkit", "Moz", "ms"];
const prefixCache = {};
function autoPrefix(style, rawName) {
  const cached = prefixCache[rawName];
  if (cached) {
    return cached;
  }
  let name = camelize(rawName);
  if (name !== "filter" && name in style) {
    return prefixCache[rawName] = name;
  }
  name = capitalize$1(name);
  for (let i = 0; i < prefixes.length; i++) {
    const prefixed = prefixes[i] + name;
    if (prefixed in style) {
      return prefixCache[rawName] = prefixed;
    }
  }
  return rawName;
}
const xlinkNS = "http://www.w3.org/1999/xlink";
function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
  if (isSVG && key.startsWith("xlink:")) {
    if (value == null) {
      el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
    } else {
      el.setAttributeNS(xlinkNS, key, value);
    }
  } else {
    if (value == null || isBoolean && !includeBooleanAttr(value)) {
      el.removeAttribute(key);
    } else {
      el.setAttribute(
        key,
        isBoolean ? "" : isSymbol$1(value) ? String(value) : value
      );
    }
  }
}
function patchDOMProp(el, key, value, parentComponent, attrName) {
  if (key === "innerHTML" || key === "textContent") {
    if (value != null) {
      el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value;
    }
    return;
  }
  const tag = el.tagName;
  if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
  !tag.includes("-")) {
    const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
    const newValue = value == null ? (
      // #11647: value should be set as empty string for null and undefined,
      // but <input type="checkbox"> should be set as 'on'.
      el.type === "checkbox" ? "on" : ""
    ) : String(value);
    if (oldValue !== newValue || !("_value" in el)) {
      el.value = newValue;
    }
    if (value == null) {
      el.removeAttribute(key);
    }
    el._value = value;
    return;
  }
  let needRemove = false;
  if (value === "" || value == null) {
    const type = typeof el[key];
    if (type === "boolean") {
      value = includeBooleanAttr(value);
    } else if (value == null && type === "string") {
      value = "";
      needRemove = true;
    } else if (type === "number") {
      value = 0;
      needRemove = true;
    }
  }
  try {
    el[key] = value;
  } catch (e) {
    if (false) {
      warn$2(
        `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
        e
      );
    }
  }
  needRemove && el.removeAttribute(attrName || key);
}
function addEventListener(el, event, handler, options) {
  el.addEventListener(event, handler, options);
}
function removeEventListener(el, event, handler, options) {
  el.removeEventListener(event, handler, options);
}
const veiKey = /* @__PURE__ */ Symbol("_vei");
function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
  const invokers = el[veiKey] || (el[veiKey] = {});
  const existingInvoker = invokers[rawName];
  if (nextValue && existingInvoker) {
    existingInvoker.value = false ? sanitizeEventValue(nextValue, rawName) : nextValue;
  } else {
    const [name, options] = parseName(rawName);
    if (nextValue) {
      const invoker = invokers[rawName] = createInvoker(
        false ? sanitizeEventValue(nextValue, rawName) : nextValue,
        instance
      );
      addEventListener(el, name, invoker, options);
    } else if (existingInvoker) {
      removeEventListener(el, name, existingInvoker, options);
      invokers[rawName] = void 0;
    }
  }
}
const optionsModifierRE = /(?:Once|Passive|Capture)$/;
function parseName(name) {
  let options;
  if (optionsModifierRE.test(name)) {
    options = {};
    let m;
    while (m = name.match(optionsModifierRE)) {
      name = name.slice(0, name.length - m[0].length);
      options[m[0].toLowerCase()] = true;
    }
  }
  const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
  return [event, options];
}
let cachedNow = 0;
const p = /* @__PURE__ */ Promise.resolve();
const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
function createInvoker(initialValue, instance) {
  const invoker = (e) => {
    if (!e._vts) {
      e._vts = Date.now();
    } else if (e._vts <= invoker.attached) {
      return;
    }
    callWithAsyncErrorHandling(
      patchStopImmediatePropagation(e, invoker.value),
      instance,
      5,
      [e]
    );
  };
  invoker.value = initialValue;
  invoker.attached = getNow();
  return invoker;
}
function sanitizeEventValue(value, propName) {
  if (isFunction$1(value) || isArray$1(value)) {
    return value;
  }
  warn$2(
    `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop?
Expected function or array of functions, received type ${typeof value}.`
  );
  return NOOP;
}
function patchStopImmediatePropagation(e, value) {
  if (isArray$1(value)) {
    const originalStop = e.stopImmediatePropagation;
    e.stopImmediatePropagation = () => {
      originalStop.call(e);
      e._stopped = true;
    };
    return value.map(
      (fn) => (e2) => !e2._stopped && fn && fn(e2)
    );
  } else {
    return value;
  }
}
const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter
key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;
const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {
  const isSVG = namespace === "svg";
  if (key === "class") {
    patchClass(el, nextValue, isSVG);
  } else if (key === "style") {
    patchStyle(el, prevValue, nextValue);
  } else if (isOn(key)) {
    if (!isModelListener(key)) {
      patchEvent(el, key, prevValue, nextValue, parentComponent);
    }
  } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
    patchDOMProp(el, key, nextValue);
    if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) {
      patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value");
    }
  } else if (
    // #11081 force set props for possible async custom element
    el._isVueCE && // #12408 check if it's declared prop or it's async custom element
    (shouldSetAsPropForVueCE(el, key) || // @ts-expect-error _def is private
    el._def.__asyncLoader && (/[A-Z]/.test(key) || !isString$2(nextValue)))
  ) {
    patchDOMProp(el, camelize(key), nextValue, parentComponent, key);
  } else {
    if (key === "true-value") {
      el._trueValue = nextValue;
    } else if (key === "false-value") {
      el._falseValue = nextValue;
    }
    patchAttr(el, key, nextValue, isSVG);
  }
};
function shouldSetAsProp(el, key, value, isSVG) {
  if (isSVG) {
    if (key === "innerHTML" || key === "textContent") {
      return true;
    }
    if (key in el && isNativeOn(key) && isFunction$1(value)) {
      return true;
    }
    return false;
  }
  if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") {
    return false;
  }
  if (key === "sandbox" && el.tagName === "IFRAME") {
    return false;
  }
  if (key === "form") {
    return false;
  }
  if (key === "list" && el.tagName === "INPUT") {
    return false;
  }
  if (key === "type" && el.tagName === "TEXTAREA") {
    return false;
  }
  if (key === "width" || key === "height") {
    const tag = el.tagName;
    if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") {
      return false;
    }
  }
  if (isNativeOn(key) && isString$2(value)) {
    return false;
  }
  return key in el;
}
function shouldSetAsPropForVueCE(el, key) {
  const props = (
    // @ts-expect-error _def is private
    el._def.props
  );
  if (!props) {
    return false;
  }
  const camelKey = camelize(key);
  return Array.isArray(props) ? props.some((prop) => camelize(prop) === camelKey) : Object.keys(props).some((prop) => camelize(prop) === camelKey);
}
const REMOVAL = {};
// @__NO_SIDE_EFFECTS__
function defineCustomElement(options, extraOptions, _createApp) {
  let Comp = defineComponent(options, extraOptions);
  if (isPlainObject$2(Comp)) Comp = extend({}, Comp, extraOptions);
  class VueCustomElement extends VueElement {
    constructor(initialProps) {
      super(Comp, initialProps, _createApp);
    }
  }
  VueCustomElement.def = Comp;
  return VueCustomElement;
}
const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {
  return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);
});
const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
};
class VueElement extends BaseClass {
  constructor(_def, _props = {}, _createApp = createApp) {
    super();
    this._def = _def;
    this._props = _props;
    this._createApp = _createApp;
    this._isVueCE = true;
    this._instance = null;
    this._app = null;
    this._nonce = this._def.nonce;
    this._connected = false;
    this._resolved = false;
    this._patching = false;
    this._dirty = false;
    this._numberProps = null;
    this._styleChildren = /* @__PURE__ */ new WeakSet();
    this._styleAnchors = /* @__PURE__ */ new WeakMap();
    this._ob = null;
    if (this.shadowRoot && _createApp !== createApp) {
      this._root = this.shadowRoot;
    } else {
      if (false) {
        warn$2(
          `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
        );
      }
      if (_def.shadowRoot !== false) {
        this.attachShadow(
          extend({}, _def.shadowRootOptions, {
            mode: "open"
          })
        );
        this._root = this.shadowRoot;
      } else {
        this._root = this;
      }
    }
  }
  connectedCallback() {
    if (!this.isConnected) return;
    if (!this.shadowRoot && !this._resolved) {
      this._parseSlots();
    }
    this._connected = true;
    let parent = this;
    while (parent = parent && // #12479 should check assignedSlot first to get correct parent
    (parent.assignedSlot || parent.parentNode || parent.host)) {
      if (parent instanceof VueElement) {
        this._parent = parent;
        break;
      }
    }
    if (!this._instance) {
      if (this._resolved) {
        this._mount(this._def);
      } else {
        if (parent && parent._pendingResolve) {
          this._pendingResolve = parent._pendingResolve.then(() => {
            this._pendingResolve = void 0;
            this._resolveDef();
          });
        } else {
          this._resolveDef();
        }
      }
    }
  }
  _setParent(parent = this._parent) {
    if (parent) {
      this._instance.parent = parent._instance;
      this._inheritParentContext(parent);
    }
  }
  _inheritParentContext(parent = this._parent) {
    if (parent && this._app) {
      Object.setPrototypeOf(
        this._app._context.provides,
        parent._instance.provides
      );
    }
  }
  disconnectedCallback() {
    this._connected = false;
    nextTick(() => {
      if (!this._connected) {
        if (this._ob) {
          this._ob.disconnect();
          this._ob = null;
        }
        this._app && this._app.unmount();
        if (this._instance) this._instance.ce = void 0;
        this._app = this._instance = null;
        if (this._teleportTargets) {
          this._teleportTargets.clear();
          this._teleportTargets = void 0;
        }
      }
    });
  }
  _processMutations(mutations) {
    for (const m of mutations) {
      this._setAttr(m.attributeName);
    }
  }
  /**
   * resolve inner component definition (handle possible async component)
   */
  _resolveDef() {
    if (this._pendingResolve) {
      return;
    }
    for (let i = 0; i < this.attributes.length; i++) {
      this._setAttr(this.attributes[i].name);
    }
    this._ob = new MutationObserver(this._processMutations.bind(this));
    this._ob.observe(this, { attributes: true });
    const resolve = (def, isAsync = false) => {
      this._resolved = true;
      this._pendingResolve = void 0;
      const { props, styles } = def;
      let numberProps;
      if (props && !isArray$1(props)) {
        for (const key in props) {
          const opt = props[key];
          if (opt === Number || opt && opt.type === Number) {
            if (key in this._props) {
              this._props[key] = toNumber(this._props[key]);
            }
            (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;
          }
        }
      }
      this._numberProps = numberProps;
      this._resolveProps(def);
      if (this.shadowRoot) {
        this._applyStyles(styles);
      } else if (false) {
        warn$2(
          "Custom element style injection is not supported when using shadowRoot: false"
        );
      }
      this._mount(def);
    };
    const asyncDef = this._def.__asyncLoader;
    if (asyncDef) {
      this._pendingResolve = asyncDef().then((def) => {
        def.configureApp = this._def.configureApp;
        resolve(this._def = def, true);
      });
    } else {
      resolve(this._def);
    }
  }
  _mount(def) {
    if (!def.name) {
      def.name = "VueElement";
    }
    this._app = this._createApp(def);
    this._inheritParentContext();
    if (def.configureApp) {
      def.configureApp(this._app);
    }
    this._app._ceVNode = this._createVNode();
    this._app.mount(this._root);
    const exposed = this._instance && this._instance.exposed;
    if (!exposed) return;
    for (const key in exposed) {
      if (!hasOwn$1(this, key)) {
        Object.defineProperty(this, key, {
          // unwrap ref to be consistent with public instance behavior
          get: () => unref(exposed[key])
        });
      } else if (false) {
        warn$2(`Exposed property "${key}" already exists on custom element.`);
      }
    }
  }
  _resolveProps(def) {
    const { props } = def;
    const declaredPropKeys = isArray$1(props) ? props : Object.keys(props || {});
    for (const key of Object.keys(this)) {
      if (key[0] !== "_" && declaredPropKeys.includes(key)) {
        this._setProp(key, this[key]);
      }
    }
    for (const key of declaredPropKeys.map(camelize)) {
      Object.defineProperty(this, key, {
        get() {
          return this._getProp(key);
        },
        set(val) {
          this._setProp(key, val, true, !this._patching);
        }
      });
    }
  }
  _setAttr(key) {
    if (key.startsWith("data-v-")) return;
    const has = this.hasAttribute(key);
    let value = has ? this.getAttribute(key) : REMOVAL;
    const camelKey = camelize(key);
    if (has && this._numberProps && this._numberProps[camelKey]) {
      value = toNumber(value);
    }
    this._setProp(camelKey, value, false, true);
  }
  /**
   * @internal
   */
  _getProp(key) {
    return this._props[key];
  }
  /**
   * @internal
   */
  _setProp(key, val, shouldReflect = true, shouldUpdate = false) {
    if (val !== this._props[key]) {
      this._dirty = true;
      if (val === REMOVAL) {
        delete this._props[key];
      } else {
        this._props[key] = val;
        if (key === "key" && this._app) {
          this._app._ceVNode.key = val;
        }
      }
      if (shouldUpdate && this._instance) {
        this._update();
      }
      if (shouldReflect) {
        const ob = this._ob;
        if (ob) {
          this._processMutations(ob.takeRecords());
          ob.disconnect();
        }
        if (val === true) {
          this.setAttribute(hyphenate(key), "");
        } else if (typeof val === "string" || typeof val === "number") {
          this.setAttribute(hyphenate(key), val + "");
        } else if (!val) {
          this.removeAttribute(hyphenate(key));
        }
        ob && ob.observe(this, { attributes: true });
      }
    }
  }
  _update() {
    const vnode = this._createVNode();
    if (this._app) vnode.appContext = this._app._context;
    render(vnode, this._root);
  }
  _createVNode() {
    const baseProps = {};
    if (!this.shadowRoot) {
      baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
    }
    const vnode = createVNode(this._def, extend(baseProps, this._props));
    if (!this._instance) {
      vnode.ce = (instance) => {
        this._instance = instance;
        instance.ce = this;
        instance.isCE = true;
        if (false) {
          instance.ceReload = (newStyles) => {
            if (this._styles) {
              this._styles.forEach((s) => this._root.removeChild(s));
              this._styles.length = 0;
            }
            this._styleAnchors.delete(this._def);
            this._applyStyles(newStyles);
            this._instance = null;
            this._update();
          };
        }
        const dispatch = (event, args) => {
          this.dispatchEvent(
            new CustomEvent(
              event,
              isPlainObject$2(args[0]) ? extend({ detail: args }, args[0]) : { detail: args }
            )
          );
        };
        instance.emit = (event, ...args) => {
          dispatch(event, args);
          if (hyphenate(event) !== event) {
            dispatch(hyphenate(event), args);
          }
        };
        this._setParent();
      };
    }
    return vnode;
  }
  _applyStyles(styles, owner, parentComp) {
    if (!styles) return;
    if (owner) {
      if (owner === this._def || this._styleChildren.has(owner)) {
        return;
      }
      this._styleChildren.add(owner);
    }
    const nonce = this._nonce;
    const root = this.shadowRoot;
    const insertionAnchor = parentComp ? this._getStyleAnchor(parentComp) || this._getStyleAnchor(this._def) : this._getRootStyleInsertionAnchor(root);
    let last = null;
    for (let i = styles.length - 1; i >= 0; i--) {
      const s = document.createElement("style");
      if (nonce) s.setAttribute("nonce", nonce);
      s.textContent = styles[i];
      root.insertBefore(s, last || insertionAnchor);
      last = s;
      if (i === 0) {
        if (!parentComp) this._styleAnchors.set(this._def, s);
        if (owner) this._styleAnchors.set(owner, s);
      }
      if (false) {
        if (owner) {
          if (owner.__hmrId) {
            if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map();
            let entry = this._childStyles.get(owner.__hmrId);
            if (!entry) {
              this._childStyles.set(owner.__hmrId, entry = []);
            }
            entry.push(s);
          }
        } else {
          (this._styles || (this._styles = [])).push(s);
        }
      }
    }
  }
  _getStyleAnchor(comp) {
    if (!comp) {
      return null;
    }
    const anchor = this._styleAnchors.get(comp);
    if (anchor && anchor.parentNode === this.shadowRoot) {
      return anchor;
    }
    if (anchor) {
      this._styleAnchors.delete(comp);
    }
    return null;
  }
  _getRootStyleInsertionAnchor(root) {
    for (let i = 0; i < root.childNodes.length; i++) {
      const node = root.childNodes[i];
      if (!(node instanceof HTMLStyleElement)) {
        return node;
      }
    }
    return null;
  }
  /**
   * Only called when shadowRoot is false
   */
  _parseSlots() {
    const slots = this._slots = {};
    let n;
    while (n = this.firstChild) {
      const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default";
      (slots[slotName] || (slots[slotName] = [])).push(n);
      this.removeChild(n);
    }
  }
  /**
   * Only called when shadowRoot is false
   */
  _renderSlots() {
    const outlets = this._getSlots();
    const scopeId = this._instance.type.__scopeId;
    for (let i = 0; i < outlets.length; i++) {
      const o = outlets[i];
      const slotName = o.getAttribute("name") || "default";
      const content = this._slots[slotName];
      const parent = o.parentNode;
      if (content) {
        for (const n of content) {
          if (scopeId && n.nodeType === 1) {
            const id = scopeId + "-s";
            const walker = document.createTreeWalker(n, 1);
            n.setAttribute(id, "");
            let child;
            while (child = walker.nextNode()) {
              child.setAttribute(id, "");
            }
          }
          parent.insertBefore(n, o);
        }
      } else {
        while (o.firstChild) parent.insertBefore(o.firstChild, o);
      }
      parent.removeChild(o);
    }
  }
  /**
   * @internal
   */
  _getSlots() {
    const roots = [this];
    if (this._teleportTargets) {
      roots.push(...this._teleportTargets);
    }
    const slots = /* @__PURE__ */ new Set();
    for (const root of roots) {
      const found = root.querySelectorAll("slot");
      for (let i = 0; i < found.length; i++) {
        slots.add(found[i]);
      }
    }
    return Array.from(slots);
  }
  /**
   * @internal
   */
  _injectChildStyle(comp, parentComp) {
    this._applyStyles(comp.styles, comp, parentComp);
  }
  /**
   * @internal
   */
  _beginPatch() {
    this._patching = true;
    this._dirty = false;
  }
  /**
   * @internal
   */
  _endPatch() {
    this._patching = false;
    if (this._dirty && this._instance) {
      this._update();
    }
  }
  /**
   * @internal
   */
  _hasShadowRoot() {
    return this._def.shadowRoot !== false;
  }
  /**
   * @internal
   */
  _removeChildStyle(comp) {
    if (false) {
      this._styleChildren.delete(comp);
      this._styleAnchors.delete(comp);
      if (this._childStyles && comp.__hmrId) {
        const oldStyles = this._childStyles.get(comp.__hmrId);
        if (oldStyles) {
          oldStyles.forEach((s) => this._root.removeChild(s));
          oldStyles.length = 0;
        }
      }
    }
  }
}
function useHost(caller) {
  const instance = getCurrentInstance();
  const el = instance && instance.ce;
  if (el) {
    return el;
  } else if (false) {
    if (!instance) {
      warn$2(
        `${caller || "useHost"} called without an active component instance.`
      );
    } else {
      warn$2(
        `${caller || "useHost"} can only be used in components defined via defineCustomElement.`
      );
    }
  }
  return null;
}
function useShadowRoot() {
  const el = false ? useHost("useShadowRoot") : useHost();
  return el && el.shadowRoot;
}
function useCssModule(name = "$style") {
  {
    const instance = getCurrentInstance();
    if (!instance) {
      return EMPTY_OBJ;
    }
    const modules = instance.type.__cssModules;
    if (!modules) {
      return EMPTY_OBJ;
    }
    const mod = modules[name];
    if (!mod) {
      return EMPTY_OBJ;
    }
    return mod;
  }
}
const positionMap = /* @__PURE__ */ new WeakMap();
const newPositionMap = /* @__PURE__ */ new WeakMap();
const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
const decorate = (t) => {
  delete t.props.mode;
  return t;
};
const TransitionGroupImpl = /* @__PURE__ */ decorate({
  name: "TransitionGroup",
  props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
    tag: String,
    moveClass: String
  }),
  setup(props, { slots }) {
    const instance = getCurrentInstance();
    const state = useTransitionState();
    let prevChildren;
    let children;
    onUpdated(() => {
      if (!prevChildren.length) {
        return;
      }
      const moveClass = props.moveClass || `${props.name || "v"}-move`;
      if (!hasCSSTransform(
        prevChildren[0].el,
        instance.vnode.el,
        moveClass
      )) {
        prevChildren = [];
        return;
      }
      prevChildren.forEach(callPendingCbs);
      prevChildren.forEach(recordPosition);
      const movedChildren = prevChildren.filter(applyTranslation);
      forceReflow(instance.vnode.el);
      movedChildren.forEach((c) => {
        const el = c.el;
        const style = el.style;
        addTransitionClass(el, moveClass);
        style.transform = style.webkitTransform = style.transitionDuration = "";
        const cb = el[moveCbKey] = (e) => {
          if (e && e.target !== el) {
            return;
          }
          if (!e || e.propertyName.endsWith("transform")) {
            el.removeEventListener("transitionend", cb);
            el[moveCbKey] = null;
            removeTransitionClass(el, moveClass);
          }
        };
        el.addEventListener("transitionend", cb);
      });
      prevChildren = [];
    });
    return () => {
      const rawProps = toRaw(props);
      const cssTransitionProps = resolveTransitionProps(rawProps);
      let tag = rawProps.tag || Fragment;
      prevChildren = [];
      if (children) {
        for (let i = 0; i < children.length; i++) {
          const child = children[i];
          if (child.el && child.el instanceof Element) {
            prevChildren.push(child);
            setTransitionHooks(
              child,
              resolveTransitionHooks(
                child,
                cssTransitionProps,
                state,
                instance
              )
            );
            positionMap.set(child, getPosition(child.el));
          }
        }
      }
      children = slots.default ? getTransitionRawChildren(slots.default()) : [];
      for (let i = 0; i < children.length; i++) {
        const child = children[i];
        if (child.key != null) {
          setTransitionHooks(
            child,
            resolveTransitionHooks(child, cssTransitionProps, state, instance)
          );
        } else if (false) {
          warn$2(`<TransitionGroup> children must be keyed.`);
        }
      }
      return createVNode(tag, null, children);
    };
  }
});
const TransitionGroup = TransitionGroupImpl;
function callPendingCbs(c) {
  const el = c.el;
  if (el[moveCbKey]) {
    el[moveCbKey]();
  }
  if (el[enterCbKey]) {
    el[enterCbKey]();
  }
}
function recordPosition(c) {
  newPositionMap.set(c, getPosition(c.el));
}
function applyTranslation(c) {
  const oldPos = positionMap.get(c);
  const newPos = newPositionMap.get(c);
  const dx = oldPos.left - newPos.left;
  const dy = oldPos.top - newPos.top;
  if (dx || dy) {
    const el = c.el;
    const s = el.style;
    const rect = el.getBoundingClientRect();
    let scaleX = 1;
    let scaleY = 1;
    if (el.offsetWidth) scaleX = rect.width / el.offsetWidth;
    if (el.offsetHeight) scaleY = rect.height / el.offsetHeight;
    if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1;
    if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1;
    if (Math.abs(scaleX - 1) < 0.01) scaleX = 1;
    if (Math.abs(scaleY - 1) < 0.01) scaleY = 1;
    s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`;
    s.transitionDuration = "0s";
    return c;
  }
}
function getPosition(el) {
  const rect = el.getBoundingClientRect();
  return {
    left: rect.left,
    top: rect.top
  };
}
function hasCSSTransform(el, root, moveClass) {
  const clone = el.cloneNode();
  const _vtc = el[vtcKey];
  if (_vtc) {
    _vtc.forEach((cls) => {
      cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c));
    });
  }
  moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c));
  clone.style.display = "none";
  const container = root.nodeType === 1 ? root : root.parentNode;
  container.appendChild(clone);
  const { hasTransform } = getTransitionInfo(clone);
  container.removeChild(clone);
  return hasTransform;
}
const getModelAssigner = (vnode) => {
  const fn = vnode.props["onUpdate:modelValue"] || false;
  return isArray$1(fn) ? (value) => invokeArrayFns(fn, value) : fn;
};
function onCompositionStart(e) {
  e.target.composing = true;
}
function onCompositionEnd(e) {
  const target = e.target;
  if (target.composing) {
    target.composing = false;
    target.dispatchEvent(new Event("input"));
  }
}
const assignKey = /* @__PURE__ */ Symbol("_assign");
function castValue(value, trim, number) {
  if (trim) value = value.trim();
  if (number) value = looseToNumber(value);
  return value;
}
const vModelText = {
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
    el[assignKey] = getModelAssigner(vnode);
    const castToNumber = number || vnode.props && vnode.props.type === "number";
    addEventListener(el, lazy ? "change" : "input", (e) => {
      if (e.target.composing) return;
      el[assignKey](castValue(el.value, trim, castToNumber));
    });
    if (trim || castToNumber) {
      addEventListener(el, "change", () => {
        el.value = castValue(el.value, trim, castToNumber);
      });
    }
    if (!lazy) {
      addEventListener(el, "compositionstart", onCompositionStart);
      addEventListener(el, "compositionend", onCompositionEnd);
      addEventListener(el, "change", onCompositionEnd);
    }
  },
  // set value on mounted so it's after min/max for type="range"
  mounted(el, { value }) {
    el.value = value == null ? "" : value;
  },
  beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
    el[assignKey] = getModelAssigner(vnode);
    if (el.composing) return;
    const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value;
    const newValue = value == null ? "" : value;
    if (elValue === newValue) {
      return;
    }
    const rootNode = el.getRootNode();
    if ((rootNode instanceof Document || rootNode instanceof ShadowRoot) && rootNode.activeElement === el && el.type !== "range") {
      if (lazy && value === oldValue) {
        return;
      }
      if (trim && el.value.trim() === newValue) {
        return;
      }
    }
    el.value = newValue;
  }
};
const vModelCheckbox = {
  // #4096 array checkboxes need to be deep traversed
  deep: true,
  created(el, _, vnode) {
    el[assignKey] = getModelAssigner(vnode);
    addEventListener(el, "change", () => {
      const modelValue = el._modelValue;
      const elementValue = getValue(el);
      const checked = el.checked;
      const assign = el[assignKey];
      if (isArray$1(modelValue)) {
        const index = looseIndexOf(modelValue, elementValue);
        const found = index !== -1;
        if (checked && !found) {
          assign(modelValue.concat(elementValue));
        } else if (!checked && found) {
          const filtered = [...modelValue];
          filtered.splice(index, 1);
          assign(filtered);
        }
      } else if (isSet(modelValue)) {
        const cloned = new Set(modelValue);
        if (checked) {
          cloned.add(elementValue);
        } else {
          cloned.delete(elementValue);
        }
        assign(cloned);
      } else {
        assign(getCheckboxValue(el, checked));
      }
    });
  },
  // set initial checked on mount to wait for true-value/false-value
  mounted: setChecked,
  beforeUpdate(el, binding, vnode) {
    el[assignKey] = getModelAssigner(vnode);
    setChecked(el, binding, vnode);
  }
};
function setChecked(el, { value, oldValue }, vnode) {
  el._modelValue = value;
  let checked;
  if (isArray$1(value)) {
    checked = looseIndexOf(value, vnode.props.value) > -1;
  } else if (isSet(value)) {
    checked = value.has(vnode.props.value);
  } else {
    if (value === oldValue) return;
    checked = looseEqual(value, getCheckboxValue(el, true));
  }
  if (el.checked !== checked) {
    el.checked = checked;
  }
}
const vModelRadio = {
  created(el, { value }, vnode) {
    el.checked = looseEqual(value, vnode.props.value);
    el[assignKey] = getModelAssigner(vnode);
    addEventListener(el, "change", () => {
      el[assignKey](getValue(el));
    });
  },
  beforeUpdate(el, { value, oldValue }, vnode) {
    el[assignKey] = getModelAssigner(vnode);
    if (value !== oldValue) {
      el.checked = looseEqual(value, vnode.props.value);
    }
  }
};
const vModelSelect = {
  // <select multiple> value need to be deep traversed
  deep: true,
  created(el, { value, modifiers: { number } }, vnode) {
    const isSetModel = isSet(value);
    addEventListener(el, "change", () => {
      const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
        (o) => number ? looseToNumber(getValue(o)) : getValue(o)
      );
      el[assignKey](
        el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
      );
      el._assigning = true;
      nextTick(() => {
        el._assigning = false;
      });
    });
    el[assignKey] = getModelAssigner(vnode);
  },
  // set value in mounted & updated because <select> relies on its children
  // <option>s.
  mounted(el, { value }) {
    setSelected(el, value);
  },
  beforeUpdate(el, _binding, vnode) {
    el[assignKey] = getModelAssigner(vnode);
  },
  updated(el, { value }) {
    if (!el._assigning) {
      setSelected(el, value);
    }
  }
};
function setSelected(el, value) {
  const isMultiple = el.multiple;
  const isArrayValue = isArray$1(value);
  if (isMultiple && !isArrayValue && !isSet(value)) {
    return;
  }
  for (let i = 0, l = el.options.length; i < l; i++) {
    const option = el.options[i];
    const optionValue = getValue(option);
    if (isMultiple) {
      if (isArrayValue) {
        const optionType = typeof optionValue;
        if (optionType === "string" || optionType === "number") {
          option.selected = value.some((v) => String(v) === String(optionValue));
        } else {
          option.selected = looseIndexOf(value, optionValue) > -1;
        }
      } else {
        option.selected = value.has(optionValue);
      }
    } else if (looseEqual(getValue(option), value)) {
      if (el.selectedIndex !== i) el.selectedIndex = i;
      return;
    }
  }
  if (!isMultiple && el.selectedIndex !== -1) {
    el.selectedIndex = -1;
  }
}
function getValue(el) {
  return "_value" in el ? el._value : el.value;
}
function getCheckboxValue(el, checked) {
  const key = checked ? "_trueValue" : "_falseValue";
  return key in el ? el[key] : checked;
}
const vModelDynamic = {
  created(el, binding, vnode) {
    callModelHook(el, binding, vnode, null, "created");
  },
  mounted(el, binding, vnode) {
    callModelHook(el, binding, vnode, null, "mounted");
  },
  beforeUpdate(el, binding, vnode, prevVNode) {
    callModelHook(el, binding, vnode, prevVNode, "beforeUpdate");
  },
  updated(el, binding, vnode, prevVNode) {
    callModelHook(el, binding, vnode, prevVNode, "updated");
  }
};
function resolveDynamicModel(tagName, type) {
  switch (tagName) {
    case "SELECT":
      return vModelSelect;
    case "TEXTAREA":
      return vModelText;
    default:
      switch (type) {
        case "checkbox":
          return vModelCheckbox;
        case "radio":
          return vModelRadio;
        default:
          return vModelText;
      }
  }
}
function callModelHook(el, binding, vnode, prevVNode, hook) {
  const modelToUse = resolveDynamicModel(
    el.tagName,
    vnode.props && vnode.props.type
  );
  const fn = modelToUse[hook];
  fn && fn(el, binding, vnode, prevVNode);
}
function initVModelForSSR() {
  vModelText.getSSRProps = ({ value }) => ({ value });
  vModelRadio.getSSRProps = ({ value }, vnode) => {
    if (vnode.props && looseEqual(vnode.props.value, value)) {
      return { checked: true };
    }
  };
  vModelCheckbox.getSSRProps = ({ value }, vnode) => {
    if (isArray$1(value)) {
      if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {
        return { checked: true };
      }
    } else if (isSet(value)) {
      if (vnode.props && value.has(vnode.props.value)) {
        return { checked: true };
      }
    } else if (value) {
      return { checked: true };
    }
  };
  vModelDynamic.getSSRProps = (binding, vnode) => {
    if (typeof vnode.type !== "string") {
      return;
    }
    const modelToUse = resolveDynamicModel(
      // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase
      vnode.type.toUpperCase(),
      vnode.props && vnode.props.type
    );
    if (modelToUse.getSSRProps) {
      return modelToUse.getSSRProps(binding, vnode);
    }
  };
}
const systemModifiers = ["ctrl", "shift", "alt", "meta"];
const modifierGuards = {
  stop: (e) => e.stopPropagation(),
  prevent: (e) => e.preventDefault(),
  self: (e) => e.target !== e.currentTarget,
  ctrl: (e) => !e.ctrlKey,
  shift: (e) => !e.shiftKey,
  alt: (e) => !e.altKey,
  meta: (e) => !e.metaKey,
  left: (e) => "button" in e && e.button !== 0,
  middle: (e) => "button" in e && e.button !== 1,
  right: (e) => "button" in e && e.button !== 2,
  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
};
const withModifiers = (fn, modifiers) => {
  if (!fn) return fn;
  const cache = fn._withMods || (fn._withMods = {});
  const cacheKey = modifiers.join(".");
  return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {
    for (let i = 0; i < modifiers.length; i++) {
      const guard = modifierGuards[modifiers[i]];
      if (guard && guard(event, modifiers)) return;
    }
    return fn(event, ...args);
  }));
};
const keyNames = {
  esc: "escape",
  space: " ",
  up: "arrow-up",
  left: "arrow-left",
  right: "arrow-right",
  down: "arrow-down",
  delete: "backspace"
};
const withKeys = (fn, modifiers) => {
  const cache = fn._withKeys || (fn._withKeys = {});
  const cacheKey = modifiers.join(".");
  return cache[cacheKey] || (cache[cacheKey] = ((event) => {
    if (!("key" in event)) {
      return;
    }
    const eventKey = hyphenate(event.key);
    if (modifiers.some(
      (k) => k === eventKey || keyNames[k] === eventKey
    )) {
      return fn(event);
    }
  }));
};
const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
let renderer;
let enabledHydration = false;
function ensureRenderer() {
  return renderer || (renderer = createRenderer(rendererOptions));
}
function ensureHydrationRenderer() {
  renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);
  enabledHydration = true;
  return renderer;
}
const render = ((...args) => {
  ensureRenderer().render(...args);
});
const hydrate = ((...args) => {
  ensureHydrationRenderer().hydrate(...args);
});
const createApp = ((...args) => {
  const app = ensureRenderer().createApp(...args);
  if (false) {
    injectNativeTagCheck(app);
    injectCompilerOptionsCheck(app);
  }
  const { mount } = app;
  app.mount = (containerOrSelector) => {
    const container = normalizeContainer(containerOrSelector);
    if (!container) return;
    const component = app._component;
    if (!isFunction$1(component) && !component.render && !component.template) {
      component.template = container.innerHTML;
    }
    if (container.nodeType === 1) {
      container.textContent = "";
    }
    const proxy = mount(container, false, resolveRootNamespace(container));
    if (container instanceof Element) {
      container.removeAttribute("v-cloak");
      container.setAttribute("data-v-app", "");
    }
    return proxy;
  };
  return app;
});
const createSSRApp = ((...args) => {
  const app = ensureHydrationRenderer().createApp(...args);
  if (false) {
    injectNativeTagCheck(app);
    injectCompilerOptionsCheck(app);
  }
  const { mount } = app;
  app.mount = (containerOrSelector) => {
    const container = normalizeContainer(containerOrSelector);
    if (container) {
      return mount(container, true, resolveRootNamespace(container));
    }
  };
  return app;
});
function resolveRootNamespace(container) {
  if (container instanceof SVGElement) {
    return "svg";
  }
  if (typeof MathMLElement === "function" && container instanceof MathMLElement) {
    return "mathml";
  }
}
function injectNativeTagCheck(app) {
  Object.defineProperty(app.config, "isNativeTag", {
    value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),
    writable: false
  });
}
function injectCompilerOptionsCheck(app) {
  if (isRuntimeOnly()) {
    const isCustomElement = app.config.isCustomElement;
    Object.defineProperty(app.config, "isCustomElement", {
      get() {
        return isCustomElement;
      },
      set() {
        warn$2(
          `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.`
        );
      }
    });
    const compilerOptions = app.config.compilerOptions;
    const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead.
- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option.
- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader
- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;
    Object.defineProperty(app.config, "compilerOptions", {
      get() {
        warn$2(msg);
        return compilerOptions;
      },
      set() {
        warn$2(msg);
      }
    });
  }
}
function normalizeContainer(container) {
  if (isString$2(container)) {
    const res = document.querySelector(container);
    if (false) {
      warn$2(
        `Failed to mount app: mount target selector "${container}" returned null.`
      );
    }
    return res;
  }
  if (false) {
    warn$2(
      `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs`
    );
  }
  return container;
}
let ssrDirectiveInitialized = false;
const initDirectivesForSSR = () => {
  if (!ssrDirectiveInitialized) {
    ssrDirectiveInitialized = true;
    initVModelForSSR();
    initVShowForSSR();
  }
};

/**
* vue v3.5.31
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
function initDev() {
  {
    initCustomFormatter();
  }
}
if (false) {
  initDev();
}
const compile$2 = () => {
  if (false) {
    warn$2(
      `Runtime compilation is not supported in this build of Vue. Configure your bundler to alias "vue" to "vue/dist/vue.esm-bundler.js".`
    );
  }
};

const __pwVue = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
  __proto__: null,
  BaseTransition,
  BaseTransitionPropsValidators,
  Comment,
  DeprecationTypes,
  EffectScope,
  ErrorCodes: ErrorCodes$1,
  ErrorTypeStrings,
  Fragment,
  KeepAlive,
  ReactiveEffect,
  Static,
  Suspense,
  Teleport,
  Text,
  TrackOpTypes,
  Transition,
  TransitionGroup,
  TriggerOpTypes,
  VueElement,
  assertNumber,
  callWithAsyncErrorHandling,
  callWithErrorHandling,
  camelize,
  capitalize: capitalize$1,
  cloneVNode,
  compatUtils,
  compile: compile$2,
  computed,
  createApp,
  createBlock,
  createCommentVNode,
  createElementBlock,
  createElementVNode: createBaseVNode,
  createHydrationRenderer,
  createPropsRestProxy,
  createRenderer,
  createSSRApp,
  createSlots,
  createStaticVNode,
  createTextVNode,
  createVNode,
  customRef,
  defineAsyncComponent,
  defineComponent,
  defineCustomElement,
  defineEmits,
  defineExpose,
  defineModel,
  defineOptions,
  defineProps,
  defineSSRCustomElement,
  defineSlots,
  devtools: devtools$2,
  effect,
  effectScope,
  getCurrentInstance,
  getCurrentScope,
  getCurrentWatcher,
  getTransitionRawChildren,
  guardReactiveProps,
  h,
  handleError,
  hasInjectionContext,
  hydrate,
  hydrateOnIdle,
  hydrateOnInteraction,
  hydrateOnMediaQuery,
  hydrateOnVisible,
  initCustomFormatter,
  initDirectivesForSSR,
  inject,
  isMemoSame,
  isProxy,
  isReactive,
  isReadonly,
  isRef,
  isRuntimeOnly,
  isShallow,
  isVNode: isVNode$1,
  markRaw,
  mergeDefaults,
  mergeModels,
  mergeProps,
  nextTick,
  nodeOps,
  normalizeClass,
  normalizeProps,
  normalizeStyle,
  onActivated,
  onBeforeMount,
  onBeforeUnmount,
  onBeforeUpdate,
  onDeactivated,
  onErrorCaptured,
  onMounted,
  onRenderTracked,
  onRenderTriggered,
  onScopeDispose,
  onServerPrefetch,
  onUnmounted,
  onUpdated,
  onWatcherCleanup,
  openBlock,
  patchProp,
  popScopeId,
  provide,
  proxyRefs,
  pushScopeId,
  queuePostFlushCb,
  reactive,
  readonly,
  ref,
  registerRuntimeCompiler,
  render,
  renderList,
  renderSlot,
  resolveComponent,
  resolveDirective,
  resolveDynamicComponent,
  resolveFilter,
  resolveTransitionHooks,
  setBlockTracking,
  setDevtoolsHook,
  setTransitionHooks,
  shallowReactive,
  shallowReadonly,
  shallowRef,
  ssrContextKey,
  ssrUtils,
  stop,
  toDisplayString: toDisplayString$1,
  toHandlerKey,
  toHandlers,
  toRaw,
  toRef,
  toRefs,
  toValue,
  transformVNodeArgs,
  triggerRef,
  unref,
  useAttrs,
  useCssModule,
  useCssVars,
  useHost,
  useId,
  useModel,
  useSSRContext,
  useShadowRoot,
  useSlots,
  useTemplateRef,
  useTransitionState,
  vModelCheckbox,
  vModelDynamic,
  vModelRadio,
  vModelSelect,
  vModelText,
  vShow,
  version,
  warn: warn$2,
  watch,
  watchEffect,
  watchPostEffect,
  watchSyncEffect,
  withAsyncContext,
  withCtx,
  withDefaults,
  withDirectives,
  withKeys,
  withMemo,
  withModifiers,
  withScopeId
}, Symbol.toStringTag, { value: 'Module' }));

/*! Buefy v3.0.4 | MIT License | github.com/buefy/buefy */

var __defProp$d = Object.defineProperty;
var __pow = Math.pow;
var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField$6 = (obj, key, value) => __defNormalProp$d(obj, key + "" , value);
const colorChannels = ["red", "green", "blue", "alpha"];
const colorsNammed = {
  transparent: "#00000000",
  black: "#000000",
  silver: "#c0c0c0",
  gray: "#808080",
  white: "#ffffff",
  maroon: "#800000",
  red: "#ff0000",
  purple: "#800080",
  fuchsia: "#ff00ff",
  green: "#008000",
  lime: "#00ff00",
  olive: "#808000",
  yellow: "#ffff00",
  navy: "#000080",
  blue: "#0000ff",
  teal: "#008080",
  aqua: "#00ffff",
  orange: "#ffa500",
  aliceblue: "#f0f8ff",
  antiquewhite: "#faebd7",
  aquamarine: "#7fffd4",
  azure: "#f0ffff",
  beige: "#f5f5dc",
  bisque: "#ffe4c4",
  blanchedalmond: "#ffebcd",
  blueviolet: "#8a2be2",
  brown: "#a52a2a",
  burlywood: "#deb887",
  cadetblue: "#5f9ea0",
  chartreuse: "#7fff00",
  chocolate: "#d2691e",
  coral: "#ff7f50",
  cornflowerblue: "#6495ed",
  cornsilk: "#fff8dc",
  crimson: "#dc143c",
  cyan: "#00ffff",
  darkblue: "#00008b",
  darkcyan: "#008b8b",
  darkgoldenrod: "#b8860b",
  darkgray: "#a9a9a9",
  darkgreen: "#006400",
  darkgrey: "#a9a9a9",
  darkkhaki: "#bdb76b",
  darkmagenta: "#8b008b",
  darkolivegreen: "#556b2f",
  darkorange: "#ff8c00",
  darkorchid: "#9932cc",
  darkred: "#8b0000",
  darksalmon: "#e9967a",
  darkseagreen: "#8fbc8f",
  darkslateblue: "#483d8b",
  darkslategray: "#2f4f4f",
  darkslategrey: "#2f4f4f",
  darkturquoise: "#00ced1",
  darkviolet: "#9400d3",
  deeppink: "#ff1493",
  deepskyblue: "#00bfff",
  dimgray: "#696969",
  dimgrey: "#696969",
  dodgerblue: "#1e90ff",
  firebrick: "#b22222",
  floralwhite: "#fffaf0",
  forestgreen: "#228b22",
  gainsboro: "#dcdcdc",
  ghostwhite: "#f8f8ff",
  gold: "#ffd700",
  goldenrod: "#daa520",
  greenyellow: "#adff2f",
  grey: "#808080",
  honeydew: "#f0fff0",
  hotpink: "#ff69b4",
  indianred: "#cd5c5c",
  indigo: "#4b0082",
  ivory: "#fffff0",
  khaki: "#f0e68c",
  lavender: "#e6e6fa",
  lavenderblush: "#fff0f5",
  lawngreen: "#7cfc00",
  lemonchiffon: "#fffacd",
  lightblue: "#add8e6",
  lightcoral: "#f08080",
  lightcyan: "#e0ffff",
  lightgoldenrodyellow: "#fafad2",
  lightgray: "#d3d3d3",
  lightgreen: "#90ee90",
  lightgrey: "#d3d3d3",
  lightpink: "#ffb6c1",
  lightsalmon: "#ffa07a",
  lightseagreen: "#20b2aa",
  lightskyblue: "#87cefa",
  lightslategray: "#778899",
  lightslategrey: "#778899",
  lightsteelblue: "#b0c4de",
  lightyellow: "#ffffe0",
  limegreen: "#32cd32",
  linen: "#faf0e6",
  magenta: "#ff00ff",
  mediumaquamarine: "#66cdaa",
  mediumblue: "#0000cd",
  mediumorchid: "#ba55d3",
  mediumpurple: "#9370db",
  mediumseagreen: "#3cb371",
  mediumslateblue: "#7b68ee",
  mediumspringgreen: "#00fa9a",
  mediumturquoise: "#48d1cc",
  mediumvioletred: "#c71585",
  midnightblue: "#191970",
  mintcream: "#f5fffa",
  mistyrose: "#ffe4e1",
  moccasin: "#ffe4b5",
  navajowhite: "#ffdead",
  oldlace: "#fdf5e6",
  olivedrab: "#6b8e23",
  orangered: "#ff4500",
  orchid: "#da70d6",
  palegoldenrod: "#eee8aa",
  palegreen: "#98fb98",
  paleturquoise: "#afeeee",
  palevioletred: "#db7093",
  papayawhip: "#ffefd5",
  peachpuff: "#ffdab9",
  peru: "#cd853f",
  pink: "#ffc0cb",
  plum: "#dda0dd",
  powderblue: "#b0e0e6",
  rosybrown: "#bc8f8f",
  royalblue: "#4169e1",
  saddlebrown: "#8b4513",
  salmon: "#fa8072",
  sandybrown: "#f4a460",
  seagreen: "#2e8b57",
  seashell: "#fff5ee",
  sienna: "#a0522d",
  skyblue: "#87ceeb",
  slateblue: "#6a5acd",
  slategray: "#708090",
  slategrey: "#708090",
  snow: "#fffafa",
  springgreen: "#00ff7f",
  steelblue: "#4682b4",
  tan: "#d2b48c",
  thistle: "#d8bfd8",
  tomato: "#ff6347",
  turquoise: "#40e0d0",
  violet: "#ee82ee",
  wheat: "#f5deb3",
  whitesmoke: "#f5f5f5",
  yellowgreen: "#9acd32",
  rebeccapurple: "#663399"
};
class ColorTypeError extends Error {
  constructor() {
    super("ColorTypeError: type must be hex(a), rgb(a) or hsl(a)");
  }
}
class Color {
  // Since getters and setters for the color channels, e.g., "alpha", are
  // dynamically defined with `Object.defineProperty` in the constructor, we
  // cannot write property declarations inside the class body. Instead, we
  // augment the `Color` class with an ambient module declared in `color.ts`.
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  constructor(...args) {
    // @ts-expect-error - TypeScript failed to inter the initialization of this property
    __publicField$6(this, "$channels");
    if (args.length > 0) {
      return Color.parse(...args);
    }
    this.$channels = new Uint8Array(colorChannels.length);
  }
  get red() {
    return this.$channels[0];
  }
  set red(byte) {
    if (!Number.isNaN(byte / 1)) {
      this.$channels[0] = Math.min(255, Math.max(0, byte));
    }
  }
  get green() {
    return this.$channels[1];
  }
  set green(byte) {
    if (!Number.isNaN(byte / 1)) {
      this.$channels[1] = Math.min(255, Math.max(0, byte));
    }
  }
  get blue() {
    return this.$channels[2];
  }
  set blue(byte) {
    if (!Number.isNaN(byte / 1)) {
      this.$channels[2] = Math.min(255, Math.max(0, byte));
    }
  }
  get alpha() {
    return this.$channels[3];
  }
  set alpha(byte) {
    if (!Number.isNaN(byte / 1)) {
      this.$channels[3] = Math.min(255, Math.max(0, byte));
    }
  }
  get hue() {
    return this.getHue();
  }
  set hue(value) {
    if (!Number.isNaN(value / 1)) {
      this.setHue(value);
    }
  }
  get saturation() {
    return this.getSaturation();
  }
  set saturation(value) {
    if (!Number.isNaN(value / 1)) {
      this.setSaturation(value);
    }
  }
  get lightness() {
    return this.getLightness();
  }
  set lightness(value) {
    if (!Number.isNaN(value / 1)) {
      this.setLightness(value);
    }
  }
  getHue() {
    const [red, green, blue] = Array.from(this.$channels).map((c) => c / 255);
    const [min, max] = [Math.min(red, green, blue), Math.max(red, green, blue)];
    const delta = max - min;
    let hue = 0;
    if (delta === 0) {
      return hue;
    }
    if (red === max) {
      hue = (green - blue) / delta % 6;
    } else if (green === max) {
      hue = (blue - red) / delta + 2;
    } else {
      hue = (red - green) / delta + 4;
    }
    hue *= 60;
    while (hue !== -Infinity && hue < 0) hue += 360;
    return Math.round(hue % 360);
  }
  setHue(value) {
    const color = Color.fromHSL(value, this.saturation, this.lightness, this.alpha / 255);
    for (let i = 0; i < this.$channels.length; i++) {
      this.$channels[i] = Number(color.$channels[i]);
    }
  }
  getSaturation() {
    const [red, green, blue] = Array.from(this.$channels).map((c) => c / 255);
    const [min, max] = [Math.min(red, green, blue), Math.max(red, green, blue)];
    const delta = max - min;
    return delta !== 0 ? Math.round(delta / (1 - Math.abs(2 * this.lightness - 1)) * 100) / 100 : 0;
  }
  setSaturation(value) {
    const color = Color.fromHSL(this.hue, value, this.lightness, this.alpha / 255);
    colorChannels.forEach((_, i) => this.$channels[i] = color.$channels[i]);
  }
  getLightness() {
    const [red, green, blue] = Array.from(this.$channels).map((c) => c / 255);
    const [min, max] = [Math.min(red, green, blue), Math.max(red, green, blue)];
    return Math.round((max + min) / 2 * 100) / 100;
  }
  setLightness(value) {
    const color = Color.fromHSL(this.hue, this.lightness, value, this.alpha / 255);
    colorChannels.forEach((_, i) => this.$channels[i] = color.$channels[i]);
  }
  clone() {
    const color = new Color();
    colorChannels.forEach((_, i) => color.$channels[i] = this.$channels[i]);
    return color;
  }
  toString(type = "hex") {
    switch (String(type).toLowerCase()) {
      case "hex":
        return "#" + colorChannels.slice(0, 3).map((channel) => this[channel].toString(16).padStart(2, "0")).join("");
      case "hexa":
        return "#" + colorChannels.map((channel) => this[channel].toString(16).padStart(2, "0")).join("");
      case "rgb":
        return `rgb(${this.red}, ${this.green}, ${this.blue})`;
      case "rgba":
        return `rgba(${this.red}, ${this.green}, ${this.blue}, ${Math.round(this.alpha / 2.55) / 100})`;
      case "hsl":
        return `hsl(${Math.round(this.hue)}deg, ${Math.round(this.saturation * 100)}%, ${Math.round(this.lightness * 100)}%)`;
      case "hsla":
        return `hsla(${Math.round(this.hue)}deg, ${Math.round(this.saturation * 100)}%, ${Math.round(this.lightness * 100)}%, ${Math.round(this.alpha / 2.55) / 100})`;
      default:
        throw new ColorTypeError();
    }
  }
  get [Symbol.toStringTag]() {
    return this.toString("hex");
  }
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  static parse(...args) {
    if (typeof args[0] === "object") {
      return Color.parseObject(args[0]);
    } else if (args.every((arg) => !Number.isNaN(arg / 1))) {
      const color = new Color();
      if (args.length > 3) {
        color.red = args[0];
        color.green = args[1];
        color.blue = args[2];
        if (args[3]) {
          color.alpha = args[3];
        }
      } else if (args.length === 1) {
        const index = Number(args[0]);
        return Color.parseIndex(index, index > __pow(2, 24) ? 3 : 4);
      }
    } else if (typeof args[0] === "string") {
      let match = null;
      if (typeof colorsNammed[args[0].toLowerCase()] === "string") {
        return Color.parseHex(colorsNammed[args[0].toLowerCase()]);
      } else if ((match = args[0].match(/^(#|&h|0x)?(([a-f0-9]{3,4}){1,2})$/i)) !== null) {
        return Color.parseHex(match[2]);
      } else if ((match = args[0].match(/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(\s*,\s*(\d*\.?\d+))?\s*\)$/i)) !== null) {
        const channels = [
          match[1],
          match[2],
          match[3],
          typeof match[5] !== "undefined" ? match[5] : 1
        ];
        return Color.fromRGB(...channels.map((value) => Number(value)));
      } else if (args[0].match(/^(h(sl|wb)a?|lab|color|cmyk)\(/i)) {
        throw new Error("Color expression not implemented yet");
      }
    }
    throw new Error("Invalid color expression");
  }
  static parseObject(object) {
    const color = new Color();
    if (object === null || typeof object !== "object") {
      return color;
    }
    if (Color.isColor(object)) {
      return object.clone();
    }
    colorChannels.forEach((channel) => {
      if (!Number.isNaN(object[channel])) {
        color[channel] = object[channel];
      }
    });
    return color;
  }
  static parseHex(hex) {
    if (typeof hex !== "string") {
      throw new Error("Hex expression must be a string");
    }
    hex = hex.trim().replace(/^(0x|&h|#)/i, "");
    if (hex.length === 3 || hex.length === 4) {
      hex = hex.split("").map((c) => c.repeat(2)).join("");
    }
    if (!(hex.length === 6 || hex.length === 8)) {
      throw new Error("Incorrect Hex expression length");
    }
    const chans = hex.split(/(..)/).filter((value) => value).map((value) => Number.parseInt(value, 16));
    if (typeof chans[3] === "number") {
      chans[3] /= 255;
    }
    return Color.fromRGB(...chans);
  }
  static parseIndex(value, channels = 3) {
    const color = new Color();
    for (let i = 0; i < 4; i++) {
      color[colorChannels[i]] = value >> (channels - i) * 8 && 255;
    }
    return color;
  }
  static fromRGB(red, green, blue, alpha = 1) {
    if ([red, green, blue, alpha].some((arg) => Number.isNaN(arg / 1))) {
      throw new Error("Invalid arguments");
    }
    alpha *= 255;
    const color = new Color();
    [red, green, blue, alpha].forEach((value, index) => {
      color[colorChannels[index]] = value;
    });
    return color;
  }
  static fromHSL(hue, saturation, lightness, alpha = 1) {
    if ([hue, saturation, lightness, alpha].some((arg) => Number.isNaN(arg))) {
      throw new Error("Invalid arguments");
    }
    while (hue < 0 && hue !== -Infinity) hue += 360;
    hue = hue % 360;
    saturation = Math.max(0, Math.min(1, saturation));
    lightness = Math.max(0, Math.min(1, lightness));
    alpha = Math.max(0, Math.min(1, alpha));
    const c = (1 - Math.abs(2 * lightness - 1)) * saturation;
    const x = c * (1 - Math.abs(hue / 60 % 2 - 1));
    const m = lightness - c / 2;
    const [r, g, b] = hue < 60 ? [c, x, 0] : hue < 120 ? [x, c, 0] : hue < 180 ? [0, c, x] : hue < 240 ? [0, x, c] : hue < 300 ? [x, 0, c] : [c, 0, x];
    return Color.fromRGB((r + m) * 255, (g + m) * 255, (b + m) * 255, alpha);
  }
  static isColor(arg) {
    return arg instanceof Color;
  }
}

const NOTICE_POSITIONS = [
  "is-top-right",
  "is-top",
  "is-top-left",
  "is-bottom-right",
  "is-bottom",
  "is-bottom-left"
];
let config = {
  defaultContainerElement: null,
  defaultIconPack: "mdi",
  defaultIconComponent: null,
  defaultIconPrev: "chevron-left",
  defaultIconNext: "chevron-right",
  defaultLocale: void 0,
  defaultDialogConfirmText: null,
  defaultDialogCancelText: null,
  defaultSnackbarDuration: 3500,
  defaultSnackbarPosition: null,
  defaultToastDuration: 2e3,
  defaultToastPosition: null,
  defaultNotificationDuration: 2e3,
  defaultNotificationPosition: null,
  defaultTooltipType: "is-primary",
  defaultTooltipDelay: null,
  defaultTooltipCloseDelay: null,
  defaultSidebarDelay: null,
  defaultInputAutocomplete: "on",
  defaultDateFormatter: null,
  defaultDateParser: null,
  defaultDateCreator: null,
  defaultTimeCreator: null,
  defaultDayNames: null,
  defaultMonthNames: null,
  defaultFirstDayOfWeek: null,
  defaultUnselectableDaysOfWeek: null,
  defaultTimeFormatter: null,
  defaultTimeParser: null,
  defaultDatetimeFormatter: null,
  defaultDatetimeParser: null,
  defaultDatetimeCreator: null,
  defaultClockpickerHoursLabel: null,
  defaultClockpickerMinutesLabel: null,
  defaultColorFormatter: null,
  defaultColorParser: null,
  defaultModalCanCancel: ["escape", "x", "outside", "button"],
  defaultModalScroll: null,
  defaultDatepickerMobileNative: true,
  defaultTimepickerMobileNative: true,
  defaultTimepickerMobileModal: true,
  defaultNoticeQueue: true,
  defaultInputHasCounter: true,
  defaultCompatFallthrough: true,
  defaultTaginputHasCounter: true,
  defaultUseHtml5Validation: true,
  defaultDropdownMobileModal: true,
  defaultFieldLabelPosition: null,
  defaultDatepickerYearsRange: [-100, 10],
  defaultDatepickerNearbyMonthDays: true,
  defaultDatepickerNearbySelectableMonthDays: false,
  defaultDatepickerShowWeekNumber: false,
  defaultDatepickerWeekNumberClickable: false,
  defaultDatepickerMobileModal: true,
  defaultTrapFocus: true,
  defaultAutoFocus: true,
  defaultButtonRounded: false,
  defaultSwitchRounded: true,
  defaultCarouselInterval: 3500,
  defaultTabsExpanded: false,
  defaultTabsAnimated: true,
  defaultTabsType: null,
  defaultStatusIcon: true,
  defaultProgrammaticPromise: false,
  defaultLinkTags: [
    "a",
    "button",
    "input",
    "router-link",
    "nuxt-link",
    "n-link",
    "RouterLink",
    "NuxtLink",
    "NLink"
  ],
  defaultImageWebpFallback: null,
  defaultImageLazy: true,
  defaultImageResponsive: true,
  defaultImageRatio: null,
  defaultImageSrcsetFormatter: null,
  defaultBreadcrumbTag: "a",
  defaultBreadcrumbAlign: "is-left",
  defaultBreadcrumbSeparator: "",
  defaultBreadcrumbSize: "is-medium",
  customIconPacks: null
};
const setOptions = (options) => {
  config = options;
};

var __defProp$c = Object.defineProperty;
var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
var __hasOwnProp$d = Object.prototype.hasOwnProperty;
var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$c = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp$d.call(b, prop))
      __defNormalProp$c(a, prop, b[prop]);
  if (__getOwnPropSymbols$d)
    for (var prop of __getOwnPropSymbols$d(b)) {
      if (__propIsEnum$d.call(b, prop))
        __defNormalProp$c(a, prop, b[prop]);
    }
  return a;
};
function signPoly(value) {
  if (value < 0) return -1;
  return value > 0 ? 1 : 0;
}
const sign = Math.sign || signPoly;
function hasFlag(val, flag) {
  return (val & flag) === flag;
}
function mod(n, mod2) {
  return (n % mod2 + mod2) % mod2;
}
function bound(val, min, max) {
  return Math.max(min, Math.min(max, val));
}
function getValueByPath(obj, path) {
  return path.split(".").reduce((o, i) => o ? o[i] : null, obj);
}
function indexOf(array, obj, fn) {
  if (!array) return -1;
  if (!fn || typeof fn !== "function") return array.indexOf(obj);
  for (let i = 0; i < array.length; i++) {
    if (fn(array[i], obj)) {
      return i;
    }
  }
  return -1;
}
const isObject$2 = (item) => typeof item === "object" && !Array.isArray(item);
const mergeFn = (target, source, deep = false) => {
  if (deep || !Object.assign) {
    const isDeep = (prop) => isObject$2(source[prop]) && target !== null && Object.prototype.hasOwnProperty.call(target, prop) && isObject$2(target[prop]);
    const replaced = Object.getOwnPropertyNames(source).map((prop) => ({
      [prop]: isDeep(prop) ? mergeFn(target[prop], source[prop] || {}, deep) : source[prop]
    })).reduce(
      (a, b) => __spreadValues$c(__spreadValues$c({}, a), b),
      // eslint-disable-next-line no-use-before-define
      {}
    );
    return __spreadValues$c(__spreadValues$c({}, target), replaced);
  } else {
    return Object.assign(target, source);
  }
};
const merge = mergeFn;
const isMobile = {
  Android: function() {
    return typeof window !== "undefined" && window.navigator.userAgent.match(/Android/i);
  },
  BlackBerry: function() {
    return typeof window !== "undefined" && window.navigator.userAgent.match(/BlackBerry/i);
  },
  iOS: function() {
    return typeof window !== "undefined" && (window.navigator.userAgent.match(/iPhone|iPad|iPod/i) || window.navigator.platform === "MacIntel" && window.navigator.maxTouchPoints > 1);
  },
  Opera: function() {
    return typeof window !== "undefined" && window.navigator.userAgent.match(/Opera Mini/i);
  },
  Windows: function() {
    return typeof window !== "undefined" && window.navigator.userAgent.match(/IEMobile/i);
  },
  any: function() {
    return isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows();
  }
};
function removeElement(el) {
  if (typeof el.remove !== "undefined") {
    el.remove();
  } else if (typeof el.parentNode !== "undefined" && el.parentNode !== null) {
    el.parentNode.removeChild(el);
  }
}
function createAbsoluteElement(el) {
  const root = document.createElement("div");
  root.style.position = "absolute";
  root.style.left = "0px";
  root.style.top = "0px";
  root.style.width = "100%";
  const wrapper = document.createElement("div");
  root.appendChild(wrapper);
  wrapper.appendChild(el);
  document.body.appendChild(root);
  return root;
}
function isVueComponent(c) {
  return c != null && c.$ != null && c.$.vnode != null;
}
function escapeRegExpChars(value) {
  if (!value) return value;
  return value.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
function removeDiacriticsFromString(value) {
  if (!value) return value;
  return value.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
}
function multiColumnSort(inputArray, sortingPriority) {
  const array = JSON.parse(JSON.stringify(inputArray));
  const fieldSorter = (fields) => (a, b) => fields.map((o) => {
    const { field, order, customSort } = o;
    if (typeof customSort === "function") {
      return customSort(a, b, order !== "desc");
    } else {
      const aValue = getValueByPath(a, field);
      const bValue = getValueByPath(b, field);
      const ord = aValue > bValue ? 1 : aValue < bValue ? -1 : 0;
      return order === "desc" ? -ord : ord;
    }
  }).reduce((p, n) => p || n, 0);
  return array.sort(fieldSorter(sortingPriority));
}
function createNewEvent(eventName) {
  let event;
  if (typeof Event === "function") {
    event = new Event(eventName);
  } else {
    event = document.createEvent("Event");
    event.initEvent(eventName, true, true);
  }
  return event;
}
function toCssWidth(width) {
  return width === void 0 ? null : isNaN(+width) ? `${width}` : width + "px";
}
function getMonthNames(locale, format = "long") {
  const dates = [];
  for (let i = 0; i < 12; i++) {
    dates.push(new Date(2e3, i, 15));
  }
  const dtf = new Intl.DateTimeFormat(locale, {
    month: format
  });
  return dates.map((d) => dtf.format(d));
}
function getWeekdayNames(locale, format = "narrow") {
  const dates = [];
  for (let i = 0; i < 7; i++) {
    const dt = new Date(2e3, 0, i + 1);
    dates[dt.getDay()] = dt;
  }
  const dtf = new Intl.DateTimeFormat(locale, { weekday: format });
  return dates.map((d) => dtf.format(d));
}
function matchWithGroups(pattern, str) {
  const matches = str.match(pattern);
  const groupNames = pattern.toString().match(/<(.+?)>/g);
  if (groupNames == null) {
    throw new RangeError("pattern must contain at least one group");
  }
  return groupNames.map((group) => {
    const groupMatches = group.match(/<(.+)>/);
    return groupMatches[1];
  }).reduce((acc, curr, index) => {
    if (matches && matches.length > index) {
      acc[curr] = matches[index + 1];
    } else {
      acc[curr] = null;
    }
    return acc;
  }, {});
}
function isWebpSupported() {
  return new Promise((resolve) => {
    const image = new Image();
    image.onerror = () => resolve(false);
    image.onload = () => resolve(image.width === 1);
    image.src = "data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAEAAwA0JaQAA3AA/vuUAAA=";
  }).catch(() => false);
}
function isCustomElement(vm) {
  return vm.$root != null && "shadowRoot" in vm.$root.$options;
}
const isDefined = (d) => d !== void 0;
const isNil = (value) => value === null || value === void 0;
function isFragment(vnode) {
  return vnode.type === Fragment;
}
function isTag(vnode) {
  return vnode.type !== Comment && vnode.type !== Text && vnode.type !== Static;
}
function getComponentFromVNode(vnode) {
  if (!vnode) {
    return void 0;
  }
  const { component } = vnode;
  if (!component) {
    return void 0;
  }
  return component.exposed && component.exposeProxy || component.proxy;
}
function copyAppContext(src, dest) {
  const { _context: srcContext } = src;
  const { _context: destContext } = dest;
  destContext.config = srcContext.config;
  destContext.mixins = srcContext.mixins;
  destContext.components = srcContext.components;
  destContext.directives = srcContext.directives;
  destContext.provides = srcContext.provides;
  destContext.optionsCache = srcContext.optionsCache;
  destContext.propsCache = srcContext.propsCache;
  destContext.emitsCache = srcContext.emitsCache;
  if ("__VUE_I18N_SYMBOL__" in src) {
    dest.__VUE_I18N_SYMBOL__ = src.__VUE_I18N_SYMBOL__;
  }
}
const translateTouchAsDragEvent = (event, options) => {
  const { type, target } = options;
  let translateX = 0;
  let translateY = 0;
  if (target != null && target !== event.target) {
    const baseRect = event.target.getBoundingClientRect();
    const targetRect = target.getBoundingClientRect();
    translateX = targetRect.left - baseRect.left;
    translateY = targetRect.top - baseRect.top;
  }
  const touch = event.touches[0] || event.changedTouches[0];
  return new DragEvent(type, {
    dataTransfer: new DataTransfer(),
    bubbles: true,
    screenX: touch.screenX,
    screenY: touch.screenY,
    clientX: touch.clientX + translateX,
    clientY: touch.clientY + translateY,
    ctrlKey: event.ctrlKey,
    shiftKey: event.shiftKey,
    altKey: event.altKey,
    metaKey: event.metaKey
  });
};

const configInjectionKey = Symbol("Buefy Config Component");
function useConfigComponent() {
  return inject(configInjectionKey);
}
var ConfigComponent = {
  getOptions() {
    return config;
  },
  setOptions(options) {
    setOptions(merge(config, options, true));
  }
};

var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
var __hasOwnProp$c = Object.prototype.hasOwnProperty;
var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
var __objRest$3 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp$c.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols$c)
    for (var prop of __getOwnPropSymbols$c(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum$c.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var CompatFallthroughMixin = defineComponent({
  inheritAttrs: false,
  props: {
    compatFallthrough: {
      type: Boolean,
      default: () => config.defaultCompatFallthrough
    }
  },
  computed: {
    rootAttrs() {
      return this.compatFallthrough ? {
        class: this.$attrs.class,
        style: this.$attrs.style,
        id: this.$attrs.id
      } : {};
    },
    fallthroughAttrs() {
      if (this.compatFallthrough) {
        const _a = this.$attrs, { style: _1, class: _2, id: _3 } = _a, rest = __objRest$3(_a, ["style", "class", "id"]);
        return rest;
      } else {
        return this.$attrs;
      }
    }
  }
});

var _sfc_main$S = defineComponent({
  name: "BFieldBody",
  inject: {
    parent: {
      from: "BField",
      default: null
    }
  },
  props: {
    message: {
      type: [String, Array]
    },
    type: {
      type: [String, Object]
    }
  },
  render() {
    let first = true;
    let children = typeof this.$slots.default === "function" ? this.$slots.default() : this.$slots.default;
    if (children != null && children.length === 1 && children[0].type === Fragment) {
      children = children[0].children;
    }
    return h(
      "div",
      { class: "field-body" },
      {
        default: () => {
          return children != null && children.map((element) => {
            if (element.type === Comment || element.type === Text) {
              return element;
            }
            let message;
            if (first) {
              message = this.message;
              first = false;
            }
            const parentField = this.parent;
            return h(
              // parentField.$.type is supposed to be BField
              // it falls back to `resolveComponent('b-field')`
              // but won't work unless `BField` is globally registered
              // should not be a problem as long as `BFieldBody` is properly used
              parentField ? parentField.$.type : resolveComponent("b-field"),
              {
                type: this.type,
                message
              },
              () => element
            );
          });
        }
      }
    );
  }
});

const Field$1 = defineComponent({
  name: "BField",
  components: { BFieldBody: _sfc_main$S },
  provide() {
    return {
      BField: this
    };
  },
  inject: {
    parent: {
      from: "BField",
      default: false
    }
  },
  // Used internally only when using Field in Field
  props: {
    type: {
      type: [String, Object],
      default: void 0
    },
    label: String,
    labelFor: String,
    message: {
      type: [String, Array, Object],
      default: void 0
    },
    grouped: Boolean,
    groupMultiline: Boolean,
    position: String,
    expanded: Boolean,
    horizontal: Boolean,
    addons: {
      type: Boolean,
      default: true
    },
    customClass: String,
    labelPosition: {
      type: String,
      default: () => {
        return config.defaultFieldLabelPosition;
      }
    }
  },
  data() {
    return {
      newType: this.type,
      newMessage: this.message,
      fieldLabelSize: null,
      numberInputClasses: [],
      _isField: true
      // Used internally by Input and Select
    };
  },
  computed: {
    rootClasses() {
      return [
        {
          "is-expanded": this.expanded,
          "is-horizontal": this.horizontal,
          "is-floating-in-label": this.hasLabel && !this.horizontal && this.labelPosition === "inside",
          "is-floating-label": this.hasLabel && !this.horizontal && this.labelPosition === "on-border"
        },
        this.numberInputClasses
      ];
    },
    innerFieldClasses() {
      return [
        this.fieldType(),
        this.newPosition,
        {
          "is-grouped-multiline": this.groupMultiline
        }
      ];
    },
    hasInnerField() {
      return this.grouped || this.groupMultiline || this.hasAddons();
    },
    /*
    * Correct Bulma class for the side of the addon or group.
    *
    * This is not kept like the others (is-small, etc.),
    * because since 'has-addons' is set automatically it
    * doesn't make sense to teach users what addons are exactly.
    */
    newPosition() {
      if (this.position === void 0) return;
      const position = this.position.split("-");
      if (position.length < 1) return;
      const prefix = this.grouped ? "is-grouped-" : "has-addons-";
      if (this.position) return prefix + position[1];
      return void 0;
    },
    /*
    * Formatted message in case it's an array
    * (each element is separated by <br> tag)
    */
    formattedMessage() {
      const parentField = this.parent;
      if (parentField && parentField.hasInnerField) {
        return "";
      }
      if (typeof this.newMessage === "string") {
        return [this.newMessage];
      }
      const messages = [];
      if (Array.isArray(this.newMessage)) {
        this.newMessage.forEach((message) => {
          if (typeof message === "string") {
            messages.push(message);
          } else {
            for (const key in message) {
              if (message[key]) {
                messages.push(key);
              }
            }
          }
        });
      } else {
        for (const key in this.newMessage) {
          if (this.newMessage[key]) {
            messages.push(key);
          }
        }
      }
      return messages.filter((m) => !!m);
    },
    hasLabel() {
      return this.label || this.$slots.label;
    },
    hasMessage() {
      const parentField = this.parent;
      return (!parentField || !parentField.hasInnerField) && this.newMessage || this.$slots.message;
    }
  },
  watch: {
    /*
    * Set internal type when prop change.
    */
    type(value) {
      this.newType = value;
    },
    /*
    * Set internal message when prop change.
    */
    message(value) {
      if (JSON.stringify(value) !== JSON.stringify(this.newMessage)) {
        this.newMessage = value;
      }
    },
    /*
    * Set parent message if we use Field in Field.
    */
    newMessage(value) {
      const parentField = this.parent;
      if (parentField && parentField.hasInnerField) {
        if (!parentField.type) {
          parentField.newType = this.newType;
        }
        if (!parentField.message) {
          parentField.newMessage = value;
        }
      }
    }
  },
  methods: {
    /*
    * Field has addons if there are more than one slot
    * (element / component) in the Field.
    * Or is grouped when prop is set.
    * Is a method to be called when component re-render.
    */
    fieldType() {
      if (this.grouped) return "is-grouped";
      if (this.hasAddons()) return "has-addons";
    },
    hasAddons() {
      let renderedNode = 0;
      if (this.$slots.default) {
        renderedNode = this.$slots.default().reduce((i, node) => isTag(node) ? i + 1 : i, 0);
      }
      return renderedNode > 1 && this.addons && !this.horizontal;
    },
    // called by a number input if it is a direct child.
    wrapNumberinput({ controlsPosition, size }) {
      const classes = ["has-numberinput"];
      if (controlsPosition) {
        classes.push(`has-numberinput-${controlsPosition}`);
      }
      if (size) {
        classes.push(`has-numberinput-${size}`);
      }
      this.numberInputClasses = classes;
    }
  },
  mounted() {
    if (this.horizontal) {
      const elements = this.$el.querySelectorAll(".input, .select, .button, .textarea, .b-slider");
      if (elements.length > 0) {
        this.fieldLabelSize = "is-normal";
      }
    }
  }
});

var _export_sfc = (sfc, props) => {
  const target = sfc.__vccOpts || sfc;
  for (const [key, val] of props) {
    target[key] = val;
  }
  return target;
};

const _hoisted_1$T = ["for"];
const _hoisted_2$J = ["for"];
const _hoisted_3$u = {
  key: 3,
  class: "field-body"
};
function _sfc_render$10(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_field_body = resolveComponent("b-field-body");
  const _component_b_field = resolveComponent("b-field");
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["field", _ctx.rootClasses])
    },
    [
      _ctx.horizontal ? (openBlock(), createElementBlock(
        "div",
        {
          key: 0,
          class: normalizeClass(["field-label", [_ctx.customClass, _ctx.fieldLabelSize]])
        },
        [
          _ctx.hasLabel ? (openBlock(), createElementBlock("label", {
            key: 0,
            for: _ctx.labelFor,
            class: normalizeClass([_ctx.customClass, "label"])
          }, [
            _ctx.$slots.label ? renderSlot(_ctx.$slots, "label", { key: 0 }) : (openBlock(), createElementBlock(
              Fragment,
              { key: 1 },
              [
                createTextVNode(
                  toDisplayString$1(_ctx.label),
                  1
                  /* TEXT */
                )
              ],
              64
              /* STABLE_FRAGMENT */
            ))
          ], 10, _hoisted_1$T)) : createCommentVNode("v-if", true)
        ],
        2
        /* CLASS */
      )) : (openBlock(), createElementBlock(
        Fragment,
        { key: 1 },
        [
          _ctx.hasLabel ? (openBlock(), createElementBlock("label", {
            key: 0,
            for: _ctx.labelFor,
            class: normalizeClass([_ctx.customClass, "label"])
          }, [
            _ctx.$slots.label ? renderSlot(_ctx.$slots, "label", { key: 0 }) : (openBlock(), createElementBlock(
              Fragment,
              { key: 1 },
              [
                createTextVNode(
                  toDisplayString$1(_ctx.label),
                  1
                  /* TEXT */
                )
              ],
              64
              /* STABLE_FRAGMENT */
            ))
          ], 10, _hoisted_2$J)) : createCommentVNode("v-if", true)
        ],
        64
        /* STABLE_FRAGMENT */
      )),
      _ctx.horizontal ? (openBlock(), createBlock(_component_b_field_body, {
        key: 2,
        message: _ctx.newMessage ? _ctx.formattedMessage : "",
        type: _ctx.newType
      }, {
        default: withCtx(() => [
          renderSlot(_ctx.$slots, "default")
        ]),
        _: 3
        /* FORWARDED */
      }, 8, ["message", "type"])) : _ctx.hasInnerField ? (openBlock(), createElementBlock("div", _hoisted_3$u, [
        createVNode(_component_b_field, {
          addons: false,
          type: _ctx.type,
          class: normalizeClass(_ctx.innerFieldClasses)
        }, {
          default: withCtx(() => [
            renderSlot(_ctx.$slots, "default")
          ]),
          _: 3
          /* FORWARDED */
        }, 8, ["type", "class"])
      ])) : renderSlot(_ctx.$slots, "default", { key: 4 }),
      _ctx.hasMessage && !_ctx.horizontal ? (openBlock(), createElementBlock(
        "p",
        {
          key: 5,
          class: normalizeClass(["help", _ctx.newType])
        },
        [
          _ctx.$slots.message ? renderSlot(_ctx.$slots, "message", {
            key: 0,
            messages: _ctx.formattedMessage
          }) : (openBlock(true), createElementBlock(
            Fragment,
            { key: 1 },
            renderList(_ctx.formattedMessage, (mess, i) => {
              return openBlock(), createElementBlock(
                Fragment,
                null,
                [
                  createTextVNode(
                    toDisplayString$1(mess) + " ",
                    1
                    /* TEXT */
                  ),
                  i + 1 < _ctx.formattedMessage.length ? (openBlock(), createElementBlock("br", { key: i })) : createCommentVNode("v-if", true)
                ],
                64
                /* STABLE_FRAGMENT */
              );
            }),
            256
            /* UNKEYED_FRAGMENT */
          ))
        ],
        2
        /* CLASS */
      )) : createCommentVNode("v-if", true)
    ],
    2
    /* CLASS */
  );
}
var Field = /* @__PURE__ */ _export_sfc(Field$1, [["render", _sfc_render$10]]);

const FormElementMixin = defineComponent({
  props: {
    size: String,
    expanded: Boolean,
    loading: Boolean,
    rounded: Boolean,
    icon: String,
    iconPack: String,
    maxlength: [Number, String],
    useHtml5Validation: {
      type: Boolean,
      default: () => config.defaultUseHtml5Validation
    },
    validationMessage: String,
    locale: {
      type: [String, Array],
      default: () => {
        return config.defaultLocale;
      }
    },
    statusIcon: {
      type: Boolean,
      default: () => {
        return config.defaultStatusIcon;
      }
    }
  },
  emits: {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    blur: (event) => true,
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    focus: (event) => true
  },
  data() {
    return {
      isValid: true,
      isFocused: false,
      newIconPack: this.iconPack || config.defaultIconPack,
      // host component must override this
      _elementRef: ""
    };
  },
  computed: {
    /*
     * Find parent Field, max 3 levels deep.
     */
    parentField() {
      let parent = this.$parent;
      for (let i = 0; i < 3; i++) {
        if (parent && !parent.$data._isField) {
          parent = parent.$parent;
        }
      }
      return parent;
    },
    /*
     * Get the type prop from parent if it's a Field.
     */
    statusType() {
      const { newType } = this.parentField || {};
      if (!newType) return;
      if (typeof newType === "string") {
        return newType;
      } else {
        for (const key in newType) {
          if (newType[key]) {
            return key;
          }
        }
      }
      return void 0;
    },
    /*
     * Get the message prop from parent if it's a Field.
     */
    statusMessage() {
      if (!this.parentField) return;
      return this.parentField.newMessage || this.parentField.$slots.message;
    },
    /*
     * Fix icon size for inputs, large was too big
     */
    iconSize() {
      switch (this.size) {
        case "is-small":
          return this.size;
        case "is-medium":
          return;
        case "is-large":
          return this.newIconPack === "mdi" ? "is-medium" : "";
      }
      return void 0;
    }
  },
  methods: {
    /*
     * Focus method that work dynamically depending on the component.
     */
    focus() {
      const el = this.getElement();
      if (el === void 0) return;
      this.$nextTick(() => {
        if (el) el.focus();
      });
    },
    onBlur($event) {
      this.isFocused = false;
      this.$emit("blur", $event);
      this.checkHtml5Validity();
    },
    onFocus($event) {
      this.isFocused = true;
      this.$emit("focus", $event);
    },
    getElement() {
      let el = this.$refs[this.$data._elementRef];
      while (el != null && typeof el === "object" && "$refs" in el) {
        const form = el;
        el = form.$refs[form.$data._elementRef];
      }
      return el;
    },
    setInvalid() {
      const type = "is-danger";
      const message = this.validationMessage || this.getElement().validationMessage;
      this.setValidity(type, message);
    },
    setValidity(type, message) {
      this.$nextTick(() => {
        if (this.parentField) {
          if (!this.parentField.type) {
            this.parentField.newType = type;
          }
          if (!this.parentField.message) {
            this.parentField.newMessage = message;
          }
        }
      });
    },
    /*
     * Check HTML5 validation, set isValid property.
     * If validation fail, send 'is-danger' type,
     * and error message to parent if it's a Field.
     */
    checkHtml5Validity() {
      if (!this.useHtml5Validation) {
        return false;
      }
      const el = this.getElement();
      if (el == null) {
        return false;
      }
      if (!el.checkValidity()) {
        this.setInvalid();
        this.isValid = false;
      } else {
        this.setValidity(null, null);
        this.isValid = true;
      }
      return this.isValid;
    }
  }
});

const mdiIcons = {
  sizes: {
    default: "mdi-24px",
    "is-small": null,
    "is-medium": "mdi-36px",
    "is-large": "mdi-48px"
  },
  iconPrefix: "mdi-"
};
const faIcons = () => {
  const faIconPrefix = config && config.defaultIconComponent ? "" : "fa-";
  return {
    sizes: {
      default: null,
      "is-small": null,
      "is-medium": faIconPrefix + "lg",
      "is-large": faIconPrefix + "2x"
    },
    iconPrefix: faIconPrefix,
    internalIcons: {
      information: "info-circle",
      alert: "exclamation-triangle",
      "alert-circle": "exclamation-circle",
      "chevron-right": "angle-right",
      "chevron-left": "angle-left",
      "chevron-down": "angle-down",
      "eye-off": "eye-slash",
      "menu-down": "caret-down",
      "menu-up": "caret-up",
      "close-circle": "times-circle"
    }
  };
};
const getIcons = () => {
  let icons = {
    mdi: mdiIcons,
    fa: faIcons(),
    fas: faIcons(),
    far: faIcons(),
    fad: faIcons(),
    fab: faIcons(),
    fal: faIcons(),
    "fa-solid": faIcons(),
    "fa-regular": faIcons(),
    "fa-light": faIcons(),
    "fa-thin": faIcons(),
    "fa-duotone": faIcons(),
    "fa-brands": faIcons()
  };
  if (config && config.customIconPacks) {
    icons = merge(icons, config.customIconPacks, true);
  }
  return icons;
};

var _sfc_main$R = defineComponent({
  name: "BIcon",
  props: {
    type: [String, Object],
    component: String,
    pack: String,
    icon: {
      type: String,
      required: true
    },
    size: String,
    customSize: String,
    customClass: String,
    both: Boolean
    // This is used internally to show both MDI and FA icon
  },
  computed: {
    iconConfig() {
      const allIcons = getIcons();
      return allIcons[this.newPack];
    },
    iconPrefix() {
      if (this.iconConfig && this.iconConfig.iconPrefix) {
        return this.iconConfig.iconPrefix;
      }
      return "";
    },
    /*
    * Internal icon name based on the pack.
    * If pack is 'fa', gets the equivalent FA icon name of the MDI,
    * internal icons are always MDI.
    */
    newIcon() {
      return `${this.iconPrefix}${this.getEquivalentIconOf(this.icon)}`;
    },
    newPack() {
      return this.pack || config.defaultIconPack;
    },
    newType() {
      if (!this.type) return;
      let splitType = [];
      if (typeof this.type === "string") {
        splitType = this.type.split("-");
      } else {
        for (const key in this.type) {
          if (this.type[key]) {
            splitType = key.split("-");
            break;
          }
        }
      }
      if (splitType.length <= 1) return;
      const [, ...type] = splitType;
      return `has-text-${type.join("-")}`;
    },
    newCustomSize() {
      return this.customSize || this.customSizeByPack;
    },
    customSizeByPack() {
      if (this.iconConfig && this.iconConfig.sizes) {
        if (this.size && this.iconConfig.sizes[this.size] !== void 0) {
          return this.iconConfig.sizes[this.size];
        } else if (this.iconConfig.sizes.default) {
          return this.iconConfig.sizes.default;
        }
      }
      return null;
    },
    useIconComponent() {
      return this.component || config.defaultIconComponent;
    }
  },
  methods: {
    /*
    * Equivalent icon name of the MDI.
    */
    getEquivalentIconOf(value) {
      if (!this.both) {
        return value;
      }
      if (this.iconConfig == null) {
        return value;
      }
      const maybeInternal = this.iconConfig;
      if (maybeInternal && maybeInternal.internalIcons && maybeInternal.internalIcons[value]) {
        return maybeInternal.internalIcons[value];
      }
      return value;
    }
  }
});

function _sfc_render$$(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "span",
    {
      class: normalizeClass(["icon", [_ctx.newType, _ctx.size]])
    },
    [
      !_ctx.useIconComponent ? (openBlock(), createElementBlock(
        "i",
        {
          key: 0,
          class: normalizeClass([_ctx.newPack, _ctx.newIcon, _ctx.newCustomSize, _ctx.customClass])
        },
        null,
        2
        /* CLASS */
      )) : (openBlock(), createBlock(resolveDynamicComponent(_ctx.useIconComponent), {
        key: 1,
        icon: [_ctx.newPack, _ctx.newIcon],
        size: _ctx.newCustomSize,
        class: normalizeClass([_ctx.customClass])
      }, null, 8, ["icon", "size", "class"]))
    ],
    2
    /* CLASS */
  );
}
var BIcon = /* @__PURE__ */ _export_sfc(_sfc_main$R, [["render", _sfc_render$$]]);

var _sfc_main$Q = defineComponent({
  name: "BInput",
  components: { BIcon },
  mixins: [CompatFallthroughMixin, FormElementMixin],
  props: {
    modelValue: {
      type: [Number, String]
    },
    type: {
      type: String,
      default: "text"
    },
    lazy: {
      type: Boolean,
      default: false
    },
    passwordReveal: Boolean,
    iconClickable: Boolean,
    hasCounter: {
      type: Boolean,
      default: () => config.defaultInputHasCounter
    },
    customClass: {
      type: String,
      default: ""
    },
    iconRight: String,
    iconRightClickable: Boolean,
    iconRightType: String,
    // Native options to use in HTML5 validation
    autocomplete: String
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    "icon-click": (event) => true,
    "icon-right-click": (event) => true,
    "update:modelValue": (value) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      newValue: this.modelValue,
      newType: this.type,
      newAutocomplete: this.autocomplete || config.defaultInputAutocomplete,
      isPasswordVisible: false,
      _elementRef: this.type === "textarea" ? "textarea" : "input"
    };
  },
  computed: {
    computedValue: {
      get() {
        return this.newValue;
      },
      set(value) {
        this.newValue = value;
        this.$emit("update:modelValue", value);
      }
    },
    rootClasses() {
      return [
        this.iconPosition,
        this.size,
        {
          "is-expanded": this.expanded,
          "is-loading": this.loading,
          "is-clearfix": !this.hasMessage
        }
      ];
    },
    inputClasses() {
      return [
        this.statusType,
        this.size,
        { "is-rounded": this.rounded }
      ];
    },
    hasIconRight() {
      return this.passwordReveal || this.loading || this.statusIcon && this.statusTypeIcon || this.iconRight;
    },
    rightIcon() {
      if (this.passwordReveal) {
        return this.passwordVisibleIcon;
      } else if (this.iconRight) {
        return this.iconRight;
      }
      return this.statusTypeIcon;
    },
    rightIconType() {
      if (this.passwordReveal) {
        return "is-primary";
      } else if (this.iconRight) {
        return this.iconRightType || void 0;
      }
      return this.statusType;
    },
    /*
    * Position of the icon or if it's both sides.
    */
    iconPosition() {
      let iconClasses = "";
      if (this.icon) {
        iconClasses += "has-icons-left ";
      }
      if (this.hasIconRight) {
        iconClasses += "has-icons-right";
      }
      return iconClasses;
    },
    /*
    * Icon name (MDI) based on the type.
    */
    statusTypeIcon() {
      switch (this.statusType) {
        case "is-success":
          return "check";
        case "is-danger":
          return "alert-circle";
        case "is-info":
          return "information";
        case "is-warning":
          return "alert";
        default:
          return void 0;
      }
    },
    /*
    * Check if have any message prop from parent if it's a Field.
    */
    hasMessage() {
      return !!this.statusMessage;
    },
    /*
    * Current password-reveal icon name.
    */
    passwordVisibleIcon() {
      return !this.isPasswordVisible ? "eye" : "eye-off";
    },
    /*
    * Get value length
    */
    valueLength() {
      if (typeof this.computedValue === "string") {
        return Array.from(this.computedValue).length;
      } else if (typeof this.computedValue === "number") {
        return this.computedValue.toString().length;
      }
      return 0;
    }
  },
  watch: {
    /*
    * When v-model is changed:
    *   1. Set internal value.
    *   2. Validate it if the value came from outside;
    *      i.e., not equal to computedValue
    */
    modelValue(value) {
      const fromOutside = this.computedValue != value;
      this.newValue = value;
      if (fromOutside) {
        this.$nextTick(() => {
          !this.isValid && this.checkHtml5Validity();
        });
      }
    },
    type(type) {
      this.newType = type;
    }
  },
  methods: {
    /*
    * Toggle the visibility of a password-reveal input
    * by changing the type and focus the input right away.
    */
    togglePasswordVisibility() {
      this.isPasswordVisible = !this.isPasswordVisible;
      this.newType = this.isPasswordVisible ? "text" : "password";
      this.$nextTick(() => {
        this.focus();
      });
    },
    iconClick(emit, event) {
      this.$emit(emit, event);
      this.$nextTick(() => {
        this.focus();
      });
    },
    rightIconClick(event) {
      if (this.passwordReveal) {
        this.togglePasswordVisibility();
      } else if (this.iconRightClickable) {
        this.iconClick("icon-right-click", event);
      }
    },
    onInput() {
      if (!this.lazy) {
        this.revalidate();
      }
    },
    onChange() {
      if (this.lazy) {
        this.revalidate();
      }
    },
    revalidate() {
      !this.isValid && this.checkHtml5Validity();
    }
  }
});

const _hoisted_1$S = ["type", "autocomplete", "maxlength"];
const _hoisted_2$I = ["maxlength"];
const _hoisted_3$t = ["type", "autocomplete", "maxlength"];
const _hoisted_4$l = ["maxlength"];
function _sfc_render$_(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  return openBlock(), createElementBlock(
    "div",
    mergeProps({
      class: ["control", _ctx.rootClasses]
    }, _ctx.rootAttrs),
    [
      _ctx.lazy ? (openBlock(), createElementBlock(
        Fragment,
        { key: 0 },
        [
          _ctx.type !== "textarea" ? withDirectives((openBlock(), createElementBlock("input", mergeProps({
            key: 0,
            ref: "input",
            class: ["input", [_ctx.inputClasses, _ctx.customClass]],
            type: _ctx.newType,
            autocomplete: _ctx.newAutocomplete,
            maxlength: _ctx.maxlength,
            "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.computedValue = $event)
          }, _ctx.fallthroughAttrs, {
            onInput: _cache[1] || (_cache[1] = (...args) => _ctx.onInput && _ctx.onInput(...args)),
            onChange: _cache[2] || (_cache[2] = (...args) => _ctx.onChange && _ctx.onChange(...args)),
            onBlur: _cache[3] || (_cache[3] = (...args) => _ctx.onBlur && _ctx.onBlur(...args)),
            onFocus: _cache[4] || (_cache[4] = (...args) => _ctx.onFocus && _ctx.onFocus(...args))
          }), null, 16, _hoisted_1$S)), [
            [
              vModelDynamic,
              _ctx.computedValue,
              void 0,
              { lazy: true }
            ]
          ]) : withDirectives((openBlock(), createElementBlock("textarea", mergeProps({
            key: 1,
            ref: "textarea",
            class: ["textarea", [_ctx.inputClasses, _ctx.customClass]],
            maxlength: _ctx.maxlength,
            "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => _ctx.computedValue = $event)
          }, _ctx.fallthroughAttrs, {
            onInput: _cache[6] || (_cache[6] = (...args) => _ctx.onInput && _ctx.onInput(...args)),
            onChange: _cache[7] || (_cache[7] = (...args) => _ctx.onChange && _ctx.onChange(...args)),
            onBlur: _cache[8] || (_cache[8] = (...args) => _ctx.onBlur && _ctx.onBlur(...args)),
            onFocus: _cache[9] || (_cache[9] = (...args) => _ctx.onFocus && _ctx.onFocus(...args))
          }), null, 16, _hoisted_2$I)), [
            [
              vModelText,
              _ctx.computedValue,
              void 0,
              { lazy: true }
            ]
          ])
        ],
        64
        /* STABLE_FRAGMENT */
      )) : (openBlock(), createElementBlock(
        Fragment,
        { key: 1 },
        [
          _ctx.type !== "textarea" ? withDirectives((openBlock(), createElementBlock("input", mergeProps({
            key: 0,
            ref: "input",
            class: ["input", [_ctx.inputClasses, _ctx.customClass]],
            type: _ctx.newType,
            autocomplete: _ctx.newAutocomplete,
            maxlength: _ctx.maxlength,
            "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => _ctx.computedValue = $event)
          }, _ctx.fallthroughAttrs, {
            onInput: _cache[11] || (_cache[11] = (...args) => _ctx.onInput && _ctx.onInput(...args)),
            onChange: _cache[12] || (_cache[12] = (...args) => _ctx.onChange && _ctx.onChange(...args)),
            onBlur: _cache[13] || (_cache[13] = (...args) => _ctx.onBlur && _ctx.onBlur(...args)),
            onFocus: _cache[14] || (_cache[14] = (...args) => _ctx.onFocus && _ctx.onFocus(...args))
          }), null, 16, _hoisted_3$t)), [
            [vModelDynamic, _ctx.computedValue]
          ]) : withDirectives((openBlock(), createElementBlock("textarea", mergeProps({
            key: 1,
            ref: "textarea",
            class: ["textarea", [_ctx.inputClasses, _ctx.customClass]],
            maxlength: _ctx.maxlength,
            "onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => _ctx.computedValue = $event)
          }, _ctx.fallthroughAttrs, {
            onInput: _cache[16] || (_cache[16] = (...args) => _ctx.onInput && _ctx.onInput(...args)),
            onChange: _cache[17] || (_cache[17] = (...args) => _ctx.onChange && _ctx.onChange(...args)),
            onBlur: _cache[18] || (_cache[18] = (...args) => _ctx.onBlur && _ctx.onBlur(...args)),
            onFocus: _cache[19] || (_cache[19] = (...args) => _ctx.onFocus && _ctx.onFocus(...args))
          }), null, 16, _hoisted_4$l)), [
            [vModelText, _ctx.computedValue]
          ])
        ],
        64
        /* STABLE_FRAGMENT */
      )),
      _ctx.icon ? (openBlock(), createBlock(_component_b_icon, {
        key: 2,
        class: normalizeClass(["is-left", { "is-clickable": _ctx.iconClickable }]),
        icon: _ctx.icon,
        pack: _ctx.iconPack,
        size: _ctx.iconSize,
        onClick: _cache[20] || (_cache[20] = ($event) => _ctx.iconClick("icon-click", $event))
      }, null, 8, ["class", "icon", "pack", "size"])) : createCommentVNode("v-if", true),
      !_ctx.loading && _ctx.hasIconRight && _ctx.rightIcon ? (openBlock(), createBlock(_component_b_icon, {
        key: 3,
        class: normalizeClass(["is-right", { "is-clickable": _ctx.passwordReveal || _ctx.iconRightClickable }]),
        icon: _ctx.rightIcon,
        pack: _ctx.iconPack,
        size: _ctx.iconSize,
        type: _ctx.rightIconType,
        both: "",
        onClick: _ctx.rightIconClick
      }, null, 8, ["class", "icon", "pack", "size", "type", "onClick"])) : createCommentVNode("v-if", true),
      _ctx.maxlength && _ctx.hasCounter && _ctx.type !== "number" ? (openBlock(), createElementBlock(
        "small",
        {
          key: 4,
          class: normalizeClass(["help counter", { "is-invisible": !_ctx.isFocused }])
        },
        toDisplayString$1(_ctx.valueLength) + " / " + toDisplayString$1(_ctx.maxlength),
        3
        /* TEXT, CLASS */
      )) : createCommentVNode("v-if", true)
    ],
    16
    /* FULL_PROPS */
  );
}
var BInput = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["render", _sfc_render$_]]);

var _sfc_main$P = defineComponent({
  name: "BAutocomplete",
  components: { BInput },
  mixins: [CompatFallthroughMixin, FormElementMixin],
  props: {
    modelValue: [Number, String, null],
    data: {
      type: Array,
      default: () => []
    },
    field: {
      type: String,
      default: "value"
    },
    keepFirst: Boolean,
    clearOnSelect: Boolean,
    openOnFocus: Boolean,
    customFormatter: {
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      type: Function
    },
    checkInfiniteScroll: Boolean,
    keepOpen: Boolean,
    selectOnClickOutside: Boolean,
    clearable: Boolean,
    maxHeight: [String, Number],
    dropdownPosition: {
      type: String,
      default: "auto"
    },
    groupField: String,
    groupOptions: String,
    iconRight: String,
    iconRightClickable: Boolean,
    appendToBody: Boolean,
    type: {
      type: String,
      default: "text"
    },
    confirmKeys: {
      type: Array,
      default: () => ["Tab", "Enter"]
    },
    selectableHeader: Boolean,
    selectableFooter: Boolean,
    // Native options to use in HTML5 validation
    autocomplete: String
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any */
    active: (active) => true,
    blur: (event) => true,
    focus: (event) => true,
    "icon-click": (event) => true,
    "icon-right-click": (event) => true,
    "infinite-scroll": () => true,
    select: (selected, event) => true,
    "select-footer": (event) => true,
    "select-header": (event) => true,
    typing: (value) => true,
    "update:modelValue": (value) => true
    /* eslint-enable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any */
  },
  data() {
    return {
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      selected: null,
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      hovered: null,
      headerHovered: null,
      footerHovered: null,
      isActive: false,
      newValue: this.modelValue,
      newAutocomplete: this.autocomplete || "off",
      ariaAutocomplete: this.keepFirst ? "both" : "list",
      isListInViewportVertically: true,
      hasFocus: false,
      style: {},
      _isAutocomplete: true,
      _elementRef: "input",
      _bodyEl: void 0,
      // Used to append to body
      timeOutID: void 0
    };
  },
  computed: {
    computedData() {
      const { groupField, groupOptions } = this;
      if (groupField) {
        if (groupOptions) {
          const newData = [];
          this.data.forEach((option) => {
            const group = getValueByPath(option, groupField);
            const items = getValueByPath(option, groupOptions);
            newData.push({ group, items });
          });
          return newData;
        } else {
          const tmp = {};
          this.data.forEach((option) => {
            const group = getValueByPath(option, groupField);
            if (!tmp[group]) tmp[group] = [];
            tmp[group].push(option);
          });
          const newData = [];
          Object.keys(tmp).forEach((group) => {
            newData.push({ group, items: tmp[group] });
          });
          return newData;
        }
      }
      return [{ items: this.data }];
    },
    isEmpty() {
      if (!this.computedData) return true;
      return !this.computedData.some(
        (element) => element.items && element.items.length
      );
    },
    /*
     * White-listed items to not close when clicked.
     * Add input, dropdown and all children.
     */
    whiteList() {
      var _a;
      this.computedData;
      const whiteList = [];
      whiteList.push(this.$refs.input.$el.querySelector("input"));
      whiteList.push(this.$refs.dropdown);
      if (this.$refs.dropdown != null) {
        const children = this.$refs.dropdown.querySelectorAll("*");
        for (const child of children) {
          whiteList.push(child);
        }
      }
      if (((_a = this.$parent) == null ? void 0 : _a.$data)._isTaginput) {
        whiteList.push(this.$parent.$el);
        const tagInputChildren = this.$parent.$el.querySelectorAll("*");
        for (const tagInputChild of tagInputChildren) {
          whiteList.push(tagInputChild);
        }
      }
      return whiteList;
    },
    /*
     * Check if exists default slot
     */
    hasDefaultSlot() {
      return !!this.$slots.default;
    },
    /*
     * Check if exists group slot
     */
    hasGroupSlot() {
      return !!this.$slots.group;
    },
    /*
     * Check if exists "empty" slot
     */
    hasEmptySlot() {
      return !!this.$slots.empty;
    },
    /*
     * Check if exists "header" slot
     */
    hasHeaderSlot() {
      return !!this.$slots.header;
    },
    /*
     * Check if exists "footer" slot
     */
    hasFooterSlot() {
      return !!this.$slots.footer;
    },
    /*
     * Apply dropdownPosition property
     */
    isOpenedTop() {
      return this.dropdownPosition === "top" || this.dropdownPosition === "auto" && !this.isListInViewportVertically;
    },
    newIconRight() {
      if (this.clearable && this.newValue) {
        return "close-circle";
      }
      return this.iconRight;
    },
    newIconRightClickable() {
      if (this.clearable) {
        return true;
      }
      return this.iconRightClickable;
    },
    contentStyle() {
      return {
        maxHeight: toCssWidth(this.maxHeight) || void 0
      };
    }
  },
  watch: {
    /*
     * When dropdown is toggled, check the visibility to know when
     * to open upwards.
     */
    isActive(active) {
      if (this.dropdownPosition === "auto") {
        if (active) {
          this.calcDropdownInViewportVertical();
        } else {
          this.timeOutID = setTimeout(() => {
            this.calcDropdownInViewportVertical();
          }, 100);
        }
      }
      this.$nextTick(() => {
        this.$emit("active", active);
      });
    },
    /*
     * When checkInfiniteScroll property changes scroll event should be removed or added
     */
    checkInfiniteScroll(checkInfiniteScroll) {
      if (!this.$refs.dropdown) return;
      const list = this.$refs.dropdown.querySelector(
        ".dropdown-content"
      );
      if (!list) return;
      if (checkInfiniteScroll === true) {
        list.addEventListener(
          "scroll",
          this.checkIfReachedTheEndOfScroll
        );
        return;
      }
      list.removeEventListener(
        "scroll",
        this.checkIfReachedTheEndOfScroll
      );
    },
    /*
     * When updating input's value
     *   1. Emit changes
     *   2. If value isn't the same as selected, set null
     *   3. Close dropdown if value is clear or else open it
     */
    newValue(value) {
      this.$emit("update:modelValue", value);
      const currentValue = this.getValue(this.selected);
      if (currentValue !== void 0 && currentValue !== null && currentValue !== value) {
        this.setSelected(null, false);
      }
      if (this.hasFocus && (!this.openOnFocus || value !== "")) {
        this.isActive = value !== "" && value !== void 0 && value !== null;
      }
    },
    /*
     * When v-model is changed:
     *   1. Update internal value.
     *   2. If it's invalid, validate again.
     */
    modelValue(value) {
      this.newValue = value;
    },
    keepFirst(value) {
      this.ariaAutocomplete = value ? "both" : "list";
    },
    /*
     * Select first option if "keep-first
     */
    data() {
      if (this.keepFirst) {
        this.$nextTick(() => {
          if (this.isActive) {
            this.selectFirstOption(this.computedData);
          } else {
            this.setHovered(null);
          }
        });
      } else {
        if (this.hovered) {
          const hoveredValue = this.getValue(this.hovered);
          const data = this.computedData.map((d) => d.items).reduce((a, b) => [...a, ...b], []);
          if (!data.some((d) => this.getValue(d) === hoveredValue)) {
            this.setHovered(null);
          }
        }
      }
    },
    /*
     * When appendToBody property changes, handle the transition properly
     */
    appendToBody(newValue, oldValue) {
      if (newValue && !oldValue) {
        if (this.isActive && this.$refs.dropdown && !this.$data._bodyEl) {
          this.$data._bodyEl = createAbsoluteElement(
            this.$refs.dropdown
          );
          this.updateAppendToBody();
        }
      } else if (!newValue && oldValue) {
        if (this.$data._bodyEl) {
          removeElement(this.$data._bodyEl);
          this.$data._bodyEl = void 0;
        }
      }
    }
  },
  methods: {
    /*
     * Set which option is currently hovered.
     */
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    setHovered(option) {
      if (option === void 0) return;
      this.hovered = option;
    },
    /*
     * Set which option is currently selected, update v-model,
     * update input value and close dropdown.
     */
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    setSelected(option, closeDropdown = true, event) {
      if (option === void 0) return;
      this.selected = option;
      this.$emit("select", this.selected, event);
      if (this.selected !== null) {
        if (this.clearOnSelect) {
          this.newValue = "";
        } else {
          this.newValue = this.getValue(this.selected);
        }
        this.setHovered(null);
      }
      closeDropdown && this.$nextTick(() => {
        this.isActive = false;
      });
      this.checkValidity();
    },
    /*
     * Select first option
     */
    selectFirstOption(computedData) {
      this.$nextTick(() => {
        const nonEmptyElements = computedData.filter(
          (element) => element.items && element.items.length
        );
        if (nonEmptyElements.length) {
          const option = nonEmptyElements[0].items[0];
          this.setHovered(option);
        } else {
          this.setHovered(null);
        }
      });
    },
    /*
     * Find index of hovered item in data array by comparing display values
     * instead of object references. This fixes the bug with computed data
     * where proxy objects cause indexOf to fail.
     */
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    findHoveredIndex(data) {
      if (this.hovered === null || this.hovered === void 0) {
        return -1;
      }
      const exactIndex = data.indexOf(this.hovered);
      if (exactIndex !== -1) {
        return exactIndex;
      }
      const hoveredValue = this.getValue(this.hovered);
      if (hoveredValue === null || hoveredValue === void 0) {
        return -1;
      }
      return data.findIndex((item) => {
        if (item === null || item === void 0) {
          return hoveredValue === null || hoveredValue === void 0;
        }
        return this.getValue(item) === hoveredValue;
      });
    },
    keydown(event) {
      const { key } = event;
      if (key === "Enter") event.preventDefault();
      if (key === "Escape" || key === "Tab") {
        this.isActive = false;
      }
      if (this.confirmKeys.indexOf(key) >= 0) {
        if (key === ",") event.preventDefault();
        const closeDropdown = !this.keepOpen || key === "Tab";
        if (this.hovered === null) {
          this.checkIfHeaderOrFooterSelected(
            event,
            null,
            closeDropdown
          );
          return;
        }
        this.setSelected(this.hovered, closeDropdown, event);
      }
    },
    selectHeaderOrFoterByClick(event, origin) {
      this.checkIfHeaderOrFooterSelected(event, { origin });
    },
    /*
     * Check if header or footer was selected.
     */
    checkIfHeaderOrFooterSelected(event, triggerClick, closeDropdown = true) {
      if (this.selectableHeader && (this.headerHovered || triggerClick && triggerClick.origin === "header")) {
        this.$emit("select-header", event);
        this.headerHovered = false;
        if (triggerClick) this.setHovered(null);
        if (closeDropdown) this.isActive = false;
      }
      if (this.selectableFooter && (this.footerHovered || triggerClick && triggerClick.origin === "footer")) {
        this.$emit("select-footer", event);
        this.footerHovered = false;
        if (triggerClick) this.setHovered(null);
        if (closeDropdown) this.isActive = false;
      }
    },
    /*
     * Close dropdown if clicked outside.
     */
    clickedOutside(event) {
      const target = isCustomElement(this) ? event.composedPath()[0] : event.target;
      if (!this.hasFocus && this.whiteList.indexOf(target) < 0) {
        if (this.keepFirst && this.hovered && this.selectOnClickOutside) {
          this.setSelected(this.hovered, true);
        } else {
          this.isActive = false;
        }
      }
    },
    /*
     * Return display text for the input.
     * If object, get value from path, or else just the value.
     */
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    getValue(option) {
      if (option === null) return;
      if (typeof this.customFormatter !== "undefined") {
        return this.customFormatter(option);
      }
      return typeof option === "object" ? getValueByPath(option, this.field) : option;
    },
    /*
     * Check if the scroll list inside the dropdown
     * reached it's end.
     */
    checkIfReachedTheEndOfScroll() {
      const list = this.$refs.dropdown.querySelector(
        ".dropdown-content"
      );
      const footerHeight = this.hasFooterSlot ? list.querySelectorAll("div.dropdown-footer")[0].clientHeight : 0;
      if (list.clientHeight !== list.scrollHeight && list.scrollTop + list.parentElement.clientHeight + footerHeight >= list.scrollHeight) {
        this.$emit("infinite-scroll");
      }
    },
    /*
     * Calculate if the dropdown is vertically visible when activated,
     * otherwise it is openened upwards.
     */
    calcDropdownInViewportVertical() {
      this.$nextTick(() => {
        var _a;
        if (this.$refs.dropdown == null) return;
        const rect = this.$refs.dropdown.getBoundingClientRect();
        this.isListInViewportVertically = rect.top >= 0 && rect.bottom <= ((window == null ? void 0 : window.innerHeight) || ((_a = document == null ? void 0 : document.documentElement) == null ? void 0 : _a.clientHeight));
        if (this.appendToBody) {
          this.updateAppendToBody();
        }
      });
    },
    /*
     * Arrows keys listener.
     * If dropdown is active, set hovered option, or else just open.
     */
    keyArrows(direction) {
      const sum = direction === "down" ? 1 : -1;
      if (this.isActive) {
        const data = this.computedData.map((d) => d.items).reduce((a, b) => [...a, ...b], []);
        if (this.hasHeaderSlot && this.selectableHeader) {
          data.unshift(void 0);
        }
        if (this.hasFooterSlot && this.selectableFooter) {
          data.push(void 0);
        }
        let index;
        if (this.headerHovered) {
          index = 0 + sum;
        } else if (this.footerHovered) {
          index = data.length - 1 + sum;
        } else {
          index = this.findHoveredIndex(data) + sum;
        }
        index = index > data.length - 1 ? data.length - 1 : index;
        index = index < 0 ? 0 : index;
        this.footerHovered = false;
        this.headerHovered = false;
        this.setHovered(data[index] !== void 0 ? data[index] : null);
        if (this.hasFooterSlot && this.selectableFooter && index === data.length - 1) {
          this.footerHovered = true;
        }
        if (this.hasHeaderSlot && this.selectableHeader && index === 0) {
          this.headerHovered = true;
        }
        const list = this.$refs.dropdown.querySelector(
          ".dropdown-content"
        );
        let querySelectorText = "a.dropdown-item:not(.is-disabled)";
        if (this.hasHeaderSlot && this.selectableHeader) {
          querySelectorText += ",div.dropdown-header";
        }
        if (this.hasFooterSlot && this.selectableFooter) {
          querySelectorText += ",div.dropdown-footer";
        }
        const element = list.querySelectorAll(querySelectorText)[index];
        if (!element) return;
        const visMin = list.scrollTop;
        const visMax = list.scrollTop + list.clientHeight - element.clientHeight;
        if (element.offsetTop < visMin) {
          list.scrollTop = element.offsetTop;
        } else if (element.offsetTop >= visMax) {
          list.scrollTop = element.offsetTop - list.clientHeight + element.clientHeight;
        }
      } else {
        this.isActive = true;
      }
    },
    /*
     * Focus listener.
     * If value is the same as selected, select all text.
     */
    focused(event) {
      if (this.getValue(this.selected) === this.newValue) {
        this.$el.querySelector("input").select();
      }
      if (this.openOnFocus) {
        this.isActive = true;
        if (this.keepFirst) {
          this.selectFirstOption(this.computedData);
        }
      }
      this.hasFocus = true;
      this.$emit("focus", event);
    },
    /*
     * Blur listener.
     */
    onBlur(event) {
      this.hasFocus = false;
      this.$emit("blur", event);
    },
    onInput() {
      const currentValue = this.getValue(this.selected);
      if (currentValue !== void 0 && currentValue !== null && currentValue === this.newValue) {
        return;
      }
      this.$emit("typing", this.newValue);
      this.checkValidity();
    },
    rightIconClick(event) {
      if (this.clearable) {
        this.newValue = "";
        this.setSelected(null, false);
        if (this.openOnFocus) {
          this.$refs.input.$el.focus();
        }
      } else {
        this.$emit("icon-right-click", event);
      }
    },
    checkValidity() {
      if (this.useHtml5Validation) {
        this.$nextTick(() => {
          this.checkHtml5Validity();
        });
      }
    },
    updateAppendToBody() {
      const dropdownMenu = this.$refs.dropdown;
      const trigger = this.$parent.$data._isTaginput ? this.$parent.$el : this.$refs.input.$el;
      if (dropdownMenu && trigger) {
        if (!this.$data._bodyEl) {
          this.$data._bodyEl = createAbsoluteElement(dropdownMenu);
        }
        const root = this.$data._bodyEl;
        root.classList.forEach((item) => root.classList.remove(item));
        root.classList.add("autocomplete");
        root.classList.add("control");
        if (this.expanded) {
          root.classList.add("is-expanded");
        }
        const rect = trigger.getBoundingClientRect();
        let top = rect.top + window.scrollY;
        const left = rect.left + window.scrollX;
        if (!this.isOpenedTop) {
          top += trigger.clientHeight;
        } else {
          top -= dropdownMenu.clientHeight;
        }
        this.style = {
          position: "absolute",
          top: `${top}px`,
          left: `${left}px`,
          width: `${trigger.clientWidth}px`,
          maxWidth: `${trigger.clientWidth}px`,
          zIndex: "99"
        };
      }
    }
  },
  created() {
    if (typeof window !== "undefined") {
      document.addEventListener("click", this.clickedOutside);
      if (this.dropdownPosition === "auto") {
        window.addEventListener(
          "resize",
          this.calcDropdownInViewportVertical
        );
      }
      if (this.appendToBody) {
        window.addEventListener(
          "scroll",
          this.calcDropdownInViewportVertical
        );
      }
    }
  },
  mounted() {
    if (this.checkInfiniteScroll && this.$refs.dropdown && this.$refs.dropdown.querySelector(".dropdown-content")) {
      const list = this.$refs.dropdown.querySelector(
        ".dropdown-content"
      );
      list.addEventListener("scroll", this.checkIfReachedTheEndOfScroll);
    }
    if (this.appendToBody) {
      this.$data._bodyEl = createAbsoluteElement(
        this.$refs.dropdown
      );
      this.updateAppendToBody();
    }
  },
  beforeUnmount() {
    if (typeof window !== "undefined") {
      document.removeEventListener("click", this.clickedOutside);
      if (this.dropdownPosition === "auto") {
        window.removeEventListener(
          "resize",
          this.calcDropdownInViewportVertical
        );
      }
      if (this.appendToBody) {
        window.removeEventListener(
          "scroll",
          this.calcDropdownInViewportVertical
        );
      }
    }
    if (this.checkInfiniteScroll && this.$refs.dropdown && this.$refs.dropdown.querySelector(".dropdown-content")) {
      const list = this.$refs.dropdown.querySelector(
        ".dropdown-content"
      );
      list.removeEventListener(
        "scroll",
        this.checkIfReachedTheEndOfScroll
      );
    }
    if (this.appendToBody && this.$data._bodyEl) {
      removeElement(this.$data._bodyEl);
    }
    clearTimeout(this.timeOutID);
  }
});

const _hoisted_1$R = {
  key: 1,
  class: "has-text-weight-bold"
};
const _hoisted_2$H = ["onClick"];
const _hoisted_3$s = { key: 1 };
const _hoisted_4$k = {
  key: 1,
  class: "dropdown-item is-disabled"
};
function _sfc_render$Z(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_input = resolveComponent("b-input");
  return openBlock(), createElementBlock(
    "div",
    mergeProps({
      class: ["autocomplete control", { "is-expanded": _ctx.expanded }]
    }, _ctx.rootAttrs),
    [
      createVNode(_component_b_input, mergeProps({
        modelValue: _ctx.newValue,
        "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.newValue = $event),
        ref: "input",
        type: _ctx.type,
        size: _ctx.size,
        loading: _ctx.loading,
        rounded: _ctx.rounded,
        icon: _ctx.icon,
        "icon-right": _ctx.newIconRight,
        "icon-right-clickable": _ctx.newIconRightClickable,
        "icon-pack": _ctx.iconPack,
        maxlength: _ctx.maxlength,
        autocomplete: _ctx.newAutocomplete,
        "use-html5-validation": false,
        "aria-autocomplete": _ctx.ariaAutocomplete
      }, _ctx.fallthroughAttrs, {
        "onUpdate:modelValue": _ctx.onInput,
        onFocus: _ctx.focused,
        onBlur: _ctx.onBlur,
        onKeydown: [
          _ctx.keydown,
          _cache[1] || (_cache[1] = withKeys(withModifiers(($event) => _ctx.keyArrows("up"), ["prevent"]), ["up"])),
          _cache[2] || (_cache[2] = withKeys(withModifiers(($event) => _ctx.keyArrows("down"), ["prevent"]), ["down"]))
        ],
        onIconRightClick: _ctx.rightIconClick,
        onIconClick: _cache[3] || (_cache[3] = (event) => _ctx.$emit("icon-click", event))
      }), null, 16, ["modelValue", "type", "size", "loading", "rounded", "icon", "icon-right", "icon-right-clickable", "icon-pack", "maxlength", "autocomplete", "aria-autocomplete", "onUpdate:modelValue", "onFocus", "onBlur", "onKeydown", "onIconRightClick"]),
      createVNode(Transition, {
        name: "fade",
        persisted: ""
      }, {
        default: withCtx(() => [
          withDirectives(createBaseVNode(
            "div",
            {
              class: normalizeClass(["dropdown dropdown-menu", { "is-opened-top": _ctx.isOpenedTop && !_ctx.appendToBody }]),
              style: normalizeStyle(_ctx.style),
              ref: "dropdown"
            },
            [
              withDirectives(createBaseVNode(
                "div",
                {
                  class: "dropdown-content",
                  style: normalizeStyle(_ctx.contentStyle)
                },
                [
                  _ctx.hasHeaderSlot ? (openBlock(), createElementBlock(
                    "div",
                    {
                      key: 0,
                      class: normalizeClass(["dropdown-item dropdown-header", { "is-hovered": _ctx.headerHovered }]),
                      role: "button",
                      tabindex: "0",
                      onClick: _cache[4] || (_cache[4] = ($event) => _ctx.selectHeaderOrFoterByClick($event, "header"))
                    },
                    [
                      renderSlot(_ctx.$slots, "header")
                    ],
                    2
                    /* CLASS */
                  )) : createCommentVNode("v-if", true),
                  (openBlock(true), createElementBlock(
                    Fragment,
                    null,
                    renderList(_ctx.computedData, (element, groupindex) => {
                      return openBlock(), createElementBlock(
                        Fragment,
                        null,
                        [
                          element.group ? (openBlock(), createElementBlock("div", {
                            key: groupindex + "group",
                            class: "dropdown-item"
                          }, [
                            _ctx.hasGroupSlot ? renderSlot(_ctx.$slots, "group", {
                              key: 0,
                              group: element.group,
                              index: groupindex
                            }) : (openBlock(), createElementBlock(
                              "span",
                              _hoisted_1$R,
                              toDisplayString$1(element.group),
                              1
                              /* TEXT */
                            ))
                          ])) : createCommentVNode("v-if", true),
                          (openBlock(true), createElementBlock(
                            Fragment,
                            null,
                            renderList(element.items, (option, index) => {
                              return openBlock(), createElementBlock("a", {
                                key: groupindex + ":" + index,
                                class: normalizeClass(["dropdown-item", { "is-hovered": option === _ctx.hovered }]),
                                role: "button",
                                tabindex: "0",
                                onClick: withModifiers(($event) => _ctx.setSelected(option, !_ctx.keepOpen, $event), ["stop"])
                              }, [
                                _ctx.hasDefaultSlot ? renderSlot(_ctx.$slots, "default", {
                                  key: 0,
                                  option,
                                  index
                                }) : (openBlock(), createElementBlock(
                                  "span",
                                  _hoisted_3$s,
                                  toDisplayString$1(_ctx.getValue(option)),
                                  1
                                  /* TEXT */
                                ))
                              ], 10, _hoisted_2$H);
                            }),
                            128
                            /* KEYED_FRAGMENT */
                          ))
                        ],
                        64
                        /* STABLE_FRAGMENT */
                      );
                    }),
                    256
                    /* UNKEYED_FRAGMENT */
                  )),
                  _ctx.isEmpty && _ctx.hasEmptySlot ? (openBlock(), createElementBlock("div", _hoisted_4$k, [
                    renderSlot(_ctx.$slots, "empty")
                  ])) : createCommentVNode("v-if", true),
                  _ctx.hasFooterSlot ? (openBlock(), createElementBlock(
                    "div",
                    {
                      key: 2,
                      class: normalizeClass(["dropdown-item dropdown-footer", { "is-hovered": _ctx.footerHovered }]),
                      role: "button",
                      tabindex: "0",
                      onClick: _cache[5] || (_cache[5] = ($event) => _ctx.selectHeaderOrFoterByClick($event, "footer"))
                    },
                    [
                      renderSlot(_ctx.$slots, "footer")
                    ],
                    2
                    /* CLASS */
                  )) : createCommentVNode("v-if", true)
                ],
                4
                /* STYLE */
              ), [
                [vShow, _ctx.isActive]
              ])
            ],
            6
            /* CLASS, STYLE */
          ), [
            [vShow, _ctx.isActive && (!_ctx.isEmpty || _ctx.hasEmptySlot || _ctx.hasHeaderSlot || _ctx.hasFooterSlot)]
          ])
        ]),
        _: 3
        /* FORWARDED */
      })
    ],
    16
    /* FULL_PROPS */
  );
}
var BAutocomplete = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["render", _sfc_render$Z]]);

const registerComponent = (Vue, component, name) => {
  const componentName = name || component.name;
  if (componentName == null) {
    throw new Error("Buefy.registerComponent: missing component name");
  }
  Vue.component(componentName, component);
};
const registerComponentProgrammatic = (Vue, property, component, injectionKey) => {
  if (!Vue.config.globalProperties.$buefy) Vue.config.globalProperties.$buefy = {};
  Vue.config.globalProperties.$buefy[property] = component;
  Vue.provide(injectionKey, component);
};

const Plugin$F = {
  install(Vue) {
    registerComponent(Vue, BAutocomplete);
  }
};

var _sfc_main$O = defineComponent({
  name: "BBreadcrumb",
  props: {
    align: {
      type: String,
      default: () => {
        return config.defaultBreadcrumbAlign;
      }
    },
    separator: {
      type: String,
      default: () => {
        return config.defaultBreadcrumbSeparator;
      }
    },
    size: {
      type: String,
      default: () => {
        return config.defaultBreadcrumbSize;
      }
    }
  },
  computed: {
    breadcrumbClasses() {
      return ["breadcrumb", this.align, this.separator, this.size];
    }
  }
});

function _sfc_render$Y(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "nav",
    {
      class: normalizeClass(_ctx.breadcrumbClasses)
    },
    [
      createBaseVNode("ul", null, [
        renderSlot(_ctx.$slots, "default")
      ])
    ],
    2
    /* CLASS */
  );
}
var Breadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["render", _sfc_render$Y]]);

var _sfc_main$N = defineComponent({
  name: "BBreadcrumbItem",
  mixins: [CompatFallthroughMixin],
  props: {
    tag: {
      type: [String, Object],
      default: () => {
        return config.defaultBreadcrumbTag;
      }
    },
    active: Boolean
  }
});

function _sfc_render$X(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "li",
    mergeProps({
      class: { "is-active": _ctx.active }
    }, _ctx.rootAttrs),
    [
      (openBlock(), createBlock(
        resolveDynamicComponent(_ctx.tag),
        normalizeProps(guardReactiveProps(_ctx.fallthroughAttrs)),
        {
          default: withCtx(() => [
            renderSlot(_ctx.$slots, "default")
          ]),
          _: 3
          /* FORWARDED */
        },
        16
        /* FULL_PROPS */
      ))
    ],
    16
    /* FULL_PROPS */
  );
}
var BreadcrumbItem = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["render", _sfc_render$X]]);

const Plugin$E = {
  install(Vue) {
    registerComponent(Vue, Breadcrumb);
    registerComponent(Vue, BreadcrumbItem);
  }
};

const NATIVE_TYPES = [
  "button",
  "submit",
  "reset"
];
var _sfc_main$M = defineComponent({
  name: "BButton",
  components: { BIcon },
  inheritAttrs: false,
  props: {
    type: [String, Object],
    size: String,
    label: String,
    iconPack: String,
    iconLeft: String,
    iconRight: String,
    rounded: {
      type: Boolean,
      default: () => {
        return config.defaultButtonRounded;
      }
    },
    loading: Boolean,
    outlined: Boolean,
    expanded: Boolean,
    inverted: Boolean,
    focused: Boolean,
    active: Boolean,
    hovered: Boolean,
    selected: Boolean,
    nativeType: {
      type: String,
      default: "button",
      validator: (value) => {
        return NATIVE_TYPES.indexOf(value) >= 0;
      }
    },
    tag: {
      type: [String, Object],
      default: "button",
      validator: (value) => {
        return typeof value === "object" || config.defaultLinkTags.indexOf(value) >= 0;
      }
    }
  },
  computed: {
    computedTag() {
      if (this.$attrs.disabled !== void 0 && this.$attrs.disabled !== false) {
        return "button";
      }
      return this.tag;
    },
    iconSize() {
      if (!this.size || this.size === "is-medium") {
        return "is-small";
      } else if (this.size === "is-large") {
        return "is-medium";
      }
      return this.size;
    }
  }
});

const _hoisted_1$Q = { key: 1 };
const _hoisted_2$G = { key: 2 };
function _sfc_render$W(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  return openBlock(), createBlock(resolveDynamicComponent(_ctx.computedTag), mergeProps({ class: "button" }, _ctx.$attrs, {
    type: typeof _ctx.computedTag === "string" && ["button", "input"].includes(_ctx.computedTag) ? _ctx.nativeType : void 0,
    class: [_ctx.size, _ctx.type, {
      "is-rounded": _ctx.rounded,
      "is-loading": _ctx.loading,
      "is-outlined": _ctx.outlined,
      "is-fullwidth": _ctx.expanded,
      "is-inverted": _ctx.inverted,
      "is-focused": _ctx.focused,
      "is-active": _ctx.active,
      "is-hovered": _ctx.hovered,
      "is-selected": _ctx.selected
    }]
  }), {
    default: withCtx(() => [
      _ctx.iconLeft ? (openBlock(), createBlock(_component_b_icon, {
        key: 0,
        pack: _ctx.iconPack,
        icon: _ctx.iconLeft,
        size: _ctx.iconSize
      }, null, 8, ["pack", "icon", "size"])) : createCommentVNode("v-if", true),
      _ctx.label ? (openBlock(), createElementBlock(
        "span",
        _hoisted_1$Q,
        toDisplayString$1(_ctx.label),
        1
        /* TEXT */
      )) : _ctx.$slots.default ? (openBlock(), createElementBlock("span", _hoisted_2$G, [
        renderSlot(_ctx.$slots, "default")
      ])) : createCommentVNode("v-if", true),
      _ctx.iconRight ? (openBlock(), createBlock(_component_b_icon, {
        key: 3,
        pack: _ctx.iconPack,
        icon: _ctx.iconRight,
        size: _ctx.iconSize
      }, null, 8, ["pack", "icon", "size"])) : createCommentVNode("v-if", true)
    ]),
    _: 3
    /* FORWARDED */
  }, 16, ["type", "class"]);
}
var BButton = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["render", _sfc_render$W]]);

const Plugin$D = {
  install(Vue) {
    registerComponent(Vue, BButton);
  }
};

var __defProp$b = Object.defineProperty;
var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
var __hasOwnProp$b = Object.prototype.hasOwnProperty;
var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$b = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp$b.call(b, prop))
      __defNormalProp$b(a, prop, b[prop]);
  if (__getOwnPropSymbols$b)
    for (var prop of __getOwnPropSymbols$b(b)) {
      if (__propIsEnum$b.call(b, prop))
        __defNormalProp$b(a, prop, b[prop]);
    }
  return a;
};
const items = 1;
const sorted$1 = 3;
const Sorted$1 = sorted$1;
var ProviderParentMixin = (itemName, flags) => {
  const mixin = {
    provide() {
      return {
        ["b" + itemName]: this
      };
    }
  };
  if (hasFlag(flags, items)) {
    mixin.data = function() {
      return __spreadValues$b({
        childItems: []
      }, hasFlag(flags, sorted$1) ? { nextIndex: 0 } : {});
    };
    mixin.methods = {
      _registerItem(item) {
        if (hasFlag(flags, sorted$1)) {
          item.dynamicIndex = this.nextIndex;
          ++this.nextIndex;
        }
        this.childItems.push(item);
      },
      _unregisterItem(item) {
        this.childItems = this.childItems.filter((i) => i.uniqueValue !== item.uniqueValue);
      }
    };
    if (hasFlag(flags, sorted$1)) {
      mixin.computed = {
        /*
         * When items are added/removed sort them according to their position
         */
        sortedItems() {
          return this.childItems.slice().sort((i1, i2) => {
            return i1.index - i2.index;
          });
        }
      };
    }
  }
  return mixin;
};

var _sfc_main$L = defineComponent({
  name: "BCarousel",
  components: {
    BIcon
  },
  mixins: [ProviderParentMixin("carousel", Sorted$1)],
  props: {
    modelValue: {
      type: Number,
      default: 0
    },
    animated: {
      type: String,
      default: "slide"
    },
    interval: Number,
    hasDrag: {
      type: Boolean,
      default: true
    },
    autoplay: {
      type: Boolean,
      default: true
    },
    pauseHover: {
      type: Boolean,
      default: true
    },
    pauseInfo: {
      type: Boolean,
      default: true
    },
    pauseInfoType: {
      type: String,
      default: "is-white"
    },
    pauseText: {
      type: String,
      default: "Pause"
    },
    arrow: {
      type: Boolean,
      default: true
    },
    arrowHover: {
      type: Boolean,
      default: true
    },
    repeat: {
      type: Boolean,
      default: true
    },
    iconPack: String,
    iconSize: String,
    iconPrev: {
      type: String,
      default: () => {
        return config.defaultIconPrev;
      }
    },
    iconNext: {
      type: String,
      default: () => {
        return config.defaultIconNext;
      }
    },
    indicator: {
      type: Boolean,
      default: true
    },
    indicatorBackground: Boolean,
    indicatorCustom: Boolean,
    indicatorCustomSize: {
      type: String,
      default: "is-small"
    },
    indicatorInside: {
      type: Boolean,
      default: true
    },
    indicatorMode: {
      type: String,
      default: "click"
    },
    indicatorPosition: {
      type: String,
      default: "is-bottom"
    },
    indicatorStyle: {
      type: String,
      default: "is-dots"
    },
    overlay: Boolean,
    progress: Boolean,
    progressType: {
      type: String,
      default: "is-primary"
    },
    withCarouselList: Boolean
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    change: (_index) => true,
    click: () => true,
    "update:modelValue": (_value) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      transition: "next",
      activeChild: this.modelValue || 0,
      isPause: false,
      dragX: false,
      timer: void 0
    };
  },
  computed: {
    indicatorClasses() {
      return [
        {
          "has-background": this.indicatorBackground,
          "has-custom": this.indicatorCustom,
          "is-inside": this.indicatorInside
        },
        this.indicatorCustom && this.indicatorCustomSize,
        this.indicatorInside && this.indicatorPosition
      ];
    },
    // checking arrows
    hasPrev() {
      return this.repeat || this.activeChild !== 0;
    },
    hasNext() {
      return this.repeat || this.activeChild < this.childItems.length - 1;
    },
    activeChildIndex() {
      const item = this.sortedItems[this.activeChild];
      return item != null ? item.index : void 0;
    }
  },
  watch: {
    /*
     * When v-model is changed set the new active item.
     */
    modelValue(value) {
      this.changeActive(value);
    },
    /*
     * When carousel-items are updated, set active one.
     */
    sortedItems(items) {
      if (this.activeChild >= items.length && this.activeChild > 0) {
        this.changeActive(this.activeChild - 1);
      }
    },
    /*
     *  When autoplay is changed, start or pause timer accordingly
     */
    autoplay(status) {
      status ? this.startTimer() : this.pauseTimer();
    },
    /*
     *  Since the timer can get paused at the end, if repeat is changed we need to restart it
     */
    repeat(status) {
      if (status) {
        this.startTimer();
      }
    }
  },
  methods: {
    startTimer() {
      if (!this.autoplay || this.timer) return;
      this.isPause = false;
      this.timer = setInterval(() => {
        if (!this.repeat && this.activeChild >= this.childItems.length - 1) {
          this.pauseTimer();
        } else {
          this.next();
        }
      }, this.interval || config.defaultCarouselInterval);
    },
    pauseTimer() {
      this.isPause = true;
      if (this.timer) {
        clearInterval(this.timer);
        this.timer = void 0;
      }
    },
    restartTimer() {
      this.pauseTimer();
      this.startTimer();
    },
    checkPause() {
      if (this.pauseHover && this.autoplay) {
        this.pauseTimer();
      }
    },
    /*
     * Change the active item and emit change event.
     * action only for animated slide, there true = next, false = prev
     */
    changeActive(newIndex, direction = 0) {
      if (this.activeChild === newIndex || isNaN(newIndex)) return;
      direction = direction || newIndex - this.activeChild;
      newIndex = this.repeat ? mod(newIndex, this.childItems.length) : bound(newIndex, 0, this.childItems.length - 1);
      this.transition = direction > 0 ? "prev" : "next";
      this.activeChild = newIndex;
      if (newIndex !== this.modelValue) {
        this.$emit("update:modelValue", newIndex);
      }
      this.restartTimer();
      this.$emit("change", newIndex);
    },
    // Indicator trigger when change active item.
    modeChange(trigger, value) {
      if (this.indicatorMode === trigger) {
        return this.changeActive(value);
      }
    },
    prev() {
      this.changeActive(this.activeChild - 1, -1);
    },
    next() {
      this.changeActive(this.activeChild + 1, 1);
    },
    // handle drag event
    dragStart(event) {
      if (!this.hasDrag || !event.target.draggable) return;
      const touches = event.touches;
      this.dragX = touches ? event.changedTouches[0].pageX : event.pageX;
      if (touches) {
        this.pauseTimer();
      } else {
        event.preventDefault();
      }
    },
    dragEnd(event) {
      if (this.dragX === false) return;
      const touches = event.touches;
      const detected = touches ? event.changedTouches[0].pageX : event.pageX;
      const diffX = detected - this.dragX;
      if (Math.abs(diffX) > 30) {
        if (diffX < 0) {
          this.next();
        } else {
          this.prev();
        }
      } else {
        event.target.click();
        this.sortedItems[this.activeChild].$emit("click");
        this.$emit("click");
      }
      if (touches) {
        this.startTimer();
      }
      this.dragX = false;
    }
  },
  mounted() {
    this.startTimer();
  },
  beforeUnmount() {
    this.pauseTimer();
  }
});

const _hoisted_1$P = ["value", "max"];
const _hoisted_2$F = {
  key: 1,
  class: "carousel-pause"
};
const _hoisted_3$r = ["onMouseover", "onClick"];
function _sfc_render$V(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["carousel", { "is-overlay": _ctx.overlay }]),
      onMouseenter: _cache[4] || (_cache[4] = (...args) => _ctx.checkPause && _ctx.checkPause(...args)),
      onMouseleave: _cache[5] || (_cache[5] = (...args) => _ctx.startTimer && _ctx.startTimer(...args))
    },
    [
      _ctx.progress ? (openBlock(), createElementBlock("progress", {
        key: 0,
        class: normalizeClass(["progress", _ctx.progressType]),
        value: _ctx.activeChild,
        max: _ctx.childItems.length - 1
      }, toDisplayString$1(_ctx.childItems.length - 1), 11, _hoisted_1$P)) : createCommentVNode("v-if", true),
      createBaseVNode(
        "div",
        {
          class: "carousel-items",
          onMousedown: _cache[0] || (_cache[0] = (...args) => _ctx.dragStart && _ctx.dragStart(...args)),
          onMouseup: _cache[1] || (_cache[1] = (...args) => _ctx.dragEnd && _ctx.dragEnd(...args)),
          onTouchstart: _cache[2] || (_cache[2] = withModifiers((...args) => _ctx.dragStart && _ctx.dragStart(...args), ["stop"])),
          onTouchend: _cache[3] || (_cache[3] = withModifiers((...args) => _ctx.dragEnd && _ctx.dragEnd(...args), ["stop"]))
        },
        [
          renderSlot(_ctx.$slots, "default"),
          _ctx.arrow ? (openBlock(), createElementBlock(
            "div",
            {
              key: 0,
              class: normalizeClass(["carousel-arrow", { "is-hovered": _ctx.arrowHover }])
            },
            [
              withDirectives(createVNode(_component_b_icon, {
                class: "has-icons-left",
                onClick: _ctx.prev,
                pack: _ctx.iconPack,
                icon: _ctx.iconPrev,
                size: _ctx.iconSize,
                both: ""
              }, null, 8, ["onClick", "pack", "icon", "size"]), [
                [vShow, _ctx.hasPrev]
              ]),
              withDirectives(createVNode(_component_b_icon, {
                class: "has-icons-right",
                onClick: _ctx.next,
                pack: _ctx.iconPack,
                icon: _ctx.iconNext,
                size: _ctx.iconSize,
                both: ""
              }, null, 8, ["onClick", "pack", "icon", "size"]), [
                [vShow, _ctx.hasNext]
              ])
            ],
            2
            /* CLASS */
          )) : createCommentVNode("v-if", true)
        ],
        32
        /* NEED_HYDRATION */
      ),
      _ctx.autoplay && _ctx.pauseHover && _ctx.pauseInfo && _ctx.isPause ? (openBlock(), createElementBlock("div", _hoisted_2$F, [
        createBaseVNode(
          "span",
          {
            class: normalizeClass(["tag", _ctx.pauseInfoType])
          },
          toDisplayString$1(_ctx.pauseText),
          3
          /* TEXT, CLASS */
        )
      ])) : createCommentVNode("v-if", true),
      _ctx.withCarouselList && !_ctx.indicator ? renderSlot(_ctx.$slots, "list", {
        key: 2,
        active: _ctx.activeChild,
        switch: _ctx.changeActive
      }) : createCommentVNode("v-if", true),
      _ctx.indicator ? (openBlock(), createElementBlock(
        "div",
        {
          key: 3,
          class: normalizeClass(["carousel-indicator", _ctx.indicatorClasses])
        },
        [
          (openBlock(true), createElementBlock(
            Fragment,
            null,
            renderList(_ctx.sortedItems, (item, index) => {
              return openBlock(), createElementBlock("a", {
                class: normalizeClass(["indicator-item", { "is-active": item.isActive }]),
                onMouseover: ($event) => _ctx.modeChange("hover", index),
                onClick: ($event) => _ctx.modeChange("click", index),
                key: item.uniqueValue
              }, [
                renderSlot(_ctx.$slots, "indicators", { i: index }, () => [
                  createBaseVNode(
                    "span",
                    {
                      class: normalizeClass(["indicator-style", _ctx.indicatorStyle])
                    },
                    null,
                    2
                    /* CLASS */
                  )
                ])
              ], 42, _hoisted_3$r);
            }),
            128
            /* KEYED_FRAGMENT */
          ))
        ],
        2
        /* CLASS */
      )) : createCommentVNode("v-if", true),
      _ctx.overlay ? renderSlot(_ctx.$slots, "overlay", { key: 4 }) : createCommentVNode("v-if", true)
    ],
    34
    /* CLASS, NEED_HYDRATION */
  );
}
var Carousel = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["render", _sfc_render$V]]);

var __defProp$a = Object.defineProperty;
var __defProps$7 = Object.defineProperties;
var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
var __hasOwnProp$a = Object.prototype.hasOwnProperty;
var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$a = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp$a.call(b, prop))
      __defNormalProp$a(a, prop, b[prop]);
  if (__getOwnPropSymbols$a)
    for (var prop of __getOwnPropSymbols$a(b)) {
      if (__propIsEnum$a.call(b, prop))
        __defNormalProp$a(a, prop, b[prop]);
    }
  return a;
};
var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
const sorted = 1;
const optional = 2;
const Sorted = sorted;
var InjectedChildMixin = (parentItemName, flags) => {
  const mixin = {
    // FIXME: initializing `parent` with an empty string does not make
    // sense at all, but some code supposes that `parent` is non-null.
    // so I leave it as is for now.
    inject: { parent: { from: "b" + parentItemName, default: "" } },
    props: {
      // if `value` is non-null, it must be unique among all the siblings.
      // see `uniqueValue`
      value: {
        type: String,
        default: null
      }
    },
    computed: {
      // `ProviderParentMixin` uses `uniqueValue` computed value to
      // identify the child in its `childItems` collection.
      // so the value must be unique among all the siblings.
      // falls back to the `uid` internal field to ensure uniqueness.
      uniqueValue() {
        return this.value != null ? this.value : this.$.uid;
      }
    },
    created() {
      if (!this.parent) {
        if (!hasFlag(flags, optional)) {
          throw new Error("You should wrap " + this.$options.name + " in a " + parentItemName);
        }
      } else if (this.parent._registerItem) {
        this.parent._registerItem(this);
      }
    },
    beforeUnmount() {
      if (this.parent && this.parent._unregisterItem) {
        this.parent._unregisterItem(this);
      }
    }
  };
  if (hasFlag(flags, sorted)) {
    mixin.props = __spreadProps$7(__spreadValues$a({}, mixin.props), {
      order: {
        type: Number,
        required: false
      }
    });
    mixin.data = () => {
      return {
        dynamicIndex: void 0
      };
    };
    mixin.computed = __spreadProps$7(__spreadValues$a({}, mixin.computed), {
      index() {
        return this.order != null ? this.order : this.dynamicIndex;
      }
    });
  }
  return mixin;
};

var _sfc_main$K = defineComponent({
  name: "BCarouselItem",
  mixins: [InjectedChildMixin("carousel", Sorted)],
  data() {
    return {
      transitionName: null
    };
  },
  computed: {
    transition() {
      if (this.parent.animated === "fade") {
        return "fade";
      } else if (this.parent.transition) {
        return "slide-" + this.parent.transition;
      } else {
        return void 0;
      }
    },
    isActive() {
      return this.parent.activeChildIndex === this.index;
    }
  }
});

const _hoisted_1$O = { class: "carousel-item" };
function _sfc_render$U(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createBlock(Transition, {
    name: _ctx.transition,
    persisted: ""
  }, {
    default: withCtx(() => [
      withDirectives(createBaseVNode(
        "div",
        _hoisted_1$O,
        [
          renderSlot(_ctx.$slots, "default")
        ],
        512
        /* NEED_PATCH */
      ), [
        [vShow, _ctx.isActive]
      ])
    ]),
    _: 3
    /* FORWARDED */
  }, 8, ["name"]);
}
var CarouselItem = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["render", _sfc_render$U]]);

var __defProp$9 = Object.defineProperty;
var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$9 = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp$9.call(b, prop))
      __defNormalProp$9(a, prop, b[prop]);
  if (__getOwnPropSymbols$9)
    for (var prop of __getOwnPropSymbols$9(b)) {
      if (__propIsEnum$9.call(b, prop))
        __defNormalProp$9(a, prop, b[prop]);
    }
  return a;
};
const BULMA_KNOWN_RATIO = [
  "square",
  "1by1",
  "5by4",
  "4by3",
  "3by2",
  "5by3",
  "16by9",
  "b2y1",
  "3by1",
  "4by5",
  "3by4",
  "2by3",
  "3by5",
  "9by16",
  "1by2",
  "1by3"
];
function isBulmaKnownRatio(value) {
  return BULMA_KNOWN_RATIO.indexOf(value) !== -1;
}
var _sfc_main$J = defineComponent({
  name: "BImage",
  props: {
    src: String,
    alt: String,
    srcFallback: String,
    webpFallback: {
      type: String,
      default: () => {
        return config.defaultImageWebpFallback;
      }
    },
    lazy: {
      type: Boolean,
      default: () => {
        return config.defaultImageLazy;
      }
    },
    responsive: {
      type: Boolean,
      default: () => {
        return config.defaultImageResponsive;
      }
    },
    ratio: {
      type: String,
      default: () => {
        return config.defaultImageRatio;
      }
    },
    placeholder: String,
    srcset: String,
    srcsetSizes: Array,
    srcsetFormatter: {
      type: Function,
      default: (src, size, vm) => {
        if (typeof config.defaultImageSrcsetFormatter === "function") {
          return config.defaultImageSrcsetFormatter(src, size);
        } else {
          return vm.formatSrcset(src, size);
        }
      }
    },
    rounded: {
      type: Boolean,
      default: false
    },
    captionFirst: {
      type: Boolean,
      default: false
    },
    customClass: String
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    load: (event, src) => true,
    error: (event, src) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      clientWidth: 0,
      webpSupportVerified: false,
      webpSupported: false,
      useNativeLazy: false,
      observer: null,
      inViewPort: false,
      loaded: false,
      failed: false
    };
  },
  computed: {
    ratioPattern() {
      return /([0-9]+)by([0-9]+)/;
    },
    hasRatio() {
      return this.ratio != null && this.ratioPattern.test(this.ratio);
    },
    figureClasses() {
      const classes = { image: this.responsive };
      if (this.hasRatio && isBulmaKnownRatio(this.ratio)) {
        classes[`is-${this.ratio}`] = true;
      }
      return classes;
    },
    figureStyles() {
      if (this.hasRatio && !isBulmaKnownRatio(this.ratio)) {
        const ratioValues = this.ratioPattern.exec(this.ratio);
        return {
          paddingTop: `${+ratioValues[2] / +ratioValues[1] * 100}%`
        };
      }
      return void 0;
    },
    imgClasses() {
      return __spreadValues$9({
        "is-rounded": this.rounded,
        "has-ratio": this.hasRatio
      }, this.customClass ? { [this.customClass]: !!this.customClass } : {});
    },
    srcExt() {
      return this.getExt(this.src);
    },
    isWepb() {
      return this.srcExt === "webp";
    },
    computedSrc() {
      let src = this.src;
      if (this.failed && this.srcFallback) {
        src = this.srcFallback;
      }
      if (!this.webpSupported && this.isWepb && this.webpFallback) {
        if (this.webpFallback.startsWith(".")) {
          return src.replace(/\.webp/gi, `${this.webpFallback}`);
        }
        return this.webpFallback;
      }
      return src;
    },
    computedWidth() {
      if (this.responsive && this.clientWidth > 0) {
        return this.clientWidth;
      }
      return void 0;
    },
    computedNativeLazy() {
      if (this.lazy && this.useNativeLazy) {
        return "lazy";
      }
      return void 0;
    },
    isDisplayed() {
      return (this.webpSupportVerified || !this.isWepb) && (!this.lazy || this.useNativeLazy || this.inViewPort);
    },
    placeholderExt() {
      if (this.placeholder) {
        return this.getExt(this.placeholder);
      }
      return void 0;
    },
    isPlaceholderWepb() {
      if (this.placeholder) {
        return this.placeholderExt === "webp";
      }
      return false;
    },
    computedPlaceholder() {
      if (!this.webpSupported && this.isPlaceholderWepb && this.webpFallback && this.webpFallback.startsWith(".")) {
        return this.placeholder.replace(/\.webp/gi, `${this.webpFallback}`);
      }
      return this.placeholder;
    },
    isPlaceholderDisplayed() {
      return !this.loaded && (this.$slots.placeholder || this.placeholder && (this.webpSupportVerified || !this.isPlaceholderWepb));
    },
    computedSrcset() {
      if (this.srcset) {
        if (!this.webpSupported && this.isWepb && this.webpFallback && this.webpFallback.startsWith(".")) {
          return this.srcset.replace(/\.webp/gi, `${this.webpFallback}`);
        }
        return this.srcset;
      }
      if (this.srcsetSizes && Array.isArray(this.srcsetSizes) && this.srcsetSizes.length > 0) {
        return this.srcsetSizes.map((size) => {
          return `${this.srcsetFormatter(this.computedSrc, size, this)} ${size}w`;
        }).join(",");
      }
      return void 0;
    },
    computedSizes() {
      if (this.computedSrcset && this.computedWidth) {
        return `${this.computedWidth}px`;
      }
      return void 0;
    },
    isCaptionFirst() {
      return this.$slots.caption && this.captionFirst;
    },
    isCaptionLast() {
      return this.$slots.caption && !this.captionFirst;
    }
  },
  methods: {
    getExt(filename, clean = true) {
      if (filename) {
        const noParam = clean ? filename.split("?")[0] : filename;
        return noParam.split(".").pop();
      }
      return "";
    },
    setWidth() {
      this.clientWidth = this.$el.clientWidth;
    },
    formatSrcset(src, size) {
      const ext = this.getExt(src, false);
      const name = src.split(".").slice(0, -1).join(".");
      return `${name}-${size}.${ext}`;
    },
    onLoad(event) {
      this.loaded = true;
      this.emitSrc(event, (src) => this.$emit("load", event, src));
    },
    onError(event) {
      this.emitSrc(event, (src) => this.$emit("error", event, src));
      if (!this.failed) {
        this.failed = true;
      }
    },
    emitSrc(event, emit) {
      const target = event.target;
      emit(target.currentSrc || target.src || this.computedSrc);
    }
  },
  created() {
    if (this.isWepb) {
      isWebpSupported().then((supported) => {
        this.webpSupportVerified = true;
        this.webpSupported = supported;
      });
    }
    if (this.lazy) {
      const nativeLazySupported = typeof window !== "undefined" && "HTMLImageElement" in window && "loading" in HTMLImageElement.prototype;
      const intersectionObserverSupported = typeof window !== "undefined" && "IntersectionObserver" in window;
      if (!nativeLazySupported && intersectionObserverSupported) {
        this.observer = new IntersectionObserver((events) => {
          const { target, isIntersecting } = events[0];
          if (isIntersecting && !this.inViewPort) {
            this.inViewPort = true;
            this.observer.unobserve(target);
          }
        });
      } else {
        this.useNativeLazy = true;
      }
    }
  },
  mounted() {
    if (this.lazy && this.observer) {
      this.observer.observe(this.$el);
    }
    this.setWidth();
    if (typeof window !== "undefined") {
      window.addEventListener("resize", this.setWidth);
    }
  },
  beforeUnmount() {
    if (this.observer) {
      this.observer.disconnect();
    }
    if (typeof window !== "undefined") {
      window.removeEventListener("resize", this.setWidth);
    }
  }
});

const _hoisted_1$N = { key: 0 };
const _hoisted_2$E = ["srcset", "src", "alt", "width", "sizes", "loading"];
const _hoisted_3$q = ["src", "alt"];
const _hoisted_4$j = { key: 1 };
function _sfc_render$T(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "figure",
    {
      class: normalizeClass(["b-image-wrapper", _ctx.figureClasses]),
      style: normalizeStyle(_ctx.figureStyles)
    },
    [
      _ctx.isCaptionFirst ? (openBlock(), createElementBlock("figcaption", _hoisted_1$N, [
        renderSlot(_ctx.$slots, "caption")
      ])) : createCommentVNode("v-if", true),
      createVNode(Transition, { name: "fade" }, {
        default: withCtx(() => [
          _ctx.isDisplayed ? (openBlock(), createElementBlock("img", {
            key: 0,
            srcset: _ctx.computedSrcset,
            src: _ctx.computedSrc,
            alt: _ctx.alt,
            class: normalizeClass(_ctx.imgClasses),
            width: _ctx.computedWidth,
            sizes: _ctx.computedSizes,
            loading: _ctx.computedNativeLazy,
            onLoad: _cache[0] || (_cache[0] = (...args) => _ctx.onLoad && _ctx.onLoad(...args)),
            onError: _cache[1] || (_cache[1] = (...args) => _ctx.onError && _ctx.onError(...args))
          }, null, 42, _hoisted_2$E)) : createCommentVNode("v-if", true)
        ]),
        _: 1
        /* STABLE */
      }),
      createVNode(Transition, { name: "fade" }, {
        default: withCtx(() => [
          _ctx.isPlaceholderDisplayed ? renderSlot(_ctx.$slots, "placeholder", { key: 0 }, () => [
            createBaseVNode("img", {
              src: _ctx.computedPlaceholder,
              alt: _ctx.alt,
              class: normalizeClass([_ctx.imgClasses, "placeholder"])
            }, null, 10, _hoisted_3$q)
          ]) : createCommentVNode("v-if", true)
        ]),
        _: 3
        /* FORWARDED */
      }),
      _ctx.isCaptionLast ? (openBlock(), createElementBlock("figcaption", _hoisted_4$j, [
        renderSlot(_ctx.$slots, "caption")
      ])) : createCommentVNode("v-if", true)
    ],
    6
    /* CLASS, STYLE */
  );
}
var Image$1 = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["render", _sfc_render$T]]);

var __defProp$8 = Object.defineProperty;
var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$8 = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp$8.call(b, prop))
      __defNormalProp$8(a, prop, b[prop]);
  if (__getOwnPropSymbols$8)
    for (var prop of __getOwnPropSymbols$8(b)) {
      if (__propIsEnum$8.call(b, prop))
        __defNormalProp$8(a, prop, b[prop]);
    }
  return a;
};
var _sfc_main$I = defineComponent({
  name: "BCarouselList",
  components: {
    BIcon,
    BImage: Image$1
  },
  props: {
    data: {
      type: Array,
      default: () => []
    },
    modelValue: {
      type: Number,
      default: 0
    },
    scrollValue: {
      type: Number,
      default: 0
    },
    hasDrag: {
      type: Boolean,
      default: true
    },
    hasGrayscale: Boolean,
    hasOpacity: Boolean,
    repeat: Boolean,
    itemsToShow: {
      type: Number,
      default: 4
    },
    itemsToList: {
      type: Number,
      default: 1
    },
    asIndicator: Boolean,
    arrow: {
      type: Boolean,
      default: true
    },
    arrowHover: {
      type: Boolean,
      default: true
    },
    iconPack: String,
    iconSize: String,
    iconPrev: {
      type: String,
      default: () => {
        return config.defaultIconPrev;
      }
    },
    iconNext: {
      type: String,
      default: () => {
        return config.defaultIconNext;
      }
    },
    breakpoints: {
      type: Object,
      default: () => ({})
    }
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    switch: (_value) => true,
    "update:modelValue": (_value) => true,
    "updated:scroll": (_index) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      activeItem: this.modelValue,
      scrollIndex: this.asIndicator ? this.scrollValue : this.modelValue,
      delta: 0,
      dragX: false,
      hold: 0,
      windowWidth: 0,
      touch: false,
      observer: null,
      refresh_: 0
    };
  },
  computed: {
    dragging() {
      return this.dragX !== false;
    },
    listClass() {
      return [
        {
          "has-grayscale": this.settings.hasGrayscale,
          "has-opacity": this.settings.hasOpacity,
          "is-dragging": this.dragging
        }
      ];
    },
    itemStyle() {
      return `width: ${this.itemWidth}px;`;
    },
    translation() {
      return -bound(
        this.delta + this.scrollIndex * this.itemWidth,
        0,
        (this.data.length - this.settings.itemsToShow) * this.itemWidth
      );
    },
    total() {
      return this.data.length - this.settings.itemsToShow;
    },
    hasPrev() {
      return this.settings.repeat || this.scrollIndex > 0;
    },
    hasNext() {
      return this.settings.repeat || this.scrollIndex < this.total;
    },
    breakpointKeys() {
      return Object.keys(this.breakpoints).sort((a, b) => +b - +a);
    },
    settings() {
      const breakpoint = this.breakpointKeys.filter((breakpoint2) => {
        if (this.windowWidth >= +breakpoint2) {
          return true;
        } else {
          return false;
        }
      })[0];
      if (breakpoint) {
        return __spreadValues$8(__spreadValues$8({}, this.$props), this.breakpoints[+breakpoint]);
      }
      return this.$props;
    },
    itemWidth() {
      if (this.windowWidth) {
        this.refresh_;
        const rect = this.$el.getBoundingClientRect();
        return rect.width / this.settings.itemsToShow;
      }
      return 0;
    }
  },
  watch: {
    /*
     * When v-model is changed set the new active item.
     */
    modelValue(value) {
      this.switchTo(this.asIndicator ? value - (this.itemsToShow - 3) / 2 : value);
      if (this.activeItem !== value) {
        this.activeItem = bound(value, 0, this.data.length - 1);
      }
    },
    scrollValue(value) {
      this.switchTo(value);
    }
  },
  methods: {
    resized() {
      this.windowWidth = window.innerWidth;
    },
    switchTo(newIndex) {
      if (newIndex === this.scrollIndex || isNaN(newIndex)) {
        return;
      }
      if (this.settings.repeat) {
        newIndex = mod(newIndex, this.total + 1);
      }
      newIndex = bound(newIndex, 0, this.total);
      this.scrollIndex = newIndex;
      if (!this.asIndicator && this.modelValue !== newIndex) {
        this.$emit("update:modelValue", newIndex);
      } else if (this.scrollIndex !== newIndex) {
        this.$emit("updated:scroll", newIndex);
      }
    },
    next() {
      this.switchTo(this.scrollIndex + this.settings.itemsToList);
    },
    prev() {
      this.switchTo(this.scrollIndex - this.settings.itemsToList);
    },
    checkAsIndicator(value, event) {
      if (!this.asIndicator) return;
      const dragEndX = event.changedTouches ? event.changedTouches[0].clientX : event.clientX;
      if (this.hold - Date.now() > 2e3 || Math.abs(+this.dragX - dragEndX) > 10) return;
      this.dragX = false;
      this.hold = 0;
      event.preventDefault();
      this.activeItem = value;
      this.$emit("switch", value);
    },
    // handle drag event
    dragStart(event) {
      if (this.dragging || !this.settings.hasDrag || event.button !== 0 && event.type !== "touchstart") return;
      this.hold = Date.now();
      this.touch = !!event.touches;
      this.dragX = this.touch ? event.touches[0].clientX : event.clientX;
      window.addEventListener(this.touch ? "touchmove" : "mousemove", this.dragMove);
      window.addEventListener(this.touch ? "touchend" : "mouseup", this.dragEnd);
    },
    dragMove(event) {
      if (!this.dragging) return;
      const dragEndX = event.touches ? (event.changedTouches[0] || event.touches[0]).clientX : event.clientX;
      this.delta = +this.dragX - dragEndX;
      if (!event.touches) {
        event.preventDefault();
      }
    },
    dragEnd() {
      if (!this.dragging && !this.hold) return;
      if (this.hold) {
        const signCheck = sign(this.delta);
        const results = Math.round(Math.abs(this.delta / this.itemWidth) + 0.15);
        this.switchTo(this.scrollIndex + signCheck * results);
      }
      this.delta = 0;
      this.dragX = false;
      window.removeEventListener(this.touch ? "touchmove" : "mousemove", this.dragMove);
      window.removeEventListener(this.touch ? "touchend" : "mouseup", this.dragEnd);
    },
    refresh() {
      this.$nextTick(() => {
        this.refresh_++;
      });
    }
  },
  mounted() {
    if (typeof window !== "undefined") {
      if (window.ResizeObserver) {
        this.observer = new ResizeObserver(this.refresh);
        this.observer.observe(this.$el);
      }
      window.addEventListener("resize", this.resized);
      document.addEventListener("animationend", this.refresh);
      document.addEventListener("transitionend", this.refresh);
      document.addEventListener("transitionstart", this.refresh);
      this.resized();
    }
    if (this.$attrs.config) {
      throw new Error("The config prop was removed, you need to use v-bind instead");
    }
  },
  beforeUnmount() {
    if (typeof window !== "undefined") {
      if (window.ResizeObserver) {
        this.observer.disconnect();
      }
      window.removeEventListener("resize", this.resized);
      document.removeEventListener("animationend", this.refresh);
      document.removeEventListener("transitionend", this.refresh);
      document.removeEventListener("transitionstart", this.refresh);
      this.dragEnd();
    }
  }
});

const _hoisted_1$M = ["onMouseup", "onTouchend"];
function _sfc_render$S(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_image = resolveComponent("b-image");
  const _component_b_icon = resolveComponent("b-icon");
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["carousel-list", { "has-shadow": _ctx.scrollIndex > 0 }]),
      onMousedown: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.dragStart && _ctx.dragStart(...args), ["prevent"])),
      onTouchstart: _cache[1] || (_cache[1] = (...args) => _ctx.dragStart && _ctx.dragStart(...args))
    },
    [
      createBaseVNode(
        "div",
        {
          class: normalizeClass(["carousel-slides", _ctx.listClass]),
          style: normalizeStyle("transform:translateX(" + _ctx.translation + "px)")
        },
        [
          (openBlock(true), createElementBlock(
            Fragment,
            null,
            renderList(_ctx.data, (list, index) => {
              return openBlock(), createElementBlock("div", {
                class: normalizeClass(["carousel-slide", { "is-active": _ctx.asIndicator ? _ctx.activeItem === index : _ctx.scrollIndex === index }]),
                onMouseup: ($event) => _ctx.checkAsIndicator(index, $event),
                onTouchend: ($event) => _ctx.checkAsIndicator(index, $event),
                key: index,
                style: normalizeStyle(_ctx.itemStyle)
              }, [
                renderSlot(_ctx.$slots, "item", mergeProps({
                  index,
                  active: _ctx.activeItem,
                  scroll: _ctx.scrollIndex
                }, list, { list }), () => [
                  createVNode(_component_b_image, mergeProps({
                    src: list.image
                  }, list), null, 16, ["src"])
                ])
              ], 46, _hoisted_1$M);
            }),
            128
            /* KEYED_FRAGMENT */
          ))
        ],
        6
        /* CLASS, STYLE */
      ),
      _ctx.arrow ? (openBlock(), createElementBlock(
        "div",
        {
          key: 0,
          class: normalizeClass(["carousel-arrow", { "is-hovered": _ctx.settings.arrowHover }])
        },
        [
          withDirectives(createVNode(_component_b_icon, {
            class: "has-icons-left",
            onClick: withModifiers(_ctx.prev, ["prevent"]),
            pack: _ctx.settings.iconPack,
            icon: _ctx.settings.iconPrev,
            size: _ctx.settings.iconSize,
            both: ""
          }, null, 8, ["onClick", "pack", "icon", "size"]), [
            [vShow, _ctx.hasPrev]
          ]),
          withDirectives(createVNode(_component_b_icon, {
            class: "has-icons-right",
            onClick: withModifiers(_ctx.next, ["prevent"]),
            pack: _ctx.settings.iconPack,
            icon: _ctx.settings.iconNext,
            size: _ctx.settings.iconSize,
            both: ""
          }, null, 8, ["onClick", "pack", "icon", "size"]), [
            [vShow, _ctx.hasNext]
          ])
        ],
        2
        /* CLASS */
      )) : createCommentVNode("v-if", true)
    ],
    34
    /* CLASS, NEED_HYDRATION */
  );
}
var CarouselList = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["render", _sfc_render$S]]);

const Plugin$C = {
  install(Vue) {
    registerComponent(Vue, Carousel);
    registerComponent(Vue, CarouselItem);
    registerComponent(Vue, CarouselList);
  }
};

var CheckRadioMixin = defineComponent({
  props: {
    modelValue: [String, Number, Boolean, Function, Object, Array],
    nativeValue: [String, Number, Boolean, Function, Object, Array],
    type: String,
    disabled: Boolean,
    required: Boolean,
    name: String,
    size: String
  },
  emits: {
    // eslint-disable-next-line max-len
    // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
    "update:modelValue": (value) => true
  },
  data() {
    return {
      newValue: this.modelValue
    };
  },
  computed: {
    computedValue: {
      get() {
        return this.newValue;
      },
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      set(value) {
        this.newValue = value;
        this.$emit("update:modelValue", value);
      }
    },
    disabledOrUndefined() {
      return this.disabled || void 0;
    },
    requiredOrUndefined() {
      return this.required || void 0;
    }
  },
  watch: {
    /*
    * When v-model change, set internal value.
    */
    modelValue(value) {
      this.newValue = value;
    }
  },
  methods: {
    focus() {
      this.$refs.input.focus();
    }
  }
});

var _sfc_main$H = defineComponent({
  name: "BCheckbox",
  mixins: [CheckRadioMixin],
  props: {
    indeterminate: Boolean,
    ariaLabelledby: String,
    trueValue: {
      type: [String, Number, Boolean, Function, Object, Array],
      default: true
    },
    falseValue: {
      type: [String, Number, Boolean, Function, Object, Array],
      default: false
    },
    autocomplete: {
      type: String,
      default: "on"
    },
    inputId: {
      type: String,
      default: ""
    }
  }
});

const _hoisted_1$L = ["disabled"];
const _hoisted_2$D = ["id", ".indeterminate", "autocomplete", "disabled", "required", "name", "value", "true-value", "false-value", "aria-labelledby"];
const _hoisted_3$p = ["id"];
function _sfc_render$R(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("label", {
    class: normalizeClass(["b-checkbox checkbox", [_ctx.size, { "is-disabled": _ctx.disabled }]]),
    ref: "label",
    disabled: _ctx.disabledOrUndefined,
    onClick: _cache[2] || (_cache[2] = (...args) => _ctx.focus && _ctx.focus(...args)),
    onKeydown: [
      _cache[3] || (_cache[3] = withKeys(withModifiers(($event) => _ctx.$refs.label.click(), ["prevent"]), ["enter"])),
      _cache[4] || (_cache[4] = withKeys(withModifiers(($event) => _ctx.$refs.label.click(), ["prevent"]), ["space"]))
    ]
  }, [
    createCommentVNode(" Checkbox needs to listen for a space event instead of a just a\n             click and enter event so that that using the keyboard spacebar will also\n             trigger the checkbox change in the b-table "),
    withDirectives(createBaseVNode("input", {
      "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.computedValue = $event),
      id: _ctx.inputId,
      ".indeterminate": _ctx.indeterminate,
      type: "checkbox",
      ref: "input",
      onClick: _cache[1] || (_cache[1] = withModifiers(() => {
      }, ["stop"])),
      autocomplete: _ctx.autocomplete,
      disabled: _ctx.disabledOrUndefined,
      required: _ctx.requiredOrUndefined,
      name: _ctx.name,
      value: _ctx.nativeValue,
      "true-value": _ctx.trueValue,
      "false-value": _ctx.falseValue,
      "aria-labelledby": _ctx.ariaLabelledby
    }, null, 40, _hoisted_2$D), [
      [vModelCheckbox, _ctx.computedValue]
    ]),
    createBaseVNode(
      "span",
      {
        class: normalizeClass(["check", _ctx.type])
      },
      null,
      2
      /* CLASS */
    ),
    createBaseVNode("span", {
      id: _ctx.ariaLabelledby,
      class: "control-label"
    }, [
      renderSlot(_ctx.$slots, "default")
    ], 8, _hoisted_3$p)
  ], 42, _hoisted_1$L);
}
var BCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["render", _sfc_render$R]]);

var _sfc_main$G = defineComponent({
  name: "BCheckboxButton",
  mixins: [CheckRadioMixin],
  props: {
    type: {
      type: String,
      default: "is-primary"
    },
    expanded: Boolean
  },
  data() {
    return {
      isFocused: false
    };
  },
  computed: {
    checked() {
      if (Array.isArray(this.newValue)) {
        return this.newValue.indexOf(this.nativeValue) >= 0;
      }
      return this.newValue === this.nativeValue;
    }
  }
});

const _hoisted_1$K = ["disabled"];
const _hoisted_2$C = ["disabled", "required", "name", "value"];
function _sfc_render$Q(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["control", { "is-expanded": _ctx.expanded }])
    },
    [
      createBaseVNode("label", {
        class: normalizeClass(["b-checkbox checkbox button", [_ctx.checked ? _ctx.type : null, _ctx.size, {
          "is-disabled": _ctx.disabled,
          "is-focused": _ctx.isFocused
        }]]),
        ref: "label",
        disabled: _ctx.disabledOrUndefined,
        onClick: _cache[4] || (_cache[4] = (...args) => _ctx.focus && _ctx.focus(...args)),
        onKeydown: _cache[5] || (_cache[5] = withKeys(withModifiers(($event) => _ctx.$refs.label.click(), ["prevent"]), ["enter"]))
      }, [
        renderSlot(_ctx.$slots, "default"),
        withDirectives(createBaseVNode("input", {
          "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.computedValue = $event),
          type: "checkbox",
          ref: "input",
          onClick: _cache[1] || (_cache[1] = withModifiers(() => {
          }, ["stop"])),
          disabled: _ctx.disabledOrUndefined,
          required: _ctx.requiredOrUndefined,
          name: _ctx.name,
          value: _ctx.nativeValue,
          onFocus: _cache[2] || (_cache[2] = ($event) => _ctx.isFocused = true),
          onBlur: _cache[3] || (_cache[3] = ($event) => _ctx.isFocused = false)
        }, null, 40, _hoisted_2$C), [
          [vModelCheckbox, _ctx.computedValue]
        ])
      ], 42, _hoisted_1$K)
    ],
    2
    /* CLASS */
  );
}
var CheckboxButton = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["render", _sfc_render$Q]]);

const Plugin$B = {
  install(Vue) {
    registerComponent(Vue, BCheckbox);
    registerComponent(Vue, CheckboxButton);
  }
};

const COLLAPSE_POSITIONS = ["is-top", "is-bottom"];
var _sfc_main$F = defineComponent({
  name: "BCollapse",
  props: {
    modelValue: {
      type: Boolean,
      default: true
    },
    animation: {
      type: String,
      default: "fade"
    },
    ariaId: {
      type: String,
      default: ""
    },
    position: {
      type: String,
      default: "is-top",
      validator(value) {
        return COLLAPSE_POSITIONS.indexOf(value) > -1;
      }
    }
  },
  emits: {
    close: () => true,
    open: () => true,
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    "update:modelValue": (_value) => true
  },
  data() {
    return {
      isOpen: this.modelValue
    };
  },
  watch: {
    modelValue(value) {
      this.isOpen = value;
    }
  },
  methods: {
    /*
    * Toggle and emit events
    */
    toggle() {
      this.isOpen = !this.isOpen;
      this.$emit("update:modelValue", this.isOpen);
      this.isOpen ? this.$emit("open") : this.$emit("close");
    }
  },
  render() {
    const trigger = h(
      "div",
      {
        class: "collapse-trigger",
        onClick: this.toggle
      },
      this.$slots.trigger ? this.$slots.trigger({ open: this.isOpen }) : void 0
    );
    const content = withDirectives(
      h(
        Transition,
        { name: this.animation },
        () => [
          h(
            "div",
            {
              class: "collapse-content",
              id: this.ariaId
            },
            this.$slots
          )
        ]
      ),
      [[vShow, this.isOpen]]
    );
    return h(
      "div",
      { class: "collapse" },
      this.position === "is-top" ? [trigger, content] : [content, trigger]
    );
  }
});

const Plugin$A = {
  install(Vue) {
    registerComponent(Vue, _sfc_main$F);
  }
};

const findFocusable = (element, programmatic = false) => {
  if (!element) {
    return null;
  }
  if (programmatic) {
    return element.querySelectorAll('*[tabindex="-1"]');
  }
  return element.querySelectorAll(`a[href]:not([tabindex="-1"]),
                                     area[href],
                                     input:not([disabled]),
                                     select:not([disabled]),
                                     textarea:not([disabled]),
                                     button:not([disabled]),
                                     iframe,
                                     object,
                                     embed,
                                     *[tabindex]:not([tabindex="-1"]),
                                     *[contenteditable]`);
};
let onKeyDown;
const beforeMount$1 = (el, { value = true }) => {
  if (value) {
    let focusable = findFocusable(el);
    let focusableProg = findFocusable(el, true);
    if (focusable && focusable.length > 0) {
      onKeyDown = (event) => {
        focusable = findFocusable(el);
        focusableProg = findFocusable(el, true);
        const firstFocusable = focusable[0];
        const lastFocusable = focusable[focusable.length - 1];
        if (event.target === firstFocusable && event.shiftKey && event.key === "Tab") {
          event.preventDefault();
          lastFocusable.focus();
        } else if ((event.target === lastFocusable || Array.from(focusableProg).indexOf(event.target) >= 0) && !event.shiftKey && event.key === "Tab") {
          event.preventDefault();
          firstFocusable.focus();
        }
      };
      el.addEventListener("keydown", onKeyDown);
    }
  }
};
const unmounted$1 = (el) => {
  el.removeEventListener("keydown", onKeyDown);
};
const directive$1 = {
  beforeMount: beforeMount$1,
  unmounted: unmounted$1
};

const DEFAULT_CLOSE_OPTIONS = ["escape", "outside"];
const DROPDOWN_INJECTION_KEY = Symbol("bdropdown");
var _sfc_main$E = defineComponent({
  name: "BDropdown",
  directives: {
    trapFocus: directive$1
  },
  provide() {
    return {
      [DROPDOWN_INJECTION_KEY]: this
    };
  },
  props: {
    modelValue: {
      type: [
        String,
        Number,
        Boolean,
        Object,
        Array,
        Function
      ],
      default: null
    },
    disabled: Boolean,
    inline: Boolean,
    scrollable: Boolean,
    maxHeight: {
      type: [String, Number],
      default: 200
    },
    position: {
      type: String,
      validator(value) {
        return [
          "is-top-right",
          "is-top-left",
          "is-bottom-left",
          "is-bottom-right"
        ].indexOf(value) > -1;
      }
    },
    triggers: {
      type: Array,
      default: () => ["click"]
    },
    mobileModal: {
      type: Boolean,
      default: () => {
        return config.defaultDropdownMobileModal;
      }
    },
    ariaRole: {
      type: String,
      validator(value) {
        return [
          "menu",
          "list",
          "dialog"
        ].indexOf(value) > -1;
      },
      default: null
    },
    animation: {
      type: String,
      default: "fade"
    },
    multiple: Boolean,
    trapFocus: {
      type: Boolean,
      default: () => {
        return config.defaultTrapFocus;
      }
    },
    closeOnClick: {
      type: Boolean,
      default: true
    },
    canClose: {
      type: [Array, Boolean],
      default: true
    },
    expanded: Boolean,
    appendToBody: Boolean,
    appendToBodyCopyParent: Boolean,
    triggerTabindex: {
      type: Number,
      default: 0
    }
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    "active-change": (_isActive) => true,
    change: (_selected) => true,
    "update:modelValue": (_value) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      selected: this.modelValue,
      style: {},
      isActive: false,
      isHoverable: false,
      maybeTap: false,
      isTouchEnabled: false,
      _bodyEl: void 0,
      // Used to append to body
      timeOutID: void 0,
      timeOutID2: void 0
    };
  },
  computed: {
    rootClasses() {
      return [this.position, {
        "is-disabled": this.disabled,
        "is-hoverable": this.hoverable,
        "is-inline": this.inline,
        "is-active": this.isActive || this.inline,
        "is-mobile-modal": this.isMobileModal,
        "is-expanded": this.expanded,
        "is-touch-enabled": this.isTouchEnabled
      }];
    },
    isMobileModal() {
      return this.mobileModal && !this.inline;
    },
    cancelOptions() {
      return typeof this.canClose === "boolean" ? this.canClose ? DEFAULT_CLOSE_OPTIONS : [] : this.canClose;
    },
    contentStyle() {
      var _a;
      return {
        maxHeight: this.scrollable ? (_a = toCssWidth(this.maxHeight)) != null ? _a : void 0 : void 0,
        overflow: this.scrollable ? "auto" : void 0
      };
    },
    hoverable() {
      return this.triggers.indexOf("hover") >= 0;
    }
  },
  watch: {
    /*
    * When v-model is changed set the new selected item.
    */
    modelValue(value) {
      this.selected = value;
    },
    /*
    * Emit event when isActive value is changed.
    *
    * Also resets `isTouchEnabled` when it turns inactive.
    */
    isActive(value) {
      this.$emit("active-change", value);
      if (!value) {
        this.timeOutID = setTimeout(() => {
          if (!this.isActive) {
            this.isTouchEnabled = false;
          }
        }, 250);
      }
      this.handleScroll();
      if (this.appendToBody) {
        this.$nextTick(() => {
          this.updateAppendToBody();
        });
      }
    },
    isHoverable(value) {
      if (this.hoverable) {
        this.$emit("active-change", value);
      }
    }
  },
  methods: {
    handleScroll() {
      if (typeof window === "undefined") return;
      if (this.isMobileModal) {
        if (this.isActive) {
          document.documentElement.classList.add("is-clipped-touch");
        } else {
          document.documentElement.classList.remove("is-clipped-touch");
        }
      }
    },
    /*
     * Click listener from DropdownItem.
     *   1. Set new selected item.
     *   2. Emit input event to update the user v-model.
     *   3. Close the dropdown.
     */
    selectItem(value) {
      if (this.multiple) {
        if (this.selected) {
          const selected = this.selected;
          if (selected.indexOf(value) === -1) {
            this.selected = [...selected, value];
          } else {
            this.selected = selected.filter((val) => val !== value);
          }
        } else {
          this.selected = [value];
        }
        this.$emit("change", this.selected);
      } else {
        if (this.selected !== value) {
          this.selected = value;
          this.$emit("change", this.selected);
        }
      }
      this.$emit("update:modelValue", this.selected);
      if (!this.multiple) {
        this.isActive = !this.closeOnClick;
        if (this.hoverable && this.closeOnClick) {
          this.isHoverable = false;
        }
      }
    },
    /*
    * White-listed items to not close when clicked.
    */
    isInWhiteList(el) {
      if (el === this.$refs.dropdownMenu) return true;
      if (el === this.$refs.trigger) return true;
      if (this.$refs.dropdownMenu != null) {
        const children = this.$refs.dropdownMenu.querySelectorAll("*");
        for (const child of children) {
          if (el === child) {
            return true;
          }
        }
      }
      if (this.$refs.trigger != null) {
        const children = this.$refs.trigger.querySelectorAll("*");
        for (const child of children) {
          if (el === child) {
            return true;
          }
        }
      }
      return false;
    },
    /*
    * Close dropdown if clicked outside.
    */
    clickedOutside(event) {
      if (this.cancelOptions.indexOf("outside") < 0) return;
      if (this.inline) return;
      const target = isCustomElement(this) ? event.composedPath()[0] : event.target;
      if (!this.isInWhiteList(target)) this.isActive = false;
    },
    /*
     * Keypress event that is bound to the document
     */
    keyPress({ key }) {
      if (this.isActive && (key === "Escape" || key === "Esc")) {
        if (this.cancelOptions.indexOf("escape") < 0) return;
        this.isActive = false;
      }
    },
    onClick() {
      if (this.triggers.indexOf("hover") !== -1) return;
      if (this.triggers.indexOf("click") < 0) return;
      this.toggle();
    },
    onContextMenu() {
      if (this.triggers.indexOf("contextmenu") < 0) return;
      this.toggle();
    },
    onHover() {
      if (this.triggers.indexOf("hover") < 0) return;
      if (this.isTouchEnabled) return;
      this.isHoverable = true;
    },
    // takes care of touch-enabled devices
    // - does nothing if hover trigger is disabled
    // - suppresses hover trigger by setting isTouchEnabled
    // - handles only a tap; i.e., touchstart on the trigger immediately
    //   folowed by touchend
    onTouchStart() {
      this.maybeTap = true;
    },
    onTouchMove() {
      this.maybeTap = false;
    },
    onTouchEnd(e) {
      if (this.triggers.indexOf("hover") === -1) return;
      if (!this.maybeTap) return;
      e.preventDefault();
      this.maybeTap = false;
      this.isTouchEnabled = true;
      this.toggle();
    },
    onFocus() {
      if (this.triggers.indexOf("focus") < 0) return;
      this.toggle();
    },
    /*
    * Toggle dropdown if it's not disabled.
    */
    toggle() {
      if (this.disabled) return;
      if (!this.isActive) {
        this.timeOutID2 = setTimeout(() => {
          const value = !this.isActive;
          this.isActive = value;
        });
      } else {
        this.isActive = !this.isActive;
      }
    },
    updateAppendToBody() {
      const dropdown = this.$refs.dropdown;
      const dropdownMenu = this.$refs.dropdownMenu;
      const trigger = this.$refs.trigger;
      if (dropdownMenu && trigger) {
        const dropdownWrapper = this.$data._bodyEl.children[0];
        dropdownWrapper.classList.forEach((item) => dropdownWrapper.classList.remove(item));
        dropdownWrapper.classList.add("dropdown");
        dropdownWrapper.classList.add("dropdown-menu-animation");
        this.rootClasses.forEach((item) => {
          if (item && typeof item === "object") {
            for (const key in item) {
              if (item[key]) {
                dropdownWrapper.classList.add(key);
              }
            }
          }
        });
        if (this.appendToBodyCopyParent) {
          const parentNode = this.$refs.dropdown.parentNode;
          const parent = this.$data._bodyEl;
          parent.classList.forEach((item) => parent.classList.remove(item));
          parentNode.classList.forEach((item) => {
            parent.classList.add(item);
          });
        }
        const rect = trigger.getBoundingClientRect();
        let top = rect.top + window.scrollY;
        let left = rect.left + window.scrollX;
        if (!this.position || this.position.indexOf("bottom") >= 0) {
          top += trigger.clientHeight;
        } else {
          top -= dropdownMenu.clientHeight;
        }
        if (this.position && this.position.indexOf("left") >= 0) {
          left -= dropdownMenu.clientWidth - trigger.clientWidth;
        }
        this.style = {
          position: "absolute",
          top: `${top}px`,
          left: `${left}px`,
          zIndex: "99",
          width: this.expanded ? `${dropdown.offsetWidth}px` : void 0
        };
      }
    }
  },
  mounted() {
    if (this.appendToBody) {
      this.$data._bodyEl = createAbsoluteElement(this.$refs.dropdownMenu);
      this.updateAppendToBody();
    }
  },
  created() {
    if (typeof window !== "undefined") {
      document.addEventListener("click", this.clickedOutside);
      document.addEventListener("keyup", this.keyPress);
    }
  },
  beforeUnmount() {
    if (typeof window !== "undefined") {
      document.removeEventListener("click", this.clickedOutside);
      document.removeEventListener("keyup", this.keyPress);
    }
    if (this.appendToBody) {
      removeElement(this.$data._bodyEl);
    }
    clearTimeout(this.timeOutID);
    clearTimeout(this.timeOutID2);
  }
});

const _hoisted_1$J = ["tabindex"];
const _hoisted_2$B = ["aria-hidden"];
const _hoisted_3$o = ["aria-hidden"];
const _hoisted_4$i = ["role", "aria-modal"];
function _sfc_render$P(_ctx, _cache, $props, $setup, $data, $options) {
  const _directive_trap_focus = resolveDirective("trap-focus");
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["dropdown dropdown-menu-animation", _ctx.rootClasses]),
      ref: "dropdown",
      onMouseleave: _cache[7] || (_cache[7] = ($event) => _ctx.isHoverable = false)
    },
    [
      !_ctx.inline ? (openBlock(), createElementBlock("div", {
        key: 0,
        tabindex: _ctx.disabled ? void 0 : _ctx.triggerTabindex,
        ref: "trigger",
        class: "dropdown-trigger",
        onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args)),
        onContextmenu: _cache[1] || (_cache[1] = withModifiers((...args) => _ctx.onContextMenu && _ctx.onContextMenu(...args), ["prevent"])),
        onMouseenter: _cache[2] || (_cache[2] = (...args) => _ctx.onHover && _ctx.onHover(...args)),
        onFocusCapture: _cache[3] || (_cache[3] = (...args) => _ctx.onFocus && _ctx.onFocus(...args)),
        onTouchstart: _cache[4] || (_cache[4] = (...args) => _ctx.onTouchStart && _ctx.onTouchStart(...args)),
        onTouchmove: _cache[5] || (_cache[5] = (...args) => _ctx.onTouchMove && _ctx.onTouchMove(...args)),
        onTouchend: _cache[6] || (_cache[6] = (...args) => _ctx.onTouchEnd && _ctx.onTouchEnd(...args)),
        "aria-haspopup": "true"
      }, [
        renderSlot(_ctx.$slots, "trigger", { active: _ctx.isActive })
      ], 40, _hoisted_1$J)) : createCommentVNode("v-if", true),
      createVNode(Transition, { name: _ctx.animation }, {
        default: withCtx(() => [
          _ctx.isMobileModal ? withDirectives((openBlock(), createElementBlock("div", {
            key: 0,
            class: "background",
            "aria-hidden": !_ctx.isActive
          }, null, 8, _hoisted_2$B)), [
            [vShow, _ctx.isActive]
          ]) : createCommentVNode("v-if", true)
        ]),
        _: 1
        /* STABLE */
      }, 8, ["name"]),
      createVNode(Transition, {
        name: _ctx.animation,
        persisted: ""
      }, {
        default: withCtx(() => [
          withDirectives((openBlock(), createElementBlock("div", {
            ref: "dropdownMenu",
            class: "dropdown-menu",
            style: normalizeStyle(_ctx.style),
            "aria-hidden": !_ctx.isActive
          }, [
            createBaseVNode("div", {
              class: "dropdown-content",
              role: _ctx.ariaRole,
              "aria-modal": !_ctx.inline,
              style: normalizeStyle(_ctx.contentStyle)
            }, [
              renderSlot(_ctx.$slots, "default")
            ], 12, _hoisted_4$i)
          ], 12, _hoisted_3$o)), [
            [vShow, !_ctx.disabled && (_ctx.isActive || _ctx.isHoverable) || _ctx.inline],
            [_directive_trap_focus, _ctx.trapFocus]
          ])
        ]),
        _: 3
        /* FORWARDED */
      }, 8, ["name"])
    ],
    34
    /* CLASS, NEED_HYDRATION */
  );
}
var BDropdown = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["render", _sfc_render$P]]);

var _sfc_main$D = defineComponent({
  name: "BDropdownItem",
  inject: {
    parent: {
      from: DROPDOWN_INJECTION_KEY,
      default: void 0
    }
  },
  props: {
    value: {
      type: [String, Number, Boolean, Object, Array, Function],
      default: null
    },
    separator: Boolean,
    disabled: Boolean,
    custom: Boolean,
    focusable: {
      type: Boolean,
      default: true
    },
    paddingless: Boolean,
    hasLink: Boolean,
    ariaRole: {
      type: String,
      default: ""
    }
  },
  emits: {
    click: () => true
  },
  computed: {
    anchorClasses() {
      return {
        "is-disabled": this.parent.disabled || this.disabled,
        "is-paddingless": this.paddingless,
        "is-active": this.isActive
      };
    },
    itemClasses() {
      return {
        "dropdown-item": !this.hasLink,
        "is-disabled": this.disabled,
        "is-paddingless": this.paddingless,
        "is-active": this.isActive,
        "has-link": this.hasLink
      };
    },
    ariaRoleItem() {
      return this.ariaRole === "menuitem" || this.ariaRole === "listitem" ? this.ariaRole : void 0;
    },
    isClickable() {
      return !this.parent.disabled && !this.separator && !this.disabled && !this.custom;
    },
    isActive() {
      if (this.parent.selected === null) return false;
      if (this.parent.multiple) {
        return this.parent.selected.indexOf(this.value) >= 0;
      }
      return this.value === this.parent.selected;
    },
    isFocusable() {
      return this.hasLink ? false : this.focusable;
    }
  },
  methods: {
    /*
    * Click listener, select the item.
    */
    selectItem() {
      if (!this.isClickable) return;
      this.parent.selectItem(this.value);
      this.$emit("click");
    }
  }
});

const _hoisted_1$I = {
  key: 0,
  class: "dropdown-divider"
};
const _hoisted_2$A = ["role", "tabindex"];
const _hoisted_3$n = ["role", "tabindex"];
function _sfc_render$O(_ctx, _cache, $props, $setup, $data, $options) {
  return _ctx.separator ? (openBlock(), createElementBlock("hr", _hoisted_1$I)) : !_ctx.custom && !_ctx.hasLink ? (openBlock(), createElementBlock("a", {
    key: 1,
    class: normalizeClass(["dropdown-item", _ctx.anchorClasses]),
    onClick: _cache[0] || (_cache[0] = (...args) => _ctx.selectItem && _ctx.selectItem(...args)),
    role: _ctx.ariaRoleItem,
    tabindex: _ctx.isFocusable ? 0 : void 0
  }, [
    renderSlot(_ctx.$slots, "default")
  ], 10, _hoisted_2$A)) : (openBlock(), createElementBlock("div", {
    key: 2,
    class: normalizeClass(_ctx.itemClasses),
    onClick: _cache[1] || (_cache[1] = (...args) => _ctx.selectItem && _ctx.selectItem(...args)),
    role: _ctx.ariaRoleItem,
    tabindex: _ctx.isFocusable ? 0 : void 0
  }, [
    renderSlot(_ctx.$slots, "default")
  ], 10, _hoisted_3$n));
}
var BDropdownItem = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["render", _sfc_render$O]]);

const Plugin$z = {
  install(Vue) {
    registerComponent(Vue, BDropdown);
    registerComponent(Vue, BDropdownItem);
  }
};

const Plugin$y = {
  install(Vue) {
    registerComponent(Vue, BInput);
  }
};

const AM$1 = "AM";
const PM$1 = "PM";
const HOUR_FORMAT_24 = "24";
const HOUR_FORMAT_12 = "12";
const defaultTimeFormatter = (date, vm) => {
  return vm.dtf.format(date);
};
const defaultTimeParser = (timeString, vm) => {
  if (timeString) {
    let d = null;
    if (vm.computedValue && !isNaN(vm.computedValue.valueOf())) {
      d = new Date(vm.computedValue);
    } else {
      d = vm.timeCreator();
      d.setMilliseconds(0);
    }
    if (vm.dtf.formatToParts && typeof vm.dtf.formatToParts === "function") {
      const formatRegex = vm.dtf.formatToParts(d).map((part) => {
        if (part.type === "literal") {
          return part.value.replace(/ /g, "\\s?");
        } else if (part.type === "dayPeriod") {
          return `((?!=<${part.type}>)(${vm.amString}|${vm.pmString}|${AM$1}|${PM$1}|${AM$1.toLowerCase()}|${PM$1.toLowerCase()})?)`;
        }
        return `((?!=<${part.type}>)\\d+)`;
      }).join("");
      const timeGroups = matchWithGroups(formatRegex, timeString);
      timeGroups.hour = timeGroups.hour ? parseInt(timeGroups.hour + "", 10) : null;
      timeGroups.minute = timeGroups.minute ? parseInt(timeGroups.minute + "", 10) : null;
      timeGroups.second = timeGroups.second ? parseInt(timeGroups.second + "", 10) : null;
      if (timeGroups.hour && timeGroups.hour >= 0 && timeGroups.hour < 24 && timeGroups.minute && timeGroups.minute >= 0 && timeGroups.minute < 59) {
        const dayPeriod = timeGroups.dayPeriod;
        if (dayPeriod && (dayPeriod.toLowerCase() === vm.pmString.toLowerCase() || dayPeriod.toLowerCase() === PM$1.toLowerCase()) && timeGroups.hour < 12) {
          timeGroups.hour += 12;
        }
        d.setHours(timeGroups.hour);
        d.setMinutes(timeGroups.minute);
        d.setSeconds(timeGroups.second || 0);
        return d;
      }
    }
    let am = false;
    if (vm.hourFormat === HOUR_FORMAT_12) {
      const dateString12 = timeString.split(" ");
      timeString = dateString12[0];
      am = dateString12[1] === vm.amString || dateString12[1] === AM$1;
    }
    const time = timeString.split(":");
    let hours = parseInt(time[0], 10);
    const minutes = parseInt(time[1], 10);
    const seconds = vm.enableSeconds ? parseInt(time[2], 10) : 0;
    if (isNaN(hours) || hours < 0 || hours > 23 || vm.hourFormat === HOUR_FORMAT_12 && (hours < 1 || hours > 12) || isNaN(minutes) || minutes < 0 || minutes > 59) {
      return null;
    }
    d.setSeconds(seconds);
    d.setMinutes(minutes);
    if (vm.hourFormat === HOUR_FORMAT_12) {
      if (am && hours === 12) {
        hours = 0;
      } else if (!am && hours !== 12) {
        hours += 12;
      }
    }
    d.setHours(hours);
    return new Date(d.getTime());
  }
  return null;
};
var TimepickerMixin = defineComponent({
  mixins: [CompatFallthroughMixin, FormElementMixin],
  props: {
    modelValue: [Date, null],
    inline: Boolean,
    minTime: [Date, null],
    maxTime: [Date, null],
    placeholder: String,
    editable: Boolean,
    disabled: Boolean,
    hourFormat: {
      type: String,
      validator: (value) => {
        return value === HOUR_FORMAT_24 || value === HOUR_FORMAT_12;
      }
    },
    incrementHours: {
      type: Number,
      default: 1
    },
    incrementMinutes: {
      type: Number,
      default: 1
    },
    incrementSeconds: {
      type: Number,
      default: 1
    },
    timeFormatter: {
      type: Function,
      default: (date, vm) => {
        if (typeof config.defaultTimeFormatter === "function") {
          return config.defaultTimeFormatter(date);
        } else {
          return defaultTimeFormatter(date, vm);
        }
      }
    },
    timeParser: {
      type: Function,
      default: (date, vm) => {
        if (typeof config.defaultTimeParser === "function") {
          return config.defaultTimeParser(date);
        } else {
          return defaultTimeParser(date, vm);
        }
      }
    },
    mobileNative: {
      type: Boolean,
      default: () => config.defaultTimepickerMobileNative
    },
    mobileModal: {
      type: Boolean,
      default: () => config.defaultTimepickerMobileModal
    },
    timeCreator: {
      type: Function,
      default: () => {
        if (typeof config.defaultTimeCreator === "function") {
          return config.defaultTimeCreator();
        } else {
          return /* @__PURE__ */ new Date();
        }
      }
    },
    position: String,
    unselectableTimes: Array,
    openOnFocus: Boolean,
    enableSeconds: Boolean,
    defaultMinutes: Number,
    defaultSeconds: Number,
    focusable: {
      type: Boolean,
      default: true
    },
    tzOffset: {
      type: Number,
      default: 0
    },
    appendToBody: Boolean,
    resetOnMeridianChange: {
      type: Boolean,
      default: false
    }
  },
  emits: {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    "update:modelValue": (_value) => true
  },
  data() {
    return {
      dateSelected: this.modelValue,
      hoursSelected: null,
      minutesSelected: null,
      secondsSelected: null,
      meridienSelected: null,
      _elementRef: "input",
      AM: AM$1,
      PM: PM$1,
      HOUR_FORMAT_24,
      HOUR_FORMAT_12
    };
  },
  computed: {
    computedValue: {
      get() {
        return this.dateSelected;
      },
      set(value) {
        this.dateSelected = value;
        this.$emit("update:modelValue", this.dateSelected);
      }
    },
    localeOptions() {
      return new Intl.DateTimeFormat(this.locale, {
        hour: "numeric",
        minute: "numeric",
        second: this.enableSeconds ? "numeric" : void 0
      }).resolvedOptions();
    },
    dtf() {
      return new Intl.DateTimeFormat(this.locale, {
        hour: this.localeOptions.hour || "numeric",
        minute: this.localeOptions.minute || "numeric",
        second: this.enableSeconds ? this.localeOptions.second || "numeric" : void 0,
        // Fixes 12 hour display github.com/buefy/buefy/issues/3418
        hourCycle: !this.isHourFormat24 ? "h12" : "h23"
      });
    },
    newHourFormat() {
      return this.hourFormat || (this.localeOptions.hour12 ? HOUR_FORMAT_12 : HOUR_FORMAT_24);
    },
    sampleTime() {
      const d = this.timeCreator();
      d.setHours(10);
      d.setSeconds(0);
      d.setMinutes(0);
      d.setMilliseconds(0);
      return d;
    },
    hourLiteral() {
      if (this.dtf.formatToParts && typeof this.dtf.formatToParts === "function") {
        const d = this.sampleTime;
        const parts = this.dtf.formatToParts(d);
        const literal = parts.find((part, idx) => idx > 0 && parts[idx - 1].type === "hour");
        if (literal) {
          return literal.value;
        }
      }
      return ":";
    },
    minuteLiteral() {
      if (this.dtf.formatToParts && typeof this.dtf.formatToParts === "function") {
        const d = this.sampleTime;
        const parts = this.dtf.formatToParts(d);
        const literal = parts.find((part, idx) => idx > 0 && parts[idx - 1].type === "minute");
        if (literal) {
          return literal.value;
        }
      }
      return ":";
    },
    secondLiteral() {
      if (this.dtf.formatToParts && typeof this.dtf.formatToParts === "function") {
        const d = this.sampleTime;
        const parts = this.dtf.formatToParts(d);
        const literal = parts.find((part, idx) => idx > 0 && parts[idx - 1].type === "second");
        if (literal) {
          return literal.value;
        }
      }
      return void 0;
    },
    amString() {
      if (this.dtf.formatToParts && typeof this.dtf.formatToParts === "function") {
        const d = this.sampleTime;
        d.setHours(10);
        const dayPeriod = this.dtf.formatToParts(d).find((part) => part.type === "dayPeriod");
        if (dayPeriod) {
          return dayPeriod.value;
        }
      }
      return AM$1;
    },
    pmString() {
      if (this.dtf.formatToParts && typeof this.dtf.formatToParts === "function") {
        const d = this.sampleTime;
        d.setHours(20);
        const dayPeriod = this.dtf.formatToParts(d).find((part) => part.type === "dayPeriod");
        if (dayPeriod) {
          return dayPeriod.value;
        }
      }
      return PM$1;
    },
    hours() {
      if (!this.incrementHours || this.incrementHours < 1) throw new Error("Hour increment cannot be null or less than 1.");
      const hours = [];
      const numberOfHours = this.isHourFormat24 ? 24 : 12;
      for (let i = 0; i < numberOfHours; i += this.incrementHours) {
        let value = i;
        let label = value;
        if (!this.isHourFormat24) {
          value = i + 1;
          label = value;
          if (this.meridienSelected === this.amString) {
            if (value === 12) {
              value = 0;
            }
          } else if (this.meridienSelected === this.pmString) {
            if (value !== 12) {
              value += 12;
            }
          }
        }
        hours.push({
          label: this.formatNumber(label),
          value
        });
      }
      return hours;
    },
    minutes() {
      if (!this.incrementMinutes || this.incrementMinutes < 1) throw new Error("Minute increment cannot be null or less than 1.");
      const minutes = [];
      for (let i = 0; i < 60; i += this.incrementMinutes) {
        minutes.push({
          label: this.formatNumber(i, true),
          value: i
        });
      }
      return minutes;
    },
    seconds() {
      if (!this.incrementSeconds || this.incrementSeconds < 1) throw new Error("Second increment cannot be null or less than 1.");
      const seconds = [];
      for (let i = 0; i < 60; i += this.incrementSeconds) {
        seconds.push({
          label: this.formatNumber(i, true),
          value: i
        });
      }
      return seconds;
    },
    meridiens() {
      return [this.amString, this.pmString];
    },
    isMobile() {
      return this.mobileNative && isMobile.any();
    },
    isHourFormat24() {
      return this.newHourFormat === HOUR_FORMAT_24;
    },
    disabledOrUndefined() {
      return this.disabled || void 0;
    }
  },
  watch: {
    hourFormat() {
      if (this.hoursSelected !== null) {
        this.meridienSelected = this.hoursSelected >= 12 ? this.pmString : this.amString;
      }
    },
    locale() {
      if (!this.modelValue) {
        this.meridienSelected = this.amString;
      }
    },
    /*
     * When v-model is changed:
     *   1. Update internal value.
     *   2. If it's invalid, validate again.
     */
    modelValue: {
      handler(value) {
        this.updateInternalState(value);
        !this.isValid && this.$refs.input.checkHtml5Validity();
      },
      immediate: true
    }
  },
  methods: {
    onMeridienChange(value) {
      if (this.hoursSelected !== null && this.resetOnMeridianChange) {
        this.hoursSelected = null;
        this.minutesSelected = null;
        this.secondsSelected = null;
        this.computedValue = null;
      } else if (this.hoursSelected !== null) {
        if (value === this.pmString) {
          this.hoursSelected += 12;
        } else if (value === this.amString) {
          this.hoursSelected -= 12;
        }
      }
      this.updateDateSelected(
        this.hoursSelected,
        this.minutesSelected,
        this.enableSeconds ? this.secondsSelected : 0,
        value
      );
    },
    onHoursChange(value) {
      if (!this.minutesSelected && typeof this.defaultMinutes !== "undefined") {
        this.minutesSelected = this.defaultMinutes;
      }
      if (!this.secondsSelected && typeof this.defaultSeconds !== "undefined") {
        this.secondsSelected = this.defaultSeconds;
      }
      this.updateDateSelected(
        parseInt(`${value}`, 10),
        this.minutesSelected,
        this.enableSeconds ? this.secondsSelected : 0,
        this.meridienSelected
      );
    },
    onMinutesChange(value) {
      if (!this.secondsSelected && this.defaultSeconds) {
        this.secondsSelected = this.defaultSeconds;
      }
      this.updateDateSelected(
        this.hoursSelected,
        parseInt(`${value}`, 10),
        this.enableSeconds ? this.secondsSelected : 0,
        this.meridienSelected
      );
    },
    onSecondsChange(value) {
      this.updateDateSelected(
        this.hoursSelected,
        this.minutesSelected,
        parseInt(`${value}`, 10),
        this.meridienSelected
      );
    },
    updateDateSelected(hours, minutes, seconds, meridiens) {
      if (hours != null && minutes != null && (!this.isHourFormat24 && meridiens !== null || this.isHourFormat24)) {
        let time = null;
        if (this.computedValue && !isNaN(this.computedValue.valueOf())) {
          time = new Date(this.computedValue);
        } else {
          time = this.timeCreator();
          time.setMilliseconds(0);
        }
        time.setHours(hours);
        time.setMinutes(minutes);
        time.setSeconds(seconds);
        if (!isNaN(time.getTime())) this.computedValue = new Date(time.getTime());
      }
    },
    updateInternalState(value) {
      if (value) {
        this.hoursSelected = value.getHours();
        this.minutesSelected = value.getMinutes();
        this.secondsSelected = value.getSeconds();
        this.meridienSelected = value.getHours() >= 12 ? this.pmString : this.amString;
      } else {
        this.hoursSelected = null;
        this.minutesSelected = null;
        this.secondsSelected = null;
        this.meridienSelected = this.amString;
      }
      this.dateSelected = value;
    },
    isHourDisabled(hour) {
      let disabled = false;
      if (this.minTime) {
        const minHours = this.minTime.getHours();
        const noMinutesAvailable = this.minutes.every((minute) => {
          return this.isMinuteDisabledForHour(hour, minute.value);
        });
        disabled = hour < minHours || noMinutesAvailable;
      }
      if (this.maxTime) {
        if (!disabled) {
          const maxHours = this.maxTime.getHours();
          disabled = hour > maxHours;
        }
      }
      if (this.unselectableTimes) {
        if (!disabled) {
          const unselectable = this.unselectableTimes.filter((time) => {
            if (this.enableSeconds && this.secondsSelected !== null) {
              return time.getHours() === hour && time.getMinutes() === this.minutesSelected && time.getSeconds() === this.secondsSelected;
            } else if (this.minutesSelected !== null) {
              return time.getHours() === hour && time.getMinutes() === this.minutesSelected;
            }
            return false;
          });
          if (unselectable.length > 0) {
            disabled = true;
          } else {
            disabled = this.minutes.every((minute) => {
              return this.unselectableTimes.filter((time) => {
                return time.getHours() === hour && time.getMinutes() === minute.value;
              }).length > 0;
            });
          }
        }
      }
      return disabled;
    },
    isMinuteDisabledForHour(hour, minute) {
      let disabled = false;
      if (this.minTime) {
        const minHours = this.minTime.getHours();
        const minMinutes = this.minTime.getMinutes();
        disabled = hour === minHours && minute < minMinutes;
      }
      if (this.maxTime) {
        if (!disabled) {
          const maxHours = this.maxTime.getHours();
          const maxMinutes = this.maxTime.getMinutes();
          disabled = hour === maxHours && minute > maxMinutes;
        }
      }
      return disabled;
    },
    isMinuteDisabled(minute) {
      let disabled = false;
      if (this.hoursSelected !== null) {
        if (this.isHourDisabled(this.hoursSelected)) {
          disabled = true;
        } else {
          disabled = this.isMinuteDisabledForHour(this.hoursSelected, minute);
        }
        if (this.unselectableTimes) {
          if (!disabled) {
            const unselectable = this.unselectableTimes.filter((time) => {
              if (this.enableSeconds && this.secondsSelected !== null) {
                return time.getHours() === this.hoursSelected && time.getMinutes() === minute && time.getSeconds() === this.secondsSelected;
              } else {
                return time.getHours() === this.hoursSelected && time.getMinutes() === minute;
              }
            });
            disabled = unselectable.length > 0;
          }
        }
      }
      return disabled;
    },
    isSecondDisabled(second) {
      let disabled = false;
      if (this.minutesSelected !== null) {
        if (this.isMinuteDisabled(this.minutesSelected)) {
          disabled = true;
        } else {
          if (this.minTime) {
            const minHours = this.minTime.getHours();
            const minMinutes = this.minTime.getMinutes();
            const minSeconds = this.minTime.getSeconds();
            disabled = this.hoursSelected === minHours && this.minutesSelected === minMinutes && second < minSeconds;
          }
          if (this.maxTime) {
            if (!disabled) {
              const maxHours = this.maxTime.getHours();
              const maxMinutes = this.maxTime.getMinutes();
              const maxSeconds = this.maxTime.getSeconds();
              disabled = this.hoursSelected === maxHours && this.minutesSelected === maxMinutes && second > maxSeconds;
            }
          }
        }
        if (this.unselectableTimes) {
          if (!disabled) {
            const unselectable = this.unselectableTimes.filter((time) => {
              return time.getHours() === this.hoursSelected && time.getMinutes() === this.minutesSelected && time.getSeconds() === second;
            });
            disabled = unselectable.length > 0;
          }
        }
      }
      return disabled;
    },
    /*
     * Parse string into date
     */
    onChange(value) {
      const date = this.timeParser(value, this);
      this.updateInternalState(date);
      if (date && !isNaN(date.valueOf())) {
        this.computedValue = date;
      } else {
        this.computedValue = null;
        this.$refs.input.newValue = this.computedValue;
      }
    },
    /*
     * Toggle timepicker
     */
    toggle(active) {
      if (this.$refs.dropdown) {
        this.$refs.dropdown.isActive = typeof active === "boolean" ? active : !this.$refs.dropdown.isActive;
      }
    },
    /*
     * Close timepicker
     */
    close() {
      this.toggle(false);
    },
    /*
     * Call default onFocus method and show timepicker
     */
    handleOnFocus() {
      this.onFocus();
      if (this.openOnFocus) {
        this.toggle(true);
      }
    },
    /*
     * Format date into string 'HH-MM-SS'
     */
    formatHHMMSS(value) {
      const date = new Date(value);
      if (value && !isNaN(date.valueOf())) {
        const hours = date.getHours();
        const minutes = date.getMinutes();
        const seconds = date.getSeconds();
        return this.formatNumber(hours, true) + ":" + this.formatNumber(minutes, true) + ":" + this.formatNumber(seconds, true);
      }
      return "";
    },
    /*
     * Parse time from string
     */
    onChangeNativePicker(event) {
      const date = event.target.value;
      if (date) {
        let time = null;
        if (this.computedValue && !isNaN(this.computedValue.valueOf())) {
          time = new Date(this.computedValue);
        } else {
          time = /* @__PURE__ */ new Date();
          time.setMilliseconds(0);
        }
        const t = date.split(":");
        time.setHours(parseInt(t[0], 10));
        time.setMinutes(parseInt(t[1], 10));
        time.setSeconds(t[2] ? parseInt(t[2], 10) : 0);
        this.computedValue = new Date(time.getTime());
      } else {
        this.computedValue = null;
      }
    },
    formatNumber(value, prependZero) {
      return this.isHourFormat24 || prependZero ? this.pad(value) : `${value}`;
    },
    pad(value) {
      return (value < 10 ? "0" : "") + value;
    },
    /*
     * Format date into string
     */
    formatValue(date) {
      if (date && !isNaN(date.valueOf())) {
        return this.timeFormatter(date, this);
      } else {
        return null;
      }
    },
    /*
     * Keypress event that is bound to the document.
     */
    keyPress({ key }) {
      if (this.$refs.dropdown && this.$refs.dropdown.isActive && (key === "Escape" || key === "Esc")) {
        this.toggle(false);
      }
    },
    /*
     * Emit 'blur' event on dropdown is not active (closed)
     */
    onActiveChange(value) {
      if (!value) {
        this.onBlur();
      }
    }
  },
  created() {
    if (typeof window !== "undefined") {
      document.addEventListener("keyup", this.keyPress);
    }
  },
  beforeUnmounted() {
    if (typeof window !== "undefined") {
      document.removeEventListener("keyup", this.keyPress);
    }
  }
});

const indicatorSize = 40;
const paddingInner = 5;
var _sfc_main$C = defineComponent({
  name: "BClockpickerFace",
  props: {
    pickerSize: Number,
    min: Number,
    max: Number,
    double: Boolean,
    value: Number,
    faceNumbers: Array,
    disabledValues: Function
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    change: (_value) => true,
    input: (_value) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      isDragging: false,
      inputValue: this.value,
      prevAngle: 720
    };
  },
  computed: {
    /*
    * How many number indicators are shown on the face
    */
    count() {
      return this.max - this.min + 1;
    },
    /*
    * How many number indicators are shown per ring on the face
    */
    countPerRing() {
      return this.double ? this.count / 2 : this.count;
    },
    /*
    * Radius of the clock face
    */
    radius() {
      return this.pickerSize / 2;
    },
    /*
    * Radius of the outer ring of number indicators
    */
    outerRadius() {
      return this.radius - paddingInner - indicatorSize / 2;
    },
    /*
    * Radius of the inner ring of number indicators
    */
    innerRadius() {
      return Math.max(
        this.outerRadius * 0.6,
        this.outerRadius - paddingInner - indicatorSize
      );
    },
    /*
    * The angle for each selectable value
    * For hours this ends up being 30 degrees, for minutes 6 degrees
    */
    degreesPerUnit() {
      return 360 / this.countPerRing;
    },
    /*
    * Used for calculating x/y grid location based on degrees
    */
    degrees() {
      return this.degreesPerUnit * Math.PI / 180;
    },
    /*
    * Calculates the angle the clock hand should be rotated for the
    * selected value
    */
    handRotateAngle() {
      let currentAngle = this.prevAngle;
      while (currentAngle < 0) currentAngle += 360;
      const targetAngle = this.calcHandAngle(this.displayedValue);
      const degreesDiff = this.shortestDistanceDegrees(currentAngle, targetAngle);
      const angle = this.prevAngle + degreesDiff;
      return angle;
    },
    /*
    * Determines how long the selector hand is based on if the
    * selected value is located along the outer or inner ring
    */
    handScale() {
      return this.calcHandScale(this.displayedValue);
    },
    handStyle() {
      return {
        transform: `rotate(${this.handRotateAngle}deg) scaleY(${this.handScale})`,
        transition: ".3s cubic-bezier(.25,.8,.50,1)"
      };
    },
    /*
    * The value the hand should be pointing at
    */
    displayedValue() {
      return this.inputValue == null ? this.min : this.inputValue;
    }
  },
  watch: {
    value(value) {
      if (value !== this.inputValue) {
        this.prevAngle = this.handRotateAngle;
      }
      this.inputValue = value;
    }
  },
  methods: {
    isDisabled(value) {
      return this.disabledValues && this.disabledValues(value);
    },
    /*
    * Calculates the distance between two points
    */
    euclidean(p0, p1) {
      const dx = p1.x - p0.x;
      const dy = p1.y - p0.y;
      return Math.sqrt(dx * dx + dy * dy);
    },
    shortestDistanceDegrees(start, stop) {
      const modDiff = (stop - start) % 360;
      const shortestDistance = 180 - Math.abs(Math.abs(modDiff) - 180);
      return (modDiff + 360) % 360 < 180 ? shortestDistance * 1 : shortestDistance * -1;
    },
    /*
    * Calculates the angle of the line from the center point
    * to the given point.
    */
    coordToAngle(center, p1) {
      const value = 2 * Math.atan2(p1.y - center.y - this.euclidean(center, p1), p1.x - center.x);
      return Math.abs(value * 180 / Math.PI);
    },
    /*
    * Generates the inline style translate() property for a
    * number indicator, which determines it's location on the
    * clock face
    */
    getNumberTranslate(value) {
      const { x, y } = this.getNumberCoords(value);
      return `translate(${x}px, ${y}px)`;
    },
    /*
    * Calculates the coordinates on the clock face for a number
    * indicator value
    */
    getNumberCoords(value) {
      const radius = this.isInnerRing(value) ? this.innerRadius : this.outerRadius;
      return {
        x: Math.round(radius * Math.sin((value - this.min) * this.degrees)),
        y: Math.round(-radius * Math.cos((value - this.min) * this.degrees))
      };
    },
    getFaceNumberClasses(num) {
      return {
        active: num.value === this.displayedValue,
        disabled: this.isDisabled(num.value)
      };
    },
    /*
    * Determines if a value resides on the inner ring
    */
    isInnerRing(value) {
      return this.double && value - this.min >= this.countPerRing;
    },
    calcHandAngle(value) {
      let angle = this.degreesPerUnit * (value - this.min);
      if (this.isInnerRing(value)) angle -= 360;
      return angle;
    },
    calcHandScale(value) {
      return this.isInnerRing(value) ? this.innerRadius / this.outerRadius : 1;
    },
    onMouseDown(e) {
      e.preventDefault();
      this.isDragging = true;
      this.onDragMove(e);
    },
    onMouseUp() {
      this.isDragging = false;
      if (!this.isDisabled(this.inputValue)) {
        this.$emit("change", this.inputValue);
      }
    },
    onDragMove(e) {
      e.preventDefault();
      if (!this.isDragging && e.type !== "click") return;
      const { width, top, left } = this.$refs.clock.getBoundingClientRect();
      const { clientX, clientY } = "touches" in e ? e.touches[0] : e;
      const center = { x: width / 2, y: -width / 2 };
      const coords = { x: clientX - left, y: top - clientY };
      const handAngle = Math.round(this.coordToAngle(center, coords) + 360) % 360;
      const insideClick = this.double && this.euclidean(center, coords) < (this.outerRadius + this.innerRadius) / 2 - 16;
      let value = Math.round(handAngle / this.degreesPerUnit) + this.min + (insideClick ? this.countPerRing : 0);
      if (handAngle >= 360 - this.degreesPerUnit / 2) {
        value = insideClick ? this.max : this.min;
      }
      this.update(value);
    },
    update(value) {
      if (this.inputValue !== value && !this.isDisabled(value)) {
        this.prevAngle = this.handRotateAngle;
        this.inputValue = value;
        this.$emit("input", value);
      }
    }
  }
});

const _hoisted_1$H = {
  class: "b-clockpicker-face-outer-ring",
  ref: "clock"
};
function _sfc_render$N(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      class: "b-clockpicker-face",
      onMousedown: _cache[0] || (_cache[0] = (...args) => _ctx.onMouseDown && _ctx.onMouseDown(...args)),
      onMouseup: _cache[1] || (_cache[1] = (...args) => _ctx.onMouseUp && _ctx.onMouseUp(...args)),
      onMousemove: _cache[2] || (_cache[2] = (...args) => _ctx.onDragMove && _ctx.onDragMove(...args)),
      onTouchstart: _cache[3] || (_cache[3] = (...args) => _ctx.onMouseDown && _ctx.onMouseDown(...args)),
      onTouchend: _cache[4] || (_cache[4] = (...args) => _ctx.onMouseUp && _ctx.onMouseUp(...args)),
      onTouchmove: _cache[5] || (_cache[5] = (...args) => _ctx.onDragMove && _ctx.onDragMove(...args))
    },
    [
      createBaseVNode(
        "div",
        _hoisted_1$H,
        [
          createBaseVNode(
            "div",
            {
              class: "b-clockpicker-face-hand",
              style: normalizeStyle(_ctx.handStyle)
            },
            null,
            4
            /* STYLE */
          ),
          (openBlock(true), createElementBlock(
            Fragment,
            null,
            renderList(_ctx.faceNumbers, (num, index) => {
              return openBlock(), createElementBlock(
                "span",
                {
                  key: index,
                  class: normalizeClass(["b-clockpicker-face-number", _ctx.getFaceNumberClasses(num)]),
                  style: normalizeStyle({ transform: _ctx.getNumberTranslate(num.value) })
                },
                [
                  createBaseVNode(
                    "span",
                    null,
                    toDisplayString$1(num.label),
                    1
                    /* TEXT */
                  )
                ],
                6
                /* CLASS, STYLE */
              );
            }),
            128
            /* KEYED_FRAGMENT */
          ))
        ],
        512
        /* NEED_PATCH */
      )
    ],
    32
    /* NEED_HYDRATION */
  );
}
var BClockpickerFace = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["render", _sfc_render$N]]);

const outerPadding = 12;
var _sfc_main$B = defineComponent({
  name: "BClockpicker",
  components: {
    BClockpickerFace,
    BInput,
    BDropdown
  },
  mixins: [TimepickerMixin],
  props: {
    pickerSize: {
      type: Number,
      default: 290
    },
    incrementMinutes: {
      type: Number,
      default: 5
    },
    type: {
      type: String,
      default: "is-primary"
    },
    hoursLabel: {
      type: String,
      default: () => config.defaultClockpickerHoursLabel || "Hours"
    },
    minutesLabel: {
      type: String,
      default: () => config.defaultClockpickerMinutesLabel || "Min"
    }
  },
  data() {
    return {
      isSelectingHour: true,
      isDragging: false,
      _isClockpicker: true
    };
  },
  computed: {
    hoursDisplay() {
      if (this.hoursSelected == null) return "--";
      if (this.isHourFormat24) return this.pad(this.hoursSelected);
      let display = this.hoursSelected;
      if (this.meridienSelected === this.pmString) {
        display -= 12;
      }
      if (display === 0) display = 12;
      return display;
    },
    minutesDisplay() {
      return this.minutesSelected == null ? "--" : this.pad(this.minutesSelected);
    },
    minFaceValue() {
      return this.isSelectingHour && !this.isHourFormat24 && this.meridienSelected === this.pmString ? 12 : 0;
    },
    maxFaceValue() {
      return this.isSelectingHour ? !this.isHourFormat24 && this.meridienSelected === this.amString ? 11 : 23 : 59;
    },
    faceSize() {
      return this.pickerSize - outerPadding * 2;
    },
    faceDisabledValues() {
      return this.isSelectingHour ? this.isHourDisabled : this.isMinuteDisabled;
    }
  },
  methods: {
    onClockInput(value) {
      if (this.isSelectingHour) {
        this.hoursSelected = value;
        this.onHoursChange(value);
      } else {
        this.minutesSelected = value;
        this.onMinutesChange(value);
      }
    },
    onClockChange() {
      if (this.isSelectingHour) {
        this.isSelectingHour = !this.isSelectingHour;
      } else {
        this.toggle(false);
      }
    },
    /*
     * Toggle clockpicker
     */
    toggle(active) {
      if (this.$refs.dropdown) {
        const dropdown = this.$refs.dropdown;
        dropdown.isActive = active != null ? active : !dropdown.isActive;
        if (dropdown.isActive) {
          this.isSelectingHour = true;
        }
      }
    },
    onMeridienClick(value) {
      if (this.meridienSelected !== value) {
        this.meridienSelected = value;
        this.onMeridienChange(value);
      }
    },
    /*
     * Avoid dropdown toggle when is already visible
     */
    onInputClick(event) {
      if (this.$refs.dropdown.isActive) {
        event.stopPropagation();
      }
    }
  }
});

const _hoisted_1$G = ["disabled"];
const _hoisted_2$z = {
  key: 0,
  class: "card-header"
};
const _hoisted_3$m = { class: "b-clockpicker-header card-header-title" };
const _hoisted_4$h = { class: "b-clockpicker-time" };
const _hoisted_5$b = {
  key: 0,
  class: "b-clockpicker-period"
};
const _hoisted_6$9 = { class: "card-content" };
const _hoisted_7$8 = {
  key: 0,
  class: "b-clockpicker-time"
};
const _hoisted_8$7 = {
  key: 1,
  class: "b-clockpicker-period"
};
const _hoisted_9$5 = {
  key: 1,
  class: "b-clockpicker-footer card-footer"
};
function _sfc_render$M(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_input = resolveComponent("b-input");
  const _component_b_clockpicker_face = resolveComponent("b-clockpicker-face");
  const _component_b_dropdown = resolveComponent("b-dropdown");
  return openBlock(), createElementBlock(
    "div",
    mergeProps({
      class: ["b-clockpicker control", [_ctx.size, _ctx.type, { "is-expanded": _ctx.expanded }]]
    }, _ctx.rootAttrs),
    [
      !_ctx.isMobile || _ctx.inline ? (openBlock(), createBlock(_component_b_dropdown, {
        key: 0,
        ref: "dropdown",
        position: _ctx.position,
        disabled: _ctx.disabledOrUndefined,
        inline: _ctx.inline,
        "mobile-modal": _ctx.mobileModal,
        "append-to-body": _ctx.appendToBody,
        "append-to-body-copy-parent": "",
        onActiveChange: _ctx.onActiveChange
      }, createSlots({
        default: withCtx(() => [
          createBaseVNode("div", {
            class: "card",
            disabled: _ctx.disabledOrUndefined,
            custom: ""
          }, [
            _ctx.inline ? (openBlock(), createElementBlock("header", _hoisted_2$z, [
              createBaseVNode("div", _hoisted_3$m, [
                createBaseVNode("div", _hoisted_4$h, [
                  createBaseVNode(
                    "span",
                    {
                      class: normalizeClass(["b-clockpicker-btn", { active: _ctx.isSelectingHour }]),
                      onClick: _cache[3] || (_cache[3] = ($event) => _ctx.isSelectingHour = true)
                    },
                    toDisplayString$1(_ctx.hoursDisplay),
                    3
                    /* TEXT, CLASS */
                  ),
                  createBaseVNode(
                    "span",
                    null,
                    toDisplayString$1(_ctx.hourLiteral),
                    1
                    /* TEXT */
                  ),
                  createBaseVNode(
                    "span",
                    {
                      class: normalizeClass(["b-clockpicker-btn", { active: !_ctx.isSelectingHour }]),
                      onClick: _cache[4] || (_cache[4] = ($event) => _ctx.isSelectingHour = false)
                    },
                    toDisplayString$1(_ctx.minutesDisplay),
                    3
                    /* TEXT, CLASS */
                  )
                ]),
                !_ctx.isHourFormat24 ? (openBlock(), createElementBlock("div", _hoisted_5$b, [
                  createBaseVNode(
                    "div",
                    {
                      class: normalizeClass(["b-clockpicker-btn", {
                        active: _ctx.meridienSelected === _ctx.amString || _ctx.meridienSelected === _ctx.AM
                      }]),
                      onClick: _cache[5] || (_cache[5] = ($event) => _ctx.onMeridienClick(_ctx.amString))
                    },
                    toDisplayString$1(_ctx.amString),
                    3
                    /* TEXT, CLASS */
                  ),
                  createBaseVNode(
                    "div",
                    {
                      class: normalizeClass(["b-clockpicker-btn", {
                        active: _ctx.meridienSelected === _ctx.pmString || _ctx.meridienSelected === _ctx.PM
                      }]),
                      onClick: _cache[6] || (_cache[6] = ($event) => _ctx.onMeridienClick(_ctx.pmString))
                    },
                    toDisplayString$1(_ctx.pmString),
                    3
                    /* TEXT, CLASS */
                  )
                ])) : createCommentVNode("v-if", true)
              ])
            ])) : createCommentVNode("v-if", true),
            createBaseVNode("div", _hoisted_6$9, [
              createBaseVNode(
                "div",
                {
                  class: "b-clockpicker-body",
                  style: normalizeStyle({ width: _ctx.faceSize + "px", height: _ctx.faceSize + "px" })
                },
                [
                  !_ctx.inline ? (openBlock(), createElementBlock("div", _hoisted_7$8, [
                    createBaseVNode(
                      "div",
                      {
                        class: normalizeClass(["b-clockpicker-btn", { active: _ctx.isSelectingHour }]),
                        onClick: _cache[7] || (_cache[7] = ($event) => _ctx.isSelectingHour = true)
                      },
                      toDisplayString$1(_ctx.hoursLabel),
                      3
                      /* TEXT, CLASS */
                    ),
                    createBaseVNode(
                      "span",
                      {
                        class: normalizeClass(["b-clockpicker-btn", { active: !_ctx.isSelectingHour }]),
                        onClick: _cache[8] || (_cache[8] = ($event) => _ctx.isSelectingHour = false)
                      },
                      toDisplayString$1(_ctx.minutesLabel),
                      3
                      /* TEXT, CLASS */
                    )
                  ])) : createCommentVNode("v-if", true),
                  !_ctx.isHourFormat24 && !_ctx.inline ? (openBlock(), createElementBlock("div", _hoisted_8$7, [
                    createBaseVNode(
                      "div",
                      {
                        class: normalizeClass(["b-clockpicker-btn", {
                          active: _ctx.meridienSelected === _ctx.amString || _ctx.meridienSelected === _ctx.AM
                        }]),
                        onClick: _cache[9] || (_cache[9] = ($event) => _ctx.onMeridienClick(_ctx.amString))
                      },
                      toDisplayString$1(_ctx.amString),
                      3
                      /* TEXT, CLASS */
                    ),
                    createBaseVNode(
                      "div",
                      {
                        class: normalizeClass(["b-clockpicker-btn", {
                          active: _ctx.meridienSelected === _ctx.pmString || _ctx.meridienSelected === _ctx.PM
                        }]),
                        onClick: _cache[10] || (_cache[10] = ($event) => _ctx.onMeridienClick(_ctx.pmString))
                      },
                      toDisplayString$1(_ctx.pmString),
                      3
                      /* TEXT, CLASS */
                    )
                  ])) : createCommentVNode("v-if", true),
                  createVNode(_component_b_clockpicker_face, {
                    ref: "clockpickerFace",
                    "picker-size": _ctx.faceSize,
                    min: _ctx.minFaceValue,
                    max: _ctx.maxFaceValue,
                    "face-numbers": _ctx.isSelectingHour ? _ctx.hours : _ctx.minutes,
                    "disabled-values": _ctx.faceDisabledValues,
                    double: _ctx.isSelectingHour && _ctx.isHourFormat24,
                    value: _ctx.isSelectingHour ? _ctx.hoursSelected ?? void 0 : _ctx.minutesSelected ?? void 0,
                    onInput: _ctx.onClockInput,
                    onChange: _ctx.onClockChange
                  }, null, 8, ["picker-size", "min", "max", "face-numbers", "disabled-values", "double", "value", "onInput", "onChange"])
                ],
                4
                /* STYLE */
              )
            ]),
            _ctx.$slots.default !== void 0 && _ctx.$slots.default([]).length ? (openBlock(), createElementBlock("footer", _hoisted_9$5, [
              renderSlot(_ctx.$slots, "default")
            ])) : createCommentVNode("v-if", true)
          ], 8, _hoisted_1$G)
        ]),
        _: 2
        /* DYNAMIC */
      }, [
        !_ctx.inline ? {
          name: "trigger",
          fn: withCtx(() => [
            renderSlot(_ctx.$slots, "trigger", {}, () => [
              createVNode(_component_b_input, mergeProps({
                ref: "input",
                autocomplete: "off",
                "model-value": _ctx.formatValue(_ctx.computedValue),
                placeholder: _ctx.placeholder,
                size: _ctx.size,
                icon: _ctx.icon,
                "icon-pack": _ctx.iconPack,
                loading: _ctx.loading,
                disabled: _ctx.disabledOrUndefined,
                readonly: !_ctx.editable,
                rounded: _ctx.rounded
              }, _ctx.fallthroughAttrs, {
                "use-html5-validation": _ctx.useHtml5Validation,
                onClick: _ctx.onInputClick,
                onKeyup: _cache[0] || (_cache[0] = withKeys(($event) => _ctx.toggle(true), ["enter"])),
                onChange: _cache[1] || (_cache[1] = ($event) => _ctx.onChange($event.target.value)),
                onFocus: _ctx.handleOnFocus,
                onBlur: _cache[2] || (_cache[2] = ($event) => _ctx.checkHtml5Validity())
              }), null, 16, ["model-value", "placeholder", "size", "icon", "icon-pack", "loading", "disabled", "readonly", "rounded", "use-html5-validation", "onClick", "onFocus"])
            ])
          ]),
          key: "0"
        } : void 0
      ]), 1032, ["position", "disabled", "inline", "mobile-modal", "append-to-body", "onActiveChange"])) : (openBlock(), createBlock(_component_b_input, mergeProps({
        key: 1,
        ref: "input",
        type: "time",
        autocomplete: "off",
        "model-value": _ctx.formatHHMMSS(_ctx.computedValue),
        placeholder: _ctx.placeholder,
        size: _ctx.size,
        icon: _ctx.icon,
        "icon-pack": _ctx.iconPack,
        loading: _ctx.loading,
        max: _ctx.formatHHMMSS(_ctx.maxTime),
        min: _ctx.formatHHMMSS(_ctx.minTime),
        disabled: _ctx.disabledOrUndefined,
        readonly: false
      }, _ctx.fallthroughAttrs, {
        "use-html5-validation": _ctx.useHtml5Validation,
        onClick: _cache[11] || (_cache[11] = withModifiers(($event) => _ctx.toggle(true), ["stop"])),
        onKeyup: _cache[12] || (_cache[12] = withKeys(($event) => _ctx.toggle(true), ["enter"])),
        onChange: _ctx.onChangeNativePicker,
        onFocus: _ctx.handleOnFocus,
        onBlur: _cache[13] || (_cache[13] = ($event) => _ctx.onBlur() && _ctx.checkHtml5Validity())
      }), null, 16, ["model-value", "placeholder", "size", "icon", "icon-pack", "loading", "max", "min", "disabled", "use-html5-validation", "onChange", "onFocus"]))
    ],
    16
    /* FULL_PROPS */
  );
}
var Clockpicker = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["render", _sfc_render$M]]);

const Plugin$x = {
  install(Vue) {
    registerComponent(Vue, Clockpicker);
  }
};

const cos30 = 0.86602540378;
const sin30 = 0.5;
let id = 0;
var _sfc_main$A = defineComponent({
  name: "BColorpickerHSLRepresentationTriangle",
  props: {
    value: {
      type: Object,
      required: true,
      validator(value) {
        return typeof value.hue === "number" && typeof value.saturation === "number" && typeof value.lightness === "number";
      }
    },
    size: {
      type: Number,
      default: 200
    },
    thickness: {
      type: Number,
      default: 20
    }
  },
  emits: {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    input: (_value) => true
  },
  data() {
    return {
      id: id++,
      hue: this.value.hue,
      saturation: this.value.saturation,
      lightness: this.value.lightness,
      captureMouse: false,
      captureType: "hue",
      clientOffset: {
        cx: -1,
        cy: -1,
        width: 0,
        height: 0
      },
      cos30,
      sin30,
      debounce: 0
    };
  },
  computed: {
    viewBox() {
      const { size } = this;
      return `0 0 ${size} ${size}`;
    },
    internalRadius() {
      return this.size / 2 - this.thickness;
    },
    haloPath() {
      const { size, thickness } = this;
      const radius = size / 2 - 2;
      const thicknessRadius = radius - thickness;
      const center = size / 2;
      return `M${center - radius} ${center}a${radius}  ${radius}  0 1 1 ${2 * radius} 0h${-thickness}a${-thicknessRadius}  ${thicknessRadius}  0 1 0 ${ -2 * thicknessRadius} 0a${thicknessRadius}  ${thicknessRadius}  0 1 0 ${2 * thicknessRadius} 0h${thickness}a${radius}  ${radius}  0 1 1 ${ -2 * radius} 0z`;
    },
    trianglePath() {
      const { size, thickness } = this;
      const radius = size - 4;
      const thicknessRadius = (radius - 2 * thickness) / 2;
      return `M0 ${-thicknessRadius}L${cos30 * thicknessRadius} ${sin30 * thicknessRadius}H${ -0.86602540378 * thicknessRadius}z`;
    }
  },
  watch: {
    captureMouse(newValue, oldValue) {
      if (oldValue === false && newValue !== false) {
        const rect = this.$el.getBoundingClientRect();
        this.clientOffset.cx = rect.x + rect.width / 2;
        this.clientOffset.cy = rect.y + rect.height / 2;
        this.clientOffset.width = rect.width;
        this.clientOffset.height = rect.height;
      }
    },
    value: {
      deep: true,
      handler(newColor) {
        const { hue, saturation, lightness } = newColor;
        window.clearTimeout(this.debounce);
        this.debounce = window.setTimeout(() => {
          if (lightness >= 0.03 && lightness <= 0.97 && saturation > 0) {
            this.hue = hue;
          }
          this.saturation = saturation;
          this.lightness = lightness;
        }, 200);
      }
    }
  },
  methods: {
    increaseHue(value = 1) {
      this.hue = (this.hue + value) % 360;
    },
    decreaseHue(value = 1) {
      this.hue = (360 + this.hue - value) % 360;
    },
    increaseSaturation(value = 0.01) {
      this.saturation = Math.min(1, Math.max(0, this.saturation + value));
      this.lightness = Math.min(
        0.5 + (1 - this.saturation) * 0.5,
        Math.max(
          0.5 - (1 - this.saturation) * 0.5,
          this.lightness
        )
      );
    },
    decreaseSaturation(value = 0.01) {
      this.saturation = Math.min(1, Math.max(0, this.saturation - value));
      this.lightness = Math.min(
        0.5 + (1 - this.saturation) * 0.5,
        Math.max(
          0.5 - (1 - this.saturation) * 0.5,
          this.lightness
        )
      );
    },
    increaseLightness(value = 0.01) {
      this.lightness = Math.min(
        0.5 + (1 - this.saturation) * 0.5,
        Math.max(
          0.5 - (1 - this.saturation) * 0.5,
          this.lightness + value
        )
      );
    },
    decreaseLightness(value = 0.01) {
      this.lightness = Math.min(
        0.5 + (1 - this.saturation) * 0.5,
        Math.max(
          0.5 - (1 - this.saturation) * 0.5,
          this.lightness - value
        )
      );
    },
    hueKeyPress(event) {
      let handled = false;
      switch (event.key) {
        case "ArrowRight":
        case "ArrowUp":
          this.increaseHue();
          handled = true;
          break;
        case "ArrowLeft":
        case "ArrowDown":
          this.decreaseHue();
          handled = true;
          break;
        case "Home":
          this.increaseHue(360 - this.hue);
          handled = true;
          break;
        case "End":
          this.decreaseHue(this.hue);
          handled = true;
          break;
        case "PageUp":
          this.increaseHue(60 - this.hue % 60);
          handled = true;
          break;
        case "PageDown":
          this.decreaseHue(60 + this.hue % 60);
          handled = true;
          break;
      }
      if (handled) {
        event.preventDefault();
        event.stopPropagation();
        this.emitColor();
      }
    },
    slKeyPress(event) {
      let handled = false;
      switch (event.key) {
        case "ArrowRight":
          this.decreaseLightness();
          handled = true;
          break;
        case "ArrowUp":
          this.increaseSaturation();
          handled = true;
          break;
        case "ArrowLeft":
          this.increaseLightness();
          handled = true;
          break;
        case "ArrowDown":
          this.decreaseSaturation();
          handled = true;
          break;
        case "Home":
          this.increaseLightness(1 - this.lightness);
          handled = true;
          break;
        case "End":
          this.decreaseLightness(this.lightness);
          handled = true;
          break;
        case "PageUp":
          this.increaseSaturation(1 - this.saturation);
          handled = true;
          break;
        case "PageDown":
          this.decreaseSaturation(this.saturation);
          handled = true;
          break;
      }
      if (handled) {
        event.preventDefault();
        event.stopPropagation();
        this.emitColor();
      }
    },
    clickHue(event) {
      this.startMouseCapture(event);
      this.trackMouse(event);
      this.stopMouseCapture(event);
      this.$refs.hueCursor.focus();
    },
    clickSL(event) {
      this.startMouseCapture(event);
      this.trackMouse(event);
      this.stopMouseCapture(event);
      this.$refs.slCursor.focus();
    },
    trackMouse(event) {
      if (this.captureMouse === false) {
        return;
      }
      event.preventDefault();
      event.stopPropagation();
      const touches = event.touches;
      let [mouseX, mouseY] = [0, 0];
      if (typeof touches !== "undefined" && touches.length) {
        [mouseX, mouseY] = [touches[0].clientX, touches[0].clientY];
      } else {
        [mouseX, mouseY] = [event.clientX, event.clientY];
      }
      const angle = Math.atan2(
        mouseY - this.clientOffset.cy,
        mouseX - this.clientOffset.cx
      );
      if (this.captureType === "sl") {
        const d = Math.sqrt(
          Math.pow(mouseX - this.clientOffset.cx, 2) + Math.pow(mouseY - this.clientOffset.cy, 2)
        );
        const ratio = this.size / this.clientOffset.width;
        const dx = d * Math.cos(angle - this.hue / 180 * Math.PI) * ratio;
        const dy = d * Math.sin(angle - this.hue / 180 * Math.PI) * ratio;
        const radius = this.internalRadius;
        const saturation = 1 - (Math.min(
          radius * sin30,
          Math.max(
            -radius,
            dy
          )
        ) + radius) / (radius + radius * sin30);
        const lightness = (Math.min(
          radius * cos30 * (1 - saturation),
          Math.max(
            -radius * cos30 * (1 - saturation),
            dx
          )
        ) + radius * cos30) / (radius * 2 * cos30);
        this.saturation = Math.round(saturation * 1e3) / 1e3;
        this.lightness = 1 - Math.round(lightness * 1e3) / 1e3;
      } else {
        this.hue = Math.round(angle / Math.PI * 180 + 90) % 360;
      }
      this.emitColor();
    },
    startMouseCapture(event) {
      event.stopPropagation();
      this.captureMouse = true;
      if (event.target.closest(".colorpicker-triangle-slider-sl") !== null) {
        this.captureType = "sl";
      } else {
        this.captureType = "hue";
      }
    },
    stopMouseCapture(event) {
      if (this.captureMouse !== false) {
        event.preventDefault();
        event.stopPropagation();
        this.$refs[this.captureType === "sl" ? "slCursor" : "hueCursor"].focus();
      }
      this.captureMouse = false;
    },
    emitColor() {
      const { hue, saturation, lightness } = this;
      this.$emit("input", Color.fromHSL(hue, saturation, lightness));
      window.clearTimeout(this.debounce);
    }
  },
  mounted() {
    window.addEventListener("mousemove", this.trackMouse);
    window.addEventListener("touchmove", this.trackMouse, { passive: false });
    window.addEventListener("mouseup", this.stopMouseCapture);
    window.addEventListener("touchend", this.stopMouseCapture);
  },
  beforeUnmount() {
    window.removeEventListener("mousemove", this.trackMouse);
    window.removeEventListener("touchmove", this.trackMouse);
    window.removeEventListener("mouseup", this.stopMouseCapture);
    window.removeEventListener("touchend", this.stopMouseCapture);
    clearTimeout(this.debounce);
  }
});

const _hoisted_1$F = ["viewBox"];
const _hoisted_2$y = ["id"];
const _hoisted_3$l = /* @__PURE__ */ createBaseVNode(
  "stop",
  {
    offset: "0%",
    "stop-color": "#fff"
  },
  null,
  -1
  /* HOISTED */
);
const _hoisted_4$g = /* @__PURE__ */ createBaseVNode(
  "stop",
  {
    offset: "100%",
    "stop-color": "#000"
  },
  null,
  -1
  /* HOISTED */
);
const _hoisted_5$a = [
  _hoisted_3$l,
  _hoisted_4$g
];
const _hoisted_6$8 = ["id"];
const _hoisted_7$7 = ["stop-color"];
const _hoisted_8$6 = ["stop-color"];
const _hoisted_9$4 = ["id"];
const _hoisted_10$3 = ["d"];
const _hoisted_11$3 = { class: "colorpicker-triangle-slider-hue" };
const _hoisted_12$3 = ["width", "height", "clip-path"];
const _hoisted_13$1 = ["x", "height"];
const _hoisted_14$1 = ["aria-valuenow"];
const _hoisted_15$1 = ["d", "fill"];
const _hoisted_16$1 = ["d", "fill"];
const _hoisted_17$1 = ["x", "y"];
const _hoisted_18$1 = ["aria-datavalues"];
function _sfc_render$L(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("svg", {
    viewBox: _ctx.viewBox,
    class: "b-colorpicker-triangle"
  }, [
    createBaseVNode("defs", null, [
      createBaseVNode("linearGradient", {
        id: `cp-triangle-gradient-ligthness-${_ctx.id}`,
        x1: "0",
        y1: "0",
        x2: "1",
        y2: "0"
      }, [..._hoisted_5$a], 8, _hoisted_2$y),
      createBaseVNode("linearGradient", {
        id: `cp-triangle-gradient-saturation-${_ctx.id}`,
        x1: "0",
        y1: "0",
        x2: "0",
        y2: "1"
      }, [
        createBaseVNode("stop", {
          offset: "0%",
          "stop-color": `hsl(${_ctx.hue}deg, 100%, 50%)`,
          "stop-opacity": "1"
        }, null, 8, _hoisted_7$7),
        createBaseVNode("stop", {
          offset: "100%",
          "stop-color": `hsl(${_ctx.hue}deg, 100%, 50%)`,
          "stop-opacity": "0"
        }, null, 8, _hoisted_8$6)
      ], 8, _hoisted_6$8),
      createBaseVNode("clipPath", {
        id: `cp-triangle-clip-${_ctx.id}`
      }, [
        createBaseVNode("path", { d: _ctx.haloPath }, null, 8, _hoisted_10$3)
      ], 8, _hoisted_9$4)
    ]),
    createBaseVNode("g", _hoisted_11$3, [
      (openBlock(), createElementBlock("foreignObject", {
        x: 0,
        y: 0,
        width: _ctx.size,
        height: _ctx.size,
        "clip-path": `url(#cp-triangle-clip-${_ctx.id})`
      }, [
        createBaseVNode(
          "div",
          {
            class: "colorpicker-triangle-hue",
            onClick: _cache[0] || (_cache[0] = (...args) => _ctx.clickHue && _ctx.clickHue(...args)),
            onMousedown: _cache[1] || (_cache[1] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"])),
            onTouchstart: _cache[2] || (_cache[2] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"]))
          },
          null,
          32
          /* NEED_HYDRATION */
        )
      ], 8, _hoisted_12$3)),
      createBaseVNode(
        "g",
        {
          style: normalizeStyle(`transform: rotate(${_ctx.hue}deg)`)
        },
        [
          (openBlock(), createElementBlock("foreignObject", {
            x: _ctx.size / 2 - 4,
            y: 0,
            width: "8",
            height: _ctx.thickness + 4
          }, [
            createBaseVNode("div", {
              ref: "hueCursor",
              class: "hue-range-thumb",
              style: normalizeStyle(`background-color: hsl(${_ctx.hue}deg, 100%, 50%)`),
              role: "slider",
              tabindex: "0",
              "aria-label": "Hue",
              "aria-valuemin": "0",
              "aria-valuenow": _ctx.hue,
              "aria-valuemax": "360",
              onClick: _cache[3] || (_cache[3] = (...args) => _ctx.clickHue && _ctx.clickHue(...args)),
              onKeydown: _cache[4] || (_cache[4] = (...args) => _ctx.hueKeyPress && _ctx.hueKeyPress(...args)),
              onMousedown: _cache[5] || (_cache[5] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"])),
              onTouchstart: _cache[6] || (_cache[6] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"]))
            }, null, 44, _hoisted_14$1)
          ], 8, _hoisted_13$1))
        ],
        4
        /* STYLE */
      )
    ]),
    createBaseVNode(
      "g",
      {
        class: "colorpicker-triangle-slider-sl",
        style: normalizeStyle(`transform: rotate(${_ctx.hue}deg) translate(50%, 50%)`),
        role: "graphics-datagroup",
        "aria-datascales": "lightness, saturation"
      },
      [
        createBaseVNode("path", {
          d: _ctx.trianglePath,
          fill: `url(#cp-triangle-gradient-ligthness-${_ctx.id})`
        }, null, 8, _hoisted_15$1),
        createBaseVNode("path", {
          d: _ctx.trianglePath,
          fill: `url(#cp-triangle-gradient-saturation-${_ctx.id})`,
          style: { "mix-blend-mode": "overlay" },
          onClick: _cache[7] || (_cache[7] = (...args) => _ctx.clickSL && _ctx.clickSL(...args)),
          onMousedown: _cache[8] || (_cache[8] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"])),
          onTouchstart: _cache[9] || (_cache[9] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"]))
        }, null, 40, _hoisted_16$1),
        (openBlock(), createElementBlock("foreignObject", {
          x: (_ctx.internalRadius - 3) * _ctx.cos30 * (-_ctx.lightness + 0.5) * 2 - 6,
          y: -_ctx.internalRadius + (1 - _ctx.saturation) * (_ctx.internalRadius - 3) * 1.5 - 3,
          width: "12",
          height: "12"
        }, [
          createBaseVNode("div", {
            ref: "slCursor",
            class: "sl-range-thumb",
            style: normalizeStyle({
              backgroundColor: `hsl(${_ctx.hue}deg, ${_ctx.saturation * 100}%, ${_ctx.lightness * 100}%)`
            }),
            tabindex: "0",
            "aria-datavalues": `${_ctx.saturation * 100}%, ${_ctx.lightness * 100}%`,
            onClick: _cache[10] || (_cache[10] = (...args) => _ctx.clickSL && _ctx.clickSL(...args)),
            onKeydown: _cache[11] || (_cache[11] = (...args) => _ctx.slKeyPress && _ctx.slKeyPress(...args)),
            onMousedown: _cache[12] || (_cache[12] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"])),
            onTouchstart: _cache[13] || (_cache[13] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"]))
          }, null, 44, _hoisted_18$1)
        ], 8, _hoisted_17$1))
      ],
      4
      /* STYLE */
    )
  ], 8, _hoisted_1$F);
}
var BColorpickerHSLRepresentationTriangle = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["render", _sfc_render$L]]);

const precision = (strs, ...values) => {
  const tmp = [];
  strs.forEach((str, i) => {
    tmp.push(str);
    const value = values[i];
    if (value) {
      tmp.push(
        Number.isNaN(+value / 1) ? value : Math.round(+value * 10) / 10
      );
    }
  });
  return tmp.join("");
};
var _sfc_main$z = defineComponent({
  name: "BColorpickerHSLRepresentationSquare",
  props: {
    value: {
      type: Object,
      required: true,
      validator(value) {
        return typeof value.hue === "number" && typeof value.saturation === "number" && typeof value.lightness === "number";
      }
    },
    size: {
      type: Number,
      default: 200
    },
    thickness: {
      type: Number,
      default: 20
    }
  },
  emits: {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    input: (_value) => true
  },
  data() {
    return {
      hue: this.value.hue,
      saturation: this.value.saturation,
      lightness: this.value.lightness,
      captureMouse: false,
      captureType: "hue",
      clientOffset: {
        cx: -1,
        cy: -1,
        width: 0,
        height: 0
      },
      debounce: 0
    };
  },
  computed: {
    hueThumbStyle() {
      const { hue, size, thickness } = this;
      const side = size - thickness;
      const offset = size / 2;
      const angle = (hue + 720 + 90) % 360 / 180 * Math.PI;
      const ciq = 1 / Math.cos(Math.PI / 4);
      const { x, y } = {
        x: -Math.min(1, Math.max(-1, ciq * Math.cos(angle))) / 2 * side + offset,
        y: -Math.min(1, Math.max(-1, ciq * Math.sin(angle))) / 2 * side + offset
      };
      return {
        background: `hsl(${hue}deg, 100%, 50%)`,
        left: precision`${x}px`,
        top: precision`${y}px`,
        width: precision`${thickness - 2}px`
      };
    },
    slThumbStyle() {
      let { hue, saturation, lightness } = this;
      saturation = Math.max(0, Math.min(1, saturation));
      lightness = Math.max(0, Math.min(1, lightness));
      return {
        background: `hsl(${hue}deg, ${saturation * 100}%, ${lightness * 100}%)`,
        left: `${saturation * 100}%`,
        top: `${(1 - lightness) * 100}%`
      };
    },
    SLBackground() {
      const { hue } = this;
      return `linear-gradient(90deg, hsl(${hue}deg, 0%, 50%), hsl(${hue}deg, 100%, 50%))`;
    }
  },
  watch: {
    captureMouse(newValue, oldValue) {
      if (oldValue === false && newValue !== false) {
        const rect = this.$el.getBoundingClientRect();
        this.clientOffset.cx = rect.x + rect.width / 2;
        this.clientOffset.cy = rect.y + rect.height / 2;
        this.clientOffset.width = rect.width;
        this.clientOffset.height = rect.height;
      }
    },
    value: {
      deep: true,
      handler(newColor) {
        const { hue, saturation, lightness } = newColor;
        window.clearTimeout(this.debounce);
        this.debounce = window.setTimeout(() => {
          this.hue = hue;
          this.saturation = saturation;
          this.lightness = lightness;
        }, 200);
      }
    }
  },
  methods: {
    increaseHue(value = 1) {
      this.hue = (this.hue + value) % 360;
    },
    decreaseHue(value = 1) {
      this.hue = (360 + this.hue - value) % 360;
    },
    increaseSaturation(value = 0.01) {
      this.saturation = Math.min(1, Math.max(0, this.saturation + value));
      this.lightness = Math.min(
        0.5 + (1 - this.saturation) * 0.5,
        Math.max(
          0.5 - (1 - this.saturation) * 0.5,
          this.lightness
        )
      );
    },
    decreaseSaturation(value = 0.01) {
      this.saturation = Math.min(1, Math.max(0, this.saturation - value));
      this.lightness = Math.min(
        0.5 + (1 - this.saturation) * 0.5,
        Math.max(
          0.5 - (1 - this.saturation) * 0.5,
          this.lightness
        )
      );
    },
    increaseLightness(value = 0.01) {
      this.lightness = Math.min(
        0.5 + (1 - this.saturation) * 0.5,
        Math.max(
          0.5 - (1 - this.saturation) * 0.5,
          this.lightness + value
        )
      );
    },
    decreaseLightness(value = 0.01) {
      this.lightness = Math.min(
        0.5 + (1 - this.saturation) * 0.5,
        Math.max(
          0.5 - (1 - this.saturation) * 0.5,
          this.lightness - value
        )
      );
    },
    hueKeyPress(event) {
      let handled = false;
      switch (event.key) {
        case "ArrowRight":
        case "ArrowUp":
          this.increaseHue();
          handled = true;
          break;
        case "ArrowLeft":
        case "ArrowDown":
          this.decreaseHue();
          handled = true;
          break;
        case "Home":
          this.increaseHue(360 - this.hue);
          handled = true;
          break;
        case "End":
          this.decreaseHue(this.hue);
          handled = true;
          break;
        case "PageUp":
          this.increaseHue(60 - this.hue % 60);
          handled = true;
          break;
        case "PageDown":
          this.decreaseHue(60 + this.hue % 60);
          handled = true;
          break;
      }
      if (handled) {
        event.preventDefault();
        event.stopPropagation();
        this.emitColor();
      }
    },
    slKeyPress(event) {
      let handled = false;
      switch (event.key) {
        case "ArrowRight":
          this.increaseSaturation();
          handled = true;
          break;
        case "ArrowUp":
          this.increaseLightness();
          handled = true;
          break;
        case "ArrowLeft":
          this.decreaseSaturation();
          handled = true;
          break;
        case "ArrowDown":
          this.decreaseLightness();
          handled = true;
          break;
        case "Home":
          this.increaseLightness(1 - this.lightness);
          handled = true;
          break;
        case "End":
          this.decreaseLightness(this.lightness);
          handled = true;
          break;
        case "PageUp":
          this.increaseSaturation(1 - this.saturation);
          handled = true;
          break;
        case "PageDown":
          this.decreaseSaturation(this.saturation);
          handled = true;
          break;
      }
      if (handled) {
        event.preventDefault();
        event.stopPropagation();
        this.emitColor();
      }
    },
    startMouseCapture(event) {
      event.stopPropagation();
      this.captureMouse = true;
      if (event.target.closest(".colorpicker-square-slider-sl") !== null) {
        this.captureType = "sl";
      } else {
        this.captureType = "hue";
      }
    },
    stopMouseCapture(event) {
      if (this.captureMouse !== false) {
        event.preventDefault();
        event.stopPropagation();
        this.$refs[this.captureType === "sl" ? "slCursor" : "hueCursor"].focus();
      }
      this.captureMouse = false;
    },
    clickHue(event) {
      this.startMouseCapture(event);
      this.trackMouse(event);
      this.stopMouseCapture(event);
      this.$refs.hueCursor.focus();
    },
    clickSL(event) {
      this.startMouseCapture(event);
      this.trackMouse(event);
      this.stopMouseCapture(event);
      this.$refs.slCursor.focus();
    },
    trackMouse(event) {
      if (this.captureMouse === false) {
        return;
      }
      event.preventDefault();
      event.stopPropagation();
      const touches = event.touches;
      let [mouseX, mouseY] = [0, 0];
      if (typeof touches !== "undefined" && touches.length) {
        [mouseX, mouseY] = [touches[0].clientX, touches[0].clientY];
      } else {
        [mouseX, mouseY] = [event.clientX, event.clientY];
      }
      const angle = Math.atan2(
        mouseY - this.clientOffset.cy,
        mouseX - this.clientOffset.cx
      );
      if (this.captureType === "sl") {
        const saturation = (mouseX - this.clientOffset.cx) / (this.clientOffset.width - this.thickness * 2) + 0.5;
        const lightness = (mouseY - this.clientOffset.cy) / (this.clientOffset.height - this.thickness * 2) + 0.5;
        this.saturation = Math.round(Math.min(1, Math.max(0, saturation)) * 1e3) / 1e3;
        this.lightness = 1 - Math.round(Math.min(1, Math.max(0, lightness)) * 1e3) / 1e3;
      } else {
        this.hue = Math.round(angle / Math.PI * 180 + 90) % 360;
      }
      this.emitColor();
    },
    emitColor() {
      const { hue, saturation, lightness } = this;
      this.$emit("input", Color.fromHSL(hue, saturation, lightness));
      window.clearTimeout(this.debounce);
    }
  },
  mounted() {
    window.addEventListener("mousemove", this.trackMouse);
    window.addEventListener("touchmove", this.trackMouse, { passive: false });
    window.addEventListener("mouseup", this.stopMouseCapture);
    window.addEventListener("touchend", this.stopMouseCapture);
  },
  beforeUnmount() {
    window.removeEventListener("mousemove", this.trackMouse);
    window.removeEventListener("touchmove", this.trackMouse);
    window.removeEventListener("mouseup", this.stopMouseCapture);
    window.removeEventListener("touchend", this.stopMouseCapture);
    clearTimeout(this.debounce);
  }
});

const _hoisted_1$E = ["aria-datavalues"];
function _sfc_render$K(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      class: "b-colorpicker-square",
      style: normalizeStyle({ width: `${_ctx.size}px` })
    },
    [
      createBaseVNode(
        "div",
        {
          class: "colorpicker-square-slider-hue",
          onClick: _cache[0] || (_cache[0] = (...args) => _ctx.clickHue && _ctx.clickHue(...args)),
          onMousedown: _cache[1] || (_cache[1] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"])),
          onTouchstart: _cache[2] || (_cache[2] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"]))
        },
        [
          createBaseVNode(
            "div",
            {
              ref: "hueCursor",
              role: "slider",
              class: "hue-range-thumb",
              tabindex: "0",
              "aria-label": "Hue",
              "aria-valuemin": "0",
              "aria-valuemax": "359",
              style: normalizeStyle(_ctx.hueThumbStyle)
            },
            null,
            4
            /* STYLE */
          )
        ],
        32
        /* NEED_HYDRATION */
      ),
      createBaseVNode(
        "div",
        {
          class: "colorpicker-square-slider-sl",
          style: normalizeStyle({
            background: _ctx.SLBackground,
            margin: `${_ctx.thickness}px`
          }),
          "aria-datascales": "lightness, saturation",
          onClick: _cache[7] || (_cache[7] = (...args) => _ctx.clickSL && _ctx.clickSL(...args)),
          onMousedown: _cache[8] || (_cache[8] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"])),
          onTouchstart: _cache[9] || (_cache[9] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"]))
        },
        [
          createBaseVNode("div", {
            ref: "slCursor",
            role: "slider",
            class: "sl-range-thumb",
            tabindex: "0",
            "aria-datavalues": `${_ctx.saturation * 100}%, ${_ctx.lightness * 100}%`,
            style: normalizeStyle(_ctx.slThumbStyle),
            onClick: _cache[3] || (_cache[3] = (...args) => _ctx.clickSL && _ctx.clickSL(...args)),
            onKeydown: _cache[4] || (_cache[4] = (...args) => _ctx.slKeyPress && _ctx.slKeyPress(...args)),
            onMousedown: _cache[5] || (_cache[5] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"])),
            onTouchstart: _cache[6] || (_cache[6] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"]))
          }, null, 44, _hoisted_1$E)
        ],
        36
        /* STYLE, NEED_HYDRATION */
      )
    ],
    4
    /* STYLE */
  );
}
var BColorpickerHSLRepresentationSquare = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["render", _sfc_render$K]]);

const TOOLTIP_POSITIONS = ["is-auto", "is-top", "is-bottom", "is-left", "is-right"];
var _sfc_main$y = defineComponent({
  name: "BTooltip",
  props: {
    active: {
      type: Boolean,
      default: true
    },
    type: {
      type: String,
      default: () => config.defaultTooltipType
    },
    label: String,
    delay: {
      type: Number,
      default: () => config.defaultTooltipDelay
    },
    closeDelay: {
      type: Number,
      default: () => config.defaultTooltipCloseDelay
    },
    position: {
      type: String,
      default: "is-auto",
      validator(value) {
        return TOOLTIP_POSITIONS.indexOf(value) > -1;
      }
    },
    triggers: {
      type: Array,
      default: () => ["hover"]
    },
    always: Boolean,
    square: Boolean,
    dashed: Boolean,
    multilined: Boolean,
    size: {
      type: String,
      default: "is-medium"
    },
    appendToBody: Boolean,
    animated: {
      type: Boolean,
      default: true
    },
    animation: {
      type: String,
      default: "fade"
    },
    contentClass: String,
    autoClose: {
      type: [Array, Boolean],
      default: true
    }
  },
  emits: {
    close: () => true,
    open: () => true
  },
  data() {
    return {
      isActive: false,
      triggerStyle: {},
      timer: void 0,
      _bodyEl: void 0,
      // Used to append to body
      resizeObserver: void 0,
      resizeListener: void 0,
      timeOutID: void 0,
      controller: void 0,
      dynamicPosition: void 0
      // Computed once opened
    };
  },
  computed: {
    rootClasses() {
      return ["b-tooltip", this.type, this.dynamicPosition, this.size, {
        "is-square": this.square,
        "is-always": this.always,
        "is-multiline": this.multilined,
        "is-dashed": this.dashed
      }];
    },
    newAnimation() {
      return this.animated ? this.animation : void 0;
    }
  },
  watch: {
    isActive() {
      this.isActive ? this.$emit("open") : this.$emit("close");
      if (this.appendToBody) {
        this.updateAppendToBody();
      }
    }
  },
  methods: {
    computePosition() {
      if (this.position !== "is-auto") return this.position;
      const trigger = this.$refs.trigger;
      const bounds = trigger.getBoundingClientRect();
      const dt = bounds.top;
      const db = window.innerHeight - bounds.bottom;
      const dl = bounds.left;
      const dr = window.innerWidth - bounds.right;
      const min = Math.min(dt, db, dl, dr);
      if (min === dt) {
        return "is-bottom";
      } else if (min === db) {
        return "is-top";
      } else if (min === dl) {
        return "is-right";
      } else {
        return "is-left";
      }
    },
    updateAppendToBody() {
      const tooltip = this.$refs.tooltip;
      const trigger = this.$refs.trigger;
      if (tooltip && trigger) {
        const tooltipEl = this.$data._bodyEl.children[0];
        tooltipEl.classList.forEach((item) => tooltipEl.classList.remove(item));
        this.rootClasses.forEach((item) => {
          if (typeof item === "object") {
            const record = item;
            for (const key in record) {
              if (record[key]) {
                tooltipEl.classList.add(key);
              }
            }
          } else {
            tooltipEl.classList.add(item);
          }
        });
        const rect = trigger.getBoundingClientRect();
        const top = rect.top + window.scrollY;
        const left = rect.left + window.scrollX;
        tooltipEl.style.position = "absolute";
        this.dynamicPosition = this.computePosition();
        switch (this.dynamicPosition) {
          case "is-top":
            tooltipEl.style.width = `${trigger.clientWidth}px`;
            tooltipEl.style.height = "0px";
            tooltipEl.style.top = "0px";
            tooltipEl.style.left = "0px";
            break;
          case "is-bottom":
            tooltipEl.style.width = `${trigger.clientWidth}px`;
            tooltipEl.style.height = "0px";
            tooltipEl.style.top = `${trigger.clientHeight}px`;
            tooltipEl.style.left = "0px";
            break;
          case "is-left":
            tooltipEl.style.width = "0px";
            tooltipEl.style.height = `${trigger.clientHeight}px`;
            tooltipEl.style.top = "0px";
            tooltipEl.style.left = "0px";
            break;
          case "is-right":
            tooltipEl.style.width = "0px";
            tooltipEl.style.height = `${trigger.clientHeight}px`;
            tooltipEl.style.top = "0px";
            tooltipEl.style.left = `${trigger.clientWidth}px`;
            break;
        }
        const wrapper = this.$data._bodyEl;
        wrapper.style.position = "absolute";
        wrapper.style.top = `${top}px`;
        wrapper.style.left = `${left}px`;
        wrapper.style.width = "0px";
        wrapper.style.zIndex = this.isActive || this.always ? "99" : "-1";
        this.triggerStyle = {
          zIndex: this.isActive || this.always ? "100" : void 0
        };
      }
    },
    onClick() {
      if (this.triggers.indexOf("click") < 0) return;
      this.$nextTick(() => {
        this.timeOutID = setTimeout(() => this.open());
      });
    },
    onHover() {
      if (this.triggers.indexOf("hover") < 0) return;
      this.open();
    },
    onContextMenu(e) {
      if (this.triggers.indexOf("contextmenu") < 0) return;
      e.preventDefault();
      this.open();
    },
    onFocus() {
      if (this.triggers.indexOf("focus") < 0) return;
      this.open();
    },
    open() {
      this.dynamicPosition = this.computePosition();
      if (this.delay) {
        this.timer = setTimeout(() => {
          this.isActive = true;
          this.timer = void 0;
        }, this.delay);
      } else {
        this.isActive = true;
      }
    },
    close() {
      if (typeof this.autoClose === "boolean") {
        if (this.autoClose && this.timer) clearTimeout(this.timer);
        if (this.closeDelay) {
          this.timer = setTimeout(() => {
            this.isActive = !this.autoClose;
            this.timer = void 0;
          }, this.closeDelay);
        } else {
          this.isActive = !this.autoClose;
        }
      }
    },
    /*
    * Close tooltip if clicked outside.
    */
    clickedOutside(event) {
      if (this.isActive) {
        if (Array.isArray(this.autoClose)) {
          if (this.autoClose.includes("outside")) {
            if (!this.isInWhiteList(event.target)) {
              this.isActive = false;
              return;
            }
          }
          if (this.autoClose.includes("inside")) {
            if (this.isInWhiteList(event.target)) this.isActive = false;
          }
        }
      }
    },
    /*
     * Keypress event that is bound to the document
     */
    keyPress({ key }) {
      if (this.isActive && (key === "Escape" || key === "Esc")) {
        if (Array.isArray(this.autoClose)) {
          if (this.autoClose.indexOf("escape") >= 0) this.isActive = false;
        }
      }
    },
    /*
    * White-listed items to not close when clicked.
    */
    isInWhiteList(el) {
      if (el === this.$refs.content) return true;
      if (this.$refs.content != null) {
        const children = this.$refs.content.querySelectorAll("*");
        for (const child of children) {
          if (el === child) {
            return true;
          }
        }
      }
      return false;
    }
  },
  mounted() {
    if (this.appendToBody && typeof window !== "undefined") {
      this.controller = new window.AbortController();
      this.$data._bodyEl = createAbsoluteElement(this.$refs.content);
      this.updateAppendToBody();
      const animation = this.$el.closest(".animation-content");
      if (animation != null) {
        const listener = () => {
          this.updateAppendToBody();
          animation.removeEventListener("transitionend", listener);
        };
        animation.addEventListener("transitionend", listener, {
          signal: this.controller.signal
        });
      }
      this.resizeListener = () => this.updateAppendToBody();
      window.addEventListener("resize", this.resizeListener);
      this.resizeObserver = new ResizeObserver(this.resizeListener);
      if (this.$el.parentNode != null && this.$el.parentNode.nodeType === Node.ELEMENT_NODE) {
        this.resizeObserver.observe(this.$el.parentNode);
      }
    }
    if (this.always) {
      this.dynamicPosition = this.computePosition();
    }
  },
  created() {
    if (typeof window !== "undefined") {
      document.addEventListener("click", this.clickedOutside);
      document.addEventListener("keyup", this.keyPress);
    }
  },
  beforeUnmount() {
    if (typeof window !== "undefined") {
      document.removeEventListener("click", this.clickedOutside);
      document.removeEventListener("keyup", this.keyPress);
    }
    if (this.resizeListener != null) {
      window.removeEventListener("resize", this.resizeListener);
    }
    if (this.resizeObserver != null) {
      this.resizeObserver.disconnect();
    }
    if (this.appendToBody) {
      removeElement(this.$data._bodyEl);
    }
    if (this.controller != null) {
      this.controller.abort();
    }
    clearTimeout(this.timer);
    clearTimeout(this.timeOutID);
  }
});

function _sfc_render$J(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      ref: "tooltip",
      class: normalizeClass(_ctx.rootClasses)
    },
    [
      createVNode(Transition, {
        name: _ctx.newAnimation,
        persisted: ""
      }, {
        default: withCtx(() => [
          withDirectives(createBaseVNode(
            "div",
            {
              ref: "content",
              class: normalizeClass(["tooltip-content", _ctx.contentClass])
            },
            [
              _ctx.label ? (openBlock(), createElementBlock(
                Fragment,
                { key: 0 },
                [
                  createTextVNode(
                    toDisplayString$1(_ctx.label),
                    1
                    /* TEXT */
                  )
                ],
                64
                /* STABLE_FRAGMENT */
              )) : _ctx.$slots.content ? renderSlot(_ctx.$slots, "content", { key: 1 }) : createCommentVNode("v-if", true)
            ],
            2
            /* CLASS */
          ), [
            [vShow, _ctx.active && (_ctx.isActive || _ctx.always)]
          ])
        ]),
        _: 3
        /* FORWARDED */
      }, 8, ["name"]),
      createBaseVNode(
        "div",
        {
          ref: "trigger",
          class: "tooltip-trigger",
          style: normalizeStyle(_ctx.triggerStyle),
          onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args)),
          onContextmenu: _cache[1] || (_cache[1] = (...args) => _ctx.onContextMenu && _ctx.onContextMenu(...args)),
          onMouseenter: _cache[2] || (_cache[2] = (...args) => _ctx.onHover && _ctx.onHover(...args)),
          onFocusCapture: _cache[3] || (_cache[3] = (...args) => _ctx.onFocus && _ctx.onFocus(...args)),
          onBlurCapture: _cache[4] || (_cache[4] = (...args) => _ctx.close && _ctx.close(...args)),
          onMouseleave: _cache[5] || (_cache[5] = (...args) => _ctx.close && _ctx.close(...args))
        },
        [
          renderSlot(_ctx.$slots, "default", { ref: "slot" })
        ],
        36
        /* STYLE, NEED_HYDRATION */
      )
    ],
    2
    /* CLASS */
  );
}
var Tooltip = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$J]]);

var _sfc_main$x = defineComponent({
  name: "BColorpickerAlphaSlider",
  components: {
    BTooltip: Tooltip
  },
  props: {
    value: {
      type: Number,
      validator: (value) => value >= 0 && value < 256
    },
    color: [String, Object]
  },
  emits: {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    input: (_value) => true
  },
  data() {
    const color = Color.parse(this.color);
    color.alpha = 0;
    return {
      startColor: color.toString("hex"),
      endColor: color.toString("hexa"),
      percent: Math.round((1 - this.value / 255) * 100),
      captureMouse: false,
      clientOffset: {
        cx: -1,
        cy: -1,
        width: 0,
        height: 0
      }
    };
  },
  computed: {
    style() {
      return {
        backgroundImage: `linear-gradient(90deg, ${this.startColor} 0%, ${this.endColor} 100%),
                    linear-gradient(45deg, #c7c7c7 25%, transparent 25%, transparent 75%, #c7c7c7 75%, #c7c7c7),
                    linear-gradient(45deg, #c7c7c7 25%, transparent 25%, transparent 75%, #c7c7c7 75%, #c7c7c7)`,
        backgroundSize: "100% 100%, 1em 1em, 1em 1em",
        backgroundPosition: "0 0, .5em .5em, 0 0"
      };
    }
  },
  watch: {
    value(newValue, oldValue) {
      if (newValue !== oldValue) {
        this.percent = Math.round((1 - newValue / 255) * 100);
      }
    },
    color(newColor) {
      const color = Color.parse(newColor);
      color.alpha = 0;
      this.startColor = color.toString("hex");
      this.endColor = color.toString("hexa");
    },
    captureMouse(newValue, oldValue) {
      if (oldValue === false && newValue !== false) {
        const rect = this.$el.getBoundingClientRect();
        this.clientOffset.cx = rect.x + rect.width / 2;
        this.clientOffset.cy = rect.y + rect.height / 2;
        this.clientOffset.width = rect.width;
        this.clientOffset.height = rect.height;
      }
    }
  },
  methods: {
    increaseAlpha(value = 1) {
      this.percent = Math.max(0, Math.min(100, this.percent + value));
    },
    decreaseAlpha(value = 0.01) {
      this.increaseAlpha(-value);
    },
    alphaKeyPress(event) {
      let handled = false;
      switch (event.key) {
        case "ArrowRight":
        case "ArrowUp":
          this.increaseAlpha();
          handled = true;
          break;
        case "ArrowLeft":
        case "ArrowDown":
          this.decreaseAlpha();
          handled = true;
          break;
        case "Home":
          this.decreaseAlpha(this.percent);
          handled = true;
          break;
        case "End":
          this.increaseAlpha(100 - this.percent);
          handled = true;
          break;
        case "PageUp":
          this.increaseAlpha(10 - this.percent % 10);
          handled = true;
          break;
        case "PageDown":
          this.decreaseAlpha(this.percent % 10);
          handled = true;
          break;
      }
      if (handled) {
        event.preventDefault();
        event.stopPropagation();
        this.emitAlpha();
      }
    },
    clickAlpha(event) {
      this.startMouseCapture(event);
      this.trackMouse(event);
      this.stopMouseCapture(event);
      this.$refs.alphaCursor.focus();
    },
    startMouseCapture(event) {
      event.stopPropagation();
      this.captureMouse = true;
    },
    trackMouse(event) {
      if (this.captureMouse === false) {
        return;
      }
      event.preventDefault();
      event.stopPropagation();
      let [mouseX] = [0, 0];
      const touches = event.touches;
      if (typeof touches !== "undefined" && touches.length) {
        [mouseX] = [touches[0].clientX];
      } else {
        [mouseX] = [event.clientX];
      }
      const ratio = 0.5 + (this.clientOffset.cx - mouseX) / this.clientOffset.width;
      this.percent = Math.round(100 - Math.max(0, Math.min(1, ratio)) * 100);
      this.emitAlpha();
    },
    stopMouseCapture(event) {
      if (this.captureMouse !== false) {
        event.preventDefault();
        event.stopPropagation();
        this.$refs.alphaCursor.focus();
      }
      this.captureMouse = false;
    },
    emitAlpha() {
      this.$emit("input", (1 - this.percent / 100) * 255);
    }
  },
  mounted() {
    window.addEventListener("mousemove", this.trackMouse);
    window.addEventListener("touchmove", this.trackMouse, { passive: false });
    window.addEventListener("mouseup", this.stopMouseCapture);
    window.addEventListener("touchend", this.stopMouseCapture);
  },
  beforeUnmount() {
    window.removeEventListener("mousemove", this.trackMouse);
    window.removeEventListener("touchmove", this.trackMouse);
    window.removeEventListener("mouseup", this.stopMouseCapture);
    window.removeEventListener("touchend", this.stopMouseCapture);
  }
});

const _hoisted_1$D = ["aria-valuenow"];
function _sfc_render$I(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_tooltip = resolveComponent("b-tooltip");
  return openBlock(), createElementBlock(
    "div",
    {
      class: "b-colorpicker-alpha-slider",
      style: normalizeStyle(_ctx.style),
      onClick: _cache[0] || (_cache[0] = (...args) => _ctx.clickAlpha && _ctx.clickAlpha(...args)),
      onKeydown: _cache[1] || (_cache[1] = (...args) => _ctx.alphaKeyPress && _ctx.alphaKeyPress(...args)),
      onMousedown: _cache[2] || (_cache[2] = (...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args)),
      onTouchstart: _cache[3] || (_cache[3] = withModifiers((...args) => _ctx.startMouseCapture && _ctx.startMouseCapture(...args), ["prevent"]))
    },
    [
      createBaseVNode("div", {
        ref: "alphaCursor",
        role: "slider",
        class: "alpha-range-thumb",
        tabindex: "0",
        "aria-label": "Tranparency",
        "aria-valuemin": "0",
        "aria-valuenow": _ctx.percent,
        "aria-valuemax": "100",
        style: normalizeStyle({ left: `${_ctx.percent}%` })
      }, [
        createVNode(_component_b_tooltip, {
          label: `${_ctx.percent}%`,
          always: _ctx.captureMouse,
          position: "is-top"
        }, {
          default: withCtx(() => [
            createTextVNode("   ")
          ]),
          _: 1
          /* STABLE */
        }, 8, ["label", "always"])
      ], 12, _hoisted_1$D)
    ],
    36
    /* STYLE, NEED_HYDRATION */
  );
}
var BColorpickerAlphaSlider = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$I]]);

const defaultColorFormatter = (color) => {
  if (color.alpha < 1) {
    return color.toString("hexa");
  } else {
    return color.toString("hex");
  }
};
const defaultColorParser = (color) => {
  return Color.parse(color);
};
var _sfc_main$w = defineComponent({
  name: "BColorpicker",
  components: {
    BColorpickerHSLRepresentationTriangle,
    BColorpickerHSLRepresentationSquare,
    BColorpickerAlphaSlider,
    BInput,
    BField: Field,
    BButton,
    BDropdown,
    BDropdownItem
  },
  mixins: [FormElementMixin],
  inheritAttrs: false,
  provide() {
    return {
      $colorpicker: this
    };
  },
  props: {
    modelValue: {
      type: [String, Object],
      validator(value) {
        return typeof value === "string" || typeof value === "object" && typeof value.red === "number" && typeof value.green === "number" && typeof value.blue === "number";
      }
    },
    mobileNative: {
      type: Boolean,
      default: false
    },
    representation: {
      type: String,
      default: "triangle",
      value(value) {
        return ["triangle", "square"].some((r) => r === value);
      }
    },
    inline: Boolean,
    disabled: Boolean,
    horizontalColorPicker: {
      type: Boolean,
      default: false
    },
    colorFormatter: {
      type: Function,
      default: (color, vm) => {
        if (typeof config.defaultColorFormatter === "function") {
          return config.defaultColorFormatter(color);
        } else {
          return defaultColorFormatter(color);
        }
      }
    },
    colorParser: {
      type: Function,
      default: (color, vm) => {
        if (typeof config.defaultColorParser === "function") {
          return config.defaultColorParser(color);
        } else {
          return defaultColorParser(color);
        }
      }
    },
    alpha: {
      type: Boolean,
      default: false
    },
    expanded: Boolean,
    position: String,
    mobileModal: {
      type: Boolean,
      default: () => config.defaultDatepickerMobileModal
    },
    focusable: {
      type: Boolean,
      default: true
    },
    trapFocus: {
      type: Boolean,
      default: () => config.defaultTrapFocus
    },
    openOnFocus: Boolean,
    closeOnClick: Boolean,
    appendToBody: Boolean
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    "active-change": (_active) => true,
    "update:modelValue": (_value) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      color: this.parseColor(this.modelValue)
    };
  },
  computed: {
    computedValue: {
      set(value) {
        this.color = this.parseColor(value);
      },
      get() {
        return this.color;
      }
    },
    background() {
      if (this.alpha) {
        return `linear-gradient(
                    45deg,
                    ${this.computedValue.toString("hex")} 50%,
                    ${this.computedValue.toString("hexa")} 50%
                )`;
      } else {
        const hex = this.computedValue.toString("hex");
        return `linear-gradient(
                    45deg,
                    ${hex} 50%,
                    ${hex} 50%
                )`;
      }
    },
    triggerStyle() {
      const { red, green, blue } = this.computedValue;
      const light = red * 0.299 + green * 0.587 + blue * 0.114 > 186;
      return {
        backgroundColor: "#ffffff",
        backgroundImage: `
                    ${this.background},
                    linear-gradient(45deg, #c7c7c7 25%, transparent 25%, transparent 75%, #c7c7c7 75%, #c7c7c7),
                    linear-gradient(45deg, #c7c7c7 25%, transparent 25%, transparent 75%, #c7c7c7 75%, #c7c7c7)
                `,
        backgroundSize: "100% 100%, 16px 16px, 16px 16px",
        backgroundPosition: "0 0, 8px 8px, 0 0",
        color: light ? "#000000" : "#FFFFFF",
        textShadow: `0 0 2px ${light ? "#FFFFFFAA" : "#000000AA"}`
      };
    },
    isMobile() {
      return this.mobileNative && isMobile.any();
    },
    ariaRole() {
      if (!this.inline) {
        return "dialog";
      } else {
        return void 0;
      }
    }
  },
  watch: {
    modelValue(value) {
      this.computedValue = new Color(value);
    }
  },
  methods: {
    parseColor(color) {
      try {
        return this.colorParser(color);
      } catch (e) {
        return new Color();
      }
    },
    updateColor(value) {
      value.alpha = this.computedValue.alpha;
      this.computedValue = value;
      this.$emit("update:modelValue", value);
    },
    updateAlpha(alpha) {
      this.computedValue.alpha = alpha;
      this.$emit("update:modelValue", this.computedValue);
    },
    updateRGB() {
      this.$emit("update:modelValue", this.computedValue);
    },
    /*
     * Format color into string
     */
    formatValue(value) {
      return value ? this.colorFormatter(value, this) : null;
    },
    /*
     * Toggle datepicker
     */
    togglePicker(active) {
      if (this.$refs.dropdown) {
        const isActive = typeof active === "boolean" ? active : !this.$refs.dropdown.isActive;
        if (isActive) {
          this.$refs.dropdown.isActive = isActive;
        } else if (this.closeOnClick) {
          this.$refs.dropdown.isActive = isActive;
        }
      }
    },
    /*
     * Call default onFocus method and show datepicker
     */
    handleOnFocus(event) {
      this.onFocus(event);
      if (this.openOnFocus) {
        this.togglePicker(true);
      }
    },
    /*
     * Toggle dropdown
     */
    // I decided to comment out the following unused method until we come
    // back to deal with the `open-on-focus` and `close-on-click` props
    /*
    toggle() {
        if (this.mobileNative && this.isMobile) {
            const input = this.$refs.input.$refs.input
            input.focus()
            input.click()
            return
        }
        (this.$refs.dropdown as BDropdownInstance).toggle()
    }, */
    /*
     * Avoid dropdown toggle when is already visible
     */
    onInputClick(event) {
      if (this.$refs.dropdown.isActive) {
        event.stopPropagation();
      }
    },
    /*
     * Keypress event that is bound to the document.
     */
    keyPress({ key }) {
      const dropdown = this.$refs.dropdown;
      if (dropdown && dropdown.isActive && (key === "Escape" || key === "Esc")) {
        this.togglePicker(false);
      }
    },
    /*
     * Emit 'blur' event on dropdown is not active (closed)
     */
    onActiveChange(value) {
      if (!value) {
        this.onBlur();
      }
      this.$emit("active-change", value);
    }
  }
});

const _hoisted_1$C = { class: "color-name" };
const _hoisted_2$x = { class: "colorpicker-header" };
const _hoisted_3$k = { class: "colorpicker-content" };
const _hoisted_4$f = { class: "colorpicker-footer" };
function _sfc_render$H(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_button = resolveComponent("b-button");
  const _component_b_colorpicker_h_s_l_representation_square = resolveComponent("b-colorpicker-h-s-l-representation-square");
  const _component_b_colorpicker_h_s_l_representation_triangle = resolveComponent("b-colorpicker-h-s-l-representation-triangle");
  const _component_b_colorpicker_alpha_slider = resolveComponent("b-colorpicker-alpha-slider");
  const _component_b_input = resolveComponent("b-input");
  const _component_b_field = resolveComponent("b-field");
  const _component_b_dropdown_item = resolveComponent("b-dropdown-item");
  const _component_b_dropdown = resolveComponent("b-dropdown");
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["colorpicker control", [_ctx.size, { "is-expanded": _ctx.expanded }]])
    },
    [
      !_ctx.isMobile || _ctx.inline ? (openBlock(), createBlock(_component_b_dropdown, {
        key: 0,
        ref: "dropdown",
        position: _ctx.position,
        expanded: _ctx.expanded,
        disabled: _ctx.disabled,
        inline: _ctx.inline,
        "mobile-modal": _ctx.mobileModal,
        "trap-focus": _ctx.trapFocus,
        "aria-role": _ctx.ariaRole,
        "append-to-body": _ctx.appendToBody,
        "append-to-body-copy-parent": "",
        onActiveChange: _ctx.onActiveChange
      }, createSlots({
        default: withCtx(() => [
          createVNode(_component_b_dropdown_item, {
            disabled: _ctx.disabled,
            focusable: _ctx.focusable,
            custom: "",
            class: normalizeClass({ "dropdown-horizontal-colorpicker": _ctx.horizontalColorPicker })
          }, {
            default: withCtx(() => [
              createBaseVNode("div", null, [
                createBaseVNode("header", _hoisted_2$x, [
                  _ctx.$slots.header !== void 0 && _ctx.$slots.header.length ? renderSlot(_ctx.$slots, "header", { key: 0 }) : createCommentVNode("v-if", true)
                ]),
                createBaseVNode("div", _hoisted_3$k, [
                  _ctx.representation === "square" ? (openBlock(), createBlock(_component_b_colorpicker_h_s_l_representation_square, {
                    key: 0,
                    value: _ctx.computedValue,
                    onInput: _ctx.updateColor
                  }, null, 8, ["value", "onInput"])) : (openBlock(), createBlock(_component_b_colorpicker_h_s_l_representation_triangle, {
                    key: 1,
                    value: _ctx.computedValue,
                    onInput: _ctx.updateColor
                  }, null, 8, ["value", "onInput"]))
                ])
              ]),
              createBaseVNode("footer", _hoisted_4$f, [
                _ctx.alpha ? (openBlock(), createBlock(_component_b_colorpicker_alpha_slider, {
                  key: 0,
                  value: _ctx.computedValue.alpha,
                  onInput: _ctx.updateAlpha,
                  color: _ctx.computedValue
                }, null, 8, ["value", "onInput", "color"])) : createCommentVNode("v-if", true),
                renderSlot(_ctx.$slots, "footer", { color: _ctx.computedValue }, () => [
                  createVNode(_component_b_field, {
                    class: "colorpicker-fields",
                    grouped: ""
                  }, {
                    default: withCtx(() => [
                      createVNode(_component_b_field, {
                        horizontal: "",
                        label: "R"
                      }, {
                        default: withCtx(() => [
                          createVNode(_component_b_input, {
                            type: "number",
                            modelValue: _ctx.computedValue.red,
                            "onUpdate:modelValue": [
                              _cache[0] || (_cache[0] = ($event) => _ctx.computedValue.red = $event),
                              _ctx.updateRGB
                            ],
                            modelModifiers: { number: true },
                            size: "is-small",
                            "aria-label": "Red"
                          }, null, 8, ["modelValue", "onUpdate:modelValue"])
                        ]),
                        _: 1
                        /* STABLE */
                      }),
                      createVNode(_component_b_field, {
                        horizontal: "",
                        label: "G"
                      }, {
                        default: withCtx(() => [
                          createVNode(_component_b_input, {
                            type: "number",
                            modelValue: _ctx.computedValue.green,
                            "onUpdate:modelValue": [
                              _cache[1] || (_cache[1] = ($event) => _ctx.computedValue.green = $event),
                              _ctx.updateRGB
                            ],
                            modelModifiers: { number: true },
                            size: "is-small",
                            "aria-label": "Green"
                          }, null, 8, ["modelValue", "onUpdate:modelValue"])
                        ]),
                        _: 1
                        /* STABLE */
                      }),
                      createVNode(_component_b_field, {
                        horizontal: "",
                        label: "B"
                      }, {
                        default: withCtx(() => [
                          createVNode(_component_b_input, {
                            type: "number",
                            modelValue: _ctx.computedValue.blue,
                            "onUpdate:modelValue": [
                              _cache[2] || (_cache[2] = ($event) => _ctx.computedValue.blue = $event),
                              _ctx.updateRGB
                            ],
                            modelModifiers: { number: true },
                            size: "is-small",
                            "aria-label": "Blue"
                          }, null, 8, ["modelValue", "onUpdate:modelValue"])
                        ]),
                        _: 1
                        /* STABLE */
                      })
                    ]),
                    _: 1
                    /* STABLE */
                  })
                ])
              ])
            ]),
            _: 3
            /* FORWARDED */
          }, 8, ["disabled", "focusable", "class"])
        ]),
        _: 2
        /* DYNAMIC */
      }, [
        !_ctx.inline ? {
          name: "trigger",
          fn: withCtx(() => [
            renderSlot(_ctx.$slots, "trigger", {}, () => [
              createVNode(_component_b_button, {
                style: normalizeStyle(_ctx.triggerStyle),
                expanded: _ctx.expanded,
                disabled: _ctx.disabled
              }, {
                default: withCtx(() => [
                  createBaseVNode(
                    "span",
                    _hoisted_1$C,
                    toDisplayString$1(_ctx.colorFormatter(_ctx.computedValue)),
                    1
                    /* TEXT */
                  )
                ]),
                _: 1
                /* STABLE */
              }, 8, ["style", "expanded", "disabled"])
            ])
          ]),
          key: "0"
        } : void 0
      ]), 1032, ["position", "expanded", "disabled", "inline", "mobile-modal", "trap-focus", "aria-role", "append-to-body", "onActiveChange"])) : createCommentVNode("v-if", true)
    ],
    2
    /* CLASS */
  );
}
var Colorpicker = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["render", _sfc_render$H]]);

const Plugin$w = {
  install(Vue) {
    registerComponent(Vue, Colorpicker);
  }
};

var _sfc_main$v = defineComponent({
  name: "BSelect",
  components: {
    BIcon
  },
  mixins: [CompatFallthroughMixin, FormElementMixin],
  props: {
    modelValue: {
      type: [
        String,
        Number,
        Boolean,
        Object,
        Array,
        Function,
        Date,
        null
      ],
      default: null
    },
    placeholder: String,
    multiple: Boolean,
    nativeSize: [String, Number]
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    blur: (_event) => true,
    focus: (_event) => true,
    "update:modelValue": (_value) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      selected: this.modelValue,
      _elementRef: "select"
    };
  },
  computed: {
    computedValue: {
      get() {
        return this.selected;
      },
      set(value) {
        this.selected = value;
        this.$emit("update:modelValue", value);
        !this.isValid && this.checkHtml5Validity();
      }
    },
    spanClasses() {
      return [this.size, this.statusType, {
        "is-fullwidth": this.expanded,
        "is-loading": this.loading,
        "is-multiple": this.multiple,
        "is-rounded": this.rounded,
        "is-empty": this.selected === null
      }];
    }
  },
  watch: {
    /*
    * When v-model is changed:
    *   1. Set the selected option.
    *   2. If it's invalid, validate again.
    */
    modelValue(value) {
      this.selected = value;
      !this.isValid && this.checkHtml5Validity();
    }
  }
});

const _hoisted_1$B = ["multiple", "size"];
const _hoisted_2$w = {
  key: 0,
  value: null,
  disabled: "",
  hidden: ""
};
function _sfc_render$G(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  return openBlock(), createElementBlock(
    "div",
    mergeProps({
      class: ["control", { "is-expanded": _ctx.expanded, "has-icons-left": _ctx.icon }]
    }, _ctx.rootAttrs),
    [
      createBaseVNode(
        "span",
        {
          class: normalizeClass(["select", _ctx.spanClasses])
        },
        [
          withDirectives(createBaseVNode("select", mergeProps({
            "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.computedValue = $event),
            ref: "select",
            multiple: _ctx.multiple,
            size: _ctx.nativeSize
          }, _ctx.fallthroughAttrs, {
            onBlur: _cache[1] || (_cache[1] = (...args) => _ctx.onBlur && _ctx.onBlur(...args)),
            onFocus: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("focus", $event))
          }), [
            _ctx.placeholder ? (openBlock(), createElementBlock(
              Fragment,
              { key: 0 },
              [
                _ctx.computedValue == null ? (openBlock(), createElementBlock(
                  "option",
                  _hoisted_2$w,
                  toDisplayString$1(_ctx.placeholder),
                  1
                  /* TEXT */
                )) : createCommentVNode("v-if", true)
              ],
              64
              /* STABLE_FRAGMENT */
            )) : createCommentVNode("v-if", true),
            renderSlot(_ctx.$slots, "default")
          ], 16, _hoisted_1$B), [
            [vModelSelect, _ctx.computedValue]
          ])
        ],
        2
        /* CLASS */
      ),
      _ctx.icon ? (openBlock(), createBlock(_component_b_icon, {
        key: 0,
        class: "is-left",
        icon: _ctx.icon,
        pack: _ctx.iconPack,
        size: _ctx.iconSize
      }, null, 8, ["icon", "pack", "size"])) : createCommentVNode("v-if", true)
    ],
    16
    /* FULL_PROPS */
  );
}
var BSelect = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render$G]]);

var _sfc_main$u = defineComponent({
  name: "BDatepickerTableRow",
  inject: {
    $datepicker: { name: "$datepicker", default: false }
  },
  props: {
    selectedDate: {
      type: [Date, Array]
    },
    hoveredDateRange: Array,
    day: {
      type: Number
    },
    week: {
      type: Array,
      required: true
    },
    month: {
      type: Number,
      required: true
    },
    minDate: [Date, null],
    maxDate: [Date, null],
    disabled: Boolean,
    unselectableDates: [Array, Function, null],
    unselectableDaysOfWeek: [Array, null],
    selectableDates: [Array, Function, null],
    events: Array,
    indicators: String,
    dateCreator: Function,
    nearbyMonthDays: Boolean,
    nearbySelectableMonthDays: Boolean,
    showWeekNumber: Boolean,
    weekNumberClickable: Boolean,
    range: Boolean,
    multiple: Boolean,
    rulesForFirstWeek: Number,
    firstDayOfWeek: [Number, null]
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    "change-focus": (_day) => true,
    rangeHoverEndDate: (_day) => true,
    select: (_day) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  watch: {
    day(day) {
      const refName = `day-${this.month}-${day}`;
      this.$nextTick(() => {
        let cell;
        if (Array.isArray(this.$refs[refName])) {
          cell = this.$refs[refName][0];
        } else {
          cell = this.$refs[refName];
        }
        if (cell) {
          cell.focus();
        }
      });
    }
  },
  methods: {
    firstWeekOffset(year, dow, doy) {
      const fwd = 7 + dow - doy;
      const firstJanuary = new Date(year, 0, fwd);
      const fwdlw = (7 + firstJanuary.getDay() - dow) % 7;
      return -fwdlw + fwd - 1;
    },
    daysInYear(year) {
      return this.isLeapYear(year) ? 366 : 365;
    },
    isLeapYear(year) {
      return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
    },
    getSetDayOfYear(input) {
      return Math.round((+input - +new Date(input.getFullYear(), 0, 1)) / 864e5) + 1;
    },
    weeksInYear(year, dow, doy) {
      const weekOffset = this.firstWeekOffset(year, dow, doy);
      const weekOffsetNext = this.firstWeekOffset(year + 1, dow, doy);
      return (this.daysInYear(year) - weekOffset + weekOffsetNext) / 7;
    },
    getWeekNumber(mom) {
      const dow = this.firstDayOfWeek;
      const doy = this.rulesForFirstWeek;
      const weekOffset = this.firstWeekOffset(mom.getFullYear(), dow, doy);
      const week = Math.floor((this.getSetDayOfYear(mom) - weekOffset - 1) / 7) + 1;
      let resWeek;
      let resYear;
      if (week < 1) {
        resYear = mom.getFullYear() - 1;
        resWeek = week + this.weeksInYear(resYear, dow, doy);
      } else if (week > this.weeksInYear(mom.getFullYear(), dow, doy)) {
        resWeek = week - this.weeksInYear(mom.getFullYear(), dow, doy);
        resYear = mom.getFullYear() + 1;
      } else {
        resYear = mom.getFullYear();
        resWeek = week;
      }
      return { week: resWeek, year: resYear };
    },
    clickWeekNumber(weekData) {
      if (this.weekNumberClickable) {
        this.$datepicker.$emit("week-number-click", weekData.week, weekData.year);
      }
    },
    /*
     * Check that selected day is within earliest/latest params and
     * is within this month
     */
    selectableDate(day) {
      const validity = [];
      if (this.minDate) {
        validity.push(day >= this.minDate);
      }
      if (this.maxDate) {
        validity.push(day <= this.maxDate);
      }
      if (this.nearbyMonthDays && !this.nearbySelectableMonthDays) {
        validity.push(day.getMonth() === this.month);
      }
      if (this.selectableDates) {
        if (typeof this.selectableDates === "function") {
          if (this.selectableDates(day)) {
            return true;
          } else {
            validity.push(false);
          }
        } else {
          for (let i = 0; i < this.selectableDates.length; i++) {
            const enabledDate = this.selectableDates[i];
            if (day.getDate() === enabledDate.getDate() && day.getFullYear() === enabledDate.getFullYear() && day.getMonth() === enabledDate.getMonth()) {
              return true;
            } else {
              validity.push(false);
            }
          }
        }
      }
      if (this.unselectableDates) {
        if (typeof this.unselectableDates === "function") {
          validity.push(!this.unselectableDates(day));
        } else {
          for (let i = 0; i < this.unselectableDates.length; i++) {
            const disabledDate = this.unselectableDates[i];
            validity.push(
              day.getDate() !== disabledDate.getDate() || day.getFullYear() !== disabledDate.getFullYear() || day.getMonth() !== disabledDate.getMonth()
            );
          }
        }
      }
      if (this.unselectableDaysOfWeek) {
        for (let i = 0; i < this.unselectableDaysOfWeek.length; i++) {
          const dayOfWeek = this.unselectableDaysOfWeek[i];
          validity.push(day.getDay() !== dayOfWeek);
        }
      }
      return validity.indexOf(false) < 0;
    },
    /*
    * Emit select event with chosen date as payload
    */
    emitChosenDate(day) {
      if (this.disabled) return;
      if (this.selectableDate(day)) {
        this.$emit("select", day);
      }
    },
    // TODO: return undefined instead of boolean if no events
    eventsDateMatch(day) {
      if (!this.events || !this.events.length) return false;
      const dayEvents = [];
      for (let i = 0; i < this.events.length; i++) {
        if (this.events[i].date.getDay() === day.getDay()) {
          dayEvents.push(this.events[i]);
        }
      }
      if (!dayEvents.length) {
        return false;
      }
      return dayEvents;
    },
    /*
    * Build classObject for cell using validations
    */
    classObject(day) {
      function dateMatch(dateOne, dateTwo, multiple) {
        if (!dateOne || !dateTwo || multiple) {
          return false;
        }
        if (Array.isArray(dateTwo)) {
          return dateTwo.some((date) => dateOne.getDate() === date.getDate() && dateOne.getFullYear() === date.getFullYear() && dateOne.getMonth() === date.getMonth());
        }
        return dateOne.getDate() === dateTwo.getDate() && dateOne.getFullYear() === dateTwo.getFullYear() && dateOne.getMonth() === dateTwo.getMonth();
      }
      function dateWithin(dateOne, dates, multiple) {
        if (!Array.isArray(dates) || multiple) {
          return false;
        }
        return dateOne > dates[0] && dateOne < dates[1];
      }
      return {
        "is-selected": dateMatch(day, this.selectedDate) || dateWithin(day, this.selectedDate, this.multiple),
        "is-first-selected": dateMatch(
          day,
          Array.isArray(this.selectedDate) ? this.selectedDate[0] : void 0,
          this.multiple
        ),
        "is-within-selected": dateWithin(day, this.selectedDate, this.multiple),
        "is-last-selected": dateMatch(
          day,
          Array.isArray(this.selectedDate) ? this.selectedDate[1] : void 0,
          this.multiple
        ),
        "is-within-hovered-range": this.hoveredDateRange && this.hoveredDateRange.length === 2 && (dateMatch(day, this.hoveredDateRange) || dateWithin(day, this.hoveredDateRange)),
        "is-first-hovered": dateMatch(
          day,
          Array.isArray(this.hoveredDateRange) ? this.hoveredDateRange[0] : void 0
        ),
        "is-within-hovered": dateWithin(day, this.hoveredDateRange),
        "is-last-hovered": dateMatch(
          day,
          Array.isArray(this.hoveredDateRange) ? this.hoveredDateRange[1] : void 0
        ),
        "is-today": dateMatch(day, this.dateCreator()),
        "is-selectable": this.selectableDate(day) && !this.disabled,
        "is-unselectable": !this.selectableDate(day) || this.disabled,
        "is-invisible": !this.nearbyMonthDays && day.getMonth() !== this.month,
        "is-nearby": this.nearbySelectableMonthDays && day.getMonth() !== this.month,
        "has-event": this.eventsDateMatch(day),
        [this.indicators]: this.eventsDateMatch(day)
      };
    },
    setRangeHoverEndDate(day) {
      if (this.range) {
        this.$emit("rangeHoverEndDate", day);
      }
    },
    manageKeydown(event, weekDay) {
      const { key } = event;
      let preventDefault = true;
      switch (key) {
        case "Tab": {
          preventDefault = false;
          break;
        }
        case " ":
        case "Space":
        case "Spacebar":
        case "Enter": {
          this.emitChosenDate(weekDay);
          break;
        }
        case "ArrowLeft":
        case "Left": {
          this.changeFocus(weekDay, -1);
          break;
        }
        case "ArrowRight":
        case "Right": {
          this.changeFocus(weekDay, 1);
          break;
        }
        case "ArrowUp":
        case "Up": {
          this.changeFocus(weekDay, -7);
          break;
        }
        case "ArrowDown":
        case "Down": {
          this.changeFocus(weekDay, 7);
          break;
        }
      }
      if (preventDefault) {
        event.preventDefault();
      }
    },
    changeFocus(day, inc) {
      const nextDay = new Date(day.getTime());
      nextDay.setDate(day.getDate() + inc);
      while ((!this.minDate || nextDay > this.minDate) && (!this.maxDate || nextDay < this.maxDate) && !this.selectableDate(nextDay)) {
        nextDay.setDate(nextDay.getDate() + Math.sign(inc));
      }
      this.setRangeHoverEndDate(nextDay);
      this.$emit("change-focus", nextDay);
    }
  }
});

const _hoisted_1$A = { class: "datepicker-row" };
const _hoisted_2$v = ["disabled", "onClick", "onMouseenter", "onKeydown", "tabindex"];
const _hoisted_3$j = {
  key: 0,
  class: "events"
};
const _hoisted_4$e = {
  key: 0,
  class: "events"
};
function _sfc_render$F(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    Fragment,
    null,
    [
      createCommentVNode(" eslint-disable max-len "),
      createBaseVNode("div", _hoisted_1$A, [
        _ctx.showWeekNumber ? (openBlock(), createElementBlock(
          "a",
          {
            key: 0,
            class: normalizeClass(["datepicker-cell is-week-number", { "is-clickable": _ctx.weekNumberClickable }]),
            onClick: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.clickWeekNumber(_ctx.getWeekNumber(_ctx.week[6])), ["prevent"]))
          },
          [
            createBaseVNode(
              "span",
              null,
              toDisplayString$1(_ctx.getWeekNumber(_ctx.week[6]).week),
              1
              /* TEXT */
            )
          ],
          2
          /* CLASS */
        )) : createCommentVNode("v-if", true),
        (openBlock(true), createElementBlock(
          Fragment,
          null,
          renderList(_ctx.week, (weekDay, index) => {
            return openBlock(), createElementBlock(
              Fragment,
              { key: index },
              [
                _ctx.selectableDate(weekDay) && !_ctx.disabled ? (openBlock(), createElementBlock("a", {
                  key: 0,
                  ref_for: true,
                  ref: `day-${weekDay.getMonth()}-${weekDay.getDate()}`,
                  class: normalizeClass([_ctx.classObject(weekDay), "datepicker-cell"]),
                  role: "button",
                  href: "#",
                  disabled: _ctx.disabled || void 0,
                  onClick: withModifiers(($event) => _ctx.emitChosenDate(weekDay), ["prevent"]),
                  onMouseenter: ($event) => _ctx.setRangeHoverEndDate(weekDay),
                  onKeydown: ($event) => _ctx.manageKeydown($event, weekDay),
                  tabindex: _ctx.day === weekDay.getDate() && _ctx.month === weekDay.getMonth() ? void 0 : -1
                }, [
                  createBaseVNode(
                    "span",
                    null,
                    toDisplayString$1(weekDay.getDate()),
                    1
                    /* TEXT */
                  ),
                  _ctx.eventsDateMatch(weekDay) ? (openBlock(), createElementBlock("div", _hoisted_3$j, [
                    (openBlock(true), createElementBlock(
                      Fragment,
                      null,
                      renderList(_ctx.eventsDateMatch(weekDay), (event, evIdx) => {
                        return openBlock(), createElementBlock(
                          "div",
                          {
                            class: normalizeClass(["event", event.type]),
                            key: evIdx
                          },
                          null,
                          2
                          /* CLASS */
                        );
                      }),
                      128
                      /* KEYED_FRAGMENT */
                    ))
                  ])) : createCommentVNode("v-if", true)
                ], 42, _hoisted_2$v)) : (openBlock(), createElementBlock(
                  "div",
                  {
                    key: 1,
                    class: normalizeClass([_ctx.classObject(weekDay), "datepicker-cell"])
                  },
                  [
                    createBaseVNode(
                      "span",
                      null,
                      toDisplayString$1(weekDay.getDate()),
                      1
                      /* TEXT */
                    ),
                    _ctx.eventsDateMatch(weekDay) ? (openBlock(), createElementBlock("div", _hoisted_4$e, [
                      (openBlock(true), createElementBlock(
                        Fragment,
                        null,
                        renderList(_ctx.eventsDateMatch(weekDay), (event, evIdx) => {
                          return openBlock(), createElementBlock(
                            "div",
                            {
                              class: normalizeClass(["event", event.type]),
                              key: evIdx
                            },
                            null,
                            2
                            /* CLASS */
                          );
                        }),
                        128
                        /* KEYED_FRAGMENT */
                      ))
                    ])) : createCommentVNode("v-if", true)
                  ],
                  2
                  /* CLASS */
                ))
              ],
              64
              /* STABLE_FRAGMENT */
            );
          }),
          128
          /* KEYED_FRAGMENT */
        ))
      ]),
      createCommentVNode(" eslint-enable max-len ")
    ],
    2112
    /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
  );
}
var BDatepickerTableRow = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$F]]);

var _sfc_main$t = defineComponent({
  name: "BDatepickerTable",
  components: {
    BDatepickerTableRow
  },
  props: {
    modelValue: {
      type: [Date, Array, null]
    },
    dayNames: [Array, null],
    monthNames: [Array, null],
    firstDayOfWeek: [Number, null],
    events: Array,
    indicators: String,
    minDate: [Date, null],
    maxDate: [Date, null],
    focused: Object,
    disabled: Boolean,
    dateCreator: Function,
    unselectableDates: [Array, Function, null],
    unselectableDaysOfWeek: [Array, null],
    selectableDates: [Array, Function, null],
    nearbyMonthDays: Boolean,
    nearbySelectableMonthDays: Boolean,
    showWeekNumber: Boolean,
    weekNumberClickable: Boolean,
    rulesForFirstWeek: Number,
    range: Boolean,
    multiple: Boolean
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    "range-end": (_date) => true,
    "range-start": (_date) => true,
    "update:focused": (_focused) => true,
    "update:modelValue": (_value) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      selectedBeginDate: void 0,
      selectedEndDate: void 0,
      hoveredEndDate: void 0
    };
  },
  computed: {
    multipleSelectedDates: {
      get() {
        return this.multiple && this.modelValue ? this.modelValue : [];
      },
      set(value) {
        this.$emit("update:modelValue", value);
      }
    },
    visibleDayNames() {
      const visibleDayNames = [];
      let index = this.firstDayOfWeek;
      while (visibleDayNames.length < this.dayNames.length) {
        const currentDayName = this.dayNames[index % this.dayNames.length];
        visibleDayNames.push(currentDayName);
        index++;
      }
      if (this.showWeekNumber) visibleDayNames.unshift("");
      return visibleDayNames;
    },
    hasEvents() {
      return this.events && this.events.length;
    },
    /*
    * Return array of all events in the specified month
    */
    eventsInThisMonth() {
      if (!this.events) return [];
      const monthEvents = [];
      for (let i = 0; i < this.events.length; i++) {
        let event = this.events[i];
        if (!Object.prototype.hasOwnProperty.call(event, "date")) {
          event = { date: event, type: "is-primary" };
        }
        if (!Object.prototype.hasOwnProperty.call(event, "type")) {
          event.type = "is-primary";
        }
        if (event.date.getMonth() === this.focused.month && event.date.getFullYear() === this.focused.year) {
          monthEvents.push(event);
        }
      }
      return monthEvents;
    },
    /*
    * Return array of all weeks in the specified month
    */
    weeksInThisMonth() {
      this.validateFocusedDay();
      const month = this.focused.month;
      const year = this.focused.year;
      const weeksInThisMonth = [];
      let startingDay = 1;
      while (weeksInThisMonth.length < 6) {
        const newWeek = this.weekBuilder(startingDay, month, year);
        weeksInThisMonth.push(newWeek);
        startingDay += 7;
      }
      return weeksInThisMonth;
    },
    hoveredDateRange() {
      var _a, _b;
      if (!this.range) {
        return [];
      }
      if (!isNaN((_b = (_a = this.selectedEndDate) == null ? void 0 : _a.valueOf()) != null ? _b : NaN)) {
        return [];
      }
      if (this.hoveredEndDate < this.selectedBeginDate) {
        return [this.hoveredEndDate, this.selectedBeginDate].filter(isDefined);
      }
      return [this.selectedBeginDate, this.hoveredEndDate].filter(isDefined);
    },
    disabledOrUndefined() {
      return this.disabled || void 0;
    }
  },
  methods: {
    /*
    * Emit input event with selected date as payload for v-model in parent
    */
    updateSelectedDate(date) {
      if (!this.range && !this.multiple) {
        this.$emit("update:modelValue", date);
      } else if (this.range) {
        this.handleSelectRangeDate(date);
      } else if (this.multiple) {
        this.handleSelectMultipleDates(date);
      }
    },
    /*
    * If both begin and end dates are set, reset the end date and set the begin date.
    * If only begin date is selected, emit an array of the begin date and the new date.
    * If not set, only set the begin date.
    */
    handleSelectRangeDate(date) {
      if (this.selectedBeginDate && this.selectedEndDate) {
        this.selectedBeginDate = date;
        this.selectedEndDate = void 0;
        this.$emit("range-start", date);
      } else if (this.selectedBeginDate && !this.selectedEndDate) {
        if (this.selectedBeginDate > date) {
          this.selectedEndDate = this.selectedBeginDate;
          this.selectedBeginDate = date;
        } else {
          this.selectedEndDate = date;
        }
        this.$emit("range-end", date);
        this.$emit("update:modelValue", [this.selectedBeginDate, this.selectedEndDate]);
      } else {
        this.selectedBeginDate = date;
        this.$emit("range-start", date);
      }
    },
    /*
    * If selected date already exists list of selected dates, remove it from the list
    * Otherwise, add date to list of selected dates
    */
    handleSelectMultipleDates(date) {
      const multipleSelect = this.multipleSelectedDates.filter(
        (selectedDate) => selectedDate.getDate() === date.getDate() && selectedDate.getFullYear() === date.getFullYear() && selectedDate.getMonth() === date.getMonth()
      );
      if (multipleSelect.length) {
        this.multipleSelectedDates = this.multipleSelectedDates.filter(
          (selectedDate) => selectedDate.getDate() !== date.getDate() || selectedDate.getFullYear() !== date.getFullYear() || selectedDate.getMonth() !== date.getMonth()
        );
      } else {
        this.multipleSelectedDates = [...this.multipleSelectedDates, date];
      }
    },
    /*
     * Return array of all days in the week that the startingDate is within
     */
    weekBuilder(startingDate, month, year) {
      const thisMonth = new Date(year, month);
      const thisWeek = [];
      const dayOfWeek = new Date(year, month, startingDate).getDay();
      const end = dayOfWeek >= this.firstDayOfWeek ? dayOfWeek - this.firstDayOfWeek : 7 - this.firstDayOfWeek + dayOfWeek;
      let daysAgo = 1;
      for (let i = 0; i < end; i++) {
        thisWeek.unshift(
          new Date(
            thisMonth.getFullYear(),
            thisMonth.getMonth(),
            startingDate - daysAgo
          )
        );
        daysAgo++;
      }
      thisWeek.push(new Date(year, month, startingDate));
      let daysForward = 1;
      while (thisWeek.length < 7) {
        thisWeek.push(new Date(year, month, startingDate + daysForward));
        daysForward++;
      }
      return thisWeek;
    },
    validateFocusedDay() {
      const focusedDate = new Date(this.focused.year, this.focused.month, this.focused.day);
      if (this.selectableDate(focusedDate)) return;
      let day = 0;
      const monthDays = new Date(this.focused.year, this.focused.month + 1, 0).getDate();
      let firstFocusable = null;
      while (!firstFocusable && ++day < monthDays) {
        const date = new Date(this.focused.year, this.focused.month, day);
        if (this.selectableDate(date)) {
          firstFocusable = focusedDate;
          const focused = {
            day: date.getDate(),
            month: date.getMonth(),
            year: date.getFullYear()
          };
          this.$emit("update:focused", focused);
        }
      }
    },
    /*
     * Check that selected day is within earliest/latest params and
     * is within this month
     */
    selectableDate(day) {
      const validity = [];
      if (this.minDate) {
        validity.push(day >= this.minDate);
      }
      if (this.maxDate) {
        validity.push(day <= this.maxDate);
      }
      if (this.nearbyMonthDays && !this.nearbySelectableMonthDays) {
        validity.push(day.getMonth() === this.focused.month);
      }
      if (this.selectableDates) {
        if (typeof this.selectableDates === "function") {
          if (this.selectableDates(day)) {
            return true;
          } else {
            validity.push(false);
          }
        } else {
          for (let i = 0; i < this.selectableDates.length; i++) {
            const enabledDate = this.selectableDates[i];
            if (day.getDate() === enabledDate.getDate() && day.getFullYear() === enabledDate.getFullYear() && day.getMonth() === enabledDate.getMonth()) {
              return true;
            } else {
              validity.push(false);
            }
          }
        }
      }
      if (this.unselectableDates) {
        if (typeof this.unselectableDates === "function") {
          validity.push(!this.unselectableDates(day));
        } else {
          for (let i = 0; i < this.unselectableDates.length; i++) {
            const disabledDate = this.unselectableDates[i];
            validity.push(
              day.getDate() !== disabledDate.getDate() || day.getFullYear() !== disabledDate.getFullYear() || day.getMonth() !== disabledDate.getMonth()
            );
          }
        }
      }
      if (this.unselectableDaysOfWeek) {
        for (let i = 0; i < this.unselectableDaysOfWeek.length; i++) {
          const dayOfWeek = this.unselectableDaysOfWeek[i];
          validity.push(day.getDay() !== dayOfWeek);
        }
      }
      return validity.indexOf(false) < 0;
    },
    eventsInThisWeek(week) {
      return this.eventsInThisMonth.filter((event) => {
        const stripped = new Date(Date.parse(event.date + ""));
        stripped.setHours(0, 0, 0, 0);
        const timed = stripped.getTime();
        return week.some((weekDate) => weekDate.getTime() === timed);
      });
    },
    setRangeHoverEndDate(day) {
      this.hoveredEndDate = day;
    },
    changeFocus(day) {
      const focused = {
        day: day.getDate(),
        month: day.getMonth(),
        year: day.getFullYear()
      };
      this.$emit("update:focused", focused);
    }
  }
});

const _hoisted_1$z = { class: "datepicker-table" };
const _hoisted_2$u = { class: "datepicker-header" };
function _sfc_render$E(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_datepicker_table_row = resolveComponent("b-datepicker-table-row");
  return openBlock(), createElementBlock("section", _hoisted_1$z, [
    createBaseVNode("header", _hoisted_2$u, [
      (openBlock(true), createElementBlock(
        Fragment,
        null,
        renderList(_ctx.visibleDayNames, (day, index) => {
          return openBlock(), createElementBlock("div", {
            key: index,
            class: "datepicker-cell"
          }, [
            createBaseVNode(
              "span",
              null,
              toDisplayString$1(day),
              1
              /* TEXT */
            )
          ]);
        }),
        128
        /* KEYED_FRAGMENT */
      ))
    ]),
    createBaseVNode(
      "div",
      {
        class: normalizeClass(["datepicker-body", { "has-events": _ctx.hasEvents }])
      },
      [
        (openBlock(true), createElementBlock(
          Fragment,
          null,
          renderList(_ctx.weeksInThisMonth, (week, index) => {
            return openBlock(), createBlock(_component_b_datepicker_table_row, {
              key: index,
              "selected-date": _ctx.modelValue ?? void 0,
              day: _ctx.focused.day,
              week,
              month: _ctx.focused.month,
              "min-date": _ctx.minDate,
              "max-date": _ctx.maxDate,
              disabled: _ctx.disabledOrUndefined,
              "unselectable-dates": _ctx.unselectableDates,
              "unselectable-days-of-week": _ctx.unselectableDaysOfWeek,
              "selectable-dates": _ctx.selectableDates,
              events: _ctx.eventsInThisWeek(week),
              indicators: _ctx.indicators,
              "date-creator": _ctx.dateCreator,
              "nearby-month-days": _ctx.nearbyMonthDays,
              "nearby-selectable-month-days": _ctx.nearbySelectableMonthDays,
              "show-week-number": _ctx.showWeekNumber,
              "week-number-clickable": _ctx.weekNumberClickable,
              "first-day-of-week": _ctx.firstDayOfWeek,
              "rules-for-first-week": _ctx.rulesForFirstWeek,
              range: _ctx.range,
              "hovered-date-range": _ctx.hoveredDateRange,
              onSelect: _ctx.updateSelectedDate,
              onRangeHoverEndDate: _ctx.setRangeHoverEndDate,
              multiple: _ctx.multiple,
              onChangeFocus: _ctx.changeFocus
            }, null, 8, ["selected-date", "day", "week", "month", "min-date", "max-date", "disabled", "unselectable-dates", "unselectable-days-of-week", "selectable-dates", "events", "indicators", "date-creator", "nearby-month-days", "nearby-selectable-month-days", "show-week-number", "week-number-clickable", "first-day-of-week", "rules-for-first-week", "range", "hovered-date-range", "onSelect", "onRangeHoverEndDate", "multiple", "onChangeFocus"]);
          }),
          128
          /* KEYED_FRAGMENT */
        ))
      ],
      2
      /* CLASS */
    )
  ]);
}
var BDatepickerTable = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$E]]);

var _sfc_main$s = defineComponent({
  name: "BDatepickerMonth",
  props: {
    modelValue: {
      type: [Date, Array, null]
    },
    monthNames: [Array, null],
    events: Array,
    indicators: String,
    minDate: [Date, null],
    maxDate: [Date, null],
    focused: Object,
    disabled: Boolean,
    dateCreator: Function,
    unselectableDates: [Array, Function, null],
    unselectableDaysOfWeek: [Array, null],
    selectableDates: [Array, Function, null],
    range: Boolean,
    multiple: Boolean
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    "change-focus": (_date) => true,
    "range-end": (_date) => true,
    "range-start": (_date) => true,
    "update:modelValue": (_date) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      selectedBeginDate: void 0,
      selectedEndDate: void 0,
      hoveredEndDate: void 0,
      multipleSelectedDates: this.multiple && this.modelValue ? this.modelValue : []
    };
  },
  computed: {
    hasEvents() {
      return this.events && this.events.length;
    },
    /*
    * Return array of all events in the specified month
    */
    eventsInThisYear() {
      if (!this.events) return [];
      const yearEvents = [];
      for (let i = 0; i < this.events.length; i++) {
        let event = this.events[i];
        if (!Object.prototype.hasOwnProperty.call(event, "date")) {
          event = { date: event, type: "is-primary" };
        }
        if (!Object.prototype.hasOwnProperty.call(event, "type")) {
          event.type = "is-primary";
        }
        if (event.date.getFullYear() === this.focused.year) {
          yearEvents.push(event);
        }
      }
      return yearEvents;
    },
    monthDates() {
      const year = this.focused.year;
      const months = [];
      for (let i = 0; i < 12; i++) {
        const d = new Date(year, i, 1);
        d.setHours(0, 0, 0, 0);
        months.push(d);
      }
      return months;
    },
    focusedMonth() {
      return this.focused.month;
    },
    hoveredDateRange() {
      var _a, _b;
      if (!this.range) {
        return [];
      }
      if (!isNaN((_b = (_a = this.selectedEndDate) == null ? void 0 : _a.valueOf()) != null ? _b : NaN)) {
        return [];
      }
      if (this.hoveredEndDate < this.selectedBeginDate) {
        return [this.hoveredEndDate, this.selectedBeginDate].filter(isDefined);
      }
      return [this.selectedBeginDate, this.hoveredEndDate].filter(isDefined);
    },
    disabledOrUndefined() {
      return this.disabled || void 0;
    }
  },
  watch: {
    focusedMonth(month) {
      const refName = `month-${month}`;
      this.$nextTick(() => {
        let cell;
        if (Array.isArray(this.$refs[refName])) {
          cell = this.$refs[refName][0];
        } else {
          cell = this.$refs[refName];
        }
        if (cell) {
          cell.focus();
        }
      });
    }
  },
  methods: {
    selectMultipleDates(date) {
      const multipleSelect = this.multipleSelectedDates.filter(
        (selectedDate) => selectedDate.getDate() === date.getDate() && selectedDate.getFullYear() === date.getFullYear() && selectedDate.getMonth() === date.getMonth()
      );
      if (multipleSelect.length) {
        this.multipleSelectedDates = this.multipleSelectedDates.filter(
          (selectedDate) => selectedDate.getDate() !== date.getDate() || selectedDate.getFullYear() !== date.getFullYear() || selectedDate.getMonth() !== date.getMonth()
        );
      } else {
        this.multipleSelectedDates.push(date);
      }
      this.$emit("update:modelValue", this.multipleSelectedDates);
    },
    selectableDate(day) {
      const validity = [];
      if (this.minDate) {
        validity.push(day >= this.minDate);
      }
      if (this.maxDate) {
        validity.push(day <= this.maxDate);
      }
      validity.push(day.getFullYear() === this.focused.year);
      if (this.selectableDates) {
        if (typeof this.selectableDates === "function") {
          if (this.selectableDates(day)) {
            return true;
          } else {
            validity.push(false);
          }
        } else {
          for (let i = 0; i < this.selectableDates.length; i++) {
            const enabledDate = this.selectableDates[i];
            if (day.getFullYear() === enabledDate.getFullYear() && day.getMonth() === enabledDate.getMonth()) {
              return true;
            } else {
              validity.push(false);
            }
          }
        }
      }
      if (this.unselectableDates) {
        if (typeof this.unselectableDates === "function") {
          validity.push(!this.unselectableDates(day));
        } else {
          for (let i = 0; i < this.unselectableDates.length; i++) {
            const disabledDate = this.unselectableDates[i];
            validity.push(
              day.getFullYear() !== disabledDate.getFullYear() || day.getMonth() !== disabledDate.getMonth()
            );
          }
        }
      }
      if (this.unselectableDaysOfWeek) {
        for (let i = 0; i < this.unselectableDaysOfWeek.length; i++) {
          const dayOfWeek = this.unselectableDaysOfWeek[i];
          validity.push(day.getDay() !== dayOfWeek);
        }
      }
      return validity.indexOf(false) < 0;
    },
    // TODO: return undefined instead of false if no events
    eventsDateMatch(day) {
      if (!this.eventsInThisYear.length) return false;
      const monthEvents = [];
      for (let i = 0; i < this.eventsInThisYear.length; i++) {
        if (this.eventsInThisYear[i].date.getMonth() === day.getMonth()) {
          monthEvents.push(this.events[i]);
        }
      }
      if (!monthEvents.length) {
        return false;
      }
      return monthEvents;
    },
    /*
    * Build classObject for cell using validations
    */
    classObject(day) {
      function dateMatch(dateOne, dateTwo, multiple) {
        if (!dateOne || !dateTwo || multiple) {
          return false;
        }
        if (Array.isArray(dateTwo)) {
          return dateTwo.some((date) => dateOne.getFullYear() === date.getFullYear() && dateOne.getMonth() === date.getMonth());
        }
        return dateOne.getFullYear() === dateTwo.getFullYear() && dateOne.getMonth() === dateTwo.getMonth();
      }
      function dateWithin(dateOne, dates, multiple) {
        if (!Array.isArray(dates) || multiple) {
          return false;
        }
        return dateOne > dates[0] && dateOne < dates[1];
      }
      function dateMultipleSelected(dateOne, dates, multiple) {
        if (!Array.isArray(dates) || !multiple) {
          return false;
        }
        return dates.some((date) => dateOne.getDate() === date.getDate() && dateOne.getFullYear() === date.getFullYear() && dateOne.getMonth() === date.getMonth());
      }
      return {
        "is-selected": dateMatch(day, this.modelValue, this.multiple) || dateWithin(day, this.modelValue, this.multiple) || dateMultipleSelected(day, this.multipleSelectedDates, this.multiple),
        "is-first-selected": dateMatch(
          day,
          Array.isArray(this.modelValue) ? this.modelValue[0] : void 0,
          this.multiple
        ),
        "is-within-selected": dateWithin(day, this.modelValue, this.multiple),
        "is-last-selected": dateMatch(
          day,
          Array.isArray(this.modelValue) ? this.modelValue[1] : void 0,
          this.multiple
        ),
        "is-within-hovered-range": this.hoveredDateRange && this.hoveredDateRange.length === 2 && (dateMatch(day, this.hoveredDateRange) || dateWithin(day, this.hoveredDateRange)),
        "is-first-hovered": dateMatch(
          day,
          Array.isArray(this.hoveredDateRange) ? this.hoveredDateRange[0] : void 0
        ),
        "is-within-hovered": dateWithin(day, this.hoveredDateRange),
        "is-last-hovered": dateMatch(
          day,
          Array.isArray(this.hoveredDateRange) ? this.hoveredDateRange[1] : void 0
        ),
        "is-today": dateMatch(day, this.dateCreator()),
        "is-selectable": this.selectableDate(day) && !this.disabled,
        "is-unselectable": !this.selectableDate(day) || this.disabled
      };
    },
    manageKeydown({ key }, date) {
      switch (key) {
        case " ":
        case "Space":
        case "Spacebar":
        case "Enter": {
          this.updateSelectedDate(date);
          break;
        }
        case "ArrowLeft":
        case "Left": {
          this.changeFocus(date, -1);
          break;
        }
        case "ArrowRight":
        case "Right": {
          this.changeFocus(date, 1);
          break;
        }
        case "ArrowUp":
        case "Up": {
          this.changeFocus(date, -3);
          break;
        }
        case "ArrowDown":
        case "Down": {
          this.changeFocus(date, 3);
          break;
        }
      }
    },
    /*
    * Emit input event with selected date as payload for v-model in parent
    */
    updateSelectedDate(date) {
      if (!this.range && !this.multiple) {
        this.emitChosenDate(date);
      } else if (this.range) {
        this.handleSelectRangeDate(date);
      } else if (this.multiple) {
        this.selectMultipleDates(date);
      }
    },
    /*
     * Emit select event with chosen date as payload
     */
    emitChosenDate(day) {
      if (this.disabled) return;
      if (!this.multiple) {
        if (this.selectableDate(day)) {
          this.$emit("update:modelValue", day);
        }
      } else {
        this.selectMultipleDates(day);
      }
    },
    /*
    * If both begin and end dates are set, reset the end date and set the begin date.
    * If only begin date is selected, emit an array of the begin date and the new date.
    * If not set, only set the begin date.
    */
    handleSelectRangeDate(date) {
      if (this.disabled) return;
      if (this.selectedBeginDate && this.selectedEndDate) {
        this.selectedBeginDate = date;
        this.selectedEndDate = void 0;
        this.$emit("range-start", date);
      } else if (this.selectedBeginDate && !this.selectedEndDate) {
        if (this.selectedBeginDate > date) {
          this.selectedEndDate = this.selectedBeginDate;
          this.selectedBeginDate = date;
        } else {
          this.selectedEndDate = date;
        }
        this.$emit("range-end", date);
        this.$emit("update:modelValue", [this.selectedBeginDate, this.selectedEndDate]);
      } else {
        this.selectedBeginDate = date;
        this.$emit("range-start", date);
      }
    },
    setRangeHoverEndDate(day) {
      if (this.range) {
        this.hoveredEndDate = day;
      }
    },
    changeFocus(month, inc) {
      const nextMonth = month;
      nextMonth.setMonth(month.getMonth() + inc);
      this.$emit("change-focus", nextMonth);
    }
  }
});

const _hoisted_1$y = { class: "datepicker-table" };
const _hoisted_2$t = { class: "datepicker-months" };
const _hoisted_3$i = ["disabled", "onClick", "onMouseenter", "onKeydown", "tabindex"];
const _hoisted_4$d = {
  key: 0,
  class: "events"
};
function _sfc_render$D(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("section", _hoisted_1$y, [
    createBaseVNode(
      "div",
      {
        class: normalizeClass(["datepicker-body", { "has-events": _ctx.hasEvents }])
      },
      [
        createBaseVNode("div", _hoisted_2$t, [
          (openBlock(true), createElementBlock(
            Fragment,
            null,
            renderList(_ctx.monthDates, (date, index) => {
              return openBlock(), createElementBlock(
                Fragment,
                { key: index },
                [
                  _ctx.selectableDate(date) && !_ctx.disabled ? (openBlock(), createElementBlock("a", {
                    key: 0,
                    ref_for: true,
                    ref: `month-${date.getMonth()}`,
                    class: normalizeClass([[
                      _ctx.classObject(date),
                      { "has-event": _ctx.eventsDateMatch(date) },
                      _ctx.indicators
                    ], "datepicker-cell"]),
                    role: "button",
                    href: "#",
                    disabled: _ctx.disabledOrUndefined,
                    onClick: withModifiers(($event) => _ctx.updateSelectedDate(date), ["prevent"]),
                    onMouseenter: ($event) => _ctx.setRangeHoverEndDate(date),
                    onKeydown: withModifiers(($event) => _ctx.manageKeydown($event, date), ["prevent"]),
                    tabindex: _ctx.focused.month === date.getMonth() ? void 0 : -1
                  }, [
                    createTextVNode(
                      toDisplayString$1(_ctx.monthNames[date.getMonth()]) + " ",
                      1
                      /* TEXT */
                    ),
                    _ctx.eventsDateMatch(date) ? (openBlock(), createElementBlock("div", _hoisted_4$d, [
                      (openBlock(true), createElementBlock(
                        Fragment,
                        null,
                        renderList(_ctx.eventsDateMatch(date), (event, evIdx) => {
                          return openBlock(), createElementBlock(
                            "div",
                            {
                              class: normalizeClass(["event", event.type]),
                              key: evIdx
                            },
                            null,
                            2
                            /* CLASS */
                          );
                        }),
                        128
                        /* KEYED_FRAGMENT */
                      ))
                    ])) : createCommentVNode("v-if", true)
                  ], 42, _hoisted_3$i)) : (openBlock(), createElementBlock(
                    "div",
                    {
                      key: 1,
                      class: normalizeClass([_ctx.classObject(date), "datepicker-cell"])
                    },
                    toDisplayString$1(_ctx.monthNames[date.getMonth()]),
                    3
                    /* TEXT, CLASS */
                  ))
                ],
                64
                /* STABLE_FRAGMENT */
              );
            }),
            128
            /* KEYED_FRAGMENT */
          ))
        ])
      ],
      2
      /* CLASS */
    )
  ]);
}
var BDatepickerMonth = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["render", _sfc_render$D]]);

const defaultDateFormatter = (date, vm) => {
  const targetDates = Array.isArray(date) ? date : [date];
  const dates = targetDates.map((date2) => {
    const d = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate(), 12);
    return !vm.isTypeMonth ? vm.dtf.format(d) : vm.dtfMonth.format(d);
  });
  return !vm.multiple ? dates.join(" - ") : dates.join(", ");
};
const defaultDateParser = (date, vm) => {
  if (vm.dtf.formatToParts && typeof vm.dtf.formatToParts === "function") {
    const formatRegex = (vm.isTypeMonth ? vm.dtfMonth : vm.dtf).formatToParts(new Date(2e3, 11, 25)).map((part) => {
      if (part.type === "literal") {
        return part.value;
      }
      return `((?!=<${part.type}>)\\d+)`;
    }).join("");
    const dateGroups = matchWithGroups(formatRegex, date);
    if (dateGroups.year && dateGroups.year.length === 4 && dateGroups.month && +dateGroups.month <= 12) {
      if (vm.isTypeMonth) return new Date(+dateGroups.year, +dateGroups.month - 1);
      else if (dateGroups.day && +dateGroups.day <= 31) {
        return new Date(+dateGroups.year, +dateGroups.month - 1, +dateGroups.day, 12);
      }
    }
  }
  if (!vm.isTypeMonth) return new Date(Date.parse(date));
  if (date) {
    const s = date.split("/");
    const year = s[0].length === 4 ? s[0] : s[1];
    const month = s[0].length === 2 ? s[0] : s[1];
    if (year && month) {
      return new Date(parseInt(year, 10), parseInt(month, 10) - 1, 1, 0, 0, 0, 0);
    }
  }
  return null;
};
var _sfc_main$r = defineComponent({
  name: "BDatepicker",
  components: {
    BDatepickerTable,
    BDatepickerMonth,
    BInput,
    BField: Field,
    BSelect,
    BIcon,
    BDropdown,
    BDropdownItem
  },
  mixins: [CompatFallthroughMixin, FormElementMixin],
  provide() {
    return {
      $datepicker: this
    };
  },
  props: {
    modelValue: {
      type: [Date, Array, null]
    },
    dayNames: {
      type: [Array, null],
      default: () => {
        if (!Array.isArray(config.defaultDayNames)) {
          return void 0;
        }
        return config.defaultDayNames;
      }
    },
    monthNames: {
      type: [Array, null],
      default: () => {
        if (!Array.isArray(config.defaultMonthNames)) {
          return void 0;
        }
        return config.defaultMonthNames;
      }
    },
    firstDayOfWeek: {
      type: Number,
      default: () => {
        if (typeof config.defaultFirstDayOfWeek === "number") {
          return config.defaultFirstDayOfWeek;
        } else {
          return 0;
        }
      }
    },
    inline: Boolean,
    minDate: [Date, null],
    maxDate: [Date, null],
    focusedDate: Date,
    placeholder: String,
    editable: Boolean,
    disabled: Boolean,
    horizontalTimePicker: Boolean,
    unselectableDates: [Array, Function],
    unselectableDaysOfWeek: {
      type: [Array, null],
      default: () => config.defaultUnselectableDaysOfWeek
    },
    selectableDates: [Array, Function],
    dateFormatter: {
      type: Function,
      default: (date, vm) => {
        if (typeof config.defaultDateFormatter === "function") {
          return config.defaultDateFormatter(date);
        } else {
          return defaultDateFormatter(date, vm);
        }
      }
    },
    dateParser: {
      type: Function,
      default: (date, vm) => {
        if (typeof config.defaultDateParser === "function") {
          return config.defaultDateParser(date);
        } else {
          return defaultDateParser(date, vm);
        }
      }
    },
    dateCreator: {
      type: Function,
      default: () => {
        if (typeof config.defaultDateCreator === "function") {
          return config.defaultDateCreator();
        } else {
          return /* @__PURE__ */ new Date();
        }
      }
    },
    mobileNative: {
      type: Boolean,
      default: () => config.defaultDatepickerMobileNative
    },
    position: String,
    iconRight: String,
    iconRightClickable: Boolean,
    events: Array,
    indicators: {
      type: String,
      default: "dots"
    },
    openOnFocus: Boolean,
    iconPrev: {
      type: String,
      default: () => config.defaultIconPrev
    },
    iconNext: {
      type: String,
      default: () => config.defaultIconNext
    },
    yearsRange: {
      type: Array,
      default: () => config.defaultDatepickerYearsRange
    },
    type: {
      type: String,
      validator: (value) => {
        return [
          "month"
        ].indexOf(value) >= 0;
      }
    },
    nearbyMonthDays: {
      type: Boolean,
      default: () => config.defaultDatepickerNearbyMonthDays
    },
    nearbySelectableMonthDays: {
      type: Boolean,
      default: () => config.defaultDatepickerNearbySelectableMonthDays
    },
    showWeekNumber: {
      type: Boolean,
      default: () => config.defaultDatepickerShowWeekNumber
    },
    weekNumberClickable: {
      type: Boolean,
      default: () => config.defaultDatepickerWeekNumberClickable
    },
    rulesForFirstWeek: {
      type: Number,
      default: () => 4
    },
    range: {
      type: Boolean,
      default: false
    },
    closeOnClick: {
      type: Boolean,
      default: true
    },
    multiple: {
      type: Boolean,
      default: false
    },
    mobileModal: {
      type: Boolean,
      default: () => config.defaultDatepickerMobileModal
    },
    focusable: {
      type: Boolean,
      default: true
    },
    trapFocus: {
      type: Boolean,
      default: () => config.defaultTrapFocus
    },
    appendToBody: Boolean,
    ariaNextLabel: String,
    ariaPreviousLabel: String
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    "active-change": (_active) => true,
    "change-month": (_month) => true,
    "change-year": (_year) => true,
    "icon-right-click": (_event) => true,
    "range-end": (_date) => true,
    "range-start": (_date) => true,
    "update:modelValue": (_value) => true,
    "week-number-click": (_week, _year) => true
    // emitted by `DatepickerTableRow`
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    const focusedDate = (Array.isArray(this.modelValue) ? this.modelValue[0] : this.modelValue) || this.focusedDate || this.dateCreator();
    if (!this.modelValue && this.maxDate && this.maxDate.getFullYear() < focusedDate.getFullYear()) {
      focusedDate.setFullYear(this.maxDate.getFullYear());
    }
    return {
      dateSelected: this.modelValue,
      focusedDateData: {
        day: focusedDate.getDate(),
        month: focusedDate.getMonth(),
        year: focusedDate.getFullYear()
      },
      _elementRef: "input",
      _isDatepicker: true
    };
  },
  computed: {
    computedValue: {
      get() {
        return this.dateSelected;
      },
      set(value) {
        this.updateInternalState(value);
        if (!this.multiple) this.togglePicker(false);
        this.$emit("update:modelValue", value);
        if (this.useHtml5Validation) {
          this.$nextTick(() => {
            this.checkHtml5Validity();
          });
        }
      }
    },
    formattedValue() {
      return this.formatValue(this.computedValue);
    },
    localeOptions() {
      return new Intl.DateTimeFormat(this.locale, {
        year: "numeric",
        month: "numeric"
      }).resolvedOptions();
    },
    dtf() {
      return new Intl.DateTimeFormat(this.locale);
    },
    dtfMonth() {
      return new Intl.DateTimeFormat(this.locale, {
        year: this.localeOptions.year || "numeric",
        month: this.localeOptions.month || "2-digit"
      });
    },
    newMonthNames() {
      if (Array.isArray(this.monthNames)) {
        return this.monthNames;
      }
      return getMonthNames(this.locale);
    },
    newDayNames() {
      if (Array.isArray(this.dayNames)) {
        return this.dayNames;
      }
      return getWeekdayNames(this.locale);
    },
    listOfMonths() {
      let minMonth = 0;
      let maxMonth = 12;
      if (this.minDate && this.focusedDateData.year === this.minDate.getFullYear()) {
        minMonth = this.minDate.getMonth();
      }
      if (this.maxDate && this.focusedDateData.year === this.maxDate.getFullYear()) {
        maxMonth = this.maxDate.getMonth();
      }
      return this.newMonthNames.map((name, index) => {
        return {
          name,
          index,
          disabled: index < minMonth || index > maxMonth
        };
      });
    },
    /*
     * Returns an array of years for the year dropdown. If earliest/latest
     * dates are set by props, range of years will fall within those dates.
     */
    listOfYears() {
      let latestYear = this.focusedDateData.year + this.yearsRange[1];
      if (this.maxDate && this.maxDate.getFullYear() < latestYear) {
        latestYear = Math.max(this.maxDate.getFullYear(), this.focusedDateData.year);
      }
      let earliestYear = this.focusedDateData.year + this.yearsRange[0];
      if (this.minDate && this.minDate.getFullYear() > earliestYear) {
        earliestYear = Math.min(this.minDate.getFullYear(), this.focusedDateData.year);
      }
      const arrayOfYears = [];
      for (let i = earliestYear; i <= latestYear; i++) {
        arrayOfYears.push(i);
      }
      return arrayOfYears.reverse();
    },
    showPrev() {
      if (!this.minDate) return false;
      if (this.isTypeMonth) {
        return this.focusedDateData.year <= this.minDate.getFullYear();
      }
      const dateToCheck = new Date(this.focusedDateData.year, this.focusedDateData.month);
      const date = new Date(this.minDate.getFullYear(), this.minDate.getMonth());
      return dateToCheck <= date;
    },
    showNext() {
      if (!this.maxDate) return false;
      if (this.isTypeMonth) {
        return this.focusedDateData.year >= this.maxDate.getFullYear();
      }
      const dateToCheck = new Date(this.focusedDateData.year, this.focusedDateData.month);
      const date = new Date(this.maxDate.getFullYear(), this.maxDate.getMonth());
      return dateToCheck >= date;
    },
    isMobile() {
      return this.mobileNative && isMobile.any();
    },
    isTypeMonth() {
      return this.type === "month";
    },
    ariaRole() {
      if (!this.inline) {
        return "dialog";
      } else {
        return void 0;
      }
    },
    disabledOrUndefined() {
      return this.disabled || void 0;
    }
  },
  watch: {
    /*
     * When v-model is changed:
     *   1. Update internal value.
     *   2. If it's invalid, validate again.
     */
    modelValue(value) {
      this.updateInternalState(value);
      if (!this.multiple) this.togglePicker(false);
    },
    focusedDate(value) {
      if (value) {
        this.focusedDateData = {
          day: value.getDate(),
          month: value.getMonth(),
          year: value.getFullYear()
        };
      }
    },
    /*
     * Emit input event on month and/or year change
     */
    "focusedDateData.month"(value) {
      this.$emit("change-month", value);
    },
    "focusedDateData.year"(value) {
      this.$emit("change-year", value);
    }
  },
  methods: {
    /*
     * Parse string into date
     */
    onChange(value) {
      const date = this.dateParser(value, this);
      if (date && (!isNaN(date.valueOf()) || Array.isArray(date) && date.length === 2 && !isNaN(date[0]) && !isNaN(date[1]))) {
        this.computedValue = date;
      } else {
        this.computedValue = null;
        if (this.$refs.input) {
          this.$refs.input.newValue = this.computedValue;
        }
      }
    },
    /*
     * Format date into string
     */
    formatValue(value) {
      if (Array.isArray(value)) {
        const isArrayWithValidDates = Array.isArray(value) && value.every((v) => {
          var _a;
          return !isNaN((_a = v == null ? void 0 : v.valueOf()) != null ? _a : NaN);
        });
        return isArrayWithValidDates ? this.dateFormatter([...value], this) : null;
      }
      return value && !isNaN(value.valueOf()) ? this.dateFormatter(value, this) : null;
    },
    /*
     * Either decrement month by 1 if not January or decrement year by 1
     * and set month to 11 (December) or decrement year when 'month'
     */
    prev() {
      if (this.disabled) return;
      if (this.isTypeMonth) {
        this.focusedDateData.year -= 1;
      } else {
        if (this.focusedDateData.month > 0) {
          this.focusedDateData.month -= 1;
        } else {
          this.focusedDateData.month = 11;
          this.focusedDateData.year -= 1;
        }
      }
    },
    /*
     * Either increment month by 1 if not December or increment year by 1
     * and set month to 0 (January) or increment year when 'month'
     */
    next() {
      if (this.disabled) return;
      if (this.isTypeMonth) {
        this.focusedDateData.year += 1;
      } else {
        if (this.focusedDateData.month < 11) {
          this.focusedDateData.month += 1;
        } else {
          this.focusedDateData.month = 0;
          this.focusedDateData.year += 1;
        }
      }
    },
    formatNative(value) {
      return this.isTypeMonth ? this.formatYYYYMM(value) : this.formatYYYYMMDD(value);
    },
    /*
     * Format date into string 'YYYY-MM-DD'
     */
    formatYYYYMMDD(value) {
      const date = new Date(value);
      if (value && !isNaN(date.valueOf())) {
        const year = date.getFullYear();
        const month = date.getMonth() + 1;
        const day = date.getDate();
        return year + "-" + ((month < 10 ? "0" : "") + month) + "-" + ((day < 10 ? "0" : "") + day);
      }
      return "";
    },
    /*
     * Format date into string 'YYYY-MM'
     */
    formatYYYYMM(value) {
      const date = new Date(value);
      if (value && !isNaN(date.valueOf())) {
        const year = date.getFullYear();
        const month = date.getMonth() + 1;
        return year + "-" + ((month < 10 ? "0" : "") + month);
      }
      return "";
    },
    /*
     * Parse date from string
     */
    onChangeNativePicker(event) {
      const date = event.target.value;
      const s = date ? date.split("-") : [];
      if (s.length === 3) {
        const year = parseInt(s[0], 10);
        const month = parseInt(s[1]) - 1;
        const day = parseInt(s[2]);
        this.computedValue = new Date(year, month, day);
      } else {
        this.computedValue = null;
      }
    },
    updateInternalState(value) {
      if (this.dateSelected === value) return;
      const isArray = Array.isArray(value);
      const currentDate = isArray ? !value.length ? this.dateCreator() : value[value.length - 1] : !value ? this.dateCreator() : value;
      if (!isArray || this.dateSelected && value.length > this.dateSelected.length) {
        this.focusedDateData = {
          day: currentDate.getDate(),
          month: currentDate.getMonth(),
          year: currentDate.getFullYear()
        };
      }
      this.dateSelected = value;
    },
    /*
     * Toggle datepicker
     */
    togglePicker(active) {
      if (this.$refs.dropdown) {
        const isActive = typeof active === "boolean" ? active : !this.$refs.dropdown.isActive;
        if (isActive) {
          this.$refs.dropdown.isActive = isActive;
        } else if (this.closeOnClick) {
          this.$refs.dropdown.isActive = isActive;
        }
      }
    },
    /*
     * Call default onFocus method and show datepicker
     */
    handleOnFocus(event) {
      this.onFocus(event);
      if (this.openOnFocus) {
        this.togglePicker(true);
      }
    },
    /*
     * Toggle dropdown
     */
    toggle() {
      if (this.mobileNative && this.isMobile) {
        const input = this.$refs.input.$refs.input;
        input.focus();
        input.click();
        return;
      }
      this.$refs.dropdown.toggle();
    },
    /*
     * Avoid dropdown toggle when is already visible
     */
    onInputClick(event) {
      if (this.$refs.dropdown.isActive) {
        event.stopPropagation();
      }
    },
    /*
     * Keypress event that is bound to the document.
     */
    keyPress({ key }) {
      if (this.$refs.dropdown && this.$refs.dropdown.isActive && (key === "Escape" || key === "Esc")) {
        this.togglePicker(false);
      }
    },
    /*
     * Emit 'blur' event on dropdown is not active (closed)
     */
    onActiveChange(value) {
      if (!value) {
        this.onBlur();
      }
      this.$emit("active-change", value);
    },
    changeFocus(day) {
      this.focusedDateData = {
        day: day.getDate(),
        month: day.getMonth(),
        year: day.getFullYear()
      };
    }
  },
  created() {
    if (typeof window !== "undefined") {
      document.addEventListener("keyup", this.keyPress);
    }
  },
  beforeUnmount() {
    if (typeof window !== "undefined") {
      document.removeEventListener("keyup", this.keyPress);
    }
  }
});

const _hoisted_1$x = { class: "datepicker-header" };
const _hoisted_2$s = ["disabled", "aria-label"];
const _hoisted_3$h = ["disabled", "aria-label"];
const _hoisted_4$c = { class: "pagination-list" };
const _hoisted_5$9 = ["value", "disabled"];
const _hoisted_6$7 = ["value"];
const _hoisted_7$6 = { key: 1 };
function _sfc_render$C(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_input = resolveComponent("b-input");
  const _component_b_icon = resolveComponent("b-icon");
  const _component_b_select = resolveComponent("b-select");
  const _component_b_field = resolveComponent("b-field");
  const _component_b_datepicker_table = resolveComponent("b-datepicker-table");
  const _component_b_datepicker_month = resolveComponent("b-datepicker-month");
  const _component_b_dropdown_item = resolveComponent("b-dropdown-item");
  const _component_b_dropdown = resolveComponent("b-dropdown");
  return openBlock(), createElementBlock(
    "div",
    mergeProps({
      class: ["datepicker control", [_ctx.size, { "is-expanded": _ctx.expanded }]]
    }, _ctx.rootAttrs),
    [
      !_ctx.isMobile || _ctx.inline ? (openBlock(), createBlock(_component_b_dropdown, {
        key: 0,
        ref: "dropdown",
        position: _ctx.position,
        disabled: _ctx.disabledOrUndefined,
        inline: _ctx.inline,
        "mobile-modal": _ctx.mobileModal,
        "trap-focus": _ctx.trapFocus,
        "aria-role": _ctx.ariaRole,
        "append-to-body": _ctx.appendToBody,
        "append-to-body-copy-parent": "",
        onActiveChange: _ctx.onActiveChange,
        "trigger-tabindex": -1
      }, createSlots({
        default: withCtx(() => [
          createVNode(_component_b_dropdown_item, {
            disabled: _ctx.disabledOrUndefined,
            focusable: _ctx.focusable,
            custom: "",
            class: normalizeClass({ "dropdown-horizontal-timepicker": _ctx.horizontalTimePicker })
          }, {
            default: withCtx(() => [
              createBaseVNode("div", null, [
                createBaseVNode("header", _hoisted_1$x, [
                  _ctx.$slots.header !== void 0 && _ctx.$slots.header([]).length ? renderSlot(_ctx.$slots, "header", { key: 0 }) : (openBlock(), createElementBlock(
                    "div",
                    {
                      key: 1,
                      class: normalizeClass(["pagination field is-centered", _ctx.size])
                    },
                    [
                      withDirectives(createBaseVNode("a", {
                        class: "pagination-previous",
                        role: "button",
                        href: "#",
                        disabled: _ctx.disabledOrUndefined,
                        "aria-label": _ctx.ariaPreviousLabel,
                        onClick: _cache[3] || (_cache[3] = withModifiers((...args) => _ctx.prev && _ctx.prev(...args), ["prevent"])),
                        onKeydown: [
                          _cache[4] || (_cache[4] = withKeys(withModifiers((...args) => _ctx.prev && _ctx.prev(...args), ["prevent"]), ["enter"])),
                          _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => _ctx.prev && _ctx.prev(...args), ["prevent"]), ["space"]))
                        ]
                      }, [
                        createVNode(_component_b_icon, {
                          icon: _ctx.iconPrev,
                          pack: _ctx.iconPack,
                          both: "",
                          type: "is-primary is-clickable"
                        }, null, 8, ["icon", "pack"])
                      ], 40, _hoisted_2$s), [
                        [vShow, !_ctx.showPrev && !_ctx.disabled]
                      ]),
                      withDirectives(createBaseVNode("a", {
                        class: "pagination-next",
                        role: "button",
                        href: "#",
                        disabled: _ctx.disabledOrUndefined,
                        "aria-label": _ctx.ariaNextLabel,
                        onClick: _cache[6] || (_cache[6] = withModifiers((...args) => _ctx.next && _ctx.next(...args), ["prevent"])),
                        onKeydown: [
                          _cache[7] || (_cache[7] = withKeys(withModifiers((...args) => _ctx.next && _ctx.next(...args), ["prevent"]), ["enter"])),
                          _cache[8] || (_cache[8] = withKeys(withModifiers((...args) => _ctx.next && _ctx.next(...args), ["prevent"]), ["space"]))
                        ]
                      }, [
                        createVNode(_component_b_icon, {
                          icon: _ctx.iconNext,
                          pack: _ctx.iconPack,
                          both: "",
                          type: "is-primary is-clickable"
                        }, null, 8, ["icon", "pack"])
                      ], 40, _hoisted_3$h), [
                        [vShow, !_ctx.showNext && !_ctx.disabled]
                      ]),
                      createBaseVNode("div", _hoisted_4$c, [
                        createVNode(_component_b_field, null, {
                          default: withCtx(() => [
                            !_ctx.isTypeMonth ? (openBlock(), createBlock(_component_b_select, {
                              key: 0,
                              modelValue: _ctx.focusedDateData.month,
                              "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => _ctx.focusedDateData.month = $event),
                              disabled: _ctx.disabledOrUndefined,
                              size: _ctx.size
                            }, {
                              default: withCtx(() => [
                                (openBlock(true), createElementBlock(
                                  Fragment,
                                  null,
                                  renderList(_ctx.listOfMonths, (month) => {
                                    return openBlock(), createElementBlock("option", {
                                      value: month.index,
                                      key: month.name,
                                      disabled: month.disabled || void 0
                                    }, toDisplayString$1(month.name), 9, _hoisted_5$9);
                                  }),
                                  128
                                  /* KEYED_FRAGMENT */
                                ))
                              ]),
                              _: 1
                              /* STABLE */
                            }, 8, ["modelValue", "disabled", "size"])) : createCommentVNode("v-if", true),
                            createVNode(_component_b_select, {
                              modelValue: _ctx.focusedDateData.year,
                              "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => _ctx.focusedDateData.year = $event),
                              disabled: _ctx.disabledOrUndefined,
                              size: _ctx.size
                            }, {
                              default: withCtx(() => [
                                (openBlock(true), createElementBlock(
                                  Fragment,
                                  null,
                                  renderList(_ctx.listOfYears, (year) => {
                                    return openBlock(), createElementBlock("option", {
                                      value: year,
                                      key: year
                                    }, toDisplayString$1(year), 9, _hoisted_6$7);
                                  }),
                                  128
                                  /* KEYED_FRAGMENT */
                                ))
                              ]),
                              _: 1
                              /* STABLE */
                            }, 8, ["modelValue", "disabled", "size"])
                          ]),
                          _: 1
                          /* STABLE */
                        })
                      ])
                    ],
                    2
                    /* CLASS */
                  ))
                ]),
                !_ctx.isTypeMonth ? (openBlock(), createElementBlock(
                  "div",
                  {
                    key: 0,
                    class: normalizeClass(["datepicker-content", { "content-horizontal-timepicker": _ctx.horizontalTimePicker }])
                  },
                  [
                    createVNode(_component_b_datepicker_table, {
                      modelValue: _ctx.computedValue,
                      "onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => _ctx.computedValue = $event),
                      "day-names": _ctx.newDayNames,
                      "month-names": _ctx.newMonthNames,
                      "first-day-of-week": _ctx.firstDayOfWeek,
                      "rules-for-first-week": _ctx.rulesForFirstWeek,
                      "min-date": _ctx.minDate,
                      "max-date": _ctx.maxDate,
                      focused: _ctx.focusedDateData,
                      disabled: _ctx.disabledOrUndefined,
                      "unselectable-dates": _ctx.unselectableDates,
                      "unselectable-days-of-week": _ctx.unselectableDaysOfWeek,
                      "selectable-dates": _ctx.selectableDates,
                      events: _ctx.events,
                      indicators: _ctx.indicators,
                      "date-creator": _ctx.dateCreator,
                      "type-month": _ctx.isTypeMonth,
                      "nearby-month-days": _ctx.nearbyMonthDays,
                      "nearby-selectable-month-days": _ctx.nearbySelectableMonthDays,
                      "show-week-number": _ctx.showWeekNumber,
                      "week-number-clickable": _ctx.weekNumberClickable,
                      range: _ctx.range,
                      multiple: _ctx.multiple,
                      onRangeStart: _cache[12] || (_cache[12] = (date) => _ctx.$emit("range-start", date)),
                      onRangeEnd: _cache[13] || (_cache[13] = (date) => _ctx.$emit("range-end", date)),
                      onClose: _cache[14] || (_cache[14] = ($event) => _ctx.togglePicker(false)),
                      "onUpdate:focused": _cache[15] || (_cache[15] = ($event) => _ctx.focusedDateData = $event)
                    }, null, 8, ["modelValue", "day-names", "month-names", "first-day-of-week", "rules-for-first-week", "min-date", "max-date", "focused", "disabled", "unselectable-dates", "unselectable-days-of-week", "selectable-dates", "events", "indicators", "date-creator", "type-month", "nearby-month-days", "nearby-selectable-month-days", "show-week-number", "week-number-clickable", "range", "multiple"])
                  ],
                  2
                  /* CLASS */
                )) : (openBlock(), createElementBlock("div", _hoisted_7$6, [
                  createVNode(_component_b_datepicker_month, {
                    modelValue: _ctx.computedValue,
                    "onUpdate:modelValue": _cache[16] || (_cache[16] = ($event) => _ctx.computedValue = $event),
                    "month-names": _ctx.newMonthNames,
                    "min-date": _ctx.minDate,
                    "max-date": _ctx.maxDate,
                    focused: _ctx.focusedDateData,
                    disabled: _ctx.disabledOrUndefined,
                    "unselectable-dates": _ctx.unselectableDates,
                    "unselectable-days-of-week": _ctx.unselectableDaysOfWeek,
                    "selectable-dates": _ctx.selectableDates,
                    events: _ctx.events,
                    indicators: _ctx.indicators,
                    "date-creator": _ctx.dateCreator,
                    range: _ctx.range,
                    multiple: _ctx.multiple,
                    onRangeStart: _cache[17] || (_cache[17] = (date) => _ctx.$emit("range-start", date)),
                    onRangeEnd: _cache[18] || (_cache[18] = (date) => _ctx.$emit("range-end", date)),
                    onClose: _cache[19] || (_cache[19] = ($event) => _ctx.togglePicker(false)),
                    onChangeFocus: _ctx.changeFocus,
                    "onUpdate:focused": _cache[20] || (_cache[20] = ($event) => _ctx.focusedDateData = $event)
                  }, null, 8, ["modelValue", "month-names", "min-date", "max-date", "focused", "disabled", "unselectable-dates", "unselectable-days-of-week", "selectable-dates", "events", "indicators", "date-creator", "range", "multiple", "onChangeFocus"])
                ]))
              ]),
              _ctx.$slots.default !== void 0 && _ctx.$slots.default([]).length ? (openBlock(), createElementBlock(
                "footer",
                {
                  key: 0,
                  class: normalizeClass(["datepicker-footer", { "footer-horizontal-timepicker": _ctx.horizontalTimePicker }])
                },
                [
                  renderSlot(_ctx.$slots, "default")
                ],
                2
                /* CLASS */
              )) : createCommentVNode("v-if", true)
            ]),
            _: 3
            /* FORWARDED */
          }, 8, ["disabled", "focusable", "class"])
        ]),
        _: 2
        /* DYNAMIC */
      }, [
        !_ctx.inline ? {
          name: "trigger",
          fn: withCtx((props) => [
            renderSlot(_ctx.$slots, "trigger", normalizeProps(guardReactiveProps(props)), () => [
              createVNode(_component_b_input, mergeProps({
                ref: "input",
                autocomplete: "off",
                "model-value": _ctx.formattedValue,
                placeholder: _ctx.placeholder,
                size: _ctx.size,
                icon: _ctx.icon,
                "icon-right": _ctx.iconRight,
                "icon-right-clickable": _ctx.iconRightClickable,
                "icon-pack": _ctx.iconPack,
                rounded: _ctx.rounded,
                loading: _ctx.loading,
                disabled: _ctx.disabledOrUndefined,
                readonly: !_ctx.editable
              }, _ctx.fallthroughAttrs, {
                "use-html5-validation": false,
                onClick: _ctx.onInputClick,
                onIconRightClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("icon-right-click", $event)),
                onKeyup: _cache[1] || (_cache[1] = withKeys(($event) => _ctx.togglePicker(true), ["enter"])),
                onChange: _cache[2] || (_cache[2] = ($event) => _ctx.onChange($event.target.value)),
                onFocus: _ctx.handleOnFocus
              }), null, 16, ["model-value", "placeholder", "size", "icon", "icon-right", "icon-right-clickable", "icon-pack", "rounded", "loading", "disabled", "readonly", "onClick", "onFocus"])
            ])
          ]),
          key: "0"
        } : void 0
      ]), 1032, ["position", "disabled", "inline", "mobile-modal", "trap-focus", "aria-role", "append-to-body", "onActiveChange"])) : (openBlock(), createBlock(_component_b_input, mergeProps({
        key: 1,
        ref: "input",
        type: !_ctx.isTypeMonth ? "date" : "month",
        autocomplete: "off",
        "model-value": _ctx.formatNative(_ctx.computedValue),
        placeholder: _ctx.placeholder,
        size: _ctx.size,
        icon: _ctx.icon,
        "icon-pack": _ctx.iconPack,
        rounded: _ctx.rounded,
        loading: _ctx.loading,
        max: _ctx.formatNative(_ctx.maxDate),
        min: _ctx.formatNative(_ctx.minDate),
        disabled: _ctx.disabledOrUndefined,
        readonly: false
      }, _ctx.fallthroughAttrs, {
        "use-html5-validation": false,
        onChange: _ctx.onChangeNativePicker,
        onFocus: _ctx.onFocus,
        onBlur: _ctx.onBlur
      }), null, 16, ["type", "model-value", "placeholder", "size", "icon", "icon-pack", "rounded", "loading", "max", "min", "disabled", "onChange", "onFocus", "onBlur"]))
    ],
    16
    /* FULL_PROPS */
  );
}
var BDatepicker = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render$C]]);

const Plugin$v = {
  install(Vue) {
    registerComponent(Vue, BDatepicker);
  }
};

var _sfc_main$q = defineComponent({
  name: "BTimepicker",
  components: {
    BInput,
    BField: Field,
    BSelect,
    BDropdown,
    BDropdownItem
  },
  mixins: [TimepickerMixin],
  data() {
    return {
      _isTimepicker: true
    };
  },
  computed: {
    nativeStep() {
      if (this.enableSeconds) {
        return "1";
      } else {
        return void 0;
      }
    }
  }
});

const _hoisted_1$w = ["value", "disabled"];
const _hoisted_2$r = { class: "control is-colon" };
const _hoisted_3$g = ["value", "disabled"];
const _hoisted_4$b = { class: "control is-colon" };
const _hoisted_5$8 = ["value", "disabled"];
const _hoisted_6$6 = { class: "control is-colon" };
const _hoisted_7$5 = ["value"];
const _hoisted_8$5 = {
  key: 0,
  class: "timepicker-footer"
};
function _sfc_render$B(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_input = resolveComponent("b-input");
  const _component_b_select = resolveComponent("b-select");
  const _component_b_field = resolveComponent("b-field");
  const _component_b_dropdown_item = resolveComponent("b-dropdown-item");
  const _component_b_dropdown = resolveComponent("b-dropdown");
  return openBlock(), createElementBlock(
    "div",
    mergeProps({
      class: ["timepicker control", [_ctx.size, { "is-expanded": _ctx.expanded }]]
    }, _ctx.rootAttrs),
    [
      !_ctx.isMobile || _ctx.inline ? (openBlock(), createBlock(_component_b_dropdown, {
        key: 0,
        ref: "dropdown",
        position: _ctx.position,
        disabled: _ctx.disabledOrUndefined,
        inline: _ctx.inline,
        "mobile-modal": _ctx.mobileModal,
        "append-to-body": _ctx.appendToBody,
        "append-to-body-copy-parent": "",
        onActiveChange: _ctx.onActiveChange
      }, createSlots({
        default: withCtx(() => [
          createVNode(_component_b_dropdown_item, {
            disabled: _ctx.disabledOrUndefined,
            focusable: _ctx.focusable,
            custom: ""
          }, {
            default: withCtx(() => [
              createVNode(_component_b_field, {
                grouped: "",
                position: "is-centered"
              }, {
                default: withCtx(() => [
                  createVNode(_component_b_select, {
                    modelValue: _ctx.hoursSelected,
                    "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.hoursSelected = $event),
                    onChange: _cache[3] || (_cache[3] = ($event) => _ctx.onHoursChange($event.target.value)),
                    disabled: _ctx.disabledOrUndefined,
                    placeholder: "00"
                  }, {
                    default: withCtx(() => [
                      (openBlock(true), createElementBlock(
                        Fragment,
                        null,
                        renderList(_ctx.hours, (hour) => {
                          return openBlock(), createElementBlock("option", {
                            value: hour.value,
                            key: hour.value,
                            disabled: _ctx.isHourDisabled(hour.value) || void 0
                          }, toDisplayString$1(hour.label), 9, _hoisted_1$w);
                        }),
                        128
                        /* KEYED_FRAGMENT */
                      ))
                    ]),
                    _: 1
                    /* STABLE */
                  }, 8, ["modelValue", "disabled"]),
                  createBaseVNode(
                    "span",
                    _hoisted_2$r,
                    toDisplayString$1(_ctx.hourLiteral),
                    1
                    /* TEXT */
                  ),
                  createVNode(_component_b_select, {
                    modelValue: _ctx.minutesSelected,
                    "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.minutesSelected = $event),
                    onChange: _cache[5] || (_cache[5] = ($event) => _ctx.onMinutesChange($event.target.value)),
                    disabled: _ctx.disabledOrUndefined,
                    placeholder: "00"
                  }, {
                    default: withCtx(() => [
                      (openBlock(true), createElementBlock(
                        Fragment,
                        null,
                        renderList(_ctx.minutes, (minute) => {
                          return openBlock(), createElementBlock("option", {
                            value: minute.value,
                            key: minute.value,
                            disabled: _ctx.isMinuteDisabled(minute.value) || void 0
                          }, toDisplayString$1(minute.label), 9, _hoisted_3$g);
                        }),
                        128
                        /* KEYED_FRAGMENT */
                      ))
                    ]),
                    _: 1
                    /* STABLE */
                  }, 8, ["modelValue", "disabled"]),
                  _ctx.enableSeconds ? (openBlock(), createElementBlock(
                    Fragment,
                    { key: 0 },
                    [
                      createBaseVNode(
                        "span",
                        _hoisted_4$b,
                        toDisplayString$1(_ctx.minuteLiteral),
                        1
                        /* TEXT */
                      ),
                      createVNode(_component_b_select, {
                        modelValue: _ctx.secondsSelected,
                        "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => _ctx.secondsSelected = $event),
                        onChange: _cache[7] || (_cache[7] = ($event) => _ctx.onSecondsChange($event.target.value)),
                        disabled: _ctx.disabledOrUndefined,
                        placeholder: "00"
                      }, {
                        default: withCtx(() => [
                          (openBlock(true), createElementBlock(
                            Fragment,
                            null,
                            renderList(_ctx.seconds, (second) => {
                              return openBlock(), createElementBlock("option", {
                                value: second.value,
                                key: second.value,
                                disabled: _ctx.isSecondDisabled(second.value) || void 0
                              }, toDisplayString$1(second.label), 9, _hoisted_5$8);
                            }),
                            128
                            /* KEYED_FRAGMENT */
                          ))
                        ]),
                        _: 1
                        /* STABLE */
                      }, 8, ["modelValue", "disabled"]),
                      createBaseVNode(
                        "span",
                        _hoisted_6$6,
                        toDisplayString$1(_ctx.secondLiteral),
                        1
                        /* TEXT */
                      )
                    ],
                    64
                    /* STABLE_FRAGMENT */
                  )) : createCommentVNode("v-if", true),
                  !_ctx.isHourFormat24 ? (openBlock(), createBlock(_component_b_select, {
                    key: 1,
                    modelValue: _ctx.meridienSelected,
                    "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => _ctx.meridienSelected = $event),
                    onChange: _cache[9] || (_cache[9] = ($event) => _ctx.onMeridienChange($event.target.value)),
                    disabled: _ctx.disabledOrUndefined
                  }, {
                    default: withCtx(() => [
                      (openBlock(true), createElementBlock(
                        Fragment,
                        null,
                        renderList(_ctx.meridiens, (meridien) => {
                          return openBlock(), createElementBlock("option", {
                            value: meridien,
                            key: meridien
                          }, toDisplayString$1(meridien), 9, _hoisted_7$5);
                        }),
                        128
                        /* KEYED_FRAGMENT */
                      ))
                    ]),
                    _: 1
                    /* STABLE */
                  }, 8, ["modelValue", "disabled"])) : createCommentVNode("v-if", true)
                ]),
                _: 1
                /* STABLE */
              }),
              _ctx.$slots.default !== void 0 ? (openBlock(), createElementBlock("footer", _hoisted_8$5, [
                renderSlot(_ctx.$slots, "default")
              ])) : createCommentVNode("v-if", true)
            ]),
            _: 3
            /* FORWARDED */
          }, 8, ["disabled", "focusable"])
        ]),
        _: 2
        /* DYNAMIC */
      }, [
        !_ctx.inline ? {
          name: "trigger",
          fn: withCtx(() => [
            renderSlot(_ctx.$slots, "trigger", {}, () => [
              createVNode(_component_b_input, mergeProps({
                ref: "input",
                autocomplete: "off",
                "model-value": _ctx.formatValue(_ctx.computedValue),
                placeholder: _ctx.placeholder,
                size: _ctx.size,
                icon: _ctx.icon,
                "icon-pack": _ctx.iconPack,
                loading: _ctx.loading,
                disabled: _ctx.disabledOrUndefined,
                readonly: !_ctx.editable || void 0,
                rounded: _ctx.rounded
              }, _ctx.fallthroughAttrs, {
                "use-html5-validation": _ctx.useHtml5Validation,
                onKeyup: _cache[0] || (_cache[0] = withKeys(($event) => _ctx.toggle(true), ["enter"])),
                onChange: _cache[1] || (_cache[1] = ($event) => _ctx.onChange($event.target.value)),
                onFocus: _ctx.handleOnFocus
              }), null, 16, ["model-value", "placeholder", "size", "icon", "icon-pack", "loading", "disabled", "readonly", "rounded", "use-html5-validation", "onFocus"])
            ])
          ]),
          key: "0"
        } : void 0
      ]), 1032, ["position", "disabled", "inline", "mobile-modal", "append-to-body", "onActiveChange"])) : (openBlock(), createBlock(_component_b_input, mergeProps({
        key: 1,
        ref: "input",
        type: "time",
        step: _ctx.nativeStep,
        autocomplete: "off",
        "model-value": _ctx.formatHHMMSS(_ctx.computedValue),
        placeholder: _ctx.placeholder,
        size: _ctx.size,
        icon: _ctx.icon,
        "icon-pack": _ctx.iconPack,
        rounded: _ctx.rounded,
        loading: _ctx.loading,
        max: _ctx.formatHHMMSS(_ctx.maxTime),
        min: _ctx.formatHHMMSS(_ctx.minTime),
        disabled: _ctx.disabledOrUndefined,
        readonly: false
      }, _ctx.fallthroughAttrs, {
        "use-html5-validation": _ctx.useHtml5Validation,
        onChange: _cache[10] || (_cache[10] = ($event) => _ctx.onChange($event.target.value)),
        onFocus: _ctx.handleOnFocus,
        onBlur: _cache[11] || (_cache[11] = ($event) => _ctx.onBlur() && _ctx.checkHtml5Validity())
      }), null, 16, ["step", "model-value", "placeholder", "size", "icon", "icon-pack", "rounded", "loading", "max", "min", "disabled", "use-html5-validation", "onFocus"]))
    ],
    16
    /* FULL_PROPS */
  );
}
var Timepicker = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$B]]);

const AM = "AM";
const PM = "PM";
var _sfc_main$p = defineComponent({
  name: "BDatetimepicker",
  components: {
    BDatepicker,
    BInput,
    BTimepicker: Timepicker
  },
  mixins: [FormElementMixin],
  inheritAttrs: false,
  props: {
    modelValue: {
      type: [Date, null]
    },
    editable: {
      type: Boolean,
      default: false
    },
    placeholder: String,
    horizontalTimePicker: Boolean,
    disabled: Boolean,
    firstDayOfWeek: {
      type: Number,
      default: () => {
        if (typeof config.defaultFirstDayOfWeek === "number") {
          return config.defaultFirstDayOfWeek;
        } else {
          return 0;
        }
      }
    },
    rulesForFirstWeek: {
      type: Number,
      default: () => 4
    },
    icon: String,
    iconRight: String,
    iconRightClickable: Boolean,
    iconPack: String,
    inline: Boolean,
    openOnFocus: Boolean,
    position: String,
    mobileNative: {
      type: Boolean,
      default: true
    },
    minDatetime: Date,
    maxDatetime: Date,
    nearbyMonthDays: {
      type: Boolean,
      default: config.defaultDatepickerNearbyMonthDays
    },
    datetimeFormatter: {
      type: Function
    },
    datetimeParser: {
      type: Function
    },
    datetimeCreator: {
      type: Function,
      default: (date) => {
        if (typeof config.defaultDatetimeCreator === "function") {
          return config.defaultDatetimeCreator(date);
        } else {
          return date;
        }
      }
    },
    datepicker: Object,
    timepicker: Object,
    tzOffset: {
      type: Number,
      default: 0
    },
    focusable: {
      type: Boolean,
      default: true
    },
    appendToBody: Boolean
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    "active-change": (_active) => true,
    "change-month": (_month) => true,
    "change-year": (_year) => true,
    "icon-right-click": () => true,
    "update:modelValue": (_value) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      newValue: this.adjustValue(this.modelValue)
    };
  },
  computed: {
    computedValue: {
      get() {
        return this.newValue;
      },
      set(value) {
        if (value) {
          let val = new Date(value.getTime());
          if (this.newValue) {
            if ((value.getDate() !== this.newValue.getDate() || value.getMonth() !== this.newValue.getMonth() || value.getFullYear() !== this.newValue.getFullYear()) && value.getHours() === 0 && value.getMinutes() === 0 && value.getSeconds() === 0) {
              val.setHours(
                this.newValue.getHours(),
                this.newValue.getMinutes(),
                this.newValue.getSeconds(),
                0
              );
            }
          } else {
            val = this.datetimeCreator(value);
          }
          if (this.minDatetime && val < this.adjustValue(this.minDatetime)) {
            val = this.adjustValue(this.minDatetime);
          } else if (this.maxDatetime && val > this.adjustValue(this.maxDatetime)) {
            val = this.adjustValue(this.maxDatetime);
          }
          this.newValue = new Date(val.getTime());
        } else {
          this.newValue = this.adjustValue(value);
        }
        const adjustedValue = this.adjustValue(this.newValue, true);
        this.$emit("update:modelValue", adjustedValue);
      }
    },
    localeOptions() {
      return new Intl.DateTimeFormat(this.locale, {
        year: "numeric",
        month: "numeric",
        day: "numeric",
        hour: "numeric",
        minute: "numeric",
        second: this.enableSeconds() ? "numeric" : void 0
      }).resolvedOptions();
    },
    dtf() {
      return new Intl.DateTimeFormat(this.locale, {
        year: this.localeOptions.year || "numeric",
        month: this.localeOptions.month || "numeric",
        day: this.localeOptions.day || "numeric",
        hour: this.localeOptions.hour || "numeric",
        minute: this.localeOptions.minute || "numeric",
        second: this.enableSeconds() ? this.localeOptions.second || "numeric" : void 0,
        hourCycle: !this.isHourFormat24() ? "h12" : "h23"
      });
    },
    isMobileNative() {
      return this.mobileNative && this.tzOffset === 0;
    },
    isMobile() {
      return this.isMobileNative && isMobile.any();
    },
    minDate() {
      if (!this.minDatetime) {
        return this.datepicker ? this.adjustValue(this.datepicker.minDate) : null;
      }
      const adjMinDatetime = this.adjustValue(this.minDatetime);
      return new Date(
        adjMinDatetime.getFullYear(),
        adjMinDatetime.getMonth(),
        adjMinDatetime.getDate(),
        0,
        0,
        0,
        0
      );
    },
    maxDate() {
      if (!this.maxDatetime) {
        return this.datepicker ? this.adjustValue(this.datepicker.maxDate) : null;
      }
      const adjMaxDatetime = this.adjustValue(this.maxDatetime);
      return new Date(
        adjMaxDatetime.getFullYear(),
        adjMaxDatetime.getMonth(),
        adjMaxDatetime.getDate(),
        0,
        0,
        0,
        0
      );
    },
    minTime() {
      if (!this.minDatetime || (this.newValue === null || typeof this.newValue === "undefined")) {
        return this.timepicker ? this.adjustValue(this.timepicker.minTime) : null;
      }
      const adjMinDatetime = this.adjustValue(this.minDatetime);
      if (adjMinDatetime.getFullYear() === this.newValue.getFullYear() && adjMinDatetime.getMonth() === this.newValue.getMonth() && adjMinDatetime.getDate() === this.newValue.getDate()) {
        return adjMinDatetime;
      }
      return void 0;
    },
    maxTime() {
      if (!this.maxDatetime || (this.newValue === null || typeof this.newValue === "undefined")) {
        return this.timepicker ? this.adjustValue(this.timepicker.maxTime) : null;
      }
      const adjMaxDatetime = this.adjustValue(this.maxDatetime);
      if (adjMaxDatetime.getFullYear() === this.newValue.getFullYear() && adjMaxDatetime.getMonth() === this.newValue.getMonth() && adjMaxDatetime.getDate() === this.newValue.getDate()) {
        return adjMaxDatetime;
      }
      return void 0;
    },
    datepickerSize() {
      return this.datepicker && this.datepicker.size ? this.datepicker.size : this.size;
    },
    timepickerSize() {
      return this.timepicker && this.timepicker.size ? this.timepicker.size : this.size;
    },
    timepickerDisabled() {
      return this.timepicker && this.timepicker.disabled ? this.timepicker.disabled : this.disabled;
    },
    disabledOrUndefined() {
      return this.disabled || void 0;
    }
  },
  watch: {
    modelValue() {
      this.newValue = this.adjustValue(this.modelValue);
    },
    tzOffset() {
      this.newValue = this.adjustValue(this.modelValue);
    }
  },
  methods: {
    enableSeconds() {
      if (this.$refs.timepicker) {
        return this.$refs.timepicker.enableSeconds;
      }
      return false;
    },
    isHourFormat24() {
      if (this.$refs.timepicker) {
        return this.$refs.timepicker.isHourFormat24;
      }
      return !this.localeOptions.hour12;
    },
    adjustValue(value, reverse = false) {
      if (!value) return value;
      if (reverse) {
        return new Date(value.getTime() - this.tzOffset * 6e4);
      } else {
        return new Date(value.getTime() + this.tzOffset * 6e4);
      }
    },
    defaultDatetimeParser(date) {
      if (typeof this.datetimeParser === "function") {
        return this.datetimeParser(date);
      } else if (typeof config.defaultDatetimeParser === "function") {
        return config.defaultDatetimeParser(date);
      } else {
        if (this.dtf.formatToParts && typeof this.dtf.formatToParts === "function") {
          const dayPeriods = [AM, PM, AM.toLowerCase(), PM.toLowerCase()];
          if (this.$refs.timepicker) {
            dayPeriods.push(this.$refs.timepicker.amString);
            dayPeriods.push(this.$refs.timepicker.pmString);
          }
          const parts = this.dtf.formatToParts(/* @__PURE__ */ new Date());
          const formatRegex = parts.map((part, idx) => {
            if (part.type === "literal") {
              if (idx + 1 < parts.length && parts[idx + 1].type === "hour") {
                return "[^\\d]+";
              }
              return part.value.replace(/ /g, "\\s?");
            } else if (part.type === "dayPeriod") {
              return `((?!=<${part.type}>)(${dayPeriods.join("|")})?)`;
            }
            return `((?!=<${part.type}>)\\d+)`;
          }).join("");
          const datetimeGroups = matchWithGroups(formatRegex, date);
          if (datetimeGroups.year && datetimeGroups.year.length === 4 && datetimeGroups.month && +datetimeGroups.month <= 12 && datetimeGroups.day && +datetimeGroups.day <= 31 && datetimeGroups.hour && +datetimeGroups.hour >= 0 && +datetimeGroups.hour < 24 && datetimeGroups.minute && +datetimeGroups.minute >= 0 && +datetimeGroups.minute <= 59) {
            const d = new Date(
              +datetimeGroups.year,
              +datetimeGroups.month - 1,
              +datetimeGroups.day,
              +datetimeGroups.hour,
              +datetimeGroups.minute,
              +(datetimeGroups.second || 0)
            );
            return d;
          }
        }
        return new Date(Date.parse(date));
      }
    },
    defaultDatetimeFormatter(date) {
      date = date;
      if (typeof this.datetimeFormatter === "function") {
        return this.datetimeFormatter(date);
      } else if (typeof config.defaultDatetimeFormatter === "function") {
        return config.defaultDatetimeFormatter(date);
      } else {
        return this.dtf.format(date);
      }
    },
    /*
    * Parse date from string
    */
    onChangeNativePicker(event) {
      const date = event.target.value;
      const s = date ? date.split(/\D/) : [];
      if (s.length >= 5) {
        const year = parseInt(s[0], 10);
        const month = parseInt(s[1], 10) - 1;
        const day = parseInt(s[2], 10);
        const hours = parseInt(s[3], 10);
        const minutes = parseInt(s[4], 10);
        this.computedValue = new Date(year, month, day, hours, minutes);
      } else {
        this.computedValue = null;
      }
    },
    /*
     * Emit 'active-change' on datepicker active state change
     */
    onActiveChange(value) {
      this.$emit("active-change", value);
    },
    formatNative(value) {
      const date = new Date(value);
      if (value && !isNaN(date.valueOf())) {
        const year = date.getFullYear();
        const month = date.getMonth() + 1;
        const day = date.getDate();
        const hours = date.getHours();
        const minutes = date.getMinutes();
        const seconds = date.getSeconds();
        return year + "-" + ((month < 10 ? "0" : "") + month) + "-" + ((day < 10 ? "0" : "") + day) + "T" + ((hours < 10 ? "0" : "") + hours) + ":" + ((minutes < 10 ? "0" : "") + minutes) + ":" + ((seconds < 10 ? "0" : "") + seconds);
      }
      return "";
    },
    toggle() {
      this.$refs.datepicker.toggle();
    }
  },
  mounted() {
    if (!this.isMobile || this.inline) {
      if (this.newValue) {
        this.$refs.datepicker.$forceUpdate();
      }
    }
  }
});

const _hoisted_1$v = { class: "level is-mobile" };
const _hoisted_2$q = {
  key: 0,
  class: "level-item has-text-centered"
};
const _hoisted_3$f = { class: "level-item has-text-centered" };
const _hoisted_4$a = {
  key: 1,
  class: "level-item has-text-centered"
};
function _sfc_render$A(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_timepicker = resolveComponent("b-timepicker");
  const _component_b_datepicker = resolveComponent("b-datepicker");
  const _component_b_input = resolveComponent("b-input");
  return !_ctx.isMobile || _ctx.inline ? (openBlock(), createBlock(_component_b_datepicker, mergeProps({
    key: 0,
    ref: "datepicker",
    modelValue: _ctx.computedValue,
    "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.computedValue = $event)
  }, _ctx.datepicker, {
    rounded: _ctx.rounded,
    "open-on-focus": _ctx.openOnFocus,
    position: _ctx.position,
    loading: _ctx.loading,
    inline: _ctx.inline,
    editable: _ctx.editable,
    expanded: _ctx.expanded,
    "close-on-click": false,
    "first-day-of-week": _ctx.firstDayOfWeek,
    "rules-for-first-week": _ctx.rulesForFirstWeek,
    "date-formatter": _ctx.defaultDatetimeFormatter,
    "date-parser": _ctx.defaultDatetimeParser,
    "min-date": _ctx.minDate,
    "max-date": _ctx.maxDate,
    "nearby-month-days": _ctx.nearbyMonthDays,
    icon: _ctx.icon,
    "icon-right": _ctx.iconRight,
    "icon-right-clickable": _ctx.iconRightClickable,
    "icon-pack": _ctx.iconPack,
    size: _ctx.datepickerSize,
    placeholder: _ctx.placeholder,
    "horizontal-time-picker": _ctx.horizontalTimePicker,
    range: false,
    disabled: _ctx.disabledOrUndefined,
    "mobile-native": _ctx.isMobileNative,
    locale: _ctx.locale,
    focusable: _ctx.focusable,
    "append-to-body": _ctx.appendToBody,
    onFocus: _ctx.onFocus,
    onBlur: _ctx.onBlur,
    onActiveChange: _ctx.onActiveChange,
    onIconRightClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("icon-right-click")),
    onChangeMonth: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("change-month", $event)),
    onChangeYear: _cache[4] || (_cache[4] = ($event) => _ctx.$emit("change-year", $event))
  }), {
    default: withCtx(() => [
      createBaseVNode("nav", _hoisted_1$v, [
        _ctx.$slots.left !== void 0 ? (openBlock(), createElementBlock("div", _hoisted_2$q, [
          renderSlot(_ctx.$slots, "left")
        ])) : createCommentVNode("v-if", true),
        createBaseVNode("div", _hoisted_3$f, [
          createVNode(_component_b_timepicker, mergeProps({ ref: "timepicker" }, _ctx.timepicker, {
            modelValue: _ctx.computedValue,
            "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.computedValue = $event),
            inline: "",
            editable: _ctx.editable,
            "min-time": _ctx.minTime,
            "max-time": _ctx.maxTime,
            size: _ctx.timepickerSize,
            disabled: _ctx.timepickerDisabled || void 0,
            focusable: _ctx.focusable,
            "mobile-native": _ctx.isMobileNative,
            locale: _ctx.locale
          }), null, 16, ["modelValue", "editable", "min-time", "max-time", "size", "disabled", "focusable", "mobile-native", "locale"])
        ]),
        _ctx.$slots.right !== void 0 ? (openBlock(), createElementBlock("div", _hoisted_4$a, [
          renderSlot(_ctx.$slots, "right")
        ])) : createCommentVNode("v-if", true)
      ])
    ]),
    _: 3
    /* FORWARDED */
  }, 16, ["modelValue", "rounded", "open-on-focus", "position", "loading", "inline", "editable", "expanded", "first-day-of-week", "rules-for-first-week", "date-formatter", "date-parser", "min-date", "max-date", "nearby-month-days", "icon", "icon-right", "icon-right-clickable", "icon-pack", "size", "placeholder", "horizontal-time-picker", "disabled", "mobile-native", "locale", "focusable", "append-to-body", "onFocus", "onBlur", "onActiveChange"])) : (openBlock(), createBlock(_component_b_input, mergeProps({
    key: 1,
    ref: "input",
    type: "datetime-local",
    autocomplete: "off",
    "model-value": _ctx.formatNative(_ctx.computedValue),
    placeholder: _ctx.placeholder,
    size: _ctx.size,
    icon: _ctx.icon,
    "icon-pack": _ctx.iconPack,
    rounded: _ctx.rounded,
    loading: _ctx.loading,
    max: _ctx.formatNative(_ctx.maxDate),
    min: _ctx.formatNative(_ctx.minDate),
    disabled: _ctx.disabledOrUndefined,
    readonly: false
  }, _ctx.$attrs, {
    "use-html5-validation": _ctx.useHtml5Validation,
    onChange: _ctx.onChangeNativePicker,
    onFocus: _ctx.onFocus,
    onBlur: _ctx.onBlur
  }), null, 16, ["model-value", "placeholder", "size", "icon", "icon-pack", "rounded", "loading", "max", "min", "disabled", "use-html5-validation", "onChange", "onFocus", "onBlur"]));
}
var Datetimepicker = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$A]]);

const Plugin$u = {
  install(Vue) {
    registerComponent(Vue, Datetimepicker);
  }
};

const MODAL_SCROLLS = ["clip", "keep"];
const MODAL_ARIA_ROLES = ["dialog", "alertdialog"];
const Modal$1 = defineComponent({
  name: "BModal",
  directives: {
    trapFocus: directive$1
  },
  props: {
    modelValue: Boolean,
    component: [Object, Function, String],
    content: {
      type: [String, Object, Array]
    },
    programmatic: Boolean,
    props: Object,
    events: {
      type: Object,
      default() {
        return {};
      }
    },
    width: {
      type: [String, Number],
      default: 960
    },
    hasModalCard: Boolean,
    animation: {
      type: String,
      default: "zoom-out"
    },
    canCancel: {
      type: [Array, Boolean],
      default: () => {
        return config.defaultModalCanCancel;
      }
    },
    cancelCallback: {
      type: Function,
      default: () => {
      }
    },
    scroll: {
      type: String,
      default: () => {
        return config.defaultModalScroll ? config.defaultModalScroll : "clip";
      },
      validator: (value) => {
        return MODAL_SCROLLS.indexOf(value) >= 0;
      }
    },
    fullScreen: Boolean,
    trapFocus: {
      type: Boolean,
      default: () => {
        return config.defaultTrapFocus;
      }
    },
    autoFocus: {
      type: Boolean,
      default: () => {
        return config.defaultAutoFocus;
      }
    },
    customClass: String,
    customContentClass: [String, Array, Object],
    ariaRole: {
      type: String,
      validator: (value) => {
        return MODAL_ARIA_ROLES.indexOf(value) >= 0;
      }
    },
    ariaModal: Boolean,
    ariaLabel: {
      type: String,
      validator: (value) => {
        return Boolean(value);
      }
    },
    closeButtonAriaLabel: {
      type: String,
      default: "close"
    },
    destroyOnHide: {
      type: Boolean,
      default: true
    },
    renderOnMounted: {
      type: Boolean,
      default: false
    }
  },
  emits: {
    "after-enter": () => true,
    "after-leave": () => true,
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    cancel: (method) => true,
    close: () => true,
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    "update:modelValue": (active) => true
  },
  data() {
    return {
      isActive: this.modelValue || false,
      savedScrollTop: null,
      newWidth: typeof this.width === "number" ? this.width + "px" : this.width,
      animating: !this.modelValue,
      destroyed: !(this.modelValue || this.renderOnMounted)
    };
  },
  computed: {
    cancelOptions() {
      return typeof this.canCancel === "boolean" ? this.canCancel ? config.defaultModalCanCancel : [] : this.canCancel;
    },
    showX() {
      return this.cancelOptions.indexOf("x") >= 0;
    },
    customStyle() {
      if (!this.fullScreen) {
        return { maxWidth: this.newWidth };
      }
      return null;
    }
  },
  watch: {
    modelValue(value) {
      this.isActive = value;
    },
    isActive(value) {
      if (value) this.destroyed = false;
      this.handleScroll();
      this.$nextTick(() => {
        if (value && this.$el && this.$el.focus && this.autoFocus) {
          this.$el.focus();
        }
      });
    }
  },
  methods: {
    handleScroll() {
      if (typeof window === "undefined") return;
      if (this.scroll === "clip") {
        if (this.isActive) {
          document.documentElement.classList.add("is-clipped");
        } else {
          document.documentElement.classList.remove("is-clipped");
        }
        return;
      }
      this.savedScrollTop = !this.savedScrollTop ? document.documentElement.scrollTop : this.savedScrollTop;
      if (this.isActive) {
        document.body.classList.add("is-noscroll");
      } else {
        document.body.classList.remove("is-noscroll");
      }
      if (this.isActive) {
        document.body.style.top = `-${this.savedScrollTop}px`;
        return;
      }
      document.documentElement.scrollTop = this.savedScrollTop;
      document.body.style.top = "";
      this.savedScrollTop = null;
    },
    /*
    * Close the Modal if canCancel and call the cancelCallback prop (function).
    */
    cancel(method) {
      if (this.cancelOptions.indexOf(method) < 0) return;
      this.$emit("cancel", method);
      this.cancelCallback.apply(null, [method]);
      this.close();
    },
    /*
    * Call the cancelCallback prop (function).
    * Emit events, and destroy modal if it's programmatic.
    */
    close() {
      this.$emit("close");
      this.$emit("update:modelValue", false);
      if (this.programmatic) {
        this.isActive = false;
        setTimeout(() => {
          removeElement(this.$el);
        }, 150);
      }
    },
    /*
    * Keypress event that is bound to the document.
    */
    keyPress({ key }) {
      if (this.isActive && (key === "Escape" || key === "Esc")) this.cancel("escape");
    },
    /*
    * Transition after-enter hook
    */
    afterEnter() {
      this.animating = false;
      this.$emit("after-enter");
    },
    /*
    * Transition before-leave hook
    */
    beforeLeave() {
      this.animating = true;
    },
    /*
    * Transition after-leave hook
    */
    afterLeave() {
      if (this.destroyOnHide) {
        this.destroyed = true;
      }
      this.$emit("after-leave");
    }
  },
  created() {
    if (typeof window !== "undefined") {
      document.addEventListener("keyup", this.keyPress);
    }
  },
  mounted() {
    if (this.programmatic) {
      document.body.appendChild(this.$el);
      this.isActive = true;
    } else if (this.isActive) this.handleScroll();
  },
  beforeUnmount() {
    if (typeof window !== "undefined") {
      document.removeEventListener("keyup", this.keyPress);
      document.documentElement.classList.remove("is-clipped");
      const savedScrollTop = !this.savedScrollTop ? document.documentElement.scrollTop : this.savedScrollTop;
      document.body.classList.remove("is-noscroll");
      document.documentElement.scrollTop = savedScrollTop;
      document.body.style.top = "";
    }
  }
});

const _hoisted_1$u = ["role", "aria-label", "aria-modal"];
const _hoisted_2$p = ["innerHTML"];
const _hoisted_3$e = ["aria-label"];
function _sfc_render$z(_ctx, _cache, $props, $setup, $data, $options) {
  const _directive_trap_focus = resolveDirective("trap-focus");
  return openBlock(), createBlock(Transition, {
    name: _ctx.animation,
    onAfterEnter: _ctx.afterEnter,
    onBeforeLeave: _ctx.beforeLeave,
    onAfterLeave: _ctx.afterLeave
  }, {
    default: withCtx(() => [
      !_ctx.destroyed ? withDirectives((openBlock(), createElementBlock("div", {
        key: 0,
        class: normalizeClass(["modal is-active", [{ "is-full-screen": _ctx.fullScreen }, _ctx.customClass]]),
        tabindex: "-1",
        role: _ctx.ariaRole,
        "aria-label": _ctx.ariaLabel,
        "aria-modal": _ctx.ariaModal || void 0
      }, [
        createBaseVNode("div", {
          class: "modal-background",
          onClick: _cache[0] || (_cache[0] = ($event) => _ctx.cancel("outside"))
        }),
        createBaseVNode(
          "div",
          {
            class: normalizeClass(["animation-content", [{ "modal-content": !_ctx.hasModalCard }, _ctx.customContentClass]]),
            style: normalizeStyle(_ctx.customStyle)
          },
          [
            _ctx.component ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.component), mergeProps({ key: 0 }, _ctx.props, toHandlers(_ctx.events), {
              "can-cancel": _ctx.canCancel,
              onClose: _ctx.close
            }), null, 16, ["can-cancel", "onClose"])) : _ctx.content ? (openBlock(), createElementBlock(
              Fragment,
              { key: 1 },
              [
                createCommentVNode(" eslint-disable-next-line vue/no-v-html "),
                createBaseVNode("div", { innerHTML: _ctx.content }, null, 8, _hoisted_2$p)
              ],
              64
              /* STABLE_FRAGMENT */
            )) : renderSlot(_ctx.$slots, "default", {
              key: 2,
              canCancel: _ctx.canCancel,
              close: _ctx.close
            })
          ],
          6
          /* CLASS, STYLE */
        ),
        _ctx.showX ? withDirectives((openBlock(), createElementBlock("button", {
          key: 0,
          class: "modal-close is-large",
          "aria-label": _ctx.closeButtonAriaLabel,
          onClick: _cache[1] || (_cache[1] = ($event) => _ctx.cancel("x"))
        }, null, 8, _hoisted_3$e)), [
          [vShow, !_ctx.animating]
        ]) : createCommentVNode("v-if", true)
      ], 10, _hoisted_1$u)), [
        [vShow, _ctx.isActive],
        [_directive_trap_focus, _ctx.trapFocus]
      ]) : createCommentVNode("v-if", true)
    ]),
    _: 3
    /* FORWARDED */
  }, 8, ["name", "onAfterEnter", "onBeforeLeave", "onAfterLeave"]);
}
var Modal = /* @__PURE__ */ _export_sfc(Modal$1, [["render", _sfc_render$z]]);

var __defProp$7 = Object.defineProperty;
var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$7 = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp$7.call(b, prop))
      __defNormalProp$7(a, prop, b[prop]);
  if (__getOwnPropSymbols$7)
    for (var prop of __getOwnPropSymbols$7(b)) {
      if (__propIsEnum$7.call(b, prop))
        __defNormalProp$7(a, prop, b[prop]);
    }
  return a;
};
const Dialog$1 = defineComponent({
  name: "BDialog",
  components: {
    BIcon,
    BButton
  },
  directives: {
    trapFocus: directive$1
  },
  extends: Modal,
  props: {
    customClass: {
      type: String,
      default: ""
    },
    customContentClass: {
      type: String,
      default: ""
    },
    title: String,
    message: [String, Array],
    icon: String,
    iconPack: String,
    hasIcon: Boolean,
    type: {
      type: String,
      default: "is-primary"
    },
    size: String,
    confirmText: {
      type: String,
      default: () => {
        return config.defaultDialogConfirmText ? config.defaultDialogConfirmText : "OK";
      }
    },
    cancelText: {
      type: String,
      default: () => {
        return config.defaultDialogCancelText ? config.defaultDialogCancelText : "Cancel";
      }
    },
    hasInput: Boolean,
    // Used internally to know if it's prompt
    inputAttrs: {
      type: Object,
      default: () => ({})
    },
    confirmCallback: {
      // I was not able to figure out how to specify the "self" type here
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      type: Function,
      default: () => {
      }
    },
    closeOnConfirm: {
      type: Boolean,
      default: true
    },
    container: {
      type: String,
      default: () => {
        return config.defaultContainerElement;
      }
    },
    focusOn: {
      type: String,
      default: "confirm"
    }
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any */
    // second parameter is the dialog instance but typed any
    // because I was not able to figure out how to specify the "self" type here
    confirm: (value, dialog) => true
    /* eslint-enable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any */
  },
  data() {
    const prompt = this.hasInput ? this.inputAttrs.value || "" : "";
    return {
      prompt,
      isActive: false,
      validationMessage: "",
      isCompositing: false,
      isLoading: false
    };
  },
  computed: {
    // `safeInputAttrs` is a shallow copy of `inputAttrs` except for `value`
    // `value` should not be specified to `v-bind` of the input element
    // because it inhibits `v-model` of the input on Vue 3
    safeInputAttrs() {
      const attrs = __spreadValues$7({}, this.inputAttrs);
      delete attrs.value;
      if (typeof attrs.required === "undefined") {
        attrs.required = true;
      }
      return attrs;
    },
    dialogClass() {
      return [this.size, {
        "has-custom-container": this.container !== null
      }];
    },
    /*
    * Icon name (MDI) based on the type.
    */
    iconByType() {
      switch (this.type) {
        case "is-info":
          return "information";
        case "is-success":
          return "check-circle";
        case "is-warning":
          return "alert";
        case "is-danger":
          return "alert-circle";
        default:
          return null;
      }
    },
    showCancel() {
      return this.cancelOptions.indexOf("button") >= 0;
    }
  },
  methods: {
    /*
    * If it's a prompt Dialog, validate the input.
    * Call the confirmCallback prop (function) and close the Dialog.
    */
    confirm() {
      const input = this.$refs.input;
      if (input != null) {
        if (this.isCompositing) return;
        if (!input.checkValidity()) {
          this.validationMessage = input.validationMessage;
          this.$nextTick(() => input.select());
          return;
        }
      }
      this.$emit("confirm", this.prompt, this);
      this.confirmCallback(this.prompt, this);
      if (this.closeOnConfirm) this.close();
    },
    /*
    * Close the Dialog.
    */
    close() {
      this.isActive = false;
      this.isLoading = false;
      setTimeout(() => {
        removeElement(this.$el);
      }, 150);
    },
    /*
    * Start the Loading.
    */
    startLoading() {
      this.isLoading = true;
    },
    /*
    * Cancel the Loading.
    */
    cancelLoading() {
      this.isLoading = false;
    }
  },
  beforeMount() {
    if (typeof window !== "undefined") {
      this.$nextTick(() => {
        const container = document.querySelector(this.container) || document.body;
        container.appendChild(this.$el);
      });
    }
  },
  mounted() {
    this.isActive = true;
    this.$nextTick(() => {
      if (this.hasInput) {
        this.$refs.input.focus();
      } else if (this.focusOn === "cancel" && this.showCancel) {
        this.$refs.cancelButton.$el.focus();
      } else {
        this.$refs.confirmButton.$el.focus();
      }
    });
  }
});

const _hoisted_1$t = ["role", "aria-modal"];
const _hoisted_2$o = {
  key: 0,
  class: "modal-card-head"
};
const _hoisted_3$d = { class: "modal-card-title" };
const _hoisted_4$9 = { class: "media" };
const _hoisted_5$7 = {
  key: 0,
  class: "media-left"
};
const _hoisted_6$5 = { class: "media-content" };
const _hoisted_7$4 = ["innerHTML"];
const _hoisted_8$4 = {
  key: 0,
  class: "field"
};
const _hoisted_9$3 = { class: "control" };
const _hoisted_10$2 = { class: "help is-danger" };
const _hoisted_11$2 = { class: "modal-card-foot" };
const _hoisted_12$2 = { class: "buttons" };
function _sfc_render$y(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  const _component_b_button = resolveComponent("b-button");
  const _directive_trap_focus = resolveDirective("trap-focus");
  return openBlock(), createBlock(Transition, { name: _ctx.animation }, {
    default: withCtx(() => [
      _ctx.isActive ? withDirectives((openBlock(), createElementBlock("div", {
        key: 0,
        class: normalizeClass(["dialog modal is-active", [_ctx.dialogClass, _ctx.customClass]]),
        role: _ctx.ariaRole,
        "aria-modal": _ctx.ariaModal
      }, [
        createBaseVNode("div", {
          class: "modal-background",
          onClick: _cache[0] || (_cache[0] = ($event) => _ctx.cancel("outside"))
        }),
        createBaseVNode(
          "div",
          {
            class: normalizeClass(["modal-card animation-content", _ctx.customContentClass])
          },
          [
            _ctx.title ? (openBlock(), createElementBlock("header", _hoisted_2$o, [
              createBaseVNode(
                "p",
                _hoisted_3$d,
                toDisplayString$1(_ctx.title),
                1
                /* TEXT */
              )
            ])) : createCommentVNode("v-if", true),
            createBaseVNode(
              "section",
              {
                class: normalizeClass(["modal-card-body", { "is-titleless": !_ctx.title, "is-flex": _ctx.hasIcon }])
              },
              [
                createBaseVNode("div", _hoisted_4$9, [
                  _ctx.hasIcon && (_ctx.icon || _ctx.iconByType) ? (openBlock(), createElementBlock("div", _hoisted_5$7, [
                    createVNode(_component_b_icon, {
                      icon: _ctx.icon ? _ctx.icon : _ctx.iconByType,
                      pack: _ctx.iconPack,
                      type: _ctx.type,
                      both: !_ctx.icon,
                      size: "is-large"
                    }, null, 8, ["icon", "pack", "type", "both"])
                  ])) : createCommentVNode("v-if", true),
                  createBaseVNode("div", _hoisted_6$5, [
                    createBaseVNode("p", null, [
                      _ctx.$slots.default ? renderSlot(_ctx.$slots, "default", { key: 0 }) : (openBlock(), createElementBlock(
                        Fragment,
                        { key: 1 },
                        [
                          createCommentVNode(" eslint-disable-next-line vue/no-v-html "),
                          createBaseVNode("div", { innerHTML: _ctx.message }, null, 8, _hoisted_7$4)
                        ],
                        64
                        /* STABLE_FRAGMENT */
                      ))
                    ]),
                    _ctx.hasInput ? (openBlock(), createElementBlock("div", _hoisted_8$4, [
                      createBaseVNode("div", _hoisted_9$3, [
                        withDirectives(createBaseVNode(
                          "input",
                          mergeProps({
                            "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.prompt = $event),
                            class: ["input", { "is-danger": _ctx.validationMessage }],
                            ref: "input"
                          }, _ctx.safeInputAttrs, {
                            onCompositionstart: _cache[2] || (_cache[2] = ($event) => _ctx.isCompositing = true),
                            onCompositionend: _cache[3] || (_cache[3] = ($event) => _ctx.isCompositing = false),
                            onKeydown: _cache[4] || (_cache[4] = withKeys((...args) => _ctx.confirm && _ctx.confirm(...args), ["enter"]))
                          }),
                          null,
                          16
                          /* FULL_PROPS */
                        ), [
                          [vModelDynamic, _ctx.prompt]
                        ])
                      ]),
                      createBaseVNode(
                        "p",
                        _hoisted_10$2,
                        toDisplayString$1(_ctx.validationMessage),
                        1
                        /* TEXT */
                      )
                    ])) : createCommentVNode("v-if", true)
                  ])
                ])
              ],
              2
              /* CLASS */
            ),
            createBaseVNode("footer", _hoisted_11$2, [
              createBaseVNode("div", _hoisted_12$2, [
                _ctx.showCancel ? (openBlock(), createBlock(_component_b_button, {
                  key: 0,
                  ref: "cancelButton",
                  disabled: _ctx.isLoading,
                  onClick: _cache[5] || (_cache[5] = ($event) => _ctx.cancel("button"))
                }, {
                  default: withCtx(() => [
                    createTextVNode(
                      toDisplayString$1(_ctx.cancelText),
                      1
                      /* TEXT */
                    )
                  ]),
                  _: 1
                  /* STABLE */
                }, 8, ["disabled"])) : createCommentVNode("v-if", true),
                createVNode(_component_b_button, {
                  type: _ctx.type,
                  ref: "confirmButton",
                  loading: _ctx.isLoading,
                  onClick: _ctx.confirm
                }, {
                  default: withCtx(() => [
                    createTextVNode(
                      toDisplayString$1(_ctx.confirmText),
                      1
                      /* TEXT */
                    )
                  ]),
                  _: 1
                  /* STABLE */
                }, 8, ["type", "loading", "onClick"])
              ])
            ])
          ],
          2
          /* CLASS */
        )
      ], 10, _hoisted_1$t)), [
        [_directive_trap_focus, _ctx.trapFocus]
      ]) : createCommentVNode("v-if", true)
    ]),
    _: 3
    /* FORWARDED */
  }, 8, ["name"]);
}
var Dialog = /* @__PURE__ */ _export_sfc(Dialog$1, [["render", _sfc_render$y]]);

var __defProp$6 = Object.defineProperty;
var __defProps$6 = Object.defineProperties;
var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$6 = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp$6.call(b, prop))
      __defNormalProp$6(a, prop, b[prop]);
  if (__getOwnPropSymbols$6)
    for (var prop of __getOwnPropSymbols$6(b)) {
      if (__propIsEnum$6.call(b, prop))
        __defNormalProp$6(a, prop, b[prop]);
    }
  return a;
};
var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
var __publicField$5 = (obj, key, value) => __defNormalProp$6(obj, key + "" , value);
function open(propsData, app) {
  let slot;
  if (Array.isArray(propsData.message)) {
    slot = propsData.message;
    delete propsData.message;
  }
  function createDialog(onConfirm, onCancel) {
    const container = document.createElement("div");
    const vueInstance = createApp({
      data() {
        return {
          dialogVNode: null
        };
      },
      methods: {
        close() {
          const dialog = getComponentFromVNode(this.dialogVNode);
          if (dialog) {
            dialog.close();
          }
        },
        startLoading() {
          const dialog = getComponentFromVNode(this.dialogVNode);
          if (dialog) {
            dialog.startLoading();
          }
        },
        cancelLoading() {
          const dialog = getComponentFromVNode(this.dialogVNode);
          if (dialog) {
            dialog.cancelLoading();
          }
        }
      },
      render() {
        this.dialogVNode = h(
          Dialog,
          __spreadProps$6(__spreadValues$6({}, propsData), {
            // intentionally overrides propsData.onConfirm
            // to prevent propsData.onConfirm from receiving a "confirm" event
            onConfirm: (value) => {
              if (onConfirm != null) {
                onConfirm(value);
              }
            },
            // intentionally override propsData.onCancel
            // to prevent propsData.onCancel from receiving a "cancel" event
            onCancel: (method) => {
              if (onCancel != null) {
                onCancel(method);
              }
              vueInstance.unmount();
            },
            confirmCallback: (value, dialog) => {
              if (propsData.onConfirm != null) {
                propsData.onConfirm(value, dialog);
              }
            },
            cancelCallback: (method) => {
              if (propsData.onCancel != null) {
                propsData.onCancel(method);
              }
            }
          }),
          slot ? { default: () => slot } : void 0
        );
        return this.dialogVNode;
      }
    });
    if (app) {
      copyAppContext(app, vueInstance);
    }
    return vueInstance.mount(container);
  }
  if (!config.defaultProgrammaticPromise) {
    return createDialog();
  } else {
    return new Promise((resolve) => {
      const dialog = createDialog(
        (event) => resolve({ result: event || true, dialog }),
        () => resolve({ result: false, dialog })
      );
    });
  }
}
class DialogProgrammatic {
  constructor(app) {
    __publicField$5(this, "app");
    this.app = app;
  }
  alert(params) {
    let newParams;
    if (typeof params === "string") {
      newParams = {
        message: params
      };
    } else {
      newParams = params;
    }
    newParams = __spreadValues$6({
      canCancel: false
    }, newParams);
    return open(newParams, this.app);
  }
  confirm(params) {
    return open(params, this.app);
  }
  prompt(params) {
    return open(__spreadValues$6({ hasInput: true }, params), this.app);
  }
}
const dialogInjectionKey = Symbol("Buefy Dialog");
function useDialog() {
  return inject(dialogInjectionKey);
}
const Plugin$t = {
  install(Vue) {
    registerComponent(Vue, Dialog);
    registerComponentProgrammatic(Vue, "dialog", new DialogProgrammatic(Vue), dialogInjectionKey);
  }
};

const Plugin$s = {
  install(Vue) {
    registerComponent(Vue, Field);
  }
};

const Plugin$r = {
  install(Vue) {
    registerComponent(Vue, BIcon);
  }
};

const Plugin$q = {
  install(Vue) {
    registerComponent(Vue, Image$1);
  }
};

const isSSR = typeof window === "undefined";
const HTMLElement$1 = isSSR ? Object : window.HTMLElement;
const File = isSSR ? Object : window.File;

const Loading = defineComponent({
  name: "BLoading",
  props: {
    modelValue: Boolean,
    programmatic: Boolean,
    container: [Object, Function, HTMLElement$1],
    isFullPage: {
      type: Boolean,
      default: true
    },
    animation: {
      type: String,
      default: "fade"
    },
    canCancel: {
      type: Boolean,
      default: false
    },
    onCancel: {
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      type: Function,
      default: () => {
      }
    }
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    close: () => true,
    "update:is-full-page": (_flag) => true,
    "update:modelValue": (_flag) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      isActive: this.modelValue || false,
      displayInFullPage: this.isFullPage
    };
  },
  watch: {
    modelValue(value) {
      this.isActive = value;
    },
    isFullPage(value) {
      this.displayInFullPage = value;
    }
  },
  methods: {
    /*
    * Close the Modal if canCancel.
    */
    cancel() {
      if (!this.canCancel || !this.isActive) return;
      this.close();
    },
    /*
    * Emit events, and destroy modal if it's programmatic.
    */
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    close(...args) {
      this.onCancel.apply(null, args);
      this.$emit("close");
      this.$emit("update:modelValue", false);
      if (this.programmatic) {
        this.isActive = false;
        setTimeout(() => {
          removeElement(this.$el);
        }, 150);
      }
    },
    /*
    * Keypress event that is bound to the document.
    */
    keyPress({ key }) {
      if (key === "Escape" || key === "Esc") this.cancel();
    }
  },
  created() {
    if (typeof window !== "undefined") {
      document.addEventListener("keyup", this.keyPress);
    }
  },
  mounted() {
    if (this.programmatic) {
      if (!this.container) {
        document.body.appendChild(this.$el);
      } else {
        this.displayInFullPage = false;
        this.$emit("update:is-full-page", false);
        this.container.appendChild(this.$el);
      }
      this.isActive = true;
    }
  },
  beforeUnmount() {
    if (typeof window !== "undefined") {
      document.removeEventListener("keyup", this.keyPress);
    }
  }
});

const _hoisted_1$s = /* @__PURE__ */ createBaseVNode(
  "div",
  { class: "loading-icon" },
  null,
  -1
  /* HOISTED */
);
function _sfc_render$x(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createBlock(Transition, { name: _ctx.animation }, {
    default: withCtx(() => [
      _ctx.isActive ? withDirectives((openBlock(), createElementBlock(
        "div",
        {
          key: 0,
          class: normalizeClass(["loading-overlay is-active", { "is-full-page": _ctx.displayInFullPage }])
        },
        [
          createBaseVNode("div", {
            class: "loading-background",
            onClick: _cache[0] || (_cache[0] = (...args) => _ctx.cancel && _ctx.cancel(...args))
          }),
          renderSlot(_ctx.$slots, "default", {}, () => [
            _hoisted_1$s
          ])
        ],
        2
        /* CLASS */
      )), [
        [vShow, _ctx.isActive]
      ]) : createCommentVNode("v-if", true)
    ]),
    _: 3
    /* FORWARDED */
  }, 8, ["name"]);
}
var BLoading = /* @__PURE__ */ _export_sfc(Loading, [["render", _sfc_render$x]]);

var __defProp$5 = Object.defineProperty;
var __defProps$5 = Object.defineProperties;
var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$5 = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp$5.call(b, prop))
      __defNormalProp$5(a, prop, b[prop]);
  if (__getOwnPropSymbols$5)
    for (var prop of __getOwnPropSymbols$5(b)) {
      if (__propIsEnum$5.call(b, prop))
        __defNormalProp$5(a, prop, b[prop]);
    }
  return a;
};
var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
var __publicField$4 = (obj, key, value) => __defNormalProp$5(obj, key + "" , value);
class LoadingProgrammatic {
  constructor(app) {
    __publicField$4(this, "app");
    this.app = app;
  }
  open(params) {
    const propsData = params;
    const container = document.createElement("div");
    const vueInstance = createApp({
      data() {
        return {
          loadingVNode: null
        };
      },
      methods: {
        close() {
          const loading = getComponentFromVNode(this.loadingVNode);
          if (loading) {
            loading.close();
          }
        }
      },
      render() {
        this.loadingVNode = h(
          BLoading,
          __spreadProps$5(__spreadValues$5({}, propsData), {
            programmatic: true,
            onClose(...args) {
              if (propsData.onClose) {
                propsData.onClose(...args);
              }
              setTimeout(() => {
                vueInstance.unmount();
              }, 150);
            }
          })
        );
        return this.loadingVNode;
      }
    });
    if (this.app) {
      copyAppContext(this.app, vueInstance);
    }
    return vueInstance.mount(container);
  }
}
const loadingInjectionKey = Symbol("Buefy Loading");
function useLoading() {
  return inject(loadingInjectionKey);
}
const Plugin$p = {
  install(Vue) {
    registerComponent(Vue, BLoading);
    registerComponentProgrammatic(Vue, "loading", new LoadingProgrammatic(Vue), loadingInjectionKey);
  }
};

var MenuItemContainerMixin = defineComponent({
  provide() {
    return {
      BMenuItemContainer: this
    };
  },
  data() {
    return {
      menuItems: []
    };
  },
  methods: {
    appendMenuItem(item) {
      this.menuItems.push(item);
    },
    removeMenuItem(item) {
      const index = this.menuItems.indexOf(item);
      if (index !== -1) {
        this.menuItems.splice(index, 1);
      }
    }
  }
});

var _sfc_main$o = defineComponent({
  name: "BMenu",
  mixins: [MenuItemContainerMixin],
  props: {
    accordion: {
      type: Boolean,
      default: true
    },
    activable: {
      type: Boolean,
      default: true
    }
  },
  data() {
    return {
      _isMenu: true
      // Used by MenuItem
    };
  }
});

const _hoisted_1$r = { class: "menu" };
function _sfc_render$w(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("section", null, [
    createBaseVNode("div", _hoisted_1$r, [
      renderSlot(_ctx.$slots, "default")
    ])
  ]);
}
var Menu = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$w]]);

var _sfc_main$n = defineComponent({
  name: "BMenuList",
  components: {
    BIcon
  },
  props: {
    label: String,
    icon: String,
    iconPack: String,
    ariaRole: {
      type: String,
      default: ""
    },
    size: {
      type: String,
      default: "is-small"
    }
  }
});

const _hoisted_1$q = {
  key: 0,
  class: "menu-label"
};
const _hoisted_2$n = ["role"];
function _sfc_render$v(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  return openBlock(), createElementBlock(
    Fragment,
    null,
    [
      _ctx.label || _ctx.$slots.label ? (openBlock(), createElementBlock("p", _hoisted_1$q, [
        _ctx.label ? (openBlock(), createElementBlock(
          Fragment,
          { key: 0 },
          [
            _ctx.icon ? (openBlock(), createElementBlock(
              Fragment,
              { key: 0 },
              [
                createVNode(_component_b_icon, {
                  icon: _ctx.icon,
                  pack: _ctx.iconPack,
                  size: _ctx.size
                }, null, 8, ["icon", "pack", "size"]),
                createBaseVNode(
                  "span",
                  null,
                  toDisplayString$1(_ctx.label),
                  1
                  /* TEXT */
                )
              ],
              64
              /* STABLE_FRAGMENT */
            )) : (openBlock(), createElementBlock(
              Fragment,
              { key: 1 },
              [
                createTextVNode(
                  toDisplayString$1(_ctx.label),
                  1
                  /* TEXT */
                )
              ],
              64
              /* STABLE_FRAGMENT */
            ))
          ],
          64
          /* STABLE_FRAGMENT */
        )) : renderSlot(_ctx.$slots, "label", { key: 1 })
      ])) : createCommentVNode("v-if", true),
      createBaseVNode("ul", {
        class: "menu-list",
        role: _ctx.ariaRole === "menu" ? _ctx.ariaRole : void 0
      }, [
        renderSlot(_ctx.$slots, "default")
      ], 8, _hoisted_2$n)
    ],
    64
    /* STABLE_FRAGMENT */
  );
}
var MenuList = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["render", _sfc_render$v]]);

var _sfc_main$m = defineComponent({
  name: "BMenuItem",
  components: {
    BIcon
  },
  mixins: [CompatFallthroughMixin, MenuItemContainerMixin],
  inject: {
    parent: {
      from: "BMenuItemContainer",
      default: null
    }
  },
  // deprecated, to replace with default 'value' in the next breaking change
  props: {
    label: String,
    modelValue: Boolean,
    expanded: Boolean,
    disabled: Boolean,
    iconPack: String,
    icon: String,
    animation: {
      type: String,
      default: "slide"
    },
    tag: {
      type: [String, Object],
      default: "a",
      validator: (value) => {
        return typeof value === "object" || config.defaultLinkTags.indexOf(value) >= 0;
      }
    },
    ariaRole: {
      type: String,
      default: ""
    },
    size: {
      type: String,
      default: "is-small"
    }
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    "update:modelValue": (_isActive) => true,
    "update:expanded": (_isExpanded) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      newActive: this.modelValue,
      newExpanded: this.expanded
    };
  },
  computed: {
    ariaRoleMenu() {
      return this.ariaRole === "menuitem" ? this.ariaRole : void 0;
    }
  },
  watch: {
    modelValue(value) {
      this.newActive = value;
    },
    expanded(value) {
      this.newExpanded = value;
    }
  },
  methods: {
    onClick() {
      if (this.disabled) return;
      const menu = this.getMenu();
      this.reset(this.parent, menu);
      this.newExpanded = this.$props.expanded || !this.newExpanded;
      this.$emit("update:expanded", this.newExpanded);
      if (menu && menu.activable) {
        this.newActive = true;
        this.$emit("update:modelValue", this.newActive);
      }
    },
    reset(parent, menu) {
      if (parent == null) {
        return;
      }
      parent.menuItems.forEach((item) => {
        if (item !== this) {
          this.reset(item, menu);
          if (!parent.$data._isMenu || parent.$data._isMenu && parent.accordion) {
            item.newExpanded = false;
            item.$emit("update:expanded", item.newExpanded);
          }
          if (menu && menu.activable) {
            item.newActive = false;
            item.$emit("update:modelValue", item.newActive);
          }
        }
      });
    },
    getMenu() {
      let parent = this.parent;
      while (parent && !parent.$data._isMenu) {
        parent = parent.parent;
      }
      return parent;
    }
  },
  mounted() {
    if (this.parent) {
      this.parent.appendMenuItem(this);
    }
  },
  beforeUnmount() {
    if (this.parent) {
      this.parent.removeMenuItem(this);
    }
  }
});

const _hoisted_1$p = ["role"];
const _hoisted_2$m = { key: 1 };
function _sfc_render$u(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  return openBlock(), createElementBlock("li", mergeProps({ role: _ctx.ariaRoleMenu }, _ctx.rootAttrs), [
    (openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), mergeProps(_ctx.fallthroughAttrs, {
      class: {
        "is-active": _ctx.newActive,
        "is-expanded": _ctx.newExpanded,
        "is-disabled": _ctx.disabled,
        "icon-text": _ctx.icon
      },
      onClick: _cache[0] || (_cache[0] = ($event) => _ctx.onClick())
    }), {
      default: withCtx(() => [
        _ctx.icon ? (openBlock(), createBlock(_component_b_icon, {
          key: 0,
          icon: _ctx.icon,
          pack: _ctx.iconPack,
          size: _ctx.size
        }, null, 8, ["icon", "pack", "size"])) : createCommentVNode("v-if", true),
        _ctx.label ? (openBlock(), createElementBlock(
          "span",
          _hoisted_2$m,
          toDisplayString$1(_ctx.label),
          1
          /* TEXT */
        )) : renderSlot(_ctx.$slots, "label", {
          key: 2,
          expanded: _ctx.newExpanded,
          active: _ctx.newActive
        })
      ]),
      _: 3
      /* FORWARDED */
    }, 16, ["class"])),
    createCommentVNode(" sub menu items "),
    _ctx.$slots.default ? (openBlock(), createBlock(Transition, {
      key: 0,
      name: _ctx.animation,
      persisted: ""
    }, {
      default: withCtx(() => [
        withDirectives(createBaseVNode(
          "ul",
          null,
          [
            renderSlot(_ctx.$slots, "default")
          ],
          512
          /* NEED_PATCH */
        ), [
          [vShow, _ctx.newExpanded]
        ])
      ]),
      _: 3
      /* FORWARDED */
    }, 8, ["name"])) : createCommentVNode("v-if", true)
  ], 16, _hoisted_1$p);
}
var MenuItem = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$u]]);

const Plugin$o = {
  install(Vue) {
    registerComponent(Vue, Menu);
    registerComponent(Vue, MenuList, "BMenuList");
    registerComponent(Vue, MenuItem);
  }
};

var MessageMixin = defineComponent({
  props: {
    modelValue: {
      type: Boolean,
      default: true
    },
    title: String,
    closable: {
      type: Boolean,
      default: true
    },
    message: String,
    type: String,
    hasIcon: Boolean,
    size: String,
    icon: String,
    iconPack: String,
    iconSize: String,
    autoClose: {
      type: Boolean,
      default: false
    },
    duration: {
      type: Number,
      default: 2e3
    },
    progressBar: {
      type: Boolean,
      default: false
    }
  },
  emits: {
    click: () => true,
    close: () => true,
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    "update:modelValue": (value) => true
  },
  data() {
    return {
      isActive: this.modelValue,
      remainingTime: this.duration / 1e3,
      // in seconds
      newIconSize: this.iconSize || this.size || "is-large",
      timer: void 0
    };
  },
  computed: {
    /*
     * Icon name (MDI) based on type.
     */
    computedIcon() {
      if (this.icon) {
        return this.icon;
      }
      switch (this.type) {
        case "is-info":
          return "information";
        case "is-success":
          return "check-circle";
        case "is-warning":
          return "alert";
        case "is-danger":
          return "alert-circle";
        default:
          return null;
      }
    }
  },
  watch: {
    modelValue(value) {
      this.isActive = value;
    },
    isActive(value) {
      if (value) {
        this.setAutoClose();
        this.setDurationProgress();
      } else {
        if (this.timer) {
          clearTimeout(this.timer);
        }
      }
    }
  },
  methods: {
    /*
     * Close the Message and emit events.
     */
    close() {
      this.isActive = false;
      this.resetDurationProgress();
      this.$emit("close");
      this.$emit("update:modelValue", false);
    },
    click() {
      this.$emit("click");
    },
    /*
     * Set timer to auto close message
     */
    setAutoClose() {
      if (this.autoClose) {
        this.timer = setTimeout(() => {
          if (this.isActive) {
            this.close();
          }
        }, this.duration);
      }
    },
    setDurationProgress() {
      if (this.progressBar || this.autoClose) {
        this.$buefy.globalNoticeInterval = setInterval(() => {
          if (this.remainingTime !== 0) {
            this.remainingTime -= 1;
          } else {
            this.resetDurationProgress();
          }
        }, 1e3);
      }
    },
    resetDurationProgress() {
      setTimeout(() => {
        this.remainingTime = this.duration / 1e3;
        clearInterval(this.$buefy.globalNoticeInterval);
      }, 100);
    }
  },
  mounted() {
    this.setAutoClose();
  }
});

const PROGRESS_INJECTION_KEY = Symbol("bprogress");
const Progress$1 = defineComponent({
  name: "BProgress",
  provide() {
    return {
      [PROGRESS_INJECTION_KEY]: this
    };
  },
  props: {
    type: {
      type: [String, Object],
      default: "is-darkgrey"
    },
    size: {
      type: String
    },
    rounded: {
      type: Boolean,
      default: true
    },
    value: {
      type: Number,
      default: void 0
    },
    max: {
      type: Number,
      default: 100
    },
    showValue: {
      type: Boolean,
      default: false
    },
    format: {
      type: String,
      default: "raw",
      validator: (value) => {
        return [
          "raw",
          "percent"
        ].indexOf(value) >= 0;
      }
    },
    precision: {
      type: Number,
      default: 2
    },
    keepTrailingZeroes: {
      type: Boolean,
      default: false
    },
    locale: {
      type: [String, Array],
      default: () => {
        return config.defaultLocale;
      },
      validator: (value) => {
        if (Array.isArray(value)) {
          return value.every((item) => typeof item === "string");
        }
        return typeof value === "string";
      }
    }
  },
  computed: {
    isIndeterminate() {
      return this.value === void 0 || this.value === null;
    },
    newType() {
      return [
        this.size,
        this.type,
        {
          "is-more-than-half": this.value && this.value > this.max / 2
        }
      ];
    },
    newValue() {
      return this.calculateValue(this.value);
    },
    isNative() {
      return this.$slots.bar === void 0;
    },
    wrapperClasses() {
      return {
        "is-not-native": !this.isNative,
        [this.size === void 0 ? "" : this.size]: typeof this.size === "string" && !this.isNative
      };
    }
  },
  watch: {
    /*
     * When value is changed back to undefined, value of native progress get reset to 0.
     * Need to add and remove the value attribute to have the indeterminate or not.
     */
    isIndeterminate(indeterminate) {
      this.$nextTick(() => {
        if (this.$refs.progress) {
          if (indeterminate) {
            this.$refs.progress.removeAttribute("value");
          } else {
            this.$refs.progress.setAttribute("value", this.value.toString());
          }
        }
      });
    }
  },
  methods: {
    calculateValue(value) {
      if (value === void 0 || value === null || isNaN(value)) {
        return void 0;
      }
      const minimumFractionDigits = this.keepTrailingZeroes ? this.precision : 0;
      const maximumFractionDigits = this.precision;
      if (this.format === "percent") {
        return new Intl.NumberFormat(
          this.locale,
          {
            style: "percent",
            minimumFractionDigits,
            maximumFractionDigits
          }
        ).format(value / this.max);
      }
      return new Intl.NumberFormat(
        this.locale,
        {
          minimumFractionDigits,
          maximumFractionDigits
        }
      ).format(value);
    }
  }
});

const _hoisted_1$o = ["max", "value"];
const _hoisted_2$l = {
  key: 2,
  class: "progress-value"
};
function _sfc_render$t(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["progress-wrapper", [_ctx.wrapperClasses, { "is-squared": !_ctx.rounded }]])
    },
    [
      _ctx.isNative ? (openBlock(), createElementBlock("progress", {
        key: 0,
        ref: "progress",
        class: normalizeClass(["progress", [_ctx.newType, { "is-squared": !_ctx.rounded }]]),
        max: _ctx.max,
        value: _ctx.value
      }, toDisplayString$1(_ctx.newValue), 11, _hoisted_1$o)) : renderSlot(_ctx.$slots, "bar", { key: 1 }),
      _ctx.isNative && _ctx.showValue ? (openBlock(), createElementBlock("p", _hoisted_2$l, [
        renderSlot(_ctx.$slots, "default", {}, () => [
          createTextVNode(
            toDisplayString$1(_ctx.newValue),
            1
            /* TEXT */
          )
        ])
      ])) : createCommentVNode("v-if", true)
    ],
    2
    /* CLASS */
  );
}
var Progress = /* @__PURE__ */ _export_sfc(Progress$1, [["render", _sfc_render$t]]);

const Message$1 = defineComponent({
  name: "BMessage",
  components: {
    BIcon,
    BProgress: Progress
  },
  mixins: [MessageMixin],
  props: {
    ariaCloseLabel: String
  }
});

const _hoisted_1$n = {
  key: 0,
  class: "message-header"
};
const _hoisted_2$k = { key: 0 };
const _hoisted_3$c = { key: 1 };
const _hoisted_4$8 = ["aria-label"];
const _hoisted_5$6 = {
  key: 1,
  class: "message-body"
};
const _hoisted_6$4 = { class: "media" };
const _hoisted_7$3 = {
  key: 0,
  class: "media-left"
};
const _hoisted_8$3 = { class: "media-content" };
function _sfc_render$s(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  const _component_b_progress = resolveComponent("b-progress");
  return openBlock(), createBlock(Transition, {
    name: "fade",
    persisted: ""
  }, {
    default: withCtx(() => [
      withDirectives(createBaseVNode(
        "article",
        {
          class: normalizeClass(["message", [_ctx.type, _ctx.size]])
        },
        [
          _ctx.$slots.header || _ctx.title ? (openBlock(), createElementBlock("header", _hoisted_1$n, [
            _ctx.$slots.header ? (openBlock(), createElementBlock("div", _hoisted_2$k, [
              renderSlot(_ctx.$slots, "header")
            ])) : _ctx.title ? (openBlock(), createElementBlock(
              "p",
              _hoisted_3$c,
              toDisplayString$1(_ctx.title),
              1
              /* TEXT */
            )) : createCommentVNode("v-if", true),
            _ctx.closable ? (openBlock(), createElementBlock("button", {
              key: 2,
              type: "button",
              class: "delete",
              onClick: _cache[0] || (_cache[0] = (...args) => _ctx.close && _ctx.close(...args)),
              "aria-label": _ctx.ariaCloseLabel
            }, null, 8, _hoisted_4$8)) : createCommentVNode("v-if", true)
          ])) : createCommentVNode("v-if", true),
          _ctx.$slots.default ? (openBlock(), createElementBlock("section", _hoisted_5$6, [
            createBaseVNode("div", _hoisted_6$4, [
              _ctx.computedIcon && _ctx.hasIcon ? (openBlock(), createElementBlock("div", _hoisted_7$3, [
                createVNode(_component_b_icon, {
                  icon: _ctx.computedIcon,
                  pack: _ctx.iconPack,
                  class: normalizeClass(_ctx.type),
                  both: "",
                  size: _ctx.newIconSize
                }, null, 8, ["icon", "pack", "class", "size"])
              ])) : createCommentVNode("v-if", true),
              createBaseVNode("div", _hoisted_8$3, [
                renderSlot(_ctx.$slots, "default")
              ])
            ])
          ])) : createCommentVNode("v-if", true),
          _ctx.progressBar ? (openBlock(), createBlock(_component_b_progress, {
            key: 2,
            class: "auto-close-progress",
            value: _ctx.remainingTime - 1,
            max: _ctx.duration / 1e3 - 1,
            type: _ctx.type,
            rounded: false
          }, null, 8, ["value", "max", "type"])) : createCommentVNode("v-if", true)
        ],
        2
        /* CLASS */
      ), [
        [vShow, _ctx.isActive]
      ])
    ]),
    _: 3
    /* FORWARDED */
  });
}
var Message = /* @__PURE__ */ _export_sfc(Message$1, [["render", _sfc_render$s]]);

const Plugin$n = {
  install(Vue) {
    registerComponent(Vue, Message);
  }
};

var __defProp$4 = Object.defineProperty;
var __defProps$4 = Object.defineProperties;
var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$4 = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp$4.call(b, prop))
      __defNormalProp$4(a, prop, b[prop]);
  if (__getOwnPropSymbols$4)
    for (var prop of __getOwnPropSymbols$4(b)) {
      if (__propIsEnum$4.call(b, prop))
        __defNormalProp$4(a, prop, b[prop]);
    }
  return a;
};
var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
var __publicField$3 = (obj, key, value) => __defNormalProp$4(obj, key + "" , value);
class ModalProgrammatic {
  constructor(app) {
    __publicField$3(this, "app");
    this.app = app;
  }
  open(params) {
    if (typeof params === "string") {
      params = {
        content: params
      };
    }
    let slot;
    if (Array.isArray(params.content)) {
      slot = params.content;
      delete params.content;
    }
    const propsData = params;
    const container = document.createElement("div");
    const vueInstance = createApp({
      data() {
        return {
          modalVNode: null
        };
      },
      methods: {
        close() {
          const modal = getComponentFromVNode(this.modalVNode);
          if (modal) {
            modal.close();
          }
        }
      },
      render() {
        this.modalVNode = h(
          Modal,
          __spreadProps$4(__spreadValues$4({}, propsData), {
            programmatic: true,
            onClose: () => {
              vueInstance.unmount();
            },
            // intentionally overrides propsData.onCancel
            // to prevent propsData.onCancel from receiving a "cancel" event
            onCancel: () => {
            },
            cancelCallback: (method) => {
              if (propsData.onCancel != null) {
                propsData.onCancel(method);
              }
            }
          }),
          slot ? { default: () => slot } : void 0
        );
        return this.modalVNode;
      }
    });
    if (this.app) {
      copyAppContext(this.app, vueInstance);
    }
    return vueInstance.mount(container);
  }
}
const modalInjectionKey = Symbol("Buefy Modal");
function useModal() {
  return inject(modalInjectionKey);
}
const Plugin$m = {
  install(Vue) {
    registerComponent(Vue, Modal);
    registerComponentProgrammatic(Vue, "modal", new ModalProgrammatic(Vue), modalInjectionKey);
  }
};

const Notification$1 = defineComponent({
  name: "BNotification",
  components: {
    BIcon,
    // directly registers Progress
    // in case Notification is programmatically opened
    BProgress: Progress
  },
  mixins: [MessageMixin],
  props: {
    position: String,
    ariaCloseLabel: String,
    animation: {
      type: String,
      default: "fade"
    }
  }
});

const _hoisted_1$m = ["aria-label"];
const _hoisted_2$j = {
  key: 1,
  class: "media"
};
const _hoisted_3$b = {
  key: 0,
  class: "media-left"
};
const _hoisted_4$7 = { class: "media-content" };
const _hoisted_5$5 = ["innerHTML"];
function _sfc_render$r(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  const _component_b_progress = resolveComponent("b-progress");
  return openBlock(), createBlock(Transition, {
    name: _ctx.animation,
    persisted: ""
  }, {
    default: withCtx(() => [
      withDirectives(createBaseVNode(
        "article",
        {
          class: normalizeClass(["notification", [_ctx.type, _ctx.position]]),
          onClick: _cache[1] || (_cache[1] = (...args) => _ctx.click && _ctx.click(...args))
        },
        [
          _ctx.closable ? (openBlock(), createElementBlock("button", {
            key: 0,
            class: "delete",
            type: "button",
            onClick: _cache[0] || (_cache[0] = (...args) => _ctx.close && _ctx.close(...args)),
            "aria-label": _ctx.ariaCloseLabel
          }, null, 8, _hoisted_1$m)) : createCommentVNode("v-if", true),
          _ctx.$slots.default || _ctx.message ? (openBlock(), createElementBlock("div", _hoisted_2$j, [
            _ctx.computedIcon && _ctx.hasIcon ? (openBlock(), createElementBlock("div", _hoisted_3$b, [
              createVNode(_component_b_icon, {
                icon: _ctx.computedIcon,
                pack: _ctx.iconPack,
                size: _ctx.newIconSize,
                both: "",
                "aria-hidden": ""
              }, null, 8, ["icon", "pack", "size"])
            ])) : createCommentVNode("v-if", true),
            createBaseVNode("div", _hoisted_4$7, [
              _ctx.$slots.default ? renderSlot(_ctx.$slots, "default", { key: 0 }) : (openBlock(), createElementBlock(
                Fragment,
                { key: 1 },
                [
                  createCommentVNode(" eslint-disable-next-line vue/no-v-html "),
                  createBaseVNode("p", {
                    class: "text",
                    innerHTML: _ctx.message
                  }, null, 8, _hoisted_5$5)
                ],
                64
                /* STABLE_FRAGMENT */
              ))
            ])
          ])) : createCommentVNode("v-if", true),
          _ctx.progressBar ? (openBlock(), createBlock(_component_b_progress, {
            key: 2,
            class: "auto-close-progress",
            value: _ctx.remainingTime - 1,
            max: _ctx.duration / 1e3 - 1,
            type: _ctx.type,
            rounded: false
          }, null, 8, ["value", "max", "type"])) : createCommentVNode("v-if", true)
        ],
        2
        /* CLASS */
      ), [
        [vShow, _ctx.isActive]
      ])
    ]),
    _: 3
    /* FORWARDED */
  }, 8, ["name"]);
}
var Notification = /* @__PURE__ */ _export_sfc(Notification$1, [["render", _sfc_render$r]]);

var NoticeMixin = defineComponent({
  props: {
    type: {
      type: String,
      default: "is-dark"
    },
    message: [String, Array],
    duration: Number,
    queue: {
      type: Boolean,
      default: void 0
    },
    indefinite: {
      type: Boolean,
      default: false
    },
    pauseOnHover: {
      type: Boolean,
      default: false
    },
    position: {
      type: String,
      default: "is-top",
      validator(value) {
        return NOTICE_POSITIONS.indexOf(value) > -1;
      }
    },
    container: String
  },
  emits: {
    click: () => true,
    close: () => true
  },
  data() {
    return {
      isActive: false,
      isPaused: false,
      parentTop: null,
      parentBottom: null,
      newContainer: this.container || config.defaultContainerElement,
      timer: void 0,
      // host container should override `newDuration`
      newDuration: this.duration || 0
    };
  },
  computed: {
    correctParent() {
      switch (this.position) {
        case "is-top-right":
        case "is-top":
        case "is-top-left":
          return this.parentTop;
        case "is-bottom-right":
        case "is-bottom":
        case "is-bottom-left":
          return this.parentBottom;
        default: {
          const exhaustiveCheck = this.position;
          throw new RangeError(`invalid position: ${exhaustiveCheck}`);
        }
      }
    },
    transition() {
      switch (this.position) {
        case "is-top-right":
        case "is-top":
        case "is-top-left":
          return {
            enter: "fadeInDown",
            leave: "fadeOut"
          };
        case "is-bottom-right":
        case "is-bottom":
        case "is-bottom-left":
          return {
            enter: "fadeInUp",
            leave: "fadeOut"
          };
        default: {
          const exhaustiveCheck = this.position;
          throw new RangeError(`invalid position: ${exhaustiveCheck}`);
        }
      }
    }
  },
  methods: {
    pause() {
      if (this.pauseOnHover && !this.indefinite) {
        this.isPaused = true;
        clearInterval(this.$buefy.globalNoticeInterval);
      }
    },
    removePause() {
      if (this.pauseOnHover && !this.indefinite) {
        this.isPaused = false;
        this.close();
      }
    },
    shouldQueue() {
      const queue = this.queue !== void 0 ? this.queue : config.defaultNoticeQueue;
      if (!queue) return false;
      return this.parentTop.childElementCount > 0 || this.parentBottom.childElementCount > 0;
    },
    click() {
      this.$emit("click");
    },
    close() {
      if (!this.isPaused) {
        clearTimeout(this.timer);
        this.isActive = false;
        this.$emit("close");
        setTimeout(() => {
          removeElement(this.$el);
        }, 150);
      }
    },
    timeoutCallback() {
      return this.close();
    },
    showNotice() {
      if (this.shouldQueue()) this.correctParent.innerHTML = "";
      this.correctParent.insertAdjacentElement("afterbegin", this.$el);
      this.isActive = true;
      if (!this.indefinite) {
        this.timer = setTimeout(() => this.timeoutCallback(), this.newDuration);
      }
    },
    setupContainer() {
      this.parentTop = document.querySelector((this.newContainer ? this.newContainer : "body") + ">.notices.is-top");
      this.parentBottom = document.querySelector((this.newContainer ? this.newContainer : "body") + ">.notices.is-bottom");
      if (this.parentTop && this.parentBottom) return;
      if (!this.parentTop) {
        this.parentTop = document.createElement("div");
        this.parentTop.className = "notices is-top";
      }
      if (!this.parentBottom) {
        this.parentBottom = document.createElement("div");
        this.parentBottom.className = "notices is-bottom";
      }
      const container = document.querySelector(this.newContainer) || document.body;
      container.appendChild(this.parentTop);
      container.appendChild(this.parentBottom);
      if (this.newContainer) {
        this.parentTop.classList.add("has-custom-container");
        this.parentBottom.classList.add("has-custom-container");
      }
    }
  },
  beforeMount() {
    this.setupContainer();
  },
  mounted() {
    this.showNotice();
  }
});

const NotificationNotice$1 = defineComponent({
  name: "BNotificationNotice",
  components: { BNotification: Notification },
  mixins: [NoticeMixin],
  data() {
    return {
      newDuration: this.duration || config.defaultNotificationDuration
    };
  },
  emits: {
    close: () => true
  },
  methods: {
    close() {
      if (!this.isPaused) {
        clearTimeout(this.timer);
        this.$refs.notification.isActive = false;
        this.$emit("close");
        setTimeout(() => {
          removeElement(this.$el);
        }, 150);
      }
    }
  }
});

function _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_notification = resolveComponent("b-notification");
  return _ctx.$slots.default != null ? (openBlock(), createBlock(_component_b_notification, mergeProps({
    key: 0,
    ref: "notification",
    position: _ctx.position,
    "model-value": _ctx.isActive,
    type: _ctx.type,
    message: _ctx.message,
    duration: _ctx.duration
  }, _ctx.$attrs, {
    onClick: _ctx.click,
    onClose: _ctx.close,
    onMouseenter: _ctx.pause,
    onMouseleave: _ctx.removePause
  }), {
    default: withCtx(() => [
      renderSlot(_ctx.$slots, "default")
    ]),
    _: 3
    /* FORWARDED */
  }, 16, ["position", "model-value", "type", "message", "duration", "onClick", "onClose", "onMouseenter", "onMouseleave"])) : (openBlock(), createBlock(_component_b_notification, mergeProps({
    key: 1,
    ref: "notification",
    position: _ctx.position,
    "model-value": _ctx.isActive,
    type: _ctx.type,
    message: _ctx.message,
    duration: _ctx.duration
  }, _ctx.$attrs, {
    onClick: _ctx.click,
    onClose: _ctx.close,
    onMouseenter: _ctx.pause,
    onMouseleave: _ctx.removePause
  }), null, 16, ["position", "model-value", "type", "message", "duration", "onClick", "onClose", "onMouseenter", "onMouseleave"]));
}
var NotificationNotice = /* @__PURE__ */ _export_sfc(NotificationNotice$1, [["render", _sfc_render$q]]);

var __defProp$3 = Object.defineProperty;
var __defProps$3 = Object.defineProperties;
var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$3 = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp$3.call(b, prop))
      __defNormalProp$3(a, prop, b[prop]);
  if (__getOwnPropSymbols$3)
    for (var prop of __getOwnPropSymbols$3(b)) {
      if (__propIsEnum$3.call(b, prop))
        __defNormalProp$3(a, prop, b[prop]);
    }
  return a;
};
var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
var __objRest$2 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols$3)
    for (var prop of __getOwnPropSymbols$3(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var __publicField$2 = (obj, key, value) => __defNormalProp$3(obj, key + "" , value);
class NotificationProgrammatic {
  constructor(app) {
    __publicField$2(this, "app");
    this.app = app;
  }
  open(params) {
    if (typeof params === "string") {
      params = {
        message: params
      };
    }
    let slot;
    let _a = params, { message } = _a, restParams = __objRest$2(_a, ["message"]);
    if (typeof message !== "string") {
      slot = message;
      message = void 0;
    }
    const propsData = __spreadValues$3({
      position: config.defaultNotificationPosition || "is-top-right",
      message
    }, restParams);
    const container = document.createElement("div");
    const vueInstance = createApp({
      data() {
        return {
          noticeVNode: null
        };
      },
      methods: {
        close() {
          const notice = getComponentFromVNode(this.noticeVNode);
          if (notice) {
            notice.close();
          }
        }
      },
      render() {
        this.noticeVNode = h(
          NotificationNotice,
          __spreadProps$3(__spreadValues$3({}, propsData), {
            onClose: () => {
              if (propsData.onClose != null) {
                propsData.onClose();
              }
              setTimeout(() => {
                vueInstance.unmount();
              }, 150);
            }
          }),
          slot != null ? { default: () => slot } : void 0
        );
        return this.noticeVNode;
      }
    });
    if (this.app) {
      copyAppContext(this.app, vueInstance);
    } else {
      vueInstance.config.globalProperties.$buefy = {};
    }
    return vueInstance.mount(container);
  }
}
const notificationInjectionKey = Symbol("Buefy Notification");
function useNotification() {
  return inject(notificationInjectionKey);
}
const Plugin$l = {
  install(Vue) {
    registerComponent(Vue, Notification);
    registerComponentProgrammatic(Vue, "notification", new NotificationProgrammatic(Vue), notificationInjectionKey);
  }
};

var _sfc_main$l = defineComponent({
  name: "NavbarBurger",
  props: {
    isOpened: {
      type: Boolean,
      default: false
    }
  }
});

const _hoisted_1$l = ["aria-expanded"];
const _hoisted_2$i = /* @__PURE__ */ createBaseVNode(
  "span",
  { "aria-hidden": "true" },
  null,
  -1
  /* HOISTED */
);
const _hoisted_3$a = /* @__PURE__ */ createBaseVNode(
  "span",
  { "aria-hidden": "true" },
  null,
  -1
  /* HOISTED */
);
const _hoisted_4$6 = /* @__PURE__ */ createBaseVNode(
  "span",
  { "aria-hidden": "true" },
  null,
  -1
  /* HOISTED */
);
const _hoisted_5$4 = /* @__PURE__ */ createBaseVNode(
  "span",
  { "aria-hidden": "true" },
  null,
  -1
  /* HOISTED */
);
const _hoisted_6$3 = [
  _hoisted_2$i,
  _hoisted_3$a,
  _hoisted_4$6,
  _hoisted_5$4
];
function _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("a", mergeProps({
    role: "button",
    class: ["navbar-burger burger", { "is-active": _ctx.isOpened }],
    "aria-label": "menu",
    "aria-expanded": _ctx.isOpened || void 0
  }, _ctx.$attrs, { tabindex: "0" }), [..._hoisted_6$3], 16, _hoisted_1$l);
}
var NavbarBurger = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$p]]);

const isTouch = typeof window !== "undefined" && ("ontouchstart" in window || navigator.maxTouchPoints > 0);
const events = isTouch ? ["touchstart", "click"] : ["click"];
const instances = [];
function processArgs(bindingValue) {
  const isFunction = typeof bindingValue === "function";
  if (!isFunction && typeof bindingValue !== "object") {
    throw new Error(`v-click-outside: Binding value should be a function or an object, ${typeof bindingValue} given`);
  }
  return {
    handler: isFunction ? bindingValue : bindingValue.handler,
    middleware: !isFunction && bindingValue.middleware || ((isClickOutside) => !!isClickOutside),
    events: !isFunction && bindingValue.events || events
  };
}
function onEvent({ el, event, handler, middleware }) {
  const isClickOutside = event.target !== el && !el.contains(event.target);
  if (!isClickOutside || !middleware(event, el)) {
    return;
  }
  handler(event, el);
}
function toggleEventListeners({ eventHandlers }, action) {
  eventHandlers.forEach(({ event, handler }) => {
    document[`${action}EventListener`](event, handler);
  });
}
function beforeMount(el, { value }) {
  const { handler, middleware, events: events2 } = processArgs(value);
  const instance = {
    el,
    eventHandlers: events2.map((eventName) => ({
      event: eventName,
      handler: (event) => onEvent({ event, el, handler, middleware })
    }))
  };
  toggleEventListeners(instance, "add");
  instances.push(instance);
}
function updated(el, { value }) {
  const { handler, middleware, events: events2 } = processArgs(value);
  const instance = instances.filter((instance2) => instance2.el === el)[0];
  toggleEventListeners(instance, "remove");
  instance.eventHandlers = events2.map((eventName) => ({
    event: eventName,
    handler: (event) => onEvent({ event, el, handler, middleware })
  }));
  toggleEventListeners(instance, "add");
}
function unmounted(el) {
  const instance = instances.filter((instance2) => instance2.el === el)[0];
  toggleEventListeners(instance, "remove");
}
const directive = {
  beforeMount,
  updated,
  unmounted
};

const FIXED_TOP_CLASS = "is-fixed-top";
const BODY_FIXED_TOP_CLASS = "has-navbar-fixed-top";
const BODY_SPACED_FIXED_TOP_CLASS = "has-spaced-navbar-fixed-top";
const FIXED_BOTTOM_CLASS = "is-fixed-bottom";
const BODY_FIXED_BOTTOM_CLASS = "has-navbar-fixed-bottom";
const BODY_SPACED_FIXED_BOTTOM_CLASS = "has-spaced-navbar-fixed-bottom";
const BODY_CENTERED_CLASS = "has-navbar-centered";
const isFilled = (str) => !!str;
var _sfc_main$k = defineComponent({
  name: "BNavbar",
  components: {
    NavbarBurger
  },
  directives: {
    clickOutside: directive
  },
  props: {
    type: [String, Object],
    transparent: {
      type: Boolean,
      default: false
    },
    fixedTop: {
      type: Boolean,
      default: false
    },
    fixedBottom: {
      type: Boolean,
      default: false
    },
    modelValue: {
      type: Boolean,
      default: false
    },
    centered: {
      type: Boolean,
      default: false
    },
    wrapperClass: {
      type: [String, Array, Object]
    },
    closeOnClick: {
      type: Boolean,
      default: true
    },
    mobileBurger: {
      type: Boolean,
      default: true
    },
    spaced: Boolean,
    shadow: Boolean
  },
  emits: {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    "update:modelValue": (_value) => true
  },
  data() {
    return {
      internalIsActive: this.modelValue,
      _isNavBar: true
      // Used internally by NavbarItem
    };
  },
  computed: {
    isOpened() {
      return this.internalIsActive;
    },
    computedClasses() {
      return [
        this.type,
        {
          [FIXED_TOP_CLASS]: this.fixedTop,
          [FIXED_BOTTOM_CLASS]: this.fixedBottom,
          [BODY_CENTERED_CLASS]: this.centered,
          "is-spaced": this.spaced,
          "has-shadow": this.shadow,
          "is-transparent": this.transparent
        }
      ];
    }
  },
  watch: {
    modelValue: {
      handler(active) {
        this.internalIsActive = active;
      },
      immediate: true
    },
    fixedTop(isSet) {
      this.setBodyFixedTopClass(isSet);
    },
    bottomTop(isSet) {
      this.setBodyFixedBottomClass(isSet);
    }
  },
  methods: {
    toggleActive() {
      this.internalIsActive = !this.internalIsActive;
      this.emitUpdateParentEvent();
    },
    closeMenu() {
      if (this.closeOnClick && this.internalIsActive) {
        this.internalIsActive = false;
        this.emitUpdateParentEvent();
      }
    },
    emitUpdateParentEvent() {
      this.$emit("update:modelValue", this.internalIsActive);
    },
    setBodyClass(className) {
      if (typeof window !== "undefined") {
        document.body.classList.add(className);
      }
    },
    removeBodyClass(className) {
      if (typeof window !== "undefined") {
        document.body.classList.remove(className);
      }
    },
    checkIfFixedPropertiesAreColliding() {
      const areColliding = this.fixedTop && this.fixedBottom;
      if (areColliding) {
        throw new Error("You should choose if the BNavbar is fixed bottom or fixed top, but not both");
      }
    },
    genNavbar() {
      const navBarSlots = [
        this.genNavbarBrandNode(),
        this.genNavbarSlotsNode()
      ];
      if (!isFilled(this.wrapperClass)) {
        return this.genNavbarSlots(navBarSlots);
      }
      const navWrapper = h(
        "div",
        { class: this.wrapperClass },
        navBarSlots
      );
      return this.genNavbarSlots([navWrapper]);
    },
    genNavbarSlots(slots) {
      const vnode = h(
        "nav",
        {
          class: ["navbar", this.computedClasses],
          role: "navigation",
          "aria-label": "main navigation"
        },
        slots
      );
      return withDirectives(vnode, [
        [resolveDirective("click-outside"), this.closeMenu]
      ]);
    },
    genNavbarBrandNode() {
      const children = this.$slots.brand != null ? [this.$slots.brand(), this.genBurgerNode()] : this.genBurgerNode();
      return h(
        "div",
        { class: "navbar-brand" },
        children
      );
    },
    genBurgerNode() {
      if (this.mobileBurger) {
        const defaultBurgerNode = h(
          resolveComponent("navbar-burger"),
          {
            isOpened: this.isOpened,
            onClick: this.toggleActive,
            onKeyup: (event) => {
              if (event.keyCode !== 13) return;
              this.toggleActive();
            }
          }
        );
        const hasBurgerSlot = !!this.$slots.burger;
        return hasBurgerSlot ? this.$slots.burger({
          isOpened: this.isOpened,
          toggleActive: this.toggleActive
        }) : defaultBurgerNode;
      }
    },
    genNavbarSlotsNode() {
      return h(
        "div",
        { class: ["navbar-menu", { "is-active": this.isOpened }] },
        [
          this.genMenuPosition("start"),
          this.genMenuPosition("end")
        ]
      );
    },
    genMenuPosition(positionName) {
      return h(
        "div",
        { class: `navbar-${positionName}` },
        this.$slots[positionName] != null ? this.$slots[positionName]() : []
      );
    },
    setBodyFixedTopClass(isSet) {
      this.checkIfFixedPropertiesAreColliding();
      if (isSet) {
        this.setBodyClass(BODY_FIXED_TOP_CLASS);
        this.spaced && this.setBodyClass(BODY_SPACED_FIXED_TOP_CLASS);
      } else {
        this.removeBodyClass(BODY_FIXED_TOP_CLASS);
        this.removeBodyClass(BODY_SPACED_FIXED_TOP_CLASS);
      }
    },
    setBodyFixedBottomClass(isSet) {
      this.checkIfFixedPropertiesAreColliding();
      if (isSet) {
        this.setBodyClass(BODY_FIXED_BOTTOM_CLASS);
        this.spaced && this.setBodyClass(BODY_SPACED_FIXED_BOTTOM_CLASS);
      } else {
        this.removeBodyClass(BODY_FIXED_BOTTOM_CLASS);
        this.removeBodyClass(BODY_SPACED_FIXED_BOTTOM_CLASS);
      }
    }
  },
  beforeMount() {
    this.fixedTop && this.setBodyFixedTopClass(true);
    this.fixedBottom && this.setBodyFixedBottomClass(true);
  },
  beforeUnmount() {
    if (this.fixedTop) {
      const className = this.spaced ? BODY_SPACED_FIXED_TOP_CLASS : BODY_FIXED_TOP_CLASS;
      this.removeBodyClass(className);
    } else if (this.fixedBottom) {
      const className = this.spaced ? BODY_SPACED_FIXED_BOTTOM_CLASS : BODY_FIXED_BOTTOM_CLASS;
      this.removeBodyClass(className);
    }
  },
  render() {
    return this.genNavbar();
  }
});

const clickableWhiteList = ["div", "span", "input"];
var _sfc_main$j = defineComponent({
  name: "BNavbarItem",
  inheritAttrs: false,
  props: {
    tag: {
      type: [String, Object],
      default: "a"
    },
    active: Boolean
  },
  methods: {
    /*
     * Keypress event that is bound to the document
     */
    keyPress({ key }) {
      if (key === "Escape" || key === "Esc") {
        this.closeMenuRecursive(this, ["NavBar"]);
      }
    },
    /*
     * Close parent if clicked outside.
     */
    handleClickEvent(event) {
      const isOnWhiteList = clickableWhiteList.some((item) => item === event.target.localName);
      if (!isOnWhiteList) {
        const parent = this.closeMenuRecursive(this, ["NavbarDropdown", "NavBar"]);
        if (parent && parent.$data._isNavbarDropdown) this.closeMenuRecursive(parent, ["NavBar"]);
      }
    },
    /*
     * Close parent recursively
     */
    closeMenuRecursive(current, targetComponents) {
      const parent = current.$parent;
      if (!parent) return null;
      const foundItem = targetComponents.reduce((acc, item) => {
        if (parent.$data[`_is${item}`]) {
          parent.closeMenu();
          return parent;
        }
        return acc;
      }, null);
      return foundItem || this.closeMenuRecursive(parent, targetComponents);
    }
  },
  mounted() {
    if (typeof window !== "undefined") {
      this.$el.addEventListener("click", this.handleClickEvent);
      document.addEventListener("keyup", this.keyPress);
    }
  },
  beforeUnmount() {
    if (typeof window !== "undefined") {
      this.$el.removeEventListener("click", this.handleClickEvent);
      document.removeEventListener("keyup", this.keyPress);
    }
  }
});

function _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), mergeProps({
    class: ["navbar-item", {
      "is-active": _ctx.active
    }]
  }, _ctx.$attrs), {
    default: withCtx(() => [
      renderSlot(_ctx.$slots, "default")
    ]),
    _: 3
    /* FORWARDED */
  }, 16, ["class"]);
}
var NavbarItem = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$o]]);

var _sfc_main$i = defineComponent({
  name: "BNavbarDropdown",
  directives: {
    clickOutside: directive
  },
  mixins: [CompatFallthroughMixin],
  props: {
    label: String,
    hoverable: Boolean,
    active: Boolean,
    right: Boolean,
    arrowless: Boolean,
    boxed: Boolean,
    closeOnClick: {
      type: Boolean,
      default: true
    },
    collapsible: Boolean,
    tag: {
      type: [String, Object],
      default: "a"
    }
  },
  emits: {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    "active-change": (_active) => true
  },
  data() {
    return {
      newActive: this.active,
      isHoverable: this.hoverable,
      _isNavbarDropdown: true
      // Used internally by NavbarItem
    };
  },
  watch: {
    active(value) {
      this.newActive = value;
    },
    newActive(value) {
      this.$emit("active-change", value);
    }
  },
  methods: {
    toggleMenu() {
      this.newActive = !this.newActive;
    },
    showMenu() {
      this.newActive = true;
    },
    /*
    * See naming convetion of navbaritem
    */
    closeMenu() {
      this.newActive = !this.closeOnClick;
      if (this.hoverable && this.closeOnClick) {
        this.isHoverable = false;
      }
    },
    checkHoverable() {
      if (this.hoverable) {
        this.isHoverable = true;
      }
    }
  }
});

function _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {
  const _directive_click_outside = resolveDirective("click-outside");
  return withDirectives((openBlock(), createElementBlock(
    "div",
    mergeProps({
      class: ["navbar-item has-dropdown", {
        "is-hoverable": _ctx.isHoverable,
        "is-active": _ctx.newActive
      }],
      onMouseenter: _cache[0] || (_cache[0] = (...args) => _ctx.checkHoverable && _ctx.checkHoverable(...args))
    }, _ctx.rootAttrs),
    [
      (openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), mergeProps({
        class: ["navbar-link", {
          "is-arrowless": _ctx.arrowless,
          "is-active": _ctx.newActive && _ctx.collapsible
        }]
      }, _ctx.fallthroughAttrs, {
        "aria-haspopup": "true",
        onClick: withModifiers(_ctx.toggleMenu, ["prevent"]),
        onKeyup: withKeys(_ctx.toggleMenu, ["enter"]),
        tabindex: "0"
      }), {
        default: withCtx(() => [
          _ctx.label ? (openBlock(), createElementBlock(
            Fragment,
            { key: 0 },
            [
              createTextVNode(
                toDisplayString$1(_ctx.label),
                1
                /* TEXT */
              )
            ],
            64
            /* STABLE_FRAGMENT */
          )) : renderSlot(_ctx.$slots, "label", { key: 1 })
        ]),
        _: 3
        /* FORWARDED */
      }, 16, ["class", "onClick", "onKeyup"])),
      createBaseVNode(
        "div",
        {
          class: normalizeClass(["navbar-dropdown", {
            "is-right": _ctx.right,
            "is-boxed": _ctx.boxed,
            "is-hidden-touch": _ctx.collapsible && !_ctx.newActive
          }])
        },
        [
          renderSlot(_ctx.$slots, "default")
        ],
        2
        /* CLASS */
      )
    ],
    16
    /* FULL_PROPS */
  )), [
    [_directive_click_outside, _ctx.closeMenu]
  ]);
}
var NavbarDropdown = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$n]]);

const Plugin$k = {
  install(Vue) {
    registerComponent(Vue, _sfc_main$k);
    registerComponent(Vue, NavbarItem);
    registerComponent(Vue, NavbarDropdown);
  }
};

const CONTROLS_ALIGNMENTS = ["left", "right", "center"];
var _sfc_main$h = defineComponent({
  name: "BNumberinput",
  components: {
    BIcon,
    BInput
  },
  mixins: [CompatFallthroughMixin, FormElementMixin],
  inject: {
    field: {
      from: "BField",
      default: false
    }
  },
  props: {
    modelValue: [Number, null],
    min: {
      type: [Number, String]
    },
    max: [Number, String],
    step: [Number, String],
    minStep: [Number, String],
    exponential: [Boolean, Number],
    disabled: Boolean,
    type: {
      type: String,
      default: "is-primary"
    },
    editable: {
      type: Boolean,
      default: true
    },
    controls: {
      type: Boolean,
      default: true
    },
    controlsAlignment: {
      type: String,
      default: "center",
      validator: (value) => {
        return CONTROLS_ALIGNMENTS.indexOf(value) >= 0;
      }
    },
    controlsRounded: {
      type: Boolean,
      default: false
    },
    controlsPosition: String,
    placeholder: [Number, String],
    ariaMinusLabel: String,
    ariaPlusLabel: String,
    longPress: {
      type: Boolean,
      default: true
    },
    // Native options to use in HTML5 validation
    autocomplete: String
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    blur: (_event) => true,
    focus: (_event) => true,
    "update:modelValue": (_value) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      newValue: this.modelValue,
      newStep: this.step || 1,
      newMinStep: this.minStep,
      timesPressed: 1,
      _elementRef: "input",
      _$intervalRef: void 0
    };
  },
  computed: {
    computedValue: {
      // getter has to include `string` in the return type so that the
      // setter can accept `string`
      get() {
        return this.newValue;
      },
      set(value) {
        let newValue = Number(value) === 0 ? 0 : Number(value) || null;
        if (value === "" || value === void 0 || value === null) {
          newValue = null;
        }
        this.newValue = newValue;
        if (newValue === null) {
          this.$emit("update:modelValue", newValue);
        } else if (!isNaN(newValue)) {
          this.$emit("update:modelValue", Number(newValue));
        }
        this.$nextTick(() => {
          if (this.$refs.input) {
            this.$refs.input.checkHtml5Validity();
          }
        });
      }
    },
    controlsLeft() {
      if (this.controls && this.controlsAlignment !== "right") {
        return this.controlsAlignment === "left" ? ["minus", "plus"] : ["minus"];
      }
      return [];
    },
    controlsRight() {
      if (this.controls && this.controlsAlignment !== "left") {
        return this.controlsAlignment === "right" ? ["minus", "plus"] : ["plus"];
      }
      return [];
    },
    fieldClasses() {
      return [
        { "has-addons": this.controlsPosition === "compact" },
        { "is-grouped": this.controlsPosition !== "compact" },
        { "is-expanded": this.expanded }
      ];
    },
    buttonClasses() {
      return [this.type, this.size, { "is-rounded": this.controlsRounded }];
    },
    minNumber() {
      return typeof this.min === "string" ? parseFloat(this.min) : this.min;
    },
    maxNumber() {
      return typeof this.max === "string" ? parseFloat(this.max) : this.max;
    },
    stepNumber() {
      if (this.newStep === "any") {
        return 1;
      }
      return typeof this.newStep === "string" ? parseFloat(this.newStep) : this.newStep;
    },
    minStepNumber() {
      if (this.newStep === "any" && typeof this.newMinStep === "undefined") {
        return "any";
      }
      const step = typeof this.newMinStep !== "undefined" ? this.newMinStep : this.newStep;
      return typeof step === "string" ? parseFloat(step) : step;
    },
    disabledMin() {
      return +this.computedValue - this.stepNumber < this.minNumber;
    },
    disabledMax() {
      return +this.computedValue + this.stepNumber > this.maxNumber;
    },
    stepDecimals() {
      const step = this.minStepNumber.toString();
      const index = step.indexOf(".");
      if (index >= 0) {
        return step.substring(index + 1).length;
      }
      return 0;
    },
    disabledOrUndefined() {
      return this.disabled || void 0;
    }
  },
  watch: {
    /*
     * When v-model is changed:
     *   1. Set internal value.
     */
    modelValue: {
      immediate: true,
      handler(value) {
        this.newValue = value;
      }
    },
    step(value) {
      this.newStep = value;
    },
    minStep(value) {
      this.newMinStep = value;
    }
  },
  methods: {
    isDisabled(control) {
      return this.disabled || (control === "plus" ? this.disabledMax : this.disabledMin);
    },
    decrement() {
      if (this.computedValue === null || typeof this.computedValue === "undefined") {
        if (this.maxNumber !== null && typeof this.maxNumber !== "undefined") {
          this.computedValue = this.maxNumber;
          return;
        }
        this.computedValue = 0;
      }
      if (typeof this.minNumber === "undefined" || +this.computedValue - this.stepNumber >= this.minNumber) {
        const value = +this.computedValue - this.stepNumber;
        this.computedValue = parseFloat(value.toFixed(this.stepDecimals));
      }
    },
    increment() {
      if (this.computedValue === null || typeof this.computedValue === "undefined" || +this.computedValue < this.minNumber) {
        if (this.minNumber !== null && typeof this.minNumber !== "undefined") {
          this.computedValue = this.minNumber;
          return;
        }
        this.computedValue = 0;
      }
      if (typeof this.maxNumber === "undefined" || +this.computedValue + this.stepNumber <= this.maxNumber) {
        const value = +this.computedValue + this.stepNumber;
        this.computedValue = parseFloat(value.toFixed(this.stepDecimals));
      }
    },
    onControlClick(event, inc) {
      if (event.detail !== 0 || event.type !== "click") return;
      if (inc) this.increment();
      else this.decrement();
    },
    longPressTick(inc) {
      if (inc) this.increment();
      else this.decrement();
      if (!this.longPress) return;
      this._$intervalRef = setTimeout(() => {
        this.longPressTick(inc);
      }, this.exponential ? 250 / (+this.exponential * this.timesPressed++) : 250);
    },
    onStartLongPress(event, inc) {
      if (event.button !== 0 && event.type !== "touchstart") return;
      clearTimeout(this._$intervalRef);
      this.longPressTick(inc);
    },
    onStopLongPress() {
      if (!this._$intervalRef) return;
      this.timesPressed = 1;
      clearTimeout(this._$intervalRef);
      this._$intervalRef = void 0;
    }
  },
  mounted() {
    if (this.field === this.$parent) {
      this.$parent.wrapNumberinput({
        controlsPosition: this.controlsPosition,
        size: this.size
      });
    }
  },
  beforeUnmount() {
    clearTimeout(this._$intervalRef);
  }
});

const _hoisted_1$k = ["disabled", "aria-label", "onMousedown", "onTouchstart", "onClick"];
const _hoisted_2$h = ["disabled", "aria-label", "onMousedown", "onTouchstart", "onClick"];
function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  const _component_b_input = resolveComponent("b-input");
  return openBlock(), createElementBlock(
    "div",
    mergeProps({
      class: ["b-numberinput field", _ctx.fieldClasses]
    }, _ctx.rootAttrs),
    [
      (openBlock(true), createElementBlock(
        Fragment,
        null,
        renderList(_ctx.controlsLeft, (control) => {
          return openBlock(), createElementBlock(
            "p",
            {
              key: control,
              class: normalizeClass(["control", control]),
              onMouseup: _cache[0] || (_cache[0] = (...args) => _ctx.onStopLongPress && _ctx.onStopLongPress(...args)),
              onMouseleave: _cache[1] || (_cache[1] = (...args) => _ctx.onStopLongPress && _ctx.onStopLongPress(...args)),
              onTouchend: _cache[2] || (_cache[2] = (...args) => _ctx.onStopLongPress && _ctx.onStopLongPress(...args)),
              onTouchcancel: _cache[3] || (_cache[3] = (...args) => _ctx.onStopLongPress && _ctx.onStopLongPress(...args))
            },
            [
              createBaseVNode("button", {
                type: "button",
                class: normalizeClass(["button", _ctx.buttonClasses]),
                disabled: _ctx.isDisabled(control) || void 0,
                "aria-label": control === "plus" ? _ctx.ariaPlusLabel : _ctx.ariaMinusLabel,
                onMousedown: ($event) => !_ctx.isDisabled(control) && _ctx.onStartLongPress($event, control === "plus"),
                onTouchstart: withModifiers(($event) => !_ctx.isDisabled(control) && _ctx.onStartLongPress($event, control === "plus"), ["prevent"]),
                onClick: ($event) => !_ctx.isDisabled(control) && _ctx.onControlClick($event, control === "plus")
              }, [
                createVNode(_component_b_icon, {
                  both: "",
                  icon: control,
                  pack: _ctx.iconPack,
                  size: _ctx.iconSize
                }, null, 8, ["icon", "pack", "size"])
              ], 42, _hoisted_1$k)
            ],
            34
            /* CLASS, NEED_HYDRATION */
          );
        }),
        128
        /* KEYED_FRAGMENT */
      )),
      createVNode(_component_b_input, mergeProps({
        type: "number",
        ref: "input",
        modelValue: _ctx.computedValue,
        "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.computedValue = $event)
      }, _ctx.fallthroughAttrs, {
        step: _ctx.minStepNumber,
        max: _ctx.max,
        min: _ctx.min,
        size: _ctx.size,
        disabled: _ctx.disabledOrUndefined,
        readonly: !_ctx.editable,
        loading: _ctx.loading,
        rounded: _ctx.rounded,
        icon: _ctx.icon,
        "icon-pack": _ctx.iconPack,
        autocomplete: _ctx.autocomplete,
        expanded: _ctx.expanded,
        placeholder: _ctx.placeholder,
        "use-html5-validation": _ctx.useHtml5Validation,
        onFocus: _cache[5] || (_cache[5] = ($event) => _ctx.$emit("focus", $event)),
        onBlur: _cache[6] || (_cache[6] = ($event) => _ctx.$emit("blur", $event))
      }), null, 16, ["modelValue", "step", "max", "min", "size", "disabled", "readonly", "loading", "rounded", "icon", "icon-pack", "autocomplete", "expanded", "placeholder", "use-html5-validation"]),
      (openBlock(true), createElementBlock(
        Fragment,
        null,
        renderList(_ctx.controlsRight, (control) => {
          return openBlock(), createElementBlock(
            "p",
            {
              key: control,
              class: normalizeClass(["control", control]),
              onMouseup: _cache[7] || (_cache[7] = (...args) => _ctx.onStopLongPress && _ctx.onStopLongPress(...args)),
              onMouseleave: _cache[8] || (_cache[8] = (...args) => _ctx.onStopLongPress && _ctx.onStopLongPress(...args)),
              onTouchend: _cache[9] || (_cache[9] = (...args) => _ctx.onStopLongPress && _ctx.onStopLongPress(...args)),
              onTouchcancel: _cache[10] || (_cache[10] = (...args) => _ctx.onStopLongPress && _ctx.onStopLongPress(...args))
            },
            [
              createBaseVNode("button", {
                type: "button",
                class: normalizeClass(["button", _ctx.buttonClasses]),
                disabled: _ctx.isDisabled(control) || void 0,
                "aria-label": control === "plus" ? _ctx.ariaPlusLabel : _ctx.ariaMinusLabel,
                onMousedown: ($event) => !_ctx.isDisabled(control) && _ctx.onStartLongPress($event, control === "plus"),
                onTouchstart: withModifiers(($event) => !_ctx.isDisabled(control) && _ctx.onStartLongPress($event, control === "plus"), ["prevent"]),
                onClick: ($event) => !_ctx.isDisabled(control) && _ctx.onControlClick($event, control === "plus")
              }, [
                createVNode(_component_b_icon, {
                  both: "",
                  icon: control,
                  pack: _ctx.iconPack,
                  size: _ctx.iconSize
                }, null, 8, ["icon", "pack", "size"])
              ], 42, _hoisted_2$h)
            ],
            34
            /* CLASS, NEED_HYDRATION */
          );
        }),
        128
        /* KEYED_FRAGMENT */
      ))
    ],
    16
    /* FULL_PROPS */
  );
}
var Numberinput = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$m]]);

const Plugin$j = {
  install(Vue) {
    registerComponent(Vue, Numberinput);
  }
};

var _sfc_main$g = defineComponent({
  name: "BPaginationButton",
  props: {
    page: {
      type: Object,
      required: true
    },
    tag: {
      type: [String, Object],
      default: "a",
      validator: (value) => {
        return typeof value === "object" || config.defaultLinkTags.indexOf(value) >= 0;
      }
    },
    disabled: {
      type: Boolean,
      default: false
    }
  },
  computed: {
    href() {
      if (this.tag === "a") {
        return "#";
      } else {
        return void 0;
      }
    },
    isDisabled() {
      return this.disabled || this.page.disabled;
    },
    disabledOrUndefined() {
      return this.isDisabled || void 0;
    }
  }
});

function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), mergeProps({
    role: "button",
    href: _ctx.href,
    disabled: _ctx.disabledOrUndefined,
    class: ["pagination-link", { "is-current": _ctx.page.isCurrent, [_ctx.page.class]: true }]
  }, _ctx.$attrs, {
    onClick: withModifiers(_ctx.page.click, ["prevent"]),
    "aria-label": _ctx.page["aria-label"],
    "aria-current": _ctx.page.isCurrent || void 0
  }), {
    default: withCtx(() => [
      renderSlot(_ctx.$slots, "default", {}, () => [
        createTextVNode(
          toDisplayString$1(_ctx.page.number),
          1
          /* TEXT */
        )
      ])
    ]),
    _: 3
    /* FORWARDED */
  }, 16, ["href", "disabled", "class", "onClick", "aria-label", "aria-current"]);
}
var PaginationButton = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$l]]);

function debounce(func, wait, immediate) {
  let timeout;
  return function(...args) {
    const context = this;
    const later = function() {
      timeout = void 0;
      func.apply(context, args);
    };
    clearTimeout(timeout);
    timeout = setTimeout(later, wait);
  };
}

var _sfc_main$f = defineComponent({
  name: "BPagination",
  components: {
    BIcon,
    BPaginationButton: PaginationButton
  },
  props: {
    total: [Number, String],
    perPage: {
      type: [Number, String],
      default: 20
    },
    modelValue: {
      type: [Number, String],
      default: 1
    },
    rangeBefore: {
      type: [Number, String],
      default: 1
    },
    rangeAfter: {
      type: [Number, String],
      default: 1
    },
    size: String,
    simple: Boolean,
    rounded: Boolean,
    order: String,
    iconPack: String,
    iconPrev: {
      type: String,
      default: () => {
        return config.defaultIconPrev;
      }
    },
    iconNext: {
      type: String,
      default: () => {
        return config.defaultIconNext;
      }
    },
    ariaNextLabel: String,
    ariaPreviousLabel: String,
    ariaPageLabel: String,
    ariaCurrentLabel: String,
    pageInput: {
      type: Boolean,
      default: false
    },
    pageInputPosition: String,
    debouncePageInput: [Number, String]
  },
  data() {
    return {
      inputValue: this.modelValue,
      debounceHandlePageInput: void 0
    };
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    change: (_num) => true,
    "update:modelValue": (_num) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  computed: {
    rootClasses() {
      return [
        this.order,
        this.size,
        this.pageInputPosition,
        {
          "is-simple": this.simple,
          "is-rounded": this.rounded,
          "has-input": this.pageInput
        }
      ];
    },
    beforeCurrent() {
      return parseInt(this.rangeBefore + "");
    },
    afterCurrent() {
      return parseInt(this.rangeAfter + "");
    },
    /*
    * Total page size (count).
    */
    pageCount() {
      return Math.ceil(+this.total / +this.perPage);
    },
    /*
    * First item of the page (count).
    */
    firstItem() {
      const firstItem = +this.modelValue * +this.perPage - +this.perPage + 1;
      return firstItem >= 0 ? firstItem : 0;
    },
    /*
    * Check if previous button is available.
    */
    hasPrev() {
      return +this.modelValue > 1;
    },
    /*
     * Check if first page button should be visible.
    */
    hasFirst() {
      return +this.modelValue >= 2 + this.beforeCurrent;
    },
    /*
    * Check if first ellipsis should be visible.
    */
    hasFirstEllipsis() {
      return +this.modelValue >= this.beforeCurrent + 4;
    },
    /*
    * Check if last page button should be visible.
    */
    hasLast() {
      return +this.modelValue <= this.pageCount - (1 + this.afterCurrent);
    },
    /*
    * Check if last ellipsis should be visible.
    */
    hasLastEllipsis() {
      return +this.modelValue < this.pageCount - (2 + this.afterCurrent);
    },
    /*
    * Check if next button is available.
    */
    hasNext() {
      return +this.modelValue < this.pageCount;
    },
    /*
    * Get near pages, 1 before and 1 after the current.
    * Also add the click event to the array.
    */
    pagesInRange() {
      if (this.simple) return;
      let left = Math.max(1, +this.modelValue - this.beforeCurrent);
      if (left - 1 === 2) {
        left--;
      }
      let right = Math.min(+this.modelValue + this.afterCurrent, this.pageCount);
      if (this.pageCount - right === 2) {
        right++;
      }
      const pages = [];
      for (let i = left; i <= right; i++) {
        pages.push(this.getPage(i));
      }
      return pages;
    }
  },
  watch: {
    /*
    * If current page is trying to be greater than page count, set to last.
    */
    pageCount(value) {
      if (this.modelValue > value) this.last();
    },
    modelValue(value) {
      this.inputValue = value;
    },
    debouncePageInput: {
      handler(value) {
        this.debounceHandlePageInput = debounce(
          this.handleOnInputPageChange,
          value
        );
      },
      immediate: true
    }
  },
  methods: {
    /*
    * Previous button click listener.
    */
    prev(event) {
      this.changePage(+this.modelValue - 1, event);
    },
    /*
     * Next button click listener.
    */
    next(event) {
      this.changePage(+this.modelValue + 1, event);
    },
    /*
     * First button click listener.
    */
    first(event) {
      this.changePage(1, event);
    },
    /*
    * Last button click listener.
    */
    last(event) {
      this.changePage(this.pageCount, event);
    },
    changePage(num, event) {
      if (this.modelValue === num || num < 1 || num > this.pageCount) return;
      this.$emit("update:modelValue", num);
      this.$emit("change", num);
      if (event && event.target) {
        this.$nextTick(() => event.target.focus());
      }
    },
    getPage(num, options = {}) {
      return {
        number: num,
        isCurrent: this.modelValue === num,
        click: (event) => this.changePage(num, event),
        input: (event, inputNum) => this.changePage(+inputNum, event),
        disabled: options.disabled || false,
        class: options.class || "",
        "aria-label": options["aria-label"] || this.getAriaPageLabel(num, this.modelValue === num)
      };
    },
    /*
    * Get text for aria-label according to page number.
    */
    getAriaPageLabel(pageNumber, isCurrent) {
      if (this.ariaPageLabel && (!isCurrent || !this.ariaCurrentLabel)) {
        return this.ariaPageLabel + " " + pageNumber + ".";
      } else if (this.ariaPageLabel && isCurrent && this.ariaCurrentLabel) {
        return this.ariaCurrentLabel + ", " + this.ariaPageLabel + " " + pageNumber + ".";
      }
      return null;
    },
    handleOnInputPageChange(event) {
      this.getPage(+this.inputValue).input(event, this.inputValue);
    },
    handleOnInputDebounce(event) {
      if (this.debouncePageInput) {
        this.debounceHandlePageInput(event);
      } else {
        this.handleOnInputPageChange(event);
      }
    },
    handleOnKeyPress(event) {
      const ASCIICode = event.which || event.keyCode;
      if (ASCIICode >= 48 && ASCIICode <= 57) {
        return true;
      } else {
        return event.preventDefault();
      }
    },
    handleAllowableInputPageRange(event) {
      const target = event.target;
      if (+target.value > 0 && +target.value <= this.pageCount) {
        this.handleOnInputValue(event);
      } else {
        this.inputValue = 1;
        this.inputValue = "";
      }
    },
    handleOnInputValue(event) {
      const inputValue = +event.target.value;
      this.inputValue = inputValue;
      if (Number.isInteger(this.inputValue)) {
        this.handleOnInputDebounce(event);
      } else {
        this.inputValue = this.modelValue;
      }
    }
  }
});

const _hoisted_1$j = { class: "control pagination-input" };
const _hoisted_2$g = ["value", "size", "maxlength"];
const _hoisted_3$9 = {
  key: 4,
  class: "info"
};
const _hoisted_4$5 = {
  key: 5,
  class: "pagination-list"
};
const _hoisted_5$3 = { key: 0 };
const _hoisted_6$2 = { key: 1 };
const _hoisted_7$2 = /* @__PURE__ */ createBaseVNode(
  "span",
  { class: "pagination-ellipsis" },
  "…",
  -1
  /* HOISTED */
);
const _hoisted_8$2 = [
  _hoisted_7$2
];
const _hoisted_9$2 = { key: 2 };
const _hoisted_10$1 = /* @__PURE__ */ createBaseVNode(
  "span",
  { class: "pagination-ellipsis" },
  "…",
  -1
  /* HOISTED */
);
const _hoisted_11$1 = [
  _hoisted_10$1
];
const _hoisted_12$1 = { key: 3 };
function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  const _component_BPaginationButton = resolveComponent("BPaginationButton");
  return openBlock(), createElementBlock(
    "nav",
    {
      class: normalizeClass(["pagination", _ctx.rootClasses])
    },
    [
      _ctx.$slots.previous ? renderSlot(_ctx.$slots, "previous", {
        key: 0,
        page: _ctx.getPage(+_ctx.modelValue - 1, {
          disabled: !_ctx.hasPrev,
          class: "pagination-previous",
          "aria-label": _ctx.ariaPreviousLabel
        })
      }, () => [
        createVNode(_component_b_icon, {
          icon: _ctx.iconPrev,
          pack: _ctx.iconPack,
          both: "",
          "aria-hidden": "true"
        }, null, 8, ["icon", "pack"])
      ]) : (openBlock(), createBlock(_component_BPaginationButton, {
        key: 1,
        class: "pagination-previous",
        disabled: !_ctx.hasPrev,
        page: _ctx.getPage(+_ctx.modelValue - 1),
        "aria-label": _ctx.ariaPreviousLabel
      }, {
        default: withCtx(() => [
          createVNode(_component_b_icon, {
            icon: _ctx.iconPrev,
            pack: _ctx.iconPack,
            both: "",
            "aria-hidden": "true"
          }, null, 8, ["icon", "pack"])
        ]),
        _: 1
        /* STABLE */
      }, 8, ["disabled", "page", "aria-label"])),
      _ctx.$slots.next ? renderSlot(_ctx.$slots, "next", {
        key: 2,
        page: _ctx.getPage(+_ctx.modelValue + 1, {
          disabled: !_ctx.hasNext,
          class: "pagination-next",
          "aria-label": _ctx.ariaNextLabel
        })
      }, () => [
        createVNode(_component_b_icon, {
          icon: _ctx.iconNext,
          pack: _ctx.iconPack,
          both: "",
          "aria-hidden": "true"
        }, null, 8, ["icon", "pack"])
      ]) : (openBlock(), createBlock(_component_BPaginationButton, {
        key: 3,
        class: "pagination-next",
        disabled: !_ctx.hasNext,
        page: _ctx.getPage(+_ctx.modelValue + 1),
        "aria-label": _ctx.ariaNextLabel
      }, {
        default: withCtx(() => [
          createVNode(_component_b_icon, {
            icon: _ctx.iconNext,
            pack: _ctx.iconPack,
            both: "",
            "aria-hidden": "true"
          }, null, 8, ["icon", "pack"])
        ]),
        _: 1
        /* STABLE */
      }, 8, ["disabled", "page", "aria-label"])),
      createBaseVNode("div", _hoisted_1$j, [
        _ctx.pageInput ? (openBlock(), createElementBlock("input", {
          key: 0,
          class: "input",
          value: _ctx.inputValue,
          onInput: _cache[0] || (_cache[0] = (...args) => _ctx.handleAllowableInputPageRange && _ctx.handleAllowableInputPageRange(...args)),
          onKeypress: _cache[1] || (_cache[1] = (...args) => _ctx.handleOnKeyPress && _ctx.handleOnKeyPress(...args)),
          size: _ctx.pageCount.toString().length,
          maxlength: _ctx.pageCount.toString().length
        }, null, 40, _hoisted_2$g)) : createCommentVNode("v-if", true)
      ]),
      _ctx.simple ? (openBlock(), createElementBlock("small", _hoisted_3$9, [
        _ctx.perPage == 1 ? (openBlock(), createElementBlock(
          Fragment,
          { key: 0 },
          [
            createTextVNode(
              toDisplayString$1(_ctx.firstItem) + " / " + toDisplayString$1(_ctx.total),
              1
              /* TEXT */
            )
          ],
          64
          /* STABLE_FRAGMENT */
        )) : (openBlock(), createElementBlock(
          Fragment,
          { key: 1 },
          [
            createTextVNode(
              toDisplayString$1(_ctx.firstItem) + "-" + toDisplayString$1(Math.min(+_ctx.modelValue * +_ctx.perPage, +_ctx.total)) + " / " + toDisplayString$1(_ctx.total),
              1
              /* TEXT */
            )
          ],
          64
          /* STABLE_FRAGMENT */
        ))
      ])) : (openBlock(), createElementBlock("ul", _hoisted_4$5, [
        createCommentVNode("First"),
        _ctx.hasFirst ? (openBlock(), createElementBlock("li", _hoisted_5$3, [
          _ctx.$slots.default ? renderSlot(_ctx.$slots, "default", {
            key: 0,
            page: _ctx.getPage(1)
          }) : (openBlock(), createBlock(_component_BPaginationButton, {
            key: 1,
            page: _ctx.getPage(1)
          }, null, 8, ["page"]))
        ])) : createCommentVNode("v-if", true),
        _ctx.hasFirstEllipsis ? (openBlock(), createElementBlock("li", _hoisted_6$2, [..._hoisted_8$2])) : createCommentVNode("v-if", true),
        createCommentVNode("Pages"),
        (openBlock(true), createElementBlock(
          Fragment,
          null,
          renderList(_ctx.pagesInRange, (page) => {
            return openBlock(), createElementBlock("li", {
              key: page.number
            }, [
              _ctx.$slots.default ? renderSlot(_ctx.$slots, "default", {
                key: 0,
                page
              }) : (openBlock(), createBlock(_component_BPaginationButton, {
                key: 1,
                page
              }, null, 8, ["page"]))
            ]);
          }),
          128
          /* KEYED_FRAGMENT */
        )),
        createCommentVNode("Last"),
        _ctx.hasLastEllipsis ? (openBlock(), createElementBlock("li", _hoisted_9$2, [..._hoisted_11$1])) : createCommentVNode("v-if", true),
        _ctx.hasLast ? (openBlock(), createElementBlock("li", _hoisted_12$1, [
          _ctx.$slots.default ? renderSlot(_ctx.$slots, "default", {
            key: 0,
            page: _ctx.getPage(_ctx.pageCount)
          }) : (openBlock(), createBlock(_component_BPaginationButton, {
            key: 1,
            page: _ctx.getPage(_ctx.pageCount)
          }, null, 8, ["page"]))
        ])) : createCommentVNode("v-if", true)
      ]))
    ],
    2
    /* CLASS */
  );
}
var BPagination = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$k]]);

const Plugin$i = {
  install(Vue) {
    registerComponent(Vue, BPagination);
    registerComponent(Vue, PaginationButton);
  }
};

const ProgressBar$1 = defineComponent({
  name: "BProgressBar",
  inject: {
    parent: {
      from: PROGRESS_INJECTION_KEY,
      default: void 0
    }
  },
  props: {
    type: {
      type: [String],
      default: void 0
    },
    value: {
      type: Number,
      default: void 0
    },
    showValue: {
      type: Boolean,
      default: false
    }
  },
  computed: {
    parentProgress() {
      return this.parent;
    },
    newType() {
      return [
        this.parentProgress.size,
        this.type || this.parentProgress.type
      ];
    },
    newShowValue() {
      return this.showValue || this.parentProgress.showValue;
    },
    newValue() {
      return this.parentProgress.calculateValue(this.value);
    },
    barWidth() {
      return `${(this.value === void 0 ? 0 : this.value) * 100 / this.parentProgress.max}%`;
    }
  }
});

const _hoisted_1$i = ["aria-valuenow", "aria-valuemax"];
const _hoisted_2$f = {
  key: 0,
  class: "progress-value"
};
function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", {
    class: normalizeClass(["progress-bar", _ctx.newType]),
    role: "progressbar",
    "aria-valuenow": _ctx.value,
    "aria-valuemax": _ctx.parentProgress.max,
    "aria-valuemin": "0",
    style: normalizeStyle({ width: _ctx.barWidth })
  }, [
    _ctx.newShowValue ? (openBlock(), createElementBlock("p", _hoisted_2$f, [
      renderSlot(_ctx.$slots, "default", {}, () => [
        createTextVNode(
          toDisplayString$1(_ctx.newValue),
          1
          /* TEXT */
        )
      ])
    ])) : createCommentVNode("v-if", true)
  ], 14, _hoisted_1$i);
}
var ProgressBar = /* @__PURE__ */ _export_sfc(ProgressBar$1, [["render", _sfc_render$j]]);

const Plugin$h = {
  install(Vue) {
    registerComponent(Vue, Progress);
    registerComponent(Vue, ProgressBar);
  }
};

const Radio$1 = defineComponent({
  name: "BRadio",
  mixins: [CheckRadioMixin]
});

const _hoisted_1$h = ["disabled"];
const _hoisted_2$e = ["disabled", "required", "name", "value"];
const _hoisted_3$8 = { class: "control-label" };
function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("label", {
    class: normalizeClass(["b-radio radio", [_ctx.size, { "is-disabled": _ctx.disabled }]]),
    ref: "label",
    disabled: _ctx.disabledOrUndefined,
    onClick: _cache[2] || (_cache[2] = (...args) => _ctx.focus && _ctx.focus(...args)),
    onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers(($event) => _ctx.$refs.label.click(), ["prevent"]), ["enter"]))
  }, [
    withDirectives(createBaseVNode("input", {
      "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.computedValue = $event),
      type: "radio",
      ref: "input",
      onClick: _cache[1] || (_cache[1] = withModifiers(() => {
      }, ["stop"])),
      disabled: _ctx.disabledOrUndefined,
      required: _ctx.requiredOrUndefined,
      name: _ctx.name,
      value: _ctx.nativeValue
    }, null, 8, _hoisted_2$e), [
      [vModelRadio, _ctx.computedValue]
    ]),
    createBaseVNode(
      "span",
      {
        class: normalizeClass(["check", _ctx.type])
      },
      null,
      2
      /* CLASS */
    ),
    createBaseVNode("span", _hoisted_3$8, [
      renderSlot(_ctx.$slots, "default")
    ])
  ], 42, _hoisted_1$h);
}
var Radio = /* @__PURE__ */ _export_sfc(Radio$1, [["render", _sfc_render$i]]);

const RadioButon = defineComponent({
  name: "BRadioButton",
  mixins: [CheckRadioMixin],
  props: {
    type: {
      type: String,
      default: "is-primary"
    },
    expanded: Boolean
  },
  data() {
    return {
      isFocused: false
    };
  },
  computed: {
    isSelected() {
      return this.newValue === this.nativeValue;
    },
    labelClass() {
      return [
        this.isSelected ? this.type : null,
        this.size,
        {
          "is-selected": this.isSelected,
          "is-disabled": this.disabled,
          "is-focused": this.isFocused
        }
      ];
    }
  }
});

const _hoisted_1$g = ["disabled"];
const _hoisted_2$d = ["disabled", "required", "name", "value"];
function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["control", { "is-expanded": _ctx.expanded }])
    },
    [
      createBaseVNode("label", {
        class: normalizeClass(["b-radio radio button", _ctx.labelClass]),
        ref: "label",
        disabled: _ctx.disabledOrUndefined,
        onClick: _cache[4] || (_cache[4] = (...args) => _ctx.focus && _ctx.focus(...args)),
        onKeydown: _cache[5] || (_cache[5] = withKeys(withModifiers(($event) => _ctx.$refs.label.click(), ["prevent"]), ["enter"]))
      }, [
        renderSlot(_ctx.$slots, "default"),
        withDirectives(createBaseVNode("input", {
          "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.computedValue = $event),
          type: "radio",
          ref: "input",
          onClick: _cache[1] || (_cache[1] = withModifiers(() => {
          }, ["stop"])),
          disabled: _ctx.disabledOrUndefined,
          required: _ctx.requiredOrUndefined,
          name: _ctx.name,
          value: _ctx.nativeValue,
          onFocus: _cache[2] || (_cache[2] = ($event) => _ctx.isFocused = true),
          onBlur: _cache[3] || (_cache[3] = ($event) => _ctx.isFocused = false)
        }, null, 40, _hoisted_2$d), [
          [vModelRadio, _ctx.computedValue]
        ])
      ], 42, _hoisted_1$g)
    ],
    2
    /* CLASS */
  );
}
var RadioButton = /* @__PURE__ */ _export_sfc(RadioButon, [["render", _sfc_render$h]]);

const Plugin$g = {
  install(Vue) {
    registerComponent(Vue, Radio);
    registerComponent(Vue, RadioButton);
  }
};

const Rate$1 = defineComponent({
  name: "BRate",
  components: {
    BIcon
  },
  props: {
    modelValue: {
      type: Number,
      default: 0
    },
    max: {
      type: Number,
      default: 5
    },
    icon: {
      type: String,
      default: "star"
    },
    iconPack: String,
    size: String,
    spaced: Boolean,
    rtl: Boolean,
    disabled: Boolean,
    showScore: Boolean,
    showText: Boolean,
    customText: String,
    texts: Array,
    locale: {
      type: [String, Array],
      default: () => {
        return config.defaultLocale;
      }
    }
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    change: (newValue) => true,
    "update:modelValue": (newValue) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      newValue: this.modelValue,
      hoverValue: 0
    };
  },
  computed: {
    halfStyle() {
      return `width:${this.valueDecimal}%`;
    },
    showMe() {
      let result = "";
      if (this.showScore) {
        result = this.disabled ? this.modelValue.toString() : this.newValue.toString();
        if (Number(result) === 0) {
          result = "";
        } else {
          result = new Intl.NumberFormat(this.locale).format(this.modelValue);
        }
      } else if (this.showText && this.texts) {
        result = this.texts[Math.ceil(this.newValue) - 1];
      }
      return result;
    },
    valueDecimal() {
      return this.modelValue * 100 - Math.floor(this.modelValue) * 100;
    }
  },
  watch: {
    // When v-model is changed set the new value.
    modelValue(value) {
      this.newValue = value;
    }
  },
  methods: {
    resetNewValue() {
      if (this.disabled) return;
      this.hoverValue = 0;
    },
    previewRate(index, event) {
      if (this.disabled) return;
      this.hoverValue = index;
      event.stopPropagation();
    },
    confirmValue(index) {
      if (this.disabled) return;
      this.newValue = index;
      this.$emit("change", this.newValue);
      this.$emit("update:modelValue", this.newValue);
    },
    checkHalf(index) {
      const showWhenDisabled = this.disabled && this.valueDecimal > 0 && index - 1 < this.modelValue && index > this.modelValue;
      return showWhenDisabled;
    },
    rateClass(index) {
      let output = "";
      const currentValue = this.hoverValue !== 0 ? this.hoverValue : this.newValue;
      if (index <= currentValue) {
        output = "set-on";
      } else if (this.disabled && Math.ceil(this.modelValue) === index) {
        output = "set-half";
      }
      return output;
    }
  }
});

const _hoisted_1$f = ["onMousemove", "onClick"];
const _hoisted_2$c = { key: 0 };
function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["rate", { "is-disabled": _ctx.disabled, "is-spaced": _ctx.spaced, "is-rtl": _ctx.rtl }])
    },
    [
      (openBlock(true), createElementBlock(
        Fragment,
        null,
        renderList(_ctx.max, (item, index) => {
          return openBlock(), createElementBlock("div", {
            class: normalizeClass(["rate-item", _ctx.rateClass(item)]),
            key: index,
            onMousemove: ($event) => _ctx.previewRate(item, $event),
            onMouseleave: _cache[0] || (_cache[0] = (...args) => _ctx.resetNewValue && _ctx.resetNewValue(...args)),
            onClick: withModifiers(($event) => _ctx.confirmValue(item), ["prevent"])
          }, [
            createVNode(_component_b_icon, {
              pack: _ctx.iconPack,
              icon: _ctx.icon,
              size: _ctx.size
            }, null, 8, ["pack", "icon", "size"]),
            _ctx.checkHalf(item) ? (openBlock(), createBlock(_component_b_icon, {
              key: 0,
              class: "is-half",
              pack: _ctx.iconPack,
              icon: _ctx.icon,
              size: _ctx.size,
              style: normalizeStyle(_ctx.halfStyle)
            }, null, 8, ["pack", "icon", "size", "style"])) : createCommentVNode("v-if", true)
          ], 42, _hoisted_1$f);
        }),
        128
        /* KEYED_FRAGMENT */
      )),
      _ctx.showText || _ctx.showScore || _ctx.customText ? (openBlock(), createElementBlock(
        "div",
        {
          key: 0,
          class: normalizeClass(["rate-text", _ctx.size])
        },
        [
          createBaseVNode(
            "span",
            null,
            toDisplayString$1(_ctx.showMe),
            1
            /* TEXT */
          ),
          _ctx.customText && !_ctx.showText ? (openBlock(), createElementBlock(
            "span",
            _hoisted_2$c,
            toDisplayString$1(_ctx.customText),
            1
            /* TEXT */
          )) : createCommentVNode("v-if", true)
        ],
        2
        /* CLASS */
      )) : createCommentVNode("v-if", true)
    ],
    2
    /* CLASS */
  );
}
var Rate = /* @__PURE__ */ _export_sfc(Rate$1, [["render", _sfc_render$g]]);

const Plugin$f = {
  install(Vue) {
    registerComponent(Vue, Rate);
  }
};

const Plugin$e = {
  install(Vue) {
    registerComponent(Vue, BSelect);
  }
};

const SKELETON_POSITIONS = ["", "is-centered", "is-right"];
const BSkeleton = (props) => {
  if (!props.active) return;
  const items = [];
  const width = props.width;
  const height = props.height;
  for (let i = 0; i < props.count; i++) {
    items.push(h("div", {
      class: [
        "b-skeleton-item",
        { "is-rounded": props.rounded }
      ],
      key: i,
      style: {
        height: height === void 0 ? null : isNaN(+height) ? height : height + "px",
        width: width === void 0 ? null : isNaN(+width) ? width : width + "px",
        borderRadius: props.circle ? "50%" : null
      }
    }));
  }
  return h(
    "div",
    {
      class: [
        "b-skeleton",
        props.size,
        props.position,
        { "is-animated": props.animated }
      ]
    },
    items
  );
};
BSkeleton.props = {
  active: {
    type: Boolean,
    default: true
  },
  animated: {
    type: Boolean,
    default: true
  },
  width: [Number, String],
  height: [Number, String],
  circle: Boolean,
  rounded: {
    type: Boolean,
    default: true
  },
  count: {
    type: Number,
    default: 1
  },
  position: {
    type: String,
    default: "",
    validator(value) {
      return SKELETON_POSITIONS.indexOf(value) > -1;
    }
  },
  size: String
};

const Plugin$d = {
  install(Vue) {
    registerComponent(Vue, BSkeleton, "BSkeleton");
  }
};

const SIDEBAR_POSITIONS = ["fixed", "absolute", "static"];
const SCROLL_BEHAVIORS = ["clip", "keep"];
var _sfc_main$e = defineComponent({
  name: "BSidebar",
  props: {
    modelValue: Boolean,
    type: [String, Object],
    overlay: Boolean,
    position: {
      type: String,
      default: "fixed",
      validator: (value) => {
        return SIDEBAR_POSITIONS.indexOf(value) >= 0;
      }
    },
    fullheight: Boolean,
    fullwidth: Boolean,
    right: Boolean,
    mobile: {
      type: String
    },
    reduce: Boolean,
    expandOnHover: Boolean,
    expandOnHoverFixed: Boolean,
    delay: {
      type: [Number, null],
      default: () => config.defaultSidebarDelay
    },
    canCancel: {
      type: [Array, Boolean],
      default: () => ["escape", "outside"]
    },
    onCancel: {
      type: Function,
      default: () => {
      }
    },
    scroll: {
      type: String,
      default: () => {
        return config.defaultModalScroll ? config.defaultModalScroll : "clip";
      },
      validator: (value) => {
        return SCROLL_BEHAVIORS.indexOf(value) >= 0;
      }
    }
  },
  emits: {
    close: () => true,
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    "update:modelValue": (_value) => true
  },
  data() {
    return {
      isOpen: this.modelValue,
      isDelayOver: false,
      transitionName: void 0,
      animating: true,
      savedScrollTop: null,
      hasLeaved: false,
      timer: void 0
    };
  },
  computed: {
    rootClasses() {
      return [this.type, {
        "is-fixed": this.isFixed,
        "is-static": this.isStatic,
        "is-absolute": this.isAbsolute,
        "is-fullheight": this.fullheight,
        "is-fullwidth": this.fullwidth,
        "is-right": this.right,
        "is-mini": this.reduce && !this.isDelayOver,
        "is-mini-expand": this.expandOnHover || this.isDelayOver,
        "is-mini-expand-fixed": this.expandOnHover && this.expandOnHoverFixed || this.isDelayOver,
        "is-mini-delayed": this.delay !== null,
        "is-mini-mobile": this.mobile === "reduce",
        "is-hidden-mobile": this.mobile === "hide",
        "is-fullwidth-mobile": this.mobile === "fullwidth"
      }];
    },
    cancelOptions() {
      return typeof this.canCancel === "boolean" ? this.canCancel ? ["escape", "outside"] : [] : this.canCancel;
    },
    isStatic() {
      return this.position === "static";
    },
    isFixed() {
      return this.position === "fixed";
    },
    isAbsolute() {
      return this.position === "absolute";
    }
  },
  watch: {
    modelValue: {
      handler(value) {
        this.isOpen = value;
        if (this.overlay) {
          this.handleScroll();
        }
        const open = this.right ? !value : value;
        this.transitionName = !open ? "slide-prev" : "slide-next";
      },
      immediate: true
    }
  },
  methods: {
    /*
    * Keypress event that is bound to the document.
    */
    keyPress({ key }) {
      if (this.isFixed) {
        if (this.isOpen && (key === "Escape" || key === "Esc")) this.cancel("escape");
      }
    },
    /*
    * Close the Sidebar if canCancel and call the onCancel prop (function).
    */
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    cancel(method, ...args) {
      if (this.cancelOptions.indexOf(method) < 0) return;
      if (this.isStatic) return;
      this.onCancel.call(null, method, ...args);
      this.close();
    },
    /*
    * Call the onCancel prop (function) and emit events
    */
    close() {
      this.isOpen = false;
      this.$emit("close");
      this.$emit("update:modelValue", false);
    },
    /*
     * Close fixed sidebar if clicked outside.
     */
    clickedOutside(event) {
      if (!this.isFixed || !this.isOpen || this.animating) {
        return;
      }
      if (!event.composedPath().includes(this.$refs.sidebarContent)) {
        this.cancel("outside");
      }
    },
    /*
    * Transition before-enter hook
    */
    beforeEnter() {
      this.animating = true;
    },
    /*
    * Transition after-leave hook
    */
    afterEnter() {
      this.animating = false;
    },
    handleScroll() {
      if (typeof window === "undefined") return;
      if (this.scroll === "clip") {
        if (this.modelValue) {
          document.documentElement.classList.add("is-clipped");
        } else {
          document.documentElement.classList.remove("is-clipped");
        }
        return;
      }
      this.savedScrollTop = !this.savedScrollTop ? document.documentElement.scrollTop : this.savedScrollTop;
      if (this.modelValue) {
        document.body.classList.add("is-noscroll");
      } else {
        document.body.classList.remove("is-noscroll");
      }
      if (this.modelValue) {
        document.body.style.top = `-${this.savedScrollTop}px`;
        return;
      }
      document.documentElement.scrollTop = this.savedScrollTop;
      document.body.style.top = "";
      this.savedScrollTop = null;
    },
    onHover() {
      if (this.delay) {
        this.hasLeaved = false;
        this.timer = setTimeout(() => {
          if (!this.hasLeaved) {
            this.isDelayOver = true;
          }
          this.timer = void 0;
        }, this.delay);
      } else {
        this.isDelayOver = false;
      }
    },
    onHoverLeave() {
      this.hasLeaved = true;
      this.timer = void 0;
      this.isDelayOver = false;
    },
    /*
     * Close sidebar if close button is clicked.
     */
    clickedCloseButton() {
      if (this.isFixed) {
        if (this.isOpen && this.fullwidth) {
          this.cancel("outside");
        }
      }
    }
  },
  created() {
    if (typeof window !== "undefined") {
      document.addEventListener("keyup", this.keyPress);
      document.addEventListener("click", this.clickedOutside);
    }
  },
  mounted() {
    if (typeof window !== "undefined") {
      if (this.isFixed) {
        document.body.appendChild(this.$el);
      }
    }
    if (this.overlay && this.modelValue) {
      this.handleScroll();
    }
  },
  beforeUnmount() {
    if (typeof window !== "undefined") {
      document.removeEventListener("keyup", this.keyPress);
      document.removeEventListener("click", this.clickedOutside);
      if (this.overlay) {
        document.documentElement.classList.remove("is-clipped");
        const savedScrollTop = !this.savedScrollTop ? document.documentElement.scrollTop : this.savedScrollTop;
        document.body.classList.remove("is-noscroll");
        document.documentElement.scrollTop = savedScrollTop;
        document.body.style.top = "";
      }
    }
    if (this.isFixed) {
      removeElement(this.$el);
    }
    clearTimeout(this.timer);
  }
});

const _hoisted_1$e = { class: "b-sidebar" };
const _hoisted_2$b = {
  key: 0,
  class: "sidebar-background"
};
function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", _hoisted_1$e, [
    _ctx.overlay && _ctx.isOpen ? (openBlock(), createElementBlock("div", _hoisted_2$b)) : createCommentVNode("v-if", true),
    createVNode(Transition, {
      name: _ctx.transitionName,
      onBeforeEnter: _ctx.beforeEnter,
      onAfterEnter: _ctx.afterEnter,
      persisted: ""
    }, {
      default: withCtx(() => [
        withDirectives(createBaseVNode(
          "div",
          {
            ref: "sidebarContent",
            class: normalizeClass(["sidebar-content navbar", _ctx.rootClasses]),
            onMouseenter: _cache[1] || (_cache[1] = (...args) => _ctx.onHover && _ctx.onHover(...args)),
            onMouseleave: _cache[2] || (_cache[2] = (...args) => _ctx.onHoverLeave && _ctx.onHoverLeave(...args))
          },
          [
            _ctx.fullwidth ? (openBlock(), createElementBlock("button", {
              key: 0,
              type: "button",
              onClick: _cache[0] || (_cache[0] = (...args) => _ctx.clickedCloseButton && _ctx.clickedCloseButton(...args)),
              class: "modal-close is-large sidebar-close",
              "aria-label": "Close"
            })) : createCommentVNode("v-if", true),
            renderSlot(_ctx.$slots, "default")
          ],
          34
          /* CLASS, NEED_HYDRATION */
        ), [
          [vShow, _ctx.isOpen]
        ])
      ]),
      _: 3
      /* FORWARDED */
    }, 8, ["name", "onBeforeEnter", "onAfterEnter"])
  ]);
}
var Sidebar = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$f]]);

const Plugin$c = {
  install(Vue) {
    registerComponent(Vue, Sidebar);
  }
};

const DISPLAY_FORMATS = ["raw", "percent"];

var _sfc_main$d = defineComponent({
  name: "BSliderThumb",
  components: {
    BTooltip: Tooltip
  },
  mixins: [CompatFallthroughMixin],
  props: {
    modelValue: {
      type: Number,
      default: 0
    },
    type: {
      type: String,
      default: ""
    },
    tooltip: {
      type: Boolean,
      default: true
    },
    indicator: {
      type: Boolean,
      default: false
    },
    customFormatter: Function,
    format: {
      type: String,
      default: "raw",
      validator: (value) => {
        return DISPLAY_FORMATS.indexOf(value) >= 0;
      }
    },
    locale: {
      type: [String, Array],
      default: () => {
        return config.defaultLocale;
      }
    },
    tooltipAlways: {
      type: Boolean,
      default: false
    }
  },
  emits: {
    dragend: () => true,
    dragstart: () => true,
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    "update:modelValue": (_value) => true
  },
  data() {
    return {
      isFocused: false,
      dragging: false,
      startX: 0,
      startPosition: 0,
      newPosition: null,
      oldValue: this.modelValue
    };
  },
  computed: {
    parent() {
      return this.$parent;
    },
    disabled() {
      return this.parent.disabled;
    },
    max() {
      return this.parent.max;
    },
    min() {
      return this.parent.min;
    },
    step() {
      return this.parent.step;
    },
    precision() {
      return this.parent.precision;
    },
    currentPosition() {
      return `${(this.modelValue - this.min) / (this.max - this.min) * 100}%`;
    },
    wrapperStyle() {
      return { left: this.currentPosition };
    },
    formattedValue() {
      if (typeof this.customFormatter !== "undefined") {
        return this.customFormatter(this.modelValue);
      }
      if (this.format === "percent") {
        return new Intl.NumberFormat(
          this.locale,
          {
            style: "percent"
          }
        ).format((this.modelValue - this.min) / (this.max - this.min));
      }
      return new Intl.NumberFormat(this.locale).format(this.modelValue);
    }
  },
  methods: {
    onFocus() {
      this.isFocused = true;
    },
    onBlur() {
      this.isFocused = false;
    },
    onButtonDown(event) {
      if (this.disabled) return;
      event.preventDefault();
      this.onDragStart(event);
      if (typeof window !== "undefined") {
        document.addEventListener("mousemove", this.onDragging);
        document.addEventListener("touchmove", this.onDragging);
        document.addEventListener("mouseup", this.onDragEnd);
        document.addEventListener("touchend", this.onDragEnd);
        document.addEventListener("contextmenu", this.onDragEnd);
      }
    },
    onLeftKeyDown() {
      if (this.disabled || this.modelValue === this.min) return;
      this.newPosition = parseFloat(this.currentPosition) - this.step / (this.max - this.min) * 100;
      this.setPosition(this.newPosition);
      this.parent.emitValue("change");
    },
    onRightKeyDown() {
      if (this.disabled || this.modelValue === this.max) return;
      this.newPosition = parseFloat(this.currentPosition) + this.step / (this.max - this.min) * 100;
      this.setPosition(this.newPosition);
      this.parent.emitValue("change");
    },
    onHomeKeyDown() {
      if (this.disabled || this.modelValue === this.min) return;
      this.newPosition = 0;
      this.setPosition(this.newPosition);
      this.parent.emitValue("change");
    },
    onEndKeyDown() {
      if (this.disabled || this.modelValue === this.max) return;
      this.newPosition = 100;
      this.setPosition(this.newPosition);
      this.parent.emitValue("change");
    },
    onDragStart(event) {
      this.dragging = true;
      this.$emit("dragstart");
      this.startX = event.type === "touchstart" ? event.touches[0].clientX : event.clientX;
      this.startPosition = parseFloat(this.currentPosition);
      this.newPosition = this.startPosition;
    },
    onDragging(event) {
      if (this.dragging) {
        const clientX = event.type === "touchmove" ? event.touches[0].clientX : event.clientX;
        const diff = (clientX - this.startX) / this.parent.sliderSize() * 100;
        this.newPosition = this.startPosition + diff;
        this.setPosition(this.newPosition);
      }
    },
    onDragEnd() {
      this.dragging = false;
      this.$emit("dragend");
      if (this.modelValue !== this.oldValue) {
        this.parent.emitValue("change");
      }
      this.setPosition(this.newPosition);
      if (typeof window !== "undefined") {
        document.removeEventListener("mousemove", this.onDragging);
        document.removeEventListener("touchmove", this.onDragging);
        document.removeEventListener("mouseup", this.onDragEnd);
        document.removeEventListener("touchend", this.onDragEnd);
        document.removeEventListener("contextmenu", this.onDragEnd);
      }
    },
    setPosition(percent) {
      if (percent === null || isNaN(percent)) return;
      if (percent < 0) {
        percent = 0;
      } else if (percent > 100) {
        percent = 100;
      }
      const stepLength = 100 / ((this.max - this.min) / this.step);
      const steps = Math.round(percent / stepLength);
      let value = steps * stepLength / 100 * (this.max - this.min) + this.min;
      value = parseFloat(value.toFixed(this.precision));
      this.$emit("update:modelValue", value);
      if (!this.dragging && value !== this.oldValue) {
        this.oldValue = value;
      }
    }
  },
  beforeUnmount() {
    document.removeEventListener("mousemove", this.onDragging);
    document.removeEventListener("touchmove", this.onDragging);
    document.removeEventListener("mouseup", this.onDragEnd);
    document.removeEventListener("touchend", this.onDragEnd);
    document.removeEventListener("contextmenu", this.onDragEnd);
  }
});

const _hoisted_1$d = ["tabindex"];
const _hoisted_2$a = { key: 0 };
function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_tooltip = resolveComponent("b-tooltip");
  return openBlock(), createElementBlock(
    "div",
    mergeProps({
      class: ["b-slider-thumb-wrapper", { "is-dragging": _ctx.dragging, "has-indicator": _ctx.indicator }],
      style: _ctx.wrapperStyle
    }, _ctx.rootAttrs),
    [
      createVNode(_component_b_tooltip, {
        label: _ctx.formattedValue,
        type: _ctx.type,
        always: _ctx.dragging || _ctx.isFocused || _ctx.tooltipAlways,
        active: !_ctx.disabled && _ctx.tooltip
      }, {
        default: withCtx(() => [
          createBaseVNode("div", mergeProps({
            class: "b-slider-thumb",
            tabindex: _ctx.disabled ? void 0 : 0
          }, _ctx.fallthroughAttrs, {
            onMousedown: _cache[0] || (_cache[0] = (...args) => _ctx.onButtonDown && _ctx.onButtonDown(...args)),
            onTouchstart: _cache[1] || (_cache[1] = (...args) => _ctx.onButtonDown && _ctx.onButtonDown(...args)),
            onFocus: _cache[2] || (_cache[2] = (...args) => _ctx.onFocus && _ctx.onFocus(...args)),
            onBlur: _cache[3] || (_cache[3] = (...args) => _ctx.onBlur && _ctx.onBlur(...args)),
            onKeydown: [
              _cache[4] || (_cache[4] = withKeys(withModifiers((...args) => _ctx.onLeftKeyDown && _ctx.onLeftKeyDown(...args), ["prevent"]), ["left"])),
              _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => _ctx.onRightKeyDown && _ctx.onRightKeyDown(...args), ["prevent"]), ["right"])),
              _cache[6] || (_cache[6] = withKeys(withModifiers((...args) => _ctx.onLeftKeyDown && _ctx.onLeftKeyDown(...args), ["prevent"]), ["down"])),
              _cache[7] || (_cache[7] = withKeys(withModifiers((...args) => _ctx.onRightKeyDown && _ctx.onRightKeyDown(...args), ["prevent"]), ["up"])),
              _cache[8] || (_cache[8] = withKeys(withModifiers((...args) => _ctx.onHomeKeyDown && _ctx.onHomeKeyDown(...args), ["prevent"]), ["home"])),
              _cache[9] || (_cache[9] = withKeys(withModifiers((...args) => _ctx.onEndKeyDown && _ctx.onEndKeyDown(...args), ["prevent"]), ["end"]))
            ]
          }), [
            _ctx.indicator ? (openBlock(), createElementBlock(
              "span",
              _hoisted_2$a,
              toDisplayString$1(_ctx.formattedValue),
              1
              /* TEXT */
            )) : createCommentVNode("v-if", true)
          ], 16, _hoisted_1$d)
        ]),
        _: 1
        /* STABLE */
      }, 8, ["label", "type", "always", "active"])
    ],
    16
    /* FULL_PROPS */
  );
}
var BSliderThumb = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$e]]);

var _sfc_main$c = defineComponent({
  name: "BSliderTick",
  props: {
    value: {
      type: Number,
      default: 0
    }
  },
  computed: {
    parent() {
      return this.$parent;
    },
    position() {
      const pos = (this.value - this.parent.min) / (this.parent.max - this.parent.min) * 100;
      return pos >= 0 && pos <= 100 ? pos : 0;
    },
    hidden() {
      return this.value === this.parent.min || this.value === this.parent.max;
    }
  },
  methods: {
    getTickStyle(position) {
      return { left: position + "%" };
    }
  },
  created() {
    if (!this.parent.$data._isSlider) {
      throw new Error("You should wrap bSliderTick on a bSlider");
    }
  }
});

const _hoisted_1$c = {
  key: 0,
  class: "b-slider-tick-label"
};
function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["b-slider-tick", { "is-tick-hidden": _ctx.hidden }]),
      style: normalizeStyle(_ctx.getTickStyle(_ctx.position))
    },
    [
      _ctx.$slots.default ? (openBlock(), createElementBlock("span", _hoisted_1$c, [
        renderSlot(_ctx.$slots, "default")
      ])) : createCommentVNode("v-if", true)
    ],
    6
    /* CLASS, STYLE */
  );
}
var SliderTick = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$d]]);

var _sfc_main$b = defineComponent({
  name: "BSlider",
  components: {
    BSliderThumb,
    BSliderTick: SliderTick
  },
  props: {
    modelValue: {
      type: [Number, Array],
      default: 0
    },
    min: {
      type: Number,
      default: 0
    },
    max: {
      type: Number,
      default: 100
    },
    step: {
      type: Number,
      default: 1
    },
    type: {
      type: String,
      default: "is-primary"
    },
    size: String,
    ticks: {
      type: Boolean,
      default: false
    },
    tooltip: {
      type: Boolean,
      default: true
    },
    tooltipType: String,
    rounded: {
      type: Boolean,
      default: false
    },
    disabled: {
      type: Boolean,
      default: false
    },
    lazy: {
      type: Boolean,
      default: false
    },
    customFormatter: Function,
    ariaLabel: [String, Array],
    biggerSliderFocus: {
      type: Boolean,
      default: false
    },
    indicator: {
      type: Boolean,
      default: false
    },
    format: {
      type: String,
      default: "raw",
      validator: (value) => {
        return DISPLAY_FORMATS.indexOf(value) >= 0;
      }
    },
    locale: {
      type: [String, Array],
      default: () => {
        return config.defaultLocale;
      }
    },
    tooltipAlways: {
      type: Boolean,
      default: false
    }
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    change: (_value) => true,
    dragend: () => true,
    dragging: (_value) => true,
    dragstart: () => true,
    "update:modelValue": (_value) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      value1: void 0,
      value2: void 0,
      // internal is used to update value1 and value2 with a single shot.
      // internal is also used to stop unnecessary propagation of update.
      internal: {
        value1: void 0,
        value2: void 0
      },
      dragging: false,
      isRange: false,
      isThumbReversed: false,
      isTrackClickDisabled: false,
      _isSlider: true,
      // Used by Thumb and Tick
      timeOutID: void 0
    };
  },
  computed: {
    newTooltipType() {
      return this.tooltipType ? this.tooltipType : this.type;
    },
    tickValues() {
      if (!this.ticks || this.min > this.max || this.step === 0) return [];
      const result = [];
      for (let i = this.min + this.step; i < this.max; i = i + this.step) {
        result.push(i);
      }
      return result;
    },
    minValue() {
      return Math.min(this.value1, this.value2);
    },
    maxValue() {
      return Math.max(this.value1, this.value2);
    },
    barSize() {
      return this.isRange ? `${100 * (this.maxValue - this.minValue) / (this.max - this.min)}%` : `${100 * (this.value1 - this.min) / (this.max - this.min)}%`;
    },
    barStart() {
      return this.isRange ? `${100 * (this.minValue - this.min) / (this.max - this.min)}%` : "0%";
    },
    precision() {
      const precisions = [this.min, this.max, this.step].map((item) => {
        const decimal = ("" + item).split(".")[1];
        return decimal ? decimal.length : 0;
      });
      return Math.max(...precisions);
    },
    barStyle() {
      return {
        width: this.barSize,
        left: this.barStart
      };
    },
    rootClasses() {
      return {
        "is-rounded": this.rounded,
        "is-dragging": this.dragging,
        "is-disabled": this.disabled,
        "slider-focus": this.biggerSliderFocus
      };
    }
  },
  watch: {
    /*
    * When v-model is changed set the new active step.
    */
    modelValue(value) {
      this.setValues(value);
    },
    internal({ value1, value2 }) {
      this.value1 = value1;
      this.value2 = value2;
    },
    value1(newValue) {
      if (this.internal.value1 !== newValue) {
        this.onInternalValueUpdate();
      }
    },
    value2(newValue) {
      if (this.internal.value2 !== newValue) {
        this.onInternalValueUpdate();
      }
    },
    min() {
      this.setValues(this.modelValue);
    },
    max() {
      this.setValues(this.modelValue);
    }
  },
  methods: {
    setValues(newValue) {
      if (this.min > this.max) {
        return;
      }
      if (Array.isArray(newValue)) {
        this.isRange = true;
        const smallValue = typeof newValue[0] !== "number" || isNaN(newValue[0]) ? this.min : bound(newValue[0], this.min, this.max);
        const largeValue = typeof newValue[1] !== "number" || isNaN(newValue[1]) ? this.max : bound(newValue[1], this.min, this.max);
        this.internal = {
          value1: this.isThumbReversed ? largeValue : smallValue,
          value2: this.isThumbReversed ? smallValue : largeValue
        };
      } else {
        this.isRange = false;
        this.internal = {
          value1: isNaN(newValue) ? this.min : bound(newValue, this.min, this.max),
          value2: void 0
        };
      }
    },
    onInternalValueUpdate() {
      if (this.isRange) {
        this.isThumbReversed = this.value1 > this.value2;
      }
      if (!this.lazy || !this.dragging) {
        this.emitValue("update:modelValue");
      }
      if (this.dragging) {
        this.emitValue("dragging");
      }
    },
    sliderSize() {
      return this.$refs.slider.getBoundingClientRect().width;
    },
    onSliderClick(event) {
      if (this.disabled || this.isTrackClickDisabled) return;
      const sliderOffsetLeft = this.$refs.slider.getBoundingClientRect().left;
      const percent = (event.clientX - sliderOffsetLeft) / this.sliderSize() * 100;
      const targetValue = this.min + percent * (this.max - this.min) / 100;
      const diffFirst = Math.abs(targetValue - this.value1);
      if (!this.isRange) {
        if (diffFirst < this.step / 2) return;
        this.$refs.button1.setPosition(percent);
      } else {
        const diffSecond = Math.abs(targetValue - this.value2);
        if (diffFirst <= diffSecond) {
          if (diffFirst < this.step / 2) return;
          this.$refs.button1.setPosition(percent);
        } else {
          if (diffSecond < this.step / 2) return;
          this.$refs.button2.setPosition(percent);
        }
      }
      this.emitValue("change");
    },
    onDragStart() {
      this.dragging = true;
      this.$emit("dragstart");
    },
    onDragEnd() {
      this.isTrackClickDisabled = true;
      this.timeOutID = setTimeout(() => {
        this.isTrackClickDisabled = false;
      }, 0);
      this.dragging = false;
      this.$emit("dragend");
      if (this.lazy) {
        this.emitValue("update:modelValue");
      }
    },
    emitValue(type) {
      const emittedValue = this.isRange ? [this.minValue, this.maxValue] : this.value1;
      switch (type) {
        case "change":
          this.$emit(type, emittedValue);
          break;
        case "dragging":
          this.$emit(type, emittedValue);
          break;
        case "update:modelValue":
          this.$emit(type, emittedValue);
          break;
      }
    }
  },
  created() {
    this.isThumbReversed = false;
    this.isTrackClickDisabled = false;
    this.setValues(this.modelValue);
  },
  beforeUnmount() {
    clearTimeout(this.timeOutID);
  }
});

const _hoisted_1$b = {
  class: "b-slider-track",
  ref: "slider"
};
function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_slider_tick = resolveComponent("b-slider-tick");
  const _component_b_slider_thumb = resolveComponent("b-slider-thumb");
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["b-slider", [_ctx.size, _ctx.type, _ctx.rootClasses]]),
      onClick: _cache[2] || (_cache[2] = (...args) => _ctx.onSliderClick && _ctx.onSliderClick(...args))
    },
    [
      createBaseVNode(
        "div",
        _hoisted_1$b,
        [
          createBaseVNode(
            "div",
            {
              class: "b-slider-fill",
              style: normalizeStyle(_ctx.barStyle)
            },
            null,
            4
            /* STYLE */
          ),
          _ctx.ticks ? (openBlock(true), createElementBlock(
            Fragment,
            { key: 0 },
            renderList(_ctx.tickValues, (val, key) => {
              return openBlock(), createBlock(_component_b_slider_tick, {
                key,
                value: val
              }, null, 8, ["value"]);
            }),
            128
            /* KEYED_FRAGMENT */
          )) : createCommentVNode("v-if", true),
          renderSlot(_ctx.$slots, "default"),
          createVNode(_component_b_slider_thumb, {
            "tooltip-always": _ctx.tooltipAlways,
            modelValue: _ctx.value1,
            "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.value1 = $event),
            type: _ctx.newTooltipType,
            tooltip: _ctx.tooltip,
            "custom-formatter": _ctx.customFormatter,
            indicator: _ctx.indicator,
            format: _ctx.format,
            locale: _ctx.locale,
            ref: "button1",
            role: "slider",
            "aria-valuenow": _ctx.value1,
            "aria-valuemin": _ctx.min,
            "aria-valuemax": _ctx.max,
            "aria-orientation": "horizontal",
            "aria-label": Array.isArray(_ctx.ariaLabel) ? _ctx.ariaLabel[0] : _ctx.ariaLabel,
            "aria-disabled": _ctx.disabled || void 0,
            onDragstart: _ctx.onDragStart,
            onDragend: _ctx.onDragEnd
          }, null, 8, ["tooltip-always", "modelValue", "type", "tooltip", "custom-formatter", "indicator", "format", "locale", "aria-valuenow", "aria-valuemin", "aria-valuemax", "aria-label", "aria-disabled", "onDragstart", "onDragend"]),
          _ctx.isRange ? (openBlock(), createBlock(_component_b_slider_thumb, {
            key: 1,
            "tooltip-always": _ctx.tooltipAlways,
            modelValue: _ctx.value2,
            "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.value2 = $event),
            type: _ctx.newTooltipType,
            tooltip: _ctx.tooltip,
            "custom-formatter": _ctx.customFormatter,
            indicator: _ctx.indicator,
            format: _ctx.format,
            locale: _ctx.locale,
            ref: "button2",
            role: "slider",
            "aria-valuenow": _ctx.value2,
            "aria-valuemin": _ctx.min,
            "aria-valuemax": _ctx.max,
            "aria-orientation": "horizontal",
            "aria-label": Array.isArray(_ctx.ariaLabel) ? _ctx.ariaLabel[1] : "",
            "aria-disabled": _ctx.disabled || void 0,
            onDragstart: _ctx.onDragStart,
            onDragend: _ctx.onDragEnd
          }, null, 8, ["tooltip-always", "modelValue", "type", "tooltip", "custom-formatter", "indicator", "format", "locale", "aria-valuenow", "aria-valuemin", "aria-valuemax", "aria-label", "aria-disabled", "onDragstart", "onDragend"])) : createCommentVNode("v-if", true)
        ],
        512
        /* NEED_PATCH */
      )
    ],
    2
    /* CLASS */
  );
}
var Slider = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$c]]);

const Plugin$b = {
  install(Vue) {
    registerComponent(Vue, Slider);
    registerComponent(Vue, SliderTick);
  }
};

const Snackbar$1 = defineComponent({
  name: "BSnackbar",
  mixins: [NoticeMixin],
  props: {
    actionText: {
      type: String,
      default: "OK"
    },
    onAction: {
      type: Function,
      default: () => {
      }
    },
    cancelText: {
      type: String,
      default: null
    }
  },
  data() {
    return {
      newDuration: this.duration || config.defaultSnackbarDuration
    };
  },
  methods: {
    /*
    * Click listener.
    * Call action prop before closing (from Mixin).
    */
    action() {
      this.onAction();
      this.close();
    }
  }
});

const _hoisted_1$a = ["role"];
const _hoisted_2$9 = ["innerHTML"];
const _hoisted_3$7 = { class: "button" };
const _hoisted_4$4 = { class: "button" };
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createBlock(Transition, {
    "enter-active-class": _ctx.transition.enter,
    "leave-active-class": _ctx.transition.leave,
    persisted: ""
  }, {
    default: withCtx(() => [
      withDirectives(createBaseVNode("div", {
        class: normalizeClass(["snackbar", [_ctx.type, _ctx.position]]),
        onMouseenter: _cache[2] || (_cache[2] = (...args) => _ctx.pause && _ctx.pause(...args)),
        onMouseleave: _cache[3] || (_cache[3] = (...args) => _ctx.removePause && _ctx.removePause(...args)),
        role: _ctx.actionText ? "alertdialog" : "alert"
      }, [
        _ctx.$slots.default ? renderSlot(_ctx.$slots, "default", { key: 0 }) : (openBlock(), createElementBlock(
          Fragment,
          { key: 1 },
          [
            createCommentVNode(" eslint-disable-next-line vue/no-v-html "),
            createBaseVNode("div", {
              class: "text",
              innerHTML: _ctx.message
            }, null, 8, _hoisted_2$9)
          ],
          64
          /* STABLE_FRAGMENT */
        )),
        _ctx.cancelText ? (openBlock(), createElementBlock("div", {
          key: 2,
          class: "action is-light is-cancel",
          onClick: _cache[0] || (_cache[0] = (...args) => _ctx.close && _ctx.close(...args))
        }, [
          createBaseVNode(
            "button",
            _hoisted_3$7,
            toDisplayString$1(_ctx.cancelText),
            1
            /* TEXT */
          )
        ])) : createCommentVNode("v-if", true),
        _ctx.actionText ? (openBlock(), createElementBlock(
          "div",
          {
            key: 3,
            class: normalizeClass(["action", _ctx.type]),
            onClick: _cache[1] || (_cache[1] = (...args) => _ctx.action && _ctx.action(...args))
          },
          [
            createBaseVNode(
              "button",
              _hoisted_4$4,
              toDisplayString$1(_ctx.actionText),
              1
              /* TEXT */
            )
          ],
          2
          /* CLASS */
        )) : createCommentVNode("v-if", true)
      ], 42, _hoisted_1$a), [
        [vShow, _ctx.isActive]
      ])
    ]),
    _: 3
    /* FORWARDED */
  }, 8, ["enter-active-class", "leave-active-class"]);
}
var Snackbar = /* @__PURE__ */ _export_sfc(Snackbar$1, [["render", _sfc_render$b]]);

var __defProp$2 = Object.defineProperty;
var __defProps$2 = Object.defineProperties;
var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$2 = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp$2.call(b, prop))
      __defNormalProp$2(a, prop, b[prop]);
  if (__getOwnPropSymbols$2)
    for (var prop of __getOwnPropSymbols$2(b)) {
      if (__propIsEnum$2.call(b, prop))
        __defNormalProp$2(a, prop, b[prop]);
    }
  return a;
};
var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
var __objRest$1 = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols$2)
    for (var prop of __getOwnPropSymbols$2(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var __publicField$1 = (obj, key, value) => __defNormalProp$2(obj, key + "" , value);
class SnackbarProgrammatic {
  // may be undefined in the testing environment
  constructor(app) {
    __publicField$1(this, "app");
    this.app = app;
  }
  open(params) {
    if (typeof params === "string") {
      params = {
        message: params
      };
    }
    let slot;
    let _a = params, { message } = _a, restParams = __objRest$1(_a, ["message"]);
    if (typeof message !== "string") {
      slot = message;
      message = void 0;
    }
    const propsData = __spreadValues$2({
      type: "is-success",
      position: config.defaultSnackbarPosition || "is-bottom-right",
      queue: true,
      message
    }, restParams);
    const container = document.createElement("div");
    const vueInstance = createApp({
      data() {
        return {
          snackbarVNode: null
        };
      },
      methods: {
        close() {
          const snackbar = getComponentFromVNode(this.snackbarVNode);
          if (snackbar) {
            snackbar.close();
          }
        }
      },
      render() {
        this.snackbarVNode = h(
          Snackbar,
          __spreadProps$2(__spreadValues$2({}, propsData), {
            onClose() {
              if (typeof propsData.onClose === "function") {
                propsData.onClose();
              }
              setTimeout(() => {
                vueInstance.unmount();
              }, 150);
            }
          }),
          slot != null ? { default: () => slot } : void 0
        );
        return this.snackbarVNode;
      }
    });
    if (this.app) {
      copyAppContext(this.app, vueInstance);
    } else {
      vueInstance.config.globalProperties.$buefy = {};
    }
    return vueInstance.mount(container);
  }
}
const snackbarInjectionKey = Symbol("Buefy Snackbar");
function useSnackbar() {
  return inject(snackbarInjectionKey);
}
const Plugin$a = {
  install(Vue) {
    registerComponentProgrammatic(Vue, "snackbar", new SnackbarProgrammatic(Vue), snackbarInjectionKey);
  }
};

var BSlotComponent = defineComponent({
  name: "BSlotComponent",
  props: {
    component: {
      type: Object,
      required: true
    },
    name: {
      type: String,
      default: "default"
    },
    scoped: {
      type: Boolean
    },
    props: {
      type: Object
    },
    tag: {
      type: [String, Object],
      default: "div"
    }
  },
  methods: {
    refresh() {
      this.$forceUpdate();
    }
  },
  render() {
    return h(
      this.tag,
      {},
      this.component.$slots ? this.scoped ? this.component.$slots[this.name](this.props) : this.component.$slots[this.name]() : void 0
    );
  }
});

var TabbedMixin = (cmp) => defineComponent({
  components: {
    BIcon,
    BSlotComponent
  },
  mixins: [ProviderParentMixin(cmp, Sorted$1)],
  props: {
    modelValue: {
      type: [String, Number, null],
      default: void 0
    },
    size: String,
    animated: {
      type: Boolean,
      default: true
    },
    animation: String,
    animateInitially: Boolean,
    vertical: {
      type: Boolean,
      default: false
    },
    position: String,
    destroyOnHide: {
      type: Boolean,
      default: false
    }
  },
  emits: {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    "update:modelValue": (_value) => true
  },
  data() {
    return {
      activeId: this.modelValue,
      // Internal state
      defaultSlots: [],
      contentHeight: 0,
      isTransitioning: false
    };
  },
  computed: {
    activeItem() {
      const childItems = this.childItems;
      return this.activeId === void 0 ? this.items[0] : this.activeId === null ? null : childItems.find((i) => i.uniqueValue === this.activeId);
    },
    items() {
      return this.sortedItems;
    }
  },
  watch: {
    /*
     * When v-model is changed set the new active tab.
     */
    modelValue(value) {
      if (typeof value === "number") {
        value = bound(value, 0, this.items.length - 1);
        this.activeId = this.items[value].uniqueValue;
      } else {
        this.activeId = value;
      }
    },
    /*
     * Sync internal state with external state
     */
    activeId(val, oldValue) {
      const oldTab = oldValue !== void 0 && oldValue !== null ? this.childItems.find((i) => i.uniqueValue === oldValue) : null;
      if (oldTab && this.activeItem) {
        oldTab.deactivate(this.activeItem.index);
        this.activeItem.activate(oldTab.index);
      }
      val = this.activeItem ? typeof this.modelValue === "number" ? this.items.indexOf(this.activeItem) : this.activeItem.uniqueValue : void 0;
      if (val !== this.modelValue) {
        this.$emit("update:modelValue", val);
      }
    }
  },
  methods: {
    /*
    * Child click listener, emit input event and change active child.
    */
    childClick(child) {
      this.activeId = child.uniqueValue;
    },
    getNextItemIdx(fromIdx, skipDisabled = false) {
      let nextItemIdx = null;
      for (let i = 0; i < this.items.length; i++) {
        const item = this.items[i];
        if (fromIdx < item.index && (item.visible && (!skipDisabled || skipDisabled && !item.disabled))) {
          nextItemIdx = item.index;
          break;
        }
      }
      return nextItemIdx;
    },
    getPrevItemIdx(fromIdx, skipDisabled = false) {
      let prevItemIdx = null;
      for (let i = this.items.length - 1; i >= 0; i--) {
        const item = this.items[i];
        if (item.index < fromIdx && (item.visible && (!skipDisabled || skipDisabled && !item.disabled))) {
          prevItemIdx = item.index;
          break;
        }
      }
      return prevItemIdx;
    }
  },
  mounted() {
    if (typeof this.modelValue === "number") {
      const value = bound(this.modelValue, 0, this.items.length - 1);
      this.activeId = this.items[value].uniqueValue;
    } else {
      this.activeId = this.modelValue;
    }
  }
});

const LABEL_POSITIONS = ["bottom", "right", "left"];
const MOBILE_MODES = ["minimalist", "compact"];
var _sfc_main$a = defineComponent({
  name: "BSteps",
  components: {
    BIcon
  },
  mixins: [TabbedMixin("step")],
  props: {
    type: [String, Object],
    iconPack: String,
    iconPrev: {
      type: String,
      default: () => {
        return config.defaultIconPrev;
      }
    },
    iconNext: {
      type: String,
      default: () => {
        return config.defaultIconNext;
      }
    },
    hasNavigation: {
      type: Boolean,
      default: true
    },
    labelPosition: {
      type: String,
      validator(value) {
        return LABEL_POSITIONS.indexOf(value) > -1;
      },
      default: "bottom"
    },
    rounded: {
      type: Boolean,
      default: true
    },
    mobileMode: {
      type: String,
      validator(value) {
        return MOBILE_MODES.indexOf(value) > -1;
      },
      default: "minimalist"
    },
    ariaNextLabel: String,
    ariaPreviousLabel: String
  },
  computed: {
    // Override mixin implementation to always have a value
    activeItem() {
      return this.childItems.filter((i) => i.uniqueValue === this.activeId)[0] || this.items[0];
    },
    wrapperClasses() {
      return [
        this.size,
        {
          "is-vertical": this.vertical,
          [this.position]: this.position && this.vertical
        }
      ];
    },
    mainClasses() {
      return [
        this.type,
        {
          "has-label-right": this.labelPosition === "right",
          "has-label-left": this.labelPosition === "left",
          "is-animated": this.animated,
          "is-rounded": this.rounded,
          [`mobile-${this.mobileMode}`]: this.mobileMode !== null
        }
      ];
    },
    /*
     * Check if previous button is available.
     */
    hasPrev() {
      return this.prevItemIdx !== null;
    },
    /*
     * Retrieves the next visible item index
     */
    nextItemIdx() {
      const idx = this.activeItem ? this.activeItem.index : 0;
      return this.getNextItemIdx(idx);
    },
    /*
     * Retrieves the next visible item
     */
    nextItem() {
      let nextItem = null;
      if (this.nextItemIdx !== null) {
        nextItem = this.items.find((i) => i.index === this.nextItemIdx);
      }
      return nextItem;
    },
    /*
    * Retrieves the next visible item index
    */
    prevItemIdx() {
      if (!this.activeItem) {
        return null;
      }
      const idx = this.activeItem.index;
      return this.getPrevItemIdx(idx);
    },
    /*
     * Retrieves the previous visible item
     */
    prevItem() {
      if (!this.activeItem) {
        return null;
      }
      let prevItem = null;
      if (this.prevItemIdx !== null) {
        prevItem = this.items.find((i) => i.index === this.prevItemIdx);
      }
      return prevItem;
    },
    /*
     * Check if next button is available.
     */
    hasNext() {
      return this.nextItemIdx !== null;
    },
    navigationProps() {
      return {
        previous: {
          disabled: !this.hasPrev,
          action: this.prev
        },
        next: {
          disabled: !this.hasNext,
          action: this.next
        }
      };
    }
  },
  methods: {
    /*
     * Return if the step should be clickable or not.
     */
    isItemClickable(stepItem) {
      if (stepItem.clickable === void 0) {
        return stepItem.index < this.activeItem.index;
      }
      return stepItem.clickable;
    },
    /*
     * Previous button click listener.
     */
    prev() {
      if (this.hasPrev) {
        this.activeId = this.prevItem.uniqueValue;
      }
    },
    /*
     * Previous button click listener.
     */
    next() {
      if (this.hasNext) {
        this.activeId = this.nextItem.uniqueValue;
      }
    }
  }
});

const _hoisted_1$9 = { class: "step-items" };
const _hoisted_2$8 = ["onClick"];
const _hoisted_3$6 = { class: "step-marker" };
const _hoisted_4$3 = { key: 1 };
const _hoisted_5$2 = { class: "step-details" };
const _hoisted_6$1 = { class: "step-title" };
const _hoisted_7$1 = {
  key: 0,
  class: "step-navigation"
};
const _hoisted_8$1 = ["disabled", "aria-label"];
const _hoisted_9$1 = ["disabled", "aria-label"];
function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["b-steps", _ctx.wrapperClasses])
    },
    [
      createBaseVNode(
        "nav",
        {
          class: normalizeClass(["steps", _ctx.mainClasses])
        },
        [
          createBaseVNode("ul", _hoisted_1$9, [
            (openBlock(true), createElementBlock(
              Fragment,
              null,
              renderList(_ctx.items, (childItem) => {
                return withDirectives((openBlock(), createElementBlock(
                  "li",
                  {
                    key: childItem.uniqueValue,
                    class: normalizeClass(["step-item", [childItem.type || _ctx.type, childItem.headerClass, {
                      "is-active": childItem.isActive,
                      "is-previous": _ctx.activeItem.index > childItem.index
                    }]])
                  },
                  [
                    createBaseVNode("a", {
                      class: normalizeClass(["step-link", { "is-clickable": _ctx.isItemClickable(childItem) }]),
                      onClick: ($event) => _ctx.isItemClickable(childItem) && _ctx.childClick(childItem)
                    }, [
                      createBaseVNode("div", _hoisted_3$6, [
                        childItem.icon ? (openBlock(), createBlock(_component_b_icon, {
                          key: 0,
                          icon: childItem.icon,
                          pack: childItem.iconPack,
                          size: _ctx.size
                        }, null, 8, ["icon", "pack", "size"])) : childItem.step ? (openBlock(), createElementBlock(
                          "span",
                          _hoisted_4$3,
                          toDisplayString$1(childItem.step),
                          1
                          /* TEXT */
                        )) : createCommentVNode("v-if", true)
                      ]),
                      createBaseVNode("div", _hoisted_5$2, [
                        createBaseVNode(
                          "span",
                          _hoisted_6$1,
                          toDisplayString$1(childItem.label),
                          1
                          /* TEXT */
                        )
                      ])
                    ], 10, _hoisted_2$8)
                  ],
                  2
                  /* CLASS */
                )), [
                  [vShow, childItem.visible]
                ]);
              }),
              128
              /* KEYED_FRAGMENT */
            ))
          ])
        ],
        2
        /* CLASS */
      ),
      createBaseVNode(
        "section",
        {
          class: normalizeClass(["step-content", { "is-transitioning": _ctx.isTransitioning }])
        },
        [
          renderSlot(_ctx.$slots, "default")
        ],
        2
        /* CLASS */
      ),
      renderSlot(_ctx.$slots, "navigation", {
        previous: _ctx.navigationProps.previous,
        next: _ctx.navigationProps.next
      }, () => [
        _ctx.hasNavigation ? (openBlock(), createElementBlock("nav", _hoisted_7$1, [
          createBaseVNode("a", {
            role: "button",
            class: "pagination-previous",
            disabled: _ctx.navigationProps.previous.disabled || void 0,
            onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.navigationProps.previous.action && _ctx.navigationProps.previous.action(...args), ["prevent"])),
            "aria-label": _ctx.ariaPreviousLabel
          }, [
            createVNode(_component_b_icon, {
              icon: _ctx.iconPrev,
              pack: _ctx.iconPack,
              both: "",
              "aria-hidden": "true"
            }, null, 8, ["icon", "pack"])
          ], 8, _hoisted_8$1),
          createBaseVNode("a", {
            role: "button",
            class: "pagination-next",
            disabled: _ctx.navigationProps.next.disabled || void 0,
            onClick: _cache[1] || (_cache[1] = withModifiers((...args) => _ctx.navigationProps.next.action && _ctx.navigationProps.next.action(...args), ["prevent"])),
            "aria-label": _ctx.ariaNextLabel
          }, [
            createVNode(_component_b_icon, {
              icon: _ctx.iconNext,
              pack: _ctx.iconPack,
              both: "",
              "aria-hidden": "true"
            }, null, 8, ["icon", "pack"])
          ], 8, _hoisted_9$1)
        ])) : createCommentVNode("v-if", true)
      ])
    ],
    2
    /* CLASS */
  );
}
var Steps = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$a]]);

var TabbedChildMixin = (parentCmp) => defineComponent({
  mixins: [InjectedChildMixin(parentCmp, Sorted)],
  props: {
    label: String,
    icon: String,
    iconPack: String,
    visible: {
      type: Boolean,
      default: true
    },
    headerClass: {
      type: [String, Array, Object],
      default: null
    }
  },
  data() {
    return {
      transitionName: null,
      elementClass: "item",
      elementRole: null
    };
  },
  computed: {
    isActive() {
      return this.parent.activeItem === this;
    }
  },
  methods: {
    /*
     * Activate element, alter animation name based on the index.
     */
    activate(oldIndex) {
      this.transitionName = this.index < oldIndex ? this.parent.vertical ? "slide-down" : "slide-next" : this.parent.vertical ? "slide-up" : "slide-prev";
    },
    /*
     * Deactivate element, alter animation name based on the index.
     */
    deactivate(newIndex) {
      this.transitionName = newIndex < this.index ? this.parent.vertical ? "slide-down" : "slide-next" : this.parent.vertical ? "slide-up" : "slide-prev";
    }
  },
  render() {
    var _a;
    if (this.parent.destroyOnHide) {
      if (!this.isActive || !this.visible) {
        return;
      }
    }
    const vnode = withDirectives(
      h(
        "div",
        {
          // NOTE: possible regression of #3272
          // https://github.com/buefy/buefy/issues/3272
          class: this.elementClass,
          role: this.elementRole,
          id: `${this.uniqueValue}-content`,
          "aria-labelledby": this.elementRole ? `${this.uniqueValue}-label` : null,
          tabindex: this.isActive ? 0 : -1
        },
        this.$slots
      ),
      [[vShow, this.isActive && this.visible]]
    );
    if (this.parent.animated) {
      return h(
        Transition,
        {
          name: (_a = this.parent.animation || this.transitionName) != null ? _a : void 0,
          appear: this.parent.animateInitially === true || void 0,
          onBeforeEnter: () => {
            this.parent.isTransitioning = true;
          },
          onAfterEnter: () => {
            this.parent.isTransitioning = false;
          }
        },
        { default: () => vnode }
      );
    }
    return vnode;
  }
});

var _sfc_main$9 = defineComponent({
  name: "BStepItem",
  mixins: [TabbedChildMixin("step")],
  props: {
    step: [String, Number],
    type: [String, Object],
    clickable: {
      type: Boolean,
      default: void 0
    }
  },
  data() {
    return {
      elementClass: "step-item"
    };
  }
});

const Plugin$9 = {
  install(Vue) {
    registerComponent(Vue, Steps);
    registerComponent(Vue, _sfc_main$9);
  }
};

const Switch$1 = defineComponent({
  name: "BSwitch",
  props: {
    modelValue: [String, Number, Boolean, Function, Object, Array, Date],
    nativeValue: [String, Number, Boolean, Function, Object, Array, Date],
    disabled: Boolean,
    type: String,
    passiveType: String,
    name: String,
    required: Boolean,
    size: String,
    ariaLabelledby: String,
    trueValue: {
      type: [String, Number, Boolean, Function, Object, Array, Date],
      default: true
    },
    falseValue: {
      type: [String, Number, Boolean, Function, Object, Array, Date],
      default: false
    },
    rounded: {
      type: Boolean,
      default: () => {
        return config.defaultSwitchRounded;
      }
    },
    outlined: {
      type: Boolean,
      default: false
    },
    leftLabel: {
      type: Boolean,
      default: false
    }
  },
  emits: ["update:modelValue"],
  data() {
    return {
      newValue: this.modelValue,
      isMouseDown: false
    };
  },
  computed: {
    computedValue: {
      get() {
        return this.newValue;
      },
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      set(value) {
        this.newValue = value;
        this.$emit("update:modelValue", value);
      }
    },
    newClass() {
      return [
        this.size,
        {
          "is-disabled": this.disabled,
          "is-rounded": this.rounded,
          "is-outlined": this.outlined,
          "has-left-label": this.leftLabel
        }
      ];
    },
    checkClasses() {
      return [
        { "is-elastic": this.isMouseDown && !this.disabled },
        this.passiveType && `${this.passiveType}-passive`,
        this.type
      ];
    },
    showControlLabel() {
      return !!this.$slots.default;
    },
    disabledOrUndefined() {
      return this.disabled || void 0;
    }
  },
  watch: {
    /*
    * When v-model change, set internal value.
    */
    modelValue(value) {
      this.newValue = value;
    }
  },
  methods: {
    focus() {
      this.$refs.input.focus();
    }
  }
});

const _hoisted_1$8 = ["disabled"];
const _hoisted_2$7 = ["disabled", "name", "required", "value", "true-value", "false-value", "aria-labelledby"];
const _hoisted_3$5 = ["id"];
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("label", {
    class: normalizeClass(["switch", _ctx.newClass]),
    ref: "label",
    disabled: _ctx.disabledOrUndefined,
    onClick: _cache[2] || (_cache[2] = (...args) => _ctx.focus && _ctx.focus(...args)),
    onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers(($event) => _ctx.$refs.label.click(), ["prevent"]), ["enter"])),
    onMousedown: _cache[4] || (_cache[4] = ($event) => _ctx.isMouseDown = true),
    onMouseup: _cache[5] || (_cache[5] = ($event) => _ctx.isMouseDown = false),
    onMouseout: _cache[6] || (_cache[6] = ($event) => _ctx.isMouseDown = false),
    onBlur: _cache[7] || (_cache[7] = ($event) => _ctx.isMouseDown = false)
  }, [
    withDirectives(createBaseVNode("input", {
      "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.computedValue = $event),
      type: "checkbox",
      ref: "input",
      onClick: _cache[1] || (_cache[1] = withModifiers(() => {
      }, ["stop"])),
      disabled: _ctx.disabledOrUndefined,
      name: _ctx.name,
      required: _ctx.required,
      value: _ctx.nativeValue,
      "true-value": _ctx.trueValue,
      "false-value": _ctx.falseValue,
      "aria-labelledby": _ctx.ariaLabelledby
    }, null, 8, _hoisted_2$7), [
      [vModelCheckbox, _ctx.computedValue]
    ]),
    createBaseVNode(
      "span",
      {
        class: normalizeClass(["check", _ctx.checkClasses])
      },
      null,
      2
      /* CLASS */
    ),
    _ctx.showControlLabel ? (openBlock(), createElementBlock("span", {
      key: 0,
      id: _ctx.ariaLabelledby,
      class: "control-label"
    }, [
      renderSlot(_ctx.$slots, "default")
    ], 8, _hoisted_3$5)) : createCommentVNode("v-if", true)
  ], 42, _hoisted_1$8);
}
var Switch = /* @__PURE__ */ _export_sfc(Switch$1, [["render", _sfc_render$9]]);

const Plugin$8 = {
  install(Vue) {
    registerComponent(Vue, Switch);
  }
};

var _sfc_main$8 = defineComponent({
  name: "BTableMobileSort",
  components: {
    BSelect,
    BIcon
  },
  props: {
    currentSortColumn: Object,
    sortMultipleData: Array,
    isAsc: Boolean,
    columns: Array,
    placeholder: String,
    iconPack: String,
    sortIcon: {
      type: String,
      default: "arrow-up"
    },
    sortIconSize: {
      type: String,
      default: "is-small"
    },
    sortMultiple: {
      type: Boolean,
      default: false
    }
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    removePriority: (_column) => true,
    sort: (_column, _event) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      sortMultipleSelect: null,
      sortMultipleSelectIndex: -1,
      mobileSort: this.currentSortColumn,
      mobileSortIndex: this.columns ? this.columns.indexOf(this.currentSortColumn) : -1,
      defaultEvent: {
        shiftKey: true,
        altKey: true,
        ctrlKey: true
      },
      ignoreSort: false
    };
  },
  computed: {
    showPlaceholder() {
      return !this.columns || !this.columns.some((column) => column === this.mobileSort);
    },
    sortableColumns() {
      return this.columns && this.columns.filter((column) => column.sortable);
    }
  },
  watch: {
    sortMultipleSelect(column) {
      if (this.ignoreSort) {
        this.ignoreSort = false;
      } else {
        this.$emit("sort", column, this.defaultEvent);
      }
    },
    sortMultipleSelectIndex(index) {
      if (index !== -1) {
        this.sortMultipleSelect = this.columns[index];
      } else {
        this.sortMultipleSelect = null;
      }
    },
    mobileSort(column) {
      if (this.currentSortColumn === column) return;
      this.$emit("sort", column, this.defaultEvent);
    },
    mobileSortIndex(index) {
      if (index !== -1) {
        this.mobileSort = this.columns[index];
      }
    },
    currentSortColumn(column) {
      this.mobileSort = column;
      this.mobileSortIndex = this.columns ? this.columns.indexOf(column) : -1;
    },
    columns(newColumns) {
      if (this.sortMultiple) {
        this.sortMultipleSelectIndex = newColumns.indexOf(
          this.sortMultipleSelect
        );
      } else {
        this.mobileSortIndex = newColumns.indexOf(this.mobileSort);
      }
    }
  },
  methods: {
    removePriority() {
      this.$emit("removePriority", this.sortMultipleSelect);
      this.ignoreSort = true;
      const remainingFields = this.sortMultipleData.filter((data) => data.field !== this.sortMultipleSelect.field).map((data) => data.field);
      this.sortMultipleSelectIndex = this.columns.findIndex((column) => remainingFields.includes(column.field));
    },
    getSortingObjectOfColumn(column) {
      return this.sortMultipleData.filter((i) => i.field === column.field)[0];
    },
    columnIsDesc(column) {
      const sortingObject = column && this.getSortingObjectOfColumn(column);
      if (sortingObject) {
        return !!(sortingObject.order && sortingObject.order === "desc");
      }
      return true;
    },
    getLabel(column) {
      const sortingObject = this.getSortingObjectOfColumn(column);
      if (sortingObject) {
        return column.label + "(" + (this.sortMultipleData.indexOf(sortingObject) + 1) + ")";
      }
      return column.label;
    },
    sort() {
      this.$emit("sort", this.sortMultiple ? this.sortMultipleSelect : this.mobileSort, this.defaultEvent);
    }
  }
});

const _hoisted_1$7 = { class: "field table-mobile-sort" };
const _hoisted_2$6 = { class: "field has-addons" };
const _hoisted_3$4 = ["value"];
const _hoisted_4$2 = ["value"];
const _hoisted_5$1 = { class: "control" };
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_select = resolveComponent("b-select");
  const _component_b_icon = resolveComponent("b-icon");
  return openBlock(), createElementBlock("div", _hoisted_1$7, [
    createBaseVNode("div", _hoisted_2$6, [
      _ctx.sortMultiple ? (openBlock(), createBlock(_component_b_select, {
        key: 0,
        modelValue: _ctx.sortMultipleSelectIndex,
        "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.sortMultipleSelectIndex = $event),
        expanded: ""
      }, {
        default: withCtx(() => [
          (openBlock(true), createElementBlock(
            Fragment,
            null,
            renderList(_ctx.sortableColumns, (column, index) => {
              return openBlock(), createElementBlock("option", {
                key: index,
                value: index
              }, [
                createTextVNode(
                  toDisplayString$1(_ctx.getLabel(column)) + " ",
                  1
                  /* TEXT */
                ),
                _ctx.getSortingObjectOfColumn(column) ? (openBlock(), createElementBlock(
                  Fragment,
                  { key: 0 },
                  [
                    _ctx.columnIsDesc(column) ? (openBlock(), createElementBlock(
                      Fragment,
                      { key: 0 },
                      [
                        createTextVNode(" ↓ ")
                      ],
                      64
                      /* STABLE_FRAGMENT */
                    )) : (openBlock(), createElementBlock(
                      Fragment,
                      { key: 1 },
                      [
                        createTextVNode(" ↑ ")
                      ],
                      64
                      /* STABLE_FRAGMENT */
                    ))
                  ],
                  64
                  /* STABLE_FRAGMENT */
                )) : createCommentVNode("v-if", true)
              ], 8, _hoisted_3$4);
            }),
            128
            /* KEYED_FRAGMENT */
          ))
        ]),
        _: 1
        /* STABLE */
      }, 8, ["modelValue"])) : (openBlock(), createBlock(_component_b_select, {
        key: 1,
        modelValue: _ctx.mobileSortIndex,
        "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.mobileSortIndex = $event),
        expanded: ""
      }, {
        default: withCtx(() => [
          _ctx.placeholder ? withDirectives((openBlock(), createElementBlock(
            "option",
            {
              key: 0,
              value: {},
              selected: "",
              disabled: "",
              hidden: ""
            },
            toDisplayString$1(_ctx.placeholder),
            513
            /* TEXT, NEED_PATCH */
          )), [
            [vShow, _ctx.showPlaceholder]
          ]) : createCommentVNode("v-if", true),
          (openBlock(true), createElementBlock(
            Fragment,
            null,
            renderList(_ctx.sortableColumns, (column, index) => {
              return openBlock(), createElementBlock("option", {
                key: index,
                value: index
              }, toDisplayString$1(column.label), 9, _hoisted_4$2);
            }),
            128
            /* KEYED_FRAGMENT */
          ))
        ]),
        _: 1
        /* STABLE */
      }, 8, ["modelValue"])),
      createBaseVNode("div", _hoisted_5$1, [
        _ctx.sortMultiple && _ctx.sortMultipleData.length > 0 ? (openBlock(), createElementBlock(
          Fragment,
          { key: 0 },
          [
            createBaseVNode("button", {
              class: "button is-primary",
              onClick: _cache[2] || (_cache[2] = (...args) => _ctx.sort && _ctx.sort(...args))
            }, [
              createVNode(_component_b_icon, {
                class: normalizeClass({ "is-desc": _ctx.columnIsDesc(_ctx.sortMultipleSelect) }),
                icon: _ctx.sortIcon,
                pack: _ctx.iconPack,
                size: _ctx.sortIconSize,
                both: ""
              }, null, 8, ["class", "icon", "pack", "size"])
            ]),
            createBaseVNode("button", {
              class: "button is-primary",
              onClick: _cache[3] || (_cache[3] = (...args) => _ctx.removePriority && _ctx.removePriority(...args))
            }, [
              createVNode(_component_b_icon, {
                icon: "delete",
                size: _ctx.sortIconSize,
                both: ""
              }, null, 8, ["size"])
            ])
          ],
          64
          /* STABLE_FRAGMENT */
        )) : !_ctx.sortMultiple ? (openBlock(), createElementBlock("button", {
          key: 1,
          class: "button is-primary",
          onClick: _cache[4] || (_cache[4] = (...args) => _ctx.sort && _ctx.sort(...args))
        }, [
          withDirectives(createVNode(_component_b_icon, {
            class: normalizeClass({ "is-desc": !_ctx.isAsc }),
            icon: _ctx.sortIcon,
            pack: _ctx.iconPack,
            size: _ctx.sortIconSize,
            both: ""
          }, null, 8, ["class", "icon", "pack", "size"]), [
            [vShow, _ctx.currentSortColumn === _ctx.mobileSort]
          ])
        ])) : createCommentVNode("v-if", true)
      ])
    ])
  ]);
}
var BTableMobileSort = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$8]]);

var _sfc_main$7 = defineComponent({
  name: "BTablePagination",
  components: {
    BPagination
  },
  props: {
    paginated: Boolean,
    total: [Number, String],
    perPage: [Number, String],
    currentPage: [Number, String],
    paginationSimple: Boolean,
    paginationSize: String,
    rounded: Boolean,
    iconPack: String,
    ariaNextLabel: String,
    ariaPreviousLabel: String,
    ariaPageLabel: String,
    ariaCurrentLabel: String,
    pageInput: Boolean,
    paginationOrder: String,
    pageInputPosition: String,
    debouncePageInput: [Number, String]
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    "page-change": (_page) => true,
    "update:currentPage": (_page) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      newCurrentPage: this.currentPage
    };
  },
  watch: {
    currentPage(newVal) {
      this.newCurrentPage = newVal;
    }
  },
  methods: {
    /*
    * Paginator change listener.
    */
    pageChanged(page) {
      this.newCurrentPage = page > 0 ? page : 1;
      this.$emit("update:currentPage", this.newCurrentPage);
      this.$emit("page-change", this.newCurrentPage);
    }
  }
});

const _hoisted_1$6 = { class: "top level" };
const _hoisted_2$5 = { class: "level-left" };
const _hoisted_3$3 = { class: "level-right" };
const _hoisted_4$1 = {
  key: 0,
  class: "level-item"
};
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_pagination = resolveComponent("b-pagination");
  return openBlock(), createElementBlock("div", _hoisted_1$6, [
    createBaseVNode("div", _hoisted_2$5, [
      renderSlot(_ctx.$slots, "default")
    ]),
    createBaseVNode("div", _hoisted_3$3, [
      _ctx.paginated ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
        createVNode(_component_b_pagination, {
          "icon-pack": _ctx.iconPack,
          total: _ctx.total,
          "per-page": _ctx.perPage,
          simple: _ctx.paginationSimple,
          size: _ctx.paginationSize,
          "model-value": _ctx.newCurrentPage,
          rounded: _ctx.rounded,
          onChange: _ctx.pageChanged,
          "aria-next-label": _ctx.ariaNextLabel,
          "aria-previous-label": _ctx.ariaPreviousLabel,
          "aria-page-label": _ctx.ariaPageLabel,
          "aria-current-label": _ctx.ariaCurrentLabel,
          "page-input": _ctx.pageInput,
          order: _ctx.paginationOrder,
          "page-input-position": _ctx.pageInputPosition,
          "debounce-page-input": _ctx.debouncePageInput
        }, null, 8, ["icon-pack", "total", "per-page", "simple", "size", "model-value", "rounded", "onChange", "aria-next-label", "aria-previous-label", "aria-page-label", "aria-current-label", "page-input", "order", "page-input-position", "debounce-page-input"])
      ])) : createCommentVNode("v-if", true)
    ])
  ]);
}
var BTablePagination = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$7]]);

var __defProp$1 = Object.defineProperty;
var __defProps$1 = Object.defineProperties;
var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues$1 = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp$1.call(b, prop))
      __defNormalProp$1(a, prop, b[prop]);
  if (__getOwnPropSymbols$1)
    for (var prop of __getOwnPropSymbols$1(b)) {
      if (__propIsEnum$1.call(b, prop))
        __defNormalProp$1(a, prop, b[prop]);
    }
  return a;
};
var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
function mockTableColumn(table, column) {
  const defaultProps = {
    label: void 0,
    customKey: void 0,
    field: void 0,
    meta: void 0,
    width: void 0,
    numeric: void 0,
    centered: void 0,
    searchable: void 0,
    sortable: void 0,
    visible: true,
    subheading: void 0,
    customSort: void 0,
    customSearch: void 0,
    sticky: void 0,
    headerSelectable: void 0,
    headerClass: void 0,
    /* eslint-disable @typescript-eslint/no-explicit-any */
    thAttrs: () => ({}),
    tdAttrs: () => ({})
    /* eslint-enable @typescript-eslint/no-explicit-any */
  };
  return __spreadProps$1(__spreadValues$1(__spreadValues$1({}, defaultProps), column), {
    // data
    newKey: column.customKey || column.label,
    _isTableColumn: true,
    // public computed
    get thClasses() {
      const attrs = this.thAttrs(this);
      const classes = [this.headerClass, {
        "is-sortable": this.sortable,
        "is-sticky": this.sticky,
        "is-unselectable": this.isHeaderUnSelectable
      }];
      if (attrs && attrs.class) {
        classes.push(attrs.class);
      }
      return classes;
    },
    get thStyle() {
      const attrs = this.thAttrs(this);
      const style = [this.style];
      if (attrs && attrs.style) {
        style.push(attrs.style);
      }
      return style;
    },
    get thWrapStyle() {
      return this.style;
    },
    get style() {
      var _a;
      return {
        width: (_a = toCssWidth(this.width)) != null ? _a : void 0
        // null → undefined to satisfy StyleValue
      };
    },
    getRootClasses(row) {
      const attrs = this.tdAttrs(row, this);
      const classes = [this.rootClasses];
      if (attrs && attrs.class) {
        classes.push(attrs.class);
      }
      return classes;
    },
    getRootStyle(row) {
      const attrs = this.tdAttrs(row, this);
      const style = [];
      if (attrs && attrs.style) {
        style.push(attrs.style);
      }
      return style;
    },
    $slots: {
      default: (props) => {
        const vnode = h("span", {
          innerHTML: getValueByPath(props.row, column.field)
        });
        return [vnode];
      }
    },
    // private properties
    get rootClasses() {
      return [this.cellClass, {
        "has-text-right": this.numeric && !this.centered,
        "has-text-centered": this.centered,
        "is-sticky": this.sticky
      }];
    },
    get isHeaderUnSelectable() {
      return !this.headerSelectable && !!this.sortable;
    }
  });
}

const BLANK_COLUMN = {
  thAttrs: () => ({}),
  tdAttrs: () => ({}),
  getRootClasses: () => [],
  getRootStyle: () => void 0,
  $slots: {}
};
var _sfc_main$6 = defineComponent({
  name: "BTable",
  components: {
    BCheckbox,
    BIcon,
    BInput,
    BLoading,
    BSlotComponent,
    BTableMobileSort,
    BTablePagination
  },
  mixins: [CompatFallthroughMixin],
  provide() {
    return {
      $table: this
    };
  },
  props: {
    data: {
      type: Array,
      default: () => []
    },
    columns: {
      type: Array,
      default: () => []
    },
    bordered: Boolean,
    striped: Boolean,
    narrowed: Boolean,
    hoverable: Boolean,
    loading: Boolean,
    detailed: Boolean,
    checkable: Boolean,
    headerCheckable: {
      type: Boolean,
      default: true
    },
    checkboxType: {
      type: String,
      default: "is-primary"
    },
    checkboxPosition: {
      type: String,
      default: "left",
      validator: (value) => {
        return [
          "left",
          "right"
        ].indexOf(value) >= 0;
      }
    },
    stickyCheckbox: {
      type: Boolean,
      default: false
    },
    selected: Object,
    isRowSelectable: {
      type: Function,
      default: () => true
    },
    focusable: Boolean,
    customIsChecked: Function,
    isRowCheckable: {
      type: Function,
      default: () => true
    },
    checkedRows: {
      type: Array,
      default: () => []
    },
    mobileCards: {
      type: Boolean,
      default: true
    },
    defaultSort: [String, Array],
    defaultSortDirection: {
      type: String,
      default: "asc"
    },
    sortIcon: {
      type: String,
      default: "arrow-up"
    },
    sortIconSize: {
      type: String,
      default: "is-small"
    },
    sortMultiple: {
      type: Boolean,
      default: false
    },
    sortMultipleData: {
      type: Array,
      default: () => []
    },
    sortMultipleKey: {
      type: String,
      default: null
    },
    paginated: Boolean,
    currentPage: {
      type: Number,
      default: 1
    },
    perPage: {
      type: [Number, String],
      default: 20
    },
    showDetailIcon: {
      type: Boolean,
      default: true
    },
    detailIcon: {
      type: String,
      default: "chevron-right"
    },
    paginationPosition: {
      type: String,
      default: "bottom",
      validator: (value) => {
        return [
          "bottom",
          "top",
          "both"
        ].indexOf(value) >= 0;
      }
    },
    paginationRounded: Boolean,
    backendSorting: Boolean,
    backendFiltering: Boolean,
    rowClass: {
      type: Function,
      default: () => ""
    },
    openedDetailed: {
      type: Array,
      default: () => []
    },
    hasDetailedVisible: {
      type: Function,
      default: () => true
    },
    detailKey: {
      type: String,
      default: ""
    },
    detailTransition: {
      type: String,
      default: ""
    },
    customDetailRow: {
      type: Boolean,
      default: false
    },
    backendPagination: Boolean,
    total: {
      type: [Number, String],
      default: 0
    },
    iconPack: String,
    mobileSortPlaceholder: String,
    customRowKey: String,
    draggable: {
      type: Boolean,
      default: false
    },
    draggableColumn: {
      type: Boolean,
      default: false
    },
    scrollable: Boolean,
    ariaNextLabel: String,
    ariaPreviousLabel: String,
    ariaPageLabel: String,
    ariaCurrentLabel: String,
    stickyHeader: Boolean,
    height: [Number, String],
    filtersEvent: {
      type: String,
      default: ""
    },
    cardLayout: Boolean,
    showHeader: {
      type: Boolean,
      default: true
    },
    debounceSearch: Number,
    caption: String,
    showCaption: {
      type: Boolean,
      default: true
    },
    pageInput: {
      type: Boolean,
      default: false
    },
    paginationOrder: String,
    pageInputPosition: String,
    debouncePageInput: [Number, String]
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    cellclick: (_row, _column, _rowIndex, _colIndex) => true,
    check: (_checkedRows, _row) => true,
    "check-all": (_rows) => true,
    click: (_row) => true,
    columndragend: (_event) => true,
    columndragleave: (_event) => true,
    columndragover: (_event) => true,
    columndragstart: (_event) => true,
    columndrop: (_event) => true,
    contextmenu: (_row, _event) => true,
    dblclick: (_row) => true,
    "details-close": (_row) => true,
    "details-open": (_row) => true,
    dragend: (_event) => true,
    dragleave: (_event) => true,
    dragover: (_event) => true,
    dragstart: (_event) => true,
    drop: (_event) => true,
    "filters-change": (_value) => true,
    "page-change": (_page) => true,
    select: (_new, _old) => true,
    sort: (_field, _order, _event) => true,
    "sorting-priority-removed": (_field) => true,
    "update:checkedRows": (_rows) => true,
    "update:currentPage": (_page) => true,
    "update:openedDetailed": (_rows) => true,
    "update:selected": (_row) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      sortMultipleDataLocal: [],
      getValueByPath,
      visibleDetailRows: this.openedDetailed,
      newData: this.data,
      newDataTotal: this.backendPagination ? this.total : this.data.length,
      newCheckedRows: [...this.checkedRows],
      lastCheckedRowIndex: null,
      newCurrentPage: this.currentPage,
      currentSortColumn: {},
      isAsc: true,
      filters: {},
      defaultSlots: [],
      firstTimeSort: true,
      // Used by first time initSort
      isDraggingRow: false,
      isDraggingColumn: false,
      debouncedHandleFiltersChange: void 0,
      // for touch-enabled devices
      _selectedRow: null,
      mayBeTouchDragging: false,
      touchDragoverTarget: null,
      _draggedCellEl: void 0,
      draggedCellContent: ""
    };
  },
  computed: {
    sortMultipleDataComputed() {
      return this.backendSorting ? this.sortMultipleData : this.sortMultipleDataLocal;
    },
    tableClasses() {
      return {
        "is-bordered": this.bordered,
        "is-striped": this.striped,
        "is-narrow": this.narrowed,
        "is-hoverable": (this.hoverable || this.focusable) && this.visibleData.length
      };
    },
    tableWrapperClasses() {
      return {
        "has-mobile-cards": this.mobileCards,
        "has-sticky-header": this.stickyHeader,
        "is-card-list": this.cardLayout,
        "table-container": this.isScrollable
      };
    },
    tableStyle() {
      return {
        height: toCssWidth(this.height)
      };
    },
    touchDraggedCellClasses() {
      return {
        "has-mobile-cards": this.mobileCards
      };
    },
    /*
    * Splitted data based on the pagination.
    */
    visibleData() {
      if (!this.paginated) return this.newData;
      const currentPage = this.newCurrentPage;
      const perPage = +this.perPage;
      if (this.newData.length <= perPage) {
        return this.newData;
      } else {
        const start = (currentPage - 1) * perPage;
        const end = parseInt(start + "", 10) + parseInt(perPage + "", 10);
        return this.newData.slice(start, end);
      }
    },
    visibleColumns() {
      if (!this.newColumns) return this.newColumns;
      return this.newColumns.filter((column) => {
        return column.visible || column.visible === void 0;
      });
    },
    /*
    * Check if all rows in the page are checked.
    */
    isAllChecked() {
      const validVisibleData = this.visibleData.filter(
        (row) => this.isRowCheckable(row)
      );
      if (validVisibleData.length === 0) return false;
      const isAllChecked = validVisibleData.some((currentVisibleRow) => {
        return indexOf(this.newCheckedRows, currentVisibleRow, this.customIsChecked) < 0;
      });
      return !isAllChecked;
    },
    /*
    * Check if all rows in the page are checkable.
    */
    isAllUncheckable() {
      const validVisibleData = this.visibleData.filter(
        (row) => this.isRowCheckable(row)
      );
      return validVisibleData.length === 0;
    },
    /*
    * Check if has any sortable column.
    */
    hasSortablenewColumns() {
      return this.newColumns.some((column) => {
        return column.sortable;
      });
    },
    /*
    * Check if has any searchable column.
    */
    hasSearchablenewColumns() {
      return this.newColumns.some((column) => {
        return column.searchable;
      });
    },
    /*
    * Check if has any column using subheading.
    */
    hasCustomSubheadings() {
      if (this.$slots && this.$slots.subheading) return true;
      return this.newColumns.some((column) => {
        return column.subheading || column.$slots.subheading;
      });
    },
    /*
    * Return total column count based if it's checkable or expanded
    */
    columnCount() {
      let count = this.visibleColumns.length;
      count += this.checkable ? 1 : 0;
      count += this.detailed && this.showDetailIcon ? 1 : 0;
      return count;
    },
    /*
    * return if detailed row tabled
    * will be with chevron column & icon or not
    */
    showDetailRowIcon() {
      return this.detailed && this.showDetailIcon;
    },
    /*
    * return if scrollable table
    */
    isScrollable() {
      if (this.scrollable) return true;
      if (!this.newColumns) return false;
      return this.newColumns.some((column) => {
        return column.sticky;
      });
    },
    newColumns() {
      if (this.columns && this.columns.length) {
        return this.columns.map((column) => {
          return mockTableColumn(this, column);
        });
      }
      return this.defaultSlots;
    },
    canDragRow() {
      return this.draggable && !this.isDraggingColumn;
    },
    canDragColumn() {
      return this.draggableColumn && !this.isDraggingRow;
    }
  },
  watch: {
    /*
    * When data prop change:
    *   1. Update internal value.
    *   2. Filter data if it's not backend-filtered.
    *   3. Sort again if it's not backend-sorted.
    *   4. Set new total if it's not backend-paginated.
    */
    data(value) {
      this.newData = value;
      if (!this.backendFiltering) {
        this.newData = value.filter(
          (row) => this.isRowFiltered(row)
        );
      }
      if (!this.backendSorting) {
        this.sort(this.currentSortColumn, true);
      }
      if (!this.backendPagination) {
        this.newDataTotal = this.newData.length;
      }
    },
    /*
    * When Pagination total change, update internal total
    * only if it's backend-paginated.
    */
    total(newTotal) {
      if (!this.backendPagination) return;
      this.newDataTotal = newTotal;
    },
    currentPage(newVal) {
      this.newCurrentPage = newVal;
    },
    newCurrentPage(newVal) {
      this.$emit("update:currentPage", newVal);
    },
    /*
    * When checkedRows prop change, update internal value without
    * mutating original data.
    */
    checkedRows(rows) {
      this.newCheckedRows = [...rows];
    },
    debounceSearch: {
      handler(value) {
        this.debouncedHandleFiltersChange = debounce(this.handleFiltersChange, value);
      },
      immediate: true
    },
    filters: {
      handler(value) {
        if (this.debounceSearch) {
          this.debouncedHandleFiltersChange(value);
        } else {
          this.handleFiltersChange(value);
        }
      },
      deep: true
    },
    /*
    * When the user wants to control the detailed rows via props.
    * Or wants to open the details of certain row with the router for example.
    */
    openedDetailed(expandedRows) {
      this.visibleDetailRows = expandedRows;
    }
  },
  methods: {
    onFiltersEvent(event) {
      this.$emit(`filters-event-${this.filtersEvent}`, { event, filters: this.filters });
    },
    handleFiltersChange(value) {
      if (this.backendFiltering) {
        this.$emit("filters-change", value);
      } else {
        this.newData = this.data.filter(
          (row) => this.isRowFiltered(row)
        );
        if (!this.backendPagination) {
          this.newDataTotal = this.newData.length;
        }
        if (!this.backendSorting) {
          if (this.sortMultiple && this.sortMultipleDataLocal && this.sortMultipleDataLocal.length > 0) {
            this.doSortMultiColumn();
          } else if (Object.keys(this.currentSortColumn).length > 0) {
            this.doSortSingleColumn(this.currentSortColumn);
          }
        }
      }
    },
    findIndexOfSortData(column) {
      const sortObj = this.sortMultipleDataComputed.filter((i) => i.field === column.field)[0];
      return this.sortMultipleDataComputed.indexOf(sortObj) + 1;
    },
    removeSortingPriority(column) {
      if (this.backendSorting) {
        this.$emit("sorting-priority-removed", column.field);
      } else {
        this.sortMultipleDataLocal = this.sortMultipleDataLocal.filter(
          (priority) => priority.field !== column.field
        );
        if (this.sortMultipleDataLocal.length === 0) {
          this.resetMultiSorting();
        } else {
          this.newData = multiColumnSort(this.newData, this.sortMultipleDataLocal);
        }
      }
    },
    resetMultiSorting() {
      this.sortMultipleDataLocal = [];
      this.currentSortColumn = BLANK_COLUMN;
      this.newData = this.data;
    },
    /*
    * Sort an array by key without mutating original data.
    * Call the user sort function if it was passed.
    */
    sortBy(array, key, fn, isAsc) {
      let sorted = [];
      if (fn && typeof fn === "function") {
        sorted = [...array].sort((a, b) => fn(a, b, isAsc));
      } else {
        sorted = [...array].sort((a, b) => {
          let newA = getValueByPath(a, key);
          let newB = getValueByPath(b, key);
          if (typeof newA === "boolean" && typeof newB === "boolean") {
            return isAsc ? +newA - +newB : +newB - +newA;
          }
          if (!isNil(newB) && isNil(newA)) return isAsc ? 1 : -1;
          if (!isNil(newA) && isNil(newB)) return isAsc ? -1 : 1;
          if (newA === newB) return 0;
          newA = typeof newA === "string" ? newA.toUpperCase() : newA;
          newB = typeof newB === "string" ? newB.toUpperCase() : newB;
          return isAsc ? newA > newB ? 1 : -1 : newA > newB ? -1 : 1;
        });
      }
      return sorted;
    },
    sortMultiColumn(column) {
      this.currentSortColumn = BLANK_COLUMN;
      if (!this.backendSorting) {
        const existingPriority = this.sortMultipleDataLocal.filter((i) => i.field === column.field)[0];
        if (existingPriority) {
          existingPriority.order = existingPriority.order === "desc" ? "asc" : "desc";
        } else {
          this.sortMultipleDataLocal.push({
            field: column.field,
            order: this.isAsc ? "asc" : "desc",
            customSort: column.customSort
          });
        }
        this.doSortMultiColumn();
      }
    },
    doSortMultiColumn() {
      this.newData = multiColumnSort(this.newData, this.sortMultipleDataLocal);
    },
    /*
    * Sort the column.
    * Toggle current direction on column if it's sortable
    * and not just updating the prop.
    */
    sort(column, updatingData = false, event = null) {
      if (!column || !column.sortable) return;
      if (
        // if backend sorting is enabled, just emit the sort press like usual
        // if the correct key combination isnt pressed, sort like usual
        !this.backendSorting && this.sortMultiple && (this.sortMultipleKey && event[this.sortMultipleKey] || !this.sortMultipleKey)
      ) {
        if (updatingData) {
          this.doSortMultiColumn();
        } else {
          this.sortMultiColumn(column);
        }
      } else {
        if (this.sortMultiple) {
          this.sortMultipleDataLocal = [];
        }
        if (!updatingData) {
          this.isAsc = toRaw(column) === toRaw(this.currentSortColumn) ? !this.isAsc : this.defaultSortDirection.toLowerCase() !== "desc";
        }
        if (!this.firstTimeSort) {
          this.$emit("sort", column.field, this.isAsc ? "asc" : "desc", event);
        }
        if (!this.backendSorting) {
          this.doSortSingleColumn(column);
        }
        this.currentSortColumn = column;
      }
    },
    doSortSingleColumn(column) {
      this.newData = this.sortBy(
        this.newData,
        column.field,
        column.customSort,
        this.isAsc
      );
    },
    isRowSelected(row, selected) {
      if (!selected) {
        return false;
      }
      if (this.customRowKey) {
        return row[this.customRowKey] === selected[this.customRowKey];
      }
      return row === selected;
    },
    /*
    * Check if the row is checked (is added to the array).
    */
    isRowChecked(row) {
      return indexOf(this.newCheckedRows, row, this.customIsChecked) >= 0;
    },
    /*
    * Remove a checked row from the array.
    */
    removeCheckedRow(row) {
      const index = indexOf(this.newCheckedRows, row, this.customIsChecked);
      if (index >= 0) {
        this.newCheckedRows.splice(index, 1);
      }
    },
    /*
    * Header checkbox click listener.
    * Add or remove all rows in current page.
    */
    checkAll() {
      const isAllChecked = this.isAllChecked;
      this.visibleData.forEach((currentRow) => {
        if (this.isRowCheckable(currentRow)) {
          this.removeCheckedRow(currentRow);
        }
        if (!isAllChecked) {
          if (this.isRowCheckable(currentRow)) {
            this.newCheckedRows.push(currentRow);
          }
        }
      });
      this.$emit("check", this.newCheckedRows);
      this.$emit("check-all", this.newCheckedRows);
      this.$emit("update:checkedRows", this.newCheckedRows);
    },
    /*
    * Row checkbox click listener.
    */
    checkRow(row, index, event) {
      if (!this.isRowCheckable(row)) return;
      const lastIndex = this.lastCheckedRowIndex;
      this.lastCheckedRowIndex = index;
      if (event.shiftKey && lastIndex !== null && index !== lastIndex) {
        this.shiftCheckRow(row, index, lastIndex);
      } else if (!this.isRowChecked(row)) {
        this.newCheckedRows.push(row);
      } else {
        this.removeCheckedRow(row);
      }
      this.$emit("check", this.newCheckedRows, row);
      this.$emit("update:checkedRows", this.newCheckedRows);
    },
    /*
     * Check row when shift is pressed.
     */
    shiftCheckRow(row, index, lastCheckedRowIndex) {
      const subset = this.visibleData.slice(
        Math.min(index, lastCheckedRowIndex),
        Math.max(index, lastCheckedRowIndex) + 1
      );
      const shouldCheck = !this.isRowChecked(row);
      subset.forEach((item) => {
        this.removeCheckedRow(item);
        if (shouldCheck && this.isRowCheckable(item)) {
          this.newCheckedRows.push(item);
        }
      });
    },
    /*
    * Row click listener.
    * Emit all necessary events.
    */
    selectRow(row) {
      this.$emit("click", row);
      this._selectedRow = row;
      if (this.selected === row) return;
      if (!this.isRowSelectable(row)) return;
      this.$emit("select", row, this.selected);
      this.$emit("update:selected", row);
    },
    /*
    * Toggle to show/hide details slot
    */
    toggleDetails(obj) {
      const found = this.isVisibleDetailRow(obj);
      if (found) {
        this.closeDetailRow(obj);
        this.$emit("details-close", obj);
      } else {
        this.openDetailRow(obj);
        this.$emit("details-open", obj);
      }
      this.$emit("update:openedDetailed", this.visibleDetailRows);
    },
    openDetailRow(obj) {
      const index = this.handleDetailKey(obj);
      this.visibleDetailRows.push(index);
    },
    closeDetailRow(obj) {
      const index = this.handleDetailKey(obj);
      const i = this.visibleDetailRows.indexOf(index);
      if (i >= 0) {
        this.visibleDetailRows.splice(i, 1);
      }
    },
    isVisibleDetailRow(obj) {
      const index = this.handleDetailKey(obj);
      return this.visibleDetailRows.indexOf(index) >= 0;
    },
    isActiveDetailRow(row) {
      return this.detailed && !this.customDetailRow && this.isVisibleDetailRow(row);
    },
    isActiveCustomDetailRow(row) {
      return this.detailed && this.customDetailRow && this.isVisibleDetailRow(row);
    },
    isRowFiltered(row) {
      for (const key in this.filters) {
        if (!this.filters[key]) continue;
        const input = this.filters[key];
        const column = this.newColumns.filter((c) => c.field === key)[0];
        if (column && column.customSearch && typeof column.customSearch === "function") {
          if (!column.customSearch(row, input)) return false;
        } else {
          const value = this.getValueByPath(row, key);
          if (value == null) return false;
          if (Number.isInteger(value)) {
            if (value !== Number(input)) return false;
          } else {
            const re = new RegExp(escapeRegExpChars(input + ""), "i");
            if (Array.isArray(value)) {
              const valid = value.some(
                (val) => re.test(removeDiacriticsFromString(val)) || re.test(val)
              );
              if (!valid) return false;
            } else {
              if (!re.test(removeDiacriticsFromString(value)) && !re.test(value)) {
                return false;
              }
            }
          }
        }
      }
      return true;
    },
    /*
    * When the detailKey is defined we use the object[detailKey] as index.
    * If not, use the object reference by default.
    */
    handleDetailKey(index) {
      const key = this.detailKey;
      return !key.length || !index ? index : index[key];
    },
    checkPredefinedDetailedRows() {
      const defaultExpandedRowsDefined = this.openedDetailed.length > 0;
      if (defaultExpandedRowsDefined && !this.detailKey.length) {
        throw new Error('If you set a predefined opened-detailed, you must provide a unique key using the prop "detail-key"');
      }
    },
    /*
    * Call initSort only first time (For example async data).
    */
    checkSort() {
      if (this.newColumns.length && this.firstTimeSort) {
        this.initSort();
        this.firstTimeSort = false;
      } else if (this.newColumns.length) {
        if (toRaw(this.currentSortColumn) !== BLANK_COLUMN) {
          for (let i = 0; i < this.newColumns.length; i++) {
            if (this.newColumns[i].field === this.currentSortColumn.field) {
              this.currentSortColumn = this.newColumns[i];
              break;
            }
          }
        }
      }
    },
    /*
    * Check if footer slot has custom content.
    *
    * Assumes that `$slots.footer` is specified.
    */
    hasCustomFooterSlot() {
      var _a;
      const footer = this.$slots.footer();
      if (footer.length > 1) return true;
      if (isFragment(footer[0])) return true;
      const tag = (_a = footer[0].el) == null ? void 0 : _a.tag;
      if (tag !== "th" && tag !== "td") return false;
      return true;
    },
    /*
    * Check if bottom-left slot exists.
    */
    hasBottomLeftSlot() {
      return typeof this.$slots["bottom-left"] !== "undefined";
    },
    /*
    * Table arrow keys listener, change selection.
    */
    pressedArrow(pos) {
      if (!this.visibleData.length) return;
      let index = this.visibleData.indexOf(this.selected) + pos;
      index = index < 0 ? 0 : index > this.visibleData.length - 1 ? this.visibleData.length - 1 : index;
      const row = this.visibleData[index];
      if (!this.isRowSelectable(row)) {
        let newIndex = null;
        if (pos > 0) {
          for (let i = index; i < this.visibleData.length && newIndex === null; i++) {
            if (this.isRowSelectable(this.visibleData[i])) newIndex = i;
          }
        } else {
          for (let i = index; i >= 0 && newIndex === null; i--) {
            if (this.isRowSelectable(this.visibleData[i])) newIndex = i;
          }
        }
        if (newIndex >= 0) {
          this.selectRow(this.visibleData[newIndex]);
        }
      } else {
        this.selectRow(row);
      }
    },
    /*
    * Focus table element if has selected prop.
    */
    focus() {
      if (!this.focusable) return;
      this.$el.querySelector("table").focus();
    },
    /*
    * Initial sorted column based on the default-sort prop.
    */
    initSort() {
      if (this.sortMultiple && this.sortMultipleData) {
        this.sortMultipleData.forEach((column) => {
          this.sortMultiColumn(column);
        });
      } else {
        if (!this.defaultSort) return;
        let sortField = "";
        let sortDirection = this.defaultSortDirection;
        if (Array.isArray(this.defaultSort)) {
          sortField = this.defaultSort[0];
          if (this.defaultSort[1]) {
            sortDirection = this.defaultSort[1];
          }
        } else {
          sortField = this.defaultSort;
        }
        const sortColumn = this.newColumns.filter(
          (column) => column.field === sortField
        )[0];
        if (sortColumn) {
          this.isAsc = sortDirection.toLowerCase() !== "desc";
          this.sort(sortColumn, true);
        }
      }
    },
    /*
    * Emits drag start event (row)
    */
    handleDragStart(event, row, index) {
      if (!this.canDragRow) return;
      this.isDraggingRow = true;
      this.$emit("dragstart", { event, row, index });
    },
    /*
    * Emits drag leave event (row)
    */
    handleDragEnd(event, row, index) {
      if (!this.canDragRow) return;
      this.isDraggingRow = false;
      this.$emit("dragend", { event, row, index });
    },
    /*
    * Emits drop event (row)
    */
    handleDrop(event, row, index) {
      if (!this.canDragRow) return;
      this.$emit("drop", { event, row, index });
    },
    /*
    * Emits drag over event (row)
    */
    handleDragOver(event, row, index) {
      if (!this.canDragRow) return;
      this.$emit("dragover", { event, row, index });
    },
    /*
    * Emits drag leave event (row)
    */
    handleDragLeave(event, row, index) {
      if (!this.canDragRow) return;
      this.$emit("dragleave", { event, row, index });
    },
    // this method is for "mouseenter", and "mouseleave" events.
    // the original idea of this method was introduced by the PR
    // https://github.com/buefy/buefy/pull/2150
    // to address some performance issues related to these events.
    // I am not sure whether the justification made at the PR is still
    // relevant to Vue 3.
    // btw, this function was made by the PR https://github.com/buefy/buefy/pull/3236
    emitEventForRow(eventName, event, row) {
      const listener = this.$attrs[toHandlerKey(eventName)] || this.$attrs[toHandlerKey(camelize(eventName))];
      return listener != null ? this.$emit(eventName, row, event) : null;
    },
    /*
    * Emits drag start event (column)
    */
    handleColumnDragStart(event, column, index) {
      if (!this.canDragColumn) return;
      this.isDraggingColumn = true;
      this.$emit("columndragstart", { event, column, index });
    },
    /*
    * Emits drag leave event (column)
    */
    handleColumnDragEnd(event, column, index) {
      if (!this.canDragColumn) return;
      this.isDraggingColumn = false;
      this.$emit("columndragend", { event, column, index });
    },
    /*
    * Emits drop event (column)
    */
    handleColumnDrop(event, column, index) {
      if (!this.canDragColumn) return;
      this.$emit("columndrop", { event, column, index });
    },
    /*
    * Emits drag over event (column)
    */
    handleColumnDragOver(event, column, index) {
      if (!this.canDragColumn) return;
      this.$emit("columndragover", { event, column, index });
    },
    /*
    * Emits drag leave event (column)
    */
    handleColumnDragLeave(event, column, index) {
      if (!this.canDragColumn) return;
      this.$emit("columndragleave", { event, column, index });
    },
    /*
    * Starts monitoring drag-by-touch events (row on touch-enabled devices)
    */
    handleTouchStart(event, row) {
      if (!this.canDragRow) return;
      if (this.isDraggingColumn) return;
      if (this._selectedRow !== row) return;
      event.preventDefault();
      this.mayBeTouchDragging = true;
    },
    /*
    * Emits dragover and dragleave events (row on touch-enabled devices)
    *
    * Emits also dragstart if this is the first touchmove after touchstart.
    */
    handleTouchMove(event) {
      if (!this.canDragRow) return;
      if (!this.mayBeTouchDragging) return;
      if (!this.isDraggingRow) {
        const eventTarget = event.target;
        const tr = eventTarget.closest("tr");
        this.draggedCellContent = tr ? `<table class="table"><tr>${tr.innerHTML}</tr></table>` : eventTarget.innerHTML;
        this.$refs.draggedCell.style.width = tr ? `${tr.offsetWidth}px` : `${eventTarget.offsetWidth}px`;
        eventTarget.dispatchEvent(translateTouchAsDragEvent(event, {
          type: "dragstart"
        }));
      }
      const touch = event.touches[0];
      const target = document.elementFromPoint(touch.clientX, touch.clientY);
      if (target != null) {
        if (target !== this.touchDragoverTarget) {
          if (this.touchDragoverTarget != null) {
            this.touchDragoverTarget.dispatchEvent(
              translateTouchAsDragEvent(event, {
                type: "dragleave",
                target: this.touchDragoverTarget
              })
            );
          }
          this.touchDragoverTarget = target;
          target.dispatchEvent(
            translateTouchAsDragEvent(event, {
              type: "dragover",
              target
            })
          );
        }
      } else if (this.touchDragoverTarget != null) {
        this.touchDragoverTarget.dispatchEvent(
          translateTouchAsDragEvent(event, {
            type: "dragleave",
            target: this.touchDragoverTarget
          })
        );
        this.touchDragoverTarget = null;
      }
      this.updateDraggedCell(touch);
    },
    /*
    * Emits drop and dragend events (row on touch-enabled devices)
    */
    handleTouchEnd(event) {
      if (!this.canDragRow) return;
      if (this.isDraggingRow) {
        const touch = event.changedTouches[0];
        const target = document.elementFromPoint(touch.clientX, touch.clientY);
        if (target != null) {
          target.dispatchEvent(translateTouchAsDragEvent(event, {
            type: "drop",
            target
          }));
        }
        event.target.dispatchEvent(translateTouchAsDragEvent(event, {
          type: "dragend"
        }));
        this._selectedRow = null;
      }
      this.mayBeTouchDragging = false;
    },
    /*
    * Starts monitoring drag-by-touch events (column on touch-enabled devices)
    */
    handleColumnTouchStart(event) {
      if (!this.canDragColumn) return;
      if (this.isDraggingRow) return;
      event.preventDefault();
      this.mayBeTouchDragging = true;
    },
    /*
    * Emits dragover and dragleave events (column on touch-enabled devices)
    *
    * Also emits dragstart if this is the first touchmove after touchstart.
    */
    handleColumnTouchMove(event) {
      if (!this.canDragColumn) return;
      if (!this.mayBeTouchDragging) return;
      if (!this.isDraggingColumn) {
        const eventTarget = event.target;
        this.draggedCellContent = eventTarget.innerHTML;
        this.$refs.draggedCell.style.width = `${eventTarget.offsetWidth}px`;
        eventTarget.dispatchEvent(translateTouchAsDragEvent(event, {
          type: "dragstart"
        }));
      }
      const touch = event.touches[0];
      const target = document.elementFromPoint(touch.clientX, touch.clientY);
      if (target != null) {
        if (target !== this.touchDragoverTarget) {
          if (this.touchDragoverTarget != null) {
            this.touchDragoverTarget.dispatchEvent(
              translateTouchAsDragEvent(event, {
                type: "dragleave",
                target: this.touchDragoverTarget
              })
            );
          }
          this.touchDragoverTarget = target;
          target.dispatchEvent(
            translateTouchAsDragEvent(event, {
              type: "dragover",
              target
            })
          );
        }
      } else if (this.touchDragoverTarget != null) {
        this.touchDragoverTarget.dispatchEvent(
          translateTouchAsDragEvent(event, {
            type: "dragleave",
            target: this.touchDragoverTarget
          })
        );
        this.touchDragoverTarget = null;
      }
      this.updateDraggedCell(touch);
    },
    /*
    * Emits drop and dragend events (column on touch-enabled devices)
    */
    handleColumnTouchEnd(event) {
      if (!this.canDragColumn) return;
      if (this.isDraggingColumn) {
        const touch = event.changedTouches[0];
        const target = document.elementFromPoint(touch.clientX, touch.clientY);
        if (target != null) {
          target.dispatchEvent(translateTouchAsDragEvent(event, {
            type: "drop",
            target
          }));
        }
        event.target.dispatchEvent(translateTouchAsDragEvent(event, {
          type: "dragend"
        }));
      }
      this.mayBeTouchDragging = false;
    },
    updateDraggedCell({ clientX, clientY }) {
      const cellRect = this.$refs.draggedCell.getBoundingClientRect();
      const top = clientY + window.scrollY - cellRect.height / 2;
      const left = clientX + window.scrollX - cellRect.width / 2;
      this.$refs.draggedCell.style.top = `calc(${top}px)`;
      this.$refs.draggedCell.style.left = `calc(${left}px)`;
    },
    _registerTableColumn(column) {
      if (column._isTableColumn) {
        this.defaultSlots.push(column);
      }
    },
    _unregisterTableColumn(column) {
      const index = this.defaultSlots.indexOf(column);
      if (index !== -1) {
        this.defaultSlots.splice(index, 1);
      }
    }
  },
  mounted() {
    this.checkPredefinedDetailedRows();
    this.checkSort();
    const prepareDraggedCell = (isDraggable) => {
      if (isDraggable && this.$data._draggedCellEl == null) {
        this.$data._draggedCellEl = createAbsoluteElement(this.$refs.draggedCell);
      }
    };
    this.$watch("draggable", prepareDraggedCell, { immediate: true });
    this.$watch("draggableColumn", prepareDraggedCell, { immediate: true });
  },
  beforeUnmount() {
    if (this.$data._draggedCellEl) {
      removeElement(this.$data._draggedCellEl);
    }
  }
});

const _hoisted_1$5 = ["tabindex"];
const _hoisted_2$4 = { key: 1 };
const _hoisted_3$2 = {
  key: 0,
  width: "40px"
};
const _hoisted_4 = ["onClick", "draggable", "onDragstart", "onDragend", "onDrop", "onDragover", "onDragleave"];
const _hoisted_5 = {
  key: 0,
  class: "multi-sort-icons"
};
const _hoisted_6 = ["onClick"];
const _hoisted_7 = {
  key: 0,
  class: "is-subheading"
};
const _hoisted_8 = {
  key: 0,
  width: "40px"
};
const _hoisted_9 = { key: 1 };
const _hoisted_10 = { key: 2 };
const _hoisted_11 = { key: 1 };
const _hoisted_12 = {
  key: 0,
  width: "40px"
};
const _hoisted_13 = { key: 1 };
const _hoisted_14 = { key: 2 };
const _hoisted_15 = ["onClick", "onDblclick", "onMouseenter", "onMouseleave", "onContextmenu", "draggable", "onDragstart", "onDragend", "onDrop", "onDragover", "onDragleave", "onTouchstart"];
const _hoisted_16 = {
  key: 0,
  class: "chevron-cell"
};
const _hoisted_17 = ["onClick"];
const _hoisted_18 = {
  key: 0,
  class: "detail"
};
const _hoisted_19 = ["colspan"];
const _hoisted_20 = { class: "detail-container" };
const _hoisted_21 = {
  key: 0,
  class: "is-empty"
};
const _hoisted_22 = ["colspan"];
const _hoisted_23 = { key: 2 };
const _hoisted_24 = { class: "table-footer" };
const _hoisted_25 = ["colspan"];
const _hoisted_26 = ["innerHTML"];
function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_table_mobile_sort = resolveComponent("b-table-mobile-sort");
  const _component_b_table_pagination = resolveComponent("b-table-pagination");
  const _component_b_checkbox = resolveComponent("b-checkbox");
  const _component_b_slot_component = resolveComponent("b-slot-component");
  const _component_b_icon = resolveComponent("b-icon");
  const _component_b_input = resolveComponent("b-input");
  const _component_b_loading = resolveComponent("b-loading");
  return openBlock(), createElementBlock(
    "div",
    mergeProps({ class: "b-table" }, _ctx.rootAttrs),
    [
      renderSlot(_ctx.$slots, "default"),
      _ctx.mobileCards && _ctx.hasSortablenewColumns ? (openBlock(), createBlock(_component_b_table_mobile_sort, {
        key: 0,
        "current-sort-column": _ctx.currentSortColumn,
        "sort-multiple": _ctx.sortMultiple,
        "sort-multiple-data": _ctx.sortMultipleDataComputed,
        "is-asc": _ctx.isAsc,
        columns: _ctx.newColumns,
        placeholder: _ctx.mobileSortPlaceholder,
        "icon-pack": _ctx.iconPack,
        "sort-icon": _ctx.sortIcon,
        "sort-icon-size": _ctx.sortIconSize,
        onSort: _cache[0] || (_cache[0] = (column, event) => _ctx.sort(column, null, event)),
        onRemovePriority: _cache[1] || (_cache[1] = (column) => _ctx.removeSortingPriority(column))
      }, null, 8, ["current-sort-column", "sort-multiple", "sort-multiple-data", "is-asc", "columns", "placeholder", "icon-pack", "sort-icon", "sort-icon-size"])) : createCommentVNode("v-if", true),
      _ctx.paginated && (_ctx.paginationPosition === "top" || _ctx.paginationPosition === "both") ? renderSlot(_ctx.$slots, "pagination", { key: 1 }, () => [
        createVNode(_component_b_table_pagination, mergeProps(_ctx.fallthroughAttrs, {
          "per-page": _ctx.perPage,
          paginated: _ctx.paginated,
          rounded: _ctx.paginationRounded,
          "icon-pack": _ctx.iconPack,
          total: _ctx.newDataTotal,
          "current-page": _ctx.newCurrentPage,
          "onUpdate:currentPage": _cache[2] || (_cache[2] = ($event) => _ctx.newCurrentPage = $event),
          "aria-next-label": _ctx.ariaNextLabel,
          "aria-previous-label": _ctx.ariaPreviousLabel,
          "aria-page-label": _ctx.ariaPageLabel,
          "aria-current-label": _ctx.ariaCurrentLabel,
          onPageChange: _cache[3] || (_cache[3] = (event) => _ctx.$emit("page-change", event)),
          "page-input": _ctx.pageInput,
          "pagination-order": _ctx.paginationOrder,
          "page-input-position": _ctx.pageInputPosition,
          "debounce-page-input": _ctx.debouncePageInput
        }), {
          default: withCtx(() => [
            renderSlot(_ctx.$slots, "top-left")
          ]),
          _: 3
          /* FORWARDED */
        }, 16, ["per-page", "paginated", "rounded", "icon-pack", "total", "current-page", "aria-next-label", "aria-previous-label", "aria-page-label", "aria-current-label", "page-input", "pagination-order", "page-input-position", "debounce-page-input"])
      ]) : createCommentVNode("v-if", true),
      createBaseVNode(
        "div",
        {
          class: normalizeClass(["table-wrapper", _ctx.tableWrapperClasses]),
          style: normalizeStyle(_ctx.tableStyle)
        },
        [
          createBaseVNode("table", {
            class: normalizeClass(["table", _ctx.tableClasses]),
            tabindex: !_ctx.focusable ? void 0 : 0,
            onKeydown: [
              _cache[9] || (_cache[9] = withKeys(withModifiers(($event) => _ctx.pressedArrow(-1), ["self", "prevent"]), ["up"])),
              _cache[10] || (_cache[10] = withKeys(withModifiers(($event) => _ctx.pressedArrow(1), ["self", "prevent"]), ["down"]))
            ]
          }, [
            _ctx.caption ? withDirectives((openBlock(), createElementBlock(
              "caption",
              { key: 0 },
              toDisplayString$1(_ctx.caption),
              513
              /* TEXT, NEED_PATCH */
            )), [
              [vShow, _ctx.showCaption]
            ]) : createCommentVNode("v-if", true),
            _ctx.newColumns.length && _ctx.showHeader ? (openBlock(), createElementBlock("thead", _hoisted_2$4, [
              createBaseVNode("tr", null, [
                _ctx.showDetailRowIcon ? (openBlock(), createElementBlock("th", _hoisted_3$2)) : createCommentVNode("v-if", true),
                _ctx.checkable && _ctx.checkboxPosition === "left" ? (openBlock(), createElementBlock(
                  "th",
                  {
                    key: 1,
                    class: normalizeClass(["checkbox-cell", { "is-sticky": _ctx.stickyCheckbox }])
                  },
                  [
                    _ctx.headerCheckable ? renderSlot(_ctx.$slots, "check-all", {
                      key: 0,
                      isAllChecked: _ctx.isAllChecked,
                      isAllUncheckable: _ctx.isAllUncheckable,
                      checkAll: _ctx.checkAll
                    }, () => [
                      createVNode(_component_b_checkbox, {
                        autocomplete: "off",
                        "model-value": _ctx.isAllChecked,
                        type: _ctx.checkboxType,
                        disabled: _ctx.isAllUncheckable,
                        onChange: _ctx.checkAll
                      }, null, 8, ["model-value", "type", "disabled", "onChange"])
                    ]) : createCommentVNode("v-if", true)
                  ],
                  2
                  /* CLASS */
                )) : createCommentVNode("v-if", true),
                (openBlock(true), createElementBlock(
                  Fragment,
                  null,
                  renderList(_ctx.visibleColumns, (column, index) => {
                    return openBlock(), createElementBlock("th", mergeProps({
                      key: column.newKey + ":" + index + "header"
                    }, column.thAttrs(column), {
                      class: [column.thClasses, {
                        "is-current-sort": !_ctx.sortMultiple && _ctx.currentSortColumn === column
                      }],
                      style: column.thStyle,
                      onClick: withModifiers(($event) => _ctx.sort(column, null, $event), ["stop"]),
                      draggable: _ctx.canDragColumn,
                      onDragstart: ($event) => _ctx.handleColumnDragStart($event, column, index),
                      onDragend: ($event) => _ctx.handleColumnDragEnd($event, column, index),
                      onDrop: ($event) => _ctx.handleColumnDrop($event, column, index),
                      onDragover: ($event) => _ctx.handleColumnDragOver($event, column, index),
                      onDragleave: ($event) => _ctx.handleColumnDragLeave($event, column, index),
                      onTouchstart: _cache[4] || (_cache[4] = ($event) => _ctx.handleColumnTouchStart($event)),
                      onTouchmove: _cache[5] || (_cache[5] = ($event) => _ctx.handleColumnTouchMove($event)),
                      onTouchend: _cache[6] || (_cache[6] = ($event) => _ctx.handleColumnTouchEnd($event))
                    }), [
                      createBaseVNode(
                        "div",
                        {
                          class: normalizeClass(["th-wrap is-relative", {
                            "is-numeric": column.numeric,
                            "is-centered": column.centered
                          }]),
                          style: normalizeStyle(column.thWrapStyle)
                        },
                        [
                          column.$slots.header ? (openBlock(), createBlock(_component_b_slot_component, {
                            key: 0,
                            component: column,
                            scoped: "",
                            name: "header",
                            tag: "span",
                            props: { column, index }
                          }, null, 8, ["component", "props"])) : (openBlock(), createElementBlock(
                            Fragment,
                            { key: 1 },
                            [
                              createTextVNode(
                                toDisplayString$1(column.label) + " ",
                                1
                                /* TEXT */
                              ),
                              _ctx.sortMultiple && _ctx.sortMultipleDataComputed && _ctx.sortMultipleDataComputed.length > 0 && _ctx.sortMultipleDataComputed.filter((i) => i.field === column.field).length > 0 ? (openBlock(), createElementBlock("span", _hoisted_5, [
                                createVNode(_component_b_icon, {
                                  icon: _ctx.sortIcon,
                                  pack: _ctx.iconPack,
                                  both: "",
                                  size: _ctx.sortIconSize,
                                  class: normalizeClass({
                                    "is-desc": _ctx.sortMultipleDataComputed.filter((i) => i.field === column.field)[0].order === "desc"
                                  })
                                }, null, 8, ["icon", "pack", "size", "class"]),
                                createTextVNode(
                                  " " + toDisplayString$1(_ctx.findIndexOfSortData(column)) + " ",
                                  1
                                  /* TEXT */
                                ),
                                createBaseVNode("button", {
                                  class: "delete is-small multi-sort-cancel-icon",
                                  type: "button",
                                  onClick: withModifiers(($event) => _ctx.removeSortingPriority(column), ["stop"])
                                }, null, 8, _hoisted_6)
                              ])) : (openBlock(), createBlock(_component_b_icon, {
                                key: 1,
                                icon: _ctx.sortIcon,
                                pack: _ctx.iconPack,
                                both: "",
                                size: _ctx.sortIconSize,
                                class: normalizeClass(["sort-icon", {
                                  "is-desc": !_ctx.isAsc,
                                  "is-invisible": _ctx.currentSortColumn !== column
                                }])
                              }, null, 8, ["icon", "pack", "size", "class"]))
                            ],
                            64
                            /* STABLE_FRAGMENT */
                          ))
                        ],
                        6
                        /* CLASS, STYLE */
                      )
                    ], 16, _hoisted_4);
                  }),
                  128
                  /* KEYED_FRAGMENT */
                )),
                _ctx.checkable && _ctx.checkboxPosition === "right" ? (openBlock(), createElementBlock(
                  "th",
                  {
                    key: 2,
                    class: normalizeClass(["checkbox-cell", { "is-sticky": _ctx.stickyCheckbox }])
                  },
                  [
                    _ctx.headerCheckable ? renderSlot(_ctx.$slots, "check-all", {
                      key: 0,
                      isAllChecked: _ctx.isAllChecked,
                      isAllUncheckable: _ctx.isAllUncheckable,
                      checkAll: _ctx.checkAll
                    }, () => [
                      createVNode(_component_b_checkbox, {
                        autocomplete: "off",
                        "model-value": _ctx.isAllChecked,
                        type: _ctx.checkboxType,
                        disabled: _ctx.isAllUncheckable,
                        onChange: _ctx.checkAll
                      }, null, 8, ["model-value", "type", "disabled", "onChange"])
                    ]) : createCommentVNode("v-if", true)
                  ],
                  2
                  /* CLASS */
                )) : createCommentVNode("v-if", true)
              ]),
              _ctx.hasCustomSubheadings ? (openBlock(), createElementBlock("tr", _hoisted_7, [
                _ctx.showDetailRowIcon ? (openBlock(), createElementBlock("th", _hoisted_8)) : createCommentVNode("v-if", true),
                _ctx.checkable && _ctx.checkboxPosition === "left" ? (openBlock(), createElementBlock("th", _hoisted_9)) : createCommentVNode("v-if", true),
                (openBlock(true), createElementBlock(
                  Fragment,
                  null,
                  renderList(_ctx.visibleColumns, (column, index) => {
                    return openBlock(), createElementBlock(
                      "th",
                      {
                        key: column.newKey + ":" + index + "subheading",
                        style: normalizeStyle(column.style)
                      },
                      [
                        createBaseVNode(
                          "div",
                          {
                            class: normalizeClass(["th-wrap", {
                              "is-numeric": column.numeric,
                              "is-centered": column.centered
                            }]),
                            style: normalizeStyle(column.thWrapStyle)
                          },
                          [
                            column.$slots.subheading ? (openBlock(), createBlock(_component_b_slot_component, {
                              key: 0,
                              component: column,
                              scoped: "",
                              name: "subheading",
                              tag: "span",
                              props: { column, index }
                            }, null, 8, ["component", "props"])) : (openBlock(), createElementBlock(
                              Fragment,
                              { key: 1 },
                              [
                                createTextVNode(
                                  toDisplayString$1(column.subheading),
                                  1
                                  /* TEXT */
                                )
                              ],
                              64
                              /* STABLE_FRAGMENT */
                            ))
                          ],
                          6
                          /* CLASS, STYLE */
                        )
                      ],
                      4
                      /* STYLE */
                    );
                  }),
                  128
                  /* KEYED_FRAGMENT */
                )),
                _ctx.checkable && _ctx.checkboxPosition === "right" ? (openBlock(), createElementBlock("th", _hoisted_10)) : createCommentVNode("v-if", true)
              ])) : createCommentVNode("v-if", true),
              _ctx.hasSearchablenewColumns ? (openBlock(), createElementBlock("tr", _hoisted_11, [
                _ctx.showDetailRowIcon ? (openBlock(), createElementBlock("th", _hoisted_12)) : createCommentVNode("v-if", true),
                _ctx.checkable && _ctx.checkboxPosition === "left" ? (openBlock(), createElementBlock("th", _hoisted_13)) : createCommentVNode("v-if", true),
                (openBlock(true), createElementBlock(
                  Fragment,
                  null,
                  renderList(_ctx.visibleColumns, (column, index) => {
                    return openBlock(), createElementBlock(
                      "th",
                      mergeProps({
                        key: column.newKey + ":" + index + "searchable"
                      }, column.thAttrs(column), {
                        style: column.thStyle,
                        class: { "is-sticky": column.sticky }
                      }),
                      [
                        createBaseVNode(
                          "div",
                          {
                            class: "th-wrap",
                            style: normalizeStyle(column.thWrapStyle)
                          },
                          [
                            column.searchable ? (openBlock(), createElementBlock(
                              Fragment,
                              { key: 0 },
                              [
                                column.$slots.searchable ? (openBlock(), createBlock(_component_b_slot_component, {
                                  key: 0,
                                  component: column,
                                  scoped: true,
                                  name: "searchable",
                                  tag: "span",
                                  props: { column, filters: _ctx.filters }
                                }, null, 8, ["component", "props"])) : (openBlock(), createBlock(_component_b_input, mergeProps({
                                  key: 1,
                                  [toHandlerKey(_ctx.filtersEvent)]: _ctx.onFiltersEvent
                                }, {
                                  modelValue: _ctx.filters[column.field],
                                  "onUpdate:modelValue": ($event) => _ctx.filters[column.field] = $event,
                                  type: column.numeric ? "number" : "text"
                                }), null, 16, ["modelValue", "onUpdate:modelValue", "type"]))
                              ],
                              64
                              /* STABLE_FRAGMENT */
                            )) : createCommentVNode("v-if", true)
                          ],
                          4
                          /* STYLE */
                        )
                      ],
                      16
                      /* FULL_PROPS */
                    );
                  }),
                  128
                  /* KEYED_FRAGMENT */
                )),
                _ctx.checkable && _ctx.checkboxPosition === "right" ? (openBlock(), createElementBlock("th", _hoisted_14)) : createCommentVNode("v-if", true)
              ])) : createCommentVNode("v-if", true)
            ])) : createCommentVNode("v-if", true),
            createBaseVNode("tbody", null, [
              (openBlock(true), createElementBlock(
                Fragment,
                null,
                renderList(_ctx.visibleData, (row, index) => {
                  return openBlock(), createElementBlock(
                    Fragment,
                    {
                      key: _ctx.customRowKey ? row[_ctx.customRowKey] : index
                    },
                    [
                      createBaseVNode("tr", {
                        class: normalizeClass([_ctx.rowClass(row, index), {
                          "is-selected": _ctx.isRowSelected(row, _ctx.selected),
                          "is-checked": _ctx.isRowChecked(row)
                        }]),
                        onClick: ($event) => _ctx.selectRow(row),
                        onDblclick: ($event) => _ctx.$emit("dblclick", row),
                        onMouseenter: ($event) => _ctx.emitEventForRow("mouseenter", $event, row),
                        onMouseleave: ($event) => _ctx.emitEventForRow("mouseleave", $event, row),
                        onContextmenu: ($event) => _ctx.$emit("contextmenu", row, $event),
                        draggable: _ctx.canDragRow,
                        onDragstart: ($event) => _ctx.handleDragStart($event, row, index),
                        onDragend: ($event) => _ctx.handleDragEnd($event, row, index),
                        onDrop: ($event) => _ctx.handleDrop($event, row, index),
                        onDragover: ($event) => _ctx.handleDragOver($event, row, index),
                        onDragleave: ($event) => _ctx.handleDragLeave($event, row, index),
                        onTouchstart: ($event) => _ctx.handleTouchStart($event, row),
                        onTouchmove: _cache[7] || (_cache[7] = ($event) => _ctx.handleTouchMove($event)),
                        onTouchend: _cache[8] || (_cache[8] = ($event) => _ctx.handleTouchEnd($event))
                      }, [
                        _ctx.showDetailRowIcon ? (openBlock(), createElementBlock("td", _hoisted_16, [
                          _ctx.hasDetailedVisible(row) ? (openBlock(), createElementBlock("a", {
                            key: 0,
                            role: "button",
                            onClick: withModifiers(($event) => _ctx.toggleDetails(row), ["stop"])
                          }, [
                            createVNode(_component_b_icon, {
                              icon: _ctx.detailIcon,
                              pack: _ctx.iconPack,
                              both: "",
                              class: normalizeClass({ "is-expanded": _ctx.isVisibleDetailRow(row) })
                            }, null, 8, ["icon", "pack", "class"])
                          ], 8, _hoisted_17)) : createCommentVNode("v-if", true)
                        ])) : createCommentVNode("v-if", true),
                        _ctx.checkable && _ctx.checkboxPosition === "left" ? (openBlock(), createElementBlock(
                          "td",
                          {
                            key: 1,
                            class: normalizeClass(["checkbox-cell", { "is-sticky": _ctx.stickyCheckbox }])
                          },
                          [
                            createVNode(_component_b_checkbox, {
                              autocomplete: "off",
                              "model-value": _ctx.isRowChecked(row),
                              type: _ctx.checkboxType,
                              disabled: !_ctx.isRowCheckable(row),
                              onClick: withModifiers(($event) => _ctx.checkRow(row, index, $event), ["prevent", "stop"])
                            }, null, 8, ["model-value", "type", "disabled", "onClick"])
                          ],
                          2
                          /* CLASS */
                        )) : createCommentVNode("v-if", true),
                        (openBlock(true), createElementBlock(
                          Fragment,
                          null,
                          renderList(_ctx.visibleColumns, (column, colindex) => {
                            return openBlock(), createElementBlock(
                              Fragment,
                              {
                                key: column.newKey + ":" + index + ":" + colindex
                              },
                              [
                                column.$slots.default ? (openBlock(), createBlock(_component_b_slot_component, mergeProps({
                                  key: 0,
                                  component: column
                                }, column.tdAttrs(row, column), {
                                  scoped: "",
                                  name: "default",
                                  tag: "td",
                                  class: column.getRootClasses(row),
                                  style: column.getRootStyle(row),
                                  "data-label": column.label,
                                  props: {
                                    row,
                                    column,
                                    index,
                                    colindex,
                                    toggleDetails: _ctx.toggleDetails,
                                    isActiveDetailRow: _ctx.isActiveDetailRow
                                  },
                                  onClick: ($event) => _ctx.$emit("cellclick", row, column, index, colindex)
                                }), null, 16, ["component", "class", "style", "data-label", "props", "onClick"])) : createCommentVNode("v-if", true)
                              ],
                              64
                              /* STABLE_FRAGMENT */
                            );
                          }),
                          128
                          /* KEYED_FRAGMENT */
                        )),
                        _ctx.checkable && _ctx.checkboxPosition === "right" ? (openBlock(), createElementBlock(
                          "td",
                          {
                            key: 2,
                            class: normalizeClass(["checkbox-cell", { "is-sticky": _ctx.stickyCheckbox }])
                          },
                          [
                            createVNode(_component_b_checkbox, {
                              autocomplete: "off",
                              "model-value": _ctx.isRowChecked(row),
                              type: _ctx.checkboxType,
                              disabled: !_ctx.isRowCheckable(row),
                              onClick: withModifiers(($event) => _ctx.checkRow(row, index, $event), ["prevent", "stop"])
                            }, null, 8, ["model-value", "type", "disabled", "onClick"])
                          ],
                          2
                          /* CLASS */
                        )) : createCommentVNode("v-if", true)
                      ], 42, _hoisted_15),
                      createVNode(Transition, { name: _ctx.detailTransition }, {
                        default: withCtx(() => [
                          _ctx.isActiveDetailRow(row) ? (openBlock(), createElementBlock("tr", _hoisted_18, [
                            createBaseVNode("td", { colspan: _ctx.columnCount }, [
                              createBaseVNode("div", _hoisted_20, [
                                renderSlot(_ctx.$slots, "detail", {
                                  row,
                                  index
                                })
                              ])
                            ], 8, _hoisted_19)
                          ])) : createCommentVNode("v-if", true)
                        ]),
                        _: 2
                        /* DYNAMIC */
                      }, 1032, ["name"]),
                      _ctx.isActiveCustomDetailRow(row) ? renderSlot(_ctx.$slots, "detail", {
                        key: 0,
                        row,
                        index
                      }) : createCommentVNode("v-if", true)
                    ],
                    64
                    /* STABLE_FRAGMENT */
                  );
                }),
                128
                /* KEYED_FRAGMENT */
              )),
              !_ctx.visibleData.length ? (openBlock(), createElementBlock("tr", _hoisted_21, [
                createBaseVNode("td", { colspan: _ctx.columnCount }, [
                  renderSlot(_ctx.$slots, "empty")
                ], 8, _hoisted_22)
              ])) : createCommentVNode("v-if", true)
            ]),
            _ctx.$slots.footer !== void 0 ? (openBlock(), createElementBlock("tfoot", _hoisted_23, [
              createBaseVNode("tr", _hoisted_24, [
                _ctx.hasCustomFooterSlot() ? renderSlot(_ctx.$slots, "footer", { key: 0 }) : (openBlock(), createElementBlock("th", {
                  key: 1,
                  colspan: _ctx.columnCount
                }, [
                  renderSlot(_ctx.$slots, "footer")
                ], 8, _hoisted_25))
              ])
            ])) : createCommentVNode("v-if", true)
          ], 42, _hoisted_1$5),
          _ctx.loading ? renderSlot(_ctx.$slots, "loading", { key: 0 }, () => [
            createVNode(_component_b_loading, {
              "is-full-page": false,
              "model-value": _ctx.loading
            }, null, 8, ["model-value"])
          ]) : createCommentVNode("v-if", true)
        ],
        6
        /* CLASS, STYLE */
      ),
      _ctx.checkable && _ctx.hasBottomLeftSlot() || _ctx.paginated && (_ctx.paginationPosition === "bottom" || _ctx.paginationPosition === "both") ? renderSlot(_ctx.$slots, "pagination", { key: 2 }, () => [
        createVNode(_component_b_table_pagination, mergeProps(_ctx.fallthroughAttrs, {
          "per-page": _ctx.perPage,
          paginated: _ctx.paginated,
          rounded: _ctx.paginationRounded,
          "icon-pack": _ctx.iconPack,
          total: _ctx.newDataTotal,
          "current-page": _ctx.newCurrentPage,
          "onUpdate:currentPage": _cache[11] || (_cache[11] = ($event) => _ctx.newCurrentPage = $event),
          "aria-next-label": _ctx.ariaNextLabel,
          "aria-previous-label": _ctx.ariaPreviousLabel,
          "aria-page-label": _ctx.ariaPageLabel,
          "aria-current-label": _ctx.ariaCurrentLabel,
          onPageChange: _cache[12] || (_cache[12] = (event) => _ctx.$emit("page-change", event)),
          "page-input": _ctx.pageInput,
          "pagination-order": _ctx.paginationOrder,
          "page-input-position": _ctx.pageInputPosition,
          "debounce-page-input": _ctx.debouncePageInput
        }), {
          default: withCtx(() => [
            renderSlot(_ctx.$slots, "bottom-left")
          ]),
          _: 3
          /* FORWARDED */
        }, 16, ["per-page", "paginated", "rounded", "icon-pack", "total", "current-page", "aria-next-label", "aria-previous-label", "aria-page-label", "aria-current-label", "page-input", "pagination-order", "page-input-position", "debounce-page-input"])
      ]) : createCommentVNode("v-if", true),
      createCommentVNode(" eslint-disable vue/no-v-html "),
      withDirectives(createBaseVNode("div", {
        ref: "draggedCell",
        class: normalizeClass(["touch-dragged-cell", _ctx.touchDraggedCellClasses]),
        innerHTML: _ctx.draggedCellContent
      }, null, 10, _hoisted_26), [
        [vShow, _ctx.mayBeTouchDragging && (_ctx.isDraggingRow || _ctx.isDraggingColumn)]
      ]),
      createCommentVNode(" eslint-enable vue/no-v-html ")
    ],
    16
    /* FULL_PROPS */
  );
}
var Table = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$6]]);

var _sfc_main$5 = defineComponent({
  name: "BTableColumn",
  inject: {
    $table: { name: "$table", default: false }
  },
  props: {
    label: String,
    customKey: [String, Number],
    field: String,
    meta: [String, Number, Boolean, Function, Object, Array],
    width: [Number, String],
    numeric: Boolean,
    centered: Boolean,
    searchable: Boolean,
    sortable: Boolean,
    visible: {
      type: Boolean,
      default: true
    },
    subheading: [String, Number],
    customSort: Function,
    customSearch: Function,
    sticky: Boolean,
    headerSelectable: Boolean,
    headerClass: String,
    cellClass: String,
    thAttrs: {
      type: Function,
      default: () => ({})
    },
    tdAttrs: {
      type: Function,
      default: () => ({})
    }
  },
  data() {
    return {
      newKey: this.customKey || this.label,
      _isTableColumn: true
    };
  },
  computed: {
    thClasses() {
      const attrs = this.thAttrs(this);
      const classes = [this.headerClass, {
        "is-sortable": this.sortable,
        "is-sticky": this.sticky,
        "is-unselectable": this.isHeaderUnSelectable
      }];
      if (attrs && attrs.class) {
        classes.push(attrs.class);
      }
      return classes;
    },
    thStyle() {
      const attrs = this.thAttrs(this);
      const style = [this.style];
      if (attrs && attrs.style) {
        style.push(attrs.style);
      }
      return style;
    },
    thWrapStyle() {
      const width = toCssWidth(this.width);
      if (width != null && !width.trim().endsWith("%")) {
        return { width };
      } else {
        return {};
      }
    },
    rootClasses() {
      return [this.cellClass, {
        "has-text-right": this.numeric && !this.centered,
        "has-text-centered": this.centered,
        "is-sticky": this.sticky
      }];
    },
    style() {
      var _a;
      return {
        width: (_a = toCssWidth(this.width)) != null ? _a : void 0
        // null → undefined to satisfy StyleValue
      };
    },
    hasDefaultSlot() {
      return !!this.$slots.default;
    },
    /*
     * Return if column header is un-selectable
     */
    isHeaderUnSelectable() {
      return !this.headerSelectable && this.sortable;
    }
  },
  methods: {
    getRootClasses(row) {
      const attrs = this.tdAttrs(row, this);
      const classes = [this.rootClasses];
      if (attrs && attrs.class) {
        classes.push(attrs.class);
      }
      return classes;
    },
    getRootStyle(row) {
      const attrs = this.tdAttrs(row, this);
      const style = [];
      if (attrs && attrs.style) {
        style.push(attrs.style);
      }
      return style;
    }
  },
  created() {
    if (!this.$table) {
      throw new Error("You should wrap bTableColumn on a bTable");
    }
    this.$table._registerTableColumn(this);
  },
  beforeUnmount() {
    this.$table._unregisterTableColumn(this);
  },
  render() {
    return null;
  }
});

const Plugin$7 = {
  install(Vue) {
    registerComponent(Vue, Table);
    registerComponent(Vue, _sfc_main$5);
  }
};

var _sfc_main$4 = defineComponent({
  name: "BTabs",
  components: {
    BIcon,
    BSlotComponent
  },
  mixins: [TabbedMixin("tab")],
  props: {
    expanded: {
      type: Boolean,
      default: () => {
        return config.defaultTabsExpanded;
      }
    },
    type: {
      type: [String, Object],
      default: () => {
        return config.defaultTabsType;
      }
    },
    animated: {
      type: Boolean,
      default: () => {
        return config.defaultTabsAnimated;
      }
    },
    multiline: Boolean
  },
  data() {
    return {
      currentFocus: null
    };
  },
  computed: {
    mainClasses() {
      return {
        "is-fullwidth": this.expanded,
        "is-vertical": this.vertical,
        "is-multiline": this.multiline,
        [this.position]: this.position && this.vertical
      };
    },
    navClasses() {
      return [
        this.type,
        this.size,
        {
          [this.position]: this.position && !this.vertical,
          "is-fullwidth": this.expanded,
          "is-toggle": this.type === "is-toggle-rounded"
        }
      ];
    }
  },
  methods: {
    giveFocusToTab(tab) {
      if (Array.isArray(tab)) {
        tab = tab[0];
        if (tab == null) {
          return;
        }
      }
      if (tab.$el && tab.$el.focus) {
        tab.$el.focus();
      } else if (tab.focus) {
        tab.focus();
      }
    },
    manageTablistKeydown(event) {
      const { key } = event;
      switch (key) {
        case (this.vertical ? "ArrowUp" : "ArrowLeft"):
        case (this.vertical ? "Up" : "Left"): {
          let prevIdx = this.getPrevItemIdx(this.currentFocus, true);
          if (prevIdx === null) {
            prevIdx = this.getPrevItemIdx(Infinity, true);
          }
          const prevItem = this.items.find((i) => i.index === prevIdx);
          if (prevItem && this.$refs[`tabLink${prevIdx}`] && !prevItem.disabled) {
            this.giveFocusToTab(this.$refs[`tabLink${prevIdx}`]);
          }
          event.preventDefault();
          break;
        }
        case (this.vertical ? "ArrowDown" : "ArrowRight"):
        case (this.vertical ? "Down" : "Right"): {
          let nextIdx = this.getNextItemIdx(this.currentFocus, true);
          if (nextIdx === null) {
            nextIdx = this.getNextItemIdx(-1, true);
          }
          const nextItem = this.items.find((i) => i.index === nextIdx);
          if (nextItem && this.$refs[`tabLink${nextIdx}`] && !nextItem.disabled) {
            this.giveFocusToTab(this.$refs[`tabLink${nextIdx}`]);
          }
          event.preventDefault();
          break;
        }
      }
    },
    manageTabKeydown(event, childItem) {
      const { key } = event;
      switch (key) {
        case " ":
        case "Space":
        case "Spacebar":
        case "Enter": {
          this.childClick(childItem);
          event.preventDefault();
          break;
        }
      }
    }
  }
});

const _hoisted_1$4 = ["aria-orientation"];
const _hoisted_2$3 = ["aria-controls", "aria-selected"];
const _hoisted_3$1 = ["id", "tabindex", "onFocus", "onClick", "onKeydown"];
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_slot_component = resolveComponent("b-slot-component");
  const _component_b_icon = resolveComponent("b-icon");
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["b-tabs", _ctx.mainClasses])
    },
    [
      createBaseVNode(
        "nav",
        {
          class: normalizeClass(["tabs", _ctx.navClasses]),
          onKeydown: _cache[0] || (_cache[0] = (...args) => _ctx.manageTablistKeydown && _ctx.manageTablistKeydown(...args))
        },
        [
          renderSlot(_ctx.$slots, "start"),
          createBaseVNode("ul", {
            "aria-orientation": _ctx.vertical ? "vertical" : "horizontal",
            role: "tablist"
          }, [
            (openBlock(true), createElementBlock(
              Fragment,
              null,
              renderList(_ctx.items, (childItem) => {
                return withDirectives((openBlock(), createElementBlock("li", {
                  key: childItem.uniqueValue,
                  class: normalizeClass([childItem.headerClass, {
                    "is-active": childItem.isActive,
                    "is-disabled": childItem.disabled
                  }]),
                  role: "tab",
                  "aria-controls": `${childItem.uniqueValue}-content`,
                  "aria-selected": `${childItem.isActive}`
                }, [
                  childItem.$slots.header ? (openBlock(), createBlock(_component_b_slot_component, {
                    key: 0,
                    ref_for: true,
                    ref: `tabLink${childItem.index}`,
                    component: childItem,
                    name: "header",
                    tag: "a",
                    id: `${childItem.uniqueValue}-label`,
                    tabindex: childItem.isActive ? 0 : -1,
                    onFocus: ($event) => _ctx.currentFocus = childItem.index,
                    onClick: ($event) => _ctx.childClick(childItem),
                    onKeydown: ($event) => _ctx.manageTabKeydown($event, childItem)
                  }, null, 8, ["component", "id", "tabindex", "onFocus", "onClick", "onKeydown"])) : (openBlock(), createElementBlock("a", {
                    key: 1,
                    ref_for: true,
                    ref: `tabLink${childItem.index}`,
                    id: `${childItem.uniqueValue}-label`,
                    tabindex: childItem.isActive ? 0 : -1,
                    onFocus: ($event) => _ctx.currentFocus = childItem.index,
                    onClick: ($event) => _ctx.childClick(childItem),
                    onKeydown: ($event) => _ctx.manageTabKeydown($event, childItem)
                  }, [
                    childItem.icon ? (openBlock(), createBlock(_component_b_icon, {
                      key: 0,
                      icon: childItem.icon,
                      pack: childItem.iconPack,
                      size: _ctx.size
                    }, null, 8, ["icon", "pack", "size"])) : createCommentVNode("v-if", true),
                    createBaseVNode(
                      "span",
                      null,
                      toDisplayString$1(childItem.label),
                      1
                      /* TEXT */
                    )
                  ], 40, _hoisted_3$1))
                ], 10, _hoisted_2$3)), [
                  [vShow, childItem.visible]
                ]);
              }),
              128
              /* KEYED_FRAGMENT */
            ))
          ], 8, _hoisted_1$4),
          renderSlot(_ctx.$slots, "end")
        ],
        34
        /* CLASS, NEED_HYDRATION */
      ),
      createBaseVNode(
        "section",
        {
          class: normalizeClass(["tab-content", { "is-transitioning": _ctx.isTransitioning }])
        },
        [
          renderSlot(_ctx.$slots, "default")
        ],
        2
        /* CLASS */
      )
    ],
    2
    /* CLASS */
  );
}
var Tabs = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$5]]);

var _sfc_main$3 = defineComponent({
  name: "BTabItem",
  mixins: [TabbedChildMixin("tab")],
  props: {
    disabled: Boolean
  },
  data() {
    return {
      elementClass: "tab-item",
      elementRole: "tabpanel"
    };
  }
});

const Plugin$6 = {
  install(Vue) {
    registerComponent(Vue, Tabs);
    registerComponent(Vue, _sfc_main$3);
  }
};

var _sfc_main$2 = defineComponent({
  name: "BTag",
  components: { BIcon },
  props: {
    attached: Boolean,
    closable: Boolean,
    type: [String, Object],
    size: String,
    rounded: Boolean,
    disabled: Boolean,
    ellipsis: Boolean,
    tabstop: {
      type: Boolean,
      default: true
    },
    ariaCloseLabel: String,
    icon: String,
    iconType: String,
    iconPack: String,
    closeType: String,
    closeIcon: String,
    closeIconPack: String,
    closeIconType: String
  },
  emits: {
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    click: (_) => true,
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    close: (_) => true
  },
  computed: {
    // setting a boolean attribute `false` does not remove it on Vue 3.
    // `null` or `undefined` has to be given to remove it.
    disabledOrUndefined() {
      return this.disabled || void 0;
    }
  },
  methods: {
    /*
    * Emit close event when delete button is clicked
    * or delete key is pressed.
    */
    close(event) {
      if (this.disabled) return;
      this.$emit("close", event);
    },
    /*
    * Emit click event when tag is clicked.
    */
    click(event) {
      if (this.disabled) return;
      this.$emit("click", event);
    }
  }
});

const _hoisted_1$3 = {
  key: 0,
  class: "tags has-addons inline-tags"
};
const _hoisted_2$2 = ["aria-label", "tabindex", "disabled"];
const _hoisted_3 = ["aria-label", "disabled", "tabindex"];
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_icon = resolveComponent("b-icon");
  return _ctx.attached && _ctx.closable ? (openBlock(), createElementBlock("div", _hoisted_1$3, [
    createBaseVNode(
      "span",
      {
        class: normalizeClass(["tag", [_ctx.type, _ctx.size, { "is-rounded": _ctx.rounded }]])
      },
      [
        _ctx.icon ? (openBlock(), createBlock(_component_b_icon, {
          key: 0,
          icon: _ctx.icon,
          size: _ctx.size,
          type: _ctx.iconType,
          pack: _ctx.iconPack
        }, null, 8, ["icon", "size", "type", "pack"])) : createCommentVNode("v-if", true),
        createBaseVNode(
          "span",
          {
            class: normalizeClass({ "has-ellipsis": _ctx.ellipsis }),
            onClick: _cache[0] || (_cache[0] = (...args) => _ctx.click && _ctx.click(...args))
          },
          [
            renderSlot(_ctx.$slots, "default")
          ],
          2
          /* CLASS */
        )
      ],
      2
      /* CLASS */
    ),
    createBaseVNode("a", {
      class: normalizeClass(["tag", [
        _ctx.size,
        _ctx.closeType,
        { "is-rounded": _ctx.rounded },
        _ctx.closeIcon ? "has-delete-icon" : "is-delete"
      ]]),
      role: "button",
      "aria-label": _ctx.ariaCloseLabel,
      tabindex: _ctx.tabstop ? 0 : void 0,
      disabled: _ctx.disabledOrUndefined,
      onClick: _cache[1] || (_cache[1] = (...args) => _ctx.close && _ctx.close(...args)),
      onKeyup: _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => _ctx.close && _ctx.close(...args), ["prevent"]), ["delete"]))
    }, [
      _ctx.closeIcon ? (openBlock(), createBlock(_component_b_icon, {
        key: 0,
        "custom-class": "",
        icon: _ctx.closeIcon,
        size: _ctx.size,
        type: _ctx.closeIconType,
        pack: _ctx.closeIconPack
      }, null, 8, ["icon", "size", "type", "pack"])) : createCommentVNode("v-if", true)
    ], 42, _hoisted_2$2)
  ])) : (openBlock(), createElementBlock(
    "span",
    {
      key: 1,
      class: normalizeClass(["tag", [_ctx.type, _ctx.size, { "is-rounded": _ctx.rounded }]])
    },
    [
      _ctx.icon ? (openBlock(), createBlock(_component_b_icon, {
        key: 0,
        icon: _ctx.icon,
        size: _ctx.size,
        type: _ctx.iconType,
        pack: _ctx.iconPack
      }, null, 8, ["icon", "size", "type", "pack"])) : createCommentVNode("v-if", true),
      createBaseVNode(
        "span",
        {
          class: normalizeClass({ "has-ellipsis": _ctx.ellipsis }),
          onClick: _cache[3] || (_cache[3] = (...args) => _ctx.click && _ctx.click(...args))
        },
        [
          renderSlot(_ctx.$slots, "default")
        ],
        2
        /* CLASS */
      ),
      _ctx.closable ? (openBlock(), createElementBlock("a", {
        key: 1,
        role: "button",
        "aria-label": _ctx.ariaCloseLabel,
        class: normalizeClass(["delete is-small", _ctx.closeType]),
        disabled: _ctx.disabledOrUndefined,
        tabindex: _ctx.tabstop ? 0 : void 0,
        onClick: _cache[4] || (_cache[4] = (...args) => _ctx.close && _ctx.close(...args)),
        onKeyup: _cache[5] || (_cache[5] = withKeys(withModifiers((...args) => _ctx.close && _ctx.close(...args), ["prevent"]), ["delete"]))
      }, null, 42, _hoisted_3)) : createCommentVNode("v-if", true)
    ],
    2
    /* CLASS */
  ));
}
var BTag = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$4]]);

var _sfc_main$1 = defineComponent({
  name: "BTaglist",
  props: {
    attached: Boolean
  }
});

function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      class: normalizeClass(["tags", { "has-addons": _ctx.attached }])
    },
    [
      renderSlot(_ctx.$slots, "default")
    ],
    2
    /* CLASS */
  );
}
var Taglist = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$3]]);

const Plugin$5 = {
  install(Vue) {
    registerComponent(Vue, BTag);
    registerComponent(Vue, Taglist);
  }
};

var _sfc_main = defineComponent({
  name: "BTaginput",
  components: {
    BAutocomplete,
    BTag
  },
  mixins: [CompatFallthroughMixin, FormElementMixin],
  props: {
    modelValue: {
      type: Array,
      default: () => []
    },
    data: {
      type: Array,
      default: () => []
    },
    type: String,
    closeType: String,
    attached: {
      type: Boolean,
      default: false
    },
    maxtags: Number,
    hasCounter: {
      type: Boolean,
      default: () => config.defaultTaginputHasCounter
    },
    field: {
      type: String,
      default: "value"
    },
    autocomplete: Boolean,
    groupField: String,
    groupOptions: String,
    nativeAutocomplete: String,
    openOnFocus: Boolean,
    keepOpen: {
      type: Boolean,
      default: true
    },
    keepFirst: Boolean,
    disabled: Boolean,
    ellipsis: Boolean,
    closable: {
      type: Boolean,
      default: true
    },
    ariaCloseLabel: String,
    confirmKeys: {
      type: Array,
      default: () => [",", "Tab", "Enter"]
    },
    removeOnKeys: {
      type: Array,
      default: () => ["Backspace"]
    },
    allowNew: Boolean,
    onPasteSeparators: {
      type: Array,
      default: () => [","]
    },
    beforeAdding: {
      type: Function,
      default: () => true
    },
    allowDuplicates: {
      type: Boolean,
      default: false
    },
    checkInfiniteScroll: {
      type: Boolean,
      default: false
    },
    createTag: {
      type: Function,
      default: (tag) => tag
    },
    appendToBody: Boolean
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    add: (tag) => true,
    "infinite-scroll": () => true,
    remove: (tag) => true,
    typing: (value) => true,
    "update:modelValue": (tags) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      tags: Array.isArray(this.modelValue) ? this.modelValue.slice(0) : this.modelValue || [],
      newTag: "",
      isComposing: false,
      _elementRef: "autocomplete",
      _isTaginput: true,
      requestID: null
    };
  },
  computed: {
    rootClasses() {
      return {
        "is-expanded": this.expanded
      };
    },
    containerClasses() {
      return {
        "is-focused": this.isFocused,
        "is-focusable": this.hasInput
      };
    },
    valueLength() {
      return this.newTag.trim().length;
    },
    hasDefaultSlot() {
      return !!this.$slots.default;
    },
    hasEmptySlot() {
      return !!this.$slots.empty;
    },
    hasHeaderSlot() {
      return !!this.$slots.header;
    },
    hasFooterSlot() {
      return !!this.$slots.footer;
    },
    /*
     * Show the input field if a maxtags hasn't been set or reached.
     */
    hasInput() {
      return this.maxtags == null || this.maxtags === 1 || this.tagsLength < this.maxtags;
    },
    tagsLength() {
      return this.tags.length;
    },
    /*
     * If Taginput has onPasteSeparators prop,
     * returning new RegExp used to split pasted string.
     */
    separatorsAsRegExp() {
      const sep = this.onPasteSeparators;
      return sep.length ? new RegExp(sep.map((s) => {
        return s ? s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&") : null;
      }).join("|"), "g") : null;
    },
    disabledOrUndefined() {
      return this.disabled || void 0;
    }
  },
  watch: {
    /*
     * When v-model is changed set internal value.
     */
    modelValue(value) {
      this.tags = Array.isArray(value) ? value.slice(0) : value || [];
    },
    hasInput() {
      if (!this.hasInput) this.onBlur();
    }
  },
  methods: {
    addTag(tag) {
      const tagToAdd = tag || this.newTag.trim();
      if (tagToAdd) {
        if (!this.autocomplete) {
          const reg = this.separatorsAsRegExp;
          if (reg && tagToAdd.match(reg)) {
            tagToAdd.split(reg).map((t) => t.trim()).filter((t) => t.length !== 0).map(this.addTag);
            return;
          }
        }
        const add = !this.allowDuplicates ? this.tags.indexOf(tagToAdd) === -1 : true;
        if (add && this.beforeAdding(tagToAdd)) {
          if (this.maxtags === 1) {
            this.tags = [];
          }
          this.tags.push(this.createTag(tagToAdd));
          this.$emit("update:modelValue", this.tags);
          this.$emit("add", tagToAdd);
        }
        this.requestID = requestAnimationFrame(() => {
          this.newTag = "";
          this.$emit("typing", "");
        });
      }
    },
    getNormalizedTagText(tag) {
      if (typeof tag === "object") {
        tag = getValueByPath(tag, this.field);
      }
      return `${tag}`;
    },
    customOnBlur(event) {
      if (!this.autocomplete) this.addTag();
      this.onBlur(event);
    },
    onSelect(option) {
      if (!option) return;
      this.addTag(option);
      this.$nextTick(() => {
        this.newTag = "";
      });
    },
    removeTag(index, event) {
      const tag = this.tags.splice(index, 1)[0];
      this.$emit("update:modelValue", this.tags);
      this.$emit("remove", tag);
      if (event) event.stopPropagation();
      if (this.openOnFocus && this.$refs.autocomplete) {
        this.$refs.autocomplete.focus();
      }
      return tag;
    },
    removeLastTag() {
      if (this.tagsLength > 0) {
        this.removeTag(this.tagsLength - 1);
      }
    },
    keydown(event) {
      const { key } = event;
      if (this.removeOnKeys.indexOf(key) !== -1 && !this.newTag.length) {
        this.removeLastTag();
      }
      if (this.autocomplete && !this.allowNew) return;
      if (this.confirmKeys.indexOf(key) >= 0) {
        if (key !== "Tab") event.preventDefault();
        if (key === "Enter" && this.isComposing) return;
        this.addTag();
      }
    },
    onTyping(event) {
      this.$emit("typing", typeof event === "number" ? event : event == null ? void 0 : event.trim());
    },
    emitInfiniteScroll() {
      this.$emit("infinite-scroll");
    }
  },
  beforeUnmount() {
    cancelAnimationFrame(this.requestID);
  }
});

const _hoisted_1$2 = ["disabled"];
const _hoisted_2$1 = {
  key: 0,
  class: "help counter"
};
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_b_tag = resolveComponent("b-tag");
  const _component_b_autocomplete = resolveComponent("b-autocomplete");
  return openBlock(), createElementBlock(
    "div",
    mergeProps({
      class: ["taginput control", _ctx.rootClasses]
    }, _ctx.rootAttrs),
    [
      createBaseVNode("div", {
        class: normalizeClass(["taginput-container input", [_ctx.statusType, _ctx.size, _ctx.containerClasses]]),
        disabled: _ctx.disabledOrUndefined,
        onClick: _cache[3] || (_cache[3] = ($event) => _ctx.hasInput && _ctx.focus())
      }, [
        renderSlot(_ctx.$slots, "selected", { tags: _ctx.tags }, () => [
          (openBlock(true), createElementBlock(
            Fragment,
            null,
            renderList(_ctx.tags, (tag, index) => {
              return openBlock(), createBlock(_component_b_tag, {
                key: _ctx.getNormalizedTagText(tag) + index,
                type: _ctx.type,
                "close-type": _ctx.closeType,
                size: _ctx.size,
                rounded: _ctx.rounded,
                attached: _ctx.attached,
                tabstop: false,
                disabled: _ctx.disabledOrUndefined,
                ellipsis: _ctx.ellipsis,
                closable: _ctx.closable,
                "aria-close-label": _ctx.ariaCloseLabel,
                title: _ctx.ellipsis && _ctx.getNormalizedTagText(tag),
                onClose: ($event) => _ctx.removeTag(index, $event)
              }, {
                default: withCtx(() => [
                  renderSlot(_ctx.$slots, "tag", { tag }, () => [
                    createTextVNode(
                      toDisplayString$1(_ctx.getNormalizedTagText(tag)),
                      1
                      /* TEXT */
                    )
                  ])
                ]),
                _: 2
                /* DYNAMIC */
              }, 1032, ["type", "close-type", "size", "rounded", "attached", "disabled", "ellipsis", "closable", "aria-close-label", "title", "onClose"]);
            }),
            128
            /* KEYED_FRAGMENT */
          ))
        ]),
        _ctx.hasInput ? (openBlock(), createBlock(_component_b_autocomplete, mergeProps({
          key: 0,
          ref: "autocomplete",
          modelValue: _ctx.newTag,
          "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.newTag = $event)
        }, _ctx.fallthroughAttrs, {
          data: _ctx.data,
          field: _ctx.field,
          icon: _ctx.icon,
          "icon-pack": _ctx.iconPack,
          maxlength: _ctx.maxlength,
          "has-counter": false,
          size: _ctx.size,
          disabled: _ctx.disabledOrUndefined,
          loading: _ctx.loading,
          autocomplete: _ctx.nativeAutocomplete,
          "open-on-focus": _ctx.openOnFocus,
          "keep-open": _ctx.keepOpen,
          "keep-first": _ctx.keepFirst,
          "group-field": _ctx.groupField,
          "group-options": _ctx.groupOptions,
          "use-html5-validation": _ctx.useHtml5Validation,
          "check-infinite-scroll": _ctx.checkInfiniteScroll,
          "append-to-body": _ctx.appendToBody,
          "confirm-keys": _ctx.confirmKeys,
          onTyping: _ctx.onTyping,
          onFocus: _ctx.onFocus,
          onBlur: _ctx.customOnBlur,
          onKeydown: _ctx.keydown,
          onCompositionstart: _cache[1] || (_cache[1] = ($event) => _ctx.isComposing = true),
          onCompositionend: _cache[2] || (_cache[2] = ($event) => _ctx.isComposing = false),
          onSelect: _ctx.onSelect,
          onInfiniteScroll: _ctx.emitInfiniteScroll
        }), createSlots({
          _: 2
          /* DYNAMIC */
        }, [
          _ctx.hasHeaderSlot ? {
            name: "header",
            fn: withCtx(() => [
              renderSlot(_ctx.$slots, "header")
            ]),
            key: "0"
          } : void 0,
          _ctx.hasDefaultSlot ? {
            name: "default",
            fn: withCtx((props) => [
              renderSlot(_ctx.$slots, "default", {
                option: props.option,
                index: props.index
              })
            ]),
            key: "1"
          } : void 0,
          _ctx.hasEmptySlot ? {
            name: "empty",
            fn: withCtx(() => [
              renderSlot(_ctx.$slots, "empty")
            ]),
            key: "2"
          } : void 0,
          _ctx.hasFooterSlot ? {
            name: "footer",
            fn: withCtx(() => [
              renderSlot(_ctx.$slots, "footer")
            ]),
            key: "3"
          } : void 0
        ]), 1040, ["modelValue", "data", "field", "icon", "icon-pack", "maxlength", "size", "disabled", "loading", "autocomplete", "open-on-focus", "keep-open", "keep-first", "group-field", "group-options", "use-html5-validation", "check-infinite-scroll", "append-to-body", "confirm-keys", "onTyping", "onFocus", "onBlur", "onKeydown", "onSelect", "onInfiniteScroll"])) : createCommentVNode("v-if", true)
      ], 10, _hoisted_1$2),
      _ctx.hasCounter && (_ctx.maxtags || _ctx.maxlength) ? (openBlock(), createElementBlock("small", _hoisted_2$1, [
        _ctx.maxlength && _ctx.valueLength > 0 ? (openBlock(), createElementBlock(
          Fragment,
          { key: 0 },
          [
            createTextVNode(
              toDisplayString$1(_ctx.valueLength) + " / " + toDisplayString$1(_ctx.maxlength),
              1
              /* TEXT */
            )
          ],
          64
          /* STABLE_FRAGMENT */
        )) : _ctx.maxtags ? (openBlock(), createElementBlock(
          Fragment,
          { key: 1 },
          [
            createTextVNode(
              toDisplayString$1(_ctx.tagsLength) + " / " + toDisplayString$1(_ctx.maxtags),
              1
              /* TEXT */
            )
          ],
          64
          /* STABLE_FRAGMENT */
        )) : createCommentVNode("v-if", true)
      ])) : createCommentVNode("v-if", true)
    ],
    16
    /* FULL_PROPS */
  );
}
var Taginput = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render$2]]);

const Plugin$4 = {
  install(Vue) {
    registerComponent(Vue, Taginput);
  }
};

const Plugin$3 = {
  install(Vue) {
    registerComponent(Vue, Timepicker);
  }
};

const Toast$1 = defineComponent({
  name: "BToast",
  mixins: [NoticeMixin],
  data() {
    return {
      newDuration: this.duration || config.defaultToastDuration
    };
  }
});

const _hoisted_1$1 = ["aria-hidden"];
const _hoisted_2 = ["innerHTML"];
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createBlock(Transition, {
    "enter-active-class": _ctx.transition.enter,
    "leave-active-class": _ctx.transition.leave,
    persisted: ""
  }, {
    default: withCtx(() => [
      withDirectives(createBaseVNode("div", {
        onMouseenter: _cache[0] || (_cache[0] = (...args) => _ctx.pause && _ctx.pause(...args)),
        onMouseleave: _cache[1] || (_cache[1] = (...args) => _ctx.removePause && _ctx.removePause(...args)),
        class: normalizeClass(["toast", [_ctx.type, _ctx.position]]),
        "aria-hidden": !_ctx.isActive,
        role: "alert"
      }, [
        _ctx.$slots.default ? renderSlot(_ctx.$slots, "default", { key: 0 }) : (openBlock(), createElementBlock(
          Fragment,
          { key: 1 },
          [
            createCommentVNode(" eslint-disable-next-line vue/no-v-html "),
            createBaseVNode("div", { innerHTML: _ctx.message }, null, 8, _hoisted_2)
          ],
          64
          /* STABLE_FRAGMENT */
        ))
      ], 42, _hoisted_1$1), [
        [vShow, _ctx.isActive]
      ])
    ]),
    _: 3
    /* FORWARDED */
  }, 8, ["enter-active-class", "leave-active-class"]);
}
var Toast = /* @__PURE__ */ _export_sfc(Toast$1, [["render", _sfc_render$1]]);

var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp.call(b, prop))
      __defNormalProp(a, prop, b[prop]);
  if (__getOwnPropSymbols)
    for (var prop of __getOwnPropSymbols(b)) {
      if (__propIsEnum.call(b, prop))
        __defNormalProp(a, prop, b[prop]);
    }
  return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
var __objRest = (source, exclude) => {
  var target = {};
  for (var prop in source)
    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
      target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols)
    for (var prop of __getOwnPropSymbols(source)) {
      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
        target[prop] = source[prop];
    }
  return target;
};
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
class ToastProgrammatic {
  constructor(app) {
    __publicField(this, "app");
    this.app = app;
  }
  open(params) {
    if (typeof params === "string") {
      params = {
        message: params
      };
    }
    let slot;
    let _a = params, { message } = _a, restParams = __objRest(_a, ["message"]);
    if (typeof message !== "string") {
      slot = message;
      message = void 0;
    }
    const propsData = __spreadValues({
      position: config.defaultToastPosition || "is-top",
      message
    }, restParams);
    const container = document.createElement("div");
    const vueInstance = createApp({
      data() {
        return {
          toastVNode: null
        };
      },
      methods: {
        close() {
          const toast = getComponentFromVNode(this.toastVNode);
          if (toast) {
            toast.close();
          }
        }
      },
      render() {
        this.toastVNode = h(
          Toast,
          __spreadProps(__spreadValues({}, propsData), {
            // On Vue 3, $destroy is no longer available.
            // A toast has to be unmounted manually.
            onClose: () => {
              if (typeof propsData.onClose === "function") {
                propsData.onClose();
              }
              setTimeout(() => {
                vueInstance.unmount();
              }, 150);
            }
          }),
          slot != null ? { default: () => slot } : void 0
        );
        return this.toastVNode;
      }
    });
    if (this.app) {
      copyAppContext(this.app, vueInstance);
    } else {
      vueInstance.config.globalProperties.$buefy = {};
    }
    return vueInstance.mount(container);
  }
}
const toastInjectionKey = Symbol("Buefy Toast");
function useToast() {
  return inject(toastInjectionKey);
}
const Plugin$2 = {
  install(Vue) {
    registerComponentProgrammatic(Vue, "toast", new ToastProgrammatic(Vue), toastInjectionKey);
  }
};

const Plugin$1 = {
  install(Vue) {
    registerComponent(Vue, Tooltip);
  }
};

const Upload$1 = defineComponent({
  name: "BUpload",
  mixins: [CompatFallthroughMixin, FormElementMixin],
  props: {
    modelValue: {
      type: [Object, Function, File, Array]
    },
    multiple: Boolean,
    disabled: Boolean,
    accept: String,
    dragDrop: Boolean,
    type: {
      type: String,
      default: "is-primary"
    },
    native: {
      type: Boolean,
      default: false
    },
    expanded: {
      type: Boolean,
      default: false
    },
    rounded: {
      type: Boolean,
      default: false
    }
  },
  emits: {
    /* eslint-disable @typescript-eslint/no-unused-vars */
    invalid: () => true,
    "update:modelValue": (newValue) => true
    /* eslint-enable @typescript-eslint/no-unused-vars */
  },
  data() {
    return {
      newValue: this.modelValue,
      dragDropFocus: false,
      _elementRef: "input"
    };
  },
  computed: {
    disabledOrUndefined() {
      return this.disabled || void 0;
    }
  },
  watch: {
    modelValue(value) {
      this.newValue = value;
      if (!value || Array.isArray(value) && value.length === 0) {
        this.$refs.input.value = "";
      }
      !this.isValid && !this.dragDrop && this.checkHtml5Validity();
    }
  },
  methods: {
    onFileChange(event) {
      var _a, _b;
      if (this.disabled || this.loading) return;
      if (this.dragDrop) this.updateDragDropFocus(false);
      const value = (_b = (_a = event.target.files) != null ? _a : event.dataTransfer.files) != null ? _b : [];
      if (value.length === 0) {
        if (!this.newValue) return;
        if (this.native) this.newValue = null;
      } else if (!this.multiple) {
        if (this.dragDrop && value.length !== 1) return;
        else {
          const file = value[0];
          if (this.checkType(file)) this.newValue = file;
          else if (this.newValue) {
            this.newValue = null;
            this.clearInput();
          } else {
            this.clearInput();
            this.checkHtml5Validity();
            return;
          }
        }
      } else {
        let newValues = false;
        if (this.native || !this.newValue) {
          this.newValue = [];
          newValues = true;
        }
        for (let i = 0; i < value.length; i++) {
          const file = value[i];
          if (this.checkType(file) && Array.isArray(this.newValue)) {
            this.newValue.push(file);
            newValues = true;
          }
        }
        if (!newValues) return;
      }
      this.$emit("update:modelValue", this.newValue);
      !this.dragDrop && this.checkHtml5Validity();
    },
    clearInput() {
      this.$refs.input.value = "";
    },
    updateDragDropFocus(focus) {
      if (!this.disabled && !this.loading) {
        this.dragDropFocus = focus;
      }
    },
    checkType(file) {
      if (!this.accept) return true;
      const types = this.accept.split(",");
      if (types.length === 0) return true;
      let valid = false;
      for (let i = 0; i < types.length && !valid; i++) {
        const type = types[i].trim();
        if (type) {
          if (type.substring(0, 1) === ".") {
            const extension = file.name.toLowerCase().slice(-type.length);
            if (extension === type.toLowerCase()) {
              valid = true;
            }
          } else {
            if (file.type.match(type)) {
              valid = true;
            }
          }
        }
      }
      if (!valid) this.$emit("invalid");
      return valid;
    }
  }
});

const _hoisted_1 = ["multiple", "accept", "disabled"];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "label",
    mergeProps({ class: "upload control" }, _ctx.rootAttrs, {
      class: [{ "is-expanded": _ctx.expanded, "is-rounded": _ctx.rounded }]
    }),
    [
      !_ctx.dragDrop ? renderSlot(_ctx.$slots, "default", { key: 0 }) : (openBlock(), createElementBlock(
        "div",
        {
          key: 1,
          class: normalizeClass(["upload-draggable", [_ctx.type, {
            "is-loading": _ctx.loading,
            "is-disabled": _ctx.disabled,
            "is-hovered": _ctx.dragDropFocus,
            "is-expanded": _ctx.expanded
          }]]),
          onDragover: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.updateDragDropFocus(true), ["prevent"])),
          onDragleave: _cache[1] || (_cache[1] = withModifiers(($event) => _ctx.updateDragDropFocus(false), ["prevent"])),
          onDragenter: _cache[2] || (_cache[2] = withModifiers(($event) => _ctx.updateDragDropFocus(true), ["prevent"])),
          onDrop: _cache[3] || (_cache[3] = withModifiers((...args) => _ctx.onFileChange && _ctx.onFileChange(...args), ["prevent"]))
        },
        [
          renderSlot(_ctx.$slots, "default")
        ],
        34
        /* CLASS, NEED_HYDRATION */
      )),
      createBaseVNode("input", mergeProps({
        ref: "input",
        type: "file"
      }, _ctx.fallthroughAttrs, {
        multiple: _ctx.multiple,
        accept: _ctx.accept,
        disabled: _ctx.disabledOrUndefined,
        onChange: _cache[4] || (_cache[4] = (...args) => _ctx.onFileChange && _ctx.onFileChange(...args))
      }), null, 16, _hoisted_1)
    ],
    16
    /* FULL_PROPS */
  );
}
var Upload = /* @__PURE__ */ _export_sfc(Upload$1, [["render", _sfc_render]]);

const Plugin = {
  install(Vue) {
    registerComponent(Vue, Upload);
  }
};

const allComponents = [
  Plugin$F,
  Plugin$E,
  Plugin$D,
  Plugin$C,
  Plugin$B,
  Plugin$x,
  Plugin$A,
  Plugin$w,
  Plugin$v,
  Plugin$u,
  Plugin$t,
  Plugin$z,
  Plugin$s,
  Plugin$r,
  Plugin$q,
  Plugin$y,
  Plugin$p,
  Plugin$o,
  Plugin$n,
  Plugin$m,
  Plugin$k,
  Plugin$l,
  Plugin$j,
  Plugin$i,
  Plugin$h,
  Plugin$g,
  Plugin$f,
  Plugin$e,
  Plugin$d,
  Plugin$c,
  Plugin$b,
  Plugin$a,
  Plugin$9,
  Plugin$8,
  Plugin$7,
  Plugin$6,
  Plugin$5,
  Plugin$4,
  Plugin$3,
  Plugin$2,
  Plugin$1,
  Plugin
];

const Buefy = {
  install(Vue, options = {}) {
    setOptions(merge(config, options, true));
    allComponents.forEach((component) => Vue.use(component));
    registerComponentProgrammatic(Vue, "config", ConfigComponent, configInjectionKey);
    Vue.config.globalProperties.$buefy.globalNoticeInterval = void 0;
  }
};

/*!
  * shared v9.14.5
  * (c) 2025 kazuya kawaguchi
  * Released under the MIT License.
  */
function warn(msg, err) {
  if (typeof console !== "undefined") {
    console.warn(`[intlify] ` + msg);
    if (err) {
      console.warn(err.stack);
    }
  }
}
const hasWarned = {};
function warnOnce(msg) {
  if (!hasWarned[msg]) {
    hasWarned[msg] = true;
    warn(msg);
  }
}
const inBrowser = typeof window !== "undefined";
let mark;
let measure;
if (false) {
  const perf = inBrowser && window.performance;
  if (perf && perf.mark && perf.measure && perf.clearMarks && // @ts-ignore browser compat
  perf.clearMeasures) {
    mark = (tag) => {
      perf.mark(tag);
    };
    measure = (name, startTag, endTag) => {
      perf.measure(name, startTag, endTag);
      perf.clearMarks(startTag);
      perf.clearMarks(endTag);
    };
  }
}
const RE_ARGS$1 = /\{([0-9a-zA-Z]+)\}/g;
function format$2(message, ...args) {
  if (args.length === 1 && isObject$1(args[0])) {
    args = args[0];
  }
  if (!args || !args.hasOwnProperty) {
    args = {};
  }
  return message.replace(RE_ARGS$1, (match, identifier) => {
    return args.hasOwnProperty(identifier) ? args[identifier] : "";
  });
}
const makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name);
const generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });
const friendlyJSONstringify = (json) => JSON.stringify(json).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029").replace(/\u0027/g, "\\u0027");
const isNumber = (val) => typeof val === "number" && isFinite(val);
const isDate = (val) => toTypeString(val) === "[object Date]";
const isRegExp = (val) => toTypeString(val) === "[object RegExp]";
const isEmptyObject = (val) => isPlainObject$1(val) && Object.keys(val).length === 0;
const assign$1 = Object.assign;
const _create = Object.create;
const create = (obj = null) => _create(obj);
let _globalThis;
const getGlobalThis = () => {
  return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : create());
};
function escapeHtml(rawText) {
  return rawText.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;").replace(/\//g, "&#x2F;").replace(/=/g, "&#x3D;");
}
function escapeAttributeValue(value) {
  return value.replace(/&(?![a-zA-Z0-9#]{2,6};)/g, "&amp;").replace(/"/g, "&quot;").replace(/'/g, "&apos;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
}
function sanitizeTranslatedHtml(html) {
  html = html.replace(/(\w+)\s*=\s*"([^"]*)"/g, (_, attrName, attrValue) => `${attrName}="${escapeAttributeValue(attrValue)}"`);
  html = html.replace(/(\w+)\s*=\s*'([^']*)'/g, (_, attrName, attrValue) => `${attrName}='${escapeAttributeValue(attrValue)}'`);
  const eventHandlerPattern = /\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi;
  if (eventHandlerPattern.test(html)) {
    if (false) {
      warn("Potentially dangerous event handlers detected in translation. Consider removing onclick, onerror, etc. from your translation messages.");
    }
    html = html.replace(/(\s+)(on)(\w+\s*=)/gi, "$1&#111;n$3");
  }
  const javascriptUrlPattern = [
    // In href, src, action, formaction attributes
    /(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,
    // In style attributes within url()
    /(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi
  ];
  javascriptUrlPattern.forEach((pattern) => {
    html = html.replace(pattern, "$1javascript&#58;");
  });
  return html;
}
const hasOwnProperty = Object.prototype.hasOwnProperty;
function hasOwn(obj, key) {
  return hasOwnProperty.call(obj, key);
}
const isArray = Array.isArray;
const isFunction = (val) => typeof val === "function";
const isString$1 = (val) => typeof val === "string";
const isBoolean = (val) => typeof val === "boolean";
const isSymbol = (val) => typeof val === "symbol";
const isObject$1 = (val) => val !== null && typeof val === "object";
const isPromise = (val) => {
  return isObject$1(val) && isFunction(val.then) && isFunction(val.catch);
};
const objectToString = Object.prototype.toString;
const toTypeString = (value) => objectToString.call(value);
const isPlainObject$1 = (val) => {
  if (!isObject$1(val))
    return false;
  const proto = Object.getPrototypeOf(val);
  return proto === null || proto.constructor === Object;
};
const toDisplayString = (val) => {
  return val == null ? "" : isArray(val) || isPlainObject$1(val) && val.toString === objectToString ? JSON.stringify(val, null, 2) : String(val);
};
function join$1(items, separator = "") {
  return items.reduce((str, item, index) => index === 0 ? str + item : str + separator + item, "");
}
const RANGE = 2;
function generateCodeFrame(source, start = 0, end = source.length) {
  const lines = source.split(/\r?\n/);
  let count = 0;
  const res = [];
  for (let i = 0; i < lines.length; i++) {
    count += lines[i].length + 1;
    if (count >= start) {
      for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {
        if (j < 0 || j >= lines.length)
          continue;
        const line = j + 1;
        res.push(`${line}${" ".repeat(3 - String(line).length)}|  ${lines[j]}`);
        const lineLength = lines[j].length;
        if (j === i) {
          const pad = start - (count - lineLength) + 1;
          const length = Math.max(1, end > count ? lineLength - pad : end - start);
          res.push(`   |  ` + " ".repeat(pad) + "^".repeat(length));
        } else if (j > i) {
          if (end > count) {
            const length = Math.max(Math.min(end - count, lineLength), 1);
            res.push(`   |  ` + "^".repeat(length));
          }
          count += lineLength + 1;
        }
      }
      break;
    }
  }
  return res.join("\n");
}
function incrementer(code) {
  let current = code;
  return () => ++current;
}
function createEmitter() {
  const events = /* @__PURE__ */ new Map();
  const emitter = {
    events,
    on(event, handler) {
      const handlers = events.get(event);
      const added = handlers && handlers.push(handler);
      if (!added) {
        events.set(event, [handler]);
      }
    },
    off(event, handler) {
      const handlers = events.get(event);
      if (handlers) {
        handlers.splice(handlers.indexOf(handler) >>> 0, 1);
      }
    },
    emit(event, payload) {
      (events.get(event) || []).slice().map((handler) => handler(payload));
      (events.get("*") || []).slice().map((handler) => handler(event, payload));
    }
  };
  return emitter;
}
const isNotObjectOrIsArray = (val) => !isObject$1(val) || isArray(val);
function deepCopy(src, des) {
  if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {
    throw new Error("Invalid value");
  }
  const stack = [{ src, des }];
  while (stack.length) {
    const { src: src2, des: des2 } = stack.pop();
    Object.keys(src2).forEach((key) => {
      if (key === "__proto__") {
        return;
      }
      if (isObject$1(src2[key]) && !isObject$1(des2[key])) {
        des2[key] = Array.isArray(src2[key]) ? [] : create();
      }
      if (isNotObjectOrIsArray(des2[key]) || isNotObjectOrIsArray(src2[key])) {
        des2[key] = src2[key];
      } else {
        stack.push({ src: src2[key], des: des2[key] });
      }
    });
  }
}

/*!
  * message-compiler v9.14.5
  * (c) 2025 kazuya kawaguchi
  * Released under the MIT License.
  */
const LOCATION_STUB = {
    start: { line: 1, column: 1, offset: 0 },
    end: { line: 1, column: 1, offset: 0 }
};
function createPosition(line, column, offset) {
    return { line, column, offset };
}
function createLocation(start, end, source) {
    const loc = { start, end };
    if (source != null) {
        loc.source = source;
    }
    return loc;
}

/**
 * Original Utilities
 * written by kazuya kawaguchi
 */
const RE_ARGS = /\{([0-9a-zA-Z]+)\}/g;
/* eslint-disable */
function format$1(message, ...args) {
    if (args.length === 1 && isObject(args[0])) {
        args = args[0];
    }
    if (!args || !args.hasOwnProperty) {
        args = {};
    }
    return message.replace(RE_ARGS, (match, identifier) => {
        return args.hasOwnProperty(identifier) ? args[identifier] : '';
    });
}
const assign = Object.assign;
const isString = (val) => typeof val === 'string';
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const isObject = (val) => val !== null && typeof val === 'object';
function join(items, separator = '') {
    return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');
}

const CompileWarnCodes = {
    USE_MODULO_SYNTAX: 1,
    __EXTEND_POINT__: 2
};
/** @internal */
const warnMessages$2 = {
    [CompileWarnCodes.USE_MODULO_SYNTAX]: `Use modulo before '{{0}}'.`
};
function createCompileWarn(code, loc, ...args) {
    const msg = format$1(warnMessages$2[code] || '', ...(args || [])) ;
    const message = { message: String(msg), code };
    if (loc) {
        message.location = loc;
    }
    return message;
}

const CompileErrorCodes = {
    // tokenizer error codes
    EXPECTED_TOKEN: 1,
    INVALID_TOKEN_IN_PLACEHOLDER: 2,
    UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,
    UNKNOWN_ESCAPE_SEQUENCE: 4,
    INVALID_UNICODE_ESCAPE_SEQUENCE: 5,
    UNBALANCED_CLOSING_BRACE: 6,
    UNTERMINATED_CLOSING_BRACE: 7,
    EMPTY_PLACEHOLDER: 8,
    NOT_ALLOW_NEST_PLACEHOLDER: 9,
    INVALID_LINKED_FORMAT: 10,
    // parser error codes
    MUST_HAVE_MESSAGES_IN_PLURAL: 11,
    UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,
    UNEXPECTED_EMPTY_LINKED_KEY: 13,
    UNEXPECTED_LEXICAL_ANALYSIS: 14,
    // generator error codes
    UNHANDLED_CODEGEN_NODE_TYPE: 15,
    // minifier error codes
    UNHANDLED_MINIFIER_NODE_TYPE: 16,
    // Special value for higher-order compilers to pick up the last code
    // to avoid collision of error codes. This should always be kept as the last
    // item.
    __EXTEND_POINT__: 17
};
/** @internal */
const errorMessages$3 = {
    // tokenizer error messages
    [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,
    [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,
    [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,
    [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\{0}`,
    [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,
    [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,
    [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,
    [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,
    [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,
    [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,
    // parser error messages
    [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,
    [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,
    [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,
    [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`,
    // generator error messages
    [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`,
    // minimizer error messages
    [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'`
};
function createCompileError(code, loc, options = {}) {
    const { domain, messages, args } = options;
    const msg = format$1((messages || errorMessages$3)[code] || '', ...(args || []))
        ;
    const error = new SyntaxError(String(msg));
    error.code = code;
    if (loc) {
        error.location = loc;
    }
    error.domain = domain;
    return error;
}
/** @internal */
function defaultOnError$1(error) {
    throw error;
}

// eslint-disable-next-line no-useless-escape
const RE_HTML_TAG = /<\/?[\w\s="/.':;#-\/]+>/;
const detectHtmlTag = (source) => RE_HTML_TAG.test(source);

const CHAR_SP = ' ';
const CHAR_CR = '\r';
const CHAR_LF = '\n';
const CHAR_LS = String.fromCharCode(0x2028);
const CHAR_PS = String.fromCharCode(0x2029);
function createScanner(str) {
    const _buf = str;
    let _index = 0;
    let _line = 1;
    let _column = 1;
    let _peekOffset = 0;
    const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;
    const isLF = (index) => _buf[index] === CHAR_LF;
    const isPS = (index) => _buf[index] === CHAR_PS;
    const isLS = (index) => _buf[index] === CHAR_LS;
    const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);
    const index = () => _index;
    const line = () => _line;
    const column = () => _column;
    const peekOffset = () => _peekOffset;
    const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];
    const currentChar = () => charAt(_index);
    const currentPeek = () => charAt(_index + _peekOffset);
    function next() {
        _peekOffset = 0;
        if (isLineEnd(_index)) {
            _line++;
            _column = 0;
        }
        if (isCRLF(_index)) {
            _index++;
        }
        _index++;
        _column++;
        return _buf[_index];
    }
    function peek() {
        if (isCRLF(_index + _peekOffset)) {
            _peekOffset++;
        }
        _peekOffset++;
        return _buf[_index + _peekOffset];
    }
    function reset() {
        _index = 0;
        _line = 1;
        _column = 1;
        _peekOffset = 0;
    }
    function resetPeek(offset = 0) {
        _peekOffset = offset;
    }
    function skipToPeek() {
        const target = _index + _peekOffset;
        // eslint-disable-next-line no-unmodified-loop-condition
        while (target !== _index) {
            next();
        }
        _peekOffset = 0;
    }
    return {
        index,
        line,
        column,
        peekOffset,
        charAt,
        currentChar,
        currentPeek,
        next,
        peek,
        reset,
        resetPeek,
        skipToPeek
    };
}

const EOF = undefined;
const DOT = '.';
const LITERAL_DELIMITER = "'";
const ERROR_DOMAIN$3 = 'tokenizer';
function createTokenizer(source, options = {}) {
    const location = options.location !== false;
    const _scnr = createScanner(source);
    const currentOffset = () => _scnr.index();
    const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());
    const _initLoc = currentPosition();
    const _initOffset = currentOffset();
    const _context = {
        currentType: 14 /* TokenTypes.EOF */,
        offset: _initOffset,
        startLoc: _initLoc,
        endLoc: _initLoc,
        lastType: 14 /* TokenTypes.EOF */,
        lastOffset: _initOffset,
        lastStartLoc: _initLoc,
        lastEndLoc: _initLoc,
        braceNest: 0,
        inLinked: false,
        text: ''
    };
    const context = () => _context;
    const { onError } = options;
    function emitError(code, pos, offset, ...args) {
        const ctx = context();
        pos.column += offset;
        pos.offset += offset;
        if (onError) {
            const loc = location ? createLocation(ctx.startLoc, pos) : null;
            const err = createCompileError(code, loc, {
                domain: ERROR_DOMAIN$3,
                args
            });
            onError(err);
        }
    }
    function getToken(context, type, value) {
        context.endLoc = currentPosition();
        context.currentType = type;
        const token = { type };
        if (location) {
            token.loc = createLocation(context.startLoc, context.endLoc);
        }
        if (value != null) {
            token.value = value;
        }
        return token;
    }
    const getEndToken = (context) => getToken(context, 14 /* TokenTypes.EOF */);
    function eat(scnr, ch) {
        if (scnr.currentChar() === ch) {
            scnr.next();
            return ch;
        }
        else {
            emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);
            return '';
        }
    }
    function peekSpaces(scnr) {
        let buf = '';
        while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {
            buf += scnr.currentPeek();
            scnr.peek();
        }
        return buf;
    }
    function skipSpaces(scnr) {
        const buf = peekSpaces(scnr);
        scnr.skipToPeek();
        return buf;
    }
    function isIdentifierStart(ch) {
        if (ch === EOF) {
            return false;
        }
        const cc = ch.charCodeAt(0);
        return ((cc >= 97 && cc <= 122) || // a-z
            (cc >= 65 && cc <= 90) || // A-Z
            cc === 95 // _
        );
    }
    function isNumberStart(ch) {
        if (ch === EOF) {
            return false;
        }
        const cc = ch.charCodeAt(0);
        return cc >= 48 && cc <= 57; // 0-9
    }
    function isNamedIdentifierStart(scnr, context) {
        const { currentType } = context;
        if (currentType !== 2 /* TokenTypes.BraceLeft */) {
            return false;
        }
        peekSpaces(scnr);
        const ret = isIdentifierStart(scnr.currentPeek());
        scnr.resetPeek();
        return ret;
    }
    function isListIdentifierStart(scnr, context) {
        const { currentType } = context;
        if (currentType !== 2 /* TokenTypes.BraceLeft */) {
            return false;
        }
        peekSpaces(scnr);
        const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();
        const ret = isNumberStart(ch);
        scnr.resetPeek();
        return ret;
    }
    function isLiteralStart(scnr, context) {
        const { currentType } = context;
        if (currentType !== 2 /* TokenTypes.BraceLeft */) {
            return false;
        }
        peekSpaces(scnr);
        const ret = scnr.currentPeek() === LITERAL_DELIMITER;
        scnr.resetPeek();
        return ret;
    }
    function isLinkedDotStart(scnr, context) {
        const { currentType } = context;
        if (currentType !== 8 /* TokenTypes.LinkedAlias */) {
            return false;
        }
        peekSpaces(scnr);
        const ret = scnr.currentPeek() === "." /* TokenChars.LinkedDot */;
        scnr.resetPeek();
        return ret;
    }
    function isLinkedModifierStart(scnr, context) {
        const { currentType } = context;
        if (currentType !== 9 /* TokenTypes.LinkedDot */) {
            return false;
        }
        peekSpaces(scnr);
        const ret = isIdentifierStart(scnr.currentPeek());
        scnr.resetPeek();
        return ret;
    }
    function isLinkedDelimiterStart(scnr, context) {
        const { currentType } = context;
        if (!(currentType === 8 /* TokenTypes.LinkedAlias */ ||
            currentType === 12 /* TokenTypes.LinkedModifier */)) {
            return false;
        }
        peekSpaces(scnr);
        const ret = scnr.currentPeek() === ":" /* TokenChars.LinkedDelimiter */;
        scnr.resetPeek();
        return ret;
    }
    function isLinkedReferStart(scnr, context) {
        const { currentType } = context;
        if (currentType !== 10 /* TokenTypes.LinkedDelimiter */) {
            return false;
        }
        const fn = () => {
            const ch = scnr.currentPeek();
            if (ch === "{" /* TokenChars.BraceLeft */) {
                return isIdentifierStart(scnr.peek());
            }
            else if (ch === "@" /* TokenChars.LinkedAlias */ ||
                ch === "%" /* TokenChars.Modulo */ ||
                ch === "|" /* TokenChars.Pipe */ ||
                ch === ":" /* TokenChars.LinkedDelimiter */ ||
                ch === "." /* TokenChars.LinkedDot */ ||
                ch === CHAR_SP ||
                !ch) {
                return false;
            }
            else if (ch === CHAR_LF) {
                scnr.peek();
                return fn();
            }
            else {
                // other characters
                return isTextStart(scnr, false);
            }
        };
        const ret = fn();
        scnr.resetPeek();
        return ret;
    }
    function isPluralStart(scnr) {
        peekSpaces(scnr);
        const ret = scnr.currentPeek() === "|" /* TokenChars.Pipe */;
        scnr.resetPeek();
        return ret;
    }
    function detectModuloStart(scnr) {
        const spaces = peekSpaces(scnr);
        const ret = scnr.currentPeek() === "%" /* TokenChars.Modulo */ &&
            scnr.peek() === "{" /* TokenChars.BraceLeft */;
        scnr.resetPeek();
        return {
            isModulo: ret,
            hasSpace: spaces.length > 0
        };
    }
    function isTextStart(scnr, reset = true) {
        const fn = (hasSpace = false, prev = '', detectModulo = false) => {
            const ch = scnr.currentPeek();
            if (ch === "{" /* TokenChars.BraceLeft */) {
                return prev === "%" /* TokenChars.Modulo */ ? false : hasSpace;
            }
            else if (ch === "@" /* TokenChars.LinkedAlias */ || !ch) {
                return prev === "%" /* TokenChars.Modulo */ ? true : hasSpace;
            }
            else if (ch === "%" /* TokenChars.Modulo */) {
                scnr.peek();
                return fn(hasSpace, "%" /* TokenChars.Modulo */, true);
            }
            else if (ch === "|" /* TokenChars.Pipe */) {
                return prev === "%" /* TokenChars.Modulo */ || detectModulo
                    ? true
                    : !(prev === CHAR_SP || prev === CHAR_LF);
            }
            else if (ch === CHAR_SP) {
                scnr.peek();
                return fn(true, CHAR_SP, detectModulo);
            }
            else if (ch === CHAR_LF) {
                scnr.peek();
                return fn(true, CHAR_LF, detectModulo);
            }
            else {
                return true;
            }
        };
        const ret = fn();
        reset && scnr.resetPeek();
        return ret;
    }
    function takeChar(scnr, fn) {
        const ch = scnr.currentChar();
        if (ch === EOF) {
            return EOF;
        }
        if (fn(ch)) {
            scnr.next();
            return ch;
        }
        return null;
    }
    function isIdentifier(ch) {
        const cc = ch.charCodeAt(0);
        return ((cc >= 97 && cc <= 122) || // a-z
            (cc >= 65 && cc <= 90) || // A-Z
            (cc >= 48 && cc <= 57) || // 0-9
            cc === 95 || // _
            cc === 36 // $
        );
    }
    function takeIdentifierChar(scnr) {
        return takeChar(scnr, isIdentifier);
    }
    function isNamedIdentifier(ch) {
        const cc = ch.charCodeAt(0);
        return ((cc >= 97 && cc <= 122) || // a-z
            (cc >= 65 && cc <= 90) || // A-Z
            (cc >= 48 && cc <= 57) || // 0-9
            cc === 95 || // _
            cc === 36 || // $
            cc === 45 // -
        );
    }
    function takeNamedIdentifierChar(scnr) {
        return takeChar(scnr, isNamedIdentifier);
    }
    function isDigit(ch) {
        const cc = ch.charCodeAt(0);
        return cc >= 48 && cc <= 57; // 0-9
    }
    function takeDigit(scnr) {
        return takeChar(scnr, isDigit);
    }
    function isHexDigit(ch) {
        const cc = ch.charCodeAt(0);
        return ((cc >= 48 && cc <= 57) || // 0-9
            (cc >= 65 && cc <= 70) || // A-F
            (cc >= 97 && cc <= 102)); // a-f
    }
    function takeHexDigit(scnr) {
        return takeChar(scnr, isHexDigit);
    }
    function getDigits(scnr) {
        let ch = '';
        let num = '';
        while ((ch = takeDigit(scnr))) {
            num += ch;
        }
        return num;
    }
    function readModulo(scnr) {
        skipSpaces(scnr);
        const ch = scnr.currentChar();
        if (ch !== "%" /* TokenChars.Modulo */) {
            emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);
        }
        scnr.next();
        return "%" /* TokenChars.Modulo */;
    }
    function readText(scnr) {
        let buf = '';
        // eslint-disable-next-line no-constant-condition
        while (true) {
            const ch = scnr.currentChar();
            if (ch === "{" /* TokenChars.BraceLeft */ ||
                ch === "}" /* TokenChars.BraceRight */ ||
                ch === "@" /* TokenChars.LinkedAlias */ ||
                ch === "|" /* TokenChars.Pipe */ ||
                !ch) {
                break;
            }
            else if (ch === "%" /* TokenChars.Modulo */) {
                if (isTextStart(scnr)) {
                    buf += ch;
                    scnr.next();
                }
                else {
                    break;
                }
            }
            else if (ch === CHAR_SP || ch === CHAR_LF) {
                if (isTextStart(scnr)) {
                    buf += ch;
                    scnr.next();
                }
                else if (isPluralStart(scnr)) {
                    break;
                }
                else {
                    buf += ch;
                    scnr.next();
                }
            }
            else {
                buf += ch;
                scnr.next();
            }
        }
        return buf;
    }
    function readNamedIdentifier(scnr) {
        skipSpaces(scnr);
        let ch = '';
        let name = '';
        while ((ch = takeNamedIdentifierChar(scnr))) {
            name += ch;
        }
        if (scnr.currentChar() === EOF) {
            emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
        }
        return name;
    }
    function readListIdentifier(scnr) {
        skipSpaces(scnr);
        let value = '';
        if (scnr.currentChar() === '-') {
            scnr.next();
            value += `-${getDigits(scnr)}`;
        }
        else {
            value += getDigits(scnr);
        }
        if (scnr.currentChar() === EOF) {
            emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
        }
        return value;
    }
    function isLiteral(ch) {
        return ch !== LITERAL_DELIMITER && ch !== CHAR_LF;
    }
    function readLiteral(scnr) {
        skipSpaces(scnr);
        // eslint-disable-next-line no-useless-escape
        eat(scnr, `\'`);
        let ch = '';
        let literal = '';
        while ((ch = takeChar(scnr, isLiteral))) {
            if (ch === '\\') {
                literal += readEscapeSequence(scnr);
            }
            else {
                literal += ch;
            }
        }
        const current = scnr.currentChar();
        if (current === CHAR_LF || current === EOF) {
            emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);
            // TODO: Is it correct really?
            if (current === CHAR_LF) {
                scnr.next();
                // eslint-disable-next-line no-useless-escape
                eat(scnr, `\'`);
            }
            return literal;
        }
        // eslint-disable-next-line no-useless-escape
        eat(scnr, `\'`);
        return literal;
    }
    function readEscapeSequence(scnr) {
        const ch = scnr.currentChar();
        switch (ch) {
            case '\\':
            case `\'`: // eslint-disable-line no-useless-escape
                scnr.next();
                return `\\${ch}`;
            case 'u':
                return readUnicodeEscapeSequence(scnr, ch, 4);
            case 'U':
                return readUnicodeEscapeSequence(scnr, ch, 6);
            default:
                emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);
                return '';
        }
    }
    function readUnicodeEscapeSequence(scnr, unicode, digits) {
        eat(scnr, unicode);
        let sequence = '';
        for (let i = 0; i < digits; i++) {
            const ch = takeHexDigit(scnr);
            if (!ch) {
                emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\${unicode}${sequence}${scnr.currentChar()}`);
                break;
            }
            sequence += ch;
        }
        return `\\${unicode}${sequence}`;
    }
    function isInvalidIdentifier(ch) {
        return (ch !== "{" /* TokenChars.BraceLeft */ &&
            ch !== "}" /* TokenChars.BraceRight */ &&
            ch !== CHAR_SP &&
            ch !== CHAR_LF);
    }
    function readInvalidIdentifier(scnr) {
        skipSpaces(scnr);
        let ch = '';
        let identifiers = '';
        while ((ch = takeChar(scnr, isInvalidIdentifier))) {
            identifiers += ch;
        }
        return identifiers;
    }
    function readLinkedModifier(scnr) {
        let ch = '';
        let name = '';
        while ((ch = takeIdentifierChar(scnr))) {
            name += ch;
        }
        return name;
    }
    function readLinkedRefer(scnr) {
        const fn = (buf) => {
            const ch = scnr.currentChar();
            if (ch === "{" /* TokenChars.BraceLeft */ ||
                ch === "%" /* TokenChars.Modulo */ ||
                ch === "@" /* TokenChars.LinkedAlias */ ||
                ch === "|" /* TokenChars.Pipe */ ||
                ch === "(" /* TokenChars.ParenLeft */ ||
                ch === ")" /* TokenChars.ParenRight */ ||
                !ch) {
                return buf;
            }
            else if (ch === CHAR_SP) {
                return buf;
            }
            else if (ch === CHAR_LF || ch === DOT) {
                buf += ch;
                scnr.next();
                return fn(buf);
            }
            else {
                buf += ch;
                scnr.next();
                return fn(buf);
            }
        };
        return fn('');
    }
    function readPlural(scnr) {
        skipSpaces(scnr);
        const plural = eat(scnr, "|" /* TokenChars.Pipe */);
        skipSpaces(scnr);
        return plural;
    }
    // TODO: We need refactoring of token parsing ...
    function readTokenInPlaceholder(scnr, context) {
        let token = null;
        const ch = scnr.currentChar();
        switch (ch) {
            case "{" /* TokenChars.BraceLeft */:
                if (context.braceNest >= 1) {
                    emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);
                }
                scnr.next();
                token = getToken(context, 2 /* TokenTypes.BraceLeft */, "{" /* TokenChars.BraceLeft */);
                skipSpaces(scnr);
                context.braceNest++;
                return token;
            case "}" /* TokenChars.BraceRight */:
                if (context.braceNest > 0 &&
                    context.currentType === 2 /* TokenTypes.BraceLeft */) {
                    emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);
                }
                scnr.next();
                token = getToken(context, 3 /* TokenTypes.BraceRight */, "}" /* TokenChars.BraceRight */);
                context.braceNest--;
                context.braceNest > 0 && skipSpaces(scnr);
                if (context.inLinked && context.braceNest === 0) {
                    context.inLinked = false;
                }
                return token;
            case "@" /* TokenChars.LinkedAlias */:
                if (context.braceNest > 0) {
                    emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
                }
                token = readTokenInLinked(scnr, context) || getEndToken(context);
                context.braceNest = 0;
                return token;
            default: {
                let validNamedIdentifier = true;
                let validListIdentifier = true;
                let validLiteral = true;
                if (isPluralStart(scnr)) {
                    if (context.braceNest > 0) {
                        emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
                    }
                    token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));
                    // reset
                    context.braceNest = 0;
                    context.inLinked = false;
                    return token;
                }
                if (context.braceNest > 0 &&
                    (context.currentType === 5 /* TokenTypes.Named */ ||
                        context.currentType === 6 /* TokenTypes.List */ ||
                        context.currentType === 7 /* TokenTypes.Literal */)) {
                    emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
                    context.braceNest = 0;
                    return readToken(scnr, context);
                }
                if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {
                    token = getToken(context, 5 /* TokenTypes.Named */, readNamedIdentifier(scnr));
                    skipSpaces(scnr);
                    return token;
                }
                if ((validListIdentifier = isListIdentifierStart(scnr, context))) {
                    token = getToken(context, 6 /* TokenTypes.List */, readListIdentifier(scnr));
                    skipSpaces(scnr);
                    return token;
                }
                if ((validLiteral = isLiteralStart(scnr, context))) {
                    token = getToken(context, 7 /* TokenTypes.Literal */, readLiteral(scnr));
                    skipSpaces(scnr);
                    return token;
                }
                if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {
                    // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...
                    token = getToken(context, 13 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));
                    emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);
                    skipSpaces(scnr);
                    return token;
                }
                break;
            }
        }
        return token;
    }
    // TODO: We need refactoring of token parsing ...
    function readTokenInLinked(scnr, context) {
        const { currentType } = context;
        let token = null;
        const ch = scnr.currentChar();
        if ((currentType === 8 /* TokenTypes.LinkedAlias */ ||
            currentType === 9 /* TokenTypes.LinkedDot */ ||
            currentType === 12 /* TokenTypes.LinkedModifier */ ||
            currentType === 10 /* TokenTypes.LinkedDelimiter */) &&
            (ch === CHAR_LF || ch === CHAR_SP)) {
            emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);
        }
        switch (ch) {
            case "@" /* TokenChars.LinkedAlias */:
                scnr.next();
                token = getToken(context, 8 /* TokenTypes.LinkedAlias */, "@" /* TokenChars.LinkedAlias */);
                context.inLinked = true;
                return token;
            case "." /* TokenChars.LinkedDot */:
                skipSpaces(scnr);
                scnr.next();
                return getToken(context, 9 /* TokenTypes.LinkedDot */, "." /* TokenChars.LinkedDot */);
            case ":" /* TokenChars.LinkedDelimiter */:
                skipSpaces(scnr);
                scnr.next();
                return getToken(context, 10 /* TokenTypes.LinkedDelimiter */, ":" /* TokenChars.LinkedDelimiter */);
            default:
                if (isPluralStart(scnr)) {
                    token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));
                    // reset
                    context.braceNest = 0;
                    context.inLinked = false;
                    return token;
                }
                if (isLinkedDotStart(scnr, context) ||
                    isLinkedDelimiterStart(scnr, context)) {
                    skipSpaces(scnr);
                    return readTokenInLinked(scnr, context);
                }
                if (isLinkedModifierStart(scnr, context)) {
                    skipSpaces(scnr);
                    return getToken(context, 12 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));
                }
                if (isLinkedReferStart(scnr, context)) {
                    skipSpaces(scnr);
                    if (ch === "{" /* TokenChars.BraceLeft */) {
                        // scan the placeholder
                        return readTokenInPlaceholder(scnr, context) || token;
                    }
                    else {
                        return getToken(context, 11 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));
                    }
                }
                if (currentType === 8 /* TokenTypes.LinkedAlias */) {
                    emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);
                }
                context.braceNest = 0;
                context.inLinked = false;
                return readToken(scnr, context);
        }
    }
    // TODO: We need refactoring of token parsing ...
    function readToken(scnr, context) {
        let token = { type: 14 /* TokenTypes.EOF */ };
        if (context.braceNest > 0) {
            return readTokenInPlaceholder(scnr, context) || getEndToken(context);
        }
        if (context.inLinked) {
            return readTokenInLinked(scnr, context) || getEndToken(context);
        }
        const ch = scnr.currentChar();
        switch (ch) {
            case "{" /* TokenChars.BraceLeft */:
                return readTokenInPlaceholder(scnr, context) || getEndToken(context);
            case "}" /* TokenChars.BraceRight */:
                emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);
                scnr.next();
                return getToken(context, 3 /* TokenTypes.BraceRight */, "}" /* TokenChars.BraceRight */);
            case "@" /* TokenChars.LinkedAlias */:
                return readTokenInLinked(scnr, context) || getEndToken(context);
            default: {
                if (isPluralStart(scnr)) {
                    token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));
                    // reset
                    context.braceNest = 0;
                    context.inLinked = false;
                    return token;
                }
                const { isModulo, hasSpace } = detectModuloStart(scnr);
                if (isModulo) {
                    return hasSpace
                        ? getToken(context, 0 /* TokenTypes.Text */, readText(scnr))
                        : getToken(context, 4 /* TokenTypes.Modulo */, readModulo(scnr));
                }
                if (isTextStart(scnr)) {
                    return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));
                }
                break;
            }
        }
        return token;
    }
    function nextToken() {
        const { currentType, offset, startLoc, endLoc } = _context;
        _context.lastType = currentType;
        _context.lastOffset = offset;
        _context.lastStartLoc = startLoc;
        _context.lastEndLoc = endLoc;
        _context.offset = currentOffset();
        _context.startLoc = currentPosition();
        if (_scnr.currentChar() === EOF) {
            return getToken(_context, 14 /* TokenTypes.EOF */);
        }
        return readToken(_scnr, _context);
    }
    return {
        nextToken,
        currentOffset,
        currentPosition,
        context
    };
}

const ERROR_DOMAIN$2 = 'parser';
// Backslash backslash, backslash quote, uHHHH, UHHHHHH.
const KNOWN_ESCAPES = /(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;
function fromEscapeSequence(match, codePoint4, codePoint6) {
    switch (match) {
        case `\\\\`:
            return `\\`;
        // eslint-disable-next-line no-useless-escape
        case `\\\'`:
            // eslint-disable-next-line no-useless-escape
            return `\'`;
        default: {
            const codePoint = parseInt(codePoint4 || codePoint6, 16);
            if (codePoint <= 0xd7ff || codePoint >= 0xe000) {
                return String.fromCodePoint(codePoint);
            }
            // invalid ...
            // Replace them with U+FFFD REPLACEMENT CHARACTER.
            return '�';
        }
    }
}
function createParser(options = {}) {
    const location = options.location !== false;
    const { onError, onWarn } = options;
    function emitError(tokenzer, code, start, offset, ...args) {
        const end = tokenzer.currentPosition();
        end.offset += offset;
        end.column += offset;
        if (onError) {
            const loc = location ? createLocation(start, end) : null;
            const err = createCompileError(code, loc, {
                domain: ERROR_DOMAIN$2,
                args
            });
            onError(err);
        }
    }
    function emitWarn(tokenzer, code, start, offset, ...args) {
        const end = tokenzer.currentPosition();
        end.offset += offset;
        end.column += offset;
        if (onWarn) {
            const loc = location ? createLocation(start, end) : null;
            onWarn(createCompileWarn(code, loc, args));
        }
    }
    function startNode(type, offset, loc) {
        const node = { type };
        if (location) {
            node.start = offset;
            node.end = offset;
            node.loc = { start: loc, end: loc };
        }
        return node;
    }
    function endNode(node, offset, pos, type) {
        if (type) {
            node.type = type;
        }
        if (location) {
            node.end = offset;
            if (node.loc) {
                node.loc.end = pos;
            }
        }
    }
    function parseText(tokenizer, value) {
        const context = tokenizer.context();
        const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);
        node.value = value;
        endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
        return node;
    }
    function parseList(tokenizer, index) {
        const context = tokenizer.context();
        const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc
        const node = startNode(5 /* NodeTypes.List */, offset, loc);
        node.index = parseInt(index, 10);
        tokenizer.nextToken(); // skip brach right
        endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
        return node;
    }
    function parseNamed(tokenizer, key, modulo) {
        const context = tokenizer.context();
        const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc
        const node = startNode(4 /* NodeTypes.Named */, offset, loc);
        node.key = key;
        if (modulo === true) {
            node.modulo = true;
        }
        tokenizer.nextToken(); // skip brach right
        endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
        return node;
    }
    function parseLiteral(tokenizer, value) {
        const context = tokenizer.context();
        const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc
        const node = startNode(9 /* NodeTypes.Literal */, offset, loc);
        node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);
        tokenizer.nextToken(); // skip brach right
        endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
        return node;
    }
    function parseLinkedModifier(tokenizer) {
        const token = tokenizer.nextToken();
        const context = tokenizer.context();
        const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc
        const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);
        if (token.type !== 12 /* TokenTypes.LinkedModifier */) {
            // empty modifier
            emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);
            node.value = '';
            endNode(node, offset, loc);
            return {
                nextConsumeToken: token,
                node
            };
        }
        // check token
        if (token.value == null) {
            emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
        }
        node.value = token.value || '';
        endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
        return {
            node
        };
    }
    function parseLinkedKey(tokenizer, value) {
        const context = tokenizer.context();
        const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);
        node.value = value;
        endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
        return node;
    }
    function parseLinked(tokenizer) {
        const context = tokenizer.context();
        const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);
        let token = tokenizer.nextToken();
        if (token.type === 9 /* TokenTypes.LinkedDot */) {
            const parsed = parseLinkedModifier(tokenizer);
            linkedNode.modifier = parsed.node;
            token = parsed.nextConsumeToken || tokenizer.nextToken();
        }
        // asset check token
        if (token.type !== 10 /* TokenTypes.LinkedDelimiter */) {
            emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
        }
        token = tokenizer.nextToken();
        // skip brace left
        if (token.type === 2 /* TokenTypes.BraceLeft */) {
            token = tokenizer.nextToken();
        }
        switch (token.type) {
            case 11 /* TokenTypes.LinkedKey */:
                if (token.value == null) {
                    emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
                }
                linkedNode.key = parseLinkedKey(tokenizer, token.value || '');
                break;
            case 5 /* TokenTypes.Named */:
                if (token.value == null) {
                    emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
                }
                linkedNode.key = parseNamed(tokenizer, token.value || '');
                break;
            case 6 /* TokenTypes.List */:
                if (token.value == null) {
                    emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
                }
                linkedNode.key = parseList(tokenizer, token.value || '');
                break;
            case 7 /* TokenTypes.Literal */:
                if (token.value == null) {
                    emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
                }
                linkedNode.key = parseLiteral(tokenizer, token.value || '');
                break;
            default: {
                // empty key
                emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);
                const nextContext = tokenizer.context();
                const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);
                emptyLinkedKeyNode.value = '';
                endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);
                linkedNode.key = emptyLinkedKeyNode;
                endNode(linkedNode, nextContext.offset, nextContext.startLoc);
                return {
                    nextConsumeToken: token,
                    node: linkedNode
                };
            }
        }
        endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());
        return {
            node: linkedNode
        };
    }
    function parseMessage(tokenizer) {
        const context = tokenizer.context();
        const startOffset = context.currentType === 1 /* TokenTypes.Pipe */
            ? tokenizer.currentOffset()
            : context.offset;
        const startLoc = context.currentType === 1 /* TokenTypes.Pipe */
            ? context.endLoc
            : context.startLoc;
        const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);
        node.items = [];
        let nextToken = null;
        let modulo = null;
        do {
            const token = nextToken || tokenizer.nextToken();
            nextToken = null;
            switch (token.type) {
                case 0 /* TokenTypes.Text */:
                    if (token.value == null) {
                        emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
                    }
                    node.items.push(parseText(tokenizer, token.value || ''));
                    break;
                case 6 /* TokenTypes.List */:
                    if (token.value == null) {
                        emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
                    }
                    node.items.push(parseList(tokenizer, token.value || ''));
                    break;
                case 4 /* TokenTypes.Modulo */:
                    modulo = true;
                    break;
                case 5 /* TokenTypes.Named */:
                    if (token.value == null) {
                        emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
                    }
                    node.items.push(parseNamed(tokenizer, token.value || '', !!modulo));
                    if (modulo) {
                        emitWarn(tokenizer, CompileWarnCodes.USE_MODULO_SYNTAX, context.lastStartLoc, 0, getTokenCaption(token));
                        modulo = null;
                    }
                    break;
                case 7 /* TokenTypes.Literal */:
                    if (token.value == null) {
                        emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
                    }
                    node.items.push(parseLiteral(tokenizer, token.value || ''));
                    break;
                case 8 /* TokenTypes.LinkedAlias */: {
                    const parsed = parseLinked(tokenizer);
                    node.items.push(parsed.node);
                    nextToken = parsed.nextConsumeToken || null;
                    break;
                }
            }
        } while (context.currentType !== 14 /* TokenTypes.EOF */ &&
            context.currentType !== 1 /* TokenTypes.Pipe */);
        // adjust message node loc
        const endOffset = context.currentType === 1 /* TokenTypes.Pipe */
            ? context.lastOffset
            : tokenizer.currentOffset();
        const endLoc = context.currentType === 1 /* TokenTypes.Pipe */
            ? context.lastEndLoc
            : tokenizer.currentPosition();
        endNode(node, endOffset, endLoc);
        return node;
    }
    function parsePlural(tokenizer, offset, loc, msgNode) {
        const context = tokenizer.context();
        let hasEmptyMessage = msgNode.items.length === 0;
        const node = startNode(1 /* NodeTypes.Plural */, offset, loc);
        node.cases = [];
        node.cases.push(msgNode);
        do {
            const msg = parseMessage(tokenizer);
            if (!hasEmptyMessage) {
                hasEmptyMessage = msg.items.length === 0;
            }
            node.cases.push(msg);
        } while (context.currentType !== 14 /* TokenTypes.EOF */);
        if (hasEmptyMessage) {
            emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);
        }
        endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
        return node;
    }
    function parseResource(tokenizer) {
        const context = tokenizer.context();
        const { offset, startLoc } = context;
        const msgNode = parseMessage(tokenizer);
        if (context.currentType === 14 /* TokenTypes.EOF */) {
            return msgNode;
        }
        else {
            return parsePlural(tokenizer, offset, startLoc, msgNode);
        }
    }
    function parse(source) {
        const tokenizer = createTokenizer(source, assign({}, options));
        const context = tokenizer.context();
        const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);
        if (location && node.loc) {
            node.loc.source = source;
        }
        node.body = parseResource(tokenizer);
        if (options.onCacheKey) {
            node.cacheKey = options.onCacheKey(source);
        }
        // assert whether achieved to EOF
        if (context.currentType !== 14 /* TokenTypes.EOF */) {
            emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');
        }
        endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
        return node;
    }
    return { parse };
}
function getTokenCaption(token) {
    if (token.type === 14 /* TokenTypes.EOF */) {
        return 'EOF';
    }
    const name = (token.value || '').replace(/\r?\n/gu, '\\n');
    return name.length > 10 ? name.slice(0, 9) + '…' : name;
}

function createTransformer(ast, options = {} // eslint-disable-line
) {
    const _context = {
        ast,
        helpers: new Set()
    };
    const context = () => _context;
    const helper = (name) => {
        _context.helpers.add(name);
        return name;
    };
    return { context, helper };
}
function traverseNodes(nodes, transformer) {
    for (let i = 0; i < nodes.length; i++) {
        traverseNode$1(nodes[i], transformer);
    }
}
function traverseNode$1(node, transformer) {
    // TODO: if we need pre-hook of transform, should be implemented to here
    switch (node.type) {
        case 1 /* NodeTypes.Plural */:
            traverseNodes(node.cases, transformer);
            transformer.helper("plural" /* HelperNameMap.PLURAL */);
            break;
        case 2 /* NodeTypes.Message */:
            traverseNodes(node.items, transformer);
            break;
        case 6 /* NodeTypes.Linked */: {
            const linked = node;
            traverseNode$1(linked.key, transformer);
            transformer.helper("linked" /* HelperNameMap.LINKED */);
            transformer.helper("type" /* HelperNameMap.TYPE */);
            break;
        }
        case 5 /* NodeTypes.List */:
            transformer.helper("interpolate" /* HelperNameMap.INTERPOLATE */);
            transformer.helper("list" /* HelperNameMap.LIST */);
            break;
        case 4 /* NodeTypes.Named */:
            transformer.helper("interpolate" /* HelperNameMap.INTERPOLATE */);
            transformer.helper("named" /* HelperNameMap.NAMED */);
            break;
    }
    // TODO: if we need post-hook of transform, should be implemented to here
}
// transform AST
function transform$1(ast, options = {} // eslint-disable-line
) {
    const transformer = createTransformer(ast);
    transformer.helper("normalize" /* HelperNameMap.NORMALIZE */);
    // traverse
    ast.body && traverseNode$1(ast.body, transformer);
    // set meta information
    const context = transformer.context();
    ast.helpers = Array.from(context.helpers);
}

function optimize(ast) {
    const body = ast.body;
    if (body.type === 2 /* NodeTypes.Message */) {
        optimizeMessageNode(body);
    }
    else {
        body.cases.forEach(c => optimizeMessageNode(c));
    }
    return ast;
}
function optimizeMessageNode(message) {
    if (message.items.length === 1) {
        const item = message.items[0];
        if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {
            message.static = item.value;
            delete item.value; // optimization for size
        }
    }
    else {
        const values = [];
        for (let i = 0; i < message.items.length; i++) {
            const item = message.items[i];
            if (!(item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */)) {
                break;
            }
            if (item.value == null) {
                break;
            }
            values.push(item.value);
        }
        if (values.length === message.items.length) {
            message.static = join(values);
            for (let i = 0; i < message.items.length; i++) {
                const item = message.items[i];
                if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {
                    delete item.value; // optimization for size
                }
            }
        }
    }
}

const ERROR_DOMAIN$1 = 'minifier';
/* eslint-disable @typescript-eslint/no-explicit-any */
function minify(node) {
    node.t = node.type;
    switch (node.type) {
        case 0 /* NodeTypes.Resource */: {
            const resource = node;
            minify(resource.body);
            resource.b = resource.body;
            delete resource.body;
            break;
        }
        case 1 /* NodeTypes.Plural */: {
            const plural = node;
            const cases = plural.cases;
            for (let i = 0; i < cases.length; i++) {
                minify(cases[i]);
            }
            plural.c = cases;
            delete plural.cases;
            break;
        }
        case 2 /* NodeTypes.Message */: {
            const message = node;
            const items = message.items;
            for (let i = 0; i < items.length; i++) {
                minify(items[i]);
            }
            message.i = items;
            delete message.items;
            if (message.static) {
                message.s = message.static;
                delete message.static;
            }
            break;
        }
        case 3 /* NodeTypes.Text */:
        case 9 /* NodeTypes.Literal */:
        case 8 /* NodeTypes.LinkedModifier */:
        case 7 /* NodeTypes.LinkedKey */: {
            const valueNode = node;
            if (valueNode.value) {
                valueNode.v = valueNode.value;
                delete valueNode.value;
            }
            break;
        }
        case 6 /* NodeTypes.Linked */: {
            const linked = node;
            minify(linked.key);
            linked.k = linked.key;
            delete linked.key;
            if (linked.modifier) {
                minify(linked.modifier);
                linked.m = linked.modifier;
                delete linked.modifier;
            }
            break;
        }
        case 5 /* NodeTypes.List */: {
            const list = node;
            list.i = list.index;
            delete list.index;
            break;
        }
        case 4 /* NodeTypes.Named */: {
            const named = node;
            named.k = named.key;
            delete named.key;
            break;
        }
        default:
            {
                throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, {
                    domain: ERROR_DOMAIN$1,
                    args: [node.type]
                });
            }
    }
    delete node.type;
}
/* eslint-enable @typescript-eslint/no-explicit-any */

// eslint-disable-next-line @typescript-eslint/triple-slash-reference
/// <reference types="source-map-js" />
const ERROR_DOMAIN = 'parser';
function createCodeGenerator(ast, options) {
    const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;
    const location = options.location !== false;
    const _context = {
        filename,
        code: '',
        column: 1,
        line: 1,
        offset: 0,
        map: undefined,
        breakLineCode,
        needIndent: _needIndent,
        indentLevel: 0
    };
    if (location && ast.loc) {
        _context.source = ast.loc.source;
    }
    const context = () => _context;
    function push(code, node) {
        _context.code += code;
    }
    function _newline(n, withBreakLine = true) {
        const _breakLineCode = withBreakLine ? breakLineCode : '';
        push(_needIndent ? _breakLineCode + `  `.repeat(n) : _breakLineCode);
    }
    function indent(withNewLine = true) {
        const level = ++_context.indentLevel;
        withNewLine && _newline(level);
    }
    function deindent(withNewLine = true) {
        const level = --_context.indentLevel;
        withNewLine && _newline(level);
    }
    function newline() {
        _newline(_context.indentLevel);
    }
    const helper = (key) => `_${key}`;
    const needIndent = () => _context.needIndent;
    return {
        context,
        push,
        indent,
        deindent,
        newline,
        helper,
        needIndent
    };
}
function generateLinkedNode(generator, node) {
    const { helper } = generator;
    generator.push(`${helper("linked" /* HelperNameMap.LINKED */)}(`);
    generateNode(generator, node.key);
    if (node.modifier) {
        generator.push(`, `);
        generateNode(generator, node.modifier);
        generator.push(`, _type`);
    }
    else {
        generator.push(`, undefined, _type`);
    }
    generator.push(`)`);
}
function generateMessageNode(generator, node) {
    const { helper, needIndent } = generator;
    generator.push(`${helper("normalize" /* HelperNameMap.NORMALIZE */)}([`);
    generator.indent(needIndent());
    const length = node.items.length;
    for (let i = 0; i < length; i++) {
        generateNode(generator, node.items[i]);
        if (i === length - 1) {
            break;
        }
        generator.push(', ');
    }
    generator.deindent(needIndent());
    generator.push('])');
}
function generatePluralNode(generator, node) {
    const { helper, needIndent } = generator;
    if (node.cases.length > 1) {
        generator.push(`${helper("plural" /* HelperNameMap.PLURAL */)}([`);
        generator.indent(needIndent());
        const length = node.cases.length;
        for (let i = 0; i < length; i++) {
            generateNode(generator, node.cases[i]);
            if (i === length - 1) {
                break;
            }
            generator.push(', ');
        }
        generator.deindent(needIndent());
        generator.push(`])`);
    }
}
function generateResource(generator, node) {
    if (node.body) {
        generateNode(generator, node.body);
    }
    else {
        generator.push('null');
    }
}
function generateNode(generator, node) {
    const { helper } = generator;
    switch (node.type) {
        case 0 /* NodeTypes.Resource */:
            generateResource(generator, node);
            break;
        case 1 /* NodeTypes.Plural */:
            generatePluralNode(generator, node);
            break;
        case 2 /* NodeTypes.Message */:
            generateMessageNode(generator, node);
            break;
        case 6 /* NodeTypes.Linked */:
            generateLinkedNode(generator, node);
            break;
        case 8 /* NodeTypes.LinkedModifier */:
            generator.push(JSON.stringify(node.value), node);
            break;
        case 7 /* NodeTypes.LinkedKey */:
            generator.push(JSON.stringify(node.value), node);
            break;
        case 5 /* NodeTypes.List */:
            generator.push(`${helper("interpolate" /* HelperNameMap.INTERPOLATE */)}(${helper("list" /* HelperNameMap.LIST */)}(${node.index}))`, node);
            break;
        case 4 /* NodeTypes.Named */:
            generator.push(`${helper("interpolate" /* HelperNameMap.INTERPOLATE */)}(${helper("named" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);
            break;
        case 9 /* NodeTypes.Literal */:
            generator.push(JSON.stringify(node.value), node);
            break;
        case 3 /* NodeTypes.Text */:
            generator.push(JSON.stringify(node.value), node);
            break;
        default:
            {
                throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, {
                    domain: ERROR_DOMAIN,
                    args: [node.type]
                });
            }
    }
}
// generate code from AST
const generate$1 = (ast, options = {} // eslint-disable-line
) => {
    const mode = isString(options.mode) ? options.mode : 'normal';
    const filename = isString(options.filename)
        ? options.filename
        : 'message.intl';
    const sourceMap = !!options.sourceMap;
    // prettier-ignore
    const breakLineCode = options.breakLineCode != null
        ? options.breakLineCode
        : mode === 'arrow'
            ? ';'
            : '\n';
    const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';
    const helpers = ast.helpers || [];
    const generator = createCodeGenerator(ast, {
        mode,
        filename,
        sourceMap,
        breakLineCode,
        needIndent
    });
    generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);
    generator.indent(needIndent);
    if (helpers.length > 0) {
        generator.push(`const { ${join(helpers.map(s => `${s}: _${s}`), ', ')} } = ctx`);
        generator.newline();
    }
    generator.push(`return `);
    generateNode(generator, ast);
    generator.deindent(needIndent);
    generator.push(`}`);
    delete ast.helpers;
    const { code, map } = generator.context();
    return {
        ast,
        code,
        map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any
    };
};

function baseCompile$2(source, options = {}) {
    const assignedOptions = assign({}, options);
    const jit = !!assignedOptions.jit;
    const enalbeMinify = !!assignedOptions.minify;
    const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize;
    // parse source codes
    const parser = createParser(assignedOptions);
    const ast = parser.parse(source);
    if (!jit) {
        // transform ASTs
        transform$1(ast, assignedOptions);
        // generate javascript codes
        return generate$1(ast, assignedOptions);
    }
    else {
        // optimize ASTs
        enambeOptimize && optimize(ast);
        // minimize ASTs
        enalbeMinify && minify(ast);
        // In JIT mode, no ast transform, no code generation.
        return { ast, code: '' };
    }
}

/*!
  * core-base v9.14.5
  * (c) 2025 kazuya kawaguchi
  * Released under the MIT License.
  */
function initFeatureFlags$1() {
  if (typeof __INTLIFY_PROD_DEVTOOLS__ !== "boolean") {
    getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;
  }
  if (typeof __INTLIFY_JIT_COMPILATION__ !== "boolean") {
    getGlobalThis().__INTLIFY_JIT_COMPILATION__ = false;
  }
  if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== "boolean") {
    getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;
  }
}
function isMessageAST(val) {
  return isObject$1(val) && resolveType(val) === 0 && (hasOwn(val, "b") || hasOwn(val, "body"));
}
const PROPS_BODY = ["b", "body"];
function resolveBody(node) {
  return resolveProps(node, PROPS_BODY);
}
const PROPS_CASES = ["c", "cases"];
function resolveCases(node) {
  return resolveProps(node, PROPS_CASES, []);
}
const PROPS_STATIC = ["s", "static"];
function resolveStatic(node) {
  return resolveProps(node, PROPS_STATIC);
}
const PROPS_ITEMS = ["i", "items"];
function resolveItems(node) {
  return resolveProps(node, PROPS_ITEMS, []);
}
const PROPS_TYPE = ["t", "type"];
function resolveType(node) {
  return resolveProps(node, PROPS_TYPE);
}
const PROPS_VALUE = ["v", "value"];
function resolveValue$1(node, type) {
  const resolved = resolveProps(node, PROPS_VALUE);
  if (resolved != null) {
    return resolved;
  } else {
    throw createUnhandleNodeError(type);
  }
}
const PROPS_MODIFIER = ["m", "modifier"];
function resolveLinkedModifier(node) {
  return resolveProps(node, PROPS_MODIFIER);
}
const PROPS_KEY = ["k", "key"];
function resolveLinkedKey(node) {
  const resolved = resolveProps(node, PROPS_KEY);
  if (resolved) {
    return resolved;
  } else {
    throw createUnhandleNodeError(
      6
      /* NodeTypes.Linked */
    );
  }
}
function resolveProps(node, props, defaultValue) {
  for (let i = 0; i < props.length; i++) {
    const prop = props[i];
    if (hasOwn(node, prop) && node[prop] != null) {
      return node[prop];
    }
  }
  return defaultValue;
}
const AST_NODE_PROPS_KEYS = [
  ...PROPS_BODY,
  ...PROPS_CASES,
  ...PROPS_STATIC,
  ...PROPS_ITEMS,
  ...PROPS_KEY,
  ...PROPS_MODIFIER,
  ...PROPS_VALUE,
  ...PROPS_TYPE
];
function createUnhandleNodeError(type) {
  return new Error(`unhandled node type: ${type}`);
}
const pathStateMachine = [];
pathStateMachine[
  0
  /* States.BEFORE_PATH */
] = {
  [
    "w"
    /* PathCharTypes.WORKSPACE */
  ]: [
    0
    /* States.BEFORE_PATH */
  ],
  [
    "i"
    /* PathCharTypes.IDENT */
  ]: [
    3,
    0
    /* Actions.APPEND */
  ],
  [
    "["
    /* PathCharTypes.LEFT_BRACKET */
  ]: [
    4
    /* States.IN_SUB_PATH */
  ],
  [
    "o"
    /* PathCharTypes.END_OF_FAIL */
  ]: [
    7
    /* States.AFTER_PATH */
  ]
};
pathStateMachine[
  1
  /* States.IN_PATH */
] = {
  [
    "w"
    /* PathCharTypes.WORKSPACE */
  ]: [
    1
    /* States.IN_PATH */
  ],
  [
    "."
    /* PathCharTypes.DOT */
  ]: [
    2
    /* States.BEFORE_IDENT */
  ],
  [
    "["
    /* PathCharTypes.LEFT_BRACKET */
  ]: [
    4
    /* States.IN_SUB_PATH */
  ],
  [
    "o"
    /* PathCharTypes.END_OF_FAIL */
  ]: [
    7
    /* States.AFTER_PATH */
  ]
};
pathStateMachine[
  2
  /* States.BEFORE_IDENT */
] = {
  [
    "w"
    /* PathCharTypes.WORKSPACE */
  ]: [
    2
    /* States.BEFORE_IDENT */
  ],
  [
    "i"
    /* PathCharTypes.IDENT */
  ]: [
    3,
    0
    /* Actions.APPEND */
  ],
  [
    "0"
    /* PathCharTypes.ZERO */
  ]: [
    3,
    0
    /* Actions.APPEND */
  ]
};
pathStateMachine[
  3
  /* States.IN_IDENT */
] = {
  [
    "i"
    /* PathCharTypes.IDENT */
  ]: [
    3,
    0
    /* Actions.APPEND */
  ],
  [
    "0"
    /* PathCharTypes.ZERO */
  ]: [
    3,
    0
    /* Actions.APPEND */
  ],
  [
    "w"
    /* PathCharTypes.WORKSPACE */
  ]: [
    1,
    1
    /* Actions.PUSH */
  ],
  [
    "."
    /* PathCharTypes.DOT */
  ]: [
    2,
    1
    /* Actions.PUSH */
  ],
  [
    "["
    /* PathCharTypes.LEFT_BRACKET */
  ]: [
    4,
    1
    /* Actions.PUSH */
  ],
  [
    "o"
    /* PathCharTypes.END_OF_FAIL */
  ]: [
    7,
    1
    /* Actions.PUSH */
  ]
};
pathStateMachine[
  4
  /* States.IN_SUB_PATH */
] = {
  [
    "'"
    /* PathCharTypes.SINGLE_QUOTE */
  ]: [
    5,
    0
    /* Actions.APPEND */
  ],
  [
    '"'
    /* PathCharTypes.DOUBLE_QUOTE */
  ]: [
    6,
    0
    /* Actions.APPEND */
  ],
  [
    "["
    /* PathCharTypes.LEFT_BRACKET */
  ]: [
    4,
    2
    /* Actions.INC_SUB_PATH_DEPTH */
  ],
  [
    "]"
    /* PathCharTypes.RIGHT_BRACKET */
  ]: [
    1,
    3
    /* Actions.PUSH_SUB_PATH */
  ],
  [
    "o"
    /* PathCharTypes.END_OF_FAIL */
  ]: 8,
  [
    "l"
    /* PathCharTypes.ELSE */
  ]: [
    4,
    0
    /* Actions.APPEND */
  ]
};
pathStateMachine[
  5
  /* States.IN_SINGLE_QUOTE */
] = {
  [
    "'"
    /* PathCharTypes.SINGLE_QUOTE */
  ]: [
    4,
    0
    /* Actions.APPEND */
  ],
  [
    "o"
    /* PathCharTypes.END_OF_FAIL */
  ]: 8,
  [
    "l"
    /* PathCharTypes.ELSE */
  ]: [
    5,
    0
    /* Actions.APPEND */
  ]
};
pathStateMachine[
  6
  /* States.IN_DOUBLE_QUOTE */
] = {
  [
    '"'
    /* PathCharTypes.DOUBLE_QUOTE */
  ]: [
    4,
    0
    /* Actions.APPEND */
  ],
  [
    "o"
    /* PathCharTypes.END_OF_FAIL */
  ]: 8,
  [
    "l"
    /* PathCharTypes.ELSE */
  ]: [
    6,
    0
    /* Actions.APPEND */
  ]
};
const literalValueRE = /^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;
function isLiteral(exp) {
  return literalValueRE.test(exp);
}
function stripQuotes(str) {
  const a = str.charCodeAt(0);
  const b = str.charCodeAt(str.length - 1);
  return a === b && (a === 34 || a === 39) ? str.slice(1, -1) : str;
}
function getPathCharType(ch) {
  if (ch === void 0 || ch === null) {
    return "o";
  }
  const code2 = ch.charCodeAt(0);
  switch (code2) {
    case 91:
    // [
    case 93:
    // ]
    case 46:
    // .
    case 34:
    // "
    case 39:
      return ch;
    case 95:
    // _
    case 36:
    // $
    case 45:
      return "i";
    case 9:
    // Tab (HT)
    case 10:
    // Newline (LF)
    case 13:
    // Return (CR)
    case 160:
    // No-break space (NBSP)
    case 65279:
    // Byte Order Mark (BOM)
    case 8232:
    // Line Separator (LS)
    case 8233:
      return "w";
  }
  return "i";
}
function formatSubPath(path) {
  const trimmed = path.trim();
  if (path.charAt(0) === "0" && isNaN(parseInt(path))) {
    return false;
  }
  return isLiteral(trimmed) ? stripQuotes(trimmed) : "*" + trimmed;
}
function parse$1(path) {
  const keys = [];
  let index = -1;
  let mode = 0;
  let subPathDepth = 0;
  let c;
  let key;
  let newChar;
  let type;
  let transition;
  let action;
  let typeMap;
  const actions = [];
  actions[
    0
    /* Actions.APPEND */
  ] = () => {
    if (key === void 0) {
      key = newChar;
    } else {
      key += newChar;
    }
  };
  actions[
    1
    /* Actions.PUSH */
  ] = () => {
    if (key !== void 0) {
      keys.push(key);
      key = void 0;
    }
  };
  actions[
    2
    /* Actions.INC_SUB_PATH_DEPTH */
  ] = () => {
    actions[
      0
      /* Actions.APPEND */
    ]();
    subPathDepth++;
  };
  actions[
    3
    /* Actions.PUSH_SUB_PATH */
  ] = () => {
    if (subPathDepth > 0) {
      subPathDepth--;
      mode = 4;
      actions[
        0
        /* Actions.APPEND */
      ]();
    } else {
      subPathDepth = 0;
      if (key === void 0) {
        return false;
      }
      key = formatSubPath(key);
      if (key === false) {
        return false;
      } else {
        actions[
          1
          /* Actions.PUSH */
        ]();
      }
    }
  };
  function maybeUnescapeQuote() {
    const nextChar = path[index + 1];
    if (mode === 5 && nextChar === "'" || mode === 6 && nextChar === '"') {
      index++;
      newChar = "\\" + nextChar;
      actions[
        0
        /* Actions.APPEND */
      ]();
      return true;
    }
  }
  while (mode !== null) {
    index++;
    c = path[index];
    if (c === "\\" && maybeUnescapeQuote()) {
      continue;
    }
    type = getPathCharType(c);
    typeMap = pathStateMachine[mode];
    transition = typeMap[type] || typeMap[
      "l"
      /* PathCharTypes.ELSE */
    ] || 8;
    if (transition === 8) {
      return;
    }
    mode = transition[0];
    if (transition[1] !== void 0) {
      action = actions[transition[1]];
      if (action) {
        newChar = c;
        if (action() === false) {
          return;
        }
      }
    }
    if (mode === 7) {
      return keys;
    }
  }
}
const cache = /* @__PURE__ */ new Map();
function resolveWithKeyValue(obj, path) {
  return isObject$1(obj) ? obj[path] : null;
}
function resolveValue(obj, path) {
  if (!isObject$1(obj)) {
    return null;
  }
  let hit = cache.get(path);
  if (!hit) {
    hit = parse$1(path);
    if (hit) {
      cache.set(path, hit);
    }
  }
  if (!hit) {
    return null;
  }
  const len = hit.length;
  let last = obj;
  let i = 0;
  while (i < len) {
    const key = hit[i];
    if (AST_NODE_PROPS_KEYS.includes(key) && isMessageAST(last)) {
      return null;
    }
    const val = last[key];
    if (val === void 0) {
      return null;
    }
    if (isFunction(last)) {
      return null;
    }
    last = val;
    i++;
  }
  return last;
}
const DEFAULT_MODIFIER = (str) => str;
const DEFAULT_MESSAGE = (ctx) => "";
const DEFAULT_MESSAGE_DATA_TYPE = "text";
const DEFAULT_NORMALIZE = (values) => values.length === 0 ? "" : join$1(values);
const DEFAULT_INTERPOLATE = toDisplayString;
function pluralDefault(choice, choicesLength) {
  choice = Math.abs(choice);
  if (choicesLength === 2) {
    return choice ? choice > 1 ? 1 : 0 : 1;
  }
  return choice ? Math.min(choice, 2) : 0;
}
function getPluralIndex(options) {
  const index = isNumber(options.pluralIndex) ? options.pluralIndex : -1;
  return options.named && (isNumber(options.named.count) || isNumber(options.named.n)) ? isNumber(options.named.count) ? options.named.count : isNumber(options.named.n) ? options.named.n : index : index;
}
function normalizeNamed(pluralIndex, props) {
  if (!props.count) {
    props.count = pluralIndex;
  }
  if (!props.n) {
    props.n = pluralIndex;
  }
}
function createMessageContext(options = {}) {
  const locale = options.locale;
  const pluralIndex = getPluralIndex(options);
  const pluralRule = isObject$1(options.pluralRules) && isString$1(locale) && isFunction(options.pluralRules[locale]) ? options.pluralRules[locale] : pluralDefault;
  const orgPluralRule = isObject$1(options.pluralRules) && isString$1(locale) && isFunction(options.pluralRules[locale]) ? pluralDefault : void 0;
  const plural = (messages) => {
    return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];
  };
  const _list = options.list || [];
  const list = (index) => _list[index];
  const _named = options.named || create();
  isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);
  const named = (key) => _named[key];
  function message(key) {
    const msg = isFunction(options.messages) ? options.messages(key) : isObject$1(options.messages) ? options.messages[key] : false;
    return !msg ? options.parent ? options.parent.message(key) : DEFAULT_MESSAGE : msg;
  }
  const _modifier = (name) => options.modifiers ? options.modifiers[name] : DEFAULT_MODIFIER;
  const normalize = isPlainObject$1(options.processor) && isFunction(options.processor.normalize) ? options.processor.normalize : DEFAULT_NORMALIZE;
  const interpolate = isPlainObject$1(options.processor) && isFunction(options.processor.interpolate) ? options.processor.interpolate : DEFAULT_INTERPOLATE;
  const type = isPlainObject$1(options.processor) && isString$1(options.processor.type) ? options.processor.type : DEFAULT_MESSAGE_DATA_TYPE;
  const linked = (key, ...args) => {
    const [arg1, arg2] = args;
    let type2 = "text";
    let modifier = "";
    if (args.length === 1) {
      if (isObject$1(arg1)) {
        modifier = arg1.modifier || modifier;
        type2 = arg1.type || type2;
      } else if (isString$1(arg1)) {
        modifier = arg1 || modifier;
      }
    } else if (args.length === 2) {
      if (isString$1(arg1)) {
        modifier = arg1 || modifier;
      }
      if (isString$1(arg2)) {
        type2 = arg2 || type2;
      }
    }
    const ret = message(key)(ctx);
    const msg = (
      // The message in vnode resolved with linked are returned as an array by processor.nomalize
      type2 === "vnode" && isArray(ret) && modifier ? ret[0] : ret
    );
    return modifier ? _modifier(modifier)(msg, type2) : msg;
  };
  const ctx = {
    [
      "list"
      /* HelperNameMap.LIST */
    ]: list,
    [
      "named"
      /* HelperNameMap.NAMED */
    ]: named,
    [
      "plural"
      /* HelperNameMap.PLURAL */
    ]: plural,
    [
      "linked"
      /* HelperNameMap.LINKED */
    ]: linked,
    [
      "message"
      /* HelperNameMap.MESSAGE */
    ]: message,
    [
      "type"
      /* HelperNameMap.TYPE */
    ]: type,
    [
      "interpolate"
      /* HelperNameMap.INTERPOLATE */
    ]: interpolate,
    [
      "normalize"
      /* HelperNameMap.NORMALIZE */
    ]: normalize,
    [
      "values"
      /* HelperNameMap.VALUES */
    ]: assign$1(create(), _list, _named)
  };
  return ctx;
}
let devtools = null;
function setDevToolsHook(hook) {
  devtools = hook;
}
function getDevToolsHook() {
  return devtools;
}
function initI18nDevTools(i18n, version, meta) {
  devtools && devtools.emit("i18n:init", {
    timestamp: Date.now(),
    i18n,
    version,
    meta
  });
}
const translateDevTools = /* @__PURE__ */ createDevToolsHook(
  "function:translate"
  /* IntlifyDevToolsHooks.FunctionTranslate */
);
function createDevToolsHook(hook) {
  return (payloads) => devtools && devtools.emit(hook, payloads);
}
const code$1$1 = CompileWarnCodes.__EXTEND_POINT__;
const inc$1$1 = incrementer(code$1$1);
const CoreWarnCodes = {
  NOT_FOUND_KEY: code$1$1,
  // 2
  FALLBACK_TO_TRANSLATE: inc$1$1(),
  // 3
  CANNOT_FORMAT_NUMBER: inc$1$1(),
  // 4
  FALLBACK_TO_NUMBER_FORMAT: inc$1$1(),
  // 5
  CANNOT_FORMAT_DATE: inc$1$1(),
  // 6
  FALLBACK_TO_DATE_FORMAT: inc$1$1(),
  // 7
  EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: inc$1$1(),
  // 8
  __EXTEND_POINT__: inc$1$1()
  // 9
};
const warnMessages$1 = {
  [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,
  [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,
  [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,
  [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,
  [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,
  [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`,
  [CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER]: `This project is using Custom Message Compiler, which is an experimental feature. It may receive breaking changes or be removed in the future.`
};
function getWarnMessage$1(code2, ...args) {
  return format$2(warnMessages$1[code2], ...args);
}
const code$2 = CompileErrorCodes.__EXTEND_POINT__;
const inc$2 = incrementer(code$2);
const CoreErrorCodes = {
  INVALID_ARGUMENT: code$2,
  // 17
  INVALID_DATE_ARGUMENT: inc$2(),
  // 18
  INVALID_ISO_DATE_ARGUMENT: inc$2(),
  // 19
  NOT_SUPPORT_NON_STRING_MESSAGE: inc$2(),
  // 20
  NOT_SUPPORT_LOCALE_PROMISE_VALUE: inc$2(),
  // 21
  NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: inc$2(),
  // 22
  NOT_SUPPORT_LOCALE_TYPE: inc$2(),
  // 23
  __EXTEND_POINT__: inc$2()
  // 24
};
function createCoreError(code2) {
  return createCompileError(code2, null, false ? { messages: errorMessages$2 } : void 0);
}
const errorMessages$2 = {
  [CoreErrorCodes.INVALID_ARGUMENT]: "Invalid arguments",
  [CoreErrorCodes.INVALID_DATE_ARGUMENT]: "The date provided is an invalid Date object.Make sure your Date represents a valid date.",
  [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: "The argument provided is not a valid ISO date string",
  [CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE]: "Not support non-string message",
  [CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE]: "cannot support promise value",
  [CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION]: "cannot support async function",
  [CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE]: "cannot support locale type"
};
function getLocale(context, options) {
  return options.locale != null ? resolveLocale(options.locale) : resolveLocale(context.locale);
}
let _resolveLocale;
function resolveLocale(locale) {
  if (isString$1(locale)) {
    return locale;
  } else {
    if (isFunction(locale)) {
      if (locale.resolvedOnce && _resolveLocale != null) {
        return _resolveLocale;
      } else if (locale.constructor.name === "Function") {
        const resolve = locale();
        if (isPromise(resolve)) {
          throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE);
        }
        return _resolveLocale = resolve;
      } else {
        throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION);
      }
    } else {
      throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE);
    }
  }
}
function fallbackWithSimple(ctx, fallback, start) {
  return [.../* @__PURE__ */ new Set([
    start,
    ...isArray(fallback) ? fallback : isObject$1(fallback) ? Object.keys(fallback) : isString$1(fallback) ? [fallback] : [start]
  ])];
}
function fallbackWithLocaleChain(ctx, fallback, start) {
  const startLocale = isString$1(start) ? start : DEFAULT_LOCALE;
  const context = ctx;
  if (!context.__localeChainCache) {
    context.__localeChainCache = /* @__PURE__ */ new Map();
  }
  let chain = context.__localeChainCache.get(startLocale);
  if (!chain) {
    chain = [];
    let block = [start];
    while (isArray(block)) {
      block = appendBlockToChain(chain, block, fallback);
    }
    const defaults = isArray(fallback) || !isPlainObject$1(fallback) ? fallback : fallback["default"] ? fallback["default"] : null;
    block = isString$1(defaults) ? [defaults] : defaults;
    if (isArray(block)) {
      appendBlockToChain(chain, block, false);
    }
    context.__localeChainCache.set(startLocale, chain);
  }
  return chain;
}
function appendBlockToChain(chain, block, blocks) {
  let follow = true;
  for (let i = 0; i < block.length && isBoolean(follow); i++) {
    const locale = block[i];
    if (isString$1(locale)) {
      follow = appendLocaleToChain(chain, block[i], blocks);
    }
  }
  return follow;
}
function appendLocaleToChain(chain, locale, blocks) {
  let follow;
  const tokens = locale.split("-");
  do {
    const target = tokens.join("-");
    follow = appendItemToChain(chain, target, blocks);
    tokens.splice(-1, 1);
  } while (tokens.length && follow === true);
  return follow;
}
function appendItemToChain(chain, target, blocks) {
  let follow = false;
  if (!chain.includes(target)) {
    follow = true;
    if (target) {
      follow = target[target.length - 1] !== "!";
      const locale = target.replace(/!/g, "");
      chain.push(locale);
      if ((isArray(blocks) || isPlainObject$1(blocks)) && blocks[locale]) {
        follow = blocks[locale];
      }
    }
  }
  return follow;
}
const VERSION$1 = "9.14.5";
const NOT_REOSLVED = -1;
const DEFAULT_LOCALE = "en-US";
const MISSING_RESOLVE_VALUE = "";
const capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;
function getDefaultLinkedModifiers() {
  return {
    upper: (val, type) => {
      return type === "text" && isString$1(val) ? val.toUpperCase() : type === "vnode" && isObject$1(val) && "__v_isVNode" in val ? val.children.toUpperCase() : val;
    },
    lower: (val, type) => {
      return type === "text" && isString$1(val) ? val.toLowerCase() : type === "vnode" && isObject$1(val) && "__v_isVNode" in val ? val.children.toLowerCase() : val;
    },
    capitalize: (val, type) => {
      return type === "text" && isString$1(val) ? capitalize(val) : type === "vnode" && isObject$1(val) && "__v_isVNode" in val ? capitalize(val.children) : val;
    }
  };
}
let _compiler;
function registerMessageCompiler(compiler) {
  _compiler = compiler;
}
let _resolver;
function registerMessageResolver(resolver) {
  _resolver = resolver;
}
let _fallbacker;
function registerLocaleFallbacker(fallbacker) {
  _fallbacker = fallbacker;
}
let _additionalMeta = null;
const setAdditionalMeta = /* @__NO_SIDE_EFFECTS__ */ (meta) => {
  _additionalMeta = meta;
};
const getAdditionalMeta = /* @__NO_SIDE_EFFECTS__ */ () => _additionalMeta;
let _fallbackContext = null;
const setFallbackContext = (context) => {
  _fallbackContext = context;
};
const getFallbackContext = () => _fallbackContext;
let _cid = 0;
function createCoreContext(options = {}) {
  const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;
  const version = isString$1(options.version) ? options.version : VERSION$1;
  const locale = isString$1(options.locale) || isFunction(options.locale) ? options.locale : DEFAULT_LOCALE;
  const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale;
  const fallbackLocale = isArray(options.fallbackLocale) || isPlainObject$1(options.fallbackLocale) || isString$1(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale;
  const messages = isPlainObject$1(options.messages) ? options.messages : createResources(_locale);
  const datetimeFormats = isPlainObject$1(options.datetimeFormats) ? options.datetimeFormats : createResources(_locale);
  const numberFormats = isPlainObject$1(options.numberFormats) ? options.numberFormats : createResources(_locale);
  const modifiers = assign$1(create(), options.modifiers, getDefaultLinkedModifiers());
  const pluralRules = options.pluralRules || create();
  const missing = isFunction(options.missing) ? options.missing : null;
  const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true;
  const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true;
  const fallbackFormat = !!options.fallbackFormat;
  const unresolving = !!options.unresolving;
  const postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null;
  const processor = isPlainObject$1(options.processor) ? options.processor : null;
  const warnHtmlMessage = isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true;
  const escapeParameter = !!options.escapeParameter;
  const messageCompiler = isFunction(options.messageCompiler) ? options.messageCompiler : _compiler;
  if (false) {
    warnOnce(getWarnMessage$1(CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER));
  }
  const messageResolver = isFunction(options.messageResolver) ? options.messageResolver : _resolver || resolveWithKeyValue;
  const localeFallbacker = isFunction(options.localeFallbacker) ? options.localeFallbacker : _fallbacker || fallbackWithSimple;
  const fallbackContext = isObject$1(options.fallbackContext) ? options.fallbackContext : void 0;
  const internalOptions = options;
  const __datetimeFormatters = isObject$1(internalOptions.__datetimeFormatters) ? internalOptions.__datetimeFormatters : /* @__PURE__ */ new Map();
  const __numberFormatters = isObject$1(internalOptions.__numberFormatters) ? internalOptions.__numberFormatters : /* @__PURE__ */ new Map();
  const __meta = isObject$1(internalOptions.__meta) ? internalOptions.__meta : {};
  _cid++;
  const context = {
    version,
    cid: _cid,
    locale,
    fallbackLocale,
    messages,
    modifiers,
    pluralRules,
    missing,
    missingWarn,
    fallbackWarn,
    fallbackFormat,
    unresolving,
    postTranslation,
    processor,
    warnHtmlMessage,
    escapeParameter,
    messageCompiler,
    messageResolver,
    localeFallbacker,
    fallbackContext,
    onWarn,
    __meta
  };
  {
    context.datetimeFormats = datetimeFormats;
    context.numberFormats = numberFormats;
    context.__datetimeFormatters = __datetimeFormatters;
    context.__numberFormatters = __numberFormatters;
  }
  if (false) {
    context.__v_emitter = internalOptions.__v_emitter != null ? internalOptions.__v_emitter : void 0;
  }
  if (__INTLIFY_PROD_DEVTOOLS__) {
    initI18nDevTools(context, version, __meta);
  }
  return context;
}
const createResources = (locale) => ({ [locale]: create() });
function isTranslateFallbackWarn(fallback, key) {
  return fallback instanceof RegExp ? fallback.test(key) : fallback;
}
function isTranslateMissingWarn(missing, key) {
  return missing instanceof RegExp ? missing.test(key) : missing;
}
function handleMissing(context, key, locale, missingWarn, type) {
  const { missing, onWarn } = context;
  if (false) {
    const emitter = context.__v_emitter;
    if (emitter) {
      emitter.emit("missing", {
        locale,
        key,
        type,
        groupId: `${type}:${key}`
      });
    }
  }
  if (missing !== null) {
    const ret = missing(context, locale, key, type);
    return isString$1(ret) ? ret : key;
  } else {
    if (false) {
      onWarn(getWarnMessage$1(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));
    }
    return key;
  }
}
function updateFallbackLocale(ctx, locale, fallback) {
  const context = ctx;
  context.__localeChainCache = /* @__PURE__ */ new Map();
  ctx.localeFallbacker(ctx, fallback, locale);
}
function isAlmostSameLocale(locale, compareLocale) {
  if (locale === compareLocale)
    return false;
  return locale.split("-")[0] === compareLocale.split("-")[0];
}
function isImplicitFallback(targetLocale, locales) {
  const index = locales.indexOf(targetLocale);
  if (index === -1) {
    return false;
  }
  for (let i = index + 1; i < locales.length; i++) {
    if (isAlmostSameLocale(targetLocale, locales[i])) {
      return true;
    }
  }
  return false;
}
function format(ast) {
  const msg = (ctx) => formatParts(ctx, ast);
  return msg;
}
function formatParts(ctx, ast) {
  const body = resolveBody(ast);
  if (body == null) {
    throw createUnhandleNodeError(
      0
      /* NodeTypes.Resource */
    );
  }
  const type = resolveType(body);
  if (type === 1) {
    const plural = body;
    const cases = resolveCases(plural);
    return ctx.plural(cases.reduce((messages, c) => [
      ...messages,
      formatMessageParts(ctx, c)
    ], []));
  } else {
    return formatMessageParts(ctx, body);
  }
}
function formatMessageParts(ctx, node) {
  const static_ = resolveStatic(node);
  if (static_ != null) {
    return ctx.type === "text" ? static_ : ctx.normalize([static_]);
  } else {
    const messages = resolveItems(node).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []);
    return ctx.normalize(messages);
  }
}
function formatMessagePart(ctx, node) {
  const type = resolveType(node);
  switch (type) {
    case 3: {
      return resolveValue$1(node, type);
    }
    case 9: {
      return resolveValue$1(node, type);
    }
    case 4: {
      const named = node;
      if (hasOwn(named, "k") && named.k) {
        return ctx.interpolate(ctx.named(named.k));
      }
      if (hasOwn(named, "key") && named.key) {
        return ctx.interpolate(ctx.named(named.key));
      }
      throw createUnhandleNodeError(type);
    }
    case 5: {
      const list = node;
      if (hasOwn(list, "i") && isNumber(list.i)) {
        return ctx.interpolate(ctx.list(list.i));
      }
      if (hasOwn(list, "index") && isNumber(list.index)) {
        return ctx.interpolate(ctx.list(list.index));
      }
      throw createUnhandleNodeError(type);
    }
    case 6: {
      const linked = node;
      const modifier = resolveLinkedModifier(linked);
      const key = resolveLinkedKey(linked);
      return ctx.linked(formatMessagePart(ctx, key), modifier ? formatMessagePart(ctx, modifier) : void 0, ctx.type);
    }
    case 7: {
      return resolveValue$1(node, type);
    }
    case 8: {
      return resolveValue$1(node, type);
    }
    default:
      throw new Error(`unhandled node on format message part: ${type}`);
  }
}
const WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;
function checkHtmlMessage(source, warnHtmlMessage) {
  if (warnHtmlMessage && detectHtmlTag(source)) {
    warn(format$2(WARN_MESSAGE, { source }));
  }
}
const defaultOnCacheKey = (message) => message;
let compileCache = create();
function onCompileWarn(_warn) {
  if (_warn.code === CompileWarnCodes.USE_MODULO_SYNTAX) {
    warn(`The use of named interpolation with modulo syntax is deprecated. It will be removed in v10.
reference: https://vue-i18n.intlify.dev/guide/essentials/syntax#rails-i18n-format 
(message compiler warning message: ${_warn.message})`);
  }
}
function clearCompileCache() {
  compileCache = create();
}
function baseCompile$1(message, options = {}) {
  let detectError = false;
  const onError = options.onError || defaultOnError$1;
  options.onError = (err) => {
    detectError = true;
    onError(err);
  };
  return { ...baseCompile$2(message, options), detectError };
}
const compileToFunction = /* @__NO_SIDE_EFFECTS__ */ (message, context) => {
  if (!isString$1(message)) {
    throw createCoreError(CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE);
  }
  if (false) {
    context.onWarn = onCompileWarn;
  }
  {
    const warnHtmlMessage = isBoolean(context.warnHtmlMessage) ? context.warnHtmlMessage : true;
    const onCacheKey = context.onCacheKey || defaultOnCacheKey;
    const cacheKey = onCacheKey(message);
    const cached = compileCache[cacheKey];
    if (cached) {
      return cached;
    }
    const { code: code2, detectError } = baseCompile$1(message, context);
    const msg = new Function(`return ${code2}`)();
    return !detectError ? compileCache[cacheKey] = msg : msg;
  }
};
function compile$1(message, context) {
  if (false) {
    context.onWarn = onCompileWarn;
  }
  if (__INTLIFY_JIT_COMPILATION__ && !__INTLIFY_DROP_MESSAGE_COMPILER__ && isString$1(message)) {
    const warnHtmlMessage = isBoolean(context.warnHtmlMessage) ? context.warnHtmlMessage : true;
    const onCacheKey = context.onCacheKey || defaultOnCacheKey;
    const cacheKey = onCacheKey(message);
    const cached = compileCache[cacheKey];
    if (cached) {
      return cached;
    }
    const { ast, detectError } = baseCompile$1(message, {
      ...context,
      location: false,
      jit: true
    });
    const msg = format(ast);
    return !detectError ? compileCache[cacheKey] = msg : msg;
  } else {
    if (false) {
      warn(`the message that is resolve with key '${context.key}' is not supported for jit compilation`);
      return (() => message);
    }
    const cacheKey = message.cacheKey;
    if (cacheKey) {
      const cached = compileCache[cacheKey];
      if (cached) {
        return cached;
      }
      return compileCache[cacheKey] = format(message);
    } else {
      return format(message);
    }
  }
}
const NOOP_MESSAGE_FUNCTION = () => "";
const isMessageFunction = (val) => isFunction(val);
function translate(context, ...args) {
  const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;
  const [key, options] = parseTranslateArgs(...args);
  const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn;
  const fallbackWarn = isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn;
  const escapeParameter = isBoolean(options.escapeParameter) ? options.escapeParameter : context.escapeParameter;
  const resolvedMessage = !!options.resolvedMessage;
  const defaultMsgOrKey = isString$1(options.default) || isBoolean(options.default) ? !isBoolean(options.default) ? options.default : !messageCompiler ? () => key : key : fallbackFormat ? !messageCompiler ? () => key : key : "";
  const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== "";
  const locale = getLocale(context, options);
  escapeParameter && escapeParams(options);
  let [formatScope, targetLocale, message] = !resolvedMessage ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) : [
    key,
    locale,
    messages[locale] || create()
  ];
  let format2 = formatScope;
  let cacheBaseKey = key;
  if (!resolvedMessage && !(isString$1(format2) || isMessageAST(format2) || isMessageFunction(format2))) {
    if (enableDefaultMsg) {
      format2 = defaultMsgOrKey;
      cacheBaseKey = format2;
    }
  }
  if (!resolvedMessage && (!(isString$1(format2) || isMessageAST(format2) || isMessageFunction(format2)) || !isString$1(targetLocale))) {
    return unresolving ? NOT_REOSLVED : key;
  }
  if (false) {
    warn(`The message format compilation is not supported in this build. Because message compiler isn't included. You need to pre-compilation all message format. So translate function return '${key}'.`);
    return key;
  }
  let occurred = false;
  const onError = () => {
    occurred = true;
  };
  const msg = !isMessageFunction(format2) ? compileMessageFormat(context, key, targetLocale, format2, cacheBaseKey, onError) : format2;
  if (occurred) {
    return format2;
  }
  const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);
  const msgContext = createMessageContext(ctxOptions);
  const messaged = evaluateMessage(context, msg, msgContext);
  let ret = postTranslation ? postTranslation(messaged, key) : messaged;
  if (escapeParameter && isString$1(ret)) {
    ret = sanitizeTranslatedHtml(ret);
  }
  if (__INTLIFY_PROD_DEVTOOLS__) {
    const payloads = {
      timestamp: Date.now(),
      key: isString$1(key) ? key : isMessageFunction(format2) ? format2.key : "",
      locale: targetLocale || (isMessageFunction(format2) ? format2.locale : ""),
      format: isString$1(format2) ? format2 : isMessageFunction(format2) ? format2.source : "",
      message: ret
    };
    payloads.meta = assign$1({}, context.__meta, /* @__PURE__ */ getAdditionalMeta() || {});
    translateDevTools(payloads);
  }
  return ret;
}
function escapeParams(options) {
  if (isArray(options.list)) {
    options.list = options.list.map((item) => isString$1(item) ? escapeHtml(item) : item);
  } else if (isObject$1(options.named)) {
    Object.keys(options.named).forEach((key) => {
      if (isString$1(options.named[key])) {
        options.named[key] = escapeHtml(options.named[key]);
      }
    });
  }
}
function resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {
  const { messages, onWarn, messageResolver: resolveValue2, localeFallbacker } = context;
  const locales = localeFallbacker(context, fallbackLocale, locale);
  let message = create();
  let targetLocale;
  let format2 = null;
  let from = locale;
  let to = null;
  const type = "translate";
  for (let i = 0; i < locales.length; i++) {
    targetLocale = to = locales[i];
    if (false) {
      onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {
        key,
        target: targetLocale
      }));
    }
    if (false) {
      const emitter = context.__v_emitter;
      if (emitter) {
        emitter.emit("fallback", {
          type,
          key,
          from,
          to,
          groupId: `${type}:${key}`
        });
      }
    }
    message = messages[targetLocale] || create();
    let start = null;
    let startTag;
    let endTag;
    if (false) {
      start = window.performance.now();
      startTag = "intlify-message-resolve-start";
      endTag = "intlify-message-resolve-end";
      mark && mark(startTag);
    }
    if ((format2 = resolveValue2(message, key)) === null) {
      format2 = message[key];
    }
    if (false) {
      const end = window.performance.now();
      const emitter = context.__v_emitter;
      if (emitter && start && format2) {
        emitter.emit("message-resolve", {
          type: "message-resolve",
          key,
          message: format2,
          time: end - start,
          groupId: `${type}:${key}`
        });
      }
      if (startTag && endTag && mark && measure) {
        mark(endTag);
        measure("intlify message resolve", startTag, endTag);
      }
    }
    if (isString$1(format2) || isMessageAST(format2) || isMessageFunction(format2)) {
      break;
    }
    if (!isImplicitFallback(targetLocale, locales)) {
      const missingRet = handleMissing(
        context,
        // eslint-disable-line @typescript-eslint/no-explicit-any
        key,
        targetLocale,
        missingWarn,
        type
      );
      if (missingRet !== key) {
        format2 = missingRet;
      }
    }
    from = to;
  }
  return [format2, targetLocale, message];
}
function compileMessageFormat(context, key, targetLocale, format2, cacheBaseKey, onError) {
  const { messageCompiler, warnHtmlMessage } = context;
  if (isMessageFunction(format2)) {
    const msg2 = format2;
    msg2.locale = msg2.locale || targetLocale;
    msg2.key = msg2.key || key;
    return msg2;
  }
  if (messageCompiler == null) {
    const msg2 = (() => format2);
    msg2.locale = targetLocale;
    msg2.key = key;
    return msg2;
  }
  let start = null;
  let startTag;
  let endTag;
  if (false) {
    start = window.performance.now();
    startTag = "intlify-message-compilation-start";
    endTag = "intlify-message-compilation-end";
    mark && mark(startTag);
  }
  const msg = messageCompiler(format2, getCompileContext(context, targetLocale, cacheBaseKey, format2, warnHtmlMessage, onError));
  if (false) {
    const end = window.performance.now();
    const emitter = context.__v_emitter;
    if (emitter && start) {
      emitter.emit("message-compilation", {
        type: "message-compilation",
        message: format2,
        time: end - start,
        groupId: `${"translate"}:${key}`
      });
    }
    if (startTag && endTag && mark && measure) {
      mark(endTag);
      measure("intlify message compilation", startTag, endTag);
    }
  }
  msg.locale = targetLocale;
  msg.key = key;
  msg.source = format2;
  return msg;
}
function evaluateMessage(context, msg, msgCtx) {
  let start = null;
  let startTag;
  let endTag;
  if (false) {
    start = window.performance.now();
    startTag = "intlify-message-evaluation-start";
    endTag = "intlify-message-evaluation-end";
    mark && mark(startTag);
  }
  const messaged = msg(msgCtx);
  if (false) {
    const end = window.performance.now();
    const emitter = context.__v_emitter;
    if (emitter && start) {
      emitter.emit("message-evaluation", {
        type: "message-evaluation",
        value: messaged,
        time: end - start,
        groupId: `${"translate"}:${msg.key}`
      });
    }
    if (startTag && endTag && mark && measure) {
      mark(endTag);
      measure("intlify message evaluation", startTag, endTag);
    }
  }
  return messaged;
}
function parseTranslateArgs(...args) {
  const [arg1, arg2, arg3] = args;
  const options = create();
  if (!isString$1(arg1) && !isNumber(arg1) && !isMessageFunction(arg1) && !isMessageAST(arg1)) {
    throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);
  }
  const key = isNumber(arg1) ? String(arg1) : isMessageFunction(arg1) ? arg1 : arg1;
  if (isNumber(arg2)) {
    options.plural = arg2;
  } else if (isString$1(arg2)) {
    options.default = arg2;
  } else if (isPlainObject$1(arg2) && !isEmptyObject(arg2)) {
    options.named = arg2;
  } else if (isArray(arg2)) {
    options.list = arg2;
  }
  if (isNumber(arg3)) {
    options.plural = arg3;
  } else if (isString$1(arg3)) {
    options.default = arg3;
  } else if (isPlainObject$1(arg3)) {
    assign$1(options, arg3);
  }
  return [key, options];
}
function getCompileContext(context, locale, key, source, warnHtmlMessage, onError) {
  return {
    locale,
    key,
    warnHtmlMessage,
    onError: (err) => {
      onError && onError(err);
      if (false) {
        const _source = getSourceForCodeFrame(source);
        const message = `Message compilation error: ${err.message}`;
        const codeFrame = err.location && _source && generateCodeFrame(_source, err.location.start.offset, err.location.end.offset);
        const emitter = context.__v_emitter;
        if (emitter && _source) {
          emitter.emit("compile-error", {
            message: _source,
            error: err.message,
            start: err.location && err.location.start.offset,
            end: err.location && err.location.end.offset,
            groupId: `${"translate"}:${key}`
          });
        }
        console.error(codeFrame ? `${message}
${codeFrame}` : message);
      } else {
        throw err;
      }
    },
    onCacheKey: (source2) => generateFormatCacheKey(locale, key, source2)
  };
}
function getSourceForCodeFrame(source) {
  if (isString$1(source)) {
    return source;
  } else {
    if (source.loc && source.loc.source) {
      return source.loc.source;
    }
  }
}
function getMessageContextOptions(context, locale, message, options) {
  const { modifiers, pluralRules, messageResolver: resolveValue2, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;
  const resolveMessage = (key) => {
    let val = resolveValue2(message, key);
    if (val == null && fallbackContext) {
      const [, , message2] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);
      val = resolveValue2(message2, key);
    }
    if (isString$1(val) || isMessageAST(val)) {
      let occurred = false;
      const onError = () => {
        occurred = true;
      };
      const msg = compileMessageFormat(context, key, locale, val, key, onError);
      return !occurred ? msg : NOOP_MESSAGE_FUNCTION;
    } else if (isMessageFunction(val)) {
      return val;
    } else {
      return NOOP_MESSAGE_FUNCTION;
    }
  };
  const ctxOptions = {
    locale,
    modifiers,
    pluralRules,
    messages: resolveMessage
  };
  if (context.processor) {
    ctxOptions.processor = context.processor;
  }
  if (options.list) {
    ctxOptions.list = options.list;
  }
  if (options.named) {
    ctxOptions.named = options.named;
  }
  if (isNumber(options.plural)) {
    ctxOptions.pluralIndex = options.plural;
  }
  return ctxOptions;
}
const intlDefined = typeof Intl !== "undefined";
const Availabilities = {
  dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== "undefined",
  numberFormat: intlDefined && typeof Intl.NumberFormat !== "undefined"
};
function datetime(context, ...args) {
  const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;
  const { __datetimeFormatters } = context;
  if (false) {
    onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_DATE));
    return MISSING_RESOLVE_VALUE;
  }
  const [key, value, options, overrides] = parseDateTimeArgs(...args);
  const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn;
  const fallbackWarn = isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn;
  const part = !!options.part;
  const locale = getLocale(context, options);
  const locales = localeFallbacker(
    context,
    // eslint-disable-line @typescript-eslint/no-explicit-any
    fallbackLocale,
    locale
  );
  if (!isString$1(key) || key === "") {
    return new Intl.DateTimeFormat(locale, overrides).format(value);
  }
  let datetimeFormat = {};
  let targetLocale;
  let format2 = null;
  let from = locale;
  let to = null;
  const type = "datetime format";
  for (let i = 0; i < locales.length; i++) {
    targetLocale = to = locales[i];
    if (false) {
      onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {
        key,
        target: targetLocale
      }));
    }
    if (false) {
      const emitter = context.__v_emitter;
      if (emitter) {
        emitter.emit("fallback", {
          type,
          key,
          from,
          to,
          groupId: `${type}:${key}`
        });
      }
    }
    datetimeFormat = datetimeFormats[targetLocale] || {};
    format2 = datetimeFormat[key];
    if (isPlainObject$1(format2))
      break;
    handleMissing(context, key, targetLocale, missingWarn, type);
    from = to;
  }
  if (!isPlainObject$1(format2) || !isString$1(targetLocale)) {
    return unresolving ? NOT_REOSLVED : key;
  }
  let id = `${targetLocale}__${key}`;
  if (!isEmptyObject(overrides)) {
    id = `${id}__${JSON.stringify(overrides)}`;
  }
  let formatter = __datetimeFormatters.get(id);
  if (!formatter) {
    formatter = new Intl.DateTimeFormat(targetLocale, assign$1({}, format2, overrides));
    __datetimeFormatters.set(id, formatter);
  }
  return !part ? formatter.format(value) : formatter.formatToParts(value);
}
const DATETIME_FORMAT_OPTIONS_KEYS = [
  "localeMatcher",
  "weekday",
  "era",
  "year",
  "month",
  "day",
  "hour",
  "minute",
  "second",
  "timeZoneName",
  "formatMatcher",
  "hour12",
  "timeZone",
  "dateStyle",
  "timeStyle",
  "calendar",
  "dayPeriod",
  "numberingSystem",
  "hourCycle",
  "fractionalSecondDigits"
];
function parseDateTimeArgs(...args) {
  const [arg1, arg2, arg3, arg4] = args;
  const options = create();
  let overrides = create();
  let value;
  if (isString$1(arg1)) {
    const matches = arg1.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);
    if (!matches) {
      throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);
    }
    const dateTime = matches[3] ? matches[3].trim().startsWith("T") ? `${matches[1].trim()}${matches[3].trim()}` : `${matches[1].trim()}T${matches[3].trim()}` : matches[1].trim();
    value = new Date(dateTime);
    try {
      value.toISOString();
    } catch (e) {
      throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);
    }
  } else if (isDate(arg1)) {
    if (isNaN(arg1.getTime())) {
      throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);
    }
    value = arg1;
  } else if (isNumber(arg1)) {
    value = arg1;
  } else {
    throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);
  }
  if (isString$1(arg2)) {
    options.key = arg2;
  } else if (isPlainObject$1(arg2)) {
    Object.keys(arg2).forEach((key) => {
      if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {
        overrides[key] = arg2[key];
      } else {
        options[key] = arg2[key];
      }
    });
  }
  if (isString$1(arg3)) {
    options.locale = arg3;
  } else if (isPlainObject$1(arg3)) {
    overrides = arg3;
  }
  if (isPlainObject$1(arg4)) {
    overrides = arg4;
  }
  return [options.key || "", value, options, overrides];
}
function clearDateTimeFormat(ctx, locale, format2) {
  const context = ctx;
  for (const key in format2) {
    const id = `${locale}__${key}`;
    if (!context.__datetimeFormatters.has(id)) {
      continue;
    }
    context.__datetimeFormatters.delete(id);
  }
}
function number(context, ...args) {
  const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;
  const { __numberFormatters } = context;
  if (false) {
    onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_NUMBER));
    return MISSING_RESOLVE_VALUE;
  }
  const [key, value, options, overrides] = parseNumberArgs(...args);
  const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn;
  const fallbackWarn = isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn;
  const part = !!options.part;
  const locale = getLocale(context, options);
  const locales = localeFallbacker(
    context,
    // eslint-disable-line @typescript-eslint/no-explicit-any
    fallbackLocale,
    locale
  );
  if (!isString$1(key) || key === "") {
    return new Intl.NumberFormat(locale, overrides).format(value);
  }
  let numberFormat = {};
  let targetLocale;
  let format2 = null;
  let from = locale;
  let to = null;
  const type = "number format";
  for (let i = 0; i < locales.length; i++) {
    targetLocale = to = locales[i];
    if (false) {
      onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {
        key,
        target: targetLocale
      }));
    }
    if (false) {
      const emitter = context.__v_emitter;
      if (emitter) {
        emitter.emit("fallback", {
          type,
          key,
          from,
          to,
          groupId: `${type}:${key}`
        });
      }
    }
    numberFormat = numberFormats[targetLocale] || {};
    format2 = numberFormat[key];
    if (isPlainObject$1(format2))
      break;
    handleMissing(context, key, targetLocale, missingWarn, type);
    from = to;
  }
  if (!isPlainObject$1(format2) || !isString$1(targetLocale)) {
    return unresolving ? NOT_REOSLVED : key;
  }
  let id = `${targetLocale}__${key}`;
  if (!isEmptyObject(overrides)) {
    id = `${id}__${JSON.stringify(overrides)}`;
  }
  let formatter = __numberFormatters.get(id);
  if (!formatter) {
    formatter = new Intl.NumberFormat(targetLocale, assign$1({}, format2, overrides));
    __numberFormatters.set(id, formatter);
  }
  return !part ? formatter.format(value) : formatter.formatToParts(value);
}
const NUMBER_FORMAT_OPTIONS_KEYS = [
  "localeMatcher",
  "style",
  "currency",
  "currencyDisplay",
  "currencySign",
  "useGrouping",
  "minimumIntegerDigits",
  "minimumFractionDigits",
  "maximumFractionDigits",
  "minimumSignificantDigits",
  "maximumSignificantDigits",
  "compactDisplay",
  "notation",
  "signDisplay",
  "unit",
  "unitDisplay",
  "roundingMode",
  "roundingPriority",
  "roundingIncrement",
  "trailingZeroDisplay"
];
function parseNumberArgs(...args) {
  const [arg1, arg2, arg3, arg4] = args;
  const options = create();
  let overrides = create();
  if (!isNumber(arg1)) {
    throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);
  }
  const value = arg1;
  if (isString$1(arg2)) {
    options.key = arg2;
  } else if (isPlainObject$1(arg2)) {
    Object.keys(arg2).forEach((key) => {
      if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {
        overrides[key] = arg2[key];
      } else {
        options[key] = arg2[key];
      }
    });
  }
  if (isString$1(arg3)) {
    options.locale = arg3;
  } else if (isPlainObject$1(arg3)) {
    overrides = arg3;
  }
  if (isPlainObject$1(arg4)) {
    overrides = arg4;
  }
  return [options.key || "", value, options, overrides];
}
function clearNumberFormat(ctx, locale, format2) {
  const context = ctx;
  for (const key in format2) {
    const id = `${locale}__${key}`;
    if (!context.__numberFormatters.has(id)) {
      continue;
    }
    context.__numberFormatters.delete(id);
  }
}
{
  initFeatureFlags$1();
}

function getDevtoolsGlobalHook() {
    return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;
}
function getTarget() {
    // @ts-expect-error navigator and windows are not available in all environments
    return (typeof navigator !== 'undefined' && typeof window !== 'undefined')
        ? window
        : typeof globalThis !== 'undefined'
            ? globalThis
            : {};
}
const isProxyAvailable = typeof Proxy === 'function';

const HOOK_SETUP = 'devtools-plugin:setup';
const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';

let supported;
let perf;
function isPerformanceSupported() {
    var _a;
    if (supported !== undefined) {
        return supported;
    }
    if (typeof window !== 'undefined' && window.performance) {
        supported = true;
        perf = window.performance;
    }
    else if (typeof globalThis !== 'undefined' && ((_a = globalThis.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {
        supported = true;
        perf = globalThis.perf_hooks.performance;
    }
    else {
        supported = false;
    }
    return supported;
}
function now() {
    return isPerformanceSupported() ? perf.now() : Date.now();
}

class ApiProxy {
    constructor(plugin, hook) {
        this.target = null;
        this.targetQueue = [];
        this.onQueue = [];
        this.plugin = plugin;
        this.hook = hook;
        const defaultSettings = {};
        if (plugin.settings) {
            for (const id in plugin.settings) {
                const item = plugin.settings[id];
                defaultSettings[id] = item.defaultValue;
            }
        }
        const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;
        let currentSettings = Object.assign({}, defaultSettings);
        try {
            const raw = localStorage.getItem(localSettingsSaveId);
            const data = JSON.parse(raw);
            Object.assign(currentSettings, data);
        }
        catch (e) {
            // noop
        }
        this.fallbacks = {
            getSettings() {
                return currentSettings;
            },
            setSettings(value) {
                try {
                    localStorage.setItem(localSettingsSaveId, JSON.stringify(value));
                }
                catch (e) {
                    // noop
                }
                currentSettings = value;
            },
            now() {
                return now();
            },
        };
        if (hook) {
            hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {
                if (pluginId === this.plugin.id) {
                    this.fallbacks.setSettings(value);
                }
            });
        }
        this.proxiedOn = new Proxy({}, {
            get: (_target, prop) => {
                if (this.target) {
                    return this.target.on[prop];
                }
                else {
                    return (...args) => {
                        this.onQueue.push({
                            method: prop,
                            args,
                        });
                    };
                }
            },
        });
        this.proxiedTarget = new Proxy({}, {
            get: (_target, prop) => {
                if (this.target) {
                    return this.target[prop];
                }
                else if (prop === 'on') {
                    return this.proxiedOn;
                }
                else if (Object.keys(this.fallbacks).includes(prop)) {
                    return (...args) => {
                        this.targetQueue.push({
                            method: prop,
                            args,
                            resolve: () => { },
                        });
                        return this.fallbacks[prop](...args);
                    };
                }
                else {
                    return (...args) => {
                        return new Promise((resolve) => {
                            this.targetQueue.push({
                                method: prop,
                                args,
                                resolve,
                            });
                        });
                    };
                }
            },
        });
    }
    async setRealTarget(target) {
        this.target = target;
        for (const item of this.onQueue) {
            this.target.on[item.method](...item.args);
        }
        for (const item of this.targetQueue) {
            item.resolve(await this.target[item.method](...item.args));
        }
    }
}

function setupDevtoolsPlugin(pluginDescriptor, setupFn) {
    const descriptor = pluginDescriptor;
    const target = getTarget();
    const hook = getDevtoolsGlobalHook();
    const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;
    if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {
        hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);
    }
    else {
        const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;
        const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];
        list.push({
            pluginDescriptor: descriptor,
            setupFn,
            proxy,
        });
        if (proxy) {
            setupFn(proxy.proxiedTarget);
        }
    }
}

/*!
  * vue-i18n v9.14.5
  * (c) 2025 kazuya kawaguchi
  * Released under the MIT License.
  */
const VERSION = "9.14.5";
function initFeatureFlags() {
  if (typeof __VUE_I18N_FULL_INSTALL__ !== "boolean") {
    getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;
  }
  if (typeof __VUE_I18N_LEGACY_API__ !== "boolean") {
    getGlobalThis().__VUE_I18N_LEGACY_API__ = true;
  }
  if (typeof __INTLIFY_JIT_COMPILATION__ !== "boolean") {
    getGlobalThis().__INTLIFY_JIT_COMPILATION__ = false;
  }
  if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== "boolean") {
    getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;
  }
  if (typeof __INTLIFY_PROD_DEVTOOLS__ !== "boolean") {
    getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;
  }
}
const code$1 = CoreWarnCodes.__EXTEND_POINT__;
const inc$1 = incrementer(code$1);
const I18nWarnCodes = {
  FALLBACK_TO_ROOT: code$1,
  // 9
  NOT_SUPPORTED_PRESERVE: inc$1(),
  // 10
  NOT_SUPPORTED_FORMATTER: inc$1(),
  // 11
  NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(),
  // 12
  NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(),
  // 13
  COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(),
  // 14
  NOT_FOUND_PARENT_SCOPE: inc$1(),
  // 15
  IGNORE_OBJ_FLATTEN: inc$1(),
  // 16
  NOTICE_DROP_ALLOW_COMPOSITION: inc$1(),
  // 17
  NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG: inc$1()
  // 18
};
const warnMessages = {
  [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,
  [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,
  [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,
  [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,
  [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,
  [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,
  [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`,
  [I18nWarnCodes.IGNORE_OBJ_FLATTEN]: `Ignore object flatten: '{key}' key has an string value`,
  [I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION]: `'allowComposition' option will be dropped in the next major version. For more information, please see 👉 https://tinyurl.com/2p97mcze`,
  [I18nWarnCodes.NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG]: `'translateExistCompatible' option will be dropped in the next major version.`
};
function getWarnMessage(code2, ...args) {
  return format$2(warnMessages[code2], ...args);
}
const code = CoreErrorCodes.__EXTEND_POINT__;
const inc = incrementer(code);
const I18nErrorCodes = {
  // composer module errors
  UNEXPECTED_RETURN_TYPE: code,
  // 24
  // legacy module errors
  INVALID_ARGUMENT: inc(),
  // 25
  // i18n module errors
  MUST_BE_CALL_SETUP_TOP: inc(),
  // 26
  NOT_INSTALLED: inc(),
  // 27
  NOT_AVAILABLE_IN_LEGACY_MODE: inc(),
  // 28
  // directive module errors
  REQUIRED_VALUE: inc(),
  // 29
  INVALID_VALUE: inc(),
  // 30
  // vue-devtools errors
  CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(),
  // 31
  NOT_INSTALLED_WITH_PROVIDE: inc(),
  // 32
  // unexpected error
  UNEXPECTED_ERROR: inc(),
  // 33
  // not compatible legacy vue-i18n constructor
  NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(),
  // 34
  // bridge support vue 2.x only
  BRIDGE_SUPPORT_VUE_2_ONLY: inc(),
  // 35
  // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``
  MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(),
  // 36
  // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly
  NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(),
  // 37
  // for enhancement
  __EXTEND_POINT__: inc()
  // 38
};
function createI18nError(code2, ...args) {
  return createCompileError(code2, null, false ? { messages: errorMessages$1, args } : void 0);
}
const errorMessages$1 = {
  [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: "Unexpected return type in composer",
  [I18nErrorCodes.INVALID_ARGUMENT]: "Invalid argument",
  [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: "Must be called at the top of a `setup` function",
  [I18nErrorCodes.NOT_INSTALLED]: "Need to install with `app.use` function",
  [I18nErrorCodes.UNEXPECTED_ERROR]: "Unexpected error",
  [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: "Not available in legacy mode",
  [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,
  [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,
  [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,
  [I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE]: "Need to install with `provide` function",
  [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: "Not compatible legacy VueI18n.",
  [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: "vue-i18n-bridge support Vue 2.x only",
  [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: "Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode",
  [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: "Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly"
};
const TranslateVNodeSymbol = /* @__PURE__ */ makeSymbol("__translateVNode");
const DatetimePartsSymbol = /* @__PURE__ */ makeSymbol("__datetimeParts");
const NumberPartsSymbol = /* @__PURE__ */ makeSymbol("__numberParts");
const EnableEmitter = /* @__PURE__ */ makeSymbol("__enableEmitter");
const DisableEmitter = /* @__PURE__ */ makeSymbol("__disableEmitter");
const SetPluralRulesSymbol = makeSymbol("__setPluralRules");
makeSymbol("__intlifyMeta");
const InejctWithOptionSymbol = /* @__PURE__ */ makeSymbol("__injectWithOption");
const DisposeSymbol = /* @__PURE__ */ makeSymbol("__dispose");
const __VUE_I18N_BRIDGE__ = "__VUE_I18N_BRIDGE__";
function handleFlatJson(obj) {
  if (!isObject$1(obj)) {
    return obj;
  }
  if (isMessageAST(obj)) {
    return obj;
  }
  for (const key in obj) {
    if (!hasOwn(obj, key)) {
      continue;
    }
    if (!key.includes(".")) {
      if (isObject$1(obj[key])) {
        handleFlatJson(obj[key]);
      }
    } else {
      const subKeys = key.split(".");
      const lastIndex = subKeys.length - 1;
      let currentObj = obj;
      let hasStringValue = false;
      for (let i = 0; i < lastIndex; i++) {
        if (subKeys[i] === "__proto__") {
          throw new Error(`unsafe key: ${subKeys[i]}`);
        }
        if (!(subKeys[i] in currentObj)) {
          currentObj[subKeys[i]] = create();
        }
        if (!isObject$1(currentObj[subKeys[i]])) {
          hasStringValue = true;
          break;
        }
        currentObj = currentObj[subKeys[i]];
      }
      if (!hasStringValue) {
        if (!isMessageAST(currentObj)) {
          currentObj[subKeys[lastIndex]] = obj[key];
          delete obj[key];
        } else {
          if (!AST_NODE_PROPS_KEYS.includes(subKeys[lastIndex])) {
            delete obj[key];
          }
        }
      }
      if (!isMessageAST(currentObj)) {
        const target = currentObj[subKeys[lastIndex]];
        if (isObject$1(target)) {
          handleFlatJson(target);
        }
      }
    }
  }
  return obj;
}
function getLocaleMessages(locale, options) {
  const { messages, __i18n, messageResolver, flatJson } = options;
  const ret = isPlainObject$1(messages) ? messages : isArray(__i18n) ? create() : { [locale]: create() };
  if (isArray(__i18n)) {
    __i18n.forEach((custom) => {
      if ("locale" in custom && "resource" in custom) {
        const { locale: locale2, resource } = custom;
        if (locale2) {
          ret[locale2] = ret[locale2] || create();
          deepCopy(resource, ret[locale2]);
        } else {
          deepCopy(resource, ret);
        }
      } else {
        isString$1(custom) && deepCopy(JSON.parse(custom), ret);
      }
    });
  }
  if (messageResolver == null && flatJson) {
    for (const key in ret) {
      if (hasOwn(ret, key)) {
        handleFlatJson(ret[key]);
      }
    }
  }
  return ret;
}
function getComponentOptions(instance) {
  return instance.type;
}
function adjustI18nResources(gl, options, componentOptions) {
  let messages = isObject$1(options.messages) ? options.messages : create();
  if ("__i18nGlobal" in componentOptions) {
    messages = getLocaleMessages(gl.locale.value, {
      messages,
      __i18n: componentOptions.__i18nGlobal
    });
  }
  const locales = Object.keys(messages);
  if (locales.length) {
    locales.forEach((locale) => {
      gl.mergeLocaleMessage(locale, messages[locale]);
    });
  }
  {
    if (isObject$1(options.datetimeFormats)) {
      const locales2 = Object.keys(options.datetimeFormats);
      if (locales2.length) {
        locales2.forEach((locale) => {
          gl.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);
        });
      }
    }
    if (isObject$1(options.numberFormats)) {
      const locales2 = Object.keys(options.numberFormats);
      if (locales2.length) {
        locales2.forEach((locale) => {
          gl.mergeNumberFormat(locale, options.numberFormats[locale]);
        });
      }
    }
  }
}
function createTextNode(key) {
  return createVNode(Text, null, key, 0);
}
const DEVTOOLS_META = "__INTLIFY_META__";
const NOOP_RETURN_ARRAY = () => [];
const NOOP_RETURN_FALSE = () => false;
let composerID = 0;
function defineCoreMissingHandler(missing) {
  return ((ctx, locale, key, type) => {
    return missing(locale, key, getCurrentInstance() || void 0, type);
  });
}
const getMetaInfo = /* @__NO_SIDE_EFFECTS__ */ () => {
  const instance = getCurrentInstance();
  let meta = null;
  return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META]) ? { [DEVTOOLS_META]: meta } : null;
};
function createComposer(options = {}, VueI18nLegacy) {
  const { __root, __injectWithOption } = options;
  const _isGlobal = __root === void 0;
  const flatJson = options.flatJson;
  const _ref = inBrowser ? ref : shallowRef;
  const translateExistCompatible = !!options.translateExistCompatible;
  if (false) {
    if (translateExistCompatible && true) {
      warnOnce(getWarnMessage(I18nWarnCodes.NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG));
    }
  }
  let _inheritLocale = isBoolean(options.inheritLocale) ? options.inheritLocale : true;
  const _locale = _ref(
    // prettier-ignore
    __root && _inheritLocale ? __root.locale.value : isString$1(options.locale) ? options.locale : DEFAULT_LOCALE
  );
  const _fallbackLocale = _ref(
    // prettier-ignore
    __root && _inheritLocale ? __root.fallbackLocale.value : isString$1(options.fallbackLocale) || isArray(options.fallbackLocale) || isPlainObject$1(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale.value
  );
  const _messages = _ref(getLocaleMessages(_locale.value, options));
  const _datetimeFormats = _ref(isPlainObject$1(options.datetimeFormats) ? options.datetimeFormats : { [_locale.value]: {} });
  const _numberFormats = _ref(isPlainObject$1(options.numberFormats) ? options.numberFormats : { [_locale.value]: {} });
  let _missingWarn = __root ? __root.missingWarn : isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true;
  let _fallbackWarn = __root ? __root.fallbackWarn : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true;
  let _fallbackRoot = __root ? __root.fallbackRoot : isBoolean(options.fallbackRoot) ? options.fallbackRoot : true;
  let _fallbackFormat = !!options.fallbackFormat;
  let _missing = isFunction(options.missing) ? options.missing : null;
  let _runtimeMissing = isFunction(options.missing) ? defineCoreMissingHandler(options.missing) : null;
  let _postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null;
  let _warnHtmlMessage = __root ? __root.warnHtmlMessage : isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true;
  let _escapeParameter = !!options.escapeParameter;
  const _modifiers = __root ? __root.modifiers : isPlainObject$1(options.modifiers) ? options.modifiers : {};
  let _pluralRules = options.pluralRules || __root && __root.pluralRules;
  let _context;
  const getCoreContext = () => {
    _isGlobal && setFallbackContext(null);
    const ctxOptions = {
      version: VERSION,
      locale: _locale.value,
      fallbackLocale: _fallbackLocale.value,
      messages: _messages.value,
      modifiers: _modifiers,
      pluralRules: _pluralRules,
      missing: _runtimeMissing === null ? void 0 : _runtimeMissing,
      missingWarn: _missingWarn,
      fallbackWarn: _fallbackWarn,
      fallbackFormat: _fallbackFormat,
      unresolving: true,
      postTranslation: _postTranslation === null ? void 0 : _postTranslation,
      warnHtmlMessage: _warnHtmlMessage,
      escapeParameter: _escapeParameter,
      messageResolver: options.messageResolver,
      messageCompiler: options.messageCompiler,
      __meta: { framework: "vue" }
    };
    {
      ctxOptions.datetimeFormats = _datetimeFormats.value;
      ctxOptions.numberFormats = _numberFormats.value;
      ctxOptions.__datetimeFormatters = isPlainObject$1(_context) ? _context.__datetimeFormatters : void 0;
      ctxOptions.__numberFormatters = isPlainObject$1(_context) ? _context.__numberFormatters : void 0;
    }
    if (false) {
      ctxOptions.__v_emitter = isPlainObject$1(_context) ? _context.__v_emitter : void 0;
    }
    const ctx = createCoreContext(ctxOptions);
    _isGlobal && setFallbackContext(ctx);
    return ctx;
  };
  _context = getCoreContext();
  updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);
  function trackReactivityValues() {
    return [
      _locale.value,
      _fallbackLocale.value,
      _messages.value,
      _datetimeFormats.value,
      _numberFormats.value
    ];
  }
  const locale = computed({
    get: () => _locale.value,
    set: (val) => {
      _locale.value = val;
      _context.locale = _locale.value;
    }
  });
  const fallbackLocale = computed({
    get: () => _fallbackLocale.value,
    set: (val) => {
      _fallbackLocale.value = val;
      _context.fallbackLocale = _fallbackLocale.value;
      updateFallbackLocale(_context, _locale.value, val);
    }
  });
  const messages = computed(() => _messages.value);
  const datetimeFormats = /* @__PURE__ */ computed(() => _datetimeFormats.value);
  const numberFormats = /* @__PURE__ */ computed(() => _numberFormats.value);
  function getPostTranslationHandler() {
    return isFunction(_postTranslation) ? _postTranslation : null;
  }
  function setPostTranslationHandler(handler) {
    _postTranslation = handler;
    _context.postTranslation = handler;
  }
  function getMissingHandler() {
    return _missing;
  }
  function setMissingHandler(handler) {
    if (handler !== null) {
      _runtimeMissing = defineCoreMissingHandler(handler);
    }
    _missing = handler;
    _context.missing = _runtimeMissing;
  }
  function isResolvedTranslateMessage(type, arg) {
    return type !== "translate" || !arg.resolvedMessage;
  }
  const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {
    trackReactivityValues();
    let ret;
    try {
      if (__INTLIFY_PROD_DEVTOOLS__) {
        setAdditionalMeta(/* @__PURE__ */ getMetaInfo());
      }
      if (!_isGlobal) {
        _context.fallbackContext = __root ? getFallbackContext() : void 0;
      }
      ret = fn(_context);
    } finally {
      if (__INTLIFY_PROD_DEVTOOLS__) {
        setAdditionalMeta(null);
      }
      if (!_isGlobal) {
        _context.fallbackContext = void 0;
      }
    }
    if (warnType !== "translate exists" && // for not `te` (e.g `t`)
    isNumber(ret) && ret === NOT_REOSLVED || warnType === "translate exists" && !ret) {
      const [key, arg2] = argumentParser();
      if (false) {
        if (_fallbackRoot && (isTranslateFallbackWarn(_fallbackWarn, key) || isTranslateMissingWarn(_missingWarn, key))) {
          warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {
            key,
            type: warnType
          }));
        }
        if (false) {
          const { __v_emitter: emitter } = _context;
          if (emitter && _fallbackRoot) {
            emitter.emit("fallback", {
              type: warnType,
              key,
              to: "global",
              groupId: `${warnType}:${key}`
            });
          }
        }
      }
      return __root && _fallbackRoot ? fallbackSuccess(__root) : fallbackFail(key);
    } else if (successCondition(ret)) {
      return ret;
    } else {
      throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);
    }
  };
  function t(...args) {
    return wrapWithDeps((context) => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), "translate", (root) => Reflect.apply(root.t, root, [...args]), (key) => key, (val) => isString$1(val));
  }
  function rt(...args) {
    const [arg1, arg2, arg3] = args;
    if (arg3 && !isObject$1(arg3)) {
      throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);
    }
    return t(...[arg1, arg2, assign$1({ resolvedMessage: true }, arg3 || {})]);
  }
  function d(...args) {
    return wrapWithDeps((context) => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), "datetime format", (root) => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, (val) => isString$1(val));
  }
  function n(...args) {
    return wrapWithDeps((context) => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), "number format", (root) => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, (val) => isString$1(val));
  }
  function normalize(values) {
    return values.map((val) => isString$1(val) || isNumber(val) || isBoolean(val) ? createTextNode(String(val)) : val);
  }
  const interpolate = (val) => val;
  const processor = {
    normalize,
    interpolate,
    type: "vnode"
  };
  function translateVNode(...args) {
    return wrapWithDeps(
      (context) => {
        let ret;
        const _context2 = context;
        try {
          _context2.processor = processor;
          ret = Reflect.apply(translate, null, [_context2, ...args]);
        } finally {
          _context2.processor = null;
        }
        return ret;
      },
      () => parseTranslateArgs(...args),
      "translate",
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      (root) => root[TranslateVNodeSymbol](...args),
      (key) => [createTextNode(key)],
      (val) => isArray(val)
    );
  }
  function numberParts(...args) {
    return wrapWithDeps(
      (context) => Reflect.apply(number, null, [context, ...args]),
      () => parseNumberArgs(...args),
      "number format",
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      (root) => root[NumberPartsSymbol](...args),
      NOOP_RETURN_ARRAY,
      (val) => isString$1(val) || isArray(val)
    );
  }
  function datetimeParts(...args) {
    return wrapWithDeps(
      (context) => Reflect.apply(datetime, null, [context, ...args]),
      () => parseDateTimeArgs(...args),
      "datetime format",
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      (root) => root[DatetimePartsSymbol](...args),
      NOOP_RETURN_ARRAY,
      (val) => isString$1(val) || isArray(val)
    );
  }
  function setPluralRules(rules) {
    _pluralRules = rules;
    _context.pluralRules = _pluralRules;
  }
  function te(key, locale2) {
    return wrapWithDeps(() => {
      if (!key) {
        return false;
      }
      const targetLocale = isString$1(locale2) ? locale2 : _locale.value;
      const message = getLocaleMessage(targetLocale);
      const resolved = _context.messageResolver(message, key);
      return !translateExistCompatible ? isMessageAST(resolved) || isMessageFunction(resolved) || isString$1(resolved) : resolved != null;
    }, () => [key], "translate exists", (root) => {
      return Reflect.apply(root.te, root, [key, locale2]);
    }, NOOP_RETURN_FALSE, (val) => isBoolean(val));
  }
  function resolveMessages(key) {
    let messages2 = null;
    const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);
    for (let i = 0; i < locales.length; i++) {
      const targetLocaleMessages = _messages.value[locales[i]] || {};
      const messageValue = _context.messageResolver(targetLocaleMessages, key);
      if (messageValue != null) {
        messages2 = messageValue;
        break;
      }
    }
    return messages2;
  }
  function tm(key) {
    const messages2 = resolveMessages(key);
    return messages2 != null ? messages2 : __root ? __root.tm(key) || {} : {};
  }
  function getLocaleMessage(locale2) {
    return _messages.value[locale2] || {};
  }
  function setLocaleMessage(locale2, message) {
    if (flatJson) {
      const _message = { [locale2]: message };
      for (const key in _message) {
        if (hasOwn(_message, key)) {
          handleFlatJson(_message[key]);
        }
      }
      message = _message[locale2];
    }
    _messages.value[locale2] = message;
    _context.messages = _messages.value;
  }
  function mergeLocaleMessage(locale2, message) {
    _messages.value[locale2] = _messages.value[locale2] || {};
    const _message = { [locale2]: message };
    if (flatJson) {
      for (const key in _message) {
        if (hasOwn(_message, key)) {
          handleFlatJson(_message[key]);
        }
      }
    }
    message = _message[locale2];
    deepCopy(message, _messages.value[locale2]);
    _context.messages = _messages.value;
  }
  function getDateTimeFormat(locale2) {
    return _datetimeFormats.value[locale2] || {};
  }
  function setDateTimeFormat(locale2, format2) {
    _datetimeFormats.value[locale2] = format2;
    _context.datetimeFormats = _datetimeFormats.value;
    clearDateTimeFormat(_context, locale2, format2);
  }
  function mergeDateTimeFormat(locale2, format2) {
    _datetimeFormats.value[locale2] = assign$1(_datetimeFormats.value[locale2] || {}, format2);
    _context.datetimeFormats = _datetimeFormats.value;
    clearDateTimeFormat(_context, locale2, format2);
  }
  function getNumberFormat(locale2) {
    return _numberFormats.value[locale2] || {};
  }
  function setNumberFormat(locale2, format2) {
    _numberFormats.value[locale2] = format2;
    _context.numberFormats = _numberFormats.value;
    clearNumberFormat(_context, locale2, format2);
  }
  function mergeNumberFormat(locale2, format2) {
    _numberFormats.value[locale2] = assign$1(_numberFormats.value[locale2] || {}, format2);
    _context.numberFormats = _numberFormats.value;
    clearNumberFormat(_context, locale2, format2);
  }
  composerID++;
  if (__root && inBrowser) {
    watch(__root.locale, (val) => {
      if (_inheritLocale) {
        _locale.value = val;
        _context.locale = val;
        updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);
      }
    });
    watch(__root.fallbackLocale, (val) => {
      if (_inheritLocale) {
        _fallbackLocale.value = val;
        _context.fallbackLocale = val;
        updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);
      }
    });
  }
  const composer = {
    id: composerID,
    locale,
    fallbackLocale,
    get inheritLocale() {
      return _inheritLocale;
    },
    set inheritLocale(val) {
      _inheritLocale = val;
      if (val && __root) {
        _locale.value = __root.locale.value;
        _fallbackLocale.value = __root.fallbackLocale.value;
        updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);
      }
    },
    get availableLocales() {
      return Object.keys(_messages.value).sort();
    },
    messages,
    get modifiers() {
      return _modifiers;
    },
    get pluralRules() {
      return _pluralRules || {};
    },
    get isGlobal() {
      return _isGlobal;
    },
    get missingWarn() {
      return _missingWarn;
    },
    set missingWarn(val) {
      _missingWarn = val;
      _context.missingWarn = _missingWarn;
    },
    get fallbackWarn() {
      return _fallbackWarn;
    },
    set fallbackWarn(val) {
      _fallbackWarn = val;
      _context.fallbackWarn = _fallbackWarn;
    },
    get fallbackRoot() {
      return _fallbackRoot;
    },
    set fallbackRoot(val) {
      _fallbackRoot = val;
    },
    get fallbackFormat() {
      return _fallbackFormat;
    },
    set fallbackFormat(val) {
      _fallbackFormat = val;
      _context.fallbackFormat = _fallbackFormat;
    },
    get warnHtmlMessage() {
      return _warnHtmlMessage;
    },
    set warnHtmlMessage(val) {
      _warnHtmlMessage = val;
      _context.warnHtmlMessage = val;
    },
    get escapeParameter() {
      return _escapeParameter;
    },
    set escapeParameter(val) {
      _escapeParameter = val;
      _context.escapeParameter = val;
    },
    t,
    getLocaleMessage,
    setLocaleMessage,
    mergeLocaleMessage,
    getPostTranslationHandler,
    setPostTranslationHandler,
    getMissingHandler,
    setMissingHandler,
    [SetPluralRulesSymbol]: setPluralRules
  };
  {
    composer.datetimeFormats = datetimeFormats;
    composer.numberFormats = numberFormats;
    composer.rt = rt;
    composer.te = te;
    composer.tm = tm;
    composer.d = d;
    composer.n = n;
    composer.getDateTimeFormat = getDateTimeFormat;
    composer.setDateTimeFormat = setDateTimeFormat;
    composer.mergeDateTimeFormat = mergeDateTimeFormat;
    composer.getNumberFormat = getNumberFormat;
    composer.setNumberFormat = setNumberFormat;
    composer.mergeNumberFormat = mergeNumberFormat;
    composer[InejctWithOptionSymbol] = __injectWithOption;
    composer[TranslateVNodeSymbol] = translateVNode;
    composer[DatetimePartsSymbol] = datetimeParts;
    composer[NumberPartsSymbol] = numberParts;
  }
  if (false) {
    composer[EnableEmitter] = (emitter) => {
      _context.__v_emitter = emitter;
    };
    composer[DisableEmitter] = () => {
      _context.__v_emitter = void 0;
    };
  }
  return composer;
}
function convertComposerOptions(options) {
  const locale = isString$1(options.locale) ? options.locale : DEFAULT_LOCALE;
  const fallbackLocale = isString$1(options.fallbackLocale) || isArray(options.fallbackLocale) || isPlainObject$1(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : locale;
  const missing = isFunction(options.missing) ? options.missing : void 0;
  const missingWarn = isBoolean(options.silentTranslationWarn) || isRegExp(options.silentTranslationWarn) ? !options.silentTranslationWarn : true;
  const fallbackWarn = isBoolean(options.silentFallbackWarn) || isRegExp(options.silentFallbackWarn) ? !options.silentFallbackWarn : true;
  const fallbackRoot = isBoolean(options.fallbackRoot) ? options.fallbackRoot : true;
  const fallbackFormat = !!options.formatFallbackMessages;
  const modifiers = isPlainObject$1(options.modifiers) ? options.modifiers : {};
  const pluralizationRules = options.pluralizationRules;
  const postTranslation = isFunction(options.postTranslation) ? options.postTranslation : void 0;
  const warnHtmlMessage = isString$1(options.warnHtmlInMessage) ? options.warnHtmlInMessage !== "off" : true;
  const escapeParameter = !!options.escapeParameterHtml;
  const inheritLocale = isBoolean(options.sync) ? options.sync : true;
  if (false) {
    warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));
  }
  if (false) {
    warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));
  }
  let messages = options.messages;
  if (isPlainObject$1(options.sharedMessages)) {
    const sharedMessages = options.sharedMessages;
    const locales = Object.keys(sharedMessages);
    messages = locales.reduce((messages2, locale2) => {
      const message = messages2[locale2] || (messages2[locale2] = {});
      assign$1(message, sharedMessages[locale2]);
      return messages2;
    }, messages || {});
  }
  const { __i18n, __root, __injectWithOption } = options;
  const datetimeFormats = options.datetimeFormats;
  const numberFormats = options.numberFormats;
  const flatJson = options.flatJson;
  const translateExistCompatible = options.translateExistCompatible;
  return {
    locale,
    fallbackLocale,
    messages,
    flatJson,
    datetimeFormats,
    numberFormats,
    missing,
    missingWarn,
    fallbackWarn,
    fallbackRoot,
    fallbackFormat,
    modifiers,
    pluralRules: pluralizationRules,
    postTranslation,
    warnHtmlMessage,
    escapeParameter,
    messageResolver: options.messageResolver,
    inheritLocale,
    translateExistCompatible,
    __i18n,
    __root,
    __injectWithOption
  };
}
function createVueI18n(options = {}, VueI18nLegacy) {
  {
    const composer = createComposer(convertComposerOptions(options));
    const { __extender } = options;
    const vueI18n = {
      // id
      id: composer.id,
      // locale
      get locale() {
        return composer.locale.value;
      },
      set locale(val) {
        composer.locale.value = val;
      },
      // fallbackLocale
      get fallbackLocale() {
        return composer.fallbackLocale.value;
      },
      set fallbackLocale(val) {
        composer.fallbackLocale.value = val;
      },
      // messages
      get messages() {
        return composer.messages.value;
      },
      // datetimeFormats
      get datetimeFormats() {
        return composer.datetimeFormats.value;
      },
      // numberFormats
      get numberFormats() {
        return composer.numberFormats.value;
      },
      // availableLocales
      get availableLocales() {
        return composer.availableLocales;
      },
      // formatter
      get formatter() {
        return {
          interpolate() {
            return [];
          }
        };
      },
      set formatter(val) {
      },
      // missing
      get missing() {
        return composer.getMissingHandler();
      },
      set missing(handler) {
        composer.setMissingHandler(handler);
      },
      // silentTranslationWarn
      get silentTranslationWarn() {
        return isBoolean(composer.missingWarn) ? !composer.missingWarn : composer.missingWarn;
      },
      set silentTranslationWarn(val) {
        composer.missingWarn = isBoolean(val) ? !val : val;
      },
      // silentFallbackWarn
      get silentFallbackWarn() {
        return isBoolean(composer.fallbackWarn) ? !composer.fallbackWarn : composer.fallbackWarn;
      },
      set silentFallbackWarn(val) {
        composer.fallbackWarn = isBoolean(val) ? !val : val;
      },
      // modifiers
      get modifiers() {
        return composer.modifiers;
      },
      // formatFallbackMessages
      get formatFallbackMessages() {
        return composer.fallbackFormat;
      },
      set formatFallbackMessages(val) {
        composer.fallbackFormat = val;
      },
      // postTranslation
      get postTranslation() {
        return composer.getPostTranslationHandler();
      },
      set postTranslation(handler) {
        composer.setPostTranslationHandler(handler);
      },
      // sync
      get sync() {
        return composer.inheritLocale;
      },
      set sync(val) {
        composer.inheritLocale = val;
      },
      // warnInHtmlMessage
      get warnHtmlInMessage() {
        return composer.warnHtmlMessage ? "warn" : "off";
      },
      set warnHtmlInMessage(val) {
        composer.warnHtmlMessage = val !== "off";
      },
      // escapeParameterHtml
      get escapeParameterHtml() {
        return composer.escapeParameter;
      },
      set escapeParameterHtml(val) {
        composer.escapeParameter = val;
      },
      // preserveDirectiveContent
      get preserveDirectiveContent() {
        return true;
      },
      set preserveDirectiveContent(val) {
      },
      // pluralizationRules
      get pluralizationRules() {
        return composer.pluralRules || {};
      },
      // for internal
      __composer: composer,
      // t
      t(...args) {
        const [arg1, arg2, arg3] = args;
        const options2 = {};
        let list = null;
        let named = null;
        if (!isString$1(arg1)) {
          throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);
        }
        const key = arg1;
        if (isString$1(arg2)) {
          options2.locale = arg2;
        } else if (isArray(arg2)) {
          list = arg2;
        } else if (isPlainObject$1(arg2)) {
          named = arg2;
        }
        if (isArray(arg3)) {
          list = arg3;
        } else if (isPlainObject$1(arg3)) {
          named = arg3;
        }
        return Reflect.apply(composer.t, composer, [
          key,
          list || named || {},
          options2
        ]);
      },
      rt(...args) {
        return Reflect.apply(composer.rt, composer, [...args]);
      },
      // tc
      tc(...args) {
        const [arg1, arg2, arg3] = args;
        const options2 = { plural: 1 };
        let list = null;
        let named = null;
        if (!isString$1(arg1)) {
          throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);
        }
        const key = arg1;
        if (isString$1(arg2)) {
          options2.locale = arg2;
        } else if (isNumber(arg2)) {
          options2.plural = arg2;
        } else if (isArray(arg2)) {
          list = arg2;
        } else if (isPlainObject$1(arg2)) {
          named = arg2;
        }
        if (isString$1(arg3)) {
          options2.locale = arg3;
        } else if (isArray(arg3)) {
          list = arg3;
        } else if (isPlainObject$1(arg3)) {
          named = arg3;
        }
        return Reflect.apply(composer.t, composer, [
          key,
          list || named || {},
          options2
        ]);
      },
      // te
      te(key, locale) {
        return composer.te(key, locale);
      },
      // tm
      tm(key) {
        return composer.tm(key);
      },
      // getLocaleMessage
      getLocaleMessage(locale) {
        return composer.getLocaleMessage(locale);
      },
      // setLocaleMessage
      setLocaleMessage(locale, message) {
        composer.setLocaleMessage(locale, message);
      },
      // mergeLocaleMessage
      mergeLocaleMessage(locale, message) {
        composer.mergeLocaleMessage(locale, message);
      },
      // d
      d(...args) {
        return Reflect.apply(composer.d, composer, [...args]);
      },
      // getDateTimeFormat
      getDateTimeFormat(locale) {
        return composer.getDateTimeFormat(locale);
      },
      // setDateTimeFormat
      setDateTimeFormat(locale, format2) {
        composer.setDateTimeFormat(locale, format2);
      },
      // mergeDateTimeFormat
      mergeDateTimeFormat(locale, format2) {
        composer.mergeDateTimeFormat(locale, format2);
      },
      // n
      n(...args) {
        return Reflect.apply(composer.n, composer, [...args]);
      },
      // getNumberFormat
      getNumberFormat(locale) {
        return composer.getNumberFormat(locale);
      },
      // setNumberFormat
      setNumberFormat(locale, format2) {
        composer.setNumberFormat(locale, format2);
      },
      // mergeNumberFormat
      mergeNumberFormat(locale, format2) {
        composer.mergeNumberFormat(locale, format2);
      },
      // getChoiceIndex
      // eslint-disable-next-line @typescript-eslint/no-unused-vars
      getChoiceIndex(choice, choicesLength) {
        return -1;
      }
    };
    vueI18n.__extender = __extender;
    if (false) {
      vueI18n.__enableEmitter = (emitter) => {
        const __composer = composer;
        __composer[EnableEmitter] && __composer[EnableEmitter](emitter);
      };
      vueI18n.__disableEmitter = () => {
        const __composer = composer;
        __composer[DisableEmitter] && __composer[DisableEmitter]();
      };
    }
    return vueI18n;
  }
}
const baseFormatProps = {
  tag: {
    type: [String, Object]
  },
  locale: {
    type: String
  },
  scope: {
    type: String,
    // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050
    validator: (val) => val === "parent" || val === "global",
    default: "parent"
    /* ComponentI18nScope */
  },
  i18n: {
    type: Object
  }
};
function getInterpolateArg({ slots }, keys) {
  if (keys.length === 1 && keys[0] === "default") {
    const ret = slots.default ? slots.default() : [];
    return ret.reduce((slot, current) => {
      return [
        ...slot,
        // prettier-ignore
        ...current.type === Fragment ? current.children : [current]
      ];
    }, []);
  } else {
    return keys.reduce((arg, key) => {
      const slot = slots[key];
      if (slot) {
        arg[key] = slot();
      }
      return arg;
    }, create());
  }
}
function getFragmentableTag(tag) {
  return Fragment;
}
const TranslationImpl = /* @__PURE__ */ defineComponent({
  /* eslint-disable */
  name: "i18n-t",
  props: assign$1({
    keypath: {
      type: String,
      required: true
    },
    plural: {
      type: [Number, String],
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      validator: (val) => isNumber(val) || !isNaN(val)
    }
  }, baseFormatProps),
  /* eslint-enable */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  setup(props, context) {
    const { slots, attrs } = context;
    const i18n = props.i18n || useI18n({
      useScope: props.scope,
      __useComponent: true
    });
    return () => {
      const keys = Object.keys(slots).filter((key) => key !== "_");
      const options = create();
      if (props.locale) {
        options.locale = props.locale;
      }
      if (props.plural !== void 0) {
        options.plural = isString$1(props.plural) ? +props.plural : props.plural;
      }
      const arg = getInterpolateArg(context, keys);
      const children = i18n[TranslateVNodeSymbol](props.keypath, arg, options);
      const assignedAttrs = assign$1(create(), attrs);
      const tag = isString$1(props.tag) || isObject$1(props.tag) ? props.tag : getFragmentableTag();
      return h(tag, assignedAttrs, children);
    };
  }
});
const Translation = TranslationImpl;
const I18nT = Translation;
function isVNode(target) {
  return isArray(target) && !isString$1(target[0]);
}
function renderFormatter(props, context, slotKeys, partFormatter) {
  const { slots, attrs } = context;
  return () => {
    const options = { part: true };
    let overrides = create();
    if (props.locale) {
      options.locale = props.locale;
    }
    if (isString$1(props.format)) {
      options.key = props.format;
    } else if (isObject$1(props.format)) {
      if (isString$1(props.format.key)) {
        options.key = props.format.key;
      }
      overrides = Object.keys(props.format).reduce((options2, prop) => {
        return slotKeys.includes(prop) ? assign$1(create(), options2, { [prop]: props.format[prop] }) : options2;
      }, create());
    }
    const parts = partFormatter(...[props.value, options, overrides]);
    let children = [options.key];
    if (isArray(parts)) {
      children = parts.map((part, index) => {
        const slot = slots[part.type];
        const node = slot ? slot({ [part.type]: part.value, index, parts }) : [part.value];
        if (isVNode(node)) {
          node[0].key = `${part.type}-${index}`;
        }
        return node;
      });
    } else if (isString$1(parts)) {
      children = [parts];
    }
    const assignedAttrs = assign$1(create(), attrs);
    const tag = isString$1(props.tag) || isObject$1(props.tag) ? props.tag : getFragmentableTag();
    return h(tag, assignedAttrs, children);
  };
}
const NumberFormatImpl = /* @__PURE__ */ defineComponent({
  /* eslint-disable */
  name: "i18n-n",
  props: assign$1({
    value: {
      type: Number,
      required: true
    },
    format: {
      type: [String, Object]
    }
  }, baseFormatProps),
  /* eslint-enable */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  setup(props, context) {
    const i18n = props.i18n || useI18n({
      useScope: props.scope,
      __useComponent: true
    });
    return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => (
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      i18n[NumberPartsSymbol](...args)
    ));
  }
});
const NumberFormat = NumberFormatImpl;
const I18nN = NumberFormat;
const DatetimeFormatImpl = /* @__PURE__ */ defineComponent({
  /* eslint-disable */
  name: "i18n-d",
  props: assign$1({
    value: {
      type: [Number, Date],
      required: true
    },
    format: {
      type: [String, Object]
    }
  }, baseFormatProps),
  /* eslint-enable */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  setup(props, context) {
    const i18n = props.i18n || useI18n({
      useScope: props.scope,
      __useComponent: true
    });
    return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => (
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      i18n[DatetimePartsSymbol](...args)
    ));
  }
});
const DatetimeFormat = DatetimeFormatImpl;
const I18nD = DatetimeFormat;
function getComposer$2(i18n, instance) {
  const i18nInternal = i18n;
  if (i18n.mode === "composition") {
    return i18nInternal.__getInstance(instance) || i18n.global;
  } else {
    const vueI18n = i18nInternal.__getInstance(instance);
    return vueI18n != null ? vueI18n.__composer : i18n.global.__composer;
  }
}
function vTDirective(i18n) {
  const _process = (binding) => {
    const { instance, modifiers, value } = binding;
    if (!instance || !instance.$) {
      throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);
    }
    const composer = getComposer$2(i18n, instance.$);
    if (false) {
      warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));
    }
    const parsedValue = parseValue(value);
    return [
      Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),
      composer
    ];
  };
  const register = (el, binding) => {
    const [textContent, composer] = _process(binding);
    if (inBrowser && i18n.global === composer) {
      el.__i18nWatcher = watch(composer.locale, () => {
        binding.instance && binding.instance.$forceUpdate();
      });
    }
    el.__composer = composer;
    el.textContent = textContent;
  };
  const unregister = (el) => {
    if (inBrowser && el.__i18nWatcher) {
      el.__i18nWatcher();
      el.__i18nWatcher = void 0;
      delete el.__i18nWatcher;
    }
    if (el.__composer) {
      el.__composer = void 0;
      delete el.__composer;
    }
  };
  const update = (el, { value }) => {
    if (el.__composer) {
      const composer = el.__composer;
      const parsedValue = parseValue(value);
      el.textContent = Reflect.apply(composer.t, composer, [
        ...makeParams(parsedValue)
      ]);
    }
  };
  const getSSRProps = (binding) => {
    const [textContent] = _process(binding);
    return { textContent };
  };
  return {
    created: register,
    unmounted: unregister,
    beforeUpdate: update,
    getSSRProps
  };
}
function parseValue(value) {
  if (isString$1(value)) {
    return { path: value };
  } else if (isPlainObject$1(value)) {
    if (!("path" in value)) {
      throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, "path");
    }
    return value;
  } else {
    throw createI18nError(I18nErrorCodes.INVALID_VALUE);
  }
}
function makeParams(value) {
  const { path, locale, args, choice, plural } = value;
  const options = {};
  const named = args || {};
  if (isString$1(locale)) {
    options.locale = locale;
  }
  if (isNumber(choice)) {
    options.plural = choice;
  }
  if (isNumber(plural)) {
    options.plural = plural;
  }
  return [path, named, options];
}
function apply(app, i18n, ...options) {
  const pluginOptions = isPlainObject$1(options[0]) ? options[0] : {};
  const useI18nComponentName = !!pluginOptions.useI18nComponentName;
  const globalInstall = isBoolean(pluginOptions.globalInstall) ? pluginOptions.globalInstall : true;
  if (false) {
    warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {
      name: Translation.name
    }));
  }
  if (globalInstall) {
    [!useI18nComponentName ? Translation.name : "i18n", "I18nT"].forEach((name) => app.component(name, Translation));
    [NumberFormat.name, "I18nN"].forEach((name) => app.component(name, NumberFormat));
    [DatetimeFormat.name, "I18nD"].forEach((name) => app.component(name, DatetimeFormat));
  }
  {
    app.directive("t", vTDirective(i18n));
  }
}
const VueDevToolsLabels = {
  [
    "vue-devtools-plugin-vue-i18n"
    /* VueDevToolsIDs.PLUGIN */
  ]: "Vue I18n devtools",
  [
    "vue-i18n-resource-inspector"
    /* VueDevToolsIDs.CUSTOM_INSPECTOR */
  ]: "I18n Resources",
  [
    "vue-i18n-timeline"
    /* VueDevToolsIDs.TIMELINE */
  ]: "Vue I18n"
};
const VueDevToolsPlaceholders = {
  [
    "vue-i18n-resource-inspector"
    /* VueDevToolsIDs.CUSTOM_INSPECTOR */
  ]: "Search for scopes ..."
};
const VueDevToolsTimelineColors = {
  [
    "vue-i18n-timeline"
    /* VueDevToolsIDs.TIMELINE */
  ]: 16764185
};
const VUE_I18N_COMPONENT_TYPES = "vue-i18n: composer properties";
let devtoolsApi;
async function enableDevTools(app, i18n) {
  return new Promise((resolve, reject) => {
    try {
      setupDevtoolsPlugin({
        id: "vue-devtools-plugin-vue-i18n",
        label: VueDevToolsLabels[
          "vue-devtools-plugin-vue-i18n"
          /* VueDevToolsIDs.PLUGIN */
        ],
        packageName: "vue-i18n",
        homepage: "https://vue-i18n.intlify.dev",
        logo: "https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png",
        componentStateTypes: [VUE_I18N_COMPONENT_TYPES],
        app
        // eslint-disable-line @typescript-eslint/no-explicit-any
      }, (api) => {
        devtoolsApi = api;
        api.on.visitComponentTree(({ componentInstance, treeNode }) => {
          updateComponentTreeTags(componentInstance, treeNode, i18n);
        });
        api.on.inspectComponent(({ componentInstance, instanceData }) => {
          if (componentInstance.vnode.el && componentInstance.vnode.el.__VUE_I18N__ && instanceData) {
            if (i18n.mode === "legacy") {
              if (componentInstance.vnode.el.__VUE_I18N__ !== i18n.global.__composer) {
                inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);
              }
            } else {
              inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);
            }
          }
        });
        api.addInspector({
          id: "vue-i18n-resource-inspector",
          label: VueDevToolsLabels[
            "vue-i18n-resource-inspector"
            /* VueDevToolsIDs.CUSTOM_INSPECTOR */
          ],
          icon: "language",
          treeFilterPlaceholder: VueDevToolsPlaceholders[
            "vue-i18n-resource-inspector"
            /* VueDevToolsIDs.CUSTOM_INSPECTOR */
          ]
        });
        api.on.getInspectorTree((payload) => {
          if (payload.app === app && payload.inspectorId === "vue-i18n-resource-inspector") {
            registerScope(payload, i18n);
          }
        });
        const roots = /* @__PURE__ */ new Map();
        api.on.getInspectorState(async (payload) => {
          if (payload.app === app && payload.inspectorId === "vue-i18n-resource-inspector") {
            api.unhighlightElement();
            inspectScope(payload, i18n);
            if (payload.nodeId === "global") {
              if (!roots.has(payload.app)) {
                const [root] = await api.getComponentInstances(payload.app);
                roots.set(payload.app, root);
              }
              api.highlightElement(roots.get(payload.app));
            } else {
              const instance = getComponentInstance(payload.nodeId, i18n);
              instance && api.highlightElement(instance);
            }
          }
        });
        api.on.editInspectorState((payload) => {
          if (payload.app === app && payload.inspectorId === "vue-i18n-resource-inspector") {
            editScope(payload, i18n);
          }
        });
        api.addTimelineLayer({
          id: "vue-i18n-timeline",
          label: VueDevToolsLabels[
            "vue-i18n-timeline"
            /* VueDevToolsIDs.TIMELINE */
          ],
          color: VueDevToolsTimelineColors[
            "vue-i18n-timeline"
            /* VueDevToolsIDs.TIMELINE */
          ]
        });
        resolve(true);
      });
    } catch (e) {
      console.error(e);
      reject(false);
    }
  });
}
function getI18nScopeLable(instance) {
  return instance.type.name || instance.type.displayName || instance.type.__file || "Anonymous";
}
function updateComponentTreeTags(instance, treeNode, i18n) {
  const global = i18n.mode === "composition" ? i18n.global : i18n.global.__composer;
  if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) {
    if (instance.vnode.el.__VUE_I18N__ !== global) {
      const tag = {
        label: `i18n (${getI18nScopeLable(instance)} Scope)`,
        textColor: 0,
        backgroundColor: 16764185
      };
      treeNode.tags.push(tag);
    }
  }
}
function inspectComposer(instanceData, composer) {
  const type = VUE_I18N_COMPONENT_TYPES;
  instanceData.state.push({
    type,
    key: "locale",
    editable: true,
    value: composer.locale.value
  });
  instanceData.state.push({
    type,
    key: "availableLocales",
    editable: false,
    value: composer.availableLocales
  });
  instanceData.state.push({
    type,
    key: "fallbackLocale",
    editable: true,
    value: composer.fallbackLocale.value
  });
  instanceData.state.push({
    type,
    key: "inheritLocale",
    editable: true,
    value: composer.inheritLocale
  });
  instanceData.state.push({
    type,
    key: "messages",
    editable: false,
    value: getLocaleMessageValue(composer.messages.value)
  });
  {
    instanceData.state.push({
      type,
      key: "datetimeFormats",
      editable: false,
      value: composer.datetimeFormats.value
    });
    instanceData.state.push({
      type,
      key: "numberFormats",
      editable: false,
      value: composer.numberFormats.value
    });
  }
}
function getLocaleMessageValue(messages) {
  const value = {};
  Object.keys(messages).forEach((key) => {
    const v = messages[key];
    if (isFunction(v) && "source" in v) {
      value[key] = getMessageFunctionDetails(v);
    } else if (isMessageAST(v) && v.loc && v.loc.source) {
      value[key] = v.loc.source;
    } else if (isObject$1(v)) {
      value[key] = getLocaleMessageValue(v);
    } else {
      value[key] = v;
    }
  });
  return value;
}
const ESC = {
  "<": "&lt;",
  ">": "&gt;",
  '"': "&quot;",
  "&": "&amp;"
};
function escape(s) {
  return s.replace(/[<>"&]/g, escapeChar);
}
function escapeChar(a) {
  return ESC[a] || a;
}
function getMessageFunctionDetails(func) {
  const argString = func.source ? `("${escape(func.source)}")` : `(?)`;
  return {
    _custom: {
      type: "function",
      display: `<span>ƒ</span> ${argString}`
    }
  };
}
function registerScope(payload, i18n) {
  payload.rootNodes.push({
    id: "global",
    label: "Global Scope"
  });
  const global = i18n.mode === "composition" ? i18n.global : i18n.global.__composer;
  for (const [keyInstance, instance] of i18n.__instances) {
    const composer = i18n.mode === "composition" ? instance : instance.__composer;
    if (global === composer) {
      continue;
    }
    payload.rootNodes.push({
      id: composer.id.toString(),
      label: `${getI18nScopeLable(keyInstance)} Scope`
    });
  }
}
function getComponentInstance(nodeId, i18n) {
  let instance = null;
  if (nodeId !== "global") {
    for (const [component, composer] of i18n.__instances.entries()) {
      if (composer.id.toString() === nodeId) {
        instance = component;
        break;
      }
    }
  }
  return instance;
}
function getComposer$1(nodeId, i18n) {
  if (nodeId === "global") {
    return i18n.mode === "composition" ? i18n.global : i18n.global.__composer;
  } else {
    const instance = Array.from(i18n.__instances.values()).find((item) => item.id.toString() === nodeId);
    if (instance) {
      return i18n.mode === "composition" ? instance : instance.__composer;
    } else {
      return null;
    }
  }
}
function inspectScope(payload, i18n) {
  const composer = getComposer$1(payload.nodeId, i18n);
  if (composer) {
    payload.state = makeScopeInspectState(composer);
  }
  return null;
}
function makeScopeInspectState(composer) {
  const state = {};
  const localeType = "Locale related info";
  const localeStates = [
    {
      type: localeType,
      key: "locale",
      editable: true,
      value: composer.locale.value
    },
    {
      type: localeType,
      key: "fallbackLocale",
      editable: true,
      value: composer.fallbackLocale.value
    },
    {
      type: localeType,
      key: "availableLocales",
      editable: false,
      value: composer.availableLocales
    },
    {
      type: localeType,
      key: "inheritLocale",
      editable: true,
      value: composer.inheritLocale
    }
  ];
  state[localeType] = localeStates;
  const localeMessagesType = "Locale messages info";
  const localeMessagesStates = [
    {
      type: localeMessagesType,
      key: "messages",
      editable: false,
      value: getLocaleMessageValue(composer.messages.value)
    }
  ];
  state[localeMessagesType] = localeMessagesStates;
  {
    const datetimeFormatsType = "Datetime formats info";
    const datetimeFormatsStates = [
      {
        type: datetimeFormatsType,
        key: "datetimeFormats",
        editable: false,
        value: composer.datetimeFormats.value
      }
    ];
    state[datetimeFormatsType] = datetimeFormatsStates;
    const numberFormatsType = "Datetime formats info";
    const numberFormatsStates = [
      {
        type: numberFormatsType,
        key: "numberFormats",
        editable: false,
        value: composer.numberFormats.value
      }
    ];
    state[numberFormatsType] = numberFormatsStates;
  }
  return state;
}
function addTimelineEvent(event, payload) {
  if (devtoolsApi) {
    let groupId;
    if (payload && "groupId" in payload) {
      groupId = payload.groupId;
      delete payload.groupId;
    }
    devtoolsApi.addTimelineEvent({
      layerId: "vue-i18n-timeline",
      event: {
        title: event,
        groupId,
        time: Date.now(),
        meta: {},
        data: payload || {},
        logType: event === "compile-error" ? "error" : event === "fallback" || event === "missing" ? "warning" : "default"
      }
    });
  }
}
function editScope(payload, i18n) {
  const composer = getComposer$1(payload.nodeId, i18n);
  if (composer) {
    const [field] = payload.path;
    if (field === "locale" && isString$1(payload.state.value)) {
      composer.locale.value = payload.state.value;
    } else if (field === "fallbackLocale" && (isString$1(payload.state.value) || isArray(payload.state.value) || isObject$1(payload.state.value))) {
      composer.fallbackLocale.value = payload.state.value;
    } else if (field === "inheritLocale" && isBoolean(payload.state.value)) {
      composer.inheritLocale = payload.state.value;
    }
  }
}
function defineMixin(vuei18n, composer, i18n) {
  return {
    beforeCreate() {
      const instance = getCurrentInstance();
      if (!instance) {
        throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);
      }
      const options = this.$options;
      if (options.i18n) {
        const optionsI18n = options.i18n;
        if (options.__i18n) {
          optionsI18n.__i18n = options.__i18n;
        }
        optionsI18n.__root = composer;
        if (this === this.$root) {
          this.$i18n = mergeToGlobal(vuei18n, optionsI18n);
        } else {
          optionsI18n.__injectWithOption = true;
          optionsI18n.__extender = i18n.__vueI18nExtend;
          this.$i18n = createVueI18n(optionsI18n);
          const _vueI18n = this.$i18n;
          if (_vueI18n.__extender) {
            _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);
          }
        }
      } else if (options.__i18n) {
        if (this === this.$root) {
          this.$i18n = mergeToGlobal(vuei18n, options);
        } else {
          this.$i18n = createVueI18n({
            __i18n: options.__i18n,
            __injectWithOption: true,
            __extender: i18n.__vueI18nExtend,
            __root: composer
          });
          const _vueI18n = this.$i18n;
          if (_vueI18n.__extender) {
            _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);
          }
        }
      } else {
        this.$i18n = vuei18n;
      }
      if (options.__i18nGlobal) {
        adjustI18nResources(composer, options, options);
      }
      this.$t = (...args) => this.$i18n.t(...args);
      this.$rt = (...args) => this.$i18n.rt(...args);
      this.$tc = (...args) => this.$i18n.tc(...args);
      this.$te = (key, locale) => this.$i18n.te(key, locale);
      this.$d = (...args) => this.$i18n.d(...args);
      this.$n = (...args) => this.$i18n.n(...args);
      this.$tm = (key) => this.$i18n.tm(key);
      i18n.__setInstance(instance, this.$i18n);
    },
    mounted() {
      if (this.$el && this.$i18n) {
        const _vueI18n = this.$i18n;
        this.$el.__VUE_I18N__ = _vueI18n.__composer;
        const emitter = this.__v_emitter = createEmitter();
        _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);
        emitter.on("*", addTimelineEvent);
      }
    },
    unmounted() {
      const instance = getCurrentInstance();
      if (!instance) {
        throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);
      }
      const _vueI18n = this.$i18n;
      if (this.$el && this.$el.__VUE_I18N__) {
        if (this.__v_emitter) {
          this.__v_emitter.off("*", addTimelineEvent);
          delete this.__v_emitter;
        }
        if (this.$i18n) {
          _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();
          delete this.$el.__VUE_I18N__;
        }
      }
      delete this.$t;
      delete this.$rt;
      delete this.$tc;
      delete this.$te;
      delete this.$d;
      delete this.$n;
      delete this.$tm;
      if (_vueI18n.__disposer) {
        _vueI18n.__disposer();
        delete _vueI18n.__disposer;
        delete _vueI18n.__extender;
      }
      i18n.__deleteInstance(instance);
      delete this.$i18n;
    }
  };
}
function mergeToGlobal(g, options) {
  g.locale = options.locale || g.locale;
  g.fallbackLocale = options.fallbackLocale || g.fallbackLocale;
  g.missing = options.missing || g.missing;
  g.silentTranslationWarn = options.silentTranslationWarn || g.silentFallbackWarn;
  g.silentFallbackWarn = options.silentFallbackWarn || g.silentFallbackWarn;
  g.formatFallbackMessages = options.formatFallbackMessages || g.formatFallbackMessages;
  g.postTranslation = options.postTranslation || g.postTranslation;
  g.warnHtmlInMessage = options.warnHtmlInMessage || g.warnHtmlInMessage;
  g.escapeParameterHtml = options.escapeParameterHtml || g.escapeParameterHtml;
  g.sync = options.sync || g.sync;
  g.__composer[SetPluralRulesSymbol](options.pluralizationRules || g.pluralizationRules);
  const messages = getLocaleMessages(g.locale, {
    messages: options.messages,
    __i18n: options.__i18n
  });
  Object.keys(messages).forEach((locale) => g.mergeLocaleMessage(locale, messages[locale]));
  if (options.datetimeFormats) {
    Object.keys(options.datetimeFormats).forEach((locale) => g.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));
  }
  if (options.numberFormats) {
    Object.keys(options.numberFormats).forEach((locale) => g.mergeNumberFormat(locale, options.numberFormats[locale]));
  }
  return g;
}
const I18nInjectionKey = /* @__PURE__ */ makeSymbol("global-vue-i18n");
function createI18n(options = {}, VueI18nLegacy) {
  const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy) ? options.legacy : __VUE_I18N_LEGACY_API__;
  const __globalInjection = isBoolean(options.globalInjection) ? options.globalInjection : true;
  const __allowComposition = __VUE_I18N_LEGACY_API__ && __legacyMode ? !!options.allowComposition : true;
  const __instances = /* @__PURE__ */ new Map();
  const [globalScope, __global] = createGlobal(options, __legacyMode);
  const symbol = /* @__PURE__ */ makeSymbol(false ? "vue-i18n" : "");
  if (false) {
    if (__legacyMode && __allowComposition && true) {
      warn(getWarnMessage(I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION));
    }
  }
  function __getInstance(component) {
    return __instances.get(component) || null;
  }
  function __setInstance(component, instance) {
    __instances.set(component, instance);
  }
  function __deleteInstance(component) {
    __instances.delete(component);
  }
  {
    const i18n = {
      // mode
      get mode() {
        return __VUE_I18N_LEGACY_API__ && __legacyMode ? "legacy" : "composition";
      },
      // allowComposition
      get allowComposition() {
        return __allowComposition;
      },
      // install plugin
      async install(app, ...options2) {
        if (true) {
          app.__VUE_I18N__ = i18n;
        }
        app.__VUE_I18N_SYMBOL__ = symbol;
        app.provide(app.__VUE_I18N_SYMBOL__, i18n);
        if (isPlainObject$1(options2[0])) {
          const opts = options2[0];
          i18n.__composerExtend = opts.__composerExtend;
          i18n.__vueI18nExtend = opts.__vueI18nExtend;
        }
        let globalReleaseHandler = null;
        if (!__legacyMode && __globalInjection) {
          globalReleaseHandler = injectGlobalFields(app, i18n.global);
        }
        if (__VUE_I18N_FULL_INSTALL__) {
          apply(app, i18n, ...options2);
        }
        if (__VUE_I18N_LEGACY_API__ && __legacyMode) {
          app.mixin(defineMixin(__global, __global.__composer, i18n));
        }
        const unmountApp = app.unmount;
        app.unmount = () => {
          globalReleaseHandler && globalReleaseHandler();
          i18n.dispose();
          unmountApp();
        };
        if (true) {
          const ret = await enableDevTools(app, i18n);
          if (!ret) {
            throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);
          }
          const emitter = createEmitter();
          if (__legacyMode) {
            const _vueI18n = __global;
            _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);
          } else {
            const _composer = __global;
            _composer[EnableEmitter] && _composer[EnableEmitter](emitter);
          }
          emitter.on("*", addTimelineEvent);
        }
      },
      // global accessor
      get global() {
        return __global;
      },
      dispose() {
        globalScope.stop();
      },
      // @internal
      __instances,
      // @internal
      __getInstance,
      // @internal
      __setInstance,
      // @internal
      __deleteInstance
    };
    return i18n;
  }
}
function useI18n(options = {}) {
  const instance = getCurrentInstance();
  if (instance == null) {
    throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);
  }
  if (!instance.isCE && instance.appContext.app != null && !instance.appContext.app.__VUE_I18N_SYMBOL__) {
    throw createI18nError(I18nErrorCodes.NOT_INSTALLED);
  }
  const i18n = getI18nInstance(instance);
  const gl = getGlobalComposer(i18n);
  const componentOptions = getComponentOptions(instance);
  const scope = getScope(options, componentOptions);
  if (__VUE_I18N_LEGACY_API__) {
    if (i18n.mode === "legacy" && !options.__useComponent) {
      if (!i18n.allowComposition) {
        throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);
      }
      return useI18nForLegacy(instance, scope, gl, options);
    }
  }
  if (scope === "global") {
    adjustI18nResources(gl, options, componentOptions);
    return gl;
  }
  if (scope === "parent") {
    let composer2 = getComposer(i18n, instance, options.__useComponent);
    if (composer2 == null) {
      if (false) {
        warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));
      }
      composer2 = gl;
    }
    return composer2;
  }
  const i18nInternal = i18n;
  let composer = i18nInternal.__getInstance(instance);
  if (composer == null) {
    const composerOptions = assign$1({}, options);
    if ("__i18n" in componentOptions) {
      composerOptions.__i18n = componentOptions.__i18n;
    }
    if (gl) {
      composerOptions.__root = gl;
    }
    composer = createComposer(composerOptions);
    if (i18nInternal.__composerExtend) {
      composer[DisposeSymbol] = i18nInternal.__composerExtend(composer);
    }
    setupLifeCycle(i18nInternal, instance, composer);
    i18nInternal.__setInstance(instance, composer);
  }
  return composer;
}
const castToVueI18n = /* @__NO_SIDE_EFFECTS__ */ (i18n) => {
  if (!(__VUE_I18N_BRIDGE__ in i18n)) {
    throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);
  }
  return i18n;
};
function createGlobal(options, legacyMode, VueI18nLegacy) {
  const scope = effectScope();
  {
    const obj = __VUE_I18N_LEGACY_API__ && legacyMode ? scope.run(() => createVueI18n(options)) : scope.run(() => createComposer(options));
    if (obj == null) {
      throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);
    }
    return [scope, obj];
  }
}
function getI18nInstance(instance) {
  {
    const i18n = inject(!instance.isCE ? instance.appContext.app.__VUE_I18N_SYMBOL__ : I18nInjectionKey);
    if (!i18n) {
      throw createI18nError(!instance.isCE ? I18nErrorCodes.UNEXPECTED_ERROR : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE);
    }
    return i18n;
  }
}
function getScope(options, componentOptions) {
  return isEmptyObject(options) ? "__i18n" in componentOptions ? "local" : "global" : !options.useScope ? "local" : options.useScope;
}
function getGlobalComposer(i18n) {
  return i18n.mode === "composition" ? i18n.global : i18n.global.__composer;
}
function getComposer(i18n, target, useComponent = false) {
  let composer = null;
  const root = target.root;
  let current = getParentComponentInstance(target, useComponent);
  while (current != null) {
    const i18nInternal = i18n;
    if (i18n.mode === "composition") {
      composer = i18nInternal.__getInstance(current);
    } else {
      if (__VUE_I18N_LEGACY_API__) {
        const vueI18n = i18nInternal.__getInstance(current);
        if (vueI18n != null) {
          composer = vueI18n.__composer;
          if (useComponent && composer && !composer[InejctWithOptionSymbol]) {
            composer = null;
          }
        }
      }
    }
    if (composer != null) {
      break;
    }
    if (root === current) {
      break;
    }
    current = current.parent;
  }
  return composer;
}
function getParentComponentInstance(target, useComponent = false) {
  if (target == null) {
    return null;
  }
  {
    return !useComponent ? target.parent : target.vnode.ctx || target.parent;
  }
}
function setupLifeCycle(i18n, target, composer) {
  let emitter = null;
  {
    onMounted(() => {
      if (target.vnode.el) {
        target.vnode.el.__VUE_I18N__ = composer;
        emitter = createEmitter();
        const _composer = composer;
        _composer[EnableEmitter] && _composer[EnableEmitter](emitter);
        emitter.on("*", addTimelineEvent);
      }
    }, target);
    onUnmounted(() => {
      const _composer = composer;
      if (target.vnode.el && target.vnode.el.__VUE_I18N__) {
        emitter && emitter.off("*", addTimelineEvent);
        _composer[DisableEmitter] && _composer[DisableEmitter]();
        delete target.vnode.el.__VUE_I18N__;
      }
      i18n.__deleteInstance(target);
      const dispose = _composer[DisposeSymbol];
      if (dispose) {
        dispose();
        delete _composer[DisposeSymbol];
      }
    }, target);
  }
}
function useI18nForLegacy(instance, scope, root, options = {}) {
  const isLocalScope = scope === "local";
  const _composer = shallowRef(null);
  if (isLocalScope && instance.proxy && !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {
    throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);
  }
  const _inheritLocale = isBoolean(options.inheritLocale) ? options.inheritLocale : !isString$1(options.locale);
  const _locale = ref(
    // prettier-ignore
    !isLocalScope || _inheritLocale ? root.locale.value : isString$1(options.locale) ? options.locale : DEFAULT_LOCALE
  );
  const _fallbackLocale = ref(
    // prettier-ignore
    !isLocalScope || _inheritLocale ? root.fallbackLocale.value : isString$1(options.fallbackLocale) || isArray(options.fallbackLocale) || isPlainObject$1(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale.value
  );
  const _messages = ref(getLocaleMessages(_locale.value, options));
  const _datetimeFormats = ref(isPlainObject$1(options.datetimeFormats) ? options.datetimeFormats : { [_locale.value]: {} });
  const _numberFormats = ref(isPlainObject$1(options.numberFormats) ? options.numberFormats : { [_locale.value]: {} });
  const _missingWarn = isLocalScope ? root.missingWarn : isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true;
  const _fallbackWarn = isLocalScope ? root.fallbackWarn : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true;
  const _fallbackRoot = isLocalScope ? root.fallbackRoot : isBoolean(options.fallbackRoot) ? options.fallbackRoot : true;
  const _fallbackFormat = !!options.fallbackFormat;
  const _missing = isFunction(options.missing) ? options.missing : null;
  const _postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null;
  const _warnHtmlMessage = isLocalScope ? root.warnHtmlMessage : isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true;
  const _escapeParameter = !!options.escapeParameter;
  const _modifiers = isLocalScope ? root.modifiers : isPlainObject$1(options.modifiers) ? options.modifiers : {};
  const _pluralRules = options.pluralRules || isLocalScope && root.pluralRules;
  function trackReactivityValues() {
    return [
      _locale.value,
      _fallbackLocale.value,
      _messages.value,
      _datetimeFormats.value,
      _numberFormats.value
    ];
  }
  const locale = computed({
    get: () => {
      return _composer.value ? _composer.value.locale.value : _locale.value;
    },
    set: (val) => {
      if (_composer.value) {
        _composer.value.locale.value = val;
      }
      _locale.value = val;
    }
  });
  const fallbackLocale = computed({
    get: () => {
      return _composer.value ? _composer.value.fallbackLocale.value : _fallbackLocale.value;
    },
    set: (val) => {
      if (_composer.value) {
        _composer.value.fallbackLocale.value = val;
      }
      _fallbackLocale.value = val;
    }
  });
  const messages = computed(() => {
    if (_composer.value) {
      return _composer.value.messages.value;
    } else {
      return _messages.value;
    }
  });
  const datetimeFormats = computed(() => _datetimeFormats.value);
  const numberFormats = computed(() => _numberFormats.value);
  function getPostTranslationHandler() {
    return _composer.value ? _composer.value.getPostTranslationHandler() : _postTranslation;
  }
  function setPostTranslationHandler(handler) {
    if (_composer.value) {
      _composer.value.setPostTranslationHandler(handler);
    }
  }
  function getMissingHandler() {
    return _composer.value ? _composer.value.getMissingHandler() : _missing;
  }
  function setMissingHandler(handler) {
    if (_composer.value) {
      _composer.value.setMissingHandler(handler);
    }
  }
  function warpWithDeps(fn) {
    trackReactivityValues();
    return fn();
  }
  function t(...args) {
    return _composer.value ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args])) : warpWithDeps(() => "");
  }
  function rt(...args) {
    return _composer.value ? Reflect.apply(_composer.value.rt, null, [...args]) : "";
  }
  function d(...args) {
    return _composer.value ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args])) : warpWithDeps(() => "");
  }
  function n(...args) {
    return _composer.value ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args])) : warpWithDeps(() => "");
  }
  function tm(key) {
    return _composer.value ? _composer.value.tm(key) : {};
  }
  function te(key, locale2) {
    return _composer.value ? _composer.value.te(key, locale2) : false;
  }
  function getLocaleMessage(locale2) {
    return _composer.value ? _composer.value.getLocaleMessage(locale2) : {};
  }
  function setLocaleMessage(locale2, message) {
    if (_composer.value) {
      _composer.value.setLocaleMessage(locale2, message);
      _messages.value[locale2] = message;
    }
  }
  function mergeLocaleMessage(locale2, message) {
    if (_composer.value) {
      _composer.value.mergeLocaleMessage(locale2, message);
    }
  }
  function getDateTimeFormat(locale2) {
    return _composer.value ? _composer.value.getDateTimeFormat(locale2) : {};
  }
  function setDateTimeFormat(locale2, format2) {
    if (_composer.value) {
      _composer.value.setDateTimeFormat(locale2, format2);
      _datetimeFormats.value[locale2] = format2;
    }
  }
  function mergeDateTimeFormat(locale2, format2) {
    if (_composer.value) {
      _composer.value.mergeDateTimeFormat(locale2, format2);
    }
  }
  function getNumberFormat(locale2) {
    return _composer.value ? _composer.value.getNumberFormat(locale2) : {};
  }
  function setNumberFormat(locale2, format2) {
    if (_composer.value) {
      _composer.value.setNumberFormat(locale2, format2);
      _numberFormats.value[locale2] = format2;
    }
  }
  function mergeNumberFormat(locale2, format2) {
    if (_composer.value) {
      _composer.value.mergeNumberFormat(locale2, format2);
    }
  }
  const wrapper = {
    get id() {
      return _composer.value ? _composer.value.id : -1;
    },
    locale,
    fallbackLocale,
    messages,
    datetimeFormats,
    numberFormats,
    get inheritLocale() {
      return _composer.value ? _composer.value.inheritLocale : _inheritLocale;
    },
    set inheritLocale(val) {
      if (_composer.value) {
        _composer.value.inheritLocale = val;
      }
    },
    get availableLocales() {
      return _composer.value ? _composer.value.availableLocales : Object.keys(_messages.value);
    },
    get modifiers() {
      return _composer.value ? _composer.value.modifiers : _modifiers;
    },
    get pluralRules() {
      return _composer.value ? _composer.value.pluralRules : _pluralRules;
    },
    get isGlobal() {
      return _composer.value ? _composer.value.isGlobal : false;
    },
    get missingWarn() {
      return _composer.value ? _composer.value.missingWarn : _missingWarn;
    },
    set missingWarn(val) {
      if (_composer.value) {
        _composer.value.missingWarn = val;
      }
    },
    get fallbackWarn() {
      return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;
    },
    set fallbackWarn(val) {
      if (_composer.value) {
        _composer.value.missingWarn = val;
      }
    },
    get fallbackRoot() {
      return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;
    },
    set fallbackRoot(val) {
      if (_composer.value) {
        _composer.value.fallbackRoot = val;
      }
    },
    get fallbackFormat() {
      return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;
    },
    set fallbackFormat(val) {
      if (_composer.value) {
        _composer.value.fallbackFormat = val;
      }
    },
    get warnHtmlMessage() {
      return _composer.value ? _composer.value.warnHtmlMessage : _warnHtmlMessage;
    },
    set warnHtmlMessage(val) {
      if (_composer.value) {
        _composer.value.warnHtmlMessage = val;
      }
    },
    get escapeParameter() {
      return _composer.value ? _composer.value.escapeParameter : _escapeParameter;
    },
    set escapeParameter(val) {
      if (_composer.value) {
        _composer.value.escapeParameter = val;
      }
    },
    t,
    getPostTranslationHandler,
    setPostTranslationHandler,
    getMissingHandler,
    setMissingHandler,
    rt,
    d,
    n,
    tm,
    te,
    getLocaleMessage,
    setLocaleMessage,
    mergeLocaleMessage,
    getDateTimeFormat,
    setDateTimeFormat,
    mergeDateTimeFormat,
    getNumberFormat,
    setNumberFormat,
    mergeNumberFormat
  };
  function sync(composer) {
    composer.locale.value = _locale.value;
    composer.fallbackLocale.value = _fallbackLocale.value;
    Object.keys(_messages.value).forEach((locale2) => {
      composer.mergeLocaleMessage(locale2, _messages.value[locale2]);
    });
    Object.keys(_datetimeFormats.value).forEach((locale2) => {
      composer.mergeDateTimeFormat(locale2, _datetimeFormats.value[locale2]);
    });
    Object.keys(_numberFormats.value).forEach((locale2) => {
      composer.mergeNumberFormat(locale2, _numberFormats.value[locale2]);
    });
    composer.escapeParameter = _escapeParameter;
    composer.fallbackFormat = _fallbackFormat;
    composer.fallbackRoot = _fallbackRoot;
    composer.fallbackWarn = _fallbackWarn;
    composer.missingWarn = _missingWarn;
    composer.warnHtmlMessage = _warnHtmlMessage;
  }
  onBeforeMount(() => {
    if (instance.proxy == null || instance.proxy.$i18n == null) {
      throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);
    }
    const composer = _composer.value = instance.proxy.$i18n.__composer;
    if (scope === "global") {
      _locale.value = composer.locale.value;
      _fallbackLocale.value = composer.fallbackLocale.value;
      _messages.value = composer.messages.value;
      _datetimeFormats.value = composer.datetimeFormats.value;
      _numberFormats.value = composer.numberFormats.value;
    } else if (isLocalScope) {
      sync(composer);
    }
  });
  return wrapper;
}
const globalExportProps = [
  "locale",
  "fallbackLocale",
  "availableLocales"
];
const globalExportMethods = ["t", "rt", "d", "n", "tm", "te"];
function injectGlobalFields(app, composer) {
  const i18n = /* @__PURE__ */ Object.create(null);
  globalExportProps.forEach((prop) => {
    const desc = Object.getOwnPropertyDescriptor(composer, prop);
    if (!desc) {
      throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);
    }
    const wrap = isRef(desc.value) ? {
      get() {
        return desc.value.value;
      },
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      set(val) {
        desc.value.value = val;
      }
    } : {
      get() {
        return desc.get && desc.get();
      }
    };
    Object.defineProperty(i18n, prop, wrap);
  });
  app.config.globalProperties.$i18n = i18n;
  globalExportMethods.forEach((method) => {
    const desc = Object.getOwnPropertyDescriptor(composer, method);
    if (!desc || !desc.value) {
      throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);
    }
    Object.defineProperty(app.config.globalProperties, `$${method}`, desc);
  });
  const dispose = () => {
    delete app.config.globalProperties.$i18n;
    globalExportMethods.forEach((method) => {
      delete app.config.globalProperties[`$${method}`];
    });
  };
  return dispose;
}
{
  initFeatureFlags();
}
if (__INTLIFY_JIT_COMPILATION__) {
  registerMessageCompiler(compile$1);
} else {
  registerMessageCompiler(compileToFunction);
}
registerMessageResolver(resolveValue);
registerLocaleFallbacker(fallbackWithLocaleChain);
if (__INTLIFY_PROD_DEVTOOLS__) {
  const target = getGlobalThis();
  target.__INTLIFY__ = true;
  setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);
}
if (false) ;

const words$4 = /* #__PURE__ */ JSON.parse("{\"grammar\":{},\"actions\":{},\"entities\":{},\"statuses\":{},\"domain\":{},\"services\":{},\"units\":{},\"replication\":{\"article\":{\"host_mention\":\"den\"},\"adjective\":{\"primary_host_mention\":\"primære\"},\"host\":\"vært\",\"host_definite_suffix\":\"en\",\"services\":{\"database\":\"database\",\"redis\":\"Redis\",\"minio\":\"MinIO\"}},\"generated\":{\"ældre\":\"ældre\",\"ændret\":\"ændret\",\"ændringer\":\"ændringer\",\"øjeblikkelig\":\"øjeblikkelig\",\"ønskede\":\"ønskede\",\"ønsker\":\"ønsker\",\"a\":\"a\",\"a_2\":\"å\",\"abn\":\"Åbn\",\"abnes\":\"åbnes\",\"abningstid\":\"åbningstid\",\"abningstider\":\"åbningstider\",\"abonnement\":\"abonnement\",\"abonnementer\":\"Abonnementer\",\"adgang\":\"adgang\",\"adgangskode\":\"adgangskode\",\"adgangskoden\":\"adgangskoden\",\"adgangskoderne\":\"Adgangskoderne\",\"admin\":\"Admin\",\"administration\":\"administration\",\"administrations\":\"administrations\",\"administrationsgebyr\":\"administrationsgebyr\",\"administrator\":\"administrator\",\"administrer\":\"administrer\",\"administreret\":\"administreret\",\"adresse\":\"adresse\",\"adressen\":\"adressen\",\"advarsler\":\"advarsler\",\"af\":\"af\",\"afdeling\":\"afdeling\",\"afdelingen\":\"afdelingen\",\"afdelingens\":\"afdelingens\",\"afdelinger\":\"afdelinger\",\"afdelings\":\"afdelings\",\"afdelingsbaner\":\"afdelingsbaner\",\"afdelingsfordeling\":\"Afdelingsfordeling\",\"afdelingsfordelinger\":\"afdelingsfordelinger\",\"afdelingskategorier\":\"afdelingskategorier\",\"afdelingsnavn\":\"afdelingsnavn\",\"afdelingsport\":\"afdelingsport\",\"afdelingsporte\":\"afdelingsporte\",\"afdelingspriser\":\"afdelingspriser\",\"afdelingsrele\":\"afdelingsrele\",\"afdelingsreleer\":\"afdelingsreleer\",\"afdelingsvariabler\":\"afdelingsvariabler\",\"afhentning\":\"Afhentning\",\"afkoblet\":\"afkoblet\",\"afsendelse\":\"afsendelse\",\"afsender\":\"Afsender\",\"afsluttede\":\"afsluttede\",\"aftale\":\"aftale\",\"aftaler\":\"aftaler\",\"afventende\":\"afventende\",\"afventer\":\"Afventer\",\"afvigelser\":\"afvigelser\",\"afviger\":\"afviger\",\"afvist\":\"afvist\",\"agreement\":\"agreement\",\"aktiv\":\"Aktiv\",\"aktive\":\"aktive\",\"aktiver\":\"Aktivér\",\"aktiver_2\":\"aktiver\",\"aktiveret\":\"aktiveret\",\"aktivt\":\"aktivt\",\"aktuelle\":\"aktuelle\",\"aktuelt\":\"aktuelt\",\"alert\":\"alert\",\"all\":\"All\",\"alle\":\"alle\",\"allerede\":\"allerede\",\"alt\":\"alt\",\"and\":\"and\",\"andel\":\"andel\",\"anden\":\"anden\",\"andet\":\"andet\",\"andre\":\"andre\",\"angiv\":\"Angiv\",\"angivet\":\"angivet\",\"anmodningen\":\"Anmodningen\",\"anmodningsgrænse\":\"anmodningsgrænse\",\"annuller\":\"Annuller\",\"annullere\":\"annullere\",\"annullerer\":\"Annullerer\",\"annulleret\":\"annulleret\",\"antal\":\"antal\",\"anvend\":\"Anvend\",\"any\":\"ANY\",\"api\":\"API\",\"app\":\"app\",\"appen\":\"appen\",\"ar\":\"@:{'words.generated.years'}\",\"are\":\"are\",\"arsag\":\"årsag\",\"at\":\"at\",\"autentificere\":\"autentificere\",\"autentisere\":\"autentisere\",\"automatisk\":\"automatisk\",\"backup\":\"backup\",\"bag\":\"bag\",\"bane\":\"bane\",\"be\":\"be\",\"begivenheder\":\"begivenheder\",\"begræns\":\"Begræns\",\"begrænset\":\"begrænset\",\"behandle\":\"behandle\",\"behandlede\":\"Behandlede\",\"behandler\":\"Behandler\",\"behold\":\"Behold\",\"beholdes\":\"beholdes\",\"bekræft\":\"bekræft\",\"bekræfte\":\"bekræfte\",\"bekræftelse\":\"bekræftelse\",\"bekræftelseskode\":\"bekræftelseskode\",\"bekræftet\":\"bekræftet\",\"beløb\":\"beløb\",\"bemærk\":\"Bemærk\",\"bemandet\":\"bemandet\",\"benyt\":\"Benyt\",\"beskyttet\":\"beskyttet\",\"besvares\":\"besvares\",\"besvaret\":\"besvaret\",\"betal\":\"Betal\",\"betaling\":\"betaling\",\"betalingen\":\"betalingen\",\"betalinger\":\"betalinger\",\"betalingsbetingelser\":\"betalingsbetingelser\",\"betalingsform\":\"betalingsform\",\"betalingskort\":\"Betalingskort\",\"betalingslink\":\"betalingslink\",\"betalingslinket\":\"betalingslinket\",\"betalingsstatus\":\"betalingsstatus\",\"betalt\":\"betalt\",\"betingelse\":\"betingelse\",\"betingelser\":\"betingelser\",\"betingelsesregel\":\"betingelsesregel\",\"betingelsesregler\":\"betingelsesregler\",\"billede\":\"billede\",\"billeder\":\"billeder\",\"binær\":\"binær\",\"blev\":\"blev\",\"blevet\":\"blevet\",\"blive\":\"blive\",\"bliver\":\"bliver\",\"bloker\":\"Bloker\",\"bn\":\"bn\",\"bogføres\":\"bogføres\",\"bogført\":\"bogført\",\"bogførte\":\"bogførte\",\"book\":\"book\",\"booke\":\"booke\",\"booking\":\"booking\",\"bookingen\":\"bookingen\",\"bookinger\":\"bookinger\",\"bookingnummer\":\"bookingnummer\",\"bookingoplysninger\":\"Bookingoplysninger\",\"bookingsiden\":\"bookingsiden\",\"bookingtyper\":\"bookingtyper\",\"bør\":\"bør\",\"browser\":\"browser\",\"brug\":\"brug\",\"bruge\":\"bruge\",\"bruger\":\"bruger\",\"brugerdata\":\"brugerdata\",\"brugere\":\"brugere\",\"brugernavn\":\"brugernavn\",\"brugernavnet\":\"brugernavnet\",\"brugerprofil\":\"brugerprofil\",\"brugerrabat\":\"brugerrabat\",\"brugerroller\":\"brugerroller\",\"bruges\":\"bruges\",\"bucket\":\"bucket\",\"buckets\":\"buckets\",\"by\":\"by\",\"bytes\":\"bytes\",\"ca\":\"ca\",\"cache\":\"cache\",\"cacheværktøjer\":\"Cacheværktøjer\",\"certifikat\":\"certifikat\",\"chauffør\":\"chauffør\",\"chauffører\":\"chauffører\",\"chrome\":\"Chrome\",\"cifrede\":\"cifrede\",\"cleaning\":\"cleaning\",\"client\":\"Client\",\"clone\":\"Clone\",\"coolify\":\"Coolify\",\"com\":\"com\",\"company\":\"company\",\"compose\":\"compose\",\"configuration\":\"configuration\",\"connection\":\"connection\",\"conomic\":\"conomic\",\"cpu\":\"CPU\",\"cvr\":\"CVR\",\"d\":\"D\",\"dag\":\"dag\",\"dage\":\"dage\",\"dagen\":\"dagen\",\"dagens\":\"dagens\",\"daglig\":\"Daglig\",\"daglige\":\"daglige\",\"dagsopgørelse\":\"dagsopgørelse\",\"dagsopgørelser\":\"dagsopgørelser\",\"dagsrapport\":\"dagsrapport\",\"dashboard\":\"dashboard\",\"data\":\"data\",\"databasereplikering\":\"databasereplikering\",\"dato\":\"dato\",\"de\":\"de\",\"deaktiver\":\"deaktiver\",\"deaktivere\":\"deaktivere\",\"deaktiveret\":\"deaktiveret\",\"delt\":\"delt\",\"denne\":\"denne\",\"department\":\"department\",\"der\":\"der\",\"derfor\":\"derfor\",\"destination\":\"destination\",\"det\":\"det\",\"detaljer\":\"detaljer\",\"dette\":\"dette\",\"diagnostik\":\"diagnostik\",\"dig\":\"dig\",\"digitale\":\"digitale\",\"din\":\"din\",\"dine\":\"dine\",\"direkte\":\"direkte\",\"disponenter\":\"disponenter\",\"distributions\":\"distributions\",\"dit\":\"dit\",\"dkk\":\"DKK\",\"docker\":\"docker\",\"døgnvask\":\"Døgnvask\",\"download\":\"download\",\"du\":\"du\",\"dubletter\":\"dubletter\",\"due\":\"Forfalden\",\"duration\":\"duration\",\"e\":\"e\",\"economic\":\"Economic\",\"edge\":\"edge\",\"efter\":\"efter\",\"egen\":\"egen\",\"eks\":\"eks\",\"eksisterende\":\"eksisterende\",\"eksisterer\":\"eksisterer\",\"ekskluder\":\"Ekskluder\",\"eksporter\":\"Eksporter\",\"eksporteres\":\"eksporteres\",\"ekstra\":\"ekstra\",\"eller\":\"eller\",\"email\":\"email\",\"emailen\":\"emailen\",\"employee\":\"employee\",\"employees\":\"employees\",\"en\":\"én\",\"enable\":\"Enable\",\"end\":\"end\",\"endnu\":\"endnu\",\"endpoint\":\"endpoint\",\"endpoints\":\"endpoints\",\"enhed\":\"enhed\",\"enter\":\"Enter\",\"entire\":\"entire\",\"entitetstyper\":\"entitetstyper\",\"env\":\"env\",\"er\":\"er\",\"et\":\"ét\",\"et_2\":\"et\",\"f\":\"f\",\"fa\":\"få\",\"færdig\":\"færdig\",\"faktor\":\"faktor\",\"faktura\":\"faktura\",\"fakturaen\":\"fakturaen\",\"fakturaer\":\"fakturaer\",\"fakturanummer\":\"fakturanummer\",\"fakturaoplysninger\":\"fakturaoplysninger\",\"fakturasamling\":\"fakturasamling\",\"fakturasamlinger\":\"fakturasamlinger\",\"fakturatotal\":\"fakturatotal\",\"fakturer\":\"Fakturer\",\"faktureret\":\"faktureret\",\"fakturering\":\"fakturering\",\"faktureringsregel\":\"faktureringsregel\",\"fallback\":\"fallback\",\"false\":\"false\",\"falsk\":\"falsk\",\"fane\":\"fane\",\"far\":\"får\",\"fast\":\"fast\",\"fastpris\":\"fastpris\",\"fastprisaftaler\":\"fastprisaftaler\",\"fejl\":\"fejl\",\"fejlede\":\"fejlede\",\"fejlmelding\":\"fejlmelding\",\"felt\":\"felt\",\"fil\":\"fil\",\"filen\":\"filen\",\"filer\":\"filer\",\"filter\":\"filter\",\"filtre\":\"filtre\",\"find\":\"Find\",\"findes\":\"findes\",\"firma\":\"Firma\",\"fjern\":\"fjern\",\"fjernet\":\"fjernet\",\"flag\":\"flag\",\"fleet\":\"fleet\",\"flere\":\"flere\",\"flytte\":\"flytte\",\"for\":\"for\",\"før\":\"før\",\"forældede\":\"forældede\",\"forældet\":\"forældet\",\"forbindelse\":\"forbindelse\",\"forbindelsen\":\"forbindelsen\",\"forbindelsesindstillingerne\":\"forbindelsesindstillingerne\",\"forbruget\":\"forbruget\",\"forbrugslog\":\"forbrugslog\",\"fordeling\":\"fordeling\",\"fordi\":\"fordi\",\"forhandsvis\":\"Forhåndsvis\",\"forhandsvisning\":\"forhåndsvisning\",\"forkert\":\"forkert\",\"format\":\"format\",\"formular\":\"formular\",\"formularer\":\"formularer\",\"forrige\":\"forrige\",\"forskel\":\"forskel\",\"forskelle\":\"forskelle\",\"forskellige\":\"forskellige\",\"først\":\"først\",\"fortryd\":\"Fortryd\",\"fortrydes\":\"fortrydes\",\"fortsæt\":\"fortsæt\",\"fortsætte\":\"fortsætte\",\"forventede\":\"forventede\",\"forventet\":\"forventet\",\"fra\":\"fra\",\"fremskridt\":\"Fremskridt\",\"from\":\"from\",\"fuldfør\":\"Fuldfør\",\"fuldføre\":\"fuldføre\",\"fuldført\":\"fuldført\",\"fuldførte\":\"fuldførte\",\"fundet\":\"fundet\",\"funktion\":\"funktion\",\"fx\":\"FX\",\"fxratesapi\":\"FXRatesAPI\",\"g\":\"g\",\"ga\":\"gå\",\"gæst\":\"gæst\",\"gammel\":\"gammel\",\"gang\":\"gang\",\"gateway\":\"gateway\",\"gateways\":\"gateways\",\"gatewaystatus\":\"gatewaystatus\",\"gem\":\"Gem\",\"gemme\":\"gemme\",\"gemmes\":\"gemmes\",\"gemt\":\"gemt\",\"gendan\":\"Gendan\",\"general\":\"General\",\"generelle\":\"generelle\",\"generer\":\"Generér\",\"genereret\":\"genereret\",\"generering\":\"generering\",\"gennemfør\":\"Gennemfør\",\"gennemføre\":\"gennemføre\",\"gennemfører\":\"Gennemfører\",\"gennemført\":\"gennemført\",\"gennemga\":\"Gennemgå\",\"gennemsnitlig\":\"Gennemsnitlig\",\"genopbygning\":\"genopbygning\",\"genstart\":\"genstart\",\"genveje\":\"genveje\",\"get\":\"Get\",\"giver\":\"giver\",\"gns\":\"gns\",\"godkendelse\":\"godkendelse\",\"godkendelsesapp\":\"godkendelsesapp\",\"google\":\"Google\",\"gøre\":\"gøre\",\"grant\":\"grant\",\"gruppe\":\"gruppe\",\"grupperede\":\"grupperede\",\"gtid\":\"GTID\",\"gyldig\":\"gyldig\",\"gyldigt\":\"gyldigt\",\"hændelser\":\"hændelser\",\"handling\":\"handling\",\"handlingen\":\"handlingen\",\"handlinger\":\"handlinger\",\"handter\":\"Håndter\",\"handtere\":\"håndtere\",\"har\":\"har\",\"hele\":\"Hele\",\"hemmelighed\":\"hemmelighed\",\"hent\":\"Hent\",\"hente\":\"hente\",\"henter\":\"henter\",\"hentes\":\"hentes\",\"hentet\":\"hentet\",\"hentning\":\"Hentning\",\"her\":\"her\",\"historiske\":\"historiske\",\"hjælp\":\"hjælp\",\"hjemmeskærm\":\"hjemmeskærm\",\"højre\":\"højre\",\"hold\":\"Hold\",\"hos\":\"hos\",\"host\":\"host\",\"hosten\":\"hosten\",\"http\":\"HTTP\",\"hurtigt\":\"hurtigt\",\"hver\":\"hver\",\"hvilken\":\"hvilken\",\"hvis\":\"hvis\",\"hvor\":\"hvor\",\"hvordan\":\"hvordan\",\"i\":\"i\",\"id\":\"id\",\"identitet\":\"identitet\",\"igen\":\"igen\",\"ignorer\":\"Ignorer\",\"ignoreret\":\"ignoreret\",\"ikke\":\"ikke\",\"imod\":\"imod\",\"implementeret\":\"implementeret\",\"importer\":\"Importer\",\"ind\":\"ind\",\"inde\":\"inde\",\"indeholder\":\"indeholder\",\"inden\":\"inden\",\"indhold\":\"indhold\",\"indlæse\":\"indlæse\",\"indlæser\":\"indlæser\",\"indlæses\":\"indlæses\",\"indlæst\":\"indlæst\",\"indsæt\":\"Indsæt\",\"indstillinger\":\"indstillinger\",\"indstillingerne\":\"indstillingerne\",\"indtast\":\"Indtast\",\"indtaste\":\"indtaste\",\"indtastede\":\"indtastede\",\"indvendig\":\"indvendig\",\"information\":\"information\",\"ingen\":\"ingen\",\"inkl\":\"inkl\",\"inkluder\":\"Inkluder\",\"inn\":\"inn\",\"installation\":\"installation\",\"installer\":\"installer\",\"installere\":\"installere\",\"installerede\":\"installerede\",\"installeret\":\"installeret\",\"integration\":\"integration\",\"integrationen\":\"integrationen\",\"integrationer\":\"integrationer\",\"intent\":\"intent\",\"interessenter\":\"interessenter\",\"internetforbindelse\":\"internetforbindelse\",\"intet\":\"Intet\",\"intranet\":\"intranet\",\"invalid\":\"invalid\",\"io\":\"io\",\"iphone\":\"iPhone\",\"is\":\"is\",\"iso\":\"ISO\",\"it\":\"IT\",\"ja\":\"ja\",\"json\":\"JSON\",\"k\":\"k\",\"kalender\":\"kalender\",\"kamera\":\"kamera\",\"kan\":\"kan\",\"kassesystem\":\"kassesystem\",\"kategori\":\"kategori\",\"key\":\"key\",\"kilde\":\"kilde\",\"kl\":\"kl\",\"kladde\":\"kladde\",\"kladdekunde\":\"kladdekunde\",\"kladden\":\"kladden\",\"kladder\":\"kladder\",\"klage\":\"klage\",\"klar\":\"klar\",\"klarer\":\"klarer\",\"klargjort\":\"klargjort\",\"klargør\":\"klargør\",\"klargøring\":\"klargøring\",\"klargøringstjenesten\":\"klargøringstjenesten\",\"klik\":\"klik\",\"kø\":\"kø\",\"kode\":\"kode\",\"koden\":\"koden\",\"komme\":\"komme\",\"konfiguration\":\"konfiguration\",\"konfigurationen\":\"konfigurationen\",\"konfigurer\":\"Konfigurer\",\"konfigurere\":\"konfigurere\",\"konfigurerede\":\"konfigurerede\",\"konfigureres\":\"konfigureres\",\"konfigureret\":\"konfigureret\",\"konkurrencedygtige\":\"konkurrencedygtige\",\"kontakt\":\"kontakt\",\"kontaktoplysninger\":\"kontaktoplysninger\",\"kontant\":\"kontant\",\"konto\":\"konto\",\"kontroller\":\"Kontroller\",\"kontrolleret\":\"kontrolleret\",\"koordinere\":\"koordinere\",\"kopier\":\"Kopier\",\"kopiere\":\"kopiere\",\"kopierer\":\"Kopierer\",\"kopieret\":\"kopieret\",\"kør\":\"kør\",\"køre\":\"køre\",\"kører\":\"kører\",\"køretøj\":\"køretøj\",\"køretøjer\":\"køretøjer\",\"køretøjets\":\"Køretøjets\",\"køretøjsbetingelse\":\"køretøjsbetingelse\",\"køretøjsbetingelser\":\"køretøjsbetingelser\",\"køretøjsdetaljer\":\"køretøjsdetaljer\",\"køretøjstype\":\"køretøjstype\",\"køretøjstyper\":\"køretøjstyper\",\"korrekt\":\"korrekt\",\"kort\":\"kort\",\"kortbetaling\":\"Kortbetaling\",\"kræv\":\"Kræv\",\"kræver\":\"kræver\",\"kredit\":\"kredit\",\"kun\":\"kun\",\"kunde\":\"kunde\",\"kundebemærkninger\":\"Kundebemærkninger\",\"kundeklager\":\"kundeklager\",\"kundekonto\":\"Kundekonto\",\"kunden\":\"kunden\",\"kundenavn\":\"kundenavn\",\"kundenote\":\"Kundenote\",\"kundens\":\"kundens\",\"kundenummer\":\"kundenummer\",\"kundenummeret\":\"kundenummeret\",\"kundeønsker\":\"Kundeønsker\",\"kundeportal\":\"Kundeportal\",\"kundepriser\":\"Kundepriser\",\"kunder\":\"kunder\",\"kunderabatter\":\"kunderabatter\",\"kunne\":\"kunne\",\"kurv\":\"kurv\",\"kvittering\":\"kvittering\",\"læst\":\"læst\",\"landekode\":\"landekode\",\"landet\":\"landet\",\"last\":\"Last\",\"lastbilvask\":\"lastbilvask\",\"lave\":\"lave\",\"least\":\"least\",\"leder\":\"Leder\",\"ledig\":\"ledig\",\"legg\":\"Legg\",\"legitimationsoplysninger\":\"legitimationsoplysninger\",\"lige\":\"lige\",\"limble\":\"Limble\",\"linje\":\"linje\",\"link\":\"link\",\"list\":\"List\",\"liste\":\"liste\",\"log\":\"log\",\"logge\":\"logge\",\"logget\":\"logget\",\"login\":\"login\",\"logning\":\"logning\",\"lokation\":\"lokation\",\"lookup\":\"lookup\",\"løsninger\":\"løsninger\",\"loyalitetspoint\":\"loyalitetspoint\",\"luk\":\"Luk\",\"lukket\":\"lukket\",\"ma\":\"må\",\"machine\":\"Machine\",\"mail\":\"mail\",\"mailadresse\":\"mailadresse\",\"mailersend\":\"Mailersend\",\"mailersend_mailersend\":\"MailerSend\",\"maj\":\"Maj\",\"mal\":\"mål\",\"malet\":\"målet\",\"malfremskridt\":\"målfremskridt\",\"malinger\":\"målinger\",\"malværten\":\"målværten\",\"maned\":\"måned\",\"maneder\":\"måneder\",\"manedlig\":\"månedlig\",\"manedlige\":\"månedlige\",\"manedligt\":\"månedligt\",\"manedsopdeling\":\"månedsopdeling\",\"manglende\":\"Manglende\",\"mangler\":\"mangler\",\"manuel\":\"Manuel\",\"manuelt\":\"manuelt\",\"mariadb\":\"MariaDB\",\"marker\":\"Marker\",\"maskine\":\"maskine\",\"maste\":\"Måste\",\"matcher\":\"matcher\",\"materialer\":\"materialer\",\"med\":\"med\",\"medarbejder\":\"medarbejder\",\"medarbejderadgang\":\"medarbejderadgang\",\"medarbejdere\":\"medarbejdere\",\"medarbejderen\":\"medarbejderen\",\"medtages\":\"medtages\",\"men\":\"men\",\"mens\":\"mens\",\"mere\":\"mere\",\"meta\":\"meta\",\"microsoft\":\"Microsoft\",\"migrering\":\"migrering\",\"miljø\":\"miljø\",\"miljøgebyr\":\"miljøgebyr\",\"miljøgebyret\":\"miljøgebyret\",\"min\":\"Min\",\"mindre\":\"mindre\",\"mindst\":\"mindst\",\"mine\":\"Mine\",\"minutter\":\"minutter\",\"mislykkedes\":\"mislykkedes\",\"modtag\":\"Modtag\",\"modtage\":\"modtage\",\"modtager\":\"modtager\",\"modtaget\":\"modtaget\",\"moduler\":\"moduler\",\"modulhandlingslog\":\"modulhandlingslog\",\"modulproben\":\"modulproben\",\"moms\":\"moms\",\"months\":\"months\",\"motor\":\"Motor\",\"motorapi\":\"MotorAPI\",\"mulige\":\"mulige\",\"mulighed\":\"mulighed\",\"mysql\":\"MySQL\",\"nægtet\":\"nægtet\",\"nærmeste\":\"nærmeste\",\"næste\":\"næste\",\"nar\":\"når\",\"nas\":\"nås\",\"nationale\":\"nationale\",\"navn\":\"navn\",\"navnet\":\"Navnet\",\"ned\":\"ned\",\"nedenfor\":\"nedenfor\",\"nej\":\"nej\",\"netværk\":\"netværk\",\"netværksfejl\":\"Netværksfejl\",\"nødvendige\":\"nødvendige\",\"nogen\":\"nogen\",\"nøgle\":\"nøgle\",\"nogle\":\"nogle\",\"nok\":\"nok\",\"nøkkel\":\"@:{'words.generated.nøgle'}\",\"nøkkelen\":\"nøglen\",\"not\":\"not\",\"note\":\"note\",\"notifikationer\":\"notifikationer\",\"notifikationsindstillinger\":\"notifikationsindstillinger\",\"nu\":\"nu\",\"nulstil\":\"Nulstil\",\"nummer\":\"nummer\",\"nummerplade\":\"nummerplade\",\"nummerplader\":\"nummerplader\",\"nummerpladescannere\":\"nummerpladescannere\",\"numre\":\"numre\",\"nuværende\":\"nuværende\",\"ny\":\"ny\",\"nye\":\"nye\",\"nyere\":\"nyere\",\"nyt\":\"nyt\",\"objekt\":\"objekt\",\"objekter\":\"objekter\",\"of\":\"of\",\"og\":\"og\",\"om\":\"om\",\"omdøb\":\"Omdøb\",\"omkring\":\"omkring\",\"omsætning\":\"omsætning\",\"one\":\"one\",\"online\":\"online\",\"only\":\"only\",\"opdater\":\"Opdater\",\"opdateret\":\"opdateret\",\"opdel\":\"opdel\",\"opdele\":\"opdele\",\"opdeling\":\"opdeling\",\"opdelt\":\"opdelt\",\"openai\":\"OpenAI\",\"operatører\":\"operatører\",\"opgave\":\"opgave\",\"opgaver\":\"opgaver\",\"opkræves\":\"opkræves\",\"oplysninger\":\"oplysninger\",\"opret\":\"Opret\",\"oprette\":\"oprette\",\"oprettelse\":\"oprettelse\",\"opretter\":\"opretter\",\"oprettet\":\"oprettet\",\"opsætning\":\"opsætning\",\"opstod\":\"opstod\",\"opsummering\":\"opsummering\",\"optional\":\"optional\",\"optjen\":\"optjen\",\"or\":\"or\",\"oracle\":\"Oracle\",\"ordre\":\"ordre\",\"ordrebookinger\":\"ordrebookinger\",\"ordredetaljer\":\"ordredetaljer\",\"ordrefakturaer\":\"ordrefakturaer\",\"ordrelinjer\":\"ordrelinjer\",\"ordren\":\"ordren\",\"ordrer\":\"ordrer\",\"os\":\"os\",\"oss\":\"oss\",\"over\":\"over\",\"overførsel\":\"overførsel\",\"overførsler\":\"overførsler\",\"oversigt\":\"oversigt\",\"overtræder\":\"overtræder\",\"pa\":\"på\",\"pakrævet\":\"påkrævet\",\"parser\":\"parser\",\"passer\":\"passer\",\"passkey\":\"passkey\",\"passkeys\":\"passkeys\",\"passnøglen\":\"passnøglen\",\"password\":\"PASSWORD\",\"payload\":\"payload\",\"payment\":\"Payment\",\"pdf\":\"PDF\",\"per\":\"per\",\"periode\":\"periode\",\"placeholder\":\"Placeholder\",\"plads\":\"plads\",\"pladsholder\":\"Pladsholder\",\"pleno\":\"Pleno\",\"pletfri\":\"pletfri\",\"pluginet\":\"pluginet\",\"po\":\"PO\",\"populære\":\"Populære\",\"port\":\"port\",\"portal\":\"portal\",\"porte\":\"porte\",\"porten\":\"porten\",\"pos\":\"POS\",\"pr\":\"pr\",\"primær\":\"primær\",\"primary\":\"PRIMARY\",\"print\":\"Print\",\"prioritet\":\"prioritet\",\"pris\":\"pris\",\"prisen\":\"Prisen\",\"priser\":\"priser\",\"probe\":\"probe\",\"proben\":\"proben\",\"problemer\":\"problemer\",\"proc\":\"proc\",\"produkt\":\"produkt\",\"produkter\":\"produkter\",\"produktnavn\":\"produktnavn\",\"produkttilvalg\":\"produkttilvalg\",\"profilering\":\"profilering\",\"prøv\":\"prøv\",\"prøver\":\"Prøver\",\"provide\":\"Provide\",\"qr\":\"QR\",\"query\":\"query\",\"rabat\":\"rabat\",\"rækker\":\"Rækker\",\"ram\":\"RAM\",\"rapport\":\"rapport\",\"rapporter\":\"rapporter\",\"rapporterer\":\"rapporterer\",\"rates\":\"Rates\",\"recipient\":\"recipient\",\"rediger\":\"Rediger\",\"redigeringsret\":\"redigeringsret\",\"reference\":\"reference\",\"referencenummer\":\"referencenummer\",\"reg\":\"reg\",\"regel\":\"regel\",\"registrer\":\"registrer\",\"registreret\":\"registreret\",\"registrering\":\"registrering\",\"registreringen\":\"registreringen\",\"registreringsnummer\":\"registreringsnummer\",\"registreringsnumre\":\"registreringsnumre\",\"reglen\":\"reglen\",\"regler\":\"regler\",\"relæ\":\"relæ\",\"relæer\":\"relæer\",\"relay\":\"relay\",\"released\":\"released\",\"relevante\":\"relevante\",\"rename\":\"omdøb\",\"replika\":\"replika\",\"replikaen\":\"replikaen\",\"replikaens\":\"replikaens\",\"replikaer\":\"replikaer\",\"replikering\":\"replikering\",\"replikeringsklargøring\":\"replikeringsklargøring\",\"requests\":\"requests\",\"required\":\"required\",\"result\":\"result\",\"resultater\":\"resultater\",\"ret\":\"ret\",\"returnerede\":\"returnerede\",\"rolle\":\"rolle\",\"roller\":\"roller\",\"runtime\":\"runtime\",\"ryd\":\"Ryd\",\"ryddes\":\"ryddes\",\"sa\":\"så\",\"sæt\":\"Sæt\",\"sættevogn\":\"sættevogn\",\"safari\":\"Safari\",\"safety\":\"safety\",\"salg\":\"salg\",\"samlede\":\"samlede\",\"samlet\":\"samlet\",\"samme\":\"samme\",\"sammenlign\":\"Sammenlign\",\"sammenligning\":\"sammenligning\",\"sammenligningen\":\"sammenligningen\",\"sand\":\"sand\",\"sat\":\"sat\",\"scan\":\"scan\",\"scanne\":\"scanne\",\"scannede\":\"scannede\",\"scanning\":\"scanning\",\"score\":\"Score\",\"se\":\"se\",\"seal\":\"seal\",\"secret\":\"secret\",\"sekunder\":\"sekunder\",\"select\":\"select\",\"self\":\"Self\",\"selfservice\":\"selfservice\",\"selv\":\"selv\",\"selvbetjening\":\"selvbetjening\",\"selvbetjeningsbetingelser\":\"selvbetjeningsbetingelser\",\"selvbetjeningsopgaver\":\"selvbetjeningsopgaver\",\"selvbetjeningsspørgsmal\":\"selvbetjeningsspørgsmål\",\"selvvask\":\"selvvask\",\"send\":\"send\",\"sende\":\"sende\",\"sender\":\"sender\",\"sendes\":\"sendes\",\"sendt\":\"sendt\",\"seneste\":\"seneste\",\"separate\":\"separate\",\"ser\":\"ser\",\"serve\":\"serve\",\"server\":\"server\",\"serveren\":\"serveren\",\"serverfejl\":\"Serverfejl\",\"service\":\"service\",\"servicen\":\"servicen\",\"serviceporten\":\"serviceporten\",\"session\":\"session\",\"sessioner\":\"sessioner\",\"set\":\"set\",\"settings\":\"settings\",\"shelly\":\"Shelly\",\"shift\":\"shift\",\"side\":\"side\",\"siden\":\"siden\",\"sidst\":\"Sidst\",\"sidste\":\"sidste\",\"sig\":\"sig\",\"sikker\":\"sikker\",\"sikkerhed\":\"sikkerhed\",\"sikkerhedskopi\":\"sikkerhedskopi\",\"sikkert\":\"sikkert\",\"sikre\":\"sikre\",\"skal\":\"skal\",\"skanning\":\"skanning\",\"skema\":\"skema\",\"skemaet\":\"skemaet\",\"skete\":\"skete\",\"skift\":\"Skift\",\"skiftes\":\"skiftes\",\"skjul\":\"Skjul\",\"skriv\":\"Skriv\",\"skrivebeskyttet\":\"skrivebeskyttet\",\"skyl\":\"skyl\",\"slack\":\"Slack\",\"slaet\":\"slået\",\"slet\":\"slet\",\"slette\":\"slette\",\"slettet\":\"slettet\",\"sms\":\"SMS\",\"smtp\":\"SMTP\",\"søg\":\"søg\",\"søgning\":\"søgning\",\"solgt\":\"solgt\",\"solgte\":\"solgte\",\"som\":\"som\",\"sorter\":\"Sorter\",\"sortering\":\"Sortering\",\"special\":\"special\",\"specialaftale\":\"specialaftale\",\"spørgsmal\":\"spørgsmål\",\"sql\":\"SQL\",\"stadig\":\"stadig\",\"standard\":\"standard\",\"standarder\":\"standarder\",\"start\":\"start\",\"starte\":\"starte\",\"starter\":\"starter\",\"statistik\":\"statistik\",\"status\":\"status\",\"stedet\":\"stedet\",\"stripe\":\"Stripe\",\"studio\":\"Studio\",\"succesfuld\":\"succesfuld\",\"succesfuldt\":\"succesfuldt\",\"superbruger\":\"superbruger\",\"superbrugere\":\"superbrugere\",\"superbrugerfladen\":\"superbrugerfladen\",\"support\":\"support\",\"svar\":\"svar\",\"synkroniser\":\"Synkroniser\",\"synkroniseret\":\"synkroniseret\",\"synkronisering\":\"synkronisering\",\"synlige\":\"synlige\",\"synlighed\":\"synlighed\",\"system\":\"system\",\"systemet\":\"systemet\",\"systemkonfiguration\":\"systemkonfiguration\",\"systemsøgnings\":\"systemsøgnings\",\"systemstatus\":\"systemstatus\",\"tabel\":\"tabel\",\"tabeller\":\"tabeller\",\"tablet\":\"tablet\",\"tage\":\"tage\",\"tak\":\"Tak\",\"tank\":\"tank\",\"tankcleaning\":\"tankcleaning\",\"target\":\"target\",\"tegn\":\"tegn\",\"telefon\":\"telefon\",\"telefonnummer\":\"telefonnummer\",\"telefonnumre\":\"telefonnumre\",\"terminal\":\"terminal\",\"terminaler\":\"terminaler\",\"test\":\"test\",\"the\":\"the\",\"this\":\"this\",\"tid\":\"tid\",\"tider\":\"tider\",\"tidligere\":\"tidligere\",\"tidsbooking\":\"tidsbooking\",\"tidsbookinger\":\"tidsbookinger\",\"tidspunkt\":\"tidspunkt\",\"til\":\"til\",\"tilbage\":\"tilbage\",\"tildel\":\"Tildel\",\"tildeling\":\"tildeling\",\"tildelt\":\"tildelt\",\"tildelte\":\"tildelte\",\"tilføj\":\"Tilføj\",\"tilføje\":\"tilføje\",\"tilføjet\":\"tilføjet\",\"tilgængelig\":\"tilgængelig\",\"tilgængelige\":\"tilgængelige\",\"tilgængeligt\":\"tilgængeligt\",\"tilgangskode\":\"tilgangskode\",\"tilgjengelig\":\"tilgjengelig\",\"tilhører\":\"tilhører\",\"tilknyt\":\"Tilknyt\",\"tilknytning\":\"tilknytning\",\"tilladelse\":\"tilladelse\",\"tilladelser\":\"tilladelser\",\"tilladt\":\"tilladt\",\"tillæg\":\"tillæg\",\"tillægsydelser\":\"tillægsydelser\",\"tilstand\":\"tilstand\",\"tilvalg\":\"tilvalg\",\"time\":\"time\",\"timer\":\"timer\",\"to\":\"to\",\"token\":\"token\",\"tom\":\"tom\",\"tøm\":\"Tøm\",\"top\":\"Top\",\"total\":\"total\",\"totalbeløb\":\"totalbeløb\",\"totaler\":\"totaler\",\"traden\":\"tråden\",\"trailer\":\"trailer\",\"trailervask\":\"trailervask\",\"transaktion\":\"transaktion\",\"transaktioner\":\"transaktioner\",\"transaktionskladde\":\"Transaktionskladde\",\"trin\":\"trin\",\"truck\":\"Truck\",\"truckwash\":\"truckwash\",\"true\":\"true\",\"tryk\":\"tryk\",\"tværs\":\"tværs\",\"tving\":\"Tving\",\"tvungen\":\"tvungen\",\"tvunget\":\"tvunget\",\"type\":\"type\",\"typer\":\"typer\",\"uanset\":\"uanset\",\"ud\":\"ud\",\"uden\":\"uden\",\"udenfor\":\"udenfor\",\"udfør\":\"Udfør\",\"udført\":\"udført\",\"udfyld\":\"Udfyld\",\"udfylde\":\"udfylde\",\"udfyldt\":\"udfyldt\",\"udsæt\":\"Udsæt\",\"udskriv\":\"Udskriv\",\"udrulningen\":\"udrulningen\",\"udvendig\":\"udvendig\",\"uge\":\"uge\",\"ugyldig\":\"ugyldig\",\"ukendt\":\"ukendt\",\"under\":\"under\",\"underbruger\":\"underbruger\",\"underbrugere\":\"underbrugere\",\"understøtter\":\"understøtter\",\"upload\":\"upload\",\"url\":\"URL\",\"used\":\"used\",\"utilgængelig\":\"utilgængelig\",\"utilgængelige\":\"utilgængelige\",\"v2\":\"v2\",\"vælg\":\"vælg\",\"vælge\":\"vælge\",\"værdi\":\"værdi\",\"være\":\"være\",\"valgfri\":\"Valgfri\",\"valgt\":\"valgt\",\"valgte\":\"valgte\",\"valid\":\"valid\",\"valideringsfejl\":\"valideringsfejl\",\"value\":\"value\",\"valutakurser\":\"valutakurser\",\"valutakurserne\":\"valutakurserne\",\"vandforbrug\":\"vandforbrug\",\"var\":\"var\",\"varegrupper\":\"varegrupper\",\"varer\":\"varer\",\"vask\":\"vask\",\"vaske\":\"vaske\",\"vaskeabonnement\":\"vaskeabonnement\",\"vaskeabonnementer\":\"vaskeabonnementer\",\"vaskebane\":\"vaskebane\",\"vaskebaner\":\"vaskebaner\",\"vaskecertifikat\":\"vaskecertifikat\",\"vaskecertifikater\":\"vaskecertifikater\",\"vaskecertifikatet\":\"vaskecertifikatet\",\"vaskecertifikatlinjen\":\"Vaskecertifikatlinjen\",\"vaskehal\":\"vaskehal\",\"vaskehaller\":\"vaskehaller\",\"vaskehals\":\"vaskehals\",\"vaskelog\":\"vaskelog\",\"vasken\":\"vasken\",\"vasketype\":\"vasketype\",\"vaskeydelser\":\"vaskeydelser\",\"vat\":\"VAT\",\"ved\":\"ved\",\"vedhæft\":\"Vedhæft\",\"vedhæftede\":\"Vedhæftede\",\"vedhæftet\":\"vedhæftet\",\"vedhæftning\":\"vedhæftning\",\"vegne\":\"vegne\",\"velkommen\":\"velkommen\",\"venligst\":\"venligst\",\"vent\":\"vent\",\"venter\":\"Venter\",\"vi\":\"vi\",\"via\":\"via\",\"vil\":\"vil\",\"virk\":\"Virk\",\"virkdata\":\"VirkData\",\"virkdata_virkdata\":\"Virkdata\",\"virksomhed\":\"virksomhed\",\"virksomheder\":\"virksomheder\",\"vis\":\"Vis\",\"vise\":\"vise\",\"viser\":\"viser\",\"visionen\":\"visionen\",\"visning\":\"visning\",\"vognmænd\":\"vognmænd\",\"vogntype\":\"vogntype\",\"vognvaskere\":\"vognvaskere\",\"vores\":\"vores\",\"wash\":\"Wash\",\"webhook\":\"webhook\",\"webhooks\":\"webhooks\",\"weeks\":\"weeks\",\"word_00z\":\"00Z\",\"workfeed\":\"Workfeed\",\"x\":\"x\",\"xl\":\"XL\",\"xlvask\":\"XLVask\",\"xlvask_xlvask\":\"Xlvask\",\"ydelse\":\"ydelse\",\"ydelser\":\"ydelser\",\"yderligere\":\"yderligere\",\"years\":\"år\",\"zoom\":\"Zoom\"}}");
const templates$4 = /* #__PURE__ */ JSON.parse("{\"support\":{\"title\":\"Support\",\"meta_description\":\"Support og kontaktoplysninger for Truck Wash.\",\"eyebrow\":\"Truck Wash\",\"intro\":\"Kontakt os, hvis du har brug for hjælp til booking, selvvask, betalinger eller adgang til kundeportalen.\",\"contact_title\":\"Kontakt\",\"email_label\":\"Email\",\"phone_label\":\"Telefon\",\"company_label\":\"Virksomhed\",\"help_title\":\"Vi kan hjælpe med\",\"help_booking\":\"Booking og ændring af vasketider.\",\"help_self_wash\":\"Start og afslutning af selvvask.\",\"help_payments\":\"Ordrer, fakturaer og kortbetalinger.\",\"help_account\":\"Login, adgang og køretøjer på din konto.\",\"privacy_prefix\":\"Læs også vores\",\"privacy_link\":\"privatlivspolitik\",\"privacy_suffix\":\"for oplysninger om data og rettigheder.\"},\"common\":{\"step_of\":\"@.capitalize:{'words.generated.trin'} {current} @:{'words.generated.af'} {total}\",\"page_of\":\"@.capitalize:{'words.generated.side'} {current} @:{'words.generated.af'} {total}\",\"selected_count\":\"{count} @:{'words.generated.valgt'}\",\"no_items\":\"@.capitalize:{'words.generated.ingen'} {entity}\",\"select_entity\":\"@.capitalize:{'words.generated.vælg'} {entity}\",\"create_entity\":\"@:{'words.generated.opret'} {entity}\",\"edit_entity\":\"@:{'words.generated.rediger'} {entity}\",\"delete_entity\":\"@.capitalize:{'words.generated.slet'} {entity}\",\"confirm_delete_entity\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} {entity}?\",\"field_required\":\"{field} @:{'words.generated.er'} @:{'words.generated.pakrævet'}\",\"no_entity_available\":\"@.capitalize:{'words.generated.ingen'} {entity} @:{'words.generated.tilgængelige'}.\"},\"limited_backoffice\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.title'}\",\"subtitle\":\"@:{'templates.generated.compat.limited_backoffice.subtitle'}\",\"department\":\"@:{'templates.generated.compat.limited_backoffice.department'}\",\"select_department\":\"@:{'templates.generated.compat.limited_backoffice.select_department'}\",\"loading\":\"@:{'templates.generated.compat.limited_backoffice.loading'}\",\"no_departments\":\"@:{'templates.generated.compat.limited_backoffice.no_departments'}\",\"cancel\":\"@:{'templates.generated.compat.limited_backoffice.cancel'}\",\"nav\":{\"prices\":\"@:{'templates.generated.compat.limited_backoffice.nav.prices'}\",\"customer_pricing\":\"@:{'templates.generated.compat.limited_backoffice.nav.customer_pricing'}\",\"employees\":\"@:{'templates.generated.compat.limited_backoffice.nav.employees'}\"},\"forbidden\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.forbidden.title'}\",\"department\":\"@:{'templates.generated.compat.limited_backoffice.forbidden.department'}\"},\"prices\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.prices.title'}\",\"save\":\"@:{'templates.generated.compat.limited_backoffice.prices.save'}\",\"saved\":\"@:{'templates.generated.compat.limited_backoffice.prices.saved'}\",\"autosave_saving\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_saving'}\",\"autosave_pending\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_pending'}\",\"autosave_saved\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_saved'}\",\"product\":\"@:{'templates.generated.compat.limited_backoffice.prices.product'}\",\"price\":\"@:{'templates.generated.compat.limited_backoffice.prices.price'}\",\"price_required\":\"@:{'templates.generated.compat.limited_backoffice.prices.price_required'}\",\"setup_required_title\":\"@:{'templates.generated.compat.limited_backoffice.prices.setup_required_title'}\",\"setup_required_message\":\"@:{'templates.generated.compat.limited_backoffice.prices.setup_required_message'}\",\"no_products\":\"@:{'templates.generated.compat.limited_backoffice.prices.no_products'}\"},\"employees\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.employees.title'}\",\"subtitle\":\"@:{'templates.generated.compat.limited_backoffice.employees.subtitle'}\",\"create_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.create_title'}\",\"edit_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.edit_title'}\",\"name\":\"@:{'templates.generated.compat.limited_backoffice.employees.name'}\",\"email\":\"@:{'templates.generated.compat.limited_backoffice.employees.email'}\",\"user_id\":\"@:{'templates.generated.compat.limited_backoffice.employees.user_id'}\",\"phone\":\"@:{'templates.generated.compat.limited_backoffice.employees.phone'}\",\"phone_validation\":\"@:{'templates.generated.compat.limited_backoffice.employees.phone_validation'}\",\"country_codes\":{\"denmark\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.denmark'}\",\"sweden\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.sweden'}\",\"norway\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.norway'}\",\"finland\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.finland'}\"},\"password\":\"@:{'templates.generated.compat.limited_backoffice.employees.password'}\",\"password_create_help\":\"@:{'templates.generated.compat.limited_backoffice.employees.password_create_help'}\",\"password_update_help\":\"@:{'templates.generated.compat.limited_backoffice.employees.password_update_help'}\",\"role\":\"@:{'templates.generated.compat.limited_backoffice.employees.role'}\",\"departments\":\"@:{'templates.generated.compat.limited_backoffice.employees.departments'}\",\"department_required\":\"@:{'templates.generated.compat.limited_backoffice.employees.department_required'}\",\"validation\":\"@:{'templates.generated.compat.limited_backoffice.employees.validation'}\",\"save\":\"@:{'templates.generated.compat.limited_backoffice.employees.save'}\",\"created\":\"@:{'templates.generated.compat.limited_backoffice.employees.created'}\",\"saved\":\"@:{'templates.generated.compat.limited_backoffice.employees.saved'}\",\"deactivated\":\"@:{'templates.generated.compat.limited_backoffice.employees.deactivated'}\",\"include_inactive\":\"@:{'templates.generated.compat.limited_backoffice.employees.include_inactive'}\",\"empty\":\"@:{'templates.generated.compat.limited_backoffice.employees.empty'}\",\"status\":\"@:{'templates.generated.compat.limited_backoffice.employees.status'}\",\"actions\":\"@:{'templates.generated.compat.limited_backoffice.employees.actions'}\",\"active\":\"@:{'templates.generated.compat.limited_backoffice.employees.active'}\",\"inactive\":\"@:{'templates.generated.compat.limited_backoffice.employees.inactive'}\",\"edit\":\"@:{'templates.generated.compat.limited_backoffice.employees.edit'}\",\"deactivate\":\"@:{'templates.generated.compat.limited_backoffice.employees.deactivate'}\",\"login_link\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link'}\",\"login_link_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_title'}\",\"login_link_qr_alt\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_qr_alt'}\",\"login_link_url\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_url'}\",\"copy_login_link\":\"@:{'templates.generated.compat.limited_backoffice.employees.copy_login_link'}\",\"login_link_copied\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_copied'}\"},\"roles\":{\"viewer\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.viewer.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.viewer.description'}\"},\"cashier\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.cashier.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.cashier.description'}\"},\"booking_coordinator\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.booking_coordinator.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.booking_coordinator.description'}\"},\"operations_lead\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.operations_lead.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.operations_lead.description'}\"},\"department_admin\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.department_admin.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.department_admin.description'}\"}},\"errors\":{\"load_departments\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_departments'}\",\"load_prices\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_prices'}\",\"save_prices\":\"@:{'templates.generated.compat.limited_backoffice.errors.save_prices'}\",\"load_employees\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}\",\"save_employee\":\"@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}\",\"deactivate_employee\":\"@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}\",\"generate_employee_login_link\":\"@:{'templates.generated.compat.limited_backoffice.errors.generate_employee_login_link'}\"},\"role_permissions\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.title'}\",\"tooltip\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.tooltip'}\",\"intro\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.intro'}\",\"scope\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.scope'}\",\"selected\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.selected'}\",\"close\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.close'}\",\"unavailable\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.unavailable'}\",\"groups\":{\"account\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.account'}\",\"orders\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.orders'}\",\"products\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.products'}\",\"customers\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.customers'}\",\"vehicles\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.vehicles'}\",\"attachments\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.attachments'}\",\"scanner\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.scanner'}\",\"bookings\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.bookings'}\",\"time_bookings\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.time_bookings'}\",\"reports\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.reports'}\",\"limited_backoffice\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}\",\"unknown\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.unknown'}\"},\"capabilities\":{\"sign_in\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}\"},\"view_own_permissions\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}\"},\"view_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}\"},\"create_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}\"},\"edit_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}\"},\"delete_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}\"},\"view_order_items\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}\"},\"create_order_items\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}\"},\"update_order_lines\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}\"},\"remove_order_lines\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}\"},\"charge_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}\"},\"complete_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.complete_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.complete_orders.description'}\"},\"view_product_catalog\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_catalog.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_catalog.description'}\"},\"view_product_recommendations\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_recommendations.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_recommendations.description'}\"},\"search_customers\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_customers.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_customers.description'}\"},\"view_customer_details\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_details.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_details.description'}\"},\"view_customer_notes\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_notes.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_notes.description'}\"},\"add_customer_notes\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_customer_notes.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_customer_notes.description'}\"},\"view_customer_flags\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_flags.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_flags.description'}\"},\"search_vehicles\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_vehicles.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_vehicles.description'}\"},\"view_vehicle_matches\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_matches.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_matches.description'}\"},\"view_vehicle_history\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_history.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_history.description'}\"},\"view_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_attachments.description'}\"},\"add_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_order_attachments.description'}\"},\"download_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.download_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.download_order_attachments.description'}\"},\"view_plate_scans\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_plate_scans.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_plate_scans.description'}\"},\"view_department_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}\"},\"view_own_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}\"},\"update_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}\"},\"create_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}\"},\"mark_bookings_complete\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}\"},\"send_booking_confirmations\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}\"},\"view_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}\"},\"create_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}\"},\"edit_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}\"},\"view_order_statistics\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}\"},\"view_booking_statistics\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}\"},\"open_limited_backoffice\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}\"},\"manage_department_prices\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}\"},\"view_customer_pricing\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_pricing.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_pricing.description'}\"},\"manage_customer_pricing\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_customer_pricing.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_customer_pricing.description'}\"},\"manage_employee_access\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}\"},\"unknown\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}\"}}}},\"redirect\":{\"mobile_department_auto_select\":{\"manual_button\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.afdeling'} manuelt\",\"manual_title\":\"@.capitalize:{'words.generated.vælg'} din @:{'words.generated.afdeling'}\",\"manual_loading\":\"@.capitalize:{'words.generated.indlæser'} afdelinger...\",\"use_department\":\"@.capitalize:{'words.generated.vælg'} {name}\"}},\"replication\":{\"host_targets\":{\"database\":\"@:{'words.replication.services.database'}-@:{'words.replication.host'}\",\"redis\":\"@:{'words.replication.services.redis'}-@:{'words.replication.host'}\",\"minio\":\"@:{'words.replication.services.minio'}-@:{'words.replication.host'}\"},\"host_mentions\":{\"primary_database\":\"@:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'templates.replication.host_targets.database'}\",\"redis\":\"@:{'words.replication.services.redis'}-@:{'words.replication.host'}@:{'words.replication.host_definite_suffix'}\",\"minio\":\"@:{'words.replication.services.minio'}-@:{'words.replication.host'}@:{'words.replication.host_definite_suffix'}\"},\"add_host\":\"@:{'words.generated.tilføj'} {host}\",\"register_host_when_reachable\":\"@:{'words.generated.tilføj'} {host} @:{'words.generated.i'} @:{'words.generated.superbrugerfladen'}, @:{'words.generated.nar'} @:{'words.replication.article.host_mention'} @:{'words.generated.kan'} @:{'words.generated.nas'}.\",\"register_host_when_reachable_with_space_requirement\":\"@:{'words.generated.tilføj'} {host} @:{'words.generated.i'} @:{'words.generated.superbrugerfladen'}, @:{'words.generated.nar'} @:{'words.replication.article.host_mention'} @:{'words.generated.kan'} @:{'words.generated.nas'}. @.capitalize:{'words.generated.klargøring'} @:{'words.generated.kræver'} @:{'words.generated.ledig'} @:{'words.generated.plads'} svarende @:{'words.generated.til'} kildebuckets plus 20%.\"},\"generated\":{\"compat\":{\"2fa\":{\"back_to_login\":\"@.capitalize:{'words.generated.tilbage'} @:{'words.generated.til'} @:{'words.generated.login'}\",\"code_label\":\"@.capitalize:{'words.generated.bekræftelseskode'}\",\"description\":\"@:{'words.generated.tilføj'} @:{'words.generated.et_2'} @:{'words.generated.ekstra'} sikkerhedslag @:{'words.generated.til'} @:{'words.generated.din'} @:{'words.generated.konto'} @:{'words.generated.ved'} @:{'words.generated.at'} kræve @:{'words.replication.host_definite_suffix'} @:{'words.generated.bekræftelseskode'} @:{'words.generated.ved'} @:{'words.generated.login'}.\",\"disable_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.deaktivere'} tofaktorgodkendelse? @.capitalize:{'words.generated.det'} @:{'words.generated.vil'} @:{'words.generated.gøre'} @:{'words.generated.din'} @:{'words.generated.konto'} @:{'words.generated.mindre'} @:{'words.generated.sikker'}.\",\"disable_error_title\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.deaktivere'}\",\"disable_title\":\"@.capitalize:{'words.generated.deaktiver'} @:{'words.generated.to'}-@:{'words.generated.faktor'}-@:{'words.generated.godkendelse'}\",\"disabled_message\":\"@.capitalize:{'words.generated.to'}-@:{'words.generated.faktor'}-@:{'words.generated.godkendelse'} @:{'words.generated.er'} @:{'words.generated.blevet'} @:{'words.generated.deaktiveret'} @:{'words.generated.for'} @:{'words.generated.din'} @:{'words.generated.konto'}.\",\"disabled_title\":\"@.capitalize:{'words.generated.to'}-@:{'words.generated.faktor'}-@:{'words.generated.godkendelse'} @:{'words.generated.deaktiveret'}\",\"enable_button\":\"@:{'templates.generated.compat.user_vehicles.activate'}\",\"enabled_message\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.konto'} @:{'words.generated.er'} @:{'words.generated.nu'} @:{'words.generated.beskyttet'} @:{'words.generated.med'} @:{'words.generated.to'}-@:{'words.generated.faktor'}-@:{'words.generated.godkendelse'}.\",\"enabled_title\":\"@.capitalize:{'words.generated.to'}-@:{'words.generated.faktor'}-@:{'words.generated.godkendelse'} @:{'words.generated.aktiveret'}\",\"enter_code\":\"@:{'words.generated.indtast'} @:{'words.generated.din'} @:{'words.generated.bekræftelseskode'}\",\"invalid_code\":\"@:{'words.generated.indtast'} @:{'words.generated.venligst'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.gyldig'} 6-cifret @:{'words.generated.kode'}.\",\"setup_error_title\":\"@.capitalize:{'words.generated.opsætning'} @:{'words.generated.mislykkedes'}\",\"setup_manual\":\"@.capitalize:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.ikke'} @:{'words.generated.scanne'}? @:{'words.generated.indtast'} @:{'words.generated.denne'} @:{'words.generated.kode'} @:{'words.generated.manuelt'}:\",\"setup_step1\":\"@.capitalize:{'words.generated.scan'} @:{'words.generated.denne'} @:{'words.generated.qr'}-@:{'words.generated.kode'} @:{'words.generated.med'} @:{'words.generated.din'} @:{'words.generated.godkendelsesapp'} (@:{'words.generated.google'} Authenticator, Authy, osv.):\",\"setup_step2\":\"@:{'words.generated.indtast'} @:{'words.replication.article.host_mention'} 6-@:{'words.generated.cifrede'} @:{'words.generated.kode'} @:{'words.generated.fra'} @:{'words.generated.din'} @:{'words.generated.godkendelsesapp'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.bekræfte'}:\",\"setup_title\":\"Opsæt @:{'words.generated.to'}-@:{'words.generated.faktor'}-@:{'words.generated.godkendelse'}\",\"status_disabled_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.to'}-@:{'words.generated.faktor'}-@:{'words.generated.godkendelse'} @:{'words.generated.for'} forbedret @:{'words.generated.sikkerhed'}.\",\"status_disabled\":\"@.capitalize:{'words.generated.to'}-@:{'words.generated.faktor'}-@:{'words.generated.godkendelse'} @:{'words.generated.er'} @:{'words.generated.deaktiveret'}\",\"status_enabled_desc\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.konto'} @:{'words.generated.er'} @:{'words.generated.beskyttet'} @:{'words.generated.med'} @:{'words.generated.et_2'} @:{'words.generated.ekstra'} bekræftelsestrin.\",\"status_enabled\":\"@.capitalize:{'words.generated.to'}-@:{'words.generated.faktor'}-@:{'words.generated.godkendelse'} @:{'words.generated.er'} @:{'words.generated.aktiveret'}\",\"title\":\"@:{'templates.generated.compat.settings.two_factor'}\",\"verification_success\":\"@.capitalize:{'words.generated.bekræftelse'} @:{'words.generated.gennemført'}!\",\"verify_button\":\"@:{'templates.generated.compat.common.confirm'}\",\"verify_description\":\"@:{'words.generated.indtast'} @:{'words.replication.article.host_mention'} 6-@:{'words.generated.cifrede'} @:{'words.generated.kode'} @:{'words.generated.fra'} @:{'words.generated.din'} @:{'words.generated.godkendelsesapp'}.\",\"verify_title\":\"@.capitalize:{'words.generated.to'}-@:{'words.generated.faktor'} @:{'words.generated.bekræftelse'}\"},\"about_us\":{\"solutions\":{\"customer\":{\"app_item1\":\"@:{'words.generated.find'} @:{'words.generated.nærmeste'} @:{'words.generated.vaskehal'}\",\"app_item2\":\"@:{'words.generated.benyt'} @.capitalize:{'words.generated.selv'} @.capitalize:{'words.generated.vask'} @:{'words.generated.udenfor'} @:{'words.generated.bemandet'} @:{'words.generated.abningstid'}\",\"app_item3\":\"@.capitalize:{'words.generated.book'} @:{'words.generated.vask'} @:{'words.generated.med'} @:{'words.generated.reference'} @:{'words.generated.nummer'}\",\"app_item4\":\"@.capitalize:{'words.generated.optjen'} @:{'words.generated.loyalitetspoint'}\",\"app_title\":\"@.capitalize:{'words.generated.app'} @:{'words.generated.til'} @:{'words.generated.chauffører'}\",\"portal_item1\":\"@:{'words.generated.tilføj'} @:{'words.generated.og'} @:{'words.generated.administrer'} @:{'words.generated.køretøjer'}\",\"portal_item3\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.data'} @:{'words.generated.for'} @:{'words.generated.historiske'} @:{'words.generated.vaske'}\",\"portal_title\":\"@:{'words.generated.kundeportal'} @:{'words.generated.til'} @:{'words.generated.disponenter'} @:{'words.generated.og'} @:{'words.generated.vognmænd'}:\",\"title\":\"@.capitalize:{'words.generated.digitale'} løsning @:{'words.generated.til'} @:{'words.generated.kunder'} @:{'words.generated.af'} @:{'words.generated.vaskehaller'}\"},\"operator\":{\"book_demo\":\"@.capitalize:{'words.generated.book'} demo\",\"module_item1\":\"@:{'words.generated.sæt'} @:{'words.generated.priser'} @:{'words.generated.produkter'}, @:{'words.generated.abningstider'}, @:{'words.generated.medarbejdere'}\",\"module_item3\":\"@.capitalize:{'words.generated.oprette'} @:{'words.generated.nye'} @:{'words.generated.kunder'} @:{'words.generated.med'} tilhørende @:{'words.generated.nummerplader'}\",\"module_title\":\"Styringsmodul @:{'words.generated.til'} @:{'words.generated.vaskehals'} @:{'words.generated.operatører'}:\",\"pos_item1\":\"Indskriv @:{'words.generated.køretøjer'} @:{'words.generated.hurtigt'} @:{'words.generated.med'} @:{'words.generated.scanning'} @:{'words.generated.af'} @:{'words.generated.nummerplade'}\",\"pos_item2\":\"@:{'words.generated.tilføj'} @:{'words.generated.billeder'} @:{'words.generated.og'} @:{'words.generated.reference'} @:{'words.generated.nummer'} @:{'words.generated.til'} indskrivning\",\"pos_item3\":\"@:{'words.generated.handter'} @:{'words.generated.bookinger'} @:{'words.generated.med'} @:{'words.generated.et'} @:{'words.generated.klik'} (@:{'words.generated.inkl'}. @:{'words.generated.automatisk'} @:{'words.generated.generering'} @:{'words.generated.af'} @:{'words.generated.vaskecertifikat'})\",\"pos_item4\":\"Adminitrerer @:{'words.generated.vaskelog'} @:{'words.generated.og'} @:{'words.generated.bookinger'}\",\"pos_item5\":\"@.capitalize:{'words.generated.se'} dashboards @:{'words.generated.for'} @:{'words.generated.afdelingens'} performance\",\"pos_title\":\"Indskrivnings- @:{'words.generated.og'} @:{'words.generated.kassesystem'} @:{'words.generated.til'} @:{'words.generated.vognvaskere'}\",\"title\":\"@.capitalize:{'words.generated.digitale'} @:{'words.generated.løsninger'} @:{'words.generated.til'} @:{'words.generated.vaskehals'} @:{'words.generated.operatører'}\"},\"title\":\"@.capitalize:{'words.generated.vores'} @:{'words.generated.løsninger'}\"},\"team\":{\"jeppe\":{\"role\":\"@:{'words.generated.it'} chef\"},\"mads\":{\"role\":\"Direktør\"},\"mikkel\":{\"role1\":\"Grundlægger\",\"role2\":\"Forretningsudvikling\"},\"title\":\"Team\"},\"vision\":{\"developed_title\":\"@.capitalize:{'words.generated.derfor'} @:{'words.generated.har'} @:{'words.generated.vi'} udviklet:\",\"item1\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.portal'} @:{'words.generated.til'} @:{'words.generated.vognmænd'} @:{'words.generated.og'} @:{'words.generated.disponenter'}, @:{'words.generated.hvor'} @:{'words.generated.de'} @:{'words.generated.kan'} @:{'words.generated.handtere'} @:{'words.generated.alt'} @:{'words.generated.omkring'} deres @:{'words.generated.vaske'}\",\"item2\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.app'} @:{'words.generated.til'} @:{'words.generated.chauffører'}, @:{'words.generated.hvor'} @:{'words.generated.de'} @:{'words.generated.kan'} @:{'words.generated.booke'}, @:{'words.generated.vaske'} @:{'words.generated.og'} optjene @:{'words.generated.loyalitetspoint'}\",\"item3\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.portal'} @:{'words.generated.til'} vaskeoperatører, @:{'words.generated.hvor'} @:{'words.generated.de'} @:{'words.generated.kan'} @:{'words.generated.handtere'} @:{'words.generated.alle'} aspekter @:{'words.generated.omkring'} driften @:{'words.generated.af'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vaskehal'}\",\"item4\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.app'} @:{'words.generated.til'} @:{'words.generated.vognvaskere'}, @:{'words.generated.hvor'} @:{'words.generated.de'} @:{'words.generated.kan'} indskrive @:{'words.generated.køretøjer'}, @:{'words.generated.lave'} @:{'words.generated.vaskecertifikater'}, @:{'words.generated.tage'} @:{'words.generated.imod'} @:{'words.generated.betalinger'} etc.\",\"paragraph1\":\"@.capitalize:{'words.generated.siden'} 2023 @:{'words.generated.har'} holdet @:{'words.generated.bag'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} arbejdet @:{'words.generated.imod'} @:{'words.generated.visionen'} @:{'words.generated.om'} @:{'words.generated.at'} skabe @:{'words.generated.et'} @:{'words.generated.system'}, @:{'words.generated.hvor'} @:{'words.generated.alle'} @:{'words.generated.relevante'} arbejdsgange @:{'words.generated.til'} @:{'words.generated.lastbilvask'} digitaliseres @:{'words.generated.og'} sammenkobles @:{'words.generated.for'} @:{'words.generated.at'} lette dagligdagen @:{'words.generated.for'} @:{'words.generated.alle'} @:{'words.generated.interessenter'} – @:{'words.generated.vognmænd'}, @:{'words.generated.disponenter'}, @:{'words.generated.chauffører'}, vaskehalsoperatører @:{'words.generated.og'} @:{'words.generated.vognvaskere'}.\",\"paragraph2\":\"@.capitalize:{'words.generated.vi'} driver Danmarks største kæde @:{'words.generated.for'} @:{'words.generated.lastbilvask'} @:{'words.generated.og'} @:{'words.generated.har'} @:{'words.generated.derfor'} dyb indblik @:{'words.generated.i'} branchen. @.capitalize:{'words.generated.det'} betyder, @:{'words.generated.at'} @:{'words.generated.vi'} @:{'words.generated.kan'} udvikle @:{'words.generated.it'} @:{'words.generated.løsninger'}, @:{'words.generated.der'} tilfredsstiller behovene blandt @:{'words.generated.alle'} @:{'words.generated.interessenter'}\",\"title\":\"@.capitalize:{'words.generated.visionen'} @:{'words.generated.bag'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}\"}},\"admin\":{\"bookings\":{\"certificate_overview\":{\"subtitle\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.vaskecertifikater'}\",\"title\":\"Vaskecertifikatoversigt\"},\"complete\":{\"subtitle\":\"@:{'words.generated.fuldfør'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.booking'}\",\"title\":\"@:{'templates.generated.compat.bookings.complete_booking'}\"},\"legacy\":{\"subtitle\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.bookinger'} (@:{'words.generated.ældre'})\",\"title\":\"@.capitalize:{'words.generated.bookinger'} (@:{'words.generated.ældre'})\"}},\"daily_report\":{\"navigation\":{\"title\":\"Navigasjon\"},\"object\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.dagsrapport'} @:{'words.generated.detaljer'}\",\"title\":\"@.capitalize:{'words.generated.dagsrapport'} @:{'words.generated.detaljer'}\"},\"product_sales\":{\"subtitle_suffix\":\"@:{'words.generated.salg'} @:{'words.generated.af'} produktet\",\"title\":\"Produktsalg\"},\"product_targets\":{\"cancel_aria\":\"Annuller mål\",\"edit_aria\":\"Rediger målprocent\",\"input_label\":\"Målprocent\",\"save_aria\":\"Gem mål\",\"save_error\":\"Målet kunne ikke gemmes.\",\"validation_range\":\"Målprocenten skal være mellem 0 og 100.\"},\"reports\":{\"bookings\":{\"completed_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.fuldførte'}\",\"possible_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.mulige'}\"},\"night_washes\":{\"chart_title\":\"@:{'words.generated.døgnvask'} @:{'words.generated.pr'}. @:{'words.generated.dag'}\",\"subtitle\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.vaske'} @:{'words.generated.udenfor'} @:{'words.generated.abningstid'}\",\"title\":\"@:{'templates.generated.compat.customer_creation.driver.benefit_24h'}\",\"warning_missing_opening_hours\":\"@.capitalize:{'words.generated.abningstider'} @:{'words.generated.mangler'} @:{'words.generated.for'}: {departments}\"},\"products_sold\":{\"possible_sold\":\"@.capitalize:{'words.generated.mulige'} @:{'words.generated.solgte'}\",\"quantity_sold\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.solgte'}\",\"sold\":\"@.capitalize:{'words.generated.solgte'}\",\"subtitle\":\"@:{'words.generated.produkter'} @:{'words.generated.solgt'}\",\"title\":\"@.capitalize:{'words.generated.produkter'} @:{'words.generated.solgt'}\"},\"revenue\":{\"possible_revenue\":\"@.capitalize:{'words.generated.mulige'} @:{'words.generated.omsætning'}\"},\"transactions\":{\"possible_transactions\":\"@.capitalize:{'words.generated.mulige'} @:{'words.generated.transaktioner'}\",\"subtitle\":\"@:{'words.generated.transaktioner'}\",\"title\":\"@.capitalize:{'words.generated.transaktioner'}\",\"transaction_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.transaktioner'}\"},\"washes\":{\"completed_washes\":\"Udførte @:{'words.generated.vaske'}\",\"possible_washes\":\"@.capitalize:{'words.generated.mulige'} @:{'words.generated.vaske'}\",\"subtitle\":\"@:{'words.generated.vaske'}\"},\"water_usage_per_wash\":{\"avg_water_usage\":\"@.capitalize:{'words.generated.gns'}. @:{'words.generated.vandforbrug'} @:{'words.generated.pr'}. @:{'words.generated.vask'}\",\"subtitle\":\"@:{'words.generated.vandforbrug'} @:{'words.generated.pr'}. @:{'words.generated.vask'}\",\"title\":\"@.capitalize:{'words.generated.vandforbrug'} @:{'words.generated.pr'}. @:{'words.generated.vask'}\"},\"water_usage\":{\"subtitle\":\"@:{'words.generated.vandforbrug'}\",\"water_usage\":\"@.capitalize:{'words.generated.vandforbrug'}\"}},\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.dagens'} @:{'words.generated.rapport'}\",\"tabs\":{\"previous_report\":\"@.capitalize:{'words.generated.tidligere'} @:{'words.generated.rapport'}\",\"todays_report\":\"@.capitalize:{'words.generated.dagens'} @:{'words.generated.rapport'}\"},\"title\":\"@.capitalize:{'words.generated.dagsrapport'}\",\"titles\":{\"operations\":\"Drift\",\"optional_products\":\"Tilvalgsprodukter\"},\"today_form\":{\"title\":\"@.capitalize:{'words.generated.dagens'} @:{'words.generated.formular'}\"},\"todays_prefix\":\"@.capitalize:{'words.generated.dagens'}\",\"update_report\":\"@:{'words.generated.opdater'} @:{'words.generated.rapport'}\",\"update_todays_report\":\"@:{'words.generated.opdater'} @:{'words.generated.dagens'} @:{'words.generated.rapport'}\"},\"debug\":{\"reader_test\":{\"subtitle\":\"@.capitalize:{'words.generated.test'} læserens pålidelighed\",\"title\":\"Pålidelighedstest @:{'words.generated.af'} læser\"}},\"department_modules\":{\"bookings\":{\"description\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.bookinger'}\"},\"daily_report\":{\"description\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.dagsrapport'}\"},\"goals\":{\"description\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.mal'}\"},\"pos\":{\"description\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.pos'}-@:{'words.generated.systemet'}\"},\"self_wash\":{\"description\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.selvvask'}\",\"disabled\":\"@.capitalize:{'words.generated.selvvask'} @:{'words.generated.er'} @:{'words.generated.nu'} @:{'words.generated.deaktiveret'}\",\"enabled\":\"@.capitalize:{'words.generated.selvvask'} @:{'words.generated.er'} @:{'words.generated.nu'} @:{'words.generated.aktiveret'}\",\"update_error\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} opdatere selvvaskstatus\"}},\"errors\":{\"select_department\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.venligst'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.afdeling'}, @:{'words.generated.som'} @:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.adgang'} @:{'words.generated.til'}. @.capitalize:{'words.generated.hvis'} @:{'words.generated.du'} mener, @:{'words.generated.at'} @:{'words.generated.dette'} @:{'words.generated.er'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'}, @:{'words.generated.sa'} @:{'words.generated.kontakt'} @:{'words.generated.support'}.\"},\"goals\":{\"form\":{\"edit_title\":\"@:{'words.generated.rediger'} @:{'words.generated.mal'}\",\"target_duration_every\":{\"help\":\"@.capitalize:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.weeks'}, @:{'words.generated.months'}, @:{'words.generated.and'} @:{'words.generated.years'}.\",\"label\":\"Every\",\"placeholder\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 1\"},\"target_duration\":{\"help\":\"Choose how @:{'words.generated.target'} values should @:{'words.generated.be'} evaluated.\",\"label\":\"@.capitalize:{'words.generated.target'} @:{'words.generated.duration'}\",\"modes\":{\"entire_duration\":\"@.capitalize:{'words.generated.entire'} @:{'words.generated.duration'}\",\"legacy\":\"Daily based on @:{'words.generated.entire'} @:{'words.generated.duration'} (@:{'words.generated.from'} @:{'words.generated.start'} @:{'words.generated.to'} @:{'words.generated.end'})\",\"months\":\"@.capitalize:{'words.generated.months'}\",\"weeks\":\"@.capitalize:{'words.generated.weeks'}\",\"years\":\"@.capitalize:{'words.generated.years'}\"}},\"title\":\"@:{'words.generated.opret'} @:{'words.generated.mal'}\",\"validation\":{\"date_range_invalid\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.and'} @:{'words.generated.end'} dates @:{'words.generated.are'} @:{'words.generated.invalid'}.\",\"departments_required\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.at'} @:{'words.generated.least'} @:{'words.generated.one'} @:{'words.generated.department'}.\",\"target_duration_every_required\":\"@:{'words.generated.enter'} @:{'words.generated.a'} cadence @:{'words.generated.value'} @:{'words.generated.of'} @:{'words.generated.at'} @:{'words.generated.least'} 1.\",\"target_required\":\"@:{'words.generated.enter'} @:{'words.generated.a'} @:{'words.generated.valid'} @:{'words.generated.target'} @:{'words.generated.value'}.\"}},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.afdelingens'} @:{'words.generated.mal'}\",\"test_alert\":{\"department_id\":\"@.capitalize:{'words.generated.department'} @.upper:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.slack'} @:{'words.generated.webhook'}\",\"destination\":\"Override @:{'words.generated.destination'}\",\"email_to\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.recipient'}\",\"error\":\"Could @:{'words.generated.not'} @:{'words.generated.send'} @:{'words.generated.test'} @:{'words.generated.alert'}.\",\"send\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.test'} @:{'words.generated.alert'}\",\"slack_help\":\"@:{'words.generated.provide'} @:{'words.generated.a'} @:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'} @:{'words.generated.or'} @:{'words.generated.a'} @:{'words.generated.department'} @.upper:{'words.generated.id'}.\",\"slack_webhook\":\"@:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'}\",\"sms_help\":\"Use comma @:{'words.generated.or'} semicolon @:{'words.generated.to'} @:{'words.generated.separate'} phone numbers.\",\"sms_to\":\"@:{'words.generated.sms'} recipients\",\"subject\":\"@.capitalize:{'words.generated.email'} subject (@:{'words.generated.optional'})\",\"success\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.alert'} sent @:{'words.generated.via'} {destination}.\",\"validation\":{\"email_required\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.recipient'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @.upper:{'words.generated.email'} @:{'words.generated.destination'}.\",\"invalid_destination\":\"Please @:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.valid'} @:{'words.generated.destination'}.\",\"slack_target_required\":\"@:{'words.generated.provide'} @:{'words.generated.a'} @:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'} @:{'words.generated.or'} @:{'words.generated.department'} @.upper:{'words.generated.id'} @:{'words.generated.for'} @.upper:{'words.generated.slack'} @:{'words.generated.destination'}.\",\"sms_required\":\"@.capitalize:{'words.generated.at'} @:{'words.generated.least'} @:{'words.generated.one'} @:{'words.generated.sms'} @:{'words.generated.recipient'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.sms'} @:{'words.generated.destination'}.\"}},\"title\":\"@.capitalize:{'words.generated.mal'}\"},\"intranet\":{\"events\":{\"title\":\"@.capitalize:{'words.generated.begivenheder'}\"},\"import_events\":{\"title\":\"@:{'words.generated.importer'} @:{'words.generated.begivenheder'}\"},\"subtitle\":\"@.capitalize:{'words.generated.afdelingens'} @:{'words.generated.intranet'}\",\"title\":\"@.capitalize:{'words.generated.intranet'}\"},\"notifications\":{\"sms_activated_description\":\"Aktiverede @:{'words.generated.telefonnumre'} @:{'words.generated.vil'} @:{'words.generated.modtage'} @:{'words.generated.sms'}-@:{'words.generated.notifikationer'} @:{'words.generated.nar'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kunde'} laver @:{'words.replication.host_definite_suffix'} @:{'words.generated.booking'}.\",\"sms_overview\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.afdelingens'} @:{'words.generated.sms'}-notifikations @:{'words.generated.telefonnumre'}.\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.notifikationer'}\"},\"order_bookings\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.ordrebookinger'}\",\"title\":\"@.capitalize:{'words.generated.ordrebookinger'}\"},\"overview\":{\"reports\":{\"title\":\"@.capitalize:{'words.generated.rapporter'}\"},\"subtitle\":\"Afdelingsoversigt\"},\"pos\":{\"action_buttons\":{\"add_customer_desc\":\"@:{'words.generated.tilføj'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.kunde'}\",\"cancel_desc\":\"@:{'words.generated.annuller'} @:{'words.generated.handlingen'}\",\"close_desc\":\"@:{'words.generated.luk'} vinduet\",\"confirm_desc\":\"@.capitalize:{'words.generated.bekræft'} @:{'words.generated.handlingen'}\",\"edit_reference\":\"@:{'words.generated.rediger'} @:{'words.generated.reference'}\",\"edit_reference_desc\":\"@:{'words.generated.rediger'} ordrens @:{'words.generated.reference'}\",\"select_customer_desc\":\"@.capitalize:{'words.generated.vælg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kunde'} @:{'words.generated.til'} @:{'words.generated.ordren'}\"},\"add_customer\":\"@:{'words.generated.tilføj'} @:{'words.generated.kunde'}\",\"add_more_items\":\"@:{'words.generated.tilføj'} @:{'words.generated.flere'} @:{'words.generated.varer'}\",\"attachment\":\"@.capitalize:{'words.generated.vedhæftning'}\",\"attachments\":\"Vedhæftninger\",\"attachments_add\":\"@:{'words.generated.tilføj'} @:{'words.generated.vedhæftning'}\",\"attachments_no_preview\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.forhandsvisning'} @:{'words.generated.tilgængelig'} @:{'words.generated.for'} @:{'words.generated.denne'} filtype.\",\"attachments_office_preview_unavailable\":\"@.capitalize:{'words.generated.forhandsvisning'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.tilgjengelig'} @:{'words.generated.for'} Office-dokumenter. @:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.for'} @:{'words.generated.a_2'} @:{'words.generated.se'}.\",\"attachments_upload_action\":\"@:{'templates.generated.compat.common.upload'}\",\"attachments_upload_description\":\"@.capitalize:{'words.generated.upload'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.fil'} @:{'words.generated.som'} @:{'words.generated.vedhæftning'} @:{'words.generated.til'} @:{'words.generated.denne'} @:{'words.generated.transaktion'}.\",\"attachments_upload_error\":\"@.capitalize:{'words.generated.fejl'} @:{'words.generated.ved'} @:{'words.generated.upload'} @:{'words.generated.af'} @:{'words.generated.vedhæftet'} @:{'words.generated.fil'}.\",\"buttons\":{\"delete_all\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.alle'}\",\"go_back\":\"@:{'templates.generated.compat.pos.go_back'}\",\"please_wait\":\"@:{'templates.generated.compat.messages.please_wait'}\",\"print_invoice\":\"@:{'words.generated.udskriv'} @:{'words.generated.faktura'}\"},\"cancel\":\"@:{'templates.generated.compat.common.cancel'}\",\"cancel_booking_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} annullere @:{'words.generated.bookingen'}?\",\"cart\":\"@.capitalize:{'words.generated.kurv'}\",\"company_phone\":\"Virksomhedstelefon\",\"contact_email\":\"@.capitalize:{'words.generated.kontakt'}-@:{'words.generated.e'}-@:{'words.generated.mail'}\",\"contact_phone\":\"Kontakttelefon\",\"ean\":\"EAN\",\"created_by\":\"@.capitalize:{'words.generated.oprettet'} @:{'words.generated.af'}\",\"customer_conflict\":{\"help_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.indtastede'} @:{'words.generated.nummerplade'} @:{'words.generated.tilhører'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.anden'} @:{'words.generated.gemt'} @:{'words.generated.kunde'}. @.capitalize:{'words.generated.vælg'} @:{'words.generated.om'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.kunde'} @:{'words.generated.skal'} @:{'words.generated.beholdes'}, @:{'words.generated.eller'} @:{'words.generated.om'} @:{'words.generated.der'} @:{'words.generated.skal'} @:{'words.generated.skiftes'} @:{'words.generated.til'} @:{'words.generated.køretøjets'} @:{'words.generated.kunde'}.\",\"warning_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.kunde'} @:{'words.generated.og'} @:{'words.generated.køretøjets'} @:{'words.generated.kunde'} @:{'words.generated.matcher'} @:{'words.generated.ikke'}.\"},\"details\":\"@:{'templates.generated.compat.common.details'}\",\"drafts_assignment\":{\"button\":\"@:{'words.generated.tildel'} @:{'words.generated.kunde'}\",\"create_invoice_collection\":\"@:{'words.generated.opret'} @:{'words.generated.fakturasamling'}\",\"customer_required\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.først'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kunde'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.se'} @:{'words.generated.fakturasamlinger'}.\",\"error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} @:{'words.generated.tildeling'} @:{'words.generated.af'} @:{'words.generated.kunde'}.\",\"invoice_collection_empty\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.blev'} @:{'words.generated.ikke'} @:{'words.generated.fundet'} @:{'words.generated.nogen'} @:{'words.generated.ikke'}-@:{'words.generated.bogførte'} @:{'words.generated.fakturasamlinger'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.kunde'}.\",\"invoice_collection_label\":\"@:{'templates.generated.compat.global.collection'}\",\"invoice_collection_loading\":\"@.capitalize:{'words.generated.indlæser'} @:{'words.generated.fakturasamlinger'}...\",\"invoice_collection_total\":\"@:{'templates.generated.compat.objects.columns.total_net_amount'}\",\"new_collection_description\":\"@.capitalize:{'words.generated.oprettet'} @:{'words.generated.fra'} kladdeoversigten\",\"new_collection_name\":\"@:{'words.generated.manuel'} @:{'words.generated.fakturasamling'}\",\"recalculate_prices\":\"Genberegn @:{'words.generated.priser'} @:{'words.generated.med'} @:{'words.generated.kundens'} rabatter\",\"recalculate_prices_help\":\"@:{'words.generated.anvend'} @:{'words.generated.afdelingens'} @:{'words.generated.priser'} @:{'words.generated.og'} eventuelle @:{'words.generated.kunderabatter'} @:{'words.generated.pa'} @:{'words.generated.alle'} @:{'words.generated.ordrelinjer'}.\",\"search_customer_placeholder\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.kundenavn'} @:{'words.generated.eller'} @:{'words.generated.kundenummer'}\",\"selected_customer\":\"@:{'templates.generated.compat.common.customer_picker.selected_customer'}\",\"subtitle\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.kunde'} @:{'words.generated.og'} @:{'words.generated.fakturasamling'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.flytte'} @:{'words.generated.kladde'} #{orderId} @:{'words.generated.ud'} @:{'words.generated.af'} kladdekunden.\",\"success\":\"@.capitalize:{'words.generated.kunden'} @:{'words.generated.blev'} @:{'words.generated.tildelt'} @:{'words.generated.kladden'}.\",\"title\":\"@:{'words.generated.tildel'} @:{'words.generated.kunde'} @:{'words.generated.til'} @:{'words.generated.kladde'}\"},\"duplicate_order_warning\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.dette'} @:{'words.generated.ikke'} @:{'words.generated.allerede'} @:{'words.generated.er'} @:{'words.generated.oprettet'}? @.capitalize:{'words.generated.mulige'} @:{'words.generated.dubletter'} @:{'words.generated.af'} @:{'words.generated.denne'} @:{'words.generated.ordre'} @:{'words.generated.er'} @:{'words.generated.fundet'}. @.capitalize:{'words.generated.du'} @:{'words.generated.kan'} @:{'words.generated.fortsætte'} @:{'words.generated.med'} @:{'words.generated.at'} @:{'words.generated.oprette'} @:{'words.generated.ordren'} @:{'words.generated.eller'} @:{'words.generated.se'} @:{'words.generated.ordredetaljer'}.\",\"duplicates\":{\"subtitle\":\"@:{'words.generated.handter'} @:{'words.generated.dubletter'}\"},\"enter_safety_seal_number\":\"@:{'words.generated.indtast'} sikkerhedsforseglingsnummer\",\"hide_order_details\":\"@:{'words.generated.skjul'} @:{'words.generated.ordredetaljer'}\",\"invoice_email\":\"@.capitalize:{'words.generated.faktura'}-@:{'words.generated.e'}-@:{'words.generated.mail'}\",\"make\":\"Mærke\",\"model\":\"Modell\",\"no_content_available\":\"@:{'words.generated.intet'} @:{'words.generated.indhold'} @:{'words.generated.tilgængeligt'}.\",\"no_plates_found\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.nummerplader'} @:{'words.generated.blev'} @:{'words.generated.fundet'}\",\"no_wash_certificate\":\"@:{'words.generated.intet'} @:{'words.generated.vaskecertifikat'}\",\"not_found\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.fundet'}\",\"order_booking_selector\":{\"continue_without_booking\":\"@.capitalize:{'words.generated.fortsæt'} @:{'words.generated.uden'} @:{'words.generated.booking'}\",\"help_text\":\"@.capitalize:{'words.generated.flere'} ventende @:{'words.generated.bookinger'} @:{'words.generated.matcher'} @:{'words.generated.dette'} @:{'words.generated.køretøj'}. @.capitalize:{'words.generated.vælg'} @:{'words.replication.article.host_mention'} korrekte @:{'words.generated.booking'} @:{'words.generated.eller'} @:{'words.generated.fortsæt'} @:{'words.generated.uden'} @:{'words.generated.booking'}.\",\"title\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.booking'}\"},\"order_note\":\"Ordrenote\",\"orders\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.ordrer'}\"},\"pay_with_stripe\":\"@:{'words.generated.betal'} @:{'words.generated.med'} @:{'words.generated.stripe'}\",\"po_number\":\"@:{'words.generated.po'} @.capitalize:{'words.generated.nummer'}\",\"price_changed_from\":\"@:{'words.generated.prisen'} @:{'words.generated.er'} @:{'words.generated.ændret'} @:{'words.generated.fra'} {from} @:{'words.generated.dkk'} @:{'words.generated.til'} {to} @:{'words.generated.dkk'} / @:{'words.generated.enhed'} ({total} @:{'words.generated.dkk'} @:{'words.generated.total'})\",\"recent_scan_details_empty\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.ingen'} @:{'words.generated.køretøjsdetaljer'} @:{'words.generated.til'} @:{'words.generated.denne'} @:{'words.generated.skanning'}.\",\"recent_scan_details_error\":\"@.capitalize:{'words.generated.køretøjsdetaljer'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.hentes'}. @.capitalize:{'words.generated.prøv'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.anden'} @:{'words.generated.skanning'}.\",\"recent_scan_details_loading\":\"@.capitalize:{'words.generated.henter'} @:{'words.generated.køretøjsdetaljer'}...\",\"recent_scans\":\"Nylige skanninger\",\"recent_scans_helper\":\"@.capitalize:{'words.generated.vælg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.nummerplade'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.se'} @:{'words.generated.køretøjsdetaljer'}.\",\"reference_cannot_be_empty\":\"@.capitalize:{'words.generated.reference'} @:{'words.generated.ma'} @:{'words.generated.ikke'} @:{'words.generated.være'} @:{'words.generated.tom'}\",\"reference_required_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.kunde'} @:{'words.generated.kræver'} @:{'words.generated.et_2'} @:{'words.generated.referencenummer'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.fortsætte'}. @:{'words.generated.indtast'} @:{'words.generated.et_2'} @:{'words.generated.referencenummer'} @:{'words.generated.nedenfor'}:\",\"reference_required_title\":\"@.capitalize:{'words.generated.referencenummer'} @:{'words.generated.pakrævet'}\",\"reference_required_tooltip\":\"@.capitalize:{'words.generated.kunden'} @:{'words.generated.kræver'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.reference'}.\",\"safety_seal\":\"Sikkerhedsforsegling\",\"scanned\":\"Scannet\",\"scanner\":\"Skanner\",\"see_note\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.note'}\",\"see_reference\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.reference'}\",\"settings\":\"@:{'templates.generated.compat.common.settings'}\",\"settings_wheel\":{\"add_flag\":\"@:{'words.generated.tilføj'} @:{'words.generated.flag'}\",\"add_flag_order\":\"@:{'words.generated.hele'} @:{'words.generated.ordren'}\",\"add_flag_order_customer\":\"Ordrekunde\",\"add_flag_order_item\":\"@:{'words.generated.hele'} ordrelinjen\",\"add_flag_order_item_notes\":\"Ordrelinjenoter\",\"add_flag_order_item_price\":\"Ordrelinjepris\",\"add_flag_order_item_quantity\":\"Ordrelinjeantal\",\"add_flag_order_item_reference\":\"Ordrelinjereference\",\"add_flag_order_notes\":\"Ordrenoter\",\"add_flag_order_po\":\"@.capitalize:{'words.generated.ordre'}-@:{'words.generated.po'}-@:{'words.generated.nummer'}\",\"add_flag_order_reference\":\"Ordrereference\",\"add_flag_reason_placeholder\":\"@.capitalize:{'words.generated.arsag'} @:{'words.generated.til'} flaget\",\"add_flag_reason_required\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.arsag'} @:{'words.generated.er'} @:{'words.generated.pakrævet'}.\",\"add_flag_target\":\"@.capitalize:{'words.generated.valgte'} element\",\"add_gate\":\"@:{'words.generated.tilføj'} @:{'words.generated.port'}\",\"add_relay\":\"@:{'words.generated.tilføj'} @:{'words.generated.relæ'}\",\"attach_wash_certificate\":\"@:{'words.generated.vedhæft'} @:{'words.generated.vaskecertifikat'}\",\"attached_files\":\"@:{'words.generated.vedhæftede'} @:{'words.generated.filer'}\",\"change_association\":\"@:{'words.generated.skift'} @:{'words.generated.tilknytning'}\",\"change_invoice_collection\":\"@:{'words.generated.skift'} @:{'words.generated.fakturasamling'}\",\"change_order\":\"@:{'words.generated.skift'} {order}\",\"copy_link\":\"@:{'words.generated.kopier'} @:{'words.generated.link'}\",\"delete_booking\":\"@:{'templates.generated.compat.bookings.delete_booking'}\",\"delete_user\":\"@:{'templates.generated.compat.superuser_dashboard.users.delete'}\",\"download_invoice\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.faktura'}\",\"edit_permissions\":\"@:{'words.generated.rediger'} @:{'words.generated.tilladelser'}\",\"enter_password\":\"@:{'words.generated.indtast'} @:{'words.generated.adgangskode'}\",\"error_changing_password\":\"@.capitalize:{'words.generated.fejl'} @:{'words.generated.ved'} ændring @:{'words.generated.af'} @:{'words.generated.adgangskode'}\",\"error_downloading_attachment\":\"@.capitalize:{'words.generated.fejl'} @:{'words.generated.ved'} @:{'words.generated.download'} @:{'words.generated.af'} @:{'words.generated.vedhæftet'} @:{'words.generated.fil'}\",\"flags_section\":\"@.capitalize:{'words.generated.flag'}\",\"gates_section\":\"@.capitalize:{'words.generated.porte'}\",\"link_copied\":\"@.capitalize:{'words.generated.link'} @:{'words.generated.kopieret'}\",\"login_as_customer\":\"@:{'templates.generated.compat.global.login_as_customer'}\",\"login_as_user\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'} @:{'words.generated.som'} @:{'words.generated.bruger'}\",\"login_as_user_qr\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'} @:{'words.generated.som'} @:{'words.generated.bruger'} (@:{'words.generated.qr'})\",\"no_actions_defined\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.handlinger'} defineret\",\"open_attached_file\":\"?@:{'words.generated.bn'} vedh?ftet @:{'words.generated.fil'} #{id}\",\"open_fleet_landing\":\"@:{'words.generated.abn'} @:{'words.generated.gateway'}-@:{'words.generated.oversigt'}\",\"open_gates_tab\":\"@:{'words.generated.abn'} @:{'words.generated.porte'}-@:{'words.generated.fane'}\",\"open_gateways_tab\":\"@:{'words.generated.abn'} @:{'words.generated.gateway'}-@:{'words.generated.fane'}\",\"open_hardware_workspace_lanes\":\"@:{'words.generated.abn'} hardware-arbejdsområde (baner)\",\"open_legacy_gates\":\"@:{'words.generated.abn'} @:{'words.generated.ældre'} @:{'words.generated.porte'}\",\"open_legacy_relays\":\"@:{'words.generated.abn'} @:{'words.generated.ældre'} @:{'words.generated.relæer'}\",\"open_legacy_self_serve\":\"@:{'words.generated.abn'} @:{'words.generated.ældre'} @:{'words.generated.selvvask'}\",\"open_primary_gateway\":\"@:{'words.generated.abn'} @:{'words.generated.primær'} @:{'words.generated.gateway'}\",\"open_relays_tab\":\"@:{'words.generated.abn'} @:{'words.generated.relæ'}-@:{'words.generated.fane'}\",\"open_studio\":\"@:{'words.generated.abn'} @:{'words.generated.studio'}\",\"password_changed\":\"@.capitalize:{'words.generated.adgangskode'} @:{'words.generated.ændret'}\",\"password_changed_text\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.adgangskode'} @:{'words.generated.er'} @:{'words.generated.blevet'} @:{'words.generated.ændret'}\",\"please_enter_password\":\"@:{'words.generated.indtast'} @:{'words.generated.venligst'} @:{'words.generated.adgangskode'}\",\"relays_section\":\"@.capitalize:{'words.generated.relæer'}\",\"rules_section\":\"@:{'templates.generated.compat.modals.rules'}\",\"scan_qr_to_login\":\"@.capitalize:{'words.generated.scan'} @:{'words.generated.qr'}-@:{'words.generated.kode'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.logge'} @:{'words.generated.ind'}\",\"self_serve_studio_section\":\"@.capitalize:{'words.generated.selvvask'} @:{'words.generated.studio'}\",\"shortcut_pricing\":\"@:{'templates.generated.compat.global.prices'}\",\"shortcuts_section\":\"@.capitalize:{'words.generated.genveje'}\",\"show_customer\":\"@:{'words.generated.vis'} @:{'words.generated.kunde'}\",\"show_qr_code\":\"@:{'words.generated.vis'} @:{'words.generated.qr'}-@:{'words.generated.kode'}\",\"view_booking_new_tab\":\"@:{'words.generated.abn'} @:{'words.generated.booking'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"view_customer_new_tab\":\"@:{'words.generated.abn'} @:{'words.generated.kunde'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"view_invoice_collection_new_tab\":\"@:{'words.generated.abn'} @:{'words.generated.fakturasamling'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"view_lane_new_tab\":\"@:{'words.generated.abn'} @:{'words.generated.bane'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"view_lane_setup_new_tab\":\"@:{'words.generated.abn'} baneopsætning @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"view_order_new_tab\":\"@:{'words.generated.abn'} @:{'words.generated.ordre'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"view_vehicle_new_tab\":\"Åbn køretøjet {reg} i ny fane\",\"accept_self_serve_wash\":\"Godkend selvbetjent vask\",\"accept_self_serve_wash_confirm\":\"Flyt denne kladde til kunde #{customerNumber} med selvbetjeningsdetaljerne?\",\"accept_self_serve_wash_success\":\"Den selvbetjente vask blev godkendt.\",\"email_notifications_section\":\"E-mail notifikationer\",\"resend_booking_completion_confirmation\":\"(Gen)send bekræftelse for færdig booking\",\"resend_booking_completion_confirmation_error\":\"Bekræftelsen for færdig booking kunne ikke sendes\",\"resend_booking_completion_confirmation_success\":\"Bekræftelsen for færdig booking er sendt\",\"resend_booking_confirmation\":\"(Gen)send bookingbekræftelse\",\"resend_booking_confirmation_error\":\"Bookingbekræftelsen kunne ikke sendes\",\"resend_booking_confirmation_success\":\"Bookingbekræftelsen er sendt\",\"resend_wash_certificate\":\"(Gen)send vaskecertifikat\",\"resend_wash_certificate_error\":\"Vaskecertifikatet kunne ikke sendes\",\"resend_wash_certificate_success\":\"Vaskecertifikatet er sendt\",\"self_serve_customer\":\"Kunde\",\"self_serve_driver\":\"Chauffør\",\"self_serve_elapsed\":\"Tid\",\"self_serve_wash_attachment\":\"Selvbetjent vask\",\"self_serve_wash_attachment_for_customer\":\"Selvbetjent vask for kunde #{customerNumber}\"},\"show_details\":\"@:{'words.generated.vis'} @:{'words.generated.detaljer'}\",\"show_order_details\":\"@:{'words.generated.vis'} @:{'words.generated.ordredetaljer'}\",\"stripe\":{\"actions\":{\"cancel_payment\":\"@:{'words.generated.annuller'} @:{'words.generated.betaling'}\",\"delete_payment_intent\":\"Afbryd @:{'words.generated.betaling'}\",\"open_setup\":\"@:{'words.generated.abn'} @:{'words.generated.stripe'}-@:{'words.generated.opsætning'}\",\"refresh_payment_status\":\"@:{'words.generated.opdater'} @:{'words.generated.betalingsstatus'}\",\"refresh_readers\":\"@:{'words.generated.opdater'} @:{'words.generated.terminaler'}\",\"refresh_setup\":\"@:{'words.generated.opdater'} terminalopsætning\",\"retry_payment_state\":\"@.capitalize:{'words.generated.prøv'} @:{'words.generated.betalingsstatus'} @:{'words.generated.igen'}\",\"show_payment_details\":\"@:{'words.generated.vis'} betalingsdetaljer\"},\"details\":{\"amount_received\":\"@:{'templates.generated.compat.pos.order.badges.amount_received'}\",\"metadata\":\"Metadata\",\"payment_intent_id\":\"@:{'words.generated.payment'} @.capitalize:{'words.generated.intent'} @.upper:{'words.generated.id'}\"},\"email\":{\"action\":\"@:{'words.generated.betalingskort'} (@.upper:{'words.generated.e'}-@:{'words.generated.mail'})\",\"address_placeholder\":\"@:{'words.generated.kunde'} [@:{'words.generated.at'}] eksempel.dk\",\"errors\":{\"cancel\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.annullere'} @:{'words.generated.betalingslinket'}.\",\"complete\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.fuldføre'} @:{'words.generated.ordren'}.\",\"load\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.hente'} @:{'words.generated.status'} @:{'words.generated.for'} @:{'words.generated.betalingslinket'}.\",\"send\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.sende'} @:{'words.generated.betalingslinket'}.\"},\"eyebrow\":\"@.capitalize:{'words.generated.online'} @:{'words.generated.betaling'}\",\"help\":\"@.capitalize:{'words.generated.send'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.stripe'} betalingsfaktura @:{'words.generated.til'} @:{'words.generated.kunden'} @:{'words.generated.via'} @:{'words.generated.e'}-@:{'words.generated.mail'}.\",\"invoice_link_label\":\"@.capitalize:{'words.generated.betalingslink'}\",\"messages\":{\"active\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.findes'} @:{'words.generated.allerede'} @:{'words.generated.et_2'} @:{'words.generated.aktivt'} @:{'words.generated.betalingslink'} @:{'words.generated.til'} @:{'words.generated.denne'} @:{'words.generated.ordre'}.\",\"closed\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.online'} @:{'words.generated.betalingslink'} @:{'words.generated.er'} @:{'words.generated.lukket'}.\",\"paid\":\"@.capitalize:{'words.generated.betalingen'} @:{'words.generated.er'} @:{'words.generated.modtaget'}. @.capitalize:{'words.generated.ordren'} @:{'words.generated.kan'} @:{'words.generated.nu'} fuldføres.\",\"sent\":\"@.capitalize:{'words.generated.betalingslinket'} @:{'words.generated.er'} @:{'words.generated.sendt'}. @.capitalize:{'words.generated.status'} opdateres @:{'words.generated.automatisk'}.\"},\"states\":{\"open\":\"@:{'words.generated.afventer'} @:{'words.generated.betaling'}\",\"uncollectible\":\"@.capitalize:{'words.generated.kan'} @:{'words.generated.ikke'} inddrives\"}},\"errors\":{\"capture_payment_intent\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.gennemføre'} @:{'words.generated.payment'} @.capitalize:{'words.generated.intent'}.\",\"create_payment_intent\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.oprette'} @:{'words.generated.payment'} @.capitalize:{'words.generated.intent'}.\",\"delete_payment_intent\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.slette'} @:{'words.generated.payment'} @.capitalize:{'words.generated.intent'}.\",\"load_payment_intent_state\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.hente'} @:{'words.generated.betalingsstatus'}.\",\"load_readers\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.hente'} @:{'words.generated.stripe'}-@:{'words.generated.terminaler'}.\",\"select_reader_before_payment\":\"@.capitalize:{'words.generated.vælg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.terminal'}, @:{'words.generated.før'} @:{'words.generated.betalingen'} startes.\"},\"headings\":{\"card_payment\":\"@:{'words.generated.kortbetaling'}\",\"terminal\":\"@:{'words.generated.stripe'} @.capitalize:{'words.generated.terminal'}\"},\"messages\":{\"contact_superuser\":\"@.capitalize:{'words.generated.kontakt'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.superbruger'} @:{'words.generated.for'} @:{'words.generated.at'} åbne @:{'words.generated.stripe'}-opsætningen @:{'words.generated.og'} @:{'words.generated.vælge'} @:{'words.replication.host_definite_suffix'} terminalplacering @:{'words.generated.til'} @:{'words.generated.denne'} @:{'words.generated.afdeling'}.\",\"reader_unavailable\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.terminal'} @:{'words.generated.er'} @:{'words.generated.tilgængelig'} @:{'words.generated.lige'} @:{'words.generated.nu'}. @:{'words.generated.opdater'} listen @:{'words.generated.eller'} @:{'words.generated.vent'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.terminal'} kommer @:{'words.generated.online'}.\",\"setup_required_title\":\"@:{'words.generated.kortbetaling'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.klar'} @:{'words.generated.til'} @:{'words.generated.denne'} @:{'words.generated.afdeling'}.\",\"waiting_for_reader\":\"@.capitalize:{'words.generated.betalingen'} @:{'words.generated.er'} @:{'words.generated.i'} @:{'words.generated.gang'} @:{'words.generated.pa'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.terminal'}. @:{'words.generated.opdater'} @:{'words.generated.status'}, @:{'words.generated.hvis'} terminalen @:{'words.generated.allerede'} @:{'words.generated.har'} @:{'words.generated.læst'} kortet.\"},\"reader\":{\"label\":\"@.capitalize:{'words.generated.terminal'}\",\"no_selection\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.terminal'} @:{'words.generated.valgt'}\",\"none_available\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.terminaler'} @:{'words.generated.tilgængelige'}\",\"none_ready\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.klar'} @:{'words.generated.terminal'}\",\"select\":\"@.capitalize:{'words.generated.vælg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.terminal'}\",\"status\":{\"busy\":\"@.upper:{'words.generated.i'} @:{'words.generated.brug'}\"},\"unavailable_group\":\"@.capitalize:{'words.generated.utilgængelige'} @:{'words.generated.terminaler'}\"},\"states\":{\"cancelling\":\"@:{'words.generated.annullerer'} @:{'words.generated.betaling'}\",\"capturing\":\"@:{'words.generated.gennemfører'} @:{'words.generated.betaling'}\",\"creating\":\"@.capitalize:{'words.generated.opretter'} @:{'words.generated.betaling'}\",\"failed\":\"@.capitalize:{'words.generated.handling'} @:{'words.generated.pakrævet'}\",\"idle\":\"@.capitalize:{'words.generated.klar'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.starte'}\",\"reader_unavailable\":\"@.capitalize:{'words.generated.terminal'} @:{'words.generated.utilgængelig'}\",\"ready_to_capture\":\"@.capitalize:{'words.generated.klar'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.gennemføre'}\",\"setup_required\":\"@.capitalize:{'words.generated.opsætning'} @:{'words.generated.pakrævet'}\",\"succeeded\":\"@.capitalize:{'words.generated.betaling'} @:{'words.generated.gennemført'}\",\"waiting_for_reader\":\"@:{'words.generated.venter'} @:{'words.generated.pa'} @:{'words.generated.terminal'}\"},\"tax_profile\":\"Momsprofil\",\"tax_rates\":{\"danish_customer\":\"Dansk @:{'words.generated.kunde'}\",\"eu_customer\":\"EU-@:{'words.generated.kunde'}\"}},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} kassesystemet\",\"sync\":{\"subtitle\":\"@:{'words.generated.synkroniser'} @:{'words.generated.data'}\",\"title\":\"@.capitalize:{'words.generated.synkronisering'}\"},\"transaction\":\"@.capitalize:{'words.generated.transaktion'}\",\"use\":\"@.capitalize:{'words.generated.brug'}\",\"variant\":\"Variant\",\"waiting_for_booking\":\"@:{'words.generated.venter'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.booking'} @:{'words.generated.bliver'} @:{'words.generated.fuldført'}\",\"warning\":\"@:{'templates.generated.compat.common.warning'}\",\"wash_certificate\":\"@:{'templates.generated.compat.pos.wash_certificate'}\",\"wash_certificate_already_attached\":\"@.capitalize:{'words.generated.et_2'} @:{'words.generated.vaskecertifikat'} @:{'words.generated.er'} @:{'words.generated.allerede'} @:{'words.generated.vedhæftet'} @:{'words.generated.denne'} @:{'words.generated.ordre'}.\",\"wash_certificate_attached\":\"@.capitalize:{'words.generated.vaskecertifikatet'} @:{'words.generated.er'} @:{'words.generated.blevet'} @:{'words.generated.genereret'} @:{'words.generated.og'} @:{'words.generated.vedhæftet'} @:{'words.generated.ordren'}.\",\"wash_certificate_generation_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.ved'} @:{'words.generated.generering'} @:{'words.generated.af'} @:{'words.generated.vaskecertifikatet'}\",\"wash_certificate_item\":\"@:{'words.generated.vaskecertifikatlinjen'}\"},\"self_serve\":{\"condition_rules\":{\"add_question_rule\":\"@:{'words.generated.tilføj'} spørgeregel\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.betingelsesregler'}\"},\"conditions\":{\"add\":\"@:{'words.generated.tilføj'} @:{'words.generated.betingelse'}\",\"manage\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.betingelser'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} selvvaskbetingelser\"},\"questions\":{\"add\":\"@:{'words.generated.tilføj'} @:{'words.generated.spørgsmal'}\",\"manage\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.spørgsmal'}\"},\"select_vehicle_type_first\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.venligst'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.køretøjstype'} @:{'words.generated.først'}\",\"tasks\":{\"add\":\"@:{'words.generated.tilføj'} @:{'words.generated.opgave'}\",\"manage\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.opgaver'}\"},\"try\":\"@.capitalize:{'words.generated.prøv'}\",\"vehicle_conditions\":{\"add\":\"@:{'words.generated.tilføj'} @:{'words.generated.køretøjsbetingelse'}\",\"filter_by_reg\":\"Filtrér @:{'words.generated.efter'} @:{'words.generated.registreringsnummer'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.køretøjsbetingelser'}\"}},\"time_bookings\":{\"new\":{\"subtitle\":\"@:{'words.generated.opret'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.tidsbooking'}\",\"title\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.tidsbooking'}\"},\"opening_hours\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.abningstider'}\"},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.tidsbookinger'}\",\"title\":\"@:{'templates.generated.compat.department_dashboard.sidebar.time_bookings'}\",\"types\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.bookingtyper'}\",\"title\":\"@.capitalize:{'words.generated.bookingtyper'}\"}},\"wash_lanes\":{\"single\":{\"subtitle\":\"@.capitalize:{'words.generated.detaljer'} @:{'words.generated.for'} @:{'words.generated.vaskebane'}\"},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.vaskebaner'}\",\"title\":\"@.capitalize:{'words.generated.vaskebaner'}\"}},\"auth\":{\"country_code\":\"@:{'templates.generated.compat.global.phone_country_code'}\",\"customer_login_title\":\"@:{'templates.generated.compat.global.login'}\",\"driver_login_title\":\"@.capitalize:{'words.generated.chauffør'} @.capitalize:{'words.generated.login'}\",\"forgot_password\":\"Glemt @:{'words.generated.adgangskode'}\",\"operator_tagline\":\"@.capitalize:{'words.generated.truckwash'}.@:{'words.generated.io'} – @:{'words.generated.digitale'} @:{'words.generated.løsninger'} @:{'words.generated.til'} @:{'words.generated.lastbilvask'}\",\"phone_number\":\"@:{'templates.generated.compat.global.phone_number'}\",\"remember_me\":\"Husk mig\",\"terms_acceptance\":\"@.capitalize:{'words.generated.ved'} @:{'words.generated.at'} trykke \\\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'}\\\" accepterer @:{'words.generated.du'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} privatlivspolitik @:{'words.generated.og'} @:{'words.generated.betingelser'}\",\"username\":\"@.capitalize:{'words.generated.brugernavn'}\",\"your_username\":\"@.capitalize:{'words.generated.dit'} @:{'words.generated.brugernavn'}\"},\"book_wash\":{\"title_desc\":\"@.capitalize:{'words.generated.book'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vask'} @:{'words.generated.i'} én @:{'words.generated.af'} @:{'words.generated.vores'} @:{'words.generated.afdelinger'} - @:{'words.generated.med'} mulighed @:{'words.generated.for'} @:{'words.generated.safety'} @:{'words.generated.seal'}.\",\"title\":\"@.capitalize:{'words.generated.book'} @.capitalize:{'words.generated.vask'}\"},\"bookings_table\":{\"and_one_other\":\"{name} @:{'words.generated.og'} 1 @:{'words.generated.anden'}\",\"and_others\":\"{name} @:{'words.generated.og'} {count} @:{'words.generated.andre'}\",\"no_services\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.ydelser'}\",\"none_registered\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.registreret'}\",\"pcs\":\"stk\",\"po\":\"@:{'words.generated.po'}\",\"services\":\"@:{'templates.generated.compat.common.services'}\",\"unknown_service\":\"@.capitalize:{'words.generated.ukendt'} @:{'words.generated.ydelse'}\",\"wash\":\"@.capitalize:{'words.generated.vask'}\"},\"bookings\":{\"at_time\":\"@:{'words.generated.kl'}.\",\"booking_number\":\"@.capitalize:{'words.generated.bookingnummer'}\",\"cancel_booking\":\"@:{'words.generated.annuller'} @:{'words.generated.booking'}\",\"complete_booking\":\"@:{'words.generated.fuldfør'} @:{'words.generated.booking'}\",\"confirm_booking\":\"@.capitalize:{'words.generated.bekræft'} @:{'words.generated.booking'}\",\"date\":\"@:{'templates.generated.compat.common.date'}\",\"delete_booking\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.booking'}\",\"edit_booking\":\"@:{'words.generated.rediger'} @:{'words.generated.booking'}\",\"expected_at\":\"@.capitalize:{'words.generated.forventet'}\",\"new_booking\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.booking'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.bookingnummer'}, @:{'words.generated.kunde'}\",\"statuses\":{\"confirmed\":\"@:{'templates.generated.compat.messages.confirmed'}\"},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.bookinger'}\",\"view_booking\":\"@:{'words.generated.vis'} @:{'words.generated.booking'}\"},\"calendar\":{\"april\":\"April\",\"august\":\"August\",\"day\":\"@.capitalize:{'words.generated.dag'}\",\"december\":\"Desember\",\"february\":\"Februar\",\"fullcalendar\":{\"allDay\":\"@:{'words.generated.hele'} @:{'words.generated.dagen'}\",\"dayHeaderFormat\":\"ddd @:{'words.generated.d'}/M\",\"eventTimeFormat\":\"HH:mm\",\"list\":\"@.capitalize:{'words.generated.liste'}\",\"titleFormat\":\"dddd @:{'words.generated.d'}. MMMM YYYY\"},\"january\":\"Januari\",\"july\":\"Juli\",\"june\":\"Juni\",\"march\":\"Mars\",\"may\":\"@:{'words.generated.maj'}\",\"monday\":\"Måndag\",\"november\":\"November\",\"october\":\"Oktober\",\"saturday\":\"@:{'templates.generated.compat.common.days.saturday'}\",\"september\":\"September\",\"sunday\":\"@:{'templates.generated.compat.common.days.sunday'}\",\"tuesday\":\"Tisdag\",\"week\":\"@:{'templates.generated.compat.common.week'}\"},\"collected_invoice\":{\"move_customer\":{\"card_title\":\"Flyt til kunde\",\"confirm_button\":\"Flyt\",\"confirm_text\":\"Flyt fakturasamling #{id} og {count} ordre til kunde #{customer}?\",\"confirm_title\":\"Bekræft flytning\",\"current_customer\":\"Nuværende kunde: #{customer}\",\"customer_value\":\"Kunde #{customer}\",\"error_title\":\"Kunne ikke flytte fakturasamling\",\"invalid_customer\":\"Indtast et gyldigt kundenummer.\",\"locked\":\"Låst\",\"same_customer\":\"Vælg en anden kunde end den nuværende.\",\"success_text\":\"{count} ordre blev flyttet til kunde #{customer}.\",\"success_title\":\"Fakturasamling flyttet\",\"title\":\"Flyt fakturasamling\"},\"economic\":{\"booked_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.bogført'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}, @:{'words.generated.ingen'} @:{'words.generated.yderligere'} @:{'words.generated.handlinger'} @:{'words.generated.er'} @:{'words.generated.nødvendige'}.\",\"booked_with_economic\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.bogført'} @:{'words.generated.med'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"create_invoice\":\"@:{'words.generated.opret'} @:{'words.generated.faktura'}\",\"draft_customer_blocked_desc\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.fakturasamling'} @:{'words.generated.bruger'} @:{'words.replication.article.host_mention'} @:{'words.generated.konfigurerede'} @:{'words.generated.kladdekunde'} @:{'words.generated.og'} @:{'words.generated.kan'} @:{'words.generated.derfor'} @:{'words.generated.ikke'} @:{'words.generated.eksporteres'} @:{'words.generated.til'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"draft_customer_blocked_title\":\"Eksport @:{'words.generated.til'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.er'} blokeret\",\"fixed_price_added\":\"@.capitalize:{'words.generated.fast'} @:{'words.generated.pris'} @:{'words.generated.tilføjet'}\",\"fixed_price_added_desc\":\"@.capitalize:{'words.generated.fast'} @:{'words.generated.pris'} @:{'words.generated.er'} @:{'words.generated.tilføjet'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"invoice_create_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.skete'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} @:{'words.generated.oprettelse'} @:{'words.generated.af'} @:{'words.generated.fakturaen'}\",\"invoice_created\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.oprettet'}\",\"invoice_created_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.oprettet'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"invoice_sent\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.sendt'}\",\"invoice_sent_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.sendt'} @:{'words.generated.til'} @:{'words.generated.kunden'}\",\"invoice_split\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.opdelt'}\",\"invoice_split_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.opdelt'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"invoice_split_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.skete'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} @:{'words.generated.opdeling'} @:{'words.generated.af'} @:{'words.generated.fakturaen'}\",\"invoice_unlinked\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.afkoblet'}\",\"invoice_unlinked_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.afkoblet'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}. @:{'words.generated.bemærk'}, @:{'words.generated.at'} @:{'words.generated.fakturaen'} muligvis @:{'words.generated.stadig'} @:{'words.generated.eksisterer'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"saved_as_draft\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.gemt'} @:{'words.generated.som'} @:{'words.generated.kladde'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"saved_as_draft_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.gemt'} @:{'words.generated.som'} @:{'words.generated.kladde'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.og'} @:{'words.generated.kan'} @:{'words.generated.bogføres'} @:{'words.generated.direkte'} derfra.\",\"special_removed\":\"Spesielle avtaler @:{'words.generated.fjernet'}\",\"special_removed_desc\":\"Specielle @:{'words.generated.aftaler'} @:{'words.generated.er'} @:{'words.generated.fjernet'} @:{'words.generated.fra'} @:{'words.generated.fakturaen'}.\",\"split_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.opdele'} @:{'words.generated.denne'} @:{'words.generated.fakturasamling'}?\",\"split_yes\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.opdel'} @:{'words.generated.fakturaen'}\",\"subscriptions_added\":\"@:{'words.generated.abonnementer'} @:{'words.generated.tilføjet'}\",\"subscriptions_added_desc\":\"@:{'words.generated.abonnementer'} @:{'words.generated.er'} @:{'words.generated.tilføjet'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"undo_send\":\"@:{'words.generated.fortryd'} @:{'words.generated.afsendelse'}, @:{'words.generated.ga'} @:{'words.generated.tilbage'}\",\"unlink_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} afkoble @:{'words.generated.fakturaen'}? @:{'words.generated.bemærk'}, @:{'words.generated.at'} @:{'words.generated.fakturaen'} @:{'words.generated.stadig'} @:{'words.generated.kan'} eksistere @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}. @.capitalize:{'words.generated.du'} @:{'words.generated.skal'} @:{'words.generated.selv'} @:{'words.generated.slette'} @:{'words.replication.article.host_mention'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}, @:{'words.generated.hvis'} @:{'words.generated.det'} @:{'words.generated.er'} nødvendigt.\",\"unlink_yes\":\"@.capitalize:{'words.generated.ja'}, frakobl @:{'words.generated.fakturaen'}\",\"use_economic_desc\":\"@.capitalize:{'words.generated.brug'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.oprette'} @:{'words.generated.fakturaer'}\"},\"stripe\":{\"and_booked\":\"@:{'words.generated.og'} @:{'words.generated.bogført'}\",\"and_saved_draft\":\"@:{'words.generated.og'} @:{'words.generated.gemt'} @:{'words.generated.som'} utkast\",\"booked_with\":\"@:{'words.generated.bogført'} @:{'words.generated.med'}\",\"but_not_booked\":\"@:{'words.generated.men'} @:{'words.generated.ikke'} @:{'words.generated.bogført'}\",\"in_economic\":\"@:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"invoice_booked\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.bogført'}\",\"invoice_booked_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.bogført'} @:{'words.generated.i'} @:{'words.generated.stripe'}\",\"invoice_paid\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.betalt'}\",\"invoice_status\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} {status}\",\"not_booked\":\"@:{'words.generated.ikke'} @:{'words.generated.bogført'}\",\"payment_amount\":\"Betalingsbeløb\",\"payment_id\":\"Betalings-@:{'words.generated.id'}\",\"payment_overview\":\"Betalingsoversigt\",\"payment_status\":\"@:{'templates.generated.compat.global.payment_status'}\",\"saved_as_draft\":\"@:{'words.generated.gemt'} @:{'words.generated.som'} @:{'words.generated.kladde'} @:{'words.generated.i'}\",\"stripe_fees\":\"@:{'words.generated.stripe'} gebyrer\"}},\"common\":{\"about\":\"@.capitalize:{'words.generated.om'}\",\"actions\":\"@.capitalize:{'words.generated.handlinger'}\",\"active\":\"@:{'words.generated.aktiv'}\",\"add\":\"@:{'words.generated.tilføj'}\",\"addons\":\"@.capitalize:{'words.generated.tilvalg'}\",\"address\":\"@.capitalize:{'words.generated.adresse'}\",\"all\":\"@.capitalize:{'words.generated.alle'}\",\"and\":\"@:{'words.generated.og'}\",\"apply\":\"@:{'words.generated.anvend'}\",\"approved\":\"Godkendt\",\"approx\":\"@:{'words.generated.ca'}. @:{'words.generated.kl'}.\",\"are\":\"@:{'templates.generated.compat.common.is'}\",\"back\":\"@.capitalize:{'words.generated.tilbage'}\",\"booking_created\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.booking'} @:{'words.generated.er'} @:{'words.generated.nu'} @:{'words.generated.oprettet'}.\",\"bookings\":\"@.capitalize:{'words.generated.bookinger'}\",\"can\":\"@:{'words.generated.kan'}\",\"cancel\":\"@:{'words.generated.annuller'}\",\"cancelled\":\"@.capitalize:{'words.generated.annulleret'}\",\"city\":\"@.capitalize:{'words.generated.by'}\",\"clear\":\"@:{'words.generated.ryd'}\",\"click_to_copy\":\"@.capitalize:{'words.generated.klik'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.kopiere'}\",\"close\":\"@:{'words.generated.luk'}\",\"collapse\":\"@:{'templates.generated.compat.common.hide'}\",\"comment\":\"Kommentar\",\"comments\":\"Kommentarer\",\"company\":\"@.capitalize:{'words.generated.virksomhed'}\",\"completed\":\"@.capitalize:{'words.generated.fuldført'}\",\"confirm\":\"@.capitalize:{'words.generated.bekræft'}\",\"contact\":\"@.capitalize:{'words.generated.kontakt'}\",\"continue\":\"@.capitalize:{'words.generated.fortsæt'}\",\"copied\":\"@.capitalize:{'words.generated.kopieret'}\",\"copy_error\":\"@:{'words.generated.kopier'} @:{'words.generated.fejlmelding'}\",\"copy\":\"@:{'words.generated.kopier'}\",\"could\":\"@:{'words.generated.kunne'}\",\"country\":\"Land\",\"create\":\"@:{'words.generated.opret'}\",\"created\":\"@.capitalize:{'words.generated.oprettet'}\",\"customer_conflict\":{\"help_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.indtastede'} @:{'words.generated.nummerplade'} @:{'words.generated.tilhører'} @:{'words.replication.host_definite_suffix'} anden gemt @:{'words.generated.kunde'}. @.capitalize:{'words.generated.vælg'} @:{'words.generated.om'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.kunde'} @:{'words.generated.skal'} @:{'words.generated.beholdes'}, eller @:{'words.generated.om'} @:{'words.generated.der'} @:{'words.generated.skal'} @:{'words.generated.skiftes'} @:{'words.generated.til'} @:{'words.generated.køretøjets'} @:{'words.generated.kunde'}.\",\"keep_selected_customer\":\"Behold @:{'words.generated.valgt'} @:{'words.generated.kunde'}\",\"matched_customer_label\":\"@:{'words.generated.køretøjets'} @:{'words.generated.kunde'}\",\"title\":\"Bekræft @:{'words.generated.kunde'} @:{'words.generated.til'} @:{'words.generated.nummerplade'}\",\"use_vehicle_customer\":\"Brug @:{'words.generated.køretøjets'} @:{'words.generated.kunde'}\",\"warning_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.kunde'} @:{'words.generated.og'} @:{'words.generated.køretøjets'} @:{'words.generated.kunde'} matcher @:{'words.generated.ikke'}.\"},\"customer_creation_error_generic\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} @:{'words.generated.oprettelse'} @:{'words.generated.af'} @:{'words.generated.kunden'}. @.capitalize:{'words.generated.prøv'} @:{'words.generated.igen'}.\",\"customer_creation_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} @:{'words.generated.oprettelse'} @:{'words.generated.af'} @:{'words.generated.kunden'}: {error}\",\"customer_id\":\"@.capitalize:{'words.generated.kunde'} @.upper:{'words.generated.id'}\",\"customer_name\":\"@.capitalize:{'words.generated.kundenavn'}\",\"customer_note\":\"@:{'words.generated.kundenote'}\",\"customer_notes\":\"@:{'words.generated.kundebemærkninger'}\",\"customer_number\":\"@.capitalize:{'words.generated.kundenummer'}\",\"customer_picker\":{\"select_card_payment\":\"@:{'words.generated.betalingskort'}\",\"select_customer_invoice\":\"Eksisterende @:{'words.generated.kunde'}\",\"select_draft_customer\":\"@:{'words.generated.udsæt'}\",\"select_new_customer\":\"Ny @:{'words.generated.kunde'}\",\"select_payment_form\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.betalingsform'}\",\"selected_customer\":\"@.capitalize:{'words.generated.valgt'} @:{'words.generated.kunde'}\"},\"customer_prices\":\"@:{'words.generated.kundepriser'}\",\"customer_wishes\":\"@:{'words.generated.kundeønsker'}\",\"customer\":\"@.capitalize:{'words.generated.kunde'}\",\"customers\":\"@.capitalize:{'words.generated.kunder'}\",\"cut\":\"Klip\",\"dashboard\":\"Dashbord\",\"date\":\"@.capitalize:{'words.generated.dato'}\",\"days\":{\"friday\":\"Fredag\",\"monday\":\"Mandag\",\"saturday\":\"Lørdag\",\"sunday\":\"Søndag\",\"thursday\":\"Torsdag\",\"tuesday\":\"Tirsdag\",\"wednesday\":\"Onsdag\"},\"delete\":\"@.capitalize:{'words.generated.slet'}\",\"department_allocations\":\"@.capitalize:{'words.generated.afdelingsfordelinger'}\",\"department_id\":\"Afdelings @.upper:{'words.generated.id'}\",\"department\":\"@.capitalize:{'words.generated.afdeling'}\",\"departments\":\"@.capitalize:{'words.generated.afdelinger'}\",\"description\":\"Beskrivelse\",\"details\":\"@.capitalize:{'words.generated.detaljer'}\",\"disabled\":\"@.capitalize:{'words.generated.deaktiveret'}\",\"discount\":\"@.capitalize:{'words.generated.rabat'}\",\"done\":\"@.capitalize:{'words.generated.færdig'}\",\"download\":\"@.capitalize:{'words.generated.download'}\",\"during_the_day\":\"@:{'words.generated.i'} løbet @:{'words.generated.af'} @:{'words.generated.dagen'}\",\"edit\":\"@:{'words.generated.rediger'}\",\"email\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'}\",\"enabled\":\"@.capitalize:{'words.generated.aktiveret'}\",\"entries_per_page\":\"poster @:{'words.generated.per'} @:{'words.generated.side'}\",\"error_creating_booking\":\"@.capitalize:{'words.generated.fejl'} @:{'words.generated.ved'} @:{'words.generated.oprettelse'} @:{'words.generated.af'} @:{'words.generated.booking'}\",\"error\":\"@.capitalize:{'words.generated.fejl'}\",\"expand\":\"Udvid\",\"expired\":\"Udløbet\",\"export\":\"@:{'words.generated.eksporter'}\",\"failed\":\"Fejlet\",\"filter\":\"@.capitalize:{'words.generated.filter'}\",\"finish\":\"Afslut\",\"first\":\"Første\",\"from\":\"@.capitalize:{'words.generated.fra'}\",\"had\":\"havde\",\"has\":\"@:{'words.generated.har'}\",\"have\":\"@:{'templates.generated.compat.common.has'}\",\"help\":\"@.capitalize:{'words.generated.hjælp'}\",\"hide\":\"@:{'words.generated.skjul'}\",\"home\":\"Hjem\",\"hour\":\"@.capitalize:{'words.generated.time'}\",\"import\":\"@:{'words.generated.importer'}\",\"inactive\":\"Inaktiv\",\"info\":\"Info\",\"invoice\":\"@.capitalize:{'words.generated.faktura'}\",\"invoices\":\"@.capitalize:{'words.generated.fakturaer'}\",\"is_dev_on\":\"Udviklingstilstand\",\"is\":\"@:{'words.generated.er'}\",\"language\":\"Sprog\",\"last_wash\":\"@.capitalize:{'words.generated.sidste'} @:{'words.generated.vask'}\",\"last\":\"@.capitalize:{'words.generated.sidste'}\",\"less\":\"@.capitalize:{'words.generated.mindre'}\",\"loading\":\"@.capitalize:{'words.generated.indlæser'}...\",\"login\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'}\",\"logout\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ud'}\",\"may\":\"@:{'words.generated.ma'}\",\"might\":\"måske\",\"minute\":\"Minut\",\"month\":\"@.capitalize:{'words.generated.maned'}\",\"more\":\"@.capitalize:{'words.generated.mere'}\",\"must\":\"@:{'words.generated.skal'}\",\"name\":\"@.capitalize:{'words.generated.navn'}\",\"new\":\"@.capitalize:{'words.generated.ny'}\",\"next_step\":\"@.capitalize:{'words.generated.næste'} @:{'words.generated.trin'}\",\"next\":\"@.capitalize:{'words.generated.næste'}\",\"no\":\"@.capitalize:{'words.generated.nej'}\",\"none_registered\":\"@.capitalize:{'words.generated.ingen'} registreret\",\"none_services_added\":\"@.capitalize:{'words.generated.ingen'} ydelser tilføjet endnu\",\"none\":\"@.capitalize:{'words.generated.ingen'}\",\"not_available\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.tilgængelig'}\",\"not\":\"@:{'words.generated.ikke'}\",\"note\":\"Notat\",\"notes\":\"Noter\",\"of\":\"@:{'words.generated.af'}\",\"ok\":\"OK\",\"open\":\"@:{'words.generated.abn'}\",\"optional\":\"Valgfrit\",\"or\":\"@:{'words.generated.eller'}\",\"order_cancelled\":\"@.capitalize:{'words.generated.bookingen'} @:{'words.generated.er'} annulleret\",\"order_created\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.booking'} @:{'words.generated.er'} nu oprettet.\",\"order_desc\":\"@:{'words.generated.book'} @:{'words.generated.vask'} @:{'words.generated.pa'} tværs @:{'words.generated.af'} @:{'words.generated.landet'}\",\"order_id_incorrect\":\"@.capitalize:{'words.generated.booking'}-@:{'words.generated.id'} @:{'words.generated.er'} @:{'words.generated.forkert'}\",\"order_id_required\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.skal'} @:{'words.generated.indtaste'} @:{'words.generated.booking'}-@:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.at'} fuldføre @:{'words.generated.vask'} @:{'words.generated.uden'} vaskecertifikat\",\"order_info\":\"@:{'words.generated.bookingoplysninger'}\",\"order\":\"@.capitalize:{'words.generated.ordre'}\",\"orders\":\"@.capitalize:{'words.generated.ordrer'}\",\"page_x_of_y\":\"@.capitalize:{'words.generated.side'} {x} @:{'words.generated.af'} {y}\",\"paste\":\"@:{'words.generated.indsæt'}\",\"pause\":\"Pause\",\"pending\":\"@:{'words.generated.afventer'}\",\"per_page\":\"@:{'words.generated.per'} @:{'words.generated.side'}\",\"phone\":\"@.capitalize:{'words.generated.telefon'}\",\"preview\":\"@.capitalize:{'words.generated.forhandsvisning'}\",\"previous_step\":\"@.capitalize:{'words.generated.forrige'} @:{'words.generated.trin'}\",\"previous\":\"@.capitalize:{'words.generated.forrige'}\",\"price\":\"@.capitalize:{'words.generated.pris'}\",\"print\":\"@:{'words.generated.udskriv'}\",\"privacy\":\"Privatliv\",\"processing\":\"@:{'words.generated.behandler'}\",\"product\":\"@.capitalize:{'words.generated.produkt'}\",\"products\":\"@.capitalize:{'words.generated.produkter'}\",\"profile\":\"Profil\",\"quantity\":\"@.capitalize:{'words.generated.antal'}\",\"redo\":\"@:{'words.generated.gendan'}\",\"reference\":\"@.capitalize:{'words.generated.reference'}\",\"refresh\":\"@:{'templates.generated.compat.common.update'}\",\"register\":\"@.capitalize:{'words.generated.registrer'}\",\"rejected\":\"@.capitalize:{'words.generated.afvist'}\",\"remove\":\"@.capitalize:{'words.generated.fjern'}\",\"required\":\"@.capitalize:{'words.generated.pakrævet'}\",\"reset\":\"@:{'words.generated.nulstil'}\",\"results\":\"@:{'words.generated.resultater'}\",\"resume\":\"Genoptag\",\"retry\":\"@.capitalize:{'words.generated.prøv'} @:{'words.generated.igen'}\",\"role\":\"@.capitalize:{'words.generated.rolle'}\",\"roles\":\"@.capitalize:{'words.generated.roller'}\",\"roless\":{\"admin\":\"@.capitalize:{'words.generated.administrator'}\",\"employee\":\"@.capitalize:{'words.generated.medarbejder'}\",\"manager\":\"@:{'words.generated.leder'}\"},\"save\":\"@:{'words.generated.gem'}\",\"search_booking\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.booking'}\",\"search_customer_by_number\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.kundenummer'}\",\"search_customer\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.kunde'}\",\"search_customers_ellipsis\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.kunder'}...\",\"search_customers\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.i'} @:{'words.generated.kunder'}\",\"search_cvr\":\"@.capitalize:{'words.generated.søg'} CVR nummer...\",\"search_department\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} afdeling\",\"search_departments\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.afdelinger'}...\",\"search_driver\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.chauffør'}\",\"search_for\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'}\",\"search_license_plate\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.nummerplade'}\",\"search_order\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.ordre'}\",\"search_phone\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} telefonnummer\",\"search_products_ellipsis\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.produkter'}...\",\"search_products\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.produkter'}\",\"search_scanners\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} nummerpladescannere\",\"search_subuser\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} underbruger\",\"search_transactions\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.i'} transaktioner\",\"search_user\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} bruger\",\"search\":\"@.capitalize:{'words.generated.søg'}\",\"second\":\"Sekund\",\"see_more\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.mere'}\",\"select\":\"@.capitalize:{'words.generated.vælg'}\",\"selected\":\"@.capitalize:{'words.generated.valgt'}\",\"service\":\"@.capitalize:{'words.generated.ydelse'}\",\"services\":\"@.capitalize:{'words.generated.ydelser'}\",\"settings\":\"@.capitalize:{'words.generated.indstillinger'}\",\"shall\":\"@:{'templates.generated.compat.common.must'}\",\"should\":\"@:{'words.generated.bør'}\",\"show\":\"@:{'words.generated.vis'}\",\"sort\":\"@:{'words.generated.sorter'}\",\"start\":\"@.capitalize:{'words.generated.start'}\",\"status\":\"@.capitalize:{'words.generated.status'}\",\"stop\":\"Stop\",\"submit\":\"Indsend\",\"subtotal\":\"Subtotal\",\"success\":\"Succes\",\"support\":\"@.capitalize:{'words.generated.support'}\",\"tax\":\"@.capitalize:{'words.generated.moms'}\",\"terms\":\"Vilkår\",\"thank_you\":\"@:{'words.generated.tak'} @:{'words.generated.for'} @:{'words.generated.din'} @:{'words.generated.booking'}!\",\"time\":\"@.capitalize:{'words.generated.tid'}\",\"to\":\"@.capitalize:{'words.generated.til'}\",\"today\":\"@.upper:{'words.generated.i'} @:{'words.generated.dag'}\",\"tomorrow\":\"@.upper:{'words.generated.i'} morgen\",\"total\":\"@.capitalize:{'words.generated.total'}\",\"unable_to_load\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.indlæse'} @:{'words.generated.data'}, @:{'words.generated.men'} @:{'words.generated.ingen'} @:{'words.generated.fejl'} @:{'words.generated.blev'} @:{'words.generated.fundet'}.\",\"undo\":\"@:{'words.generated.fortryd'}\",\"unknown_error\":\"@.capitalize:{'words.generated.ukendt'} @:{'words.generated.fejl'}\",\"unknown\":\"@.capitalize:{'words.generated.ukendt'}\",\"unselect\":\"Fravælg\",\"update\":\"@:{'words.generated.opdater'}\",\"updated\":\"@.capitalize:{'words.generated.opdateret'}\",\"upload\":\"@.capitalize:{'words.generated.upload'}\",\"user\":\"@.capitalize:{'words.generated.bruger'}\",\"vehicle\":\"@.capitalize:{'words.generated.køretøj'}\",\"vehicles\":\"@.capitalize:{'words.generated.køretøjer'}\",\"via\":\"@.capitalize:{'words.generated.via'}\",\"view_booking\":\"Vis @:{'words.generated.booking'}\",\"view\":\"@:{'templates.generated.compat.common.show'}\",\"warning\":\"Advarsel\",\"was\":\"@:{'words.generated.var'}\",\"week\":\"@.capitalize:{'words.generated.uge'}\",\"were\":\"@:{'templates.generated.compat.common.was'}\",\"will\":\"@:{'words.generated.vil'}\",\"would\":\"ville\",\"year\":\"@.capitalize:{'words.generated.ar'}\",\"yes\":\"@.capitalize:{'words.generated.ja'}\",\"yesterday\":\"@.upper:{'words.generated.i'} går\",\"zip\":\"Postnummer\"},\"configuration\":{\"backups\":{\"backup_created\":\"@.capitalize:{'words.generated.backup'} @:{'words.generated.oprettet'}\",\"backup_created_success\":\"@.capitalize:{'words.generated.backup'} @:{'words.generated.blev'} @:{'words.generated.oprettet'} @:{'words.generated.succesfuldt'}.\",\"backup_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} @:{'words.generated.oprettelse'} @:{'words.generated.af'} @:{'words.generated.backup'}.\",\"backup_schedule\":\"Sikkerhedskopieringsplan\",\"create_backup\":\"@:{'words.generated.opret'} @:{'words.generated.backup'}\",\"create_backup_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.lave'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.sikkerhedskopi'}?\",\"delete_backup\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.backup'}\",\"download_backup\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.sikkerhedskopi'}\",\"enable_system\":\"@:{'words.generated.aktiver'} backupsystem\",\"enable_system_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.backup'} @:{'words.generated.systemet'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.backup'} @:{'words.generated.systemet'}.\",\"last_backup\":\"@.capitalize:{'words.generated.seneste'} @:{'words.generated.sikkerhedskopi'}\",\"restore_backup\":\"@:{'words.generated.gendan'} @:{'words.generated.sikkerhedskopi'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} backupsystemet.\",\"title\":\"Backupkonfiguration\"},\"economic\":{\"admin_fee_desc\":\"@.capitalize:{'words.generated.administrations'}- @:{'words.generated.og'} @:{'words.generated.miljøgebyr'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.integrationen'}.\",\"admin_fee_monthly\":\"@.capitalize:{'words.generated.administrationsgebyr'} (@:{'words.generated.manedligt'})\",\"admin_fee_monthly_desc\":\"@:{'words.generated.sæt'} @:{'words.generated.administrations'}- @:{'words.generated.og'} @:{'words.generated.miljøgebyret'} @:{'words.generated.der'} @:{'words.generated.opkræves'} @:{'words.generated.manedligt'}.\",\"admin_fee_order\":\"@.capitalize:{'words.generated.administrationsgebyr'} (@:{'words.generated.per'} @:{'words.generated.ordre'})\",\"admin_fee_order_desc\":\"@:{'words.generated.sæt'} @:{'words.generated.administrations'}- @:{'words.generated.og'} @:{'words.generated.miljøgebyret'} @:{'words.generated.der'} @:{'words.generated.opkræves'} @:{'words.generated.manedligt'}, @:{'words.generated.nar'} @:{'words.generated.faktureret'} @:{'words.generated.per'} @:{'words.generated.ordre'}.\",\"admin_fee_title\":\"@.capitalize:{'words.generated.administrations'}- @:{'words.generated.og'} @:{'words.generated.miljøgebyr'}\",\"agreement_grant_token\":\"@.capitalize:{'words.generated.agreement'} @.capitalize:{'words.generated.grant'}-@:{'words.generated.token'}\",\"agreement_grant_token_desc\":\"@.capitalize:{'words.generated.din'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.agreement'} @:{'words.generated.grant'} @:{'words.generated.token'}\",\"app_secret_token\":\"@.capitalize:{'words.generated.app'} @.capitalize:{'words.generated.secret'}-@:{'words.generated.token'}\",\"app_secret_token_desc\":\"@.capitalize:{'words.generated.din'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.app'} @:{'words.generated.secret'} @:{'words.generated.token'}\",\"default_distribution_department_id\":\"@.capitalize:{'words.generated.standard'} @:{'words.generated.fallback'}-@:{'words.generated.afdeling'}\",\"default_distribution_department_id_desc\":\"@.capitalize:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.fordeling'} @:{'words.generated.af'} vaskeaftaler @:{'words.generated.og'} @:{'words.generated.fastpris'}, @:{'words.generated.nar'} @:{'words.generated.kunden'} @:{'words.generated.ikke'} @:{'words.generated.har'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.standard'} @:{'words.generated.afdeling'}.\",\"env_fee_product_id\":\"@.capitalize:{'words.generated.miljøgebyr'} @:{'words.generated.produkt'} @.upper:{'words.generated.id'}\",\"env_fee_product_id_desc\":\"@:{'words.generated.sæt'} @:{'words.generated.produkt'} @.upper:{'words.generated.id'}'@:{'words.generated.et_2'} brugt @:{'words.generated.til'} @:{'words.generated.miljøgebyret'}.\",\"invoice_settings\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.indstillinger'}\",\"invoice_settings_desc\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.konfigurationen'} @:{'words.generated.giver'} @:{'words.generated.dig'} @:{'words.generated.mulighed'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.konfigurere'} @:{'words.generated.integrationen'} @:{'words.generated.med'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} regnskabssystemet.\",\"invoice_template\":\"@.capitalize:{'words.generated.faktura'} skabelon\",\"invoice_template_desc\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.faktura'} skabelonen @:{'words.generated.til'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.integrationen'}.\",\"show_payment_terms\":\"@:{'words.generated.vis'} @:{'words.generated.betalingsbetingelser'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.integrationen'}\",\"title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.konfiguration'}\",\"transaction_draft_customer_number\":\"@.capitalize:{'words.generated.kundenummer'} @:{'words.generated.til'} transaktionskladder\",\"transaction_draft_customer_number_desc\":\"@:{'words.generated.angiv'} @:{'words.generated.kundenummeret'} @:{'words.generated.der'} markerer @:{'words.generated.ordrer'} @:{'words.generated.og'} @:{'words.generated.fakturasamlinger'} @:{'words.generated.som'} @:{'words.generated.kladder'}. @.capitalize:{'words.generated.tom'} @:{'words.generated.værdi'} deaktiverer funktionen.\",\"transaction_draft_desc\":\"@.capitalize:{'words.generated.brug'} @:{'words.replication.host_definite_suffix'} dedikeret @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.kunde'} @:{'words.generated.til'} @:{'words.generated.transaktioner'} @:{'words.generated.der'} @:{'words.generated.skal'} forblive @:{'words.generated.som'} @:{'words.generated.kladder'} @:{'words.generated.og'} aldrig @:{'words.generated.eksporteres'} @:{'words.generated.automatisk'}.\",\"transaction_draft_title\":\"@:{'words.generated.transaktionskladde'}-@:{'words.generated.kunde'}\"},\"email\":{\"enable_mailersend\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.mailersend'}\",\"enable_mailersend_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.mailersend'} @:{'words.generated.integrationen'}.\",\"enable_system\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.email'} @:{'words.generated.system'}\",\"enable_system_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.email'} @:{'words.generated.systemet'}.\",\"from_address\":\"Avsændaradress\",\"from_email\":\"@.capitalize:{'words.generated.fra'} @:{'words.generated.email'} @:{'words.generated.adresse'}\",\"from_email_desc\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.adressen'} @:{'words.generated.som'} @:{'words.generated.emailen'} @:{'words.generated.sendes'} @:{'words.generated.fra'}. @.upper:{'words.generated.f'}.@:{'words.generated.eks'}. johndoe@gmail.@:{'words.generated.com'}\",\"from_name\":\"@.capitalize:{'words.generated.fra'} @:{'words.generated.navn'}\",\"from_name_desc\":\"@:{'words.generated.navnet'} @:{'words.generated.som'} @:{'words.generated.emailen'} @:{'words.generated.sendes'} @:{'words.generated.fra'}. @.upper:{'words.generated.f'}.@:{'words.generated.eks'}. John Doe\",\"general_settings\":\"@.capitalize:{'words.generated.generelle'} @:{'words.generated.indstillinger'}\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.email'} @:{'words.generated.systemet'}.\",\"mailersend_api_key\":\"@:{'words.generated.mailersend'} @:{'words.generated.api'} @:{'words.generated.nøgle'}\",\"mailersend_api_key_desc\":\"@:{'words.generated.mailersend'} @:{'words.generated.api'} nøglen @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.autentificere'} @:{'words.generated.mailersend'} @:{'words.generated.integrationen'}.\",\"mailersend_integration\":\"@:{'words.generated.mailersend'} @:{'words.generated.integration'}\",\"mailersend_integration_desc\":\"@:{'words.generated.mailersend'} integrationsindstillingerne.\",\"reply_to_email\":\"@.capitalize:{'words.generated.svar'} @:{'words.generated.til'} @:{'words.generated.email'} @:{'words.generated.adresse'}\",\"reply_to_email_desc\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.adressen'} @:{'words.generated.som'} @:{'words.generated.emailen'} @:{'words.generated.besvares'} @:{'words.generated.til'}. @.upper:{'words.generated.f'}.@:{'words.generated.eks'}. @:{'words.generated.support'}@@:{'words.generated.company'}.@:{'words.generated.com'}\",\"reply_to_name\":\"@.capitalize:{'words.generated.svar'} @:{'words.generated.til'} @:{'words.generated.navn'}\",\"reply_to_name_desc\":\"@:{'words.generated.navnet'} @:{'words.generated.som'} @:{'words.generated.emailen'} @:{'words.generated.besvares'} @:{'words.generated.til'}. @.upper:{'words.generated.f'}.@:{'words.generated.eks'}. @.capitalize:{'words.generated.support'}\",\"sender_identity_desc\":\"@:{'words.generated.afsender'} @:{'words.generated.identitet'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.email'} @:{'words.generated.systemet'}.\",\"smtp_encryption\":\"@:{'words.generated.smtp'} kryptering\",\"smtp_encryption_desc\":\"@:{'words.generated.smtp'} krypteringen @:{'words.generated.er'} krypteringsmetoden @:{'words.generated.som'} @:{'words.generated.smtp'} @:{'words.generated.hosten'} @:{'words.generated.bruger'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.sende'} @:{'words.generated.emailen'}.\",\"smtp_host\":\"@:{'words.generated.smtp'} @:{'words.generated.host'}\",\"smtp_host_desc\":\"@:{'words.generated.smtp'} @:{'words.generated.hosten'} @:{'words.generated.er'} @:{'words.generated.serveren'} @:{'words.generated.der'} @:{'words.generated.sender'} @:{'words.generated.emailen'}. @.capitalize:{'words.generated.dette'} @:{'words.generated.er'} normalt @:{'words.generated.mail'} @:{'words.generated.serveren'}.\",\"smtp_password\":\"@:{'words.generated.smtp'} @:{'words.generated.adgangskode'}\",\"smtp_password_desc\":\"@:{'words.generated.smtp'} @:{'words.generated.adgangskoden'} @:{'words.generated.er'} @:{'words.generated.adgangskoden'} @:{'words.generated.som'} @:{'words.generated.smtp'} @:{'words.generated.hosten'} @:{'words.generated.bruger'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.sende'} @:{'words.generated.emailen'}.\",\"smtp_port\":\"@:{'words.generated.smtp'} @:{'words.generated.port'}\",\"smtp_port_desc\":\"@:{'words.generated.smtp'} @:{'words.generated.porten'} @:{'words.generated.er'} @:{'words.generated.porten'} @:{'words.generated.som'} @:{'words.generated.smtp'} @:{'words.generated.hosten'} @:{'words.generated.bruger'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.sende'} @:{'words.generated.emailen'}.\",\"smtp_settings\":\"@:{'words.generated.smtp'} @:{'words.generated.indstillinger'}\",\"smtp_settings_desc\":\"@:{'words.generated.smtp'} @:{'words.generated.indstillingerne'} @:{'words.generated.for'} @:{'words.generated.email'} @:{'words.generated.systemet'}.\",\"smtp_user\":\"@:{'words.generated.smtp'}-@:{'words.generated.bruger'}\",\"smtp_username\":\"@:{'words.generated.smtp'} @:{'words.generated.brugernavn'}\",\"smtp_username_desc\":\"@:{'words.generated.smtp'} @:{'words.generated.brugernavnet'} @:{'words.generated.er'} @:{'words.generated.brugernavnet'} @:{'words.generated.som'} @:{'words.generated.smtp'} @:{'words.generated.hosten'} @:{'words.generated.bruger'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.sende'} @:{'words.generated.emailen'}.\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.email'} @:{'words.generated.systemet'}.\",\"test_email_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} @:{'words.generated.afsendelse'} @:{'words.generated.af'} @:{'words.generated.test'} @:{'words.generated.emailen'}.\",\"test_email_sent\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.email'} @:{'words.generated.sendt'}\",\"test_email_sent_success\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.emailen'} @:{'words.generated.er'} @:{'words.generated.blevet'} @:{'words.generated.sendt'} @:{'words.generated.til'} @:{'words.generated.email'} @:{'words.generated.adressen'}.\",\"title\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.konfiguration'}\"},\"fxrates\":{\"api_key_desc\":\"@.capitalize:{'words.generated.valutakurser'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.a_2'} @:{'words.generated.hente'} ut @:{'words.generated.valutakurser'}\",\"api_settings_desc\":\"@:{'words.generated.fx'} @:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.forbindelsesindstillingerne'}.\",\"conversion_rates\":\"@.capitalize:{'words.generated.valutakurser'}\",\"daily_limit\":\"@:{'words.generated.daglig'} @:{'words.generated.anmodningsgrænse'}\",\"daily_limit_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.daglige'} @:{'words.generated.anmodningsgrænse'} @:{'words.generated.for'} @:{'words.generated.fx'} @:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.integrationen'}.\",\"enable\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.fx'} @:{'words.generated.rates'} @:{'words.generated.api'}\",\"enable_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.fx'} @:{'words.generated.rates'} @:{'words.generated.api'}-@:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.fx'} @:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.integrationen'}.\",\"get_rates\":\"@:{'words.generated.hent'} @:{'words.generated.valutakurser'}\",\"getting_rates\":\"@.capitalize:{'words.generated.henter'} @:{'words.generated.valutakurser'} @:{'words.generated.fra'} @:{'words.generated.dkk'}\",\"getting_rates_desc\":\"@.capitalize:{'words.generated.vent'} @:{'words.generated.venligst'} @:{'words.generated.mens'} @:{'words.generated.vi'} @:{'words.generated.henter'} @:{'words.generated.valutakurserne'} @:{'words.generated.fra'} @:{'words.generated.dkk'} @:{'words.generated.til'} @:{'words.generated.andre'} valutaer.\",\"rates_fetched\":\"@.capitalize:{'words.generated.valutakurser'} @:{'words.generated.hentet'} @:{'words.generated.succesfuldt'}\",\"rates_fetched_desc\":\"@.capitalize:{'words.generated.valutakurserne'} @:{'words.generated.er'} @:{'words.generated.blevet'} @:{'words.generated.hentet'} @:{'words.generated.succesfuldt'}.\",\"show_rates\":\"@:{'words.generated.vis'} @:{'words.generated.valutakurser'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.fx'} @:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.fx'} @:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.konfiguration'}\",\"update_rates\":\"@:{'words.generated.opdater'} @:{'words.generated.valutakurser'}\"},\"general\":{\"currency\":\"@:{'templates.generated.compat.user_admin.currency'}\",\"language\":\"Språk\",\"timezone\":\"@:{'templates.generated.compat.settings.timezone'}\",\"title\":\"@:{'templates.generated.compat.configuration.email.general_settings'}\",\"title_desc\":\"De generelle @:{'words.generated.indstillinger'} @:{'words.generated.for'} FX Rates @:{'words.generated.api'} integrationen.\"},\"integrations\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.integrationer'}\"},\"limble\":{\"api_key\":\"@:{'words.generated.api'}-@:{'words.generated.nøkkel'}\",\"api_key_desc\":\"@:{'words.generated.limble'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.a_2'} @:{'words.generated.autentisere'} @:{'words.generated.limble'}-@:{'words.generated.integrationen'}\",\"api_settings\":\"@:{'words.generated.api'} forbindelsesindstillinger\",\"api_settings_desc\":\"@:{'words.generated.limble'} @:{'words.generated.api'} @:{'words.generated.forbindelsesindstillingerne'}.\",\"client_id\":\"Klient-@.upper:{'words.generated.id'}\",\"client_id_desc\":\"@:{'words.generated.client'} @.upper:{'words.generated.id'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.autentificere'} @:{'words.generated.api'} @:{'words.generated.forbindelsen'}.\",\"client_secret\":\"Klienthemmelighet\",\"client_secret_desc\":\"@:{'words.generated.client'} @:{'words.generated.secret'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.autentificere'} @:{'words.generated.api'} @:{'words.generated.forbindelsen'}.\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.forbindelsen'} @:{'words.generated.til'} @:{'words.generated.limble'} @:{'words.generated.api'} @:{'words.generated.fejlede'}!\",\"connection_success\":\"@.capitalize:{'words.generated.forbindelse'} @:{'words.generated.succesfuld'}\",\"connection_success_desc\":\"@.capitalize:{'words.generated.forbindelsen'} @:{'words.generated.til'} @:{'words.generated.limble'} @:{'words.generated.api'} @:{'words.generated.var'} @:{'words.generated.succesfuld'}!\",\"enable\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.limble'}\",\"enable_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.limble'}-@:{'words.generated.integrationen'}.\",\"enable_webhooks\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.webhooks'} @:{'words.generated.til'} @:{'words.generated.øjeblikkelig'} @:{'words.generated.synkronisering'}\",\"enable_webhooks_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.limble'} @:{'words.generated.webhooks'} @:{'words.generated.til'} @:{'words.generated.øjeblikkelig'} @:{'words.generated.synkronisering'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.limble'} @:{'words.generated.integrationen'}.\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.limble'} @:{'words.generated.integrationen'}\",\"test_connection\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.forbindelse'}\",\"title\":\"@:{'words.generated.limble'} @:{'words.generated.konfiguration'}\"},\"mailersend\":{\"api_key_desc\":\"@:{'words.generated.mailersend'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.a_2'} @:{'words.generated.autentisere'} @:{'words.generated.mailersend'}-@:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.mailersend'}-@:{'words.generated.konfiguration'}\"},\"motor_api\":{\"api_key_desc\":\"@:{'words.generated.motor'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.a_2'} @:{'words.generated.autentisere'} @:{'words.generated.motor'} @:{'words.generated.api'}-@:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.motor'} @:{'words.generated.api'}-@:{'words.generated.konfiguration'}\"},\"motorapi\":{\"api_settings_desc\":\"@:{'words.generated.motorapi'} @:{'words.generated.api'} @:{'words.generated.forbindelsesindstillingerne'}.\",\"daily_limit_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.daglige'} @:{'words.generated.anmodningsgrænse'} @:{'words.generated.for'} @:{'words.generated.motorapi'} @:{'words.generated.integrationen'}.\",\"enable\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.motorapi'}\",\"enable_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.motorapi'}-@:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.motorapi'} @:{'words.generated.integrationen'}.\",\"get_license_plate\":\"@:{'words.generated.hent'} @:{'words.generated.nummerplade'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.motorapi'} @:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.motorapi'} @:{'words.generated.konfiguration'}\"},\"products\":{\"add\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.produkt'}\",\"delete_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.dette'} @:{'words.generated.produkt'}?\",\"edit\":\"@:{'templates.generated.compat.products.edit_product'}\"},\"slack\":{\"customer_registration_webhook_url\":\"Webhook-URL til kunderegistreringer\",\"customer_registration_webhook_url_desc\":\"Slack-webhook der modtager en besked, når en ny kunderegistrering lykkes. Lad feltet være tomt for at deaktivere.\",\"internal_department_goal_progress_save_error\":\"Kunne ikke gemme Slack-indstillinger for interne afdelinger.\",\"internal_department_goal_progress_saved\":\"Slack-indstillinger for interne afdelinger blev gemt\",\"internal_department_goal_progress_webhook_url\":\"Webhook-URL til målopfyldelse for interne afdelinger\",\"internal_department_goal_progress_webhook_url_desc\":\"Slack-webhook der modtager den samlede status for målopfyldelse for interne afdelinger. Lad feltet være tomt for at deaktivere den samlede notifikation.\",\"internal_departments\":\"Interne afdelinger\",\"internal_departments_desc\":\"Afdelinger valgt her medtages i den interne Slack-oversigt over målopfyldelse.\",\"internal_departments_empty\":\"Ingen afdelinger fundet.\",\"notification_settings\":\"Notifikationer\",\"notification_settings_desc\":\"Slack-webhooks til systemhændelser.\",\"save_internal_departments\":\"Gem interne afdelinger\",\"send_test_webhook\":\"Send test-webhook\",\"subtitle\":\"Konfiguration af Slack-notifikationer\",\"test_customer_registration_webhook\":\"Test webhook til kunderegistreringer\",\"test_internal_department_goal_progress_webhook\":\"Test webhook til målopfyldelse for interne afdelinger\",\"test_internal_department_goal_progress_webhook_not_configured\":\"Gem en webhook-URL til målopfyldelse for interne afdelinger, før du sender en test.\",\"test_internal_department_goal_progress_webhook_sent_success\":\"Slack-testbeskeden for målopfyldelse for interne afdelinger blev sendt.\",\"test_webhook_error\":\"Kunne ikke sende Slack-testwebhooken.\",\"test_webhook_not_configured\":\"Gem en webhook-URL til kunderegistreringer, før du sender en test.\",\"test_webhook_sent\":\"Slack-test sendt\",\"test_webhook_sent_success\":\"Slack-testbeskeden for kunderegistrering blev sendt.\",\"title\":\"Slack-konfiguration\",\"unavailable\":\"Slack-konfigurationen er ikke tilgængelig i denne API-udgivelse.\"},\"shelly\":{\"api_key_desc\":\"@:{'words.generated.shelly'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.a_2'} @:{'words.generated.autentisere'} @:{'words.generated.shelly'}-@:{'words.generated.integrationen'}\",\"api_settings_desc\":\"@:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.forbindelsesindstillingerne'}.\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.forbindelsen'} @:{'words.generated.til'} @:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.fejlede'}!\",\"connection_success_desc\":\"@.capitalize:{'words.generated.forbindelsen'} @:{'words.generated.til'} @:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.var'} @:{'words.generated.succesfuld'}!\",\"enable\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.shelly'}\",\"enable_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.shelly'} @:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.shelly'} @:{'words.generated.integrationen'}.\",\"secret_key\":\"Hemmelig @:{'words.generated.nøgle'} (@:{'words.generated.api'} @:{'words.generated.nøgle'})\",\"secret_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} hemmelige @:{'words.generated.nøgle'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.autentificere'} @:{'words.generated.api'} @:{'words.generated.forbindelsen'}.\",\"server_url\":\"@.capitalize:{'words.generated.server'}-@:{'words.generated.url'}\",\"server_url_desc\":\"@:{'words.generated.url'}-@:{'words.replication.host_definite_suffix'} @:{'words.generated.til'} @:{'words.generated.shelly'}-@:{'words.generated.serveren'}.\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.shelly'} @:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.shelly'} @:{'words.generated.konfiguration'}\"},\"stripe\":{\"api_key_desc\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.stripe'} @:{'words.generated.api'}-@:{'words.generated.nøkkel'} @:{'words.generated.for'} betalingsbehandling\",\"api_settings_desc\":\"@:{'words.generated.stripe'} @:{'words.generated.api'} @:{'words.generated.forbindelsesindstillingerne'}.\",\"customers\":\"@:{'words.generated.stripe'} @:{'words.generated.kunder'}\",\"economic_customer\":\"@:{'words.generated.economic'} @:{'words.generated.kundenummer'}\",\"economic_customer_desc\":\"@.capitalize:{'words.generated.kunden'} @:{'words.generated.der'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.gemme'} @:{'words.generated.stripe'} @:{'words.generated.betalinger'} @:{'words.generated.i'} @:{'words.generated.economic'} @:{'words.generated.systemet'}.\",\"economic_settings\":\"@:{'words.generated.economic'} integrationsindstillinger\",\"economic_settings_desc\":\"@.capitalize:{'words.generated.indstillingerne'} @:{'words.generated.for'} @:{'words.generated.integrationen'} @:{'words.generated.med'} @:{'words.generated.economic'} @:{'words.generated.systemet'}.\",\"enable\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.stripe'}\",\"enable_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.stripe'}-@:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.stripe'} @:{'words.generated.integrationen'}.\",\"get_prices\":\"@:{'words.generated.hent'} @:{'words.generated.priser'}\",\"get_products\":\"@:{'words.generated.hent'} @:{'words.generated.produkter'}\",\"prices\":\"@:{'words.generated.stripe'}-@:{'words.generated.priser'}\",\"products\":\"@:{'words.generated.stripe'} @:{'words.generated.produkter'}\",\"publishable_key\":\"Offentlig @:{'words.generated.nøgle'}\",\"publishable_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} offentlige @:{'words.generated.nøgle'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.autentificere'} @:{'words.generated.api'} @:{'words.generated.forbindelsen'}.\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.stripe'} @:{'words.generated.integrationen'}\",\"test_mode\":\"Testlæge\",\"test_mode_desc\":\"@:{'words.generated.aktiver'} testtilstand @:{'words.generated.for'} @:{'words.generated.stripe'}-@:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.stripe'} @:{'words.generated.konfiguration'}\",\"webhook_secret\":\"@.capitalize:{'words.generated.webhook'}-@:{'words.generated.hemmelighed'}\",\"webhook_secret_desc\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.stripe'} @:{'words.generated.webhook'}-@:{'words.generated.hemmelighed'} @:{'words.generated.til'} håndtering @:{'words.generated.af'} @:{'words.generated.hændelser'}\"},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.systemkonfiguration'}\",\"users\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.brugere'}\"},\"virkdata\":{\"api_key_desc\":\"@:{'words.generated.virk'} @.capitalize:{'words.generated.data'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.a_2'} @:{'words.generated.autentisere'} @:{'words.generated.virk'} @.capitalize:{'words.generated.data'}-@:{'words.generated.integrationen'}\",\"api_settings_desc\":\"@:{'words.generated.virkdata'} @:{'words.generated.api'} @:{'words.generated.forbindelsesindstillingerne'}.\",\"company_selected\":\"@.capitalize:{'words.generated.virksomhed'} @:{'words.generated.valgt'}\",\"company_selected_desc\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.valgt'} {name} ({cvr})\",\"enable\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.virkdata'}\",\"enable_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.virkdata'}-@:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.virkdata'} @:{'words.generated.integrationen'}.\",\"monthly_limit\":\"@.capitalize:{'words.generated.manedlig'} @:{'words.generated.anmodningsgrænse'}\",\"monthly_limit_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.manedlige'} @:{'words.generated.anmodningsgrænse'} @:{'words.generated.for'} @:{'words.generated.virkdata'} @:{'words.generated.integrationen'}.\",\"no_results\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.resultater'}\",\"no_results_desc\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.virksomheder'} @:{'words.generated.blev'} @:{'words.generated.fundet'} @:{'words.generated.der'} @:{'words.generated.matcher'} @:{'words.generated.din'} @:{'words.generated.søgning'}.\",\"search_company\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.virksomhed'}\",\"search_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} @:{'words.generated.søgning'} @:{'words.generated.efter'} @:{'words.generated.virksomheder'}.\",\"select_company\":\"@.capitalize:{'words.generated.vælg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.virksomhed'}\",\"select_company_required\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.skal'} @:{'words.generated.vælge'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.virksomhed'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.virkdata'} @:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.virkdata'} @:{'words.generated.konfiguration'}\"},\"workfeed\":{\"api_key\":\"@:{'words.generated.api'} @:{'words.generated.key'}\",\"api_key_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.used'} @:{'words.generated.to'} authenticate @:{'words.generated.requests'} @:{'words.generated.to'} @:{'words.generated.workfeed'}.\",\"api_settings\":\"@:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}\",\"api_settings_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'} @:{'words.generated.used'} @:{'words.generated.for'} @:{'words.generated.workfeed'} @:{'words.generated.requests'}.\",\"api_url\":\"@:{'words.generated.api'} @:{'words.generated.url'}\",\"api_url_desc\":\"@.capitalize:{'words.generated.the'} base @:{'words.generated.url'} @:{'words.generated.for'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.api'}.\",\"close\":\"Close\",\"company_id\":\"@.capitalize:{'words.generated.company'} @.upper:{'words.generated.id'}\",\"company_id_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.company'} identifier @:{'words.generated.used'} @:{'words.generated.for'} @:{'words.generated.api'} synchronization.\",\"diagnostics\":{\"description\":\"Run @:{'words.generated.test'} lookups against @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'} @:{'words.generated.endpoints'}.\",\"get_employee\":\"@:{'words.generated.get'} @:{'words.generated.employee'} @:{'words.generated.by'} @.upper:{'words.generated.id'}\",\"get_shift\":\"@:{'words.generated.get'} @:{'words.generated.shift'} @:{'words.generated.by'} @.upper:{'words.generated.id'}\",\"list_departments\":\"@:{'words.generated.list'} departments\",\"list_employees\":\"@:{'words.generated.list'} @:{'words.generated.employees'}\",\"list_shifts\":\"@:{'words.generated.list'} shifts\",\"no_params_required\":\"No @:{'words.generated.query'} parameters @:{'words.generated.are'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.lookup'}.\",\"placeholder_employee_id\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. emp_01J5P2F2A0CQKBBX4P8M3Y7R5P\",\"placeholder_released\":\"@:{'words.generated.true'} @:{'words.generated.or'} @:{'words.generated.false'}\",\"placeholder_search\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. north facility\",\"placeholder_shift_id\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. shf_01J5P3X9D35R9C6BDZ1S0R4V6Q\",\"placeholder_start_from\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 2026-03-24T00:00:@:{'words.generated.word_00z'}\",\"placeholder_start_to\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 2026-03-25T00:00:@:{'words.generated.word_00z'}\",\"placeholder_status\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. published\",\"prompt_employee_id\":\"@.capitalize:{'words.generated.employee'} @.upper:{'words.generated.id'}\",\"prompt_employee_id_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.employee'} @.upper:{'words.generated.id'}\",\"prompt_released_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.released'} @:{'words.generated.filter'} (@:{'words.generated.true'}/@:{'words.generated.false'})\",\"prompt_search_optional\":\"@.capitalize:{'words.generated.optional'} search text\",\"prompt_shift_id\":\"@.capitalize:{'words.generated.shift'} @.upper:{'words.generated.id'}\",\"prompt_start_from\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.start'} @:{'words.generated.from'} (@:{'words.generated.iso'} 8601)\",\"prompt_start_to\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.start'} @:{'words.generated.to'} (@:{'words.generated.iso'} 8601)\",\"prompt_status_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.shift'} @:{'words.generated.status'}\",\"result_departments\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"result_employee\":\"@.capitalize:{'words.generated.employee'} @:{'words.generated.result'}\",\"result_employees\":\"@.capitalize:{'words.generated.employee'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"result_shift\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.result'}\",\"result_shifts\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"select_employee_all\":\"@:{'words.generated.all'} @:{'words.generated.employees'}\",\"select_released_all\":\"@:{'words.generated.all'} release states\",\"select_released_false\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.released'} @:{'words.generated.only'}\",\"select_released_true\":\"@.capitalize:{'words.generated.released'} @:{'words.generated.only'}\",\"title\":\"Diagnostics\",\"validation_datetime_invalid\":\"@.capitalize:{'words.generated.invalid'} date-@:{'words.generated.time'} @:{'words.generated.value'}.\",\"validation_released_boolean\":\"@.capitalize:{'words.generated.released'} must @:{'words.generated.be'} either @:{'words.generated.true'} @:{'words.generated.or'} @:{'words.generated.false'}.\",\"validation_shift_range_required\":\"startFrom @:{'words.generated.and'} startTo @:{'words.generated.are'} @:{'words.generated.required'}.\"},\"enable\":\"@:{'words.generated.enable'} @:{'words.generated.workfeed'}\",\"enable_desc\":\"@:{'words.generated.enable'} @:{'words.generated.or'} disable @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}.\",\"general_settings_desc\":\"@:{'words.generated.general'} @:{'words.generated.settings'} @:{'words.generated.for'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}.\",\"lookup\":\"@.capitalize:{'words.generated.lookup'}\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.workfeed'} @:{'words.generated.configuration'}\",\"validation_required\":\"@.capitalize:{'words.generated.this'} field @:{'words.generated.is'} @:{'words.generated.required'}.\"},\"xlvask\":{\"api_key_desc\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.a_2'} @:{'words.generated.autentisere'} @:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-@:{'words.generated.integrationen'}\",\"api_settings_desc\":\"@:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.forbindelsesindstillingerne'}.\",\"automation_settings\":\"Automatisering\",\"automation_settings_desc\":\"Styr @:{'words.generated.automatisk'} @:{'words.generated.tilknytning'} @:{'words.generated.og'} @:{'words.generated.oprettelse'} @:{'words.generated.af'} @:{'words.generated.ordrer'} @:{'words.generated.fra'} @.capitalize:{'words.generated.selvvask'}.\",\"connection_failed\":\"@.capitalize:{'words.generated.forbindelse'} @:{'words.generated.fejlede'}\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.forbindelsen'} @:{'words.generated.til'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.fejlede'}.\",\"connection_success_desc\":\"@.capitalize:{'words.generated.forbindelsen'} @:{'words.generated.til'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.var'} @:{'words.generated.succesfuld'}.\",\"enable\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.xlvask'}\",\"enable_automatic_attachment\":\"@.capitalize:{'words.generated.automatisk'} @:{'words.generated.tilknytning'} @:{'words.generated.af'} @:{'words.generated.ordrer'}\",\"enable_automatic_attachment_desc\":\"@:{'words.generated.tilknyt'} @:{'words.generated.sikre'} @.capitalize:{'words.generated.selvvask'}-match @:{'words.generated.til'} @:{'words.generated.eksisterende'} @:{'words.generated.ordrer'} @:{'words.generated.automatisk'}.\",\"enable_automatic_creation\":\"@.capitalize:{'words.generated.automatisk'} ordreoprettelse\",\"enable_automatic_creation_desc\":\"@:{'words.generated.opret'} @:{'words.generated.sikre'} @.capitalize:{'words.generated.selvvask'}-@:{'words.generated.ordrer'} @:{'words.generated.automatisk'}, @:{'words.generated.nar'} @:{'words.generated.vasken'} @:{'words.generated.er'} @:{'words.generated.over'} 6 @:{'words.generated.timer'} @:{'words.generated.gammel'}.\",\"enable_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.xlvask'} @:{'words.generated.integrationen'}.\",\"enable_openai_integration\":\"@:{'words.generated.openai'}-forslag\",\"enable_openai_integration_desc\":\"@.capitalize:{'words.generated.brug'} @:{'words.generated.openai'} @:{'words.generated.til'} @:{'words.generated.at'} foreslå @:{'words.generated.tilknytning'} @:{'words.generated.eller'} @:{'words.generated.oprettelse'}, @:{'words.generated.nar'} @:{'words.generated.de'} faste @:{'words.generated.regler'} @:{'words.generated.ikke'} @:{'words.generated.er'} @:{'words.generated.sikre'} @:{'words.generated.nok'}.\",\"enable_sync\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.automatisk'} @:{'words.generated.synkronisering'}\",\"enable_sync_desc\":\"@.capitalize:{'words.generated.aktiver_2'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.xlvask'} @:{'words.generated.automatisk'} @:{'words.generated.synkronisering'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.xlvask'} @:{'words.generated.integrationen'}.\",\"password_desc\":\"@.capitalize:{'words.generated.adgangskoden'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.autentificere'} @:{'words.generated.api'} @:{'words.generated.forbindelsen'}.\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.xlvask'} @:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.xlvask'} @:{'words.generated.konfiguration'}\",\"username_desc\":\"@.capitalize:{'words.generated.brugernavnet'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.autentificere'} @:{'words.generated.api'} @:{'words.generated.forbindelsen'}.\"},\"release_manager\":{\"integrations\":{\"title\":\"GitHub og Coolify\",\"subtitle\":\"Knyt GitHub-repositories og branches til kanalspecifikke Coolify-services.\",\"choose_repository\":\"Vælg repository\",\"add_health_url\":\"tilføj health-URL\",\"github_token_not_configured\":\"GitHub-token er ikke konfigureret; private repositories kan ikke vises.\",\"open_github_token_settings\":\"Åbn GitHub token-indstillinger\",\"channel\":\"Kanal\",\"app\":\"App\",\"repository\":\"Repository\",\"repository_message\":\"Eksempel: truckwash/backend-php\",\"repository_placeholder\":\"ejer/repo\",\"branch\":\"Branch\",\"branch_message\":\"Eksempel: release/canary\",\"branch_placeholder\":\"branch\",\"latest_prefix\":\"Seneste: {commit}\",\"coolify_instance\":\"Coolify-instans\",\"coolify_instance_message\":\"Lad feltet være tomt for manuelle deployment-poster.\",\"no_coolify_instance\":\"Ingen Coolify-instans\",\"coolify_instance_placeholder\":\"Coolify-instans-id\",\"coolify_service_uuid\":\"Coolify service-UUID\",\"coolify_service_uuid_message\":\"Vælg en eksisterende service eller indsæt en UUID.\",\"coolify_service_uuid_placeholder\":\"Coolify service-UUID\",\"health_url\":\"Health-URL\",\"health_url_message\":\"Eksempel: https://api-canary.example.test/ping\",\"health_url_placeholder\":\"Health-URL\",\"ssl_domain\":\"Load balancer-domæne\",\"ssl_domain_message\":\"Skal være et DNS-domæne, der routes til Coolify load balanceren. Eksempel: api-v2.truckwash.io\",\"ssl_domain_placeholder\":\"Load balancer-domæne\",\"https_domain_for_coolify\":\"Domæne kontrolleret af load balanceren\",\"endpoint_mode\":\"Endpoint mode\",\"endpoint_mode_message\":\"Use automatic gateway routing or manually override the public host and port.\",\"endpoint_mode_auto\":\"Auto\",\"endpoint_mode_manual\":\"Manual\",\"manual_endpoint_host\":\"Manual host\",\"manual_endpoint_host_message\":\"Public host shown in release previews when manual mode is selected.\",\"manual_endpoint_host_placeholder\":\"api-v2.truckwash.io\",\"manual_endpoint_port\":\"Manual public port\",\"manual_endpoint_port_message\":\"Optional public port from 1 to 65535.\",\"app_port\":\"App port\",\"app_port_message\":\"Internal container port exposed to Coolify routing.\",\"auto_gateway_endpoint\":\"Automatic gateway endpoint\",\"pending_automatic_endpoint\":\"Automatic endpoint resolution pending\",\"auto_deploy\":\"Auto deploy\",\"auto_deploy_tooltip\":\"Opret automatisk deployments, når dette mål ændres.\",\"coolify_ssl\":\"Coolify SSL\",\"coolify_ssl_tooltip\":\"Bed Coolify om at oprette HTTPS for det konfigurerede domæne.\",\"deploy_now\":\"Deploy nu\",\"deploy_now_tooltip\":\"Start en deployment straks efter målet gemmes.\",\"create_missing_service\":\"Opret manglende service\",\"create_missing_service_tooltip\":\"Tillad Release Manager at oprette en manglende Coolify-service.\",\"test_access_tooltip\":\"Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch.\"},\"title\":\"Release Manager\",\"subtitle\":\"Gradvise API- og Front-End-udgivelser\",\"channel_names\":{\"stable\":\"Stabil\",\"canary\":\"Canary\",\"internal\":\"Intern\"},\"channel_descriptions\":{\"stable\":\"Standard produktionskanal.\",\"canary\":\"Tidlig produktionsvalideringskanal.\",\"internal\":\"Intern kanal til medarbejdere og superbruger-validering.\"},\"control_api\":{\"title\":\"Kontrol-API\",\"tooltip\":\"Release Manager-handlinger sendes til denne API. Brug produktions-API'en, medmindre du tester en staging-backend.\",\"example\":\"Eksempel: https://api.truckwash.io:4433\",\"endpoint_label\":\"API-endpoint\",\"endpoint_message\":\"Skift kun dette, når Release Manager-endpoints er tilgængelige på mål-API'en.\",\"endpoint_aria\":\"Release Manager kontrol-API URL\",\"use_tooltip\":\"Indlæs release-data fra denne API\",\"use\":\"Brug\",\"reset_tooltip\":\"Vend tilbage til standard kontrol-API\",\"reset\":\"Nulstil\",\"known_endpoints\":\"Kendte kontrol-API-endpoints\"},\"tabs\":{\"overview\":{\"label\":\"Oversigt\",\"description\":\"Kanalstatus, opsætningsfremdrift og seneste release-tilstand.\"},\"channels\":{\"label\":\"Kanaler\",\"description\":\"Opret stabile, canary- og målrettede kanaler med rollout-grænser.\"},\"assignments\":{\"label\":\"Tildelinger\",\"description\":\"Fastgør brugere, subbrugere eller kunder til en bestemt release-kanal.\"},\"deployments\":{\"label\":\"Udrulninger\",\"description\":\"Start udrulninger og promover vellykkede builds.\"},\"replay\":{\"label\":\"Replay\",\"description\":\"Aktivér målrettet opsamling og søg i release-tidslinjehændelser.\"},\"integrations\":{\"label\":\"Integrationer\",\"description\":\"Forbind GitHub-repositories, branches og Coolify-services.\"},\"settings\":{\"label\":\"Indstillinger\",\"description\":\"Konfigurer Release Managers GitHub-adgang og webhook-indstillinger.\"}},\"loading\":{\"summary\":\"Indlæser Release Manager-data...\",\"refreshing_summary\":\"Opdaterer Release Manager-data...\",\"summary_detail\":\"Release-status, kanaler, deployments og service-health indlæses.\",\"channels\":\"Indlæser release-kanaler...\",\"channels_detail\":\"Kanalbaner og release-afhængigheder indlæses.\",\"assignments\":\"Indlæser release-tildelinger...\",\"deployments\":\"Indlæser release-deployments...\",\"operations\":\"Indlæser release-operationer...\",\"data_services\":\"Indlæser release-datatjenester...\",\"integrations\":\"Indlæser release-integrationer...\",\"settings\":\"Indlæser Release Manager-indstillinger...\",\"github_repositories\":\"Indlæser GitHub-repositories...\",\"timeline_sessions\":\"Indlæser release-tidslinjesessioner...\",\"timeline_events\":\"Indlæser release-tidslinjehændelser...\",\"refreshing_timeline\":\"Opdaterer release-tidslinje...\"},\"setup\":{\"channels\":\"Kanaler\",\"targets\":\"GitHub- og Coolify-mål\",\"assignments\":\"Pilot-tildelinger\",\"deployments\":\"Første udrulning\",\"replay\":\"Replay-opsamling\"},\"stats\":{\"channels\":\"Kanaler\",\"targets\":\"Mål\",\"deployments\":\"Udrulninger\",\"timeline_events\":\"Tidslinjehændelser\"},\"overview\":{\"title\":\"Oversigt\",\"subtitle\":\"Aktuel kanalstatus, release-aktivitet og modulstatus.\",\"guided_setup\":\"Guidet opsætning\",\"next_step\":\"Næste: {step}\",\"ready\":\"Release Manager er klar til daglig drift.\",\"add_suggested_channel\":\"Tilføj foreslået kanal\",\"module_health_empty\":\"Modul-health snapshots vises, når probes er blevet registreret.\"},\"status\":{\"confirm_issue_action\":\"Koer denne Release Manager-handling? Den kan aendre deployment-tilstand og bliver auditeret.\",\"choose_bundle_prompt\":\"Indtast bundle-id'et, der skal saettes for denne kanal.\",\"impact\":\"Konsekvens\",\"cause\":\"Aarsag\",\"automated_fix\":\"Automatisk rettelse\",\"manual_fallback\":\"Manuel fallback\",\"related_deployment\":\"Relateret deployment\",\"recent_result\":\"Seneste resultat\",\"no_automated_action\":\"Ingen automatisk handling tilgængelig.\",\"deployment\":\"Deployment\",\"target\":\"Maal\",\"coolify_target\":\"Coolify-maal\",\"service_set\":\"Service set\"},\"settings\":{\"title\":\"Release Manager-indstillinger\",\"subtitle\":\"Konfigurer GitHub-tokenet, der bruges til private repositories og branch-opslag.\",\"github_token\":\"GitHub-token\",\"github_api_url\":\"GitHub API-URL\",\"webhook_secret\":\"Webhook-hemmelighed\",\"github_webhook_secret\":\"GitHub webhook-hemmelighed\",\"configured\":\"Konfigureret\",\"not_configured\":\"Ikke konfigureret\",\"loaded_from\":\"Indlæst fra {variable}\",\"set_below\":\"Angiv {variable} nedenfor\",\"private_repositories_prefix\":\"Private repositories læses med serverens miljøvariabel\",\"private_repositories_or\":\"eller modulets konfigurationsvariabel\",\"github_token_message\":\"Eksempel: github_pat_... med adgang til de private repositories, Release Manager udruller.\",\"github_token_placeholder\":\"Lad feltet være tomt for at beholde det eksisterende token\",\"github_api_url_message\":\"Konfigureret i ReleaseManager.github_api_url. Brug https://api.github.com medmindre GitHub Enterprise bruges.\",\"webhook_secret_message\":\"Valgfrit; lad feltet være tomt for at beholde den eksisterende hemmelighed.\",\"webhook_secret_placeholder\":\"Webhook HMAC-hemmelighed\",\"save\":\"Gem indstillinger\",\"back_to_integrations\":\"Tilbage til integrationer\",\"guide\":{\"steps\":{\"github_token\":\"GitHub-token\",\"github_api_url\":\"GitHub API-URL\",\"github_webhook_secret\":\"GitHub webhook secret\",\"review\":\"Gennemgang\"},\"github_token_title\":\"Tilføj GitHub-token\",\"github_token_description\":\"Release Manager bruger denne token til at vise private repositories, branches og commits, før et deployment-mål gemmes eller testes.\",\"configure_this_in\":\"Konfigurer dette i\",\"server_environment_variable\":\"Serverens miljøvariabel\",\"takes_precedence\":\"har forrang, når den er sat.\",\"recommended_access\":\"Anbefalet adgang\",\"recommended_access_description\":\"Fine-grained GitHub-token med Contents: read-adgang til hvert release-repository.\",\"github_api_url_title\":\"Tilføj GitHub API-URL\",\"github_api_url_description\":\"Brug GitHub Cloud som standard, eller peg på REST API-base-URLen for en GitHub Enterprise Server-installation.\",\"github_api_url_invalid\":\"Indtast en fuld HTTP- eller HTTPS-URL.\",\"github_cloud\":\"GitHub Cloud\",\"enterprise_example\":\"Enterprise-eksempel\",\"github_webhook_secret_title\":\"Tilføj GitHub webhook secret\",\"github_webhook_secret_description\":\"Brug samme secret i GitHub repository-webhooks, så Release Manager kan verificere deployment-events, før de håndteres.\",\"github_webhook_url\":\"GitHub webhook-URL:\",\"store_shared_secret_in\":\"Gem den delte secret i\",\"review_title\":\"Gennemgå GitHub-opsætning\",\"review_description\":\"Gem værdierne, og brug derefter Integrationer til at vælge et privat repository, branch og specifik commit eller seneste commit før adgang testes.\",\"ready\":\"Klar\",\"needs_value\":\"Mangler værdi\"}},\"channel_unavailable\":{\"kicker\":\"Release Manager\",\"title\":\"Release-kanalen er ikke klar\",\"summary_prefix\":\"Din konto er tildelt\",\"summary_suffix\":\", men kanalen mangler påkrævet release-konfiguration.\",\"release_bundle\":\"Release-bundle\",\"frontend_version\":\"Frontend-version\",\"api_version\":\"API-version\",\"frontend_base_url\":\"Frontend-URL\",\"api_base_url\":\"API-URL\",\"frontend_entry\":\"Frontend-entry\",\"release_runtime\":\"Release-runtime\",\"checking_again\":\"Tjekker igen om {seconds}s\",\"refresh_error\":\"Release-status kunne ikke opdateres. Det næste automatiske tjek prøver igen.\",\"ignore\":\"Ignorer de næste 5 minutter\",\"check_again\":\"Tjek igen\",\"logout\":\"Log ud\",\"base_image\":\"Basis-image\"},\"channel_switched\":{\"kicker\":\"Release Manager\",\"title\":\"Du er nu på {channel}\",\"summary_prefix\":\"Din konto er blevet tildelt release-kanalen\",\"summary_suffix\":\"Denne enhed husker, at du har set denne besked.\",\"bundle\":\"Bundle\",\"frontend\":\"Frontend\",\"api\":\"API\",\"frontend_version\":\"Frontend-version\",\"api_version\":\"API-version\",\"assigned_channel\":\"Tildelt kanal\",\"current_app_image\":\"Nuværende app-image\",\"current_api\":\"Nuværende API\",\"base_image\":\"Basis-image\",\"continue\":\"Fortsæt\"},\"channel_selector\":{\"title\":\"Release-kanal\",\"subtitle\":\"Vælg hvilken tildelt release-kanal denne enhed skal bruge.\",\"sidebar_title\":\"Release\",\"default\":\"Standard\",\"ready\":\"Klar\",\"unavailable\":\"Ikke klar\",\"release_bundle\":\"Release-bundle\",\"frontend_version\":\"Frontend-version\",\"api_version\":\"API-version\",\"frontend_base_url\":\"Frontend-URL\",\"api_base_url\":\"API-URL\",\"frontend_entry\":\"Frontend-entry\",\"release_runtime\":\"Release-runtime\",\"bundle\":\"Bundle\",\"frontend\":\"Frontend\",\"api\":\"API\",\"use_local_frontend\":\"Brug lokal frontend\",\"switch_error\":\"Release-kanalen kunne ikke skiftes. Den forrige kanal er stadig aktiv.\"},\"common\":{\"yes\":\"ja\",\"no\":\"nej\",\"off\":\"fra\"},\"actions\":{\"edit\":\"Rediger\",\"rollback\":\"Rul tilbage\",\"update\":\"Opdater\",\"create\":\"Opret\",\"publish_release\":\"Publicer release\",\"clear\":\"Ryd\",\"assign\":\"Tildel\",\"remove\":\"Fjern\",\"test_access\":\"Test adgang\",\"deploy\":\"Deploy\",\"redeploy\":\"Redeploy\",\"promote\":\"Promover\",\"enable\":\"Aktiver\",\"search\":\"Søg\",\"save_target\":\"Gem mål\",\"delete\":\"Slet\",\"back\":\"Tilbage\",\"next\":\"Næste\"},\"tables\":{\"channel\":\"Kanal\",\"rollout\":\"Udrulning\",\"frontend\":\"Frontend\",\"api\":\"API\",\"replay\":\"Replay\",\"actions\":\"Handlinger\",\"module\":\"Modul\",\"status\":\"Status\",\"checked\":\"Kontrolleret\",\"subject\":\"Emne\",\"reason\":\"Årsag\",\"expires\":\"Udløber\",\"deployment\":\"Deployment\",\"source\":\"Kilde\",\"started\":\"Startet\",\"target\":\"Mål\",\"coolify\":\"Coolify\",\"auto\":\"Auto\"},\"values\":{\"app\":{\"frontend\":\"frontend\",\"api\":\"api\"},\"capture_level\":{\"metadata\":\"metadata\",\"full_redacted\":\"fuldt redigeret\"},\"subject_type\":{\"user\":\"bruger\",\"subuser\":\"medarbejder\",\"customer\":\"kunde\",\"channel\":\"kanal\"},\"severity\":{\"error\":\"fejl\",\"warning\":\"advarsel\",\"info\":\"info\"},\"status\":{\"ok\":\"ok\",\"active\":\"aktiv\",\"deployed\":\"deployet\",\"stable\":\"stabil\",\"enabled\":\"aktiveret\",\"queued\":\"i kø\",\"deploying\":\"deploying\",\"metadata\":\"metadata\",\"not_configured\":\"ikke konfigureret\",\"warning\":\"advarsel\",\"failed\":\"fejlet\",\"down\":\"nede\",\"error\":\"fejl\",\"unknown\":\"ukendt\"}},\"autocomplete\":{\"suggested_value\":\"Foreslået værdi\",\"suggestion\":\"Forslag\",\"use_typed_value\":\"Brug indtastet værdi\",\"custom\":\"Tilpasset\",\"api_url\":\"API-URL\",\"frontend_url\":\"Frontend-URL\",\"known_release_url\":\"Kendt release-URL\",\"deploy_here_with_coolify\":\"Deploy {app} her med Coolify\",\"prepare_coolify_target\":\"Forbered et Coolify-mål med HTTPS/SSL aktiveret\",\"coolify_ssl\":\"Coolify SSL\",\"github_repository\":\"GitHub-repository\",\"owner_repository\":\"ejer/repository\",\"git_branch\":\"Git-branch\",\"deployment_branch\":\"Deployment-branch\",\"github_commit\":\"GitHub-commit\",\"git_commit\":\"Git-commit\",\"use_specific_commit_sha\":\"Brug specifik commit-SHA\",\"custom_commit\":\"Tilpasset commit\",\"health_url\":\"Health-URL\",\"release_health_check\":\"Release health check\",\"coolify_service\":\"Coolify-service\",\"service_uuid\":\"Service-UUID\",\"known_coolify_service_uuid\":\"Kendt Coolify service-UUID\",\"control_api\":\"Kontrol-API\",\"release_manager_api_endpoint\":\"Release Manager API-endpoint\",\"module\":\"Modul\",\"timeline_module_key\":\"Timeline-modulnøgle\"},\"errors\":{\"github_repositories\":\"Kunne ikke indlæse GitHub-repositories.\",\"github_branches\":\"Kunne ikke indlæse GitHub-branches.\",\"repository_branch_required\":\"Repository og branch er påkrævet før GitHub-adgang kan testes.\",\"github_access_failed\":\"Test af GitHub repository-adgang fejlede.\"},\"channels\":{\"title\":\"Kanaler\",\"subtitle\":\"Opret og juster gradvise release-kanaler.\",\"rollout_percent\":\"{percent}% udrulning\",\"already_configured\":\"Allerede konfigureret\",\"slug\":\"Slug\",\"slug_message\":\"Eksempel: canary\",\"slug_placeholder\":\"slug\",\"name\":\"Navn\",\"name_message\":\"Vises til operatører, når de gennemgår en kanal.\",\"name_placeholder\":\"Navn\",\"rollout\":\"Udrulning\",\"rollout_message\":\"0-100 procent af ikke-tildelt trafik.\",\"frontend_url\":\"Frontend-URL\",\"frontend_url_message\":\"Eksempel: https://canary.example.test\",\"frontend_url_placeholder\":\"Frontend-URL\",\"no_matching_release_url\":\"Ingen matchende release-URL.\",\"api_url\":\"API-URL\",\"api_url_message\":\"Eksempel: https://api-canary.example.test\",\"api_url_placeholder\":\"API-URL\",\"no_matching_api_url\":\"Ingen matchende API-URL.\",\"replay_capture\":\"Replay capture\",\"replay_capture_message\":\"Metadata er sikrere til brede kanaler.\",\"retention_days\":\"Opbevaringsdage\",\"retention_days_message\":\"1-365 dage.\",\"enabled\":\"Aktiveret\",\"default_channel\":\"Standardkanal\",\"replay_enabled\":\"Replay aktiveret\",\"frontend_chip\":\"Frontend: {url}\",\"api_chip\":\"API: {url}\"},\"assignments\":{\"title\":\"Tildelinger\",\"subtitle\":\"Fastgør brugere, medarbejdere eller kunder til release-kanaler.\",\"subject\":\"Emne\",\"subject_message\":\"Søg efter brugere, medarbejdere eller kunder, eller skriv et manuelt emne som user:42.\",\"subject_placeholder\":\"Søg eller skriv emne\",\"subject_empty\":\"Ingen emner fundet\",\"group_users\":\"Brugere\",\"group_subusers\":\"Medarbejdere\",\"group_customers\":\"Kunder\",\"group_manual\":\"Manuel\",\"manual_user\":\"Bruger #{id}\",\"manual_subuser\":\"Medarbejder #{id}\",\"manual_customer\":\"Kunde #{id}\",\"manual_description\":\"Brug indtastet værdi {subject}\",\"subject_type\":\"Emnetype\",\"subject_type_message\":\"Vælg identitetstypen, der skal fastgøres.\",\"customer\":\"Kunde\",\"customer_message\":\"Søg på kundenummer eller navn, og vælg derefter den præcise kunde.\",\"customer_placeholder\":\"Søg kunde\",\"subject_id\":\"Emne-ID\",\"subject_id_message\":\"Eksempel: bruger-id 42\",\"subject_id_placeholder\":\"Emne-id\",\"channel\":\"Kanal\",\"channel_message\":\"Fastgjorte emner springer procentudrulningen over.\",\"reason\":\"Årsag\",\"reason_message\":\"Eksempel: canary-validering for kundesupport.\",\"reason_placeholder\":\"Årsag\",\"expires\":\"Udløber\",\"expires_message\":\"Lad feltet være tomt for ingen automatisk udløb.\"},\"deployments\":{\"title\":\"Deployments\",\"subtitle\":\"Start, promover og inspicer release-deployments.\",\"manual_deployment_record\":\"Manuel deployment-post\",\"target\":\"Mål\",\"target_message\":\"Vælg et gemt mål, eller behold manuelle felter redigerbare.\",\"select_target_or_manual\":\"Vælg mål eller manuel\",\"channel\":\"Kanal\",\"app\":\"App\",\"repository\":\"Repository\",\"repository_message\":\"Eksempel: truckwash/front-end-vue\",\"repository_placeholder\":\"ejer/repo\",\"branch\":\"Branch\",\"branch_message\":\"Eksempel: master\",\"branch_placeholder\":\"branch\",\"commit_selection\":\"Commit-valg\",\"commit_selection_message\":\"Seneste slås op som branchens head med den konfigurerede GitHub-token.\",\"latest_from_branch\":\"Seneste fra branch\",\"specific_commit\":\"Specifik commit\",\"specific_commit_message\":\"Eksempel: feedface1234\",\"commit_sha_placeholder\":\"commit sha\",\"version_label\":\"Versionslabel\",\"version_label_message\":\"Eksempel: api-2026.05.19\",\"version_label_placeholder\":\"versionslabel\",\"commit_prefix\":\"Commit: {commit}\",\"test_access_tooltip\":\"Bekræft token-adgang til det valgte repository, branch og commit.\"},\"replay\":{\"title\":\"Replay\",\"subtitle\":\"Aktiver målrettet capture og gennemgå fejltimelines trin for trin.\",\"capture_channel\":\"Capture {channel}\",\"target_type\":\"Måltype\",\"target\":\"Mål\",\"target_message\":\"Eksempel: bruger-id 42 eller kanal-slug canary.\",\"target_placeholder\":\"Mål-id eller kanal-slug\",\"channel_scope\":\"Kanalafgrænsning\",\"channel_scope_message\":\"Valgfrit; begrænser replay capture til en kanal.\",\"no_channel_scope\":\"Ingen kanalafgrænsning\",\"capture_level\":\"Capture-niveau\",\"expires\":\"Udløber\",\"expires_message\":\"Lad feltet være tomt for manuel deaktivering.\",\"trace_id\":\"Trace-ID\",\"trace_id_message\":\"Eksempel: trace-canary-1\",\"trace_id_placeholder\":\"Trace-id\",\"channel\":\"Kanal\",\"channel_placeholder\":\"Kanal\",\"principal_id\":\"Principal-ID\",\"principal_id_placeholder\":\"Principal-id\",\"module\":\"Modul\",\"module_placeholder\":\"Modul\",\"severity\":\"Alvorlighed\",\"any_severity\":\"Alle alvorligheder\",\"no_timeline_events\":\"Ingen timeline-events matcher de aktuelle filtre.\"}}},\"connectivity\":{\"description\":\"@.capitalize:{'words.generated.dette'} løser @:{'words.generated.sig'} @:{'words.generated.som'} @:{'words.generated.regel'} @:{'words.generated.selv'}. @.capitalize:{'words.generated.vent'} @:{'words.generated.venligst'}, @:{'words.generated.mens'} @:{'words.generated.vi'} tjekker @:{'words.generated.serveren'}.\",\"footer\":\"@.capitalize:{'words.generated.hvis'} problemet fortsætter, @:{'words.generated.kontakt'} @:{'words.generated.venligst'} @:{'words.generated.support'}.\",\"no_internet\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.internetforbindelse'}.\",\"retry_in\":\"@:{'words.generated.prøver'} @:{'words.generated.igen'} @:{'words.generated.om'} {seconds} @:{'words.generated.sekunder'}...\",\"retry_now\":\"@:{'words.generated.prøver'} @:{'words.generated.at'} genoprette @:{'words.generated.forbindelsen'}...\",\"retry\":\"@:{'templates.generated.compat.common.retry'}\",\"server_down\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.forbindelse'} @:{'words.generated.til'} @:{'words.generated.serveren'}.\",\"subtitle\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.ser'} @:{'words.generated.ud'} @:{'words.generated.til'}, @:{'words.generated.at'} @:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.et_2'} problem @:{'words.generated.med'} @:{'words.generated.din'} @:{'words.generated.internetforbindelse'} @:{'words.generated.eller'} @:{'words.generated.vores'} @:{'words.generated.server'}.\",\"title\":\"Forbindelsesproblem\"},\"customer_creation\":{\"customer\":{\"benefit_credit\":\"@.capitalize:{'words.generated.kredit'} @:{'words.generated.konto'}\",\"benefit_credit_desc\":\"@.capitalize:{'words.generated.fa'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kredit'} @:{'words.generated.konto'} @:{'words.generated.med'} @:{'words.generated.manedlig'} @:{'words.generated.fakturering'}\",\"benefit_portal\":\"@:{'words.generated.kundeportal'}\",\"benefit_portal_desc\":\"@:{'words.generated.benyt'} kundeportalen @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.tilføje'} @:{'words.generated.køretøjer'}, @:{'words.generated.booke'} @:{'words.generated.vaske'}, downloade @:{'words.generated.fakturaer'}, @:{'words.generated.vaskecertifikater'} @:{'words.generated.og'} @:{'words.generated.information'} @:{'words.generated.for'} @:{'words.generated.historiske'} @:{'words.generated.vaske'}\",\"benefit_wash_desc\":\"@:{'words.generated.benyt'} @:{'words.generated.vores'} @:{'words.generated.nationale'} @:{'words.generated.netværk'} @:{'words.generated.af'} @:{'words.generated.vaskehaller'} @:{'words.generated.til'} @:{'words.generated.konkurrencedygtige'} @:{'words.generated.priser'}\",\"ean_label\":\"@:{'templates.generated.compat.admin.pos.ean'}\",\"email_label\":\"@:{'words.generated.firma'} @:{'words.generated.email'}\",\"intro\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.kunde'} @:{'words.generated.hos'} @:{'words.generated.truck'} @:{'words.generated.wash'} @:{'words.generated.far'} @:{'words.generated.du'} @:{'words.generated.adgang'} @:{'words.generated.til'}:\",\"phone_label\":\"@:{'words.generated.firma'} @:{'words.generated.telefon'}\",\"success_message\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.konto'} @:{'words.generated.er'} @:{'words.generated.blevet'} @:{'words.generated.oprettet'}. @.capitalize:{'words.generated.vi'} @:{'words.generated.har'} @:{'words.generated.sendt'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.email'} @:{'words.generated.med'} @:{'words.generated.yderligere'} @:{'words.generated.information'}.\",\"title\":\"@:{'words.generated.opret'} @:{'words.generated.dig'} @:{'words.generated.som'} @:{'words.generated.kunde'}\"},\"driver\":{\"benefit_24h\":\"@:{'words.generated.døgnvask'}\",\"benefit_24h_desc\":\"@:{'words.generated.vask'} @:{'words.generated.nar'} @:{'words.generated.det'} @:{'words.generated.passer'} @:{'words.generated.dig'} @:{'words.generated.udenfor'} @:{'words.generated.bemandet'} @:{'words.generated.abningstid'}\",\"benefit_booking_desc\":\"@:{'words.generated.book'} @:{'words.generated.vask'} @:{'words.generated.pa'} @:{'words.generated.tværs'} @:{'words.generated.af'} @:{'words.generated.landet'}\",\"benefit_find\":\"@:{'words.generated.find'} @:{'words.generated.vaskehaller'}\",\"benefit_find_desc\":\"naviger @:{'words.generated.hurtigt'} @:{'words.generated.og'} nemt @:{'words.generated.til'} @:{'words.replication.article.host_mention'} @:{'words.generated.nærmeste'} @:{'words.generated.vaskehal'} nær @:{'words.generated.dig'}\",\"benefit_loyalty\":\"Loyaltitetspoint\",\"benefit_loyalty_desc\":\"@:{'words.generated.optjen'} @:{'words.generated.og'} @:{'words.generated.brug'} @:{'words.generated.loyalitetspoint'} @:{'words.generated.hver'} @:{'words.generated.gang'} @:{'words.generated.du'} vasker @:{'words.generated.hos'} @:{'words.generated.truck'} @:{'words.generated.wash'} (@:{'words.generated.tilgængelig'} @:{'words.generated.fra'} @:{'words.generated.maj'} 2026)\",\"intro\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.chauffør'} @:{'words.generated.hos'} @:{'words.generated.truck'} @:{'words.generated.wash'} @:{'words.generated.far'} @:{'words.generated.du'} @:{'words.generated.adgang'} @:{'words.generated.til'}:\",\"phone_label\":\"@.capitalize:{'words.generated.chauffør'} @:{'words.generated.telefon'}\",\"submit\":\"@:{'words.generated.opret'} @:{'words.generated.konto'}\",\"title\":\"@:{'words.generated.opret'} @:{'words.generated.dig'} @:{'words.generated.som'} @:{'words.generated.chauffør'}\"},\"pre_title\":\"@:{'templates.generated.compat.header.customer_creation'}\",\"subtitle\":\"Opnå række fordele @:{'words.generated.ved'} @:{'words.generated.at'} @:{'words.generated.være'} @:{'words.generated.oprettet'} @:{'words.generated.som'} @:{'words.generated.kunde'} @:{'words.generated.eller'} @:{'words.generated.chauffør'} @:{'words.generated.hos'} @:{'words.generated.truck'} @:{'words.generated.wash'}\",\"title\":\"@:{'words.generated.opret'} @:{'words.generated.dig'} @:{'words.generated.hurtigt'} @:{'words.generated.som'} @:{'words.generated.ny'} @:{'words.generated.kunde'} @:{'words.generated.eller'} @:{'words.generated.ny'} @:{'words.generated.chauffør'} @:{'words.generated.hos'} @:{'words.generated.truck'} @:{'words.generated.wash'}\"},\"customer_rules\":{\"attributes\":{\"exemptFromAdministrationFee\":{\"description\":\"Opkræv @:{'words.generated.ikke'} @:{'words.generated.administrationsgebyr'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.kunde'}.\",\"label\":\"Fritag @:{'words.generated.for'} @:{'words.generated.administrationsgebyr'}\"},\"invoiceAllOrdersIndividually\":{\"description\":\"@:{'words.generated.opret'} @:{'words.generated.separate'} @:{'words.generated.fakturaer'} @:{'words.generated.i'} @:{'words.generated.stedet'} @:{'words.generated.for'} @:{'words.generated.at'} samle @:{'words.generated.kundens'} @:{'words.generated.ordrer'}.\",\"label\":\"@:{'words.generated.fakturer'} @:{'words.generated.alle'} @:{'words.generated.ordrer'} enkeltvis\"},\"invoiceWithStripe\":{\"description\":\"@.capitalize:{'words.generated.brug'} @:{'words.generated.stripe'}-@:{'words.generated.fakturering'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.kunde'}.\",\"label\":\"@:{'words.generated.fakturer'} @:{'words.generated.med'} @:{'words.generated.stripe'}\"},\"onlyTankCleaning\":{\"description\":\"Tillad @:{'words.generated.kun'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.kunde'}.\"},\"requiresReferenceNumber\":{\"description\":\"@:{'words.generated.kræv'} @:{'words.generated.et_2'} @:{'words.generated.referencenummer'} @:{'words.generated.pa'} @:{'words.generated.bookinger'} @:{'words.generated.og'} @:{'words.generated.ordrer'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.kunde'}.\",\"label\":\"@:{'words.generated.kræv'} @:{'words.generated.referencenummer'}\"},\"requiresRegistrationNumbersInvoice\":{\"description\":\"@:{'words.generated.kræv'} @:{'words.generated.registreringsnumre'} @:{'words.generated.pa'} @:{'words.generated.fakturaer'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.kunde'}.\",\"label\":\"@:{'words.generated.kræv'} @:{'words.generated.registreringsnumre'} @:{'words.generated.pa'} @:{'words.generated.faktura'}\"},\"restrictAdditionalServices\":{\"description\":\"@:{'words.generated.bloker'} @:{'words.generated.tillægsydelser'} @:{'words.generated.og'} add-ons @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.kunde'}.\",\"label\":\"@:{'words.generated.begræns'} @:{'words.generated.tillægsydelser'}\"},\"restrictInteriorCleaning\":{\"description\":\"@:{'words.generated.bloker'} @:{'words.generated.indvendig'} @:{'words.generated.vask'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.kunde'}.\",\"label\":\"@:{'words.generated.begræns'} @:{'words.generated.indvendig'} @:{'words.generated.vask'}\"},\"restrictSpotFree\":{\"description\":\"@:{'words.generated.bloker'} @:{'words.generated.pletfri'} @:{'words.generated.skyl'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.kunde'}.\",\"label\":\"@:{'words.generated.begræns'} @:{'words.generated.pletfri'} @:{'words.generated.skyl'}\"},\"restrictTankCleaning\":{\"description\":\"@:{'words.generated.bloker'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.kunde'}.\",\"label\":\"@:{'words.generated.begræns'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}\"},\"showPricesOnBookingPage\":{\"description\":\"@:{'words.generated.vis'} @:{'words.generated.kundens'} @:{'words.generated.priser'} @:{'words.generated.pa'} @:{'words.generated.bookingsiden'}.\",\"label\":\"@:{'words.generated.vis'} @:{'words.generated.priser'} @:{'words.generated.pa'} @:{'words.generated.bookingsiden'}\"},\"usePONumbers\":{\"description\":\"@:{'words.generated.aktiver'} @:{'words.generated.po'}-@:{'words.generated.numre'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.kunde'}.\",\"label\":\"@.capitalize:{'words.generated.brug'} @:{'words.generated.po'}-@:{'words.generated.numre'}\"}},\"manager\":{\"active_count\":\"{count} aktive\",\"errors\":{\"load\":\"Kunderegler kunne ikke indlæses.\",\"update\":\"Kundereglen kunne ikke opdateres.\"},\"no_target\":\"Der kræves et bruger-id eller kundenummer, før kunderegler kan administreres.\",\"toggle_unavailable\":\"Du har ikke tilladelse til at ændre denne kunderegel.\",\"unavailable\":\"Du har ikke tilladelse til at se kunderegler.\",\"unknown_active\":\"Ukendte aktive regler\"},\"tooltip\":{\"available_if_enabled\":\"Forbliver tilgængelige hvis aktiveret\",\"available_while_enabled\":\"Tilgængelige mens aktiv\",\"blocked_if_enabled\":\"Blokeres hvis aktiveret\",\"blocked_now\":\"Blokeret mens aktiv\",\"changes\":\"Ændringer\",\"groups\":{\"primary_products\":\"Primære produkter\",\"related_addons\":\"Tilknyttede add-ons\",\"standalone_additional_services\":\"Selvstændige tillægsydelser\"},\"load_failed\":\"Berørte produkter kunne ikke indlæses.\",\"loading_products\":\"Indlæser berørte produkter...\",\"no_affected_products\":\"Ingen berørte produkter fundet i det aktuelle produktkatalog.\"}},\"customers\":{\"add_customer\":\"@:{'templates.generated.compat.admin.pos.add_customer'}\",\"add_vehicle_subtitle\":\"@:{'words.generated.tilføj'} et nyt @:{'words.generated.køretøj'}\",\"add_vehicle_to_customer\":\"@:{'words.generated.tilføj'} @:{'words.generated.køretøj'} @:{'words.generated.til'} @:{'words.generated.kunde'}\",\"add_vehicle\":\"@:{'templates.generated.compat.vehicles.add'}\",\"confirm_delete_vehicle\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.dette'} @:{'words.generated.køretøj'}? @.capitalize:{'words.generated.dette'} @:{'words.generated.kan'} @:{'words.generated.ikke'} @:{'words.generated.fortrydes'}.\",\"confirm_remove_vehicle\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} fjerne @:{'words.generated.dette'} @:{'words.generated.køretøj'} @:{'words.generated.fra'} @:{'words.generated.kunden'}?\",\"contact\":{\"title\":\"Kontaktperson\"},\"cvr\":\"@:{'words.generated.cvr'}-@:{'words.generated.nummer'}\",\"delete_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.denne'} @:{'words.generated.kunde'}?\",\"delete_customer\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.kunde'}\",\"delete_selected_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} {count} @:{'words.generated.valgte'} @:{'words.generated.kunder'}?\",\"delete_selected\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.valgte'}\",\"edit_customer\":\"@:{'words.generated.rediger'} @:{'words.generated.kunde'}\",\"export\":\"@:{'words.generated.eksporter'} @:{'words.generated.kunder'}\",\"form\":{\"billing_type\":\"Faktureringstype\",\"contact_name\":\"Kontaktnavn\",\"contact_phone\":\"@:{'templates.generated.compat.admin.pos.contact_phone'}\",\"credit_limit\":\"Kreditgrense\",\"payment_due\":\"Betalingsfrist\",\"vat_registered\":\"Momsregistreret\"},\"import\":\"@:{'words.generated.importer'} @:{'words.generated.kunder'}\",\"no_customers\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.kunder'} @:{'words.generated.fundet'}\",\"no_vehicles\":\"@:{'templates.generated.compat.vehicles.no_vehicles'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.kundenavn'}, @:{'words.generated.kundenummer'}, @:{'words.generated.e'}-@:{'words.generated.mail'}, @:{'words.generated.telefon'}\",\"view_subtitle\":\"@.capitalize:{'words.generated.se'} kundedetaljer\",\"view_vehicles\":\"@:{'words.generated.vis'} @:{'words.generated.køretøjer'}\"},\"department_dashboard\":{\"bookings\":{\"all\":\"@:{'templates.generated.compat.common.all'}\",\"certificate_download_error\":\"@.capitalize:{'words.generated.fejl'} @:{'words.generated.ved'} @:{'words.generated.download'} @:{'words.generated.af'} @:{'words.generated.certifikat'}\",\"certificate_generated\":\"@.capitalize:{'words.generated.certifikat'} @:{'words.generated.genereret'}\",\"search\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.bookinger'}...\",\"sent_to\":\"@.capitalize:{'words.generated.sendt'} @:{'words.generated.til'}\",\"services\":{\"exterior_semi_trailer\":\"@.capitalize:{'words.generated.udvendig'} @:{'words.generated.sættevogn'}\",\"exterior_trailer_wash\":\"@.capitalize:{'words.generated.udvendig'} @:{'words.generated.trailervask'}\",\"interior_trailer_wash\":\"@.capitalize:{'words.generated.indvendig'} @:{'words.generated.trailervask'}\"},\"subtitle\":\"@:{'templates.generated.compat.bookings.subtitle'}\",\"upcoming\":\"Kommande\",\"wash_completed\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.fuldført'}\"},\"calendar\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.kalender'} @:{'words.generated.for'} @:{'words.generated.afdelingen'}\"},\"customers\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.kunder'} @:{'words.generated.i'} @:{'words.generated.afdelingen'}\"},\"daily_report\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.daglige'} @:{'words.generated.rapporter'}\"},\"employees\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.medarbejdere'} @:{'words.generated.i'} @:{'words.generated.afdelingen'}\"},\"home\":{\"subtitle\":\"@.capitalize:{'words.generated.velkommen'} @:{'words.generated.til'} @:{'words.generated.afdelingens'} @:{'words.generated.dashboard'}\"},\"invoices\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.fakturaer'} @:{'words.generated.for'} @:{'words.generated.afdelingen'}\"},\"overview\":{\"charts\":\"Charts\",\"list\":\"@:{'templates.generated.compat.calendar.fullcalendar.list'}\",\"subtitle\":\"@:{'templates.generated.compat.statistics.overview.subtitle'}\"},\"pos\":{\"subtitle\":\"@.capitalize:{'words.generated.registrer'} @:{'words.generated.salg'}\"},\"products\":{\"addons_subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.produkttilvalg'} @:{'words.generated.i'} @:{'words.generated.afdelingen'}\",\"no_addons\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.tilvalg'} @:{'words.generated.fundet'}.\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.produkter'} @:{'words.generated.i'} @:{'words.generated.afdelingen'}\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.afdelingen'}\"},\"sidebar\":{\"time_bookings\":\"@.capitalize:{'words.generated.tidsbookinger'}\"},\"statistics\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.statistik'} @:{'words.generated.for'} @:{'words.generated.afdelingen'}\"},\"time_bookings\":{\"subtitle\":\"@:{'templates.generated.compat.admin.time_bookings.subtitle'}\"},\"vehicles\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.køretøjer'} @:{'words.generated.i'} @:{'words.generated.afdelingen'}\"},\"wash_log\":{\"add_wash\":\"@:{'words.generated.tilføj'} @:{'words.generated.vask'}\",\"add_wash_title\":\"@:{'words.generated.tilføj'} @:{'words.generated.vask'} @:{'words.generated.til'} @:{'words.generated.log'}\",\"created_certificate\":\"@.capitalize:{'words.generated.vaskecertifikat'} @:{'words.generated.oprettet'}. @.capitalize:{'words.generated.det'} @:{'words.generated.abnes'} @:{'words.generated.nu'} @:{'words.generated.i'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.fane'}.\",\"creating_certificate\":\"@.capitalize:{'words.generated.opretter'} @:{'words.generated.vaskecertifikat'}...\",\"discount\":\"@:{'templates.generated.compat.common.discount'}\",\"download_csv\":\"@.capitalize:{'words.generated.download'} CSV\",\"download_excel\":\"@:{'templates.generated.compat.pagination.download_excel'}\",\"edit_wash\":\"@:{'words.generated.rediger'} @:{'words.generated.vask'}\",\"ended\":\"Afsluttet\",\"no_washes\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.vaske'} @:{'words.generated.fundet'}\",\"open_wash_certificate\":\"@:{'words.generated.abn'} @:{'words.generated.vaskecertifikat'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.registreringsnummer'}, @:{'words.generated.reference'}, @:{'words.generated.medarbejder'}, @:{'words.generated.kunde'}\",\"showing_x_of_y\":\"@.capitalize:{'words.generated.viser'} {x} @:{'words.generated.af'} {y}\",\"started\":\"Startet\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.vaskelog'} @:{'words.generated.for'} @:{'words.generated.afdelingen'}\",\"subtitle_expanded\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.over'} @:{'words.generated.vask'} @:{'words.generated.i'} @:{'words.generated.afdelingen'}\",\"washes_per_page\":\"@:{'words.generated.vask'} @:{'words.generated.per'} @:{'words.generated.side'}\",\"washes_per_page_title\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.per'} @:{'words.generated.side'}\"}},\"department_reports\":{\"avg_revenue_per_wash\":\"@.capitalize:{'words.generated.gns'}. @:{'words.generated.omsætning'} @:{'words.generated.pr'}. @:{'words.generated.vask'}\",\"revenue\":\"@:{'templates.generated.compat.statistics.revenue'}\",\"today\":\"@:{'words.generated.i'} @:{'words.generated.dag'}\"},\"departments\":{\"addons\":{\"new_addon\":\"@.capitalize:{'words.generated.nyt'} @:{'words.generated.tilvalg'}\"},\"confirm_delete\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.denne'} @:{'words.generated.afdeling'}?\",\"dashboard\":\"@.capitalize:{'words.generated.dashboard'}\",\"delete_department\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.afdeling'}\",\"edit_department\":\"@:{'words.generated.rediger'} @:{'words.generated.afdeling'}\",\"form\":{\"latitude\":\"Breddegrad\",\"longitude\":\"Lengdegrad\"},\"integrations\":{\"mailersend_api_key\":\"@:{'words.generated.mailersend'} @:{'words.generated.api'}-@:{'words.generated.nøkkel'}\",\"subtitle\":\"@:{'words.generated.konfigurer'} @:{'words.generated.integrationer'} @:{'words.generated.for'} @:{'words.generated.afdelingen'}\"},\"new_department\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.afdeling'}\",\"no_departments\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.afdelinger'} @:{'words.generated.fundet'}\",\"opening_hours\":{\"closed\":\"Stengt\"},\"pricing\":{\"custom_pricing_disabled\":\"Anvender standardpriser\",\"custom_pricing_enabled\":\"Kun egne priser\",\"custom_pricing_missing_price\":\"Når denne er aktiveret, erstattes manglende afdelingspriser med 999999. (I stedet for at bruge standardprisen)\",\"custom_pricing_only\":\"Kun egne priser\",\"effective_department_price\":\"Effektiv afdelingspris\"},\"search_placeholder\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.afdelingsnavn'}\",\"select_department\":\"@.capitalize:{'words.generated.vælg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.afdeling'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.afdelinger'}\",\"tab\":{\"info\":\"@:{'templates.generated.compat.common.info'}\",\"opening_hours\":\"Åpningstider\",\"product_addons\":\"@.capitalize:{'words.generated.produkttilvalg'}\",\"wash_products\":\"Vaskeprodukter\"},\"title\":\"@:{'templates.generated.compat.common.departments'}\"},\"employees\":{\"confirm_delete\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.denne'} @:{'words.generated.medarbejder'}?\",\"delete_employee\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.medarbejder'}\",\"edit_employee\":\"@:{'words.generated.rediger'} @:{'words.generated.medarbejder'}\",\"new_employee\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.medarbejder'}\",\"no_employees\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.medarbejdere'} @:{'words.generated.fundet'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.navn'}, @:{'words.generated.e'}-@:{'words.generated.mail'}, @:{'words.generated.telefon'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.medarbejdere'}\"},\"error_report\":{\"button\":\"Rapporter fejl\",\"title\":\"Rapporter fejl\",\"subtitle\":\"Send de seneste fejldetaljer til support. Et skærmbillede vedhæftes, når det er muligt.\",\"before_error\":\"Hvad lavede du, før fejlen opstod?\",\"expected\":\"Hvad forventede du, der ville ske?\",\"actual\":\"Hvad skete der faktisk?\",\"before_error_placeholder\":\"Beskriv handlingen, du var i gang med, for eksempel at åbne ordrer eller vælge en kunde.\",\"expected_placeholder\":\"Beskriv det resultat, du forventede at se.\",\"actual_placeholder\":\"Beskriv, hvad du så i stedet, inklusive eventuel fejltekst.\",\"consent\":\"Jeg accepterer, at de seneste request-fejl, Vue-fejl, browseroplysninger, mine svar og et app-skærmbillede, når det er muligt, indsamles til fejlfinding.\",\"submit\":\"Send rapport\",\"submitted\":\"Fejlrapporten er sendt.\",\"capture_failed\":\"Skærmbilledet kunne ikke oprettes. Rapporten sendes uden skærmbillede.\",\"submit_failed\":\"Fejlrapporten kunne ikke sendes.\",\"required\":\"Alle felter og accept af dataindsamling er påkrævet.\",\"page_subtitle\":\"Rapporterede skærme, request-fejl og Vue-fejl\",\"screenshot\":\"Skærmbillede\",\"request_errors\":\"Request-fejl\",\"vue_errors\":\"Vue-fejl\",\"runtime_context\":\"Runtime-kontekst\",\"empty\":\"Ingen fejlrapporter fundet.\",\"resolve\":\"Marker som løst\",\"reopen\":\"Genåbn\",\"resolution_note\":\"Løsningsnote\",\"filters\":{\"open\":\"Åben\",\"resolved\":\"Løst\",\"all\":\"Alle\"}},\"errors\":{\"forbidden\":\"@.capitalize:{'words.generated.adgang'} @:{'words.generated.nægtet'}.\",\"general\":\"@:{'templates.generated.compat.messages.error'}\",\"network_error\":\"@:{'words.generated.netværksfejl'}\",\"network\":\"@:{'words.generated.netværksfejl'}. @:{'words.generated.kontroller'} @:{'words.generated.din'} @:{'words.generated.forbindelse'}.\",\"not_found\":\"Ressourcen @:{'words.generated.blev'} @:{'words.generated.ikke'} @:{'words.generated.fundet'}.\",\"parse_error\":{\"unknown\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ukendt'} @:{'words.generated.fejl'}. @.capitalize:{'words.generated.prøv'} @:{'words.generated.venligst'} @:{'words.generated.igen'}.\"},\"server_error\":\"@:{'words.generated.serverfejl'}\",\"server\":\"@:{'words.generated.serverfejl'}. @.capitalize:{'words.generated.prøv'} @:{'words.generated.venligst'} @:{'words.generated.igen'} senere.\",\"timeout\":\"@:{'words.generated.anmodningen'} tog @:{'words.generated.for'} lang @:{'words.generated.tid'}. @.capitalize:{'words.generated.prøv'} @:{'words.generated.venligst'} @:{'words.generated.igen'}.\",\"unauthorized\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.er'} @:{'words.generated.ikke'} autoriseret @:{'words.generated.til'} @:{'words.generated.at'} udføre @:{'words.generated.denne'} @:{'words.generated.handling'}.\",\"validation\":\"@.capitalize:{'words.generated.valideringsfejl'}. @:{'words.generated.kontroller'} @:{'words.generated.din'} indtastning.\"},\"global_search\":{\"actions\":{\"back_to_results\":\"@.capitalize:{'words.generated.tilbage'} @:{'words.generated.til'} @:{'words.generated.resultater'}\",\"clear_results\":\"@:{'words.generated.ryd'} @:{'words.generated.resultater'}\",\"close_settings\":\"@:{'words.generated.luk'} @:{'words.generated.indstillinger'}\",\"run_search\":\"@:{'words.generated.kør'} @:{'words.generated.søgning'}\"},\"badges\":{\"score\":\"@:{'words.generated.score'} {score}\"},\"cache\":{\"clear_cache\":\"@:{'words.generated.ryd'} @:{'words.generated.cache'}\",\"errors\":{\"types_required\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.mindst'} @:{'words.generated.en'} @:{'words.generated.type'}, @:{'words.generated.nar'} omfanget @:{'words.generated.er'} \\\"types\\\".\"},\"messages\":{\"cleared\":\"@.capitalize:{'words.generated.systemsøgnings'}-cacher ryddet.\",\"rebuild_queued\":\"@.capitalize:{'words.generated.genopbygning'} @:{'words.generated.af'} @:{'words.generated.systemsøgnings'}-@:{'words.generated.cache'} @:{'words.generated.sat'} @:{'words.generated.i'} @:{'words.generated.kø'}.\"},\"queue_rebuild\":\"søt @:{'words.generated.genopbygning'} @:{'words.generated.i'} @:{'words.generated.kø'}?\",\"rebuild_scope\":\"Genopbygningsomfang\",\"rebuild_types\":\"Genopbyg @:{'words.generated.typer'}\",\"scope_all\":\"@:{'words.generated.alle'}\",\"scope_dirty\":\"Ændrede\",\"scope_types\":\"@:{'words.generated.typer'}\",\"superuser_only\":\"@:{'words.generated.cacheværktøjer'} @:{'words.generated.er'} @:{'words.generated.kun'} @:{'words.generated.tilgængelige'} @:{'words.generated.for'} @:{'words.generated.superbrugere'}.\",\"title\":\"@:{'words.generated.cacheværktøjer'} @:{'words.generated.for'} @:{'words.generated.superbrugere'}\"},\"department_goals\":{\"loading\":\"@.capitalize:{'words.generated.indlæser'} @:{'words.generated.malfremskridt'}...\",\"overview\":\"@.capitalize:{'words.generated.malfremskridt'}\",\"period\":\"@:{'templates.generated.compat.objects.goals.columns.period'}\",\"progress_unavailable\":\"@.capitalize:{'words.generated.malfremskridt'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.tilgængeligt'} @:{'words.generated.endnu'}.\"},\"entity_types\":{\"bookings\":\"Legacy @:{'words.generated.bookinger'}\",\"bookings_new\":\"@.capitalize:{'words.generated.nye'} @:{'words.generated.bookinger'}\",\"currency_conversion_rates\":\"Valutaomregningskurser\",\"customer_codes\":\"Kundekoder\",\"customer_default_department\":\"@.capitalize:{'words.generated.kundens'} standardafdeling\",\"customer_discounts\":\"@.capitalize:{'words.generated.kunderabatter'}\",\"customer_fixed_prices\":\"Kundefaste @:{'words.generated.priser'}\",\"customer_notes\":\"Kundenoter\",\"customer_vehicles_addons\":\"@.capitalize:{'words.generated.tilvalg'} @:{'words.generated.til'} kundekøretøjer\",\"customers\":\"@:{'templates.generated.compat.common.customers'}\",\"department_goals\":\"Afdelingsmål\",\"department_selfserve_condition_rules\":\"@.capitalize:{'words.generated.afdelingens'} @:{'words.generated.regler'} @:{'words.generated.for'} @:{'words.generated.selfservice'}-@:{'words.generated.betingelser'}\",\"department_selfserve_conditions\":\"@.capitalize:{'words.generated.afdelingens'} @:{'words.generated.selfservice'}-@:{'words.generated.betingelser'}\",\"department_selfserve_questions\":\"@.capitalize:{'words.generated.afdelingens'} @:{'words.generated.selfservice'}-@:{'words.generated.spørgsmal'}\",\"department_selfserve_tasks\":\"@.capitalize:{'words.generated.afdelingens'} @:{'words.generated.selfservice'}-@:{'words.generated.opgaver'}\",\"department_selfserve_vehicle_conditions\":\"@.capitalize:{'words.generated.afdelingens'} @:{'words.generated.selfservice'}-@:{'words.generated.køretøjsbetingelser'}\",\"fxratesapi_conversion_rates\":\"@:{'words.generated.fxratesapi'}-omregningskurser\",\"module_config\":\"Modulkonfiguration\",\"motorapi_lookups\":\"@:{'words.generated.motorapi'}-opslag\",\"order_items\":\"@:{'templates.generated.compat.tables.pos.order_items'}\",\"plate_scanners\":\"@:{'templates.generated.compat.superuser.nav.scanners'}\",\"plate_scans\":\"Nummerpladescanninger\",\"stripe_module_customers\":\"@:{'words.generated.stripe'}-modulkunder\",\"stripe_module_orders\":\"@:{'words.generated.stripe'}-modulordrer\",\"stripe_payment_intents\":\"@:{'words.generated.stripe'}-betalingsintentioner\",\"subusers\":\"Subbrugere\",\"xlvask_customers\":\"@:{'words.generated.xlvask_xlvask'}-@:{'words.generated.kunder'}\",\"xlvask_potential_order_matches\":\"@:{'words.generated.xlvask_xlvask'} potentielle ordrematches\",\"xlvask_usage_log_wash_items\":\"@:{'words.generated.xlvask_xlvask'} vaskeelementer @:{'words.generated.i'} @:{'words.generated.forbrugslog'}\",\"xlvask_usage_logs\":\"@:{'words.generated.xlvask_xlvask'}-forbrugslogs\",\"xlvask_vehicles\":\"@:{'words.generated.xlvask_xlvask'}-@:{'words.generated.køretøjer'}\"},\"errors\":{\"enter_query\":\"@:{'words.generated.indtast'} @:{'words.replication.host_definite_suffix'} søgeforespørgsel.\",\"invalid_payload\":\"@.capitalize:{'words.generated.ugyldig'} @:{'words.generated.payload'} @:{'words.generated.i'} søgesvaret.\",\"request_failed\":\"@:{'words.generated.anmodningen'} @:{'words.generated.mislykkedes'}.\"},\"groups\":{\"active\":\"@:{'words.generated.aktiv'} @:{'words.generated.gruppe'}: {group}\",\"description\":\"@.capitalize:{'words.generated.vælg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.gruppe'} @:{'words.generated.for'} @:{'words.generated.at'} filtrere @:{'words.generated.synlige'} @:{'words.generated.resultater'}.\",\"empty_hint\":\"@.capitalize:{'words.generated.kør'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.søgning'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.indlæse'} @:{'words.generated.grupperede'} @:{'words.generated.resultater'}.\",\"summary\":\"@.capitalize:{'words.generated.grupperede'} @:{'words.generated.resultater'} (@:{'words.generated.efter'} objekttype)\",\"title\":\"Resultatgrupper\"},\"launcher\":{\"last_search\":\"@.capitalize:{'words.generated.seneste'} @:{'words.generated.søgning'}: \\\"{query}\\\", {total} @:{'words.generated.resultater'}\"},\"meta\":{\"allowed_types\":\"Tilladte @:{'words.generated.typer'}\",\"cache_hit\":\"@.capitalize:{'words.generated.cache'}-hit\",\"hide\":\"@:{'words.generated.skjul'} @:{'words.generated.meta'}\",\"intent\":{\"confidence\":\"Troværdighed\",\"entity_hints\":\"Enhedshints\",\"expanded_terms\":\"Udvidede termer\",\"fallback_reason\":\"@.capitalize:{'words.generated.arsag'} @:{'words.generated.til'} @:{'words.generated.fallback'}\",\"invoked\":\"Kaldt\",\"source\":\"@.capitalize:{'words.generated.kilde'}\",\"title\":\"@.capitalize:{'words.generated.diagnostik'} @:{'words.generated.for'} @:{'words.generated.intent'}-@:{'words.generated.parser'}\"},\"limit\":\"Grænse\",\"max_results\":\"Maks. resultater\",\"no\":\"@:{'words.generated.nej'}\",\"offset\":\"Offset\",\"returned\":\"Returneret\",\"show\":\"@:{'words.generated.vis'} @:{'words.generated.meta'}\",\"truncated\":\"Afkortet\",\"yes\":\"@:{'words.generated.ja'}\"},\"progress\":{\"fetching_known\":\"@.capitalize:{'words.generated.henter'} @:{'words.generated.side'} {pagesDone} @:{'words.generated.af'} {pagesTotal}\",\"fetching_unknown\":\"@.capitalize:{'words.generated.henter'} sider... ({pagesDone} @:{'words.generated.hentet'})\",\"preparing\":\"Forbereder @:{'words.generated.søgning'}...\",\"results_loaded\":\"{loaded} / {total} @:{'words.generated.resultater'} @:{'words.generated.indlæst'}\"},\"results\":{\"association\":\"Relation\",\"cap\":\"{returned} af {max}\",\"cap_truncated\":\"{returned} af {max} vist\",\"empty\":\"@.capitalize:{'words.generated.kør'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.søgning'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.indlæse'} @:{'words.generated.resultater'}.\",\"none_for_search\":\"@.capitalize:{'words.generated.ingen'} {group}-@:{'words.generated.resultater'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.søgning'}.\",\"payload\":\"@.capitalize:{'words.generated.payload'}\",\"range\":\"@.capitalize:{'words.generated.resultater'} {start}-{end} @:{'words.generated.af'} {total}\"},\"search\":{\"placeholder\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.objekter'}, @:{'words.generated.kunder'}, @:{'words.generated.ordrer'}...\"},\"settings_menu\":{\"object_types\":\"Filtrer objekttyper\",\"open_hint\":\"@.capitalize:{'words.generated.indstillinger'} @:{'words.generated.abnes'} @:{'words.generated.i'} panelet @:{'words.generated.til'} @:{'words.generated.højre'}.\",\"pagination\":\"Paginering\"},\"settings\":{\"exclude_entity_types\":\"@:{'words.generated.ekskluder'} @:{'words.generated.entitetstyper'}\",\"include_all\":\"@:{'words.generated.inkluder'} @:{'words.generated.alle'}\",\"include_associations\":\"@:{'words.generated.inkluder'} relationer\",\"include_entity_types\":\"@:{'words.generated.inkluder'} @:{'words.generated.entitetstyper'}\",\"include_intent_diagnostics\":\"@:{'words.generated.inkluder'} @:{'words.generated.diagnostik'} @:{'words.generated.for'} @:{'words.generated.intent'}-@:{'words.generated.parser'}\",\"manage_description\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.visning'} @:{'words.generated.og'} @:{'words.generated.diagnostik'}.\",\"methods\":{\"get\":\"@.upper:{'words.generated.get'} (@:{'words.generated.query'}-parametre)\",\"post\":\"POST (@:{'words.generated.json'}-body)\"},\"reset_defaults\":\"@:{'words.generated.nulstil'} @:{'words.generated.standarder'}\",\"reset_type_filters\":\"@:{'words.generated.nulstil'} typefiltre\",\"search_method\":\"søgemetode\",\"show_grouped_summary\":\"@:{'words.generated.vis'} grupperet @:{'words.generated.oversigt'}\",\"show_payload_inspector\":\"@:{'words.generated.vis'} @:{'words.generated.payload'}-inspektør\",\"show_score_badges\":\"@:{'words.generated.vis'} scorebadges\"},\"title\":\"Avanceret systemsøgning\"},\"global\":{\"abnormal\":\"Unormal\",\"add_desc\":\"@:{'words.generated.tilføj'} @:{'words.replication.host_definite_suffix'} note @:{'words.generated.til'} ordren\",\"add_other_product\":\"@:{'words.generated.tilføj'} @:{'words.generated.andet'} @:{'words.generated.produkt'}\",\"add\":\"@:{'templates.generated.compat.common.add'}\",\"additional_items\":\"@.capitalize:{'words.generated.yderligere'} @:{'words.generated.varer'}\",\"all_booked\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.bogført'}\",\"attach_to_order\":\"@:{'words.generated.vedhæft'} @:{'words.generated.til'} @:{'words.generated.transaktion'}\",\"auto_start_on_lpr\":\"Auto-@:{'words.generated.start'} @:{'words.generated.ved'} LPR\",\"barred\":\"Spærret\",\"booked\":\"@.capitalize:{'words.generated.bogført'}\",\"cancelled\":\"@:{'templates.generated.compat.common.cancelled'}\",\"capture\":\"Indfang\",\"change_customer\":\"@:{'words.generated.skift'} @:{'words.generated.kunde'}\",\"clear_all\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.alt'}\",\"closed\":\"@.capitalize:{'words.generated.lukket'}\",\"closing_hour\":\"Lukketid\",\"collapse\":\"Sammenfold\",\"collection\":\"Samling\",\"compare\":\"@:{'words.generated.sammenlign'}\",\"complete_order\":\"Fuldfør @:{'words.generated.ordre'}\",\"complete\":\"@:{'words.generated.fuldfør'}\",\"completed\":\"@:{'templates.generated.compat.common.completed'}\",\"configuration\":\"@.capitalize:{'words.generated.konfiguration'}\",\"confirm_delete_message\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.dette'} @:{'words.generated.objekt'}?\",\"confirm_delete\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.slet'}\",\"confirmation_needed\":\"@.capitalize:{'words.generated.bekræftelse'} nødvendig\",\"copy\":\"@:{'templates.generated.compat.common.copy'}\",\"date_from\":\"@.capitalize:{'words.generated.dato'} @:{'words.generated.fra'}\",\"date_to\":\"@.capitalize:{'words.generated.dato'} @:{'words.generated.til'}\",\"default\":\"@.capitalize:{'words.generated.standard'}\",\"defaults\":\"@.capitalize:{'words.generated.standarder'}\",\"delete_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.passnøglen'} \\\"{name}\\\"? Dette kan @:{'words.generated.ikke'} fortrydes.\",\"delete_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.slette'} @:{'words.generated.passkey'}. @.capitalize:{'words.generated.prøv'} @:{'words.generated.venligst'} @:{'words.generated.igen'}.\",\"delete_passkey\":\"Slet @:{'words.generated.passkey'}\",\"delete\":\"@:{'templates.generated.compat.common.delete'}\",\"deleted_successfully\":\"@.capitalize:{'words.generated.passkey'} @:{'words.generated.er'} @:{'words.generated.slettet'}.\",\"download_wash_certificate\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.vaskecertifikat'}\",\"edit\":\"@:{'templates.generated.compat.common.edit'}\",\"emphasis\":\"Fremhævet\",\"error_loading_transaction\":\"@:{'words.generated.hentning'} @:{'words.generated.mislykkedes'}\",\"error_messages\":{\"not_array\":\"@.capitalize:{'words.generated.data'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'}\",\"not_object\":\"@.capitalize:{'words.generated.data'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.et_2'} @:{'words.generated.objekt'}\",\"not_string\":\"@.capitalize:{'words.generated.data'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.replication.host_definite_suffix'} tekststreng\"},\"excl_tax\":\"ekskl. @:{'words.generated.moms'}\",\"expand\":\"Udfold\",\"failed_to_send\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.sende'} faktura\",\"failed\":\"@.capitalize:{'words.generated.fejlede'}\",\"fixed_price_arrangements\":\"@.capitalize:{'words.generated.fastprisaftaler'}\",\"found\":\"@.capitalize:{'words.generated.fundet'}\",\"generate_wash_certificate\":\"Generer @:{'words.generated.vaskecertifikat'}\",\"generated\":\"@.capitalize:{'words.generated.genereret'}\",\"handheld_pending_order\":\"Håndholdt\",\"have_not\":\"@.capitalize:{'words.generated.har'} @:{'words.generated.ikke'}\",\"have\":\"@.capitalize:{'words.generated.har'}\",\"hide_content\":\"@:{'words.generated.skjul'} @:{'words.generated.indhold'}\",\"history\":\"Historik\",\"home\":\"@:{'templates.generated.compat.common.home'}\",\"ignore_customer_arrangements\":\"@:{'words.generated.ignorer'} kundeaftaler\",\"import_all\":\"@:{'words.generated.importer'} @:{'words.generated.alle'}\",\"import\":\"@:{'templates.generated.compat.common.import'}\",\"in_progress\":\"behandles\",\"in\":\"@:{'words.generated.i'}\",\"incl_tax\":\"@:{'words.generated.inkl'}. @:{'words.generated.moms'}\",\"include_all_items_on_invoice\":\"@:{'words.generated.inkluder'} @:{'words.generated.alle'} @:{'words.generated.varer'} @:{'words.generated.pa'} @:{'words.generated.faktura'}\",\"information\":\"Informasjon\",\"invalid\":\"@.capitalize:{'words.generated.ugyldig'}\",\"invoice_already_created\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.allerede'} @:{'words.generated.oprettet'}\",\"invoice_now\":\"@:{'words.generated.fakturer'} @:{'words.generated.nu'}\",\"invoice_per_order\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.pr'}. @:{'words.generated.ordre'}\",\"lane\":\"@.capitalize:{'words.generated.vaskebane'}\",\"last_wash\":\"@:{'templates.generated.compat.common.last_wash'}\",\"link\":\"@:{'words.generated.tilknyt'}\",\"login_as_customer\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'} @:{'words.generated.som'} @:{'words.generated.kunde'}\",\"login_for_products\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'} @:{'words.generated.for'} @:{'words.generated.at'} vælge @:{'words.generated.produkter'} @:{'words.generated.til'} @:{'words.generated.din'} @:{'words.generated.booking'}.\",\"login_with_qr_code\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'} @:{'words.generated.med'} @:{'words.generated.qr'} @:{'words.generated.kode'}\",\"login_with\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'} @:{'words.generated.med'}\",\"login\":\"@:{'templates.generated.compat.common.login'}\",\"manage\":\"@.capitalize:{'words.generated.administrer'}\",\"mark_as_completed\":\"@:{'words.generated.marker'} @:{'words.generated.som'} @:{'words.generated.fuldført'}\",\"mark_as_not_duplicate\":\"@:{'words.generated.marker'} @:{'words.generated.som'} @:{'words.generated.ikke'} duplikat\",\"month\":\"@:{'templates.generated.compat.common.month'}\",\"my\":\"@:{'words.generated.mine'}\",\"no_additional_items\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.yderligere'} @:{'words.generated.varer'}\",\"no_applicable_booking_types\":\"@.capitalize:{'words.generated.ingen'} gældende @:{'words.generated.bookingtyper'}, @:{'words.generated.prøv'} @:{'words.generated.at'} @:{'words.generated.vælge'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.anden'} @:{'words.generated.afdeling'}.\",\"no_data\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.data'}\",\"no_slots_available\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.ingen'} ledige @:{'words.generated.tider'}\",\"no_transactions_yet\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.transaktioner'} @:{'words.generated.endnu'}\",\"non_included_products\":\"@.capitalize:{'words.generated.ikke'} inkluderede @:{'words.generated.produkter'}\",\"not_completed\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.fuldført'}\",\"not_configured\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.konfigureret'}\",\"not_synchronized\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.synkroniseret'}\",\"note\":\"@:{'templates.generated.compat.common.note'}\",\"nothing_left_to_show\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.mere'} @:{'words.generated.at'} @:{'words.generated.vise'}\",\"nothing_to_do_all_set\":\"Sådan, @:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.mere'} @:{'words.generated.at'} @:{'words.generated.gøre'} @:{'words.generated.her'}!\",\"only_tank_cleaning\":\"@.capitalize:{'words.generated.only'} @:{'words.generated.tankcleaning'}\",\"open\":\"Åben\",\"opening_hour\":\"@.capitalize:{'words.generated.abningstid'}\",\"opening_hours\":\"@.capitalize:{'words.generated.abningstider'}\",\"optional\":\"@:{'words.generated.valgfri'}\",\"or_scan_plates\":\"@.capitalize:{'words.generated.eller'} @:{'words.generated.scan'} plader\",\"other_period\":\"@.capitalize:{'words.generated.anden'} @:{'words.generated.periode'}\",\"other\":\"@.capitalize:{'words.generated.andet'}\",\"password\":\"@.capitalize:{'words.generated.adgangskode'}\",\"past\":\"Fortid\",\"payment_status\":\"@.capitalize:{'words.generated.betalingsstatus'}\",\"payment\":{\"amount\":\"@.capitalize:{'words.generated.beløb'}\",\"fixed_pricing\":\"@.capitalize:{'words.generated.fast'} @:{'words.generated.pris'}\",\"method\":\"Betalingsmetode\",\"payment_intent\":\"Betalingsintention\",\"payment_recieved\":\"@.capitalize:{'words.generated.betaling'} @:{'words.generated.modtaget'}\",\"receipt\":\"@.capitalize:{'words.generated.kvittering'}\",\"receipt_url\":\"Kvitterings @:{'words.generated.url'}\",\"transaction_id\":\"Transaktions @.upper:{'words.generated.id'}\",\"type\":{\"bank_transfer\":\"Bankoverførsel\",\"card\":\"@.capitalize:{'words.generated.kort'}\",\"cash\":\"@.capitalize:{'words.generated.kontant'}\"}},\"pending\":\"@:{'templates.generated.compat.common.pending'}\",\"phone_country_code\":\"@.capitalize:{'words.generated.landekode'}\",\"phone_number\":\"@.capitalize:{'words.generated.telefonnummer'}\",\"possible_duplicates\":\"@.capitalize:{'words.generated.mulige'} duplikater\",\"preview\":\"@:{'words.generated.forhandsvis'}\",\"previous\":\"@.capitalize:{'words.generated.tidligere'}\",\"price_match\":\"Prisoverensstemmelse\",\"price_unmatch\":\"Prisuoverensstemmelse\",\"prices\":\"@.capitalize:{'words.generated.priser'}\",\"print\":\"@:{'words.generated.print'}\",\"processing\":\"@:{'templates.generated.compat.common.processing'}\",\"queue\":\"@.capitalize:{'words.generated.kø'}\",\"ready_to_wash\":\"@.capitalize:{'words.generated.klar'} @:{'words.generated.til'} @:{'words.generated.vask'}\",\"recent\":\"Nylig\",\"recommended\":\"Anbefalet\",\"register\":\"@:{'words.generated.opret'} @:{'words.generated.bruger'}\",\"regret\":\"@:{'templates.generated.compat.common.undo'}\",\"reject\":\"Afvis\",\"related_service\":\"Relateret @:{'words.generated.service'}\",\"required\":\"@:{'templates.generated.compat.common.required'}\",\"requires_action\":\"@.capitalize:{'words.generated.kræver'} @:{'words.generated.handling'}\",\"reset\":\"@:{'templates.generated.compat.common.reset'}\",\"rows\":\"@:{'words.generated.rækker'}\",\"scanning\":\"Scanner\",\"search_cvr\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.cvr'} @:{'words.generated.nummer'}...\",\"search_phone\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.telefonnummer'}\",\"search_subuser\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.underbruger'}\",\"search_transactions\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.i'} @:{'words.generated.transaktioner'}\",\"search_user\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.bruger'}\",\"selected\":\"@:{'templates.generated.compat.common.selected'}\",\"send_as_is\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.som'} @:{'words.replication.article.host_mention'} @:{'words.generated.er'}\",\"show_content\":\"@:{'words.generated.vis'} @:{'words.generated.indhold'}\",\"showing_of_separator\":\"@:{'templates.generated.compat.common.of'}\",\"special_arrangements\":\"Specialaftaler\",\"split\":\"@.capitalize:{'words.generated.opdel'}\",\"statistics\":\"@.capitalize:{'words.generated.statistik'}\",\"stop\":\"@:{'templates.generated.compat.common.stop'}\",\"submit_test_email_prompt\":\"Indtast @:{'words.generated.venligst'} @:{'words.generated.email'} adressen @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.sende'} @:{'words.generated.test'} emailen @:{'words.generated.til'}.\",\"submit_test_email\":\"Send @:{'words.generated.test'} @:{'words.generated.email'}\",\"submit\":\"@:{'templates.generated.compat.common.submit'}\",\"submiter_identity_desc\":\"@:{'words.generated.afsender'} @:{'words.generated.identitet'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.email'} systemet.\",\"submiter_identity\":\"@:{'words.generated.afsender'} @:{'words.generated.identitet'}\",\"subscriptions\":\"@:{'words.generated.abonnementer'}\",\"succeeded\":\"@.capitalize:{'words.generated.fuldførte'}\",\"successful_syncs\":\"Succesfulde synkroniseringer\",\"summary\":\"@.capitalize:{'words.generated.oversigt'}\",\"synchronized\":\"@.capitalize:{'words.generated.synkroniseret'}\",\"take_picture\":\"Tag @:{'words.generated.billede'}\",\"tank_cleaning\":\"@.capitalize:{'words.generated.tankcleaning'}\",\"text\":{\"all\":\"Altid\",\"anytime\":\"Når som helst\",\"last_7_days\":\"@.capitalize:{'words.generated.sidste'} 7 @:{'words.generated.dage'}\",\"last_month\":\"@.capitalize:{'words.generated.sidste'} @:{'words.generated.maned'}\",\"other_month\":\"@.capitalize:{'words.generated.anden'} @:{'words.generated.maned'}\",\"last_week\":\"@.capitalize:{'words.generated.sidste'} @:{'words.generated.uge'}\",\"same_month_last_year\":\"@.capitalize:{'words.generated.samme'} @:{'words.generated.maned'} @:{'words.generated.sidste'} @:{'words.generated.ar'}\",\"same_week_last_year\":\"@.capitalize:{'words.generated.samme'} @:{'words.generated.uge'} @:{'words.generated.sidste'} @:{'words.generated.ar'}\",\"search_in\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.i'}\",\"this_month\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.maned'}\",\"this_week\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.uge'}\",\"this_year\":\"@.upper:{'words.generated.i'} @:{'words.generated.ar'}\",\"yesterday\":\"@:{'templates.generated.compat.common.yesterday'}\"},\"time\":{\"at_hour\":\"@.capitalize:{'words.generated.kl'}.\"},\"to_department_and_customer_defaults\":\"@.capitalize:{'words.generated.til'} @:{'words.generated.afdelingens'} @:{'words.generated.og'} @:{'words.generated.kundens'} @:{'words.generated.standarder'}\",\"total_amount\":\"@.capitalize:{'words.generated.total'} beløb\",\"total_price_for_order\":\"Samlet @:{'words.generated.pris'} @:{'words.generated.for'} @:{'words.generated.ordre'}: {total} @:{'words.generated.dkk'}\",\"total\":\"Totalt\",\"unlink\":\"@.capitalize:{'words.generated.fjern'} @:{'words.generated.tilknytning'}\",\"unselect\":\"@:{'templates.generated.compat.common.unselect'}\",\"usage_log\":\"Brugslog\",\"view_order\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.transaktion'}\",\"warnings\":\"@.capitalize:{'words.generated.advarsler'}\",\"wash_multiple\":\"@.capitalize:{'words.generated.vaske'}\",\"weekday\":\"Ugedag\",\"zoom_out\":\"@:{'words.generated.zoom'} @:{'words.generated.ud'}\",\"zoom\":\"@:{'words.generated.zoom'}\"},\"guest\":{\"about\":\"@.capitalize:{'words.generated.om'} @:{'words.generated.oss'}\",\"access_code\":\"@.capitalize:{'words.generated.tilgangskode'}\",\"app_store\":\"@.capitalize:{'words.generated.app'} Store\",\"book_wash\":\"@.capitalize:{'words.generated.book'} @:{'words.generated.vask'}\",\"contact\":\"Kontakta @:{'words.generated.oss'}\",\"download_app\":\"Ladda ner @:{'words.generated.app'}\",\"driver\":{\"coming_soon\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.funktion'} @:{'words.generated.er'} @:{'words.generated.pa'} vej!\"},\"enter_access_code\":\"@:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.tilgangskode'}\",\"find_wash\":\"@:{'words.generated.find'} @:{'words.generated.vask'}\",\"home\":{\"contact_or_call\":\"@:{'words.generated.eller'} ring @:{'words.generated.til'} @:{'words.generated.os'} @:{'words.generated.pa'}\",\"contact_prefix\":\"Oplever @:{'words.generated.du'} @:{'words.generated.problemer'}, @:{'words.generated.sa'} @:{'words.generated.kontakt'} @:{'words.generated.os'} @:{'words.generated.pa'}\",\"description\":\"@.capitalize:{'words.generated.dette'} @:{'words.generated.er'} @:{'words.generated.dit'} @:{'words.generated.dashboard'}. @.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.generated.dine'} @:{'words.generated.ordrer'}, @:{'words.generated.bookinger'} @:{'words.generated.og'} @:{'words.generated.køretøjer'}.\",\"subtitle\":\"@.capitalize:{'words.generated.velkommen'} @:{'words.generated.til'} @.upper:{'words.generated.pleno'}\"},\"invalid_code\":\"@.capitalize:{'words.generated.ugyldig'} @:{'words.generated.tilgangskode'}\",\"play_store\":\"@:{'words.generated.google'} Play\",\"pwa\":{\"already_installed\":\"@:{'words.generated.pleno'} @:{'words.generated.er'} @:{'words.generated.allerede'} @:{'words.generated.installeret'} @:{'words.generated.pa'} @:{'words.generated.din'} @:{'words.generated.enhed'}.\",\"android_instructions\":\"@.capitalize:{'words.generated.tryk'} @:{'words.generated.pa'} menuknappen @:{'words.generated.og'} @:{'words.generated.vælg'} \\\"@.capitalize:{'words.generated.installer'} @:{'words.generated.app'}\\\"\",\"card_title\":\"@:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.pleno'}\",\"click_to_install\":\"@.capitalize:{'words.generated.klik'} @:{'words.generated.pa'} knappen @:{'words.generated.nedenfor'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.installere'} @:{'words.generated.pleno'} @:{'words.generated.pa'} @:{'words.generated.din'} @:{'words.generated.enhed'}.\",\"description\":\"@:{'words.generated.pleno'} @:{'words.generated.er'} @:{'words.replication.host_definite_suffix'} Progressive Web @.capitalize:{'words.generated.app'} (PWA), @:{'words.generated.der'} @:{'words.generated.kan'} installeres @:{'words.generated.pa'} @:{'words.generated.din'} @:{'words.generated.enhed'} @:{'words.generated.for'} @:{'words.replication.host_definite_suffix'} bedre oplevelse.\",\"install\":\"@.capitalize:{'words.generated.installer'}\",\"install_label\":\"@.capitalize:{'words.generated.installer'} @:{'words.generated.pleno'}\",\"install_via_browser\":\"@.capitalize:{'words.generated.installer'} @:{'words.generated.pleno'} @:{'words.generated.via'} @:{'words.generated.din'} browsers menu\",\"installed_label\":\"@:{'words.generated.pleno'} @:{'words.generated.er'} @:{'words.generated.installeret'}\",\"instructions\":\"Instruktioner\",\"ios_instructions\":\"@.capitalize:{'words.generated.tryk'} @:{'words.generated.pa'} delingsknappen @:{'words.generated.og'} @:{'words.generated.vælg'} \\\"@:{'words.generated.tilføj'} @:{'words.generated.til'} @:{'words.generated.hjemmeskærm'}\\\"\",\"subtitle\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.appen'} @:{'words.generated.pa'} @:{'words.generated.din'} @:{'words.generated.enhed'}\",\"title\":\"Last ned\",\"use_supported_browser\":\"@.capitalize:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.installere'} @:{'words.generated.pleno'} @:{'words.generated.skal'} @:{'words.generated.du'} @:{'words.generated.bruge'} @:{'words.replication.host_definite_suffix'} understøttet @:{'words.generated.browser'} @:{'words.generated.og'} følge installationsvejledningen.\"},\"scan_qr\":\"Skann @:{'words.generated.qr'}-@:{'words.generated.kode'}\",\"start_wash_subtitle\":\"@:{'words.generated.skriv'} @:{'words.generated.inn'} tilgangskoden @:{'words.generated.for'} @:{'words.generated.a_2'} fortsette\",\"start_wash_title\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.vask'} @:{'words.generated.som'} gjest\",\"start_wash\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.vask'}\",\"title\":\"Gjesttilgang\",\"welcome_message\":\"@.capitalize:{'words.generated.velkommen'} @:{'words.generated.til'} @:{'words.generated.truck'} @:{'words.generated.wash'}\",\"welcome\":\"@:{'templates.generated.compat.messages.welcome'}\"},\"header\":{\"about_us\":\"@.capitalize:{'words.generated.om'} @.capitalize:{'words.generated.os'}\",\"backoffice\":\"Backoffice\",\"customer_creation_discount\":\"Opret @:{'words.generated.brugerrabat'}\",\"customer_creation\":\"Kundeoprettelse\",\"operator_login\":\"Operatør @:{'words.generated.login'}\",\"return_to_account\":\"@.capitalize:{'words.generated.tilbage'} @:{'words.generated.til'} @:{'words.generated.egen'} @:{'words.generated.konto'}\"},\"invoice_period\":{\"flags\":{\"automatic\":{\"customer_rule_exempt_from_administration_fees\":\"{product} @:{'words.generated.er'} @:{'words.generated.et_2'} @:{'words.generated.administrationsgebyr'} @:{'words.generated.for'} @:{'words.replication.host_definite_suffix'} fritaget @:{'words.generated.kunde'}.\",\"customer_rule_invoice_all_orders_individually\":\"Fakturasamlingen @:{'words.generated.indeholder'} @:{'words.generated.flere'} @:{'words.generated.ordrer'} @:{'words.generated.for'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kunde'}, @:{'words.generated.der'} @:{'words.generated.skal'} faktureres @:{'words.generated.pr'}. @:{'words.generated.ordre'}.\",\"customer_rule_only_tank_cleaning\":\"{product} @:{'words.generated.overtræder'} @:{'words.generated.reglen'} @:{'words.generated.om'} @:{'words.generated.kun'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}.\",\"customer_rule_requires_po_number\":\"@.capitalize:{'words.generated.ordren'} @:{'words.generated.mangler'} @:{'words.generated.et_2'} @:{'words.generated.pakrævet'} @:{'words.generated.po'}-@:{'words.generated.nummer'}.\",\"customer_rule_requires_reference\":\"@.capitalize:{'words.generated.ordren'} @:{'words.generated.mangler'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.pakrævet'} @:{'words.generated.reference'}.\",\"customer_rule_restrict_addon_services\":\"{product} @:{'words.generated.overtræder'} @:{'words.generated.reglen'} @:{'words.generated.om'} begrænsede tilvalgsydelser.\",\"customer_rule_restrict_interior_cleaning\":\"{product} @:{'words.generated.overtræder'} @:{'words.generated.reglen'} @:{'words.generated.om'} @:{'words.generated.begrænset'} @:{'words.generated.indvendig'} @:{'words.generated.vask'}.\",\"customer_rule_restrict_spot_free\":\"{product} @:{'words.generated.overtræder'} @:{'words.generated.reglen'} @:{'words.generated.om'} @:{'words.generated.begrænset'} Spot Free.\",\"customer_rule_restrict_tank_cleaning\":\"{product} @:{'words.generated.overtræder'} @:{'words.generated.reglen'} @:{'words.generated.om'} @:{'words.generated.begrænset'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}.\",\"duplicate_vehicle_subscription_charge_same_month\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.findes'} dublerede abonnementsopkrævninger @:{'words.generated.i'} @:{'words.generated.samme'} @:{'words.generated.maned'}.\",\"historical_primary_product_mismatch\":\"{product} @:{'words.generated.afviger'} @:{'words.generated.fra'} registreringsnummerets sædvanlige @:{'words.generated.produkt'} {expected_product}.\",\"multiple_fixed_pricing_items_same_month\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.findes'} @:{'words.generated.flere'} fastprislinjer @:{'words.generated.i'} @:{'words.generated.samme'} @:{'words.generated.maned'}.\",\"multiple_identical_primary_vehicle_items\":\"@.capitalize:{'words.generated.ordren'} @:{'words.generated.indeholder'} @:{'words.generated.flere'} ens @:{'words.replication.adjective.primary_host_mention'} køretøjsprodukter.\",\"price_mismatch\":\"{product}: Produktprisen @:{'words.generated.afviger'} @:{'words.generated.fra'} @:{'words.replication.article.host_mention'} @:{'words.generated.forventede'} @:{'words.generated.pris'}.\",\"quantity_exceeds_product_limit\":\"Antallet @:{'words.generated.for'} {product} overstiger produktgrænsen.\",\"vehicle_subscription_type_mismatch\":\"{product} @:{'words.generated.matcher'} @:{'words.generated.ikke'} køretøjsabonnementets @:{'words.generated.type'} {expected_product}.\",\"wash_certificate_attached_without_item\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.vedhæftet'} @:{'words.generated.et_2'} @:{'words.generated.vaskecertifikat'} @:{'words.generated.uden'} @:{'words.replication.host_definite_suffix'} vaskecertifikatlinje.\",\"wash_certificate_item_without_certificate\":\"@:{'words.generated.vaskecertifikatlinjen'} @:{'words.generated.findes'} @:{'words.generated.uden'} @:{'words.generated.et_2'} @:{'words.generated.vaskecertifikat'}.\",\"xlvask_missing_order_link\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-@:{'words.generated.registreringen'} @:{'words.generated.er'} hverken @:{'words.generated.ignoreret'} @:{'words.generated.eller'} knyttet @:{'words.generated.til'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ordre'} @:{'words.generated.i'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.periode'}.\"},\"preview\":{\"entities\":{\"order_items\":\"@:{'words.generated.ordrelinjer'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-@:{'words.generated.oplysninger'}\"},\"expected_price\":\"@.capitalize:{'words.generated.forventet'} @:{'words.generated.pris'}\",\"start_time\":\"Starttidspunkt\",\"wash_id\":\"@:{'templates.generated.compat.objects.orders.columns.wash_id'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-@:{'words.generated.registrering'}\"},\"status\":{\"false_positive\":\"@.capitalize:{'words.generated.falsk'} positiv\",\"ignored\":\"@.capitalize:{'words.generated.ignoreret'}\",\"reason_placeholder\":\"@:{'words.generated.valgfri'} @:{'words.generated.arsag'}\",\"resolved\":\"Løst\"},\"tokens\":{\"expected\":\"@:{'words.generated.forventede'} @:{'words.generated.pris'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-@:{'words.generated.registreringen'}\"},\"tooltip\":{\"created_by\":\"@.capitalize:{'words.generated.af'}\"}}},\"invoice_transfer_monitor\":{\"clear_all_error\":\"@.capitalize:{'words.generated.afsluttede'} @:{'words.generated.overførsler'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.ryddes'}.\",\"clear_all\":\"@:{'words.generated.ryd'} @:{'words.generated.afsluttede'}\",\"clear_error\":\"Overførslen @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.ryddes'}.\",\"clear_one\":\"@:{'words.generated.ryd'} @:{'words.generated.overførsel'}\",\"empty\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.synlige'} @:{'words.generated.overførsler'}.\",\"load_error\":\"@.capitalize:{'words.generated.overførsler'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.indlæses'}.\",\"loading\":\"@.capitalize:{'words.generated.indlæser'} @:{'words.generated.overførsler'}\",\"menu_title\":\"@.capitalize:{'words.generated.overførsler'}\",\"no_details\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.detaljer'} @:{'words.generated.endnu'}.\",\"refreshing\":\"opdaterer\",\"short\":{\"queued\":\"@:{'templates.generated.compat.invoicing.progress.queued'}\"},\"status\":{\"in_progress\":\"@:{'templates.generated.compat.system_status.table.active'}\"},\"transfer\":\"@.capitalize:{'words.generated.overførsel'}\",\"visible\":\"@:{'words.generated.synlige'}\"},\"invoices\":{\"delete_invoice\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.faktura'}\",\"download_pdf\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.pdf'}\",\"due_date\":\"Forfaldsdato\",\"economic\":{\"check_errors\":\"Check @:{'words.generated.fejl'}\",\"draft\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.kladde'}\",\"load_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} indlæsning @:{'words.generated.af'} @:{'words.generated.data'}.\",\"update_draft_status\":\"@:{'words.generated.opdater'} @:{'words.generated.status'} @:{'words.generated.for'} @:{'words.generated.faktura'} @:{'words.generated.kladder'}\"},\"edit_invoice\":\"@:{'words.generated.rediger'} @:{'words.generated.faktura'}\",\"invoice_number\":\"@.capitalize:{'words.generated.fakturanummer'}\",\"new_invoice\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.faktura'}\",\"no_invoices\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.fakturaer'} @:{'words.generated.fundet'}\",\"overdue\":\"Forfalden\",\"paid\":\"@.capitalize:{'words.generated.betalt'}\",\"partial\":\"Delvis @:{'words.generated.betalt'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.fakturanummer'}, @:{'words.generated.kunde'}\",\"search\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.fakturaer'}...\",\"statuses\":{\"draft\":\"@.capitalize:{'words.generated.kladde'}\",\"draft_transaction\":\"@:{'words.generated.transaktionskladde'}\"},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.fakturaer'}\",\"unpaid\":\"Ubetalt\"},\"invoicing_period\":{\"invoice_collection_actions\":{\"actions\":{\"merge_collections\":\"Sammenlæg\",\"queue_economic\":\"Fakturer valgte\",\"remove_customer_rule_violations\":\"Fjern regelbrud\",\"reset_hidden_item_prices\":\"Nulstil skjulte priser\",\"split_by_month\":\"Opdel efter måned\"},\"error_title\":\"Handlingen mislykkedes\",\"merge_requires_multiple_text\":\"Vælg mindst to fakturasamlinger for at sammenlægge dem.\",\"merge_requires_multiple_title\":\"Vælg flere fakturasamlinger\",\"merge_target_title\":\"Vælg målfakturasamling\",\"menu\":{\"collapse_all\":\"Klap alle sammen\",\"expand_all\":\"Udvid alle\",\"label\":\"Fakturasamling handlinger ({count})\",\"modification_section\":\"Rediger valgte\",\"select_all\":\"Vælg alle\",\"selection_section\":\"Valg\",\"unselect_all\":\"Fravælg alle\"},\"preview\":{\"affected_examples\":\"Eksempler på ændringer\",\"blocked_title\":\"Handlingen er blokeret\",\"blockers\":\"Blokeringer\",\"changed\":\"Ændringer: {count}\",\"collection_status_line\":\"Fakturasamling #{collection}: {status}\",\"collections\":\"Fakturasamlinger: {count}\",\"confirm_button\":\"Udfør handling\",\"confirmation_label\":\"Skriv {phrase} for at bekræfte\",\"confirmation_mismatch\":\"Skriv præcis {phrase} for at fortsætte.\",\"merge_target\":\"Mål: fakturasamling #{id}\",\"no_changes_title\":\"Ingen ændringer\",\"order_item_line\":\"Fakturasamling #{collection}, ordre #{order}: {product}\",\"order_move_line\":\"Ordre #{order}: #{source} til #{target}\",\"requires_confirmation\":\"Gennemgå forhåndsvisningen. Ingen ændringer udføres før du skriver {phrase}.\",\"skipped\":\"Sprunget over: {count}\",\"title\":\"Forhåndsvis {action}\"},\"success_text\":\"Udførte {count} ændringer.\",\"success_title\":\"Handling fuldført\"},\"monthly_split\":{\"button\":\"@.capitalize:{'words.generated.opdel'} @:{'words.generated.fakturaer'} @:{'words.generated.efter'} @:{'words.generated.maned'}\",\"confirm_text\":\"@.capitalize:{'words.generated.opdel'} @:{'words.generated.ikke'}-fakturerede @:{'words.generated.fakturasamlinger'} @:{'words.generated.i'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.periode'} @:{'words.generated.efter'} ordremåned?\",\"confirm_yes\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.opdel'} @:{'words.generated.efter'} @:{'words.generated.maned'}\",\"error_title\":\"@.capitalize:{'words.generated.manedsopdeling'} @:{'words.generated.mislykkedes'}\",\"preview_apply\":\"@:{'words.generated.udfør'} @:{'words.generated.opdeling'}\",\"preview_create_new\":\"@:{'words.generated.opret'} @:{'words.generated.ny'} @:{'words.generated.fakturasamling'}\",\"preview_existing\":\"@:{'words.generated.behold'} oprindelig @:{'words.generated.fakturasamling'} #{id}\",\"preview_no_changes_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.periode'} @:{'words.generated.har'} @:{'words.generated.ingen'} @:{'words.generated.fakturasamlinger'}, @:{'words.generated.der'} @:{'words.generated.vil'} @:{'words.generated.blive'} @:{'words.generated.ændret'}.\",\"preview_no_changes_title\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.fakturaer'} @:{'words.generated.at'} @:{'words.generated.opdele'}\",\"preview_orders\":\"{count} @:{'words.generated.ordrer'}\",\"preview_skipped_title\":\"Sprunget @:{'words.generated.over'}\",\"preview_summary\":\"@:{'words.generated.behandlede'} {processed} @:{'words.generated.fakturasamlinger'}. @.capitalize:{'words.generated.vil'} @:{'words.generated.opdele'} {changed} @:{'words.generated.og'} springe {skipped} @:{'words.generated.over'}.\",\"preview_title\":\"@:{'words.generated.forhandsvis'} @:{'words.generated.manedsopdeling'}\",\"success_text\":\"@:{'words.generated.behandlede'} {processed} @:{'words.generated.fakturasamlinger'}. Opdelte {changed} @:{'words.generated.og'} sprang {skipped} @:{'words.generated.over'}.\",\"success_title\":\"@.capitalize:{'words.generated.manedsopdeling'} @:{'words.generated.fuldført'}\"},\"multi_month_invoice_warning\":{\"invoice_together\":\"Fakturer sammen\",\"split_by_month\":\"Opdel efter måned\",\"split_error_title\":\"Månedsopdeling mislykkedes\",\"split_success_text\":\"Behandlede {processed} fakturasamlinger. Opdelte {changed} og sprang {skipped} over.\",\"split_success_title\":\"Månedsopdeling fuldført\",\"text\":\"Du er ved at fakturere ordrer fra flere måneder sammen ({months}). Skal de i stedet opdeles efter måned?\",\"title\":\"Ordrer fra flere måneder\"}},\"invoicing\":{\"progress\":{\"failed_to_send\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.sende'} @:{'words.generated.faktura'}\",\"queued\":\"@.upper:{'words.generated.i'} @:{'words.generated.kø'}\",\"sending_invoices\":\"@.capitalize:{'words.generated.sender'} @:{'words.generated.fakturaer'}...\",\"succeeded\":\"@.capitalize:{'words.generated.succesfuld'}\"}},\"login_qr\":{\"camera_error\":\"@.capitalize:{'words.generated.kamera'} @:{'words.generated.fejl'}\",\"login_with_password_instead\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'} @:{'words.generated.med'} @:{'words.generated.adgangskode'} @:{'words.generated.i'} @:{'words.generated.stedet'}\",\"login_with_password\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'} @:{'words.generated.med'} @:{'words.generated.adgangskode'}\",\"mobile_only\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.side'} @:{'words.generated.er'} @:{'words.generated.kun'} @:{'words.generated.tilgængelig'} @:{'words.generated.pa'} mobile enheder. @.capitalize:{'words.generated.brug'} @:{'words.generated.venligst'} @:{'words.generated.din'} @:{'words.generated.telefon'} @:{'words.generated.eller'} @:{'words.generated.tablet'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.scanne'} @:{'words.generated.qr'} @:{'words.generated.koden'}.\",\"scan_subtitle\":\"Placér @:{'words.generated.qr'} @:{'words.generated.koden'} @:{'words.generated.inden'} @:{'words.generated.for'} rammen\",\"scan_title\":\"@.capitalize:{'words.generated.scan'} @:{'words.generated.qr'} @:{'words.generated.kode'}\",\"unknown_qr_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.scannede'} @:{'words.generated.qr'} @:{'words.generated.kode'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.gyldig'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.side'}.\",\"unknown_qr_title\":\"@.capitalize:{'words.generated.ukendt'} @:{'words.generated.qr'} @:{'words.generated.kode'}\"},\"maintenance_menu\":{\"confirm_clear_local\":\"Ryd alle lokale appdata og genindlaes nu?\",\"copy_trace_copied\":\"Kopieret\",\"copy_trace_failed\":\"Kopiering fejlede\",\"copy_trace\":\"Kopier trace\",\"force_update_clear_hint\":\"Rydder local storage, session storage, service workers og browsercaches.\",\"force_update_clear\":\"Tving opdatering og ryd alt lokalt\",\"title\":\"Vedligeholdelse\",\"version\":\"Nuværende {current} / seneste {latest}\"},\"messages\":{\"are_you_sure\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'}?\",\"cannot_undo\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.handling'} @:{'words.generated.kan'} @:{'words.generated.ikke'} @:{'words.generated.fortrydes'}.\",\"confirm_cancel\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.annullere'}?\",\"confirm_delete\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.dette'}?\",\"confirmed\":\"@.capitalize:{'words.generated.bekræftet'}\",\"copied\":\"@.capitalize:{'words.generated.kopieret'} @:{'words.generated.til'} udklipsholder\",\"error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'}. @.capitalize:{'words.generated.prøv'} @:{'words.generated.venligst'} @:{'words.generated.igen'}.\",\"loading\":\"@:{'templates.generated.compat.common.loading'}\",\"no_results\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.resultater'} @:{'words.generated.fundet'}\",\"please_wait\":\"@.capitalize:{'words.generated.vent'} @:{'words.generated.venligst'}...\",\"saved\":\"@.capitalize:{'words.generated.gemt'}\",\"sent\":\"@.capitalize:{'words.generated.sendt'}\",\"welcome\":\"@.capitalize:{'words.generated.velkommen'}\"},\"modals\":{\"action\":\"@.capitalize:{'words.generated.handling'}\",\"active_tasks\":\"@.capitalize:{'words.generated.aktive'} @.capitalize:{'words.generated.opgaver'} / @.capitalize:{'words.generated.handlinger'}\",\"add_condition_rule\":\"@:{'words.generated.tilføj'} @:{'words.generated.betingelsesregel'}\",\"add_question_rule\":\"@:{'words.generated.tilføj'} spørgsmålsregel\",\"add_task_rule\":\"@:{'words.generated.tilføj'} opgaveregel\",\"all_possible_questions\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.mulige'} @:{'words.generated.spørgsmal'} (@:{'words.generated.synlighed'})\",\"all_possible_tasks\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.mulige'} @:{'words.generated.opgaver'} (@:{'words.generated.synlighed'})\",\"all_questions_answered\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.relevante'} @:{'words.generated.spørgsmal'} @:{'words.generated.er'} @:{'words.generated.besvaret'}!\",\"answer\":\"@.capitalize:{'words.generated.svar'}\",\"answered_questions\":\"Besvarede @:{'words.generated.spørgsmal'}\",\"are_you_sure\":\"@:{'templates.generated.compat.messages.are_you_sure'}\",\"attached_file\":\"@.capitalize:{'words.generated.vedhæftet'} @:{'words.generated.fil'}\",\"attachments_for\":\"@:{'words.generated.vedhæftede'} @:{'words.generated.filer'} @:{'words.generated.til'}\",\"cannot_undo\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.kan'} @:{'words.generated.ikke'} fortryde @:{'words.generated.dette'}!\",\"choose_file\":\"@.capitalize:{'words.generated.vælg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fil'}…\",\"could_not_read_file\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} læse @:{'words.generated.filen'}. Sørg @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.det'} @:{'words.generated.er'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.gyldig'} @:{'words.generated.json'} @:{'words.generated.fil'}.\",\"delete_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} sletning @:{'words.generated.af'} @:{'words.generated.filen'}.\",\"download_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} @:{'words.generated.download'} @:{'words.generated.af'} @:{'words.generated.filen'}.\",\"export\":\"@:{'templates.generated.compat.common.export'}\",\"fetching_data\":\"@:{'templates.generated.compat.pagination.loading'}\",\"fetching_files\":\"@.capitalize:{'words.generated.henter'} @:{'words.generated.filer'}...\",\"file_deleted\":\"@.capitalize:{'words.generated.filen'} @:{'words.generated.er'} @:{'words.generated.blevet'} @:{'words.generated.slettet'}.\",\"file_uploaded\":\"@.capitalize:{'words.generated.filen'} @:{'words.generated.er'} @:{'words.generated.blevet'} uploadet.\",\"filename\":\"Filnavn\",\"if_condition\":\"@.capitalize:{'words.generated.hvis'}\",\"invalid_file_format\":\"@.capitalize:{'words.generated.ugyldig'} @:{'words.generated.fil'} @:{'words.generated.format'}. @.capitalize:{'words.generated.filen'} @:{'words.generated.skal'} indeholde @:{'words.replication.host_definite_suffix'} \\\"items\\\" array.\",\"lane\":\"@.capitalize:{'words.generated.bane'}\",\"mass_data_warning\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.funktion'} @:{'words.generated.kan'} @:{'words.generated.kun'} @:{'words.generated.tage'} import @:{'words.generated.af'} @:{'words.generated.data'} @:{'words.generated.i'} særlig @:{'words.generated.format'}, @:{'words.replication.article.host_mention'} @:{'words.generated.bør'} @:{'words.generated.derfor'} @:{'words.generated.endnu'} @:{'words.generated.ikke'} @:{'words.generated.bruges'} @:{'words.generated.uden'} @:{'words.generated.at'} @:{'words.generated.være'} @:{'words.generated.sat'} @:{'words.generated.ind'} @:{'words.generated.i'} @:{'words.generated.denne'}.\",\"no_active_tasks\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.aktive'} @:{'words.generated.opgaver'}\",\"no_answers_yet\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.svar'} @:{'words.generated.endnu'}\",\"no_conditions_found\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.betingelser'} @:{'words.generated.fundet'}\",\"no_files_attached\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.filer'} @:{'words.generated.vedhæftet'} @:{'words.generated.denne'} @:{'words.generated.opgave'}.\",\"no_rules\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.regler'}\",\"no_tasks_found\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.opgaver'} @:{'words.generated.fundet'}\",\"no\":\"@.upper:{'words.generated.nej'}\",\"please_wait\":\"@.capitalize:{'words.generated.vent'} @:{'words.generated.venligst'} @:{'words.generated.mens'} @:{'words.generated.vi'} @:{'words.generated.indlæser'} @:{'words.generated.data'}.\",\"question\":\"@.capitalize:{'words.generated.spørgsmal'}\",\"questions\":\"@:{'templates.generated.compat.modals.question'}\",\"remove_passed\":\"@.capitalize:{'words.generated.fjern'} beståede\",\"reset_all\":\"@:{'words.generated.nulstil'} @:{'words.generated.alt'}\",\"rule_types\":{\"IS_FALSE\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.falsk'}\",\"IS_FALSE_OR_ANY_FALSE\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.falsk'} @:{'words.generated.eller'} @:{'words.generated.any'} @:{'words.generated.falsk'}\",\"IS_FALSE_OR_NOT_SET\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.falsk'} @:{'words.generated.eller'} @:{'words.generated.ikke'} @:{'words.generated.sat'}\",\"IS_NOT_SET\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.sat'}\",\"IS_SET\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.sat'}\",\"IS_TRUE\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.sand'}\",\"IS_TRUE_OR_ANY_TRUE\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.sand'} @:{'words.generated.eller'} @:{'words.generated.any'} @:{'words.generated.sand'}\",\"IS_TRUE_OR_NOT_SET\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.sand'} @:{'words.generated.eller'} @:{'words.generated.ikke'} @:{'words.generated.sat'}\"},\"rules_for\":\"@.capitalize:{'words.generated.regler'} @:{'words.generated.for'}\",\"rules\":\"@.capitalize:{'words.generated.regler'}\",\"run_again\":\"@.capitalize:{'words.generated.kør'} @:{'words.generated.igen'}\",\"save_changes\":\"@:{'words.generated.gem'} @:{'words.generated.ændringer'}\",\"select_an_object\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.et_2'} @:{'words.generated.objekt'}\",\"start_over\":\"@.capitalize:{'words.generated.start'} forfra\",\"test_flow\":\"Testflyt\",\"under_development\":\"@.capitalize:{'words.generated.under'} udvikling...\",\"unknown_customer\":\"@.capitalize:{'words.generated.ukendt'} @:{'words.generated.kunde'}\",\"upload_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} @:{'words.generated.upload'} @:{'words.generated.af'} @:{'words.generated.filen'}.\",\"yes\":\"@.upper:{'words.generated.ja'}\"},\"nav\":{\"create_transaction\":\"@:{'words.generated.opret'} @:{'words.generated.transaktion'}\",\"daily_report\":\"@.capitalize:{'words.generated.dagsopgørelse'}\",\"drafts\":\"@.capitalize:{'words.generated.kladder'}\",\"drivers\":\"@.capitalize:{'words.generated.chauffører'}\",\"notifications\":\"@.capitalize:{'words.generated.notifikationer'}\",\"overview\":\"Overblik\",\"pos_system\":\"@.capitalize:{'words.generated.kassesystem'}\",\"select_department\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.afdeling'}\",\"self_wash\":\"@.capitalize:{'words.generated.selvvask'}\",\"wash_log\":\"@.capitalize:{'words.generated.vaskelog'}\"},\"objects\":{\"bookings\":{\"columns\":{\"economic_customer_number\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.kundenummer'}\",\"pickup\":\"@:{'words.generated.hentning'}\",\"wash_certificate_email\":\"@.capitalize:{'words.generated.vaskecertifikat'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}\",\"wash_certificate_pdf\":\"@.capitalize:{'words.generated.vaskecertifikat'} @:{'words.generated.pdf'}\",\"wash_certificate_status\":\"@.capitalize:{'words.generated.vaskecertifikat'} @:{'words.generated.status'}\",\"wash_certificate_url\":\"@.capitalize:{'words.generated.vaskecertifikat'} @:{'words.generated.url'}\"},\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.bookinger'}\"},\"branding\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} branding\",\"multiple\":\"merker\",\"single\":\"@:{'words.generated.profilering'}\",\"title\":\"@.capitalize:{'words.generated.profilering'}\"},\"categories\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.varegrupper'}\",\"single\":\"varegruppe\",\"title\":\"@.capitalize:{'words.generated.varegrupper'}\"},\"collected_order_invoices\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.samlede'} @:{'words.generated.ordrefakturaer'}\",\"multiple\":\"@:{'words.generated.samlede'} @:{'words.generated.ordrefakturaer'}\",\"single\":\"@:{'words.generated.samlet'} ordrefaktura\",\"title\":\"@.capitalize:{'words.generated.samlede'} @:{'words.generated.ordrefakturaer'}\"},\"columns\":{\"capacity\":\"Kapacitet\",\"category_id\":\"@.capitalize:{'words.generated.kategori'} @.upper:{'words.generated.id'}\",\"city\":\"@:{'templates.generated.compat.common.city'}\",\"color\":\"@:{'templates.generated.compat.vehicles.color'}\",\"condition\":\"@.capitalize:{'words.generated.betingelse'}\",\"config\":\"@:{'templates.generated.compat.global.configuration'}\",\"content\":\"@.capitalize:{'words.generated.indhold'}\",\"country\":\"@:{'templates.generated.compat.common.country'}\",\"customer_number\":\"@:{'templates.generated.compat.common.customer_number'}\",\"data\":\"@.capitalize:{'words.generated.data'}\",\"deleted\":\"@.capitalize:{'words.generated.slettet'}\",\"department_id\":\"@.capitalize:{'words.generated.afdelings'} @.upper:{'words.generated.id'}\",\"duration\":\"Varighed\",\"dynamic_image_id\":\"Dynamisk bilde-@.upper:{'words.generated.id'}\",\"email\":\"@:{'templates.generated.compat.common.email'}\",\"email_desc\":\"@.capitalize:{'words.generated.din'} e-mailadresse @:{'words.generated.som'} @:{'words.generated.chauffør'}.\",\"external_id\":\"Eksternt @.upper:{'words.generated.id'}\",\"filled_by\":\"@.capitalize:{'words.generated.udfyldt'} @:{'words.generated.af'}\",\"grant\":\"@.capitalize:{'words.generated.tildeling'}\",\"icon\":\"Ikon\",\"image\":\"@.capitalize:{'words.generated.billede'}\",\"is_entrance\":\"@.capitalize:{'words.generated.er'} inngang\",\"is_exit\":\"@.capitalize:{'words.generated.er'} utgang\",\"key\":\"@.capitalize:{'words.generated.nøgle'}\",\"max\":\"Maksimum\",\"message\":\"Besked\",\"module\":\"Modul\",\"notes\":\"@:{'templates.generated.compat.common.notes'}\",\"order_id\":\"@.capitalize:{'words.generated.ordre'} @.upper:{'words.generated.id'}\",\"permission\":\"@.capitalize:{'words.generated.tilladelse'}\",\"po_number\":\"@:{'templates.generated.compat.bookings_table.po'}\",\"priority\":\"@.capitalize:{'words.generated.prioritet'}\",\"processor\":\"Faktureringsprocessor\",\"relay_id\":\"Relé @.upper:{'words.generated.id'}\",\"relay_in_id\":\"Indgangs @:{'words.generated.relæ'} @.upper:{'words.generated.id'}\",\"relay_machine_cleaner_id\":\"@:{'words.generated.machine'} cleaner @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_machine_id\":\"@.capitalize:{'words.generated.maskine'} @:{'words.generated.relæ'} @.upper:{'words.generated.id'}\",\"relay_machine_program_picker_id\":\"@:{'words.generated.machine'} program picker @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_out_id\":\"Udgangs @:{'words.generated.relæ'} @.upper:{'words.generated.id'}\",\"role_id\":\"@.capitalize:{'words.generated.rolle'} @.upper:{'words.generated.id'}\",\"rule\":\"@.capitalize:{'words.generated.regel'}\",\"sort_order\":\"@:{'words.generated.sortering'}\",\"suspended\":\"Suspenderet\",\"task\":\"@.capitalize:{'words.generated.opgave'}\",\"title\":\"Titel\",\"total_net_amount\":\"@.capitalize:{'words.generated.total'} netto @:{'words.generated.beløb'}\",\"updated_at\":\"@:{'templates.generated.compat.common.updated'}\",\"url\":\"@:{'words.generated.url'}\",\"user_id\":\"@:{'templates.generated.compat.user_admin.user_id'}\",\"water_usage\":\"Vandtal (m3)\",\"zip\":\"@:{'templates.generated.compat.common.zip'}\"},\"department_categories\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.afdelingskategorier'}\",\"multiple\":\"@:{'words.generated.afdelingskategorier'}\",\"single\":\"afdelingskategori\",\"title\":\"@.capitalize:{'words.generated.afdelingskategorier'}\"},\"department_daily_reports\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.dagsopgørelser'}\",\"multiple\":\"@:{'words.generated.dagsopgørelser'}\",\"title\":\"@.capitalize:{'words.generated.dagsopgørelser'}\"},\"department_gates\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.afdelingsporte'}\",\"multiple\":\"@:{'words.generated.afdelingsporte'}\",\"single\":\"@:{'words.generated.afdelingsport'}\"},\"department_lanes\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.vaskebaner'}\",\"multiple\":\"@:{'words.generated.vaskebaner'}\",\"single\":\"@:{'words.generated.vaskebane'}\"},\"department_notification_sms\":{\"country_codes\":{\"denmark\":\"Danmark (+45)\",\"finland\":\"Finland (+358)\",\"norway\":\"Norge (+47)\",\"sweden\":\"Sverige (+46)\"},\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.afdelings'} @:{'words.generated.sms'} @:{'words.generated.notifikationer'}\",\"multiple\":\"@:{'words.generated.telefonnumre'}\",\"title\":\"@.capitalize:{'words.generated.afdelings'} @:{'words.generated.sms'} @:{'words.generated.notifikationer'}\"},\"department_relays\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.afdelingsreleer'}\",\"single\":\"@:{'words.generated.afdelingsrele'}\"},\"department_time_bookings_entries\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.tidsbookinger'}\",\"single\":\"@:{'words.generated.tidsbooking'}\"},\"department_time_bookings_opening_hours\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.abningstider'}\",\"single\":\"@:{'words.generated.abningstid'}\"},\"department_time_bookings_types\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.bookingtyper'}\",\"multiple\":\"@:{'words.generated.bookingtyper'}\",\"single\":\"bookingtype\"},\"department_variables\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.afdelingsvariabler'}\",\"multiple\":\"@:{'words.generated.afdelingsvariabler'}\",\"single\":\"afdelingsvariabel\",\"title\":\"@.capitalize:{'words.generated.afdelingsvariabler'}\"},\"departments\":{\"columns\":{\"archived\":\"Arkiveret\",\"custom_pricing_only\":\"Ingen fallback-priser\",\"dimension\":\"Dimension\",\"economic_department\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.afdeling'}\",\"latitude\":\"@:{'templates.generated.compat.departments.form.latitude'}\",\"longitude\":\"Længdegrad\",\"slack_webhook\":\"@:{'words.generated.slack'} @:{'words.generated.webhook'}\"},\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.afdelinger'}\",\"filters\":{\"active\":\"@.capitalize:{'words.generated.aktive'} @:{'words.generated.afdelinger'}\",\"archived\":\"Arkiverede @:{'words.generated.afdelinger'}\"}},\"economic_departments\":{\"columns\":{\"department_number\":\"Afdelingsnummer\"},\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.afdelinger'}\",\"multiple\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.afdelinger'}\",\"single\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.afdeling'}\",\"title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.afdelinger'}\"},\"economic_products\":{\"columns\":{\"product_number\":\"Produktnummer\"},\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.produkter'}\",\"multiple\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.produkter'}\",\"single\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.produkt'}\",\"title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.produkter'}\"},\"forms\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.formularer'}\",\"multiple\":\"@:{'words.generated.formularer'}\",\"single\":\"@:{'words.generated.formular'}\",\"title\":\"@.capitalize:{'words.generated.formularer'}\"},\"goals\":{\"columns\":{\"current\":\"@.capitalize:{'words.generated.nuværende'}\",\"period\":\"@.capitalize:{'words.generated.periode'}\",\"target\":\"Målsætning\"},\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.mal'}\",\"multiple\":\"@:{'templates.generated.compat.objects.goals.single'}\",\"single\":\"@:{'words.generated.mal'}\"},\"invoices\":{\"columns\":{\"due_date\":\"@:{'templates.generated.compat.invoices.due_date'}\"},\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.fakturaer'}\",\"multiple\":\"@:{'words.generated.fakturaer'}\",\"single\":\"@:{'words.generated.faktura'}\"},\"module_action_logs\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.modulhandlingslog'}\",\"multiple\":\"modulhandlinger\",\"single\":\"modulhandling\",\"title\":\"@.capitalize:{'words.generated.modulhandlingslog'}\"},\"notifications\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.notifikationer'}\",\"single\":\"notifikation\"},\"order_bookings\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.ordrebookinger'}\",\"multiple\":\"@:{'words.generated.ordrebookinger'}\",\"single\":\"ordrebooking\"},\"orders\":{\"columns\":{\"cashier\":\"Kasserer\",\"reg_2\":\"@.capitalize:{'words.generated.reg'}. 2\",\"reg_3\":\"@.capitalize:{'words.generated.reg'}. 3\",\"wash_id\":\"@.capitalize:{'words.generated.vask'} @.upper:{'words.generated.id'}\"},\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.vaskelog'}\"},\"permissions\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.tilladelser'}\"},\"product_options\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.produkttilvalg'}\",\"multiple\":\"@:{'templates.generated.compat.objects.product_options.single'}\",\"single\":\"@:{'words.generated.produkttilvalg'}\",\"title\":\"@:{'templates.generated.compat.departments.tab.product_addons'}\"},\"products\":{\"columns\":{\"economic_product\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.produkt'}\",\"is_wash\":\"Er vask\",\"piktogram\":\"Piktogram\",\"requires_note\":\"@.capitalize:{'words.generated.kræver'} @:{'words.generated.note'}\",\"show_in_booking_form\":\"@:{'words.generated.vis'} @:{'words.generated.i'} @:{'words.generated.booking'} @:{'words.generated.formular'}\",\"sort_priority\":\"@:{'words.generated.sortering'} @:{'words.generated.prioritet'} (lavest @:{'words.generated.først'})\",\"subscription_allowed\":\"@.capitalize:{'words.generated.abonnement'} @:{'words.generated.tilladt'}\",\"use_category_discount\":\"@:{'words.generated.anvend'} @:{'words.generated.kategori'} @:{'words.generated.rabat'}\"},\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.produkter'}\",\"multiple\":\"@:{'words.generated.produkter'}\",\"single\":\"@:{'words.generated.produkt'}\"},\"roles\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.roller'}\"},\"self_serve_condition_rules\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.betingelsesregler'}\",\"multiple\":\"@:{'words.generated.betingelsesregler'}\",\"single\":\"@:{'words.generated.betingelsesregel'}\"},\"self_serve_conditions\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.selvbetjeningsbetingelser'}\",\"single\":\"@:{'words.generated.betingelse'}\",\"title\":\"@.capitalize:{'words.generated.selvbetjeningsbetingelser'}\"},\"self_serve_questions\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.selvbetjeningsspørgsmal'}\",\"single\":\"@:{'words.generated.spørgsmal'}\",\"title\":\"@.capitalize:{'words.generated.selvbetjeningsspørgsmal'}\"},\"self_serve_tasks\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.selvbetjeningsopgaver'}\",\"multiple\":\"@:{'words.generated.opgaver'}\",\"single\":\"@:{'words.generated.opgave'}\",\"title\":\"@.capitalize:{'words.generated.selvbetjeningsopgaver'}\"},\"self_serve_vehicle_conditions\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.køretøjsbetingelser'}\",\"multiple\":\"@:{'words.generated.køretøjsbetingelser'}\",\"single\":\"@:{'words.generated.køretøjsbetingelse'}\"},\"subuser_grants\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} underbrugertildelinger\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.generated.og'} administrere @:{'words.generated.dine'} @:{'words.generated.chauffører'}.\",\"title\":\"@.capitalize:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.chauffører'}\"},\"vehicles\":{\"columns\":{\"reg\":\"@.capitalize:{'words.generated.reg'}. 1.\"},\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.køretøjer'}\"},\"xlvask_vehicle_types\":{\"description\":\"@.capitalize:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.køretøjstyper'}\",\"title\":\"@:{'templates.generated.compat.statistics.vehicle_types'}\"}},\"order_bookings\":{\"add_service\":\"@:{'words.generated.tilføj'} @:{'words.generated.ydelse'}\",\"no_date_selected\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.dato'} @:{'words.generated.valgt'}\",\"no_department_selected\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.afdeling'} @:{'words.generated.valgt'}\"},\"outdated\":{\"gateway\":{\"description\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.bliver'} omdirigeret @:{'words.generated.til'} @:{'words.replication.article.host_mention'} @:{'words.generated.samme'} sti @:{'words.generated.pa'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}.\",\"redirect_now\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.nu'}\",\"redirecting_in\":\"Omdirigerer @:{'words.generated.om'} {seconds} @:{'words.generated.sekunder'}...\",\"subtitle\":\"@.capitalize:{'words.generated.dette'} @:{'words.generated.link'} @:{'words.generated.er'} @:{'words.generated.ved'} @:{'words.generated.at'} @:{'words.generated.blive'} udfaset.\",\"title\":\"@.capitalize:{'words.generated.forældet'} @:{'words.generated.gateway'}\"},\"installation\":{\"android_step_1\":\"@:{'words.generated.abn'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.i'} @:{'words.generated.chrome'}.\",\"android_step_2\":\"@:{'words.generated.abn'} browsermenuen @:{'words.generated.og'} @:{'words.generated.vælg'} \\\"@.capitalize:{'words.generated.installer'} @:{'words.generated.app'}\\\".\",\"android_step_3\":\"@.capitalize:{'words.generated.brug'} @:{'words.replication.article.host_mention'} @:{'words.generated.nye'} @:{'words.generated.installerede'} @:{'words.generated.app'} @:{'words.generated.og'} @:{'words.generated.fjern'} @:{'words.generated.denne'} @:{'words.generated.forældede'} @:{'words.generated.app'}.\",\"android_title\":\"Android-@:{'words.generated.migrering'}\",\"description\":\"@:{'words.generated.truck'} @:{'words.generated.wash'} @:{'words.generated.er'} flyttet @:{'words.generated.til'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.installation'} @:{'words.generated.pa'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}. @:{'words.generated.abn'} @:{'words.replication.article.host_mention'} @:{'words.generated.nye'} @:{'words.generated.side'} @:{'words.generated.og'} @:{'words.generated.installer'} @:{'words.generated.appen'} @:{'words.generated.igen'} @:{'words.generated.pa'} @:{'words.generated.din'} @:{'words.generated.enhed'}.\",\"ios_step_1\":\"@:{'words.generated.abn'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.i'} @:{'words.generated.safari'}.\",\"ios_step_2\":\"@.capitalize:{'words.generated.tryk'} @:{'words.generated.pa'} Del, @:{'words.generated.og'} @:{'words.generated.vælg'} \\\"Føj @:{'words.generated.til'} @:{'words.generated.hjemmeskærm'}\\\".\",\"ios_step_3\":\"@.capitalize:{'words.generated.brug'} @:{'words.replication.article.host_mention'} @:{'words.generated.nye'} hjemmeskærmsapp @:{'words.generated.og'} @:{'words.generated.fjern'} @:{'words.generated.denne'} @:{'words.generated.forældede'} @:{'words.generated.app'}.\",\"ios_title\":\"@:{'words.generated.iphone'}-@:{'words.generated.migrering'}\",\"open_now\":\"@:{'words.generated.abn'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.nu'}\",\"subtitle\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.installerede'} @:{'words.generated.app'} @:{'words.generated.er'} @:{'words.generated.forældet'} @:{'words.generated.og'} @:{'words.generated.skal'} migreres.\",\"title\":\"@.capitalize:{'words.generated.forældet'} @:{'words.generated.installation'}\"}},\"pagination\":{\"archive\":\"Arkiv\",\"clear_all\":\"Ryd alle\",\"ascending\":\"Stigende (Ældste @:{'words.generated.først'})\",\"booking_status\":\"Bogføringsstatus\",\"bookings_overview\":\"@:{'templates.generated.compat.objects.bookings.description'}\",\"descending\":\"Faldende (Nyeste @:{'words.generated.først'})\",\"download_excel\":\"@.capitalize:{'words.generated.download'} Excel\",\"error_status\":\"Fejlstatus\",\"from_date\":\"@.capitalize:{'words.generated.fra'} @:{'words.generated.dato'}\",\"has_special_agreement\":\"@.capitalize:{'words.generated.har'} @:{'words.generated.specialaftale'}\",\"has_wash_subscription\":\"@.capitalize:{'words.generated.har'} @:{'words.generated.vaskeabonnement'}\",\"here\":\"@:{'words.generated.her'}\",\"hide_filters\":\"@:{'words.generated.skjul'} @:{'words.generated.filtre'}\",\"in_progress\":\"Igangværende\",\"invoice_per_month\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.pr'}. @:{'words.generated.maned'}\",\"invoice_selection\":\"@.capitalize:{'words.generated.faktura'} valg\",\"invoicing_period\":\"Faktureringsperiode\",\"loading\":\"@.capitalize:{'words.generated.henter'} @:{'words.generated.data'}...\",\"new_booking\":\"@:{'templates.generated.compat.bookings.new_booking'}\",\"next\":\"@.capitalize:{'words.generated.næste'} @:{'words.generated.side'}\",\"no_special_agreement\":\"@.capitalize:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.specialaftale'}\",\"no_wash_subscription\":\"@.capitalize:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.vaskeabonnement'}\",\"not_booked\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.bogført'}\",\"not_completed\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.udført'}\",\"not_specified\":\"@.capitalize:{'words.generated.ikke'} specificeret\",\"not_tank_cleaning\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.tankcleaning'}\",\"old_booking_notice\":\"@:{'words.generated.bemærk'}: @.capitalize:{'words.generated.du'} befinder @:{'words.generated.dig'} @:{'words.generated.pa'} @:{'words.replication.article.host_mention'} gamle bookingportal, @:{'words.generated.vi'} @:{'words.generated.er'} @:{'words.generated.i'} @:{'words.generated.gang'} @:{'words.generated.med'} @:{'words.generated.at'} @:{'words.generated.flytte'} historisk @:{'words.generated.data'} @:{'words.generated.til'} @:{'words.replication.article.host_mention'} @:{'words.generated.nye'}. @.capitalize:{'words.generated.du'} finder @:{'words.replication.article.host_mention'} @:{'words.generated.nye'} @:{'words.generated.booking'} @:{'words.generated.portal'}\",\"old\":\"@.capitalize:{'words.generated.gammel'}\",\"only_tank_cleaning\":\"@.capitalize:{'words.generated.kun'} tankvask\",\"only_today\":\"@.capitalize:{'words.generated.kun'} @:{'words.generated.i'} @:{'words.generated.dag'}\",\"order_direction\":\"Rækkefølge\",\"other_filters\":\"@.capitalize:{'words.generated.andre'} @:{'words.generated.filtre'}\",\"other_no_tracking\":\"@.capitalize:{'words.generated.anden'} (@.capitalize:{'words.generated.uden'} tracking)\",\"page_of\":\"@:{'templates.common.page_of'}\",\"payment_processor\":\"Betalingsprocessor\",\"per_page\":\"@.capitalize:{'words.generated.per'} @:{'words.generated.side'}\",\"pickup\":\"@:{'words.generated.afhentning'}\",\"previous\":\"@.capitalize:{'words.generated.forrige'} @:{'words.generated.side'}\",\"reload\":\"Genindlæs\",\"show_filters\":\"@:{'words.generated.vis'} @:{'words.generated.filtre'}\",\"show_only_pending\":\"@:{'words.generated.vis'} @:{'words.generated.kun'} @:{'words.generated.afventende'}\",\"show_only_today\":\"@:{'words.generated.vis'} @:{'words.generated.kun'} @:{'words.generated.i'} @:{'words.generated.dag'}\",\"show_only_todays_pending\":\"@:{'words.generated.vis'} @:{'words.generated.kun'} @:{'words.generated.dagens'} @:{'words.generated.afventende'}\",\"special_agreement\":\"@.capitalize:{'words.generated.specialaftale'}\",\"to_date\":\"@.capitalize:{'words.generated.til'} @:{'words.generated.dato'}\",\"version\":\"Version\",\"wash_subscription\":\"@.capitalize:{'words.generated.vaskeabonnement'}\"},\"passkeys\":{\"added_successfully\":\"@.capitalize:{'words.generated.passkey'} @:{'words.generated.er'} @:{'words.generated.tilføjet'}.\",\"delete_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.passnøglen'} \\\"{name}\\\"? @.capitalize:{'words.generated.dette'} @:{'words.generated.kan'} @:{'words.generated.ikke'} @:{'words.generated.fortrydes'}.\",\"description\":\"@.capitalize:{'words.generated.brug'} @:{'words.generated.passkey'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.logge'} @:{'words.generated.sikkert'} @:{'words.generated.ind'} @:{'words.generated.med'} biometri @:{'words.generated.som'} Face @.upper:{'words.generated.id'}, Touch @.upper:{'words.generated.id'} @:{'words.generated.eller'} @:{'words.generated.din'} enheds PIN-@:{'words.generated.kode'}.\",\"login_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.logge'} @:{'words.generated.ind'} @:{'words.generated.med'} @:{'words.generated.passkey'}. @.capitalize:{'words.generated.prøv'} @:{'words.generated.venligst'} @:{'words.generated.igen'}.\",\"login_with_passkey\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'} @:{'words.generated.med'} @:{'words.generated.passkey'}\",\"name_label\":\"@.capitalize:{'words.generated.passkey'} @:{'words.generated.navn'}\",\"name_placeholder\":\"@:{'words.generated.f'}.@:{'words.generated.eks'}. @:{'words.generated.min'} @:{'words.generated.iphone'}, Arbejdslaptop\",\"name_required\":\"@:{'words.generated.indtast'} @:{'words.generated.venligst'} @:{'words.generated.et_2'} @:{'words.generated.navn'} @:{'words.generated.til'} @:{'words.generated.din'} @:{'words.generated.passkey'}.\",\"no_passkeys\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.tilføjet'} @:{'words.generated.nogen'} @:{'words.generated.passkeys'} @:{'words.generated.endnu'}. @:{'words.generated.tilføj'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.for'} @:{'words.generated.at'} aktivere @:{'words.generated.login'} @:{'words.generated.uden'} @:{'words.generated.adgangskode'}.\",\"not_supported_browser\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.browser'} @:{'words.generated.understøtter'} @:{'words.generated.ikke'} @:{'words.generated.passkeys'}. @.capitalize:{'words.generated.prøv'} @:{'words.generated.venligst'} @:{'words.generated.at'} @:{'words.generated.bruge'} @:{'words.replication.host_definite_suffix'} moderne @:{'words.generated.browser'} @:{'words.generated.som'} @:{'words.generated.chrome'}, @:{'words.generated.safari'}, Firefox @:{'words.generated.eller'} @.capitalize:{'words.generated.edge'}.\",\"not_supported\":\"@.capitalize:{'words.generated.passkeys'} understøttes @:{'words.generated.ikke'} @:{'words.generated.pa'} @:{'words.generated.denne'} @:{'words.generated.enhed'}.\",\"registration_cancelled\":\"@.capitalize:{'words.generated.registrering'} @:{'words.generated.af'} @:{'words.generated.passkey'} @:{'words.generated.blev'} @:{'words.generated.annulleret'}.\",\"registration_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} registrere @:{'words.generated.passkey'}. @.capitalize:{'words.generated.prøv'} @:{'words.generated.venligst'} @:{'words.generated.igen'}.\",\"rename_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} omdøbe @:{'words.generated.passkey'}. @.capitalize:{'words.generated.prøv'} @:{'words.generated.venligst'} @:{'words.generated.igen'}.\",\"rename_passkey\":\"@:{'words.generated.omdøb'} @:{'words.generated.passkey'}\",\"rename\":\"@:{'words.generated.omdøb'}\",\"renamed_successfully\":\"@.capitalize:{'words.generated.passkey'} @:{'words.generated.er'} omdøbt.\",\"success\":\"@:{'templates.generated.compat.common.success'}\",\"title\":\"@.capitalize:{'words.generated.passkeys'}\",\"unnamed\":\"Unavngivet @:{'words.generated.passkey'}\"},\"password_reset\":{\"new_password\":\"@:{'templates.generated.compat.settings.new_password'}\",\"restart\":\"Genstart nulstilling @:{'words.generated.af'} @:{'words.generated.adgangskode'}\",\"submit\":\"@:{'words.generated.nulstil'} @:{'words.generated.adgangskode'}\"},\"pos\":{\"add_to_cart\":\"@:{'words.generated.tilføj'} @:{'words.generated.til'} @:{'words.generated.kurv'}\",\"add_to_order\":\"@:{'words.generated.tilføj'} @:{'words.generated.til'} @:{'words.generated.ordre'}\",\"addon\":{\"included\":\"Inkluderet\"},\"apply_discount\":\"@:{'words.generated.anvend'} @:{'words.generated.rabat'}\",\"bookings\":{\"customer_number\":\"Kundenr.\"},\"camera_permission_denied\":\"Kameraadgang @:{'words.generated.nægtet'}. Giv @:{'words.generated.venligst'} @:{'words.generated.adgang'} @:{'words.generated.til'} kameraet @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.scanne'} @:{'words.generated.registreringsnummer'}.\",\"cancel_order\":\"@:{'words.generated.annuller'} @:{'words.generated.ordre'}\",\"card\":\"@:{'templates.generated.compat.global.payment.type.card'}\",\"cash\":\"@:{'templates.generated.compat.global.payment.type.cash'}\",\"clear_order\":\"@:{'words.generated.tøm'} @:{'words.generated.ordre'}\",\"confirm_clear_order\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.annullere'} @:{'words.generated.bookingen'}?\",\"confirm_complete_order\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.fuldføre'} @:{'words.generated.bookingen'}?\",\"confirm\":{\"confirm_booking\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.bekræfte'} @:{'words.generated.og'} @:{'words.generated.behandle'} @:{'words.generated.denne'} @:{'words.generated.booking'}?\",\"yes_confirm\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.bekræft'}\"},\"copy_last_wash_hint\":\"@:{'words.generated.kopierer'} @:{'words.generated.ydelse'}, @:{'words.generated.tilvalg'} @:{'words.generated.og'} @:{'words.generated.ekstra'} @:{'words.generated.varer'} @:{'words.generated.fra'} @:{'words.generated.sidste'} @:{'words.generated.vask'}\",\"copying_last_wash\":\"@:{'words.generated.kopierer'} @:{'words.generated.sidste'} @:{'words.generated.vask'}\",\"create_new_vehicle\":\"@:{'words.generated.opret'} @:{'words.generated.nyt'} @:{'words.generated.køretøj'}\",\"department_not_found\":\"@.capitalize:{'words.generated.afdeling'} @:{'words.generated.ikke'} @:{'words.generated.fundet'}. @.capitalize:{'words.generated.log'} @:{'words.generated.venligst'} @:{'words.generated.ind'} @:{'words.generated.igen'}.\",\"email_receipt\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.kvittering'}\",\"enter_plate\":\"@:{'words.generated.indtast'} @:{'words.generated.registreringsnummer'}\",\"finish_and_register_new\":\"@:{'words.generated.fuldfør'} @:{'words.generated.og'} @:{'words.generated.registrer'} @:{'words.generated.ny'}\",\"finish_and_register\":\"@:{'words.generated.fuldfør'} @:{'words.generated.og'} @:{'words.generated.registrer'}\",\"generate_certificate\":\"@:{'templates.generated.compat.global.generate_wash_certificate'}\",\"go_back\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.tilbage'}\",\"go_to_login\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.tilbage'} @:{'words.generated.til'} @:{'words.generated.login'}\",\"hold_to_change_vehicle\":\"@:{'words.generated.hold'} @:{'words.generated.inde'} @:{'words.generated.for'} @:{'words.generated.at'} ændre @:{'words.generated.køretøj'}\",\"hold_to_choose_additional_items\":\"@:{'words.generated.hold'} @:{'words.generated.inde'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.vælge'} @:{'words.generated.yderligere'} @:{'words.generated.varer'}\",\"hold_to_copy_last_wash\":\"@:{'words.generated.hold'} @:{'words.generated.inde'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.kopiere'} @:{'words.generated.sidste'} @:{'words.generated.vask'}\",\"images\":\"@.capitalize:{'words.generated.billeder'}\",\"input\":{\"license_plate_manual\":\"@:{'words.generated.indtast'} @:{'words.generated.registreringsnummer'} @:{'words.generated.manuelt'}\"},\"keyboard\":{\"clear\":\"@:{'words.generated.tøm'}\"},\"last_wash_matches_current_selection\":\"@.capitalize:{'words.generated.samme'} @:{'words.generated.ydelse'}, @:{'words.generated.tilvalg'} @:{'words.generated.og'} @:{'words.generated.ekstra'} @:{'words.generated.varer'} @:{'words.generated.som'} @:{'words.generated.sidste'} @:{'words.generated.vask'}\",\"manual_entry\":\"Manuell @:{'words.generated.registrering'}\",\"new_order\":\"@.capitalize:{'words.generated.ny'} order\",\"new_sale\":\"@.capitalize:{'words.generated.nyt'} @:{'words.generated.salg'}\",\"no_bookings\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.bookinger'} @:{'words.generated.fundet'}\",\"no_camera_found\":\"@:{'words.generated.intet'} @:{'words.generated.kamera'} @:{'words.generated.fundet'}. Tilslut @:{'words.generated.venligst'} @:{'words.generated.et_2'} @:{'words.generated.kamera'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.scanne'} @:{'words.generated.registreringsnummer'}.\",\"order_summary\":\"Ordreoversigt\",\"order\":{\"add_more_products\":\"@:{'words.generated.tilføj'} @:{'words.generated.flere'} @:{'words.generated.produkter'}\",\"badges\":{\"amount_due\":\"Skyldigt @:{'words.generated.beløb'}\",\"amount_received\":\"@.capitalize:{'words.generated.beløb'} @:{'words.generated.modtaget'}\",\"amount_reserved\":\"@.capitalize:{'words.generated.beløb'} reserveret\",\"not_invoiced\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.faktureret'}\",\"saved_for_invoicing\":\"@.capitalize:{'words.generated.gemt'} @:{'words.generated.til'} @:{'words.generated.fakturering'}\",\"tax\":\"@:{'templates.generated.compat.common.tax'}\"},\"click_to_go_to_booking\":\"@.capitalize:{'words.generated.tryk'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.booking'}\",\"complete_order\":\"@:{'templates.generated.compat.global.complete_order'}\",\"delete_order\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.ordre'}\",\"draft_check_exists\":\"Tjek @:{'words.generated.venligst'} @:{'words.generated.om'} @:{'words.generated.kladde'} @:{'words.generated.fakturaen'} @:{'words.generated.eksisterer'} @:{'words.generated.i'} @:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"draft_fetch_error\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.kladden'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.hentes'} @:{'words.generated.fra'} @:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"draft_transaction_export_blocked\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.transaktion'} @:{'words.generated.bruger'} @:{'words.replication.article.host_mention'} @:{'words.generated.konfigurerede'} @:{'words.generated.kladdekunde'} @:{'words.generated.og'} @:{'words.generated.kan'} @:{'words.generated.derfor'} @:{'words.generated.ikke'} @:{'words.generated.eksporteres'} @:{'words.generated.til'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"edit_note\":\"@:{'words.generated.rediger'} @:{'words.generated.note'}\",\"force_edit\":\"Gennemtving @:{'words.generated.redigeringsret'}\",\"get_invoice\":\"@:{'words.generated.hent'} @:{'words.generated.faktura'}\",\"include_in_invoice\":\"@.capitalize:{'words.generated.faktura'} medtagelse\",\"invoice_override\":{\"exclude\":\"@:{'words.generated.ekskluder'}\",\"force_exclude_help\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.ordre'} @:{'words.generated.medtages'} @:{'words.generated.ikke'} @:{'words.generated.pa'} @:{'words.generated.fakturaen'} @:{'words.generated.uanset'} @:{'words.generated.afdeling'}.\",\"force_include_help\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.ordre'} @:{'words.generated.medtages'} @:{'words.generated.pa'} @:{'words.generated.fakturaen'} @:{'words.generated.uanset'} @:{'words.generated.afdeling'}.\",\"include\":\"@:{'words.generated.inkluder'}\",\"inherit_exclude_help\":\"@.capitalize:{'words.generated.bruger'} @:{'words.generated.afdelingens'} @:{'words.generated.faktureringsregel'}. @.capitalize:{'words.generated.denne'} @:{'words.generated.ordre'} @:{'words.generated.medtages'} @:{'words.generated.aktuelt'} @:{'words.generated.ikke'} @:{'words.generated.pa'} @:{'words.generated.fakturaen'}.\",\"inherit_help\":\"@.capitalize:{'words.generated.bruger'} @:{'words.generated.afdelingens'} @:{'words.generated.faktureringsregel'}.\",\"inherit_include_help\":\"@.capitalize:{'words.generated.bruger'} @:{'words.generated.afdelingens'} @:{'words.generated.faktureringsregel'}. @.capitalize:{'words.generated.denne'} @:{'words.generated.ordre'} @:{'words.generated.medtages'} @:{'words.generated.aktuelt'} @:{'words.generated.pa'} @:{'words.generated.fakturaen'}.\",\"use_department\":\"@.capitalize:{'words.generated.brug'} @:{'words.generated.afdeling'}\"},\"linked_booking_id\":\"Tilknyttet @:{'words.generated.booking'} @.upper:{'words.generated.id'}\",\"order_note\":\"@.capitalize:{'words.generated.ordre'} @:{'words.generated.note'} (@.capitalize:{'words.generated.sendes'} @:{'words.generated.til'} @:{'words.generated.kunden'} øverst @:{'words.generated.pa'} @:{'words.generated.faktura'})\",\"print_receipt\":\"@:{'words.generated.print'} @:{'words.generated.kvittering'}\",\"reg\":\"@.capitalize:{'words.generated.reg'}\",\"remove_force_edit\":\"@.capitalize:{'words.generated.fjern'} @:{'words.generated.tvungen'} @:{'words.generated.redigeringsret'}\",\"send_to_economic\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.til'} @:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"settings_actions_title\":\"Administrative @:{'words.generated.handlinger'}\",\"settings_description\":\"@:{'words.generated.opdater'} @:{'words.generated.afdeling'}, oprettelsestid @:{'words.generated.og'} @:{'words.generated.fakturering'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.ordre'}.\",\"settings_save_error\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.gemme'} @:{'words.generated.indstillingerne'}.\",\"settings_saved\":\"@.capitalize:{'words.generated.indstillinger'} @:{'words.generated.gemt'}.\",\"status\":{\"not_paid\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.betalt'}\",\"partially_paid\":\"Delvist @:{'words.generated.betalt'}\",\"uncollectible\":\"@.capitalize:{'words.generated.ikke'} inddrivbar\",\"void\":\"Opkrævning @:{'words.generated.annulleret'} (void)\"}},\"pay\":\"@:{'words.generated.betal'}\",\"payment_by_card\":\"@.capitalize:{'words.generated.betaling'} @:{'words.generated.med'} @:{'words.generated.kort'}\",\"payment_by_cash\":\"@.capitalize:{'words.generated.betaling'} @:{'words.generated.med'} @:{'words.generated.kontant'}\",\"payment_by_invoice\":\"@.capitalize:{'words.generated.betaling'} @:{'words.generated.med'} @:{'words.generated.faktura'}\",\"payment_method\":\"@:{'templates.generated.compat.global.payment.method'}\",\"payment\":\"@.capitalize:{'words.generated.betaling'}\",\"print_receipt\":\"@:{'words.generated.udskriv'} @:{'words.generated.kvittering'}\",\"process_booking\":\"@:{'words.generated.behandler'} @:{'words.generated.booking'}...\",\"processing_order\":\"@:{'words.generated.behandler'} @:{'words.generated.ordre'}...\",\"restrictions\":{\"addons_not_allowed\":\"Tilvalg er ikke tilladt for denne kunde\",\"backend_rejected\":\"Produktet blev afvist af kundereglerne og er ikke tilføjet\",\"product_not_allowed\":\"Produktet er ikke tilladt for denne kunde\",\"restricted_items_removed\":\"Begrænsede tilvalg er fjernet fra kurven\",\"title\":\"Kunderegel\"},\"receipt\":\"@:{'templates.generated.compat.global.payment.receipt'}\",\"recent\":{\"title\":\"@:{'templates.generated.compat.common.last'}\"},\"reference\":\"@:{'templates.generated.compat.common.reference'}\",\"register_vehicle\":\"@.capitalize:{'words.generated.registrer'} @:{'words.generated.køretøj'}\",\"remove_discount\":\"@.capitalize:{'words.generated.fjern'} @:{'words.generated.rabat'}\",\"remove_from_order\":\"@.capitalize:{'words.generated.fjern'} @:{'words.generated.fra'} @:{'words.generated.ordre'}\",\"remove_image\":\"@.capitalize:{'words.generated.fjern'} @:{'words.generated.billede'}\",\"scan_plate\":\"@.capitalize:{'words.generated.scan'} @:{'words.generated.registreringsnummer'}\",\"search_license_plate\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.registreringsnummer'}\",\"select_product\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.et_2'} @:{'words.generated.produkt'}\",\"select_products\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.produkter'}\",\"subtitle\":\"@.capitalize:{'words.generated.registrer'} @:{'words.generated.køretøj'} @:{'words.generated.og'} @:{'words.generated.behandle'} @:{'words.generated.betalinger'}\",\"subtotal\":\"@:{'templates.generated.compat.common.subtotal'}\",\"take_photo\":\"@:{'templates.generated.compat.global.take_picture'}\",\"title\":\"@:{'templates.generated.compat.nav.pos_system'}\",\"total_amount\":\"@.capitalize:{'words.generated.total'} @:{'words.generated.beløb'}\",\"upload_image\":\"@.capitalize:{'words.generated.upload'} @:{'words.generated.billede'}\",\"vehicle_not_found\":\"@.capitalize:{'words.generated.køretøj'} @:{'words.generated.ikke'} @:{'words.generated.fundet'}\",\"vehicle_type\":\"Køretøjs @:{'words.generated.type'}\",\"vehicle_types\":{\"bus\":\"@:{'templates.generated.compat.vehicles.types.bus'}\",\"lastbil\":\"@:{'templates.generated.compat.vehicles.types.truck'}\",\"lift\":\"Lift\",\"mandskabsvogn\":\"Mandskabsvogn\",\"motorcykel\":\"Motorcykel\",\"sættevogn\":\"Semitrailer\",\"trailer\":\"@:{'templates.generated.compat.vehicles.types.trailer'}\",\"traktor\":\"@:{'templates.generated.compat.vehicles.types.tractor'}\",\"varevogn\":\"@:{'templates.generated.compat.vehicles.types.van'}\"},\"vehicle\":{\"previously_washed\":\"@.capitalize:{'words.generated.tidligere'} vasket\"},\"wash_certificate\":\"@.capitalize:{'words.generated.vaskecertifikat'}\",\"wash_type\":\"@.capitalize:{'words.generated.vasketype'}\"},\"products\":{\"admin\":{\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.handtere'} @:{'words.generated.produkter'}\",\"title\":\"@.capitalize:{'words.generated.produkt'} @:{'words.generated.administration'}\"},\"delete_product\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.produkt'}\",\"edit_product\":\"@:{'words.generated.rediger'} @:{'words.generated.produkt'}\",\"form\":{\"exterior\":\"@.capitalize:{'words.generated.udvendig'}\",\"interior\":\"@.capitalize:{'words.generated.indvendig'}\",\"is_exterior\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.udvendig'}\",\"is_interior\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.indvendig'}\",\"product_name\":\"@.capitalize:{'words.generated.produktnavn'}\",\"save\":\"@:{'templates.generated.compat.common.save'}\",\"vehicle_type\":\"@.capitalize:{'words.generated.køretøjstype'}\"},\"new_product\":\"@.capitalize:{'words.generated.nyt'} @:{'words.generated.produkt'}\",\"no_products\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.produkter'} @:{'words.generated.fundet'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.produktnavn'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.produkter'}\",\"type\":\"@.capitalize:{'words.generated.type'}\"},\"profile\":{\"email\":{\"enter_email\":\"@:{'words.generated.indtast'} @:{'words.generated.venligst'} @:{'words.generated.din'} @:{'words.generated.e'}-@:{'words.generated.mailadresse'}\",\"enter_password\":\"@:{'words.generated.indtast'} @:{'words.generated.din'} @:{'words.generated.adgangskode'}\",\"invalid_email\":\"@:{'templates.generated.compat.validation.email'}\",\"label\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mailadresse'}\",\"new_email_prompt\":\"@.capitalize:{'words.generated.hvilken'} @:{'words.generated.e'}-@:{'words.generated.mailadresse'} @:{'words.generated.vil'} @:{'words.generated.du'} @:{'words.generated.bruge'}?\",\"new_email_text\":\"@:{'words.generated.indtast'} @:{'words.generated.venligst'} @:{'words.generated.din'} @:{'words.generated.nye'} @:{'words.generated.e'}-@:{'words.generated.mailadresse'}.\",\"password_prompt\":\"@:{'words.generated.indtast'} @:{'words.generated.venligst'} @:{'words.generated.din'} @:{'words.generated.adgangskode'}\",\"saved\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mailadresse'} @:{'words.generated.gemt'}\",\"saved_text\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.e'}-@:{'words.generated.mailadresse'} @:{'words.generated.er'} @:{'words.generated.blevet'} @:{'words.generated.gemt'}.\"},\"error\":{\"save_email_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} @:{'words.generated.gemme'} @:{'words.generated.af'} @:{'words.generated.e'}-mailadressen.\",\"validation_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} validering @:{'words.generated.af'} @:{'words.generated.adgangskoden'}.\"}},\"replication\":{\"actions\":{\"add\":\"@:{'words.generated.tilføj'} @:{'words.replication.host'}\",\"promote\":\"Gør @:{'words.generated.til'} @:{'words.generated.primær'}\",\"provision\":\"@.capitalize:{'words.generated.klargør'}\",\"remove\":\"@:{'templates.generated.compat.common.remove'}\",\"rename\":\"@.capitalize:{'words.generated.rename'}\",\"save_and_provision\":\"@:{'words.generated.gem'} @:{'words.generated.og'} @:{'words.generated.klargør'}\",\"test\":\"@.capitalize:{'words.generated.test'}\"},\"blockers\":{\"database_engine_match_required\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'} @:{'words.generated.og'} @:{'words.generated.replikaen'} @:{'words.generated.skal'} @:{'words.generated.bruge'} @:{'words.generated.samme'} databasefamilie.\",\"database_io_thread_stopped\":\"@.upper:{'words.generated.io'}-@:{'words.generated.traden'} @:{'words.generated.for'} @:{'words.generated.databasereplikering'} @:{'words.generated.kører'} @:{'words.generated.ikke'}. @.capitalize:{'words.generated.replikaen'} @:{'words.generated.henter'} @:{'words.generated.derfor'} @:{'words.generated.ikke'} @:{'words.generated.nye'} binlog-@:{'words.generated.hændelser'} @:{'words.generated.fra'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}.\",\"database_primary_missing\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.registreret'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.primær'} @:{'words.replication.services.database'}.\",\"database_replica_missing_table_count\":\"@.capitalize:{'words.generated.replikaens'} @:{'words.generated.klargøring'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.færdig'}. {count} @:{'words.generated.tabeller'} @:{'words.generated.mangler'} @:{'words.generated.pa'} @:{'words.generated.replikaen'}. Eksempler: {tables}. @.capitalize:{'words.generated.tryk'} @.capitalize:{'words.generated.klargør'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.oprette'} @:{'words.generated.og'} @:{'words.generated.udfylde'} @:{'words.generated.skemaet'} @:{'words.generated.fra'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}.\",\"database_replica_missing_tables\":\"@.capitalize:{'words.generated.replikaens'} @:{'words.generated.klargøring'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.færdig'}. @:{'words.generated.manglende'} @:{'words.generated.tabeller'}: {tables}. @.capitalize:{'words.generated.tryk'} @.capitalize:{'words.generated.klargør'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.oprette'} @:{'words.generated.og'} @:{'words.generated.udfylde'} @:{'words.generated.skemaet'} @:{'words.generated.fra'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}.\",\"database_replica_not_seeded\":\"@.capitalize:{'words.generated.replikaen'} @:{'words.generated.mangler'} @:{'words.generated.tabeller'} @:{'words.generated.eller'} @:{'words.generated.data'} @:{'words.generated.fra'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}. @.capitalize:{'words.generated.tryk'} @.capitalize:{'words.generated.klargør'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.oprette'} @:{'words.generated.og'} @:{'words.generated.udfylde'} @:{'words.generated.skemaet'} @:{'words.generated.fra'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}. Teknisk @:{'words.generated.fejl'}: {error}\",\"database_replica_schema_only_rows\":\"@.capitalize:{'words.generated.replikaen'} @:{'words.generated.indeholder'} @:{'words.generated.data'} @:{'words.generated.i'} @:{'words.generated.tabeller'}, @:{'words.generated.hvor'} @:{'words.generated.kun'} @:{'words.generated.skemaet'} @:{'words.generated.skal'} kopieres: {tables}. @.capitalize:{'words.generated.tryk'} @.capitalize:{'words.generated.klargør'} @:{'words.generated.for'} @:{'words.generated.at'} genopbygge @:{'words.generated.replikaen'} @:{'words.generated.uden'} driftslogdata.\",\"database_replica_status_missing\":\"@:{'words.generated.mariadb'}-@:{'words.generated.replikering'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.konfigureret'} @:{'words.generated.pa'} @:{'words.generated.replikaen'}. @.capitalize:{'words.generated.tryk'} @.capitalize:{'words.generated.klargør'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.konfigurere'} @:{'words.generated.replikaen'} @:{'words.generated.igen'}.\",\"database_sql_thread_stopped\":\"@:{'words.generated.sql'}-@:{'words.generated.traden'} @:{'words.generated.for'} @:{'words.generated.databasereplikering'} @:{'words.generated.kører'} @:{'words.generated.ikke'}. @.capitalize:{'words.generated.replikaen'} anvender @:{'words.generated.derfor'} @:{'words.generated.ikke'} @:{'words.generated.de'} hentede @:{'words.generated.ændringer'}.\",\"database_threads_required\":\"Både @.upper:{'words.generated.io'}- @:{'words.generated.og'} @:{'words.generated.sql'}-trådene @:{'words.generated.for'} @:{'words.generated.databasereplikering'} @:{'words.generated.skal'} @:{'words.generated.køre'}.\",\"mariadb_binlog_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.binær'} @:{'words.generated.logning'} @:{'words.generated.skal'} @:{'words.generated.være'} @:{'words.generated.slaet'} @:{'words.generated.til'}.\",\"mariadb_binlog_unavailable\":\"@.capitalize:{'words.generated.status'} @:{'words.generated.for'} @:{'words.generated.mariadb'} @:{'words.generated.binær'} @:{'words.generated.logning'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.tilgængelig'}.\",\"mariadb_gtid_position_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.gtid'}-position @:{'words.generated.skal'} @:{'words.generated.være'} @:{'words.generated.tilgængelig'}.\",\"mariadb_gtid_replication_required\":\"@:{'words.generated.mariadb'}-@:{'words.generated.replikering'} @:{'words.generated.skal'} @:{'words.generated.bruge'} @:{'words.generated.gtid'}-@:{'words.generated.tilstand'}.\",\"mariadb_preseed_required\":\"@:{'words.generated.mariadb'}-@:{'words.generated.replikaer'} @:{'words.generated.skal'} @:{'words.generated.være'} @:{'words.generated.sikkert'} @:{'words.generated.klargjort'}, @:{'words.generated.før'} @:{'words.generated.administreret'} @:{'words.generated.replikering'} @:{'words.generated.kan'} @:{'words.generated.konfigureres'}.\",\"mariadb_server_id_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.server'}_@:{'words.generated.id'} @:{'words.generated.skal'} @:{'words.generated.være'} @:{'words.generated.konfigureret'}.\",\"mariadb_version_current\":\"@.capitalize:{'words.generated.administreret'} @:{'words.generated.replikering'} @:{'words.generated.kræver'} @:{'words.generated.mariadb'} 10.6 @:{'words.generated.eller'} @:{'words.generated.nyere'}. @.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.aktuelle'} @:{'words.generated.server'} @:{'words.generated.rapporterer'} {version}.\",\"mariadb_version_required\":\"@.capitalize:{'words.generated.administreret'} @:{'words.generated.replikering'} @:{'words.generated.kræver'} @:{'words.generated.mariadb'} 10.6 @:{'words.generated.eller'} @:{'words.generated.nyere'}.\",\"minio_primary_missing\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.registreret'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.primær'} @:{'words.replication.services.minio'}-@:{'words.replication.host'}.\",\"minio_replica_not_caught_up\":\"@:{'words.replication.services.minio'}-@:{'words.generated.replikaen'} @:{'words.generated.er'} @:{'words.generated.ikke'} indhentet @:{'words.generated.endnu'}.\",\"minio_replication_not_configured\":\"@:{'words.replication.services.minio'} @:{'words.generated.bucket'}-@:{'words.generated.replikering'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.konfigureret'}.\",\"minio_source_bucket_missing\":\"@:{'words.replication.services.minio'}-kildebucket {bucket} @:{'words.generated.mangler'}.\",\"minio_space_insufficient\":\"@:{'words.replication.services.minio'}-@:{'words.generated.malet'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.nok'} @:{'words.generated.ledig'} @:{'words.generated.plads'}. Krævet {required} @:{'words.generated.bytes'}, @:{'words.generated.tilgængelig'} {available} @:{'words.generated.bytes'}.\",\"minio_space_unknown\":\"@.capitalize:{'words.generated.ledig'} @:{'words.generated.plads'} @:{'words.generated.pa'} @:{'words.replication.services.minio'}-@:{'words.generated.malet'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} bestemmes.\",\"minio_target_bucket_missing\":\"@:{'words.replication.services.minio'}-målbucket {bucket} @:{'words.generated.mangler'}.\",\"mysql_binlog_required\":\"@:{'words.generated.mysql'} @:{'words.generated.binær'} @:{'words.generated.logning'} @:{'words.generated.skal'} @:{'words.generated.være'} @:{'words.generated.slaet'} @:{'words.generated.til'}.\",\"mysql_binlog_unavailable\":\"@.capitalize:{'words.generated.status'} @:{'words.generated.for'} @:{'words.generated.mysql'} @:{'words.generated.binær'} @:{'words.generated.logning'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.tilgængelig'}.\",\"mysql_clone_primary_required\":\"@:{'words.generated.mysql'} @:{'words.generated.clone'}-@:{'words.generated.pluginet'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.aktivt'} @:{'words.generated.pa'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} donor.\",\"mysql_clone_target_required\":\"@:{'words.generated.mysql'} @:{'words.generated.clone'}-@:{'words.generated.pluginet'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.aktivt'} @:{'words.generated.pa'} @:{'words.generated.malværten'}. @.capitalize:{'words.generated.brug'} @:{'words.generated.kun'} @:{'words.replication.host_definite_suffix'} forudklargjort @:{'words.generated.replika'}, @:{'words.generated.nar'} @:{'words.generated.malværten'} @:{'words.generated.er'} @:{'words.generated.klargjort'} @:{'words.generated.sikkert'}.\",\"mysql_gtid_required\":\"@:{'words.generated.mysql'} @:{'words.generated.gtid'}-@:{'words.generated.tilstand'} @:{'words.generated.skal'} @:{'words.generated.være'} @:{'words.generated.slaet'} @:{'words.generated.til'}.\",\"mysql_gtid_unavailable\":\"@:{'words.generated.mysql'} @:{'words.generated.gtid'}-@:{'words.generated.tilstand'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.tilgængelig'}. @.capitalize:{'words.generated.administreret'} @:{'words.generated.replikering'} @:{'words.generated.kræver'} @:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.med'} @:{'words.generated.gtid'} @:{'words.generated.aktiveret'}.\",\"mysql_server_id_required\":\"@:{'words.generated.mysql'} @:{'words.generated.server'}_@:{'words.generated.id'} @:{'words.generated.skal'} @:{'words.generated.være'} @:{'words.generated.konfigureret'}.\",\"mysql_server_uuid_required\":\"@:{'words.generated.mysql'} @:{'words.generated.server'}_uuid @:{'words.generated.skal'} @:{'words.generated.være'} @:{'words.generated.tilgængelig'}. @.capitalize:{'words.generated.administreret'} @:{'words.generated.replikering'} @:{'words.generated.kræver'} @:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'}.\",\"mysql_unique_server_id\":\"Databasereplikaen @:{'words.generated.skal'} have @:{'words.replication.host_definite_suffix'} unik @:{'words.generated.server'}_@:{'words.generated.id'}.\",\"mysql8_current\":\"@.capitalize:{'words.generated.administreret'} @:{'words.generated.replikering'} @:{'words.generated.kræver'} @:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'}. @.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.aktuelle'} @:{'words.generated.server'} @:{'words.generated.rapporterer'} {version}.\",\"mysql8_required\":\"@.capitalize:{'words.generated.administreret'} @:{'words.generated.replikering'} @:{'words.generated.kræver'} @:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'}.\",\"redis_acl_config_required\":\"@:{'words.replication.services.redis'} ACL @:{'words.generated.skal'} tillade CONFIG @.upper:{'words.generated.get'}, @.upper:{'words.generated.set'} @:{'words.generated.og'} REWRITE @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.gemme'} replikeringsændringer.\",\"redis_link_down\":\"@:{'words.replication.services.redis'}-@:{'words.generated.replikaens'} @:{'words.generated.forbindelse'} @:{'words.generated.til'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.host'} @:{'words.generated.er'} @:{'words.generated.ikke'} oppe.\",\"redis_not_replica\":\"@:{'words.replication.services.redis'}-værten @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.replika'} @:{'words.generated.lige'} @:{'words.generated.nu'}.\",\"redis_ping_failed\":\"@:{'words.replication.services.redis'} PING @:{'words.generated.returnerede'} @:{'words.generated.ikke'} PONG.\",\"redis_primary_missing\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.registreret'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.primær'} @:{'words.replication.services.redis'}-@:{'words.replication.host'}.\"},\"compose\":{\"compose_file\":\"@:{'words.generated.docker'}-@:{'words.generated.compose'}.yml\",\"env_file\":\".@:{'words.generated.env'}\",\"generate\":\"@:{'words.generated.generer'} @:{'words.generated.compose'}\",\"host_port\":\"Værtsport\",\"next_steps\":\"@:{'templates.generated.compat.common.next_step'}\",\"primary_host\":\"@.capitalize:{'words.generated.primær'} @:{'words.replication.host'}\",\"primary_port\":\"@.capitalize:{'words.generated.primær'} @:{'words.generated.port'}\",\"seed_command\":\"@:{'words.generated.manuel'} klargøringskommando (@:{'words.generated.fallback'})\",\"server_id\":\"@.capitalize:{'words.generated.server'}-@:{'words.generated.id'}\",\"service_name\":\"Servicenavn\",\"steps\":{\"database_register_replica\":\"@:{'words.generated.udfyld'} @.upper:{'words.generated.mariadb'}_@:{'words.generated.primary'}_@.upper:{'words.generated.admin'}_@:{'words.generated.password'} @:{'words.generated.i'} .@:{'words.generated.env'}, @:{'words.generated.vent'} @:{'words.generated.til'} @:{'words.generated.klargøringstjenesten'} @:{'words.generated.er'} @:{'words.generated.færdig'}, @:{'words.generated.test'} @:{'words.generated.forbindelsen'}, @:{'words.generated.og'} @:{'words.generated.tryk'} @:{'words.generated.gem'} @:{'words.generated.og'} @:{'words.generated.klargør'}.\",\"database_seed\":\"@.capitalize:{'words.replication.article.host_mention'} genererede @:{'words.generated.compose'}-klargøringstjeneste importerer @:{'words.generated.automatisk'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}.\",\"database_server_id\":\"@.capitalize:{'words.generated.brug'} @:{'words.generated.et_2'} unikt @:{'words.generated.server'}-@:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.hver'} @:{'words.generated.mariadb'}-@:{'words.replication.host'}.\",\"deploy\":\"@:{'words.generated.opret'} @:{'words.generated.denne'} @:{'words.generated.konfiguration'} @:{'words.generated.som'} @:{'words.replication.host_definite_suffix'} @.capitalize:{'words.generated.docker'} @.capitalize:{'words.generated.compose'}- @:{'words.generated.eller'} Coolify @.capitalize:{'words.generated.compose'}-@:{'words.generated.service'}.\",\"minio_buckets\":\"@.capitalize:{'words.generated.klargøringstjenesten'} @:{'words.generated.opretter'} @:{'words.generated.de'} @:{'words.generated.valgte'} @:{'words.generated.buckets'} @:{'words.generated.og'} slår versionering @:{'words.generated.til'}.\",\"minio_primary_credentials\":\"Hav @:{'words.generated.endpoint'} @:{'words.generated.og'} @:{'words.generated.legitimationsoplysninger'} @:{'words.generated.til'} @:{'words.replication.article.host_mention'} @:{'words.generated.aktuelle'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.minio'} @:{'words.generated.klar'}; @:{'words.generated.bucket'}-@:{'words.generated.replikering'} @:{'words.generated.konfigureres'} @:{'words.generated.under'} @:{'words.generated.klargøring'}.\",\"redis_primary_password\":\"@:{'words.generated.udfyld'} @.upper:{'words.replication.services.redis'}_@:{'words.generated.primary'}_@.upper:{'words.generated.host'}, @.upper:{'words.replication.services.redis'}_@:{'words.generated.primary'}_@.upper:{'words.generated.port'} @:{'words.generated.og'} @.upper:{'words.replication.services.redis'}_@:{'words.generated.primary'}_@:{'words.generated.password'} @:{'words.generated.med'} oplysningerne @:{'words.generated.fra'} @:{'words.replication.article.host_mention'} @:{'words.generated.nuværende'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.redis'}-@:{'words.replication.host'}.\"},\"test_before_save\":\"@:{'templates.generated.compat.configuration.limble.test_connection'}\",\"test_failed\":\"@.capitalize:{'words.generated.forbindelsen'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} testes @:{'words.generated.korrekt'}. @.capitalize:{'words.generated.se'} blokeringerne @:{'words.generated.nedenfor'}.\",\"test_ok\":\"@.capitalize:{'words.generated.forbindelsen'} @:{'words.generated.blev'} testet @:{'words.generated.korrekt'}.\",\"title\":\"@:{'words.generated.generer'} @.capitalize:{'words.generated.docker'} @.capitalize:{'words.generated.compose'}\"},\"fields\":{\"admin_password\":\"Administratoradgangskode\",\"admin_username\":\"Administratorbrugernavn\",\"allow_preseeded_replica\":\"@.capitalize:{'words.generated.replikaen'} @:{'words.generated.er'} @:{'words.generated.allerede'} @:{'words.generated.sikkert'} @:{'words.generated.klargjort'}\",\"buckets\":\"@.capitalize:{'words.generated.buckets'}\",\"console_port\":\"Konsolport\",\"replication_transfer_limit\":\"Overførselsgrænse\",\"database_index\":\"Databaseindeks\",\"port\":\"@.capitalize:{'words.generated.port'}\",\"replication_password\":\"Replikeringsadgangskode\",\"replication_username\":\"Replikeringsbrugernavn\",\"scheme\":\"@.capitalize:{'words.generated.skema'}\",\"ssl_mode\":\"SSL-@:{'words.generated.tilstand'}\",\"username\":\"@:{'templates.generated.compat.auth.username'}\"},\"labels\":{\"blockers\":\"Blokeringer\",\"last_checked\":\"@:{'words.generated.sidst'} @:{'words.generated.kontrolleret'}\",\"replicas\":\"@.capitalize:{'words.generated.replikaer'}\",\"replication\":\"@.capitalize:{'words.generated.replikering'}\"},\"prompts\":{\"rename_host\":\"@:{'words.generated.indtast'} @:{'words.generated.et_2'} @:{'words.generated.nyt'} @:{'words.generated.navn'} @:{'words.generated.til'} @:{'words.replication.host_definite_suffix'}\"},\"roles\":{\"inactive\":\"@:{'templates.generated.compat.common.inactive'}\",\"primary\":\"@.capitalize:{'words.generated.primær'}\",\"replica\":\"@.capitalize:{'words.generated.replika'}\"},\"states\":{\"coolify_deploying\":\"@:{'words.generated.coolify'}-@:{'words.generated.udrulningen'} @:{'words.generated.kører'}.\",\"coolify_restarting\":\"@:{'words.generated.coolify'}-@:{'words.generated.genstart'} @:{'words.generated.kører'}.\",\"coolify_starting_provisioning\":\"@:{'words.generated.coolify'}-@:{'words.generated.servicen'} @:{'words.generated.kan'} @:{'words.generated.nas'}. @.capitalize:{'words.generated.starter'} @:{'words.generated.replikeringsklargøring'}.\",\"coolify_waiting_for_endpoint\":\"@:{'words.generated.coolify'}-@:{'words.generated.udrulningen'} @:{'words.generated.kører'}. @.capitalize:{'words.generated.venter'} @:{'words.generated.pa'} @:{'words.generated.serviceporten'} @:{'words.generated.før'} @:{'words.generated.replikeringsklargøring'} @:{'words.generated.starter'}.\",\"deploy_timeout\":\"@:{'words.generated.coolify'}-@:{'words.generated.udrulningen'} @:{'words.generated.kører'} @:{'words.generated.stadig'}. @:{'words.generated.opdater'} @:{'words.generated.status'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.fortsætte'}.\",\"empty\":\"@.capitalize:{'words.generated.ingen'} værter @:{'words.generated.registreret'}.\",\"error\":\"Replikeringsanmodningen @:{'words.generated.kunne'} @:{'words.generated.ikke'} gennemføres.\",\"loading\":\"@.capitalize:{'words.generated.indlæser'} replikeringstopologi...\",\"provision_timeout\":\"Klargøringen @:{'words.generated.kører'} @:{'words.generated.stadig'}. @:{'words.generated.opdater'} @:{'words.generated.status'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.fortsætte'}.\",\"syncing_in_background\":\"Synkroniserer @:{'words.generated.i'} baggrunden.\",\"waiting_for_redis_primary_link\":\"@.capitalize:{'words.generated.venter'} @:{'words.generated.pa'} @:{'words.generated.forbindelsen'} @:{'words.generated.til'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.redis'}-@:{'words.replication.host'}.\"},\"status\":{\"degraded\":\"Nedsat\",\"down\":\"Nede\",\"not_configured\":\"@:{'templates.generated.compat.global.not_configured'}\",\"provisioning\":\"@:{'templates.generated.compat.replication.actions.provision'}\",\"removed\":\"@.capitalize:{'words.generated.fjernet'}\"},\"subtitle\":\"@.capitalize:{'words.generated.administreret'} @:{'words.replication.services.database'}-, @:{'words.replication.services.redis'}- @:{'words.generated.og'} @:{'words.replication.services.minio'}-@:{'words.generated.replikering'}\"},\"roles\":{\"permissions\":{\"access_scope\":\"Adgangsomrade\",\"actions\":{\"clear_all\":\"Ryd gruppe\",\"reload\":\"Genindlaes\",\"retry\":\"Prov igen\",\"select_all\":\"Vaelg gruppe\"},\"columns\":{\"enabled\":\"Aktiveret\",\"permission\":\"Tilladelse\",\"route\":\"Rute\",\"status\":\"Status\"},\"department_access_description\":\"Giver adgang til {name}.\",\"empty\":\"Der er ingen tilladelser tilgaengelige.\",\"empty_group\":\"Denne gruppe har ingen tilladelser.\",\"errors\":{\"load\":\"Rolletilladelser kunne ikke indlaeses.\",\"update\":\"En eller flere tilladelser kunne ikke opdateres. Rollens aktuelle tilladelser blev genindlaest.\"},\"filtered_summary\":\"{count} matcher\",\"groups\":{\"access\":{\"description\":\"Sidetype- og afdelingsadgang.\",\"label\":\"Adgang\"},\"bookings\":{\"description\":\"Tilladelser til bookinger, tidsbookinger og planlaegning.\",\"label\":\"Bookinger\"},\"customers_users\":{\"description\":\"Tilladelser til kunder, brugere, medarbejdere, roller og login.\",\"label\":\"Kunder og brugere\"},\"departments_operations\":{\"description\":\"Afdelingsdrift, baner, relaer, notifikationer, rapporter og mal.\",\"label\":\"Afdelinger og drift\"},\"invoicing_economic\":{\"description\":\"Tilladelser til fakturaer, faktureringsperioder, opkraevning og e-conomic.\",\"label\":\"Fakturering og e-conomic\"},\"orders_pos\":{\"description\":\"Tilladelser til ordrer, POS, betalinger og ordrelinjer.\",\"label\":\"Ordrer og POS\"},\"other\":{\"description\":\"Tilladelser, der ikke matcher en anden gruppe.\",\"label\":\"Andet\"},\"products_pricing\":{\"description\":\"Tilladelser til produkter, priser, rabatter og valuta.\",\"label\":\"Produkter og priser\"},\"selfserve_edge\":{\"description\":\"Tilladelser til selvbetjening, vask, scannere, gateways og edge-udstyr.\",\"label\":\"Selvbetjening og edge\"},\"system_config\":{\"description\":\"System, konfiguration, release, replikering og integrationer.\",\"label\":\"System og konfiguration\"}},\"no_description\":\"Der er ingen beskrivelse.\",\"no_search_results\":\"Ingen tilladelser matcher sogningen.\",\"page_access\":{\"admin\":{\"description\":\"Giver adgang til administrationssider.\",\"label\":\"Admin\"},\"superuser\":{\"description\":\"Giver adgang til superbrugersider.\",\"label\":\"Superbruger\"},\"user\":{\"description\":\"Giver adgang til brugersider.\",\"label\":\"Bruger\"}},\"search_label\":\"Sog i tilladelser\",\"search_placeholder\":\"Sog pa label, nogle, beskrivelse, rute eller metode\",\"selected_summary\":\"{selected} af {total} valgt\",\"status\":{\"disabled\":\"Deaktiveret\",\"enabled\":\"Aktiveret\"},\"subtitle\":\"Rolletilladelser\",\"title\":\"Tilladelser for rolle {id}\",\"title_with_name\":\"Tilladelser for {name}\"},\"templates\":{\"apply\":\"Anvend {template}-skabelon\",\"confirm_button\":\"Anvend skabelon\",\"confirm_text\":\"Tilfoej {count} manglende tilladelser fra {template} til {role}?\",\"confirm_title\":\"Anvend tilladelsesskabelon?\",\"error_text\":\"En eller flere tilladelser fra {template} kunne ikke tilfoejes til {role}. Rollelisten blev genindlaest.\",\"error_title\":\"Kunne ikke anvende skabelon\",\"load_error\":\"Kunne ikke indlaese skabeloner. Proev igen\",\"loading\":\"Indlaeser skabeloner...\",\"section\":\"Begraenset backoffice-skabeloner\",\"success_text\":\"Tilfoejede {count} tilladelser fra {template} til {role}.\",\"success_title\":\"Skabelon anvendt\",\"unavailable\":\"Ingen skabeloner er tilgaengelige.\",\"up_to_date_text\":\"{role} har allerede alle tilladelser i {template}.\",\"up_to_date_title\":\"Rollen er opdateret\"},\"subtitle\":\"@.capitalize:{'words.generated.brugerroller'}\"},\"self_wash\":{\"add_as_new_vehicle\":\"@:{'words.generated.tilføj'} {plate} @:{'words.generated.som'} @:{'words.generated.nyt'} @:{'words.generated.køretøj'}\",\"answer_questions\":\"Besvar @:{'words.generated.spørgsmal'}\",\"assistance\":\"@.capitalize:{'words.generated.har'} @:{'words.generated.du'} @:{'words.generated.brug'} @:{'words.generated.for'} @:{'words.generated.hjælp'}?\",\"available\":\"@.capitalize:{'words.generated.tilgængelig'}\",\"configure_wash\":\"@:{'words.generated.konfigurer'} @:{'words.generated.vask'}\",\"confirm_and_start\":\"@.capitalize:{'words.generated.bekræft'} @:{'words.generated.og'} @:{'words.generated.start'} @:{'words.generated.vask'}\",\"department_no_self_wash_in_staffed_hours\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.afdeling'} tilbyder @:{'words.generated.ikke'} @:{'words.generated.selvvask'} @:{'words.generated.i'} bemandede @:{'words.generated.timer'}.\",\"department_no_self_wash\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.afdeling'} @:{'words.generated.understøtter'} @:{'words.generated.ikke'} @:{'words.generated.selvvask'}.\",\"enter_customer_number\":\"@:{'words.generated.indtast'} @:{'words.generated.kundenummer'}\",\"enter_registration_number\":\"@:{'templates.generated.compat.pos.enter_plate'}\",\"finishing_wash_exit_opening\":\"Afslutter @:{'words.generated.vask'}, @:{'words.generated.porten'} @:{'words.generated.abnes'} @:{'words.generated.automatisk'}\",\"follow_steps\":\"Følg @:{'words.generated.de'} 6 @:{'words.generated.trin'} @:{'words.generated.for'} @:{'words.generated.det'} bedste resultat:\",\"loading_department\":\"@.capitalize:{'words.generated.indlæser'} @:{'words.generated.afdeling'}...\",\"loading_types\":\"@.capitalize:{'words.generated.indlæser'} @:{'words.generated.typer'}...\",\"loading_vehicle_types\":\"@.capitalize:{'words.generated.indlæser'} @:{'words.generated.tilgængelige'} @:{'words.generated.køretøjstyper'}...\",\"lane_unavailable\":\"Vaskebanen er ikke tilgængelig\",\"machine\":\"@.capitalize:{'words.generated.maskine'}\",\"no_departments_found\":\"@:{'templates.generated.compat.departments.no_departments'}\",\"occupied\":\"Optaget\",\"open_property_access_gate\":\"@:{'words.generated.abn'} adgangsport\",\"open_property_exit_gate\":\"@:{'words.generated.abn'} udgangsport\",\"perform_wash\":\"@:{'words.generated.udfør'} @:{'words.generated.vask'}\",\"questions_answered\":\"@.capitalize:{'words.generated.spørgsmal'} @:{'words.generated.besvaret'}\",\"select_from_vehicles\":\"@.capitalize:{'words.generated.vælg'} {plate} @:{'words.generated.fra'} @:{'words.generated.dine'} @:{'words.generated.køretøjer'}\",\"select_vehicle_type\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.type'} @:{'words.generated.af'} @:{'words.generated.køretøj'}\",\"select_vehicle\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.køretøj'}\",\"select_your_vehicle\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.dit'} @:{'words.generated.køretøj'}\",\"start_machine\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.af'} @:{'words.generated.maskine'}\",\"start_wash_desc\":\"Gå direkte @:{'words.generated.til'} afdelingens vaskebaner @:{'words.generated.og'} start @:{'words.replication.host_definite_suffix'} @:{'words.generated.vask'} @:{'words.generated.for'} @:{'words.generated.dit'} @:{'words.generated.køretøj'}. @.capitalize:{'words.generated.vælg'} @:{'words.generated.dit'} @:{'words.generated.køretøj'} @:{'words.generated.og'} @:{'words.replication.article.host_mention'} @:{'words.generated.ønskede'} vasketype @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.komme'} @:{'words.generated.i'} gang.\",\"start_wash\":\"@:{'templates.generated.compat.guest.start_wash'}\",\"total_time\":\"@.capitalize:{'words.generated.samlet'} @:{'words.generated.tid'}: {minutes} @:{'words.generated.minutter'} @:{'words.generated.og'} {seconds} @:{'words.generated.sekunder'}\",\"unavailable\":\"@.capitalize:{'words.generated.utilgængelig'}\",\"vehicle_step_missing_customer_number\":\"Indtast kundenummer for at fortsætte.\",\"vehicle_step_missing_department\":\"Vent på, at nærmeste afdeling er indlæst, før du fortsætter.\",\"vehicle_step_missing_registration\":\"Indtast registreringsnummer for at fortsætte.\",\"vehicle_step_missing_vehicle_type\":\"Vælg en tilgængelig køretøjstype for at fortsætte.\",\"wash_completed_contact\":\"@.capitalize:{'words.generated.vi'} håber, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.er'} tilfreds @:{'words.generated.med'} resultatet. @.capitalize:{'words.generated.hvis'} @:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.brug'} @:{'words.generated.for'} @:{'words.generated.yderligere'} assistance, @:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.velkommen'} @:{'words.generated.til'} @:{'words.generated.at'} kontakte @:{'words.generated.vores'} personale.\",\"wash_completed_message\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.vask'} @:{'words.generated.er'} @:{'words.generated.nu'} @:{'words.generated.færdig'}! @:{'words.generated.tak'} @:{'words.generated.fordi'} @:{'words.generated.du'} brugte @:{'words.generated.vores'} selvbetjeningsvask.\",\"wash_completed\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.færdig'}\",\"wash_in_progress\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.i'} @:{'words.generated.gang'}\"},\"settings\":{\"appearance\":\"Udseende\",\"billing\":\"@.capitalize:{'words.generated.fakturering'}\",\"change_password\":\"@:{'words.generated.skift'} @:{'words.generated.adgangskode'}\",\"confirm_password\":\"@.capitalize:{'words.generated.bekræft'} @:{'words.generated.adgangskode'}\",\"current_password\":\"@.capitalize:{'words.generated.nuværende'} @:{'words.generated.adgangskode'}\",\"date_format\":\"Datoformat\",\"disable\":\"Deaktivér\",\"discard_changes\":\"@:{'words.generated.ignorer'} @:{'words.generated.ændringer'}\",\"email_notifications\":\"@.upper:{'words.generated.e'}-mailnotifikationer\",\"enable\":\"@:{'words.generated.aktiver'}\",\"general\":\"Generelt\",\"integrations\":\"@.capitalize:{'words.generated.integrationer'}\",\"new_password\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.adgangskode'}\",\"notifications\":\"@:{'templates.generated.compat.nav.notifications'}\",\"password_change\":{\"confirm_password\":\"@:{'templates.generated.compat.settings.confirm_password'}\",\"current_password\":\"@:{'templates.generated.compat.settings.current_password'}\"},\"push_notifications\":\"Pushnotifikationer\",\"save_changes\":\"@:{'templates.generated.compat.modals.save_changes'}\",\"section\":{\"password\":\"@:{'templates.generated.compat.global.password'}\",\"password_desc\":\"Adgangskoden bruges @:{'words.generated.til'} @:{'words.generated.at'} autentificere @:{'words.generated.api'} forbindelsen.\",\"subscription\":\"@.capitalize:{'words.generated.abonnement'}\"},\"security\":\"@.capitalize:{'words.generated.sikkerhed'}\",\"sms_notifications_desc\":\"Modtag SMS notifikationer ved forskellige begivenheder.\",\"sms_notifications\":\"@:{'words.generated.sms'}-@:{'words.generated.notifikationer'}\",\"subscription\":{\"expires_at\":\"Udløber\"},\"theme\":\"Tema\",\"time_format\":\"Tidsformat\",\"timezone\":\"Tidszone\",\"two_factor\":\"@.capitalize:{'words.generated.to'}-@:{'words.generated.faktor'}-@:{'words.generated.godkendelse'}\"},\"statistics\":{\"average\":\"Gennemsnit\",\"avg_revenue_per_wash\":\"@:{'words.generated.gennemsnitlig'} @:{'words.generated.omsætning'} @:{'words.generated.pr'}. @:{'words.generated.vask'}\",\"avg_wash_time\":\"@:{'words.generated.gennemsnitlig'} vasketid\",\"chart\":{\"revenue_over_time\":\"@.capitalize:{'words.generated.omsætning'} @:{'words.generated.over'} @:{'words.generated.tid'}\",\"washes_over_time\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.over'} @:{'words.generated.tid'}\"},\"compare\":\"@:{'templates.generated.compat.global.compare'}\",\"customer_types\":\"Kundetyper\",\"day\":\"@:{'words.generated.dag'}\",\"days\":\"@:{'words.generated.dage'}\",\"growth\":\"Vækst\",\"no_data\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.data'} @:{'words.generated.tilgjengelig'}\",\"overview\":{\"departments_today\":\"@.capitalize:{'words.generated.afdelinger'} @:{'words.generated.i'} @:{'words.generated.dag'}\",\"departments_today_desc\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.hvordan'} @:{'words.generated.dine'} @:{'words.generated.afdelinger'} @:{'words.generated.klarer'} @:{'words.generated.sig'} @:{'words.generated.i'} @:{'words.generated.dag'}\",\"no_departments\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.afdelinger'}\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.hvordan'} @:{'words.generated.dine'} @:{'words.generated.afdelinger'} @:{'words.generated.klarer'} @:{'words.generated.sig'}\"},\"popular_products\":\"@:{'words.generated.populære'} @:{'words.generated.produkter'}\",\"popular_times\":\"@:{'words.generated.populære'} @:{'words.generated.tider'}\",\"revenue\":\"@.capitalize:{'words.generated.omsætning'}\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.statistik'}\",\"sum\":\"Sum\",\"table\":\"@.capitalize:{'words.generated.tabel'}\",\"top_customers_by_revenue\":\"@:{'words.generated.top'} @:{'words.generated.kunder'} @:{'words.generated.efter'} @:{'words.generated.omsætning'}\",\"top_customers_by_washes\":\"@:{'words.generated.top'} @:{'words.generated.kunder'} @:{'words.generated.efter'} @:{'words.generated.vask'}\",\"vehicle_types\":\"@.capitalize:{'words.generated.køretøjstyper'}\",\"washes\":\"@:{'templates.generated.compat.global.wash_multiple'}\"},\"super_user_dashboard\":{\"create_department\":\"@:{'words.generated.opret'} @:{'words.generated.afdeling'}\",\"create_number_plate_scan\":\"@:{'words.generated.opret'} @:{'words.generated.nummerplade'} @:{'words.generated.scanning'}\",\"create_order_booking\":\"@:{'words.generated.opret'} @:{'words.generated.ordre'} @:{'words.generated.booking'}\",\"create_order\":\"@:{'templates.generated.compat.tables.xlvask.create_order'}\",\"create_product\":\"@:{'words.generated.opret'} @:{'words.generated.produkt'}\",\"get_department_list\":\"@:{'words.generated.hent'} afdelingsliste\",\"get_orders\":\"@:{'words.generated.hent'} @:{'words.generated.ordrer'}\",\"get_session_data\":\"@:{'words.generated.hent'} @:{'words.generated.session'} @:{'words.generated.data'}\",\"get_user_list\":\"@:{'words.generated.hent'} brugerliste\",\"run_cron\":\"@.capitalize:{'words.generated.kør'} cron\",\"title\":\"@.capitalize:{'words.generated.superbruger'}-@:{'words.generated.dashboard'}\"},\"superuser_dashboard\":{\"bookings\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.bookinger'} @:{'words.generated.pa'} @:{'words.generated.tværs'} @:{'words.generated.af'} @:{'words.generated.afdelinger'}\"},\"calendar\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.kalender'} @:{'words.generated.for'} @:{'words.generated.alle'} @:{'words.generated.afdelinger'}\"},\"configuration\":{\"backups\":\"@:{'templates.generated.compat.system_status.modules.backups'}\",\"economic\":\"@:{'templates.generated.compat.system_status.modules.economic'}\",\"fxrates\":\"@:{'templates.generated.compat.configuration.fxrates.conversion_rates'}\",\"limble\":\"@:{'templates.generated.compat.system_status.modules.limble'}\",\"mailersend\":\"@:{'words.generated.mailersend'}\",\"motor_api\":\"@:{'words.generated.motor'} @:{'words.generated.api'}\",\"subtitle\":\"@.capitalize:{'words.generated.systemkonfiguration'}\",\"virkdata\":\"@:{'words.generated.virkdata'}\"},\"customers\":{\"edit_customer_title\":\"@:{'templates.generated.compat.customers.edit_customer'}\",\"new_customer_subtitle\":\"@:{'words.generated.opret'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.kunde'}\",\"new_customer_title\":\"@:{'templates.generated.compat.common.customer_picker.select_new_customer'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.kunder'} @:{'words.generated.pa'} @:{'words.generated.tværs'} @:{'words.generated.af'} @:{'words.generated.afdelinger'}\"},\"departments\":{\"add\":\"@:{'words.generated.tilføj'} @:{'words.generated.afdeling'}\",\"delete\":\"@:{'templates.generated.compat.departments.delete_department'}\",\"edit\":\"@:{'templates.generated.compat.departments.edit_department'}\",\"new_department_subtitle\":\"@:{'words.generated.opret'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.afdeling'}\",\"subtitle\":\"@:{'templates.generated.compat.departments.subtitle'}\"},\"department_pages\":{\"branding\":{\"subtitle\":\"Branding, kontaktoplysninger og afdelingsprofil\"},\"categories\":{\"subtitle\":\"Gennemse og vedligehold afdelingens kategorikatalog\"},\"gateways\":{\"subtitle\":\"Gateway-dækning, bane-bindinger, scannere og relæstatus\"},\"modules\":{\"subtitle\":\"Skift afdelingens modulindstillinger og integrationsflag\",\"variables\":{\"bookingsystem_enabled\":\"Bookingsystem aktiveret\",\"bookingsystem_time_based_enabled\":\"Tidsbaseret bookingsystem aktiveret\",\"bookingsystem_time_based_password\":\"Kodeord til tidsbaseret bookingsystem\",\"exclude_from_invoicing\":\"Udelukket fra fakturering\",\"workfeed_department_id\":\"Workfeed-afdeling\"}},\"pricing\":{\"subtitle\":\"Gennemse afdelingens eksplicitte prisoverskrivelser\"},\"stripe\":{\"readers\":{\"subtitle\":\"Betalingsterminaler, der er knyttet til denne afdeling\"},\"setup\":{\"subtitle\":\"Tilknyt Stripe-placeringen for denne afdeling\"}}},\"employees\":{\"new_employee_subtitle\":\"@:{'words.generated.opret'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.medarbejder'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.medarbejdere'} @:{'words.generated.pa'} @:{'words.generated.tværs'} @:{'words.generated.af'} @:{'words.generated.afdelinger'}\"},\"home\":{\"subtitle\":\"@.capitalize:{'words.generated.velkommen'} @:{'words.generated.til'} administratorpanelet\",\"title\":\"@:{'words.generated.admin'}-@:{'words.generated.dashboard'}\"},\"invoices\":{\"subtitle\":\"@:{'templates.generated.compat.invoices.subtitle'}\"},\"menu\":{\"calendar\":\"@.capitalize:{'words.generated.kalender'}\",\"pos\":\"@:{'words.generated.pos'}\"},\"products\":{\"add\":\"@:{'words.generated.tilføj'} @:{'words.generated.produkt'}\",\"addons_subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.produkttilvalg'} @:{'words.generated.pa'} @:{'words.generated.tværs'} @:{'words.generated.af'} @:{'words.generated.afdelinger'}\",\"addons\":{\"add\":\"@:{'words.generated.tilføj'} @:{'words.generated.tilvalg'}\",\"delete\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.tilvalg'}\",\"edit\":\"@:{'words.generated.rediger'} @:{'words.generated.tilvalg'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.produkttilvalg'}\"},\"delete\":\"@:{'templates.generated.compat.products.delete_product'}\",\"subtitle\":\"@:{'templates.generated.compat.products.subtitle'}\"},\"roles\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.brugerroller'}\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} systemindstillinger\"},\"sidebar\":{\"billing_periods\":\"Faktureringsperioder\",\"xlvask\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}\"},\"statistics\":{\"subtitle\":\"@:{'templates.generated.compat.statistics.subtitle'}\"},\"users\":{\"add\":\"@:{'words.generated.tilføj'} @:{'words.generated.bruger'}\",\"delete\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.bruger'}\",\"edit\":\"@:{'words.generated.rediger'} @:{'words.generated.bruger'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.users.subtitle'}\"},\"vehicles\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.køretøjer'}\"},\"wash_log\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.vaskelog'} @:{'words.generated.pa'} @:{'words.generated.tværs'} @:{'words.generated.af'} @:{'words.generated.afdelinger'}\"}},\"superuser_invoice_distribution\":{\"actions\":{\"next_month\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.næste'} @:{'words.generated.maned'}\",\"open_month\":\"@:{'words.generated.abn'} @:{'words.generated.maned'}\",\"previous_month\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.forrige'} @:{'words.generated.maned'}\",\"reset_filters\":\"@:{'words.generated.nulstil'} @:{'words.generated.filtre'}\"},\"aria\":{\"compare_table_caption\":\"Fakturasammenligningsresultater sorteret @:{'words.generated.efter'} @:{'words.generated.afvigelser'} @:{'words.generated.og'} @:{'words.generated.advarsler'}\",\"customer_table_caption\":\"Kundefordelingsrader @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.maned'}\",\"department_table_caption\":\"@:{'words.generated.afdelingsfordeling'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.maned'}\",\"month_comparison_caption\":\"@.capitalize:{'words.generated.maned'}-@:{'words.generated.til'}-@:{'words.generated.maned'} fakturasammenligning @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.maned'}\",\"month_table_caption\":\"@.capitalize:{'words.generated.manedlige'} @:{'words.generated.totaler'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.maned'}\",\"open_month\":\"@:{'words.generated.abn'} distribusjonsdetaljer @:{'words.generated.for'} {month}\",\"sort_month\":\"@:{'words.generated.sorter'} @:{'words.generated.tabel'} @:{'words.generated.efter'} @:{'words.generated.maned'}\",\"sort_total\":\"@:{'words.generated.sorter'} @:{'words.generated.tabel'} @:{'words.generated.efter'} @:{'words.generated.totalbeløb'}\",\"source_mix_row\":\"Indt?gtskildefordeling @:{'words.generated.for'} {month}\",\"trend_chart\":\"Fordelingsfordelingstrend @:{'words.generated.pr'}. @:{'words.generated.maned'}\"},\"compare\":{\"compare_month\":\"@:{'words.generated.sammenlign'} @:{'words.generated.med'} @:{'words.generated.maned'}\",\"line_mode_disclaimer\":\"@.capitalize:{'words.generated.linje'}-@:{'words.generated.for'}-@:{'words.generated.linje'}-@:{'words.generated.tilstand'} @:{'words.generated.bruger'} @:{'words.generated.tilgængelige'} sammenligningsmetadata @:{'words.generated.og'} advarselslinjer @:{'words.generated.fra'} @:{'words.generated.api'}-svaret.\",\"mismatches\":\"@.capitalize:{'words.generated.afvigelser'}\",\"mode\":\"Sammenligningstilstand\",\"modes\":{\"invoice_total\":\"@.capitalize:{'words.generated.kun'} @:{'words.generated.fakturatotal'}\",\"line_by_line\":\"@.capitalize:{'words.generated.linje'}-@:{'words.generated.for'}-@:{'words.generated.linje'}-@:{'words.generated.opsummering'}\"},\"month_to_month\":\"@.capitalize:{'words.generated.maned'}-@:{'words.generated.til'}-@:{'words.generated.maned'}-@:{'words.generated.sammenligning'}\",\"run\":\"@:{'words.generated.sammenlign'} @:{'words.generated.alle'} lokale @:{'words.generated.fakturaer'} @:{'words.generated.med'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"run_short\":\"@.capitalize:{'words.generated.kør'} @:{'words.generated.sammenligning'}\",\"sorted_hint\":\"@:{'words.generated.rækker'} sorteres @:{'words.generated.først'} @:{'words.generated.efter'} @:{'words.generated.afvigelser'} @:{'words.generated.og'} advarselsniveau.\",\"status_label\":\"Sammenligningsstatus\",\"status\":{\"mismatch\":\"Afvigelse\",\"ok\":\"@.capitalize:{'words.generated.matcher'}\"},\"total_checked\":\"@.capitalize:{'words.generated.fakturaer'} @:{'words.generated.kontrolleret'}\",\"total_difference\":\"@.capitalize:{'words.generated.samlet'} @:{'words.generated.forskel'}\",\"warning_details\":\"@.capitalize:{'words.generated.advarsler'} @:{'words.generated.for'} @:{'words.generated.faktura'} #{invoiceId}\"},\"departments\":{\"allocation_hint\":\"@.capitalize:{'words.generated.bogførte'} @:{'words.generated.afdelingsfordelinger'} @:{'words.generated.er'} beregnet @:{'words.generated.fra'} @:{'words.generated.hver'} @:{'words.generated.afdelings'} @:{'words.generated.andel'} @:{'words.generated.af'} @:{'words.generated.delt'} @:{'words.generated.fordeling'}, @:{'words.generated.og'} @:{'words.generated.kan'} @:{'words.generated.derfor'} afvige @:{'words.generated.fra'} faktiske @:{'words.generated.bogførte'} @:{'words.generated.beløb'}.\"},\"empty\":{\"no_compare_results\":\"@.capitalize:{'words.generated.ingen'} sammenligningsresultater @:{'words.generated.endnu'}\",\"no_comparison_months\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.maned'} @:{'words.generated.til'} @:{'words.generated.sammenligning'}. @.capitalize:{'words.generated.vælg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.anden'} @:{'words.generated.maned'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.se'} @:{'words.generated.forskelle'}.\",\"no_customers\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.kunder'} @:{'words.generated.matcher'} @:{'words.generated.de'} @:{'words.generated.nuværende'} @:{'words.generated.filtre'}\",\"no_departments\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.afdelinger'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.maned'}\",\"no_month_comparison\":\"@.capitalize:{'words.generated.vælg'} @:{'words.replication.host_definite_suffix'} sammenligningsmåned @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.se'} @:{'words.generated.forskelle'}.\",\"no_months\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.maneder'} @:{'words.generated.at'} @:{'words.generated.vise'}\"},\"errors\":{\"compare_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.fuldføre'} @:{'words.generated.sammenligningen'}\",\"month_load_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.hente'} @:{'words.generated.valgt'} @:{'words.generated.maned'}\",\"overview_load_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.hente'} @:{'words.generated.manedlig'} fordelingsoversigt\"},\"filters\":{\"all_departments\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.afdelinger'}\",\"all_sources\":\"@.capitalize:{'words.generated.alle'} kilder\",\"all_years\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.ar'}\",\"search\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.maned'}\",\"search_customer\":\"@:{'templates.generated.compat.common.search_customer'}\",\"search_customer_placeholder\":\"@.capitalize:{'words.generated.kundenavn'} @:{'words.generated.eller'} @:{'words.generated.kundenummer'}...\",\"search_department\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.afdeling'}\",\"search_department_placeholder\":\"@.capitalize:{'words.generated.afdelingsnavn'}...\",\"search_placeholder\":\"@:{'words.generated.find'} @:{'words.generated.maned'}...\"},\"loading\":{\"loading_months\":\"@.capitalize:{'words.generated.indlæser'} @:{'words.generated.maneder'} ({loaded}/{total})\"},\"metrics\":{\"booked\":\"@.capitalize:{'words.generated.bogførte'} @:{'words.generated.fakturaer'}\",\"distribution\":\"@:{'words.generated.afdelingsfordeling'}\",\"months\":\"@.capitalize:{'words.generated.maneder'} @:{'words.generated.i'} @:{'words.generated.visning'}\",\"other\":\"Annen bokført inntekt\",\"subscriptions\":\"@:{'templates.generated.compat.global.subscriptions'}\"},\"monthly_page\":{\"subtitle\":\"@:{'words.generated.gennemga'} @:{'words.generated.afdelingsfordelinger'}, kundeopdeling @:{'words.generated.og'} fakturasammenligninger.\",\"title\":\"@.capitalize:{'words.generated.fordeling'} @:{'words.generated.for'} {month}\",\"toolbar_month\":\"Månedsvælger\",\"toolbar_month_picker\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.maned'}\"},\"overview\":{\"loaded_months\":\"{loaded} @:{'words.generated.maneder'} @:{'words.generated.indlæst'}\",\"subtitle\":\"@.capitalize:{'words.generated.manedlig'} @:{'words.generated.oversigt'} @:{'words.generated.over'} @:{'words.generated.fordeling'} @:{'words.generated.af'} @:{'words.generated.delt'} indkomst @:{'words.generated.efter'} @:{'words.generated.kilde'}.\",\"title\":\"@:{'templates.generated.compat.superuser_invoice_distribution.metrics.distribution'}\"},\"sections\":{\"month_table\":\"Månedstotaler\",\"source_blend\":\"Kildeblanding\",\"top_months\":\"Topmåneder @:{'words.generated.efter'} @:{'words.generated.total'}\",\"trend\":\"Månedsvis fordelingstrend\"},\"table\":{\"booked\":\"Bestilt\",\"compared\":\"Sammenlignet @:{'words.generated.maned'}\",\"current\":\"@:{'templates.generated.compat.objects.goals.columns.current'}\",\"delta\":\"@.capitalize:{'words.generated.forskel'}\",\"distribution\":\"@.capitalize:{'words.generated.fordeling'}\",\"economic_total\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.totalbeløb'}\",\"estimated_booked_allocation\":\"Estimert @:{'words.generated.bogført'} @:{'words.generated.andel'}\",\"fixed_pricing\":\"@:{'templates.generated.compat.global.fixed_price_arrangements'}\",\"internal_total\":\"Lokal @:{'words.generated.total'}\",\"invoice_id\":\"@.capitalize:{'words.generated.faktura'}-@.upper:{'words.generated.id'}\",\"metric\":\"Måling\",\"share\":\"@.capitalize:{'words.generated.andel'}\",\"source_mix\":\"Kildemiks\"},\"tooltips\":{\"compare_mode\":\"@.capitalize:{'words.generated.fakturatotal'} sammenligner @:{'words.generated.samlede'} @:{'words.generated.totaler'}. @.capitalize:{'words.generated.linje'}-@:{'words.generated.for'}-@:{'words.generated.linje'} @:{'words.generated.giver'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.opsummering'} @:{'words.generated.pr'}. fakturalinje @:{'words.generated.ud'} @:{'words.generated.fra'} @:{'words.generated.tilgængelige'} sammenligningsdata.\",\"estimated_booked\":\"Estimeret @:{'words.generated.bogført'} @:{'words.generated.andel'} basert @:{'words.generated.pa'} @:{'words.generated.hver'} @:{'words.generated.afdelings'} @:{'words.generated.andel'} @:{'words.generated.af'} @:{'words.generated.delt'} @:{'words.generated.fordeling'}.\",\"fixed_pricing\":\"@.capitalize:{'words.generated.beløb'} @:{'words.generated.tildelt'} @:{'words.generated.fra'} @:{'words.generated.fastprisaftaler'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.maned'}.\",\"subscriptions\":\"@.capitalize:{'words.generated.beløb'} @:{'words.generated.tildelt'} @:{'words.generated.fra'} køretøjsabonnementer @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} måneden.\",\"summary\":\"@.capitalize:{'words.generated.hver'} @:{'words.generated.maned'} inkluderer bookede @:{'words.generated.totaler'} pluss @:{'words.generated.fastpris'} @:{'words.generated.og'} abonnementsfordelingssum.\"},\"warnings\":{\"legacy_compare_fallback\":\"@.capitalize:{'words.generated.sammenligningen'} @:{'words.generated.kører'} @:{'words.generated.pa'} @:{'words.generated.det'} @:{'words.generated.ældre'} @:{'words.generated.endpoint'}, @:{'words.generated.fordi'} @:{'words.generated.v2'} bulk-@:{'words.generated.sammenligning'} @:{'words.generated.ikke'} @:{'words.generated.var'} @:{'words.generated.tilgængelig'}.\",\"legacy_distribution_fallback\":\"Indlæste {count} @:{'words.generated.maned'}(@:{'words.generated.er'}) @:{'words.generated.via'} @:{'words.generated.ældre'} @:{'words.generated.distributions'}-@:{'words.generated.endpoints'}, @:{'words.generated.fordi'} @:{'words.generated.v2'} @:{'words.generated.ikke'} @:{'words.generated.var'} @:{'words.generated.tilgængelig'}.\",\"legacy_distribution_month\":\"Månedsdata @:{'words.generated.bruger'} @:{'words.generated.ældre'} @:{'words.generated.distributions'}-@:{'words.generated.endpoints'}, @:{'words.generated.fordi'} @:{'words.generated.v2'} @:{'words.generated.ikke'} @:{'words.generated.var'} @:{'words.generated.tilgængelig'}.\"}},\"superuser\":{\"collected_order_invoice\":{\"and_booked\":\"@:{'templates.generated.compat.collected_invoice.stripe.and_booked'}\",\"and_draft\":\"@:{'words.generated.og'} @:{'words.generated.gemt'} @:{'words.generated.som'} @:{'words.generated.kladde'}\",\"but_not_booked\":\"@:{'templates.generated.compat.collected_invoice.stripe.but_not_booked'}\",\"in_economic\":\"@:{'templates.generated.compat.collected_invoice.stripe.in_economic'}\",\"invoice_booked_economic\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.bogført'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}, @:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.ingen'} @:{'words.generated.yderligere'} @:{'words.generated.handlinger'} @:{'words.generated.nødvendige'}.\",\"invoice_draft_economic\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.gemt'} @:{'words.generated.som'} @:{'words.generated.kladde'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}, @:{'words.generated.og'} @:{'words.generated.kan'} @:{'words.generated.bogføres'} @:{'words.generated.der'} @:{'words.generated.direkte'}.\",\"invoice_paid_status\":\"@:{'templates.generated.compat.collected_invoice.stripe.invoice_paid'}\",\"no_invoice_found\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.findes'} @:{'words.generated.ingen'} @:{'words.generated.faktura'} @:{'words.generated.med'} @:{'words.generated.det'} angivne @:{'words.generated.id'}\",\"payment_overview\":\"@:{'templates.generated.compat.collected_invoice.stripe.payment_overview'}\"},\"department_lane\":{\"force_disable_machine\":\"@:{'words.generated.tving'} @:{'words.generated.deaktiver'} @:{'words.generated.maskine'}\",\"force_disable_success\":\"@.capitalize:{'words.generated.maskine'} @:{'words.generated.tvunget'} @:{'words.generated.deaktiveret'}\",\"force_enable_machine\":\"@:{'words.generated.tving'} @:{'words.generated.aktiver_2'} @:{'words.generated.maskine'}\",\"force_enable_success\":\"@.capitalize:{'words.generated.maskine'} @:{'words.generated.tvunget'} @:{'words.generated.aktiveret'}\",\"force_error\":\"@.capitalize:{'words.generated.fejl'} @:{'words.generated.ved'} @:{'words.generated.tvungen'} @:{'words.generated.handling'}\"},\"driver_access\":{\"advanced\":\"Avanceret\",\"capabilities\":{\"add_bookings\":\"Opret bookinger\",\"add_vehicles\":\"Tilføj køretøjer\",\"delete_bookings\":\"Slet bookinger\",\"delete_selfserve\":\"Slet selvbetjening\",\"delete_vehicles\":\"Slet køretøjer\",\"disable_driver_access\":\"Deaktiver chaufføradgang\",\"edit_bookings\":\"Rediger bookinger\",\"edit_driver_access\":\"Rediger chaufføradgang\",\"edit_orders\":\"Rediger ordrer\",\"edit_selfserve\":\"Rediger selvbetjening\",\"edit_vehicles\":\"Rediger køretøjer\",\"invite_drivers\":\"Inviter chauffører\",\"start_selfserve\":\"Start selvbetjening\",\"view_bookings\":\"Se bookinger\",\"view_drivers\":\"Se chauffører\",\"view_orders\":\"Se ordrer\",\"view_selfserve\":\"Se selvbetjening\",\"view_vehicles\":\"Se køretøjer\"},\"custom_description\":\"Vælg enkelte adgangsområder for denne chauffør.\",\"editor_intro\":\"Vælg en samlet adgangsprofil. Superbrugere kan vælge tilpasset adgang ved særlige behov.\",\"editor_title\":\"Adgangsprofil for {name}\",\"empty\":\"Ingen adgangsprofiler blev fundet.\",\"groups\":{\"bookings\":\"Bookinger\",\"driver_management\":\"Chaufførstyring\",\"orders\":\"Ordrer\",\"selfserve\":\"Selvbetjening\",\"vehicles\":\"Køretøjer\"},\"loading\":\"Henter adgangsprofiler...\",\"selected\":\"Valgt\",\"templates\":{\"booking_coordinator\":{\"description\":\"Kan koordinere bookinger og se de tilknyttede køretøjer og ordrer.\",\"label\":\"Bookingkoordinator\"},\"custom\":{\"description\":\"Vælg enkelte adgangsområder.\",\"label\":\"Tilpasset\"},\"deactivated\":{\"description\":\"Beholder chaufføren på kunden uden aktiv adgang.\",\"label\":\"Deaktiveret\"},\"driver\":{\"description\":\"Kan bruge selvbetjening, håndtere egne bookinger, se køretøjer og se ordrer.\",\"label\":\"Chauffør\"},\"fleet_admin\":{\"description\":\"Kan administrere chauffører, køretøjer, bookinger, selvbetjening og ordrer for kunden.\",\"label\":\"Flådeadministrator\"}},\"form_label\":\"Adgangsprofil\",\"form_help\":\"Vælg en samlet adgangsprofil. Den kan ændres senere.\",\"summary\":{\"no_permissions\":\"Ingen tilladelser\",\"permission_count\":\"{count} tilladelser\",\"custom_summary\":\"Tilpasset: {summary}\"}},\"driver_contact\":{\"close\":\"Luk\",\"email_missing\":\"E-mail mangler\",\"link_not_sent_default\":\"Linket kunne ikke sendes.\",\"link_not_sent_title\":\"Link kunne ikke sendes\",\"link_send_failed\":\"Linket kunne ikke sendes.\",\"link_sent_default\":\"Linket er sendt.\",\"link_sent_title\":\"Link sendt\",\"login_link_failed_title\":\"Loginlink kunne ikke sendes\",\"login_link_not_sent_title\":\"Loginlink kunne ikke sendes\",\"login_link_sent_title\":\"Loginlink sendt\",\"missing\":\"Mangler\",\"password_guide_failed_title\":\"Guide kunne ikke sendes\",\"password_guide_not_sent_title\":\"Guide kunne ikke sendes\",\"password_guide_sent_title\":\"Guide sendt\",\"phone_missing\":\"Telefon mangler\",\"send_login_link\":\"Send forhåndsgodkendt loginlink\",\"send_password_guide\":\"Send guide til ny adgangskode\",\"status\":\"Status\",\"unverified\":\"Ikke verificeret\",\"verification_update_failed\":\"Verifikationsstatus kunne ikke opdateres.\",\"verification_update_failed_title\":\"Status kunne ikke opdateres\",\"verified\":\"Verificeret\"},\"driver_wheel\":{\"access_section\":\"Adgange\",\"account_section\":\"Konto\",\"contact_section\":\"Kontakt\",\"details_section\":\"Detaljer\",\"identity_subsection\":\"Identitet\",\"system_subsection\":\"System\"},\"invoicing_billing_period\":{\"dashboard_right\":\"@.capitalize:{'words.generated.dashboard'} @.capitalize:{'words.generated.højre'} @.capitalize:{'words.generated.visning'}\",\"fetch_period_data\":\"@:{'words.generated.hent'} periodedata\"},\"nav\":{\"categories\":\"Kategorier\",\"complaints\":\"@.capitalize:{'words.generated.kundeklager'}\",\"department_gates\":\"@.capitalize:{'words.generated.afdelingsporte'}\",\"department_lanes\":\"@.capitalize:{'words.generated.afdelingsbaner'}\",\"department_relays\":\"@.capitalize:{'words.generated.afdelingsreleer'}\",\"invoicing\":\"@:{'templates.generated.compat.settings.billing'}\",\"orders\":\"Transaktionshistorik\",\"roles\":\"@.capitalize:{'words.generated.roller'} @:{'words.generated.og'} @:{'words.generated.tilladelser'}\",\"scanners\":\"@.capitalize:{'words.generated.nummerpladescannere'}\",\"xlvask\":\"@:{'words.generated.xlvask'}\",\"error_reports\":\"Error reports\"},\"pages\":{\"categories\":{\"create\":\"@:{'templates.generated.compat.common.create'}\"},\"complaints\":{\"created_by_column\":\"@:{'templates.generated.compat.admin.pos.created_by'}\",\"delete_message\":\"Klagen @:{'words.generated.bliver'} @:{'words.generated.slettet'} permanent.\",\"delete_title\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.klage'}?\",\"edit_title\":\"@:{'words.generated.rediger'} @:{'words.generated.klage'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.i'} @:{'words.generated.kundeklager'}\",\"single\":\"@.capitalize:{'words.generated.klage'}\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.og'} @:{'words.generated.administrer'} @:{'words.generated.kundeklager'} @:{'words.generated.pa'} @:{'words.generated.tværs'} @:{'words.generated.af'} @:{'words.generated.afdelinger'}.\",\"title\":\"@:{'templates.generated.compat.superuser.nav.complaints'}\"},\"customers\":{\"create\":\"@:{'words.generated.opret'} @:{'words.generated.ny'} @:{'words.generated.kunde'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.kunder'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"department_gates\":{\"create\":\"@:{'words.generated.opret'} @:{'words.generated.ny'} @:{'words.generated.afdelingsport'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} afdelingsporter @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"department_lanes\":{\"create\":\"@:{'words.generated.opret'} @:{'words.generated.ny'} afdelingsbane\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.afdelingsbaner'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"department_relays\":{\"create\":\"@:{'words.generated.opret'} @:{'words.generated.nyt'} @:{'words.generated.afdelingsrele'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.afdelingsreleer'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"department_selector\":{\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.vælge'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.afdeling'}\"},\"departments\":{\"create\":\"@:{'words.generated.opret'} @:{'words.generated.ny'} @:{'words.generated.afdeling'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.afdelinger'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"drivers\":{\"subtitle\":\"@:{'templates.generated.compat.objects.subuser_grants.subtitle'}\"},\"employees\":{\"create\":\"@:{'words.generated.opret'} @:{'words.generated.ny'} @:{'words.generated.medarbejder'}\",\"migrate_to_limited_backoffice\":\"Migrer til begrænset backoffice\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.medarbejdere'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"orders\":{\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.transaktioner'}\"},\"products\":{\"create\":\"@:{'words.generated.opret'} @:{'words.generated.nyt'} @:{'words.generated.produkt'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.produkter'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"scanners\":{\"create\":\"@:{'words.generated.opret'} @:{'words.generated.ny'} nummerpladescanner\",\"simulate_scan\":\"Simuler @:{'words.generated.scan'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.nummerpladescannere'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"subusers\":{\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.underbrugere'} @:{'words.generated.i'} @:{'words.generated.systemet'}\",\"title\":\"@.capitalize:{'words.generated.underbrugere'}\"}},\"statistics\":{\"error_occurred\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.skete'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'}\"},\"user_detail\":{\"overview_header_help\":\"Brug genvejene og de direkte handlinger nedenfor til at administrere denne kundekonto.\",\"workspace_shortcuts_help\":\"Gå direkte til de kundespecifikke arbejdsområder for denne konto.\",\"attribute_help\":\"Hold markøren over en attribut for at se, hvad den ændrer for kunden.\",\"subtitles\":{\"overview\":\"Kundeoverblik og administrationsområde\",\"orders\":\"Fakturahåndtering, åbne kladder og ordrehistorik\",\"pricing\":\"Kundespecifikke rabatter og faste produktpriser\",\"other\":\"Særlige aftaler og interne kundenoter\",\"security\":\"Tilladelser og adgang til kunderegler\",\"subusers\":\"Chauffører og kundeadgange\",\"vehicles\":\"Køretøjer, abonnementer og masseregistrering\",\"xlvask\":\"XLVask-kontooplysninger og importerede køretøjer\"},\"orders\":{\"summary_title\":\"Overblik over ordrefakturering\",\"summary_subtitle\":\"Gennemgå hvordan kunden faktureres, før den fulde ordreliste åbnes.\",\"invoicing_mode\":\"Faktureringsmetode\",\"open_draft\":\"Åbn fakturakladde\"},\"pricing\":{\"summary_title\":\"Prisoverblik\",\"summary_subtitle\":\"Gennemgå kundens generelle rabatpolitik og produktspecifikke undtagelser.\",\"table_title\":\"Produktspecifikke priser\",\"table_subtitle\":\"Juster faste priser og rabatregler for hvert tilgængeligt produkt.\",\"global_discount\":\"Global rabat\",\"product_overrides\":\"Produktundtagelser\",\"discount_percent\":\"Rabatprocent\",\"fixed_price_label\":\"Fast pris\",\"fixed_price_validation\":\"Indtast et gyldigt ikke-negativt heltal.\",\"category_discount_disabled\":\"Kategorirabat deaktiveret\",\"fixed_price_tooltip\":\"Rediger den faste pris for dette produkt.\",\"item_discount_tooltip\":\"Rediger den kundespecifikke rabat for dette produkt.\",\"category_discount_tooltip\":\"Rediger kategorirabatten, der bruges for dette produkt.\"},\"other\":{\"summary_title\":\"Særlige aftaler\",\"summary_subtitle\":\"Gem kontospecifikke noter og faktureringsdetaljer, der påvirker den daglige drift.\"},\"subusers\":{\"active\":\"Aktive\",\"disabled\":\"Deaktiverede\",\"invite\":\"Invitér chauffør\",\"pending_setup\":\"Afventer opsætning\",\"summary_load_failed\":\"Chaufføroversigten kunne ikke indlæses.\",\"summary_subtitle\":\"Gennemgå chaufføradgang, før grants, tilladelser eller invitationer ændres.\",\"summary_title\":\"Overblik over chaufføradgang\",\"table_subtitle\":\"Administrer de chauffører, der er knyttet til denne kundekonto.\",\"table_title\":\"Chauffører\",\"total\":\"Chauffører i alt\"},\"security\":{\"active_rules\":\"Aktive regler\",\"current_role\":\"Nuværende rolle\",\"customer_rules_subtitle\":\"Slå kundespecifikke regler til eller fra for bookinger, fakturering og produkttilgængelighed.\",\"direct_role_tab\":\"Tildel rolle\",\"editable\":\"Kan redigeres\",\"limited_employee_departments_label\":\"Afdelinger\",\"limited_employee_load_failed\":\"Begrænsede backoffice-valg kunne ikke indlæses.\",\"limited_employee_migrate_failed\":\"Medarbejderen kunne ikke migreres.\",\"limited_employee_migrated\":\"Medarbejderen er migreret til begrænset backoffice.\",\"limited_employee_role_label\":\"Rolle\",\"limited_employee_subtitle\":\"Vælg en begrænset backoffice-rolle og de afdelinger, medarbejderen skal have adgang til.\",\"limited_employee_tab\":\"Begrænset backoffice-medarbejder\",\"limited_employee_unavailable\":\"Kun medarbejderkonti uden kundenummer kan migreres til begrænset backoffice.\",\"limited_employee_validation\":\"Vælg en rolle og mindst én afdeling.\",\"managed_employee\":\"Begrænset backoffice\",\"manage_rules\":\"Administrer regler\",\"migrate_employee\":\"Migrer medarbejder\",\"no_role\":\"Denne bruger har ingen tildelt rolle.\",\"permission_editor_notice\":\"Ændringer i tilladelser opdaterer den tildelte rolle og påvirker alle brugere med den rolle.\",\"permission_toggle_unavailable\":\"Du har ikke tilladelse til at ændre denne rolletilladelse.\",\"permissions_unavailable\":\"Du har ikke tilladelse til at indlæse rolletilladelser.\",\"readonly\":\"Skrivebeskyttet\",\"role_assignment_subtitle\":\"Skift hvilken rolle der leverer brugerens effektive tilladelser.\",\"role_assignment_title\":\"Rolletildeling\",\"role_edit_unavailable\":\"Du har ikke tilladelse til at redigere brugerens rolle.\",\"role_fetch_unavailable\":\"Du har ikke tilladelse til at indlæse rollevalg.\",\"role_locked\":\"Låst\",\"role_locked_limited_backoffice\":\"Brugere administreret af begrænset backoffice kan ikke få ændret rolle her.\",\"role_permissions_subtitle\":\"Gennemgå og opdater tilladelser for den tildelte rolle.\",\"role_permissions_title\":\"Tilladelser for tildelt rolle\",\"role_save_failed\":\"Brugerens rolle kunne ikke opdateres.\",\"role_saved\":\"Rolle opdateret.\",\"role_select_label\":\"Tildelt rolle\",\"review_permissions\":\"Gennemgå tilladelser\",\"save_role\":\"Gem rolle\",\"standard_user\":\"Standardbruger\",\"switch_role\":\"Skift rolle\"},\"vehicles\":{\"summary_title\":\"Køretøjsområde\",\"summary_subtitle\":\"Gennemgå kundens køretøjer, abonnementer og importflows.\",\"subscription_invoicing_subtitle\":\"Administrer aktive vaskeabonnementer og opret fakturakladder for andre perioder.\",\"table_title\":\"Registrerede køretøjer\",\"table_subtitle\":\"Administrer nummerplader og vaskeabonnementer for denne kunde.\",\"total\":\"Køretøjer i alt\",\"wash_subscription\":\"Vaskeabonnementer\",\"self_service\":\"Self-service-køretøjer\",\"add_vehicle\":\"Tilføj køretøj\",\"no_customer\":\"Denne bruger har ikke et kundenummer, så køretøjer kan ikke administreres her.\",\"summary_load_failed\":\"Køretøjsoverblikket kunne ikke indlæses.\"},\"overview\":{\"customer_actions_title\":\"Kundehandlinger\",\"customer_actions_subtitle\":\"Kør kundespecifikke handlinger uden at forlade overblikket.\",\"customer_shortcuts_title\":\"Kundegenveje\",\"customer_shortcuts_subtitle\":\"Gå til de mest brugte kundearbejdsområder fra overblikket.\",\"customer_flags_title\":\"Kundeflag\",\"customer_flags_subtitle\":\"Opret faktureringsperiodeflag for denne kunde, når der er behov for opfølgning.\",\"fixed_pricing_title\":\"Fast pris\",\"fixed_pricing_subtitle\":\"Administrer kundens faste prisaftale.\",\"default_department_title\":\"Standardafdeling\",\"default_department_subtitle\":\"Vælg hvilken afdeling der skal være forvalgt for denne kunde.\",\"open_orders\":\"Åbn ordrer\",\"open_pricing\":\"Åbn priser\",\"open_security\":\"Åbn sikkerhed\",\"open_subscriptions\":\"Åbn abonnementer\",\"special_arrangement_title\":\"Særlig aftale\",\"special_arrangement_subtitle\":\"Gem driftsnoter om kundens særlige aftale.\",\"view_account\":\"Vis konto\",\"view_economic\":\"Vis e-conomic\",\"wash_subscription_note_title\":\"Note til vaskeabonnement\",\"wash_subscription_note_subtitle\":\"Gem den interne note, der bruges ved fakturering af vaskeabonnementer.\"},\"xlvask\":{\"summary_title\":\"XLVask-kundeprofil\",\"summary_subtitle\":\"Gennemgå den tilknyttede XLVask-kunde før import af køretøjer.\",\"vehicles_title\":\"XLVask-køretøjer\",\"vehicles_subtitle\":\"Køretøjer i XLVask for denne tilknyttede kunde.\",\"not_found\":\"Der er endnu ikke tilknyttet en XLVask-kunde til denne konto.\",\"customer_id\":\"XLVask ID\"}},\"user\":{\"fixed_pricing\":{\"not_implemented_desc\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.kan'} @:{'words.generated.nu'} @:{'words.generated.oprette'} @:{'words.generated.fast'} @:{'words.generated.pris'} @:{'words.generated.aftaler'}, @:{'words.generated.men'} disse @:{'words.generated.vil'} @:{'words.generated.endnu'} @:{'words.generated.ikke'} @:{'words.generated.blive'} anvendt @:{'words.generated.i'} @:{'words.generated.systemet'}.\",\"not_implemented_title\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.funktion'} @:{'words.generated.er'} @:{'words.generated.endnu'} @:{'words.generated.ikke'} @:{'words.generated.implementeret'} @:{'words.generated.i'} @:{'words.generated.fakturering'}\"},\"special_arrangement\":{\"label\":\"@.capitalize:{'words.generated.special'} @:{'words.generated.aftale'}, internt. ( Nota )\",\"save\":\"@:{'words.generated.gem'} @:{'words.generated.special'} @:{'words.generated.aftale'}\",\"title\":\"@.capitalize:{'words.generated.special'} @:{'words.generated.aftale'}\"},\"vehicles\":{\"placeholder_active_subscriptions\":\"@:{'words.generated.pladsholder'} @:{'words.generated.for'} @:{'words.generated.køretøjer'} @:{'words.generated.med'} @:{'words.generated.aktive'} @:{'words.generated.vaskeabonnementer'}\",\"placeholder_self_service\":\"@:{'words.generated.pladsholder'} @:{'words.generated.for'} @:{'words.generated.køretøjer'} @:{'words.generated.med'} @:{'words.generated.selvbetjening'}\",\"placeholder_vehicle_count\":\"@:{'words.generated.pladsholder'} @:{'words.generated.for'} @:{'words.generated.antal'} @:{'words.generated.køretøjer'}\"},\"wash_subscription\":{\"save\":\"@:{'words.generated.gem'} @:{'words.generated.vaskeabonnement'}\"}},\"vehicle\":{\"xlvask_usage_log\":{\"create_order_all\":\"@:{'templates.generated.compat.tables.xlvask.create_order_all'}\"}},\"xlvask\":{\"fetch_customers\":\"@:{'templates.generated.compat.xlvask.admin.fetch_customers'}\",\"fetch_objects\":\"@:{'words.generated.hent'} @.capitalize:{'words.generated.objekter'}\",\"objects\":\"@:{'templates.generated.compat.xlvask.admin.objects'}\"}},\"system_status\":{\"actions\":{\"open_config\":\"@:{'words.generated.abn'} @:{'words.generated.konfiguration'}\",\"open_replication\":\"@:{'words.generated.abn'} @:{'words.generated.replikering'}\"},\"cards\":{\"cpu\":\"@:{'words.generated.cpu'}\",\"database\":\"@.capitalize:{'words.replication.services.database'}\",\"memory\":\"@:{'words.generated.ram'}\"},\"devices\":{\"desktop\":\"Computer\",\"mobile\":\"Mobil\",\"tablet\":\"@.capitalize:{'words.generated.tablet'}\"},\"gateways\":{\"actions\":{\"open_fleet\":\"@:{'words.generated.abn'} @:{'words.generated.fleet'}\",\"open_gateway\":\"@:{'words.generated.abn'} @:{'words.generated.gateway'}\"},\"description\":\"@.capitalize:{'words.generated.skrivebeskyttet'} @:{'words.generated.fleet'}-@:{'words.generated.status'} @:{'words.generated.for'} @:{'words.generated.installerede'} @:{'words.generated.edge'} @:{'words.generated.gateways'}.\",\"discovery_status\":{\"ready\":\"@.capitalize:{'words.generated.klar'}\",\"stale\":\"@.capitalize:{'words.generated.forældet'}\"},\"empty\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.ingen'} registrerede @:{'words.generated.edge'} @:{'words.generated.gateways'}.\",\"error\":\"@.capitalize:{'words.generated.gatewaystatus'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.indlæses'} @:{'words.generated.lige'} @:{'words.generated.nu'}.\",\"labels\":{\"active_operation\":\"@:{'words.generated.aktiv'} @:{'words.generated.opgave'}\",\"last_heartbeat\":\"@.capitalize:{'words.generated.sidste'} heartbeat\"},\"loading\":\"@.capitalize:{'words.generated.indlæser'} @:{'words.generated.gatewaystatus'}...\",\"status\":{\"degraded\":\"@.capitalize:{'words.generated.kræver'} opmærksomhed\",\"online\":\"@.capitalize:{'words.generated.online'}\"},\"summary\":{\"total\":\"@.capitalize:{'words.generated.gateways'}\"}},\"labels\":{\"activity_window\":\"@:{'words.generated.aktiv'} @:{'words.generated.inden'} @:{'words.generated.for'} @:{'words.generated.de'} @:{'words.generated.seneste'} {minutes} @:{'words.generated.minutter'}\",\"buckets_available\":\"{available} @:{'words.generated.af'} {total} @:{'words.generated.buckets'} @:{'words.generated.tilgængelige'}\",\"checked_at\":\"@.capitalize:{'words.generated.kontrolleret'}\",\"configured\":\"@.capitalize:{'words.generated.konfigureret'}\",\"enabled\":\"@:{'templates.generated.compat.common.enabled'}\",\"latency\":\"Responstid\",\"no_reason\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.yderligere'} @:{'words.generated.detaljer'}\",\"replication_percent\":\"{percent}% @:{'words.generated.replikering'} ({status})\",\"runtime_source\":\"@.capitalize:{'words.generated.runtime'}-@:{'words.generated.kilde'}\",\"server_version\":\"Serverversion\",\"warnings\":\"@:{'templates.generated.compat.global.warnings'}\"},\"modules\":{\"backups\":\"Backups\",\"economic\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"entra\":\"@:{'words.generated.microsoft'} Entra\",\"fxratesapi\":\"@:{'words.generated.fxratesapi'}\",\"licenseplaterecognizer\":\"License Plate Recognizer\",\"limble\":\"@:{'words.generated.limble'}\",\"motorapi\":\"@:{'words.generated.motorapi'}\",\"ocrspace\":\"OCR.space\",\"openai\":\"@:{'words.generated.openai'}\",\"selfserve\":\"@:{'words.generated.self'}-@:{'words.generated.serve'}\",\"shelly\":\"@:{'words.generated.shelly'}\",\"stripe\":\"@:{'words.generated.stripe'}\",\"virkdata\":\"@:{'words.generated.virkdata_virkdata'}\",\"workfeed\":\"@:{'words.generated.workfeed'}\"},\"reasons\":{\"backup_connectivity_confirmed\":\"@.capitalize:{'words.generated.forbindelse'} @:{'words.generated.til'} @:{'words.generated.backup'}-lager @:{'words.generated.bekræftet'}.\",\"backup_probe_failed\":\"@.capitalize:{'words.generated.backup'}-@:{'words.generated.proben'} @:{'words.generated.mislykkedes'}: {error}.\",\"economic_credentials_missing\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.legitimationsoplysninger'} @:{'words.generated.mangler'} @:{'words.generated.i'} @:{'words.generated.runtime'}-miljøkonfigurationen.\",\"email_delivery_not_implemented\":\"@:{'words.generated.mailersend_mailersend'} @:{'words.generated.skal'} @:{'words.generated.være'} @:{'words.generated.aktiveret'}, @:{'words.generated.fordi'} @:{'words.generated.standard'} @:{'words.generated.smtp'}-levering @:{'words.generated.ikke'} @:{'words.generated.er'} @:{'words.generated.implementeret'}.\",\"http_curl_init_failed\":\"{label}-@:{'words.generated.proben'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} initialisere cURL.\",\"http_endpoint_missing\":\"{label}-@:{'words.generated.proben'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.køre'}, @:{'words.generated.fordi'} endpointet @:{'words.generated.mangler'}.\",\"http_no_response\":\"{label} @:{'words.generated.returnerede'} @:{'words.generated.ikke'} @:{'words.generated.et_2'} @:{'words.generated.http'}-@:{'words.generated.svar'}.\",\"http_ok\":\"@.capitalize:{'words.generated.forbindelse'} @:{'words.generated.til'} {label} @:{'words.generated.bekræftet'}.\",\"http_probe_failed\":\"{label}-@:{'words.generated.proben'} @:{'words.generated.mislykkedes'}: {error}.\",\"http_rate_limited\":\"{label}-@:{'words.generated.proben'} @:{'words.generated.blev'} rate limited (@:{'words.generated.http'} {httpStatus}).\",\"http_status\":\"{label} @:{'words.generated.returnerede'} @:{'words.generated.http'} {httpStatus}.\",\"http_unexpected_response\":\"{label} @:{'words.generated.returnerede'} @:{'words.generated.et_2'} uventet @:{'words.generated.http'}-@:{'words.generated.svar'}.\",\"invalid_probe_payload\":\"@.capitalize:{'words.generated.proben'} @:{'words.generated.returnerede'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ugyldig'} @:{'words.generated.payload'}.\",\"missing_config\":\"@:{'words.generated.manglende'} @:{'words.generated.pakrævet'} @:{'words.generated.konfiguration'}: {variables}.\",\"module_disabled\":\"Modulet @:{'words.generated.er'} @:{'words.generated.deaktiveret'}.\",\"recaptcha_credentials_rejected\":\"{label}-@:{'words.generated.legitimationsoplysninger'} @:{'words.generated.blev'} @:{'words.generated.afvist'} @:{'words.generated.af'} @:{'words.generated.google'}.\",\"recaptcha_unreadable_payload\":\"{label} @:{'words.generated.returnerede'} @:{'words.replication.host_definite_suffix'} ulæselig @:{'words.generated.payload'}.\",\"recaptcha_validation_errors\":\"{label} @:{'words.generated.returnerede'} uventede @:{'words.generated.valideringsfejl'}: {errors}.\",\"safe_probe_unavailable\":\"@.capitalize:{'words.generated.konfigurationen'} @:{'words.generated.er'} @:{'words.generated.til'} stede, @:{'words.generated.men'} @:{'words.generated.der'} @:{'words.generated.findes'} @:{'words.generated.ingen'} @:{'words.generated.sikker'} @:{'words.generated.skrivebeskyttet'} @:{'words.generated.probe'}.\",\"selfserve_configuration_confirmed\":\"@:{'words.generated.self'}-@:{'words.generated.serve'}-@:{'words.generated.skema'} @:{'words.generated.og'} minutproduktkonfiguration @:{'words.generated.er'} @:{'words.generated.bekræftet'}.\",\"selfserve_minute_product_invalid\":\"@.capitalize:{'words.generated.konfigurationen'} @:{'words.generated.af'} minutproduktet @:{'words.generated.er'} @:{'words.generated.ugyldig'}.\",\"selfserve_minute_product_missing\":\"@:{'words.generated.self'}-@:{'words.generated.serve'}-minutprodukt #{productId} @:{'words.generated.findes'} @:{'words.generated.ikke'}.\",\"selfserve_minutes_invalid\":\"@.capitalize:{'words.generated.konfigurationen'} @:{'words.generated.af'} maskinvaskminutter @:{'words.generated.er'} @:{'words.generated.ugyldig'}.\",\"selfserve_probe_failed\":\"@:{'words.generated.self'}-@:{'words.generated.serve'}-@:{'words.generated.proben'} @:{'words.generated.mislykkedes'}: {error}.\",\"shelly_no_device_id\":\"@:{'words.generated.shelly'} Cloud-@:{'words.generated.legitimationsoplysninger'} @:{'words.generated.er'} @:{'words.generated.konfigureret'}, @:{'words.generated.men'} @:{'words.generated.der'} @:{'words.generated.findes'} @:{'words.generated.ikke'} @:{'words.generated.et_2'} kendt device-@:{'words.generated.id'} @:{'words.generated.til'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.sikker'} @:{'words.generated.skrivebeskyttet'} @:{'words.generated.probe'}.\"},\"sections\":{\"gateways\":\"@.capitalize:{'words.generated.edge'} @:{'words.generated.gateways'}\",\"infrastructure\":\"Infrastruktur\",\"modules\":\"@.capitalize:{'words.generated.moduler'}\",\"sessions\":\"@.capitalize:{'words.generated.seneste'} @:{'words.generated.sessioner'}\"},\"session_display\":{\"session_with_id\":\"@.capitalize:{'words.generated.session'} #{id}\"},\"session_types\":{\"subuser\":\"@.capitalize:{'words.generated.underbruger'}\"},\"states\":{\"error\":\"Statusfejl\",\"error_generic\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.hente'} @:{'words.generated.systemstatus'}.\",\"loading\":\"@.capitalize:{'words.generated.indlæser'} @:{'words.generated.systemstatus'}...\",\"no_sessions\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.nyere'} @:{'words.generated.sessioner'} @:{'words.generated.fundet'}.\",\"stale\":\"@.capitalize:{'words.generated.dette'} snapshot @:{'words.generated.er'} @:{'words.generated.ældre'} @:{'words.generated.end'} @:{'words.generated.forventet'}. @.capitalize:{'words.generated.automatisk'} opdatering @:{'words.generated.kan'} @:{'words.generated.være'} forsinket.\"},\"status\":{\"degraded\":\"Forringet\",\"disabled\":\"@:{'templates.generated.compat.common.disabled'}\"},\"summary\":{\"active_sessions\":\"@.capitalize:{'words.generated.aktive'} @:{'words.generated.sessioner'}\",\"active_users\":\"@.capitalize:{'words.generated.aktive'} @:{'words.generated.brugere'}\",\"last_updated\":\"@:{'words.generated.sidst'} @:{'words.generated.opdateret'}\",\"overall\":\"@.capitalize:{'words.generated.samlet'} @:{'words.generated.status'}\"},\"table\":{\"active\":\"@:{'templates.generated.compat.common.active'}\",\"device\":\"@.capitalize:{'words.generated.enhed'}\",\"first_seen\":\"@.capitalize:{'words.generated.først'} @:{'words.generated.set'}\",\"last_seen\":\"@:{'templates.generated.compat.tables.common.last_seen'}\",\"route\":\"@.capitalize:{'words.generated.seneste'} rute\"},\"title\":\"@.capitalize:{'words.generated.systemstatus'}\",\"warnings\":{\"cpu_loadavg_fallback\":\"@:{'words.generated.cpu'}-@:{'words.generated.forbruget'} @:{'words.generated.bruger'} load average, @:{'words.generated.fordi'} sampling @:{'words.generated.fra'} /@:{'words.generated.proc'}/stat @:{'words.generated.ikke'} @:{'words.generated.var'} @:{'words.generated.tilgængelig'}.\",\"cpu_unavailable\":\"@:{'words.generated.cpu'}-@:{'words.generated.malinger'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.tilgængelige'} @:{'words.generated.i'} @:{'words.generated.dette'} @:{'words.generated.runtime'}-@:{'words.generated.miljø'}.\",\"memory_proc_fallback\":\"@:{'words.generated.ram'}-@:{'words.generated.forbruget'} @:{'words.generated.bruger'} /@:{'words.generated.proc'}/meminfo, @:{'words.generated.fordi'} cgroup-grænser @:{'words.generated.ikke'} @:{'words.generated.var'} @:{'words.generated.tilgængelige'}.\",\"memory_unavailable\":\"@:{'words.generated.ram'}-@:{'words.generated.malinger'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.tilgængelige'} @:{'words.generated.i'} @:{'words.generated.dette'} @:{'words.generated.runtime'}-@:{'words.generated.miljø'}.\",\"minio_missing_buckets\":\"@:{'words.replication.services.minio'} @:{'words.generated.kan'} @:{'words.generated.nas'}, @:{'words.generated.men'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.eller'} @:{'words.generated.flere'} @:{'words.generated.forventede'} @:{'words.generated.buckets'} @:{'words.generated.mangler'} @:{'words.generated.eller'} @:{'words.generated.er'} @:{'words.generated.utilgængelige'}.\",\"modules_without_probes\":\"@.capitalize:{'words.generated.nogle'} @:{'words.generated.moduler'} @:{'words.generated.viser'} @:{'words.generated.kun'} konfigurationsstatus, @:{'words.generated.fordi'} @:{'words.generated.der'} @:{'words.generated.ikke'} @:{'words.generated.findes'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.sikker'} @:{'words.generated.skrivebeskyttet'} @:{'words.generated.probe'}: {modules}.\",\"redis_cache_bypass\":\"@:{'words.replication.services.redis'} @:{'words.generated.er'} @:{'words.generated.utilgængelig'}; @:{'words.generated.cache'} @:{'words.generated.til'} modulprober omgås.\",\"redis_cache_lookup_failed\":\"@:{'words.replication.services.redis'}-cacheopslag @:{'words.generated.for'} @:{'words.generated.modulproben'} {module} @:{'words.generated.mislykkedes'}: {error}\",\"redis_cache_write_failed\":\"@:{'words.replication.services.redis'}-cacheskrivning @:{'words.generated.for'} @:{'words.generated.modulproben'} {module} @:{'words.generated.mislykkedes'}: {error}\"}},\"tables\":{\"actions\":\"@:{'templates.generated.compat.common.actions'}\",\"bookings\":{\"booking_id_required\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.skal'} @:{'words.generated.indtaste'} @:{'words.generated.booking'}-@:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.fuldføre'} @:{'words.generated.vask'} @:{'words.generated.uden'} @:{'words.generated.vaskecertifikat'}\",\"complete_wash_without_certificate\":\"@:{'words.generated.fuldfør'} @:{'words.generated.vask'} @:{'words.generated.uden'} @:{'words.generated.vaskecertifikat'}\",\"complete_wash_without_certificate_prompt\":\"@:{'words.generated.indtast'} @:{'words.generated.booking'}-@:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.fuldføre'} @:{'words.generated.vask'} @:{'words.generated.uden'} @:{'words.generated.vaskecertifikat'}\",\"create_order_from_booking\":\"@:{'words.generated.opret'} @:{'words.generated.ordre'} @:{'words.generated.fra'} @:{'words.generated.booking'}\",\"create_order_from_booking_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.oprette'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ordre'} @:{'words.generated.fra'} @:{'words.generated.bookingen'}?\",\"customer_name\":\"@:{'templates.generated.compat.common.customer_name'}\",\"error_add_service\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.tilføje'} @:{'words.generated.service'} @:{'words.generated.til'} @:{'words.generated.booking'}\",\"loading\":\"@.capitalize:{'words.generated.indlæser'} @:{'words.generated.booking'}...\",\"no_registered\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.registreret'}\",\"no_services_added\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.ydelser'} @:{'words.generated.tilføjet'} @:{'words.generated.endnu'}\",\"pickup_required\":\"@:{'words.generated.afhentning'} @:{'words.generated.pakrævet'}?\",\"reg_tractor\":\"@.capitalize:{'words.generated.reg'}. trader\",\"reg_trailer\":\"@.capitalize:{'words.generated.reg'}. @:{'words.generated.trailer'}\",\"vehicle_1\":\"@.capitalize:{'words.generated.køretøj'} 1\",\"vehicle_2\":\"@.capitalize:{'words.generated.køretøj'} 2\",\"wash\":\"@:{'templates.generated.compat.bookings_table.wash'}\",\"wash_certificate_type\":\"@.capitalize:{'words.generated.vaskecertifikat'} / @:{'words.generated.type'}\",\"wash_completed\":\"@.capitalize:{'words.generated.vasken'} @:{'words.generated.er'} @:{'words.generated.fuldført'}\",\"wash_desc\":\"Benyt @:{'words.generated.vores'} @:{'words.generated.nationale'} @:{'words.generated.netværk'} @:{'words.generated.af'} vaskehaller @:{'words.generated.til'} @:{'words.generated.konkurrencedygtige'} priser\",\"wash_performed\":\"@.capitalize:{'words.generated.vask'} udført\",\"wash_services\":\"@.capitalize:{'words.generated.vaskeydelser'}\",\"wash_type\":\"@:{'templates.generated.compat.pos.wash_type'}\",\"wash_without_certificate\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.uden'} certifikat\",\"yes\":\"@:{'templates.generated.compat.common.yes'}\"},\"categories\":{\"products_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.produkter'}\"},\"common\":{\"category\":\"@.capitalize:{'words.generated.kategori'}\",\"count\":\"@:{'templates.generated.compat.common.quantity'}\",\"default_price\":\"Standardpris\",\"department_price\":\"Afdelingspris\",\"discount_category\":\"@.capitalize:{'words.generated.rabat'} (@:{'words.generated.kategori'})\",\"discount_item\":\"@.capitalize:{'words.generated.rabat'} (vare)\",\"end_time\":\"Sluttid\",\"field\":\"@.capitalize:{'words.generated.felt'}\",\"id\":\"@.upper:{'words.generated.id'}\",\"label\":\"Etiket\",\"last_seen\":\"@:{'words.generated.sidst'} @:{'words.generated.set'}\",\"location\":\"@.capitalize:{'words.generated.lokation'}\",\"name\":\"@:{'templates.generated.compat.common.name'}\",\"phone\":\"@:{'templates.generated.compat.common.phone'}\",\"price\":\"@:{'templates.generated.compat.common.price'}\",\"price_changed_from\":\"@:{'words.generated.prisen'} @:{'words.generated.er'} ændret fra {from} @:{'words.generated.dkk'} @:{'words.generated.til'} {to} @:{'words.generated.dkk'} / @:{'words.generated.enhed'} ({total} @:{'words.generated.dkk'} @:{'words.generated.total'})\",\"price_dkk\":\"@.capitalize:{'words.generated.pris'} (@:{'words.generated.dkk'})\",\"price_per_unit\":\"{price} @:{'words.generated.dkk'} / @:{'words.generated.enhed'} ({total} @:{'words.generated.dkk'} @:{'words.generated.i'} alt)\",\"product_id\":\"@.capitalize:{'words.generated.produkt'}-@.upper:{'words.generated.id'}\",\"product_name\":\"@:{'templates.generated.compat.products.form.product_name'}\",\"registration_number\":\"@.capitalize:{'words.generated.registreringsnummer'}\",\"serial_number\":\"Serienummer\",\"start_time\":\"Starttid\",\"value\":\"@.capitalize:{'words.generated.værdi'}\",\"wash_item\":\"Vaskevare\",\"website\":\"Hjemmeside\"},\"economic\":{\"payment_terms\":\"@.capitalize:{'words.generated.betalingsbetingelser'}\"},\"in_total\":\"@:{'words.generated.i'} @:{'words.generated.alt'}\",\"invoices\":{\"invoice_number\":\"@:{'templates.generated.compat.invoices.invoice_number'}\",\"overdue\":\"@:{'templates.generated.compat.invoices.overdue'}\"},\"notifications\":{\"read\":\"@.capitalize:{'words.generated.læst'}\"},\"orders\":{\"historical_washes\":\"@.capitalize:{'words.generated.historiske'} @:{'words.generated.vaske'}\",\"items\":\"@.capitalize:{'words.generated.varer'}\"},\"pos\":{\"order_items\":\"@.capitalize:{'words.generated.ordrelinjer'}\",\"possible_duplicates\":\"@.capitalize:{'words.generated.mulige'} @:{'words.generated.dubletter'}\",\"scanned_plates\":\"@.capitalize:{'words.generated.scannede'} @:{'words.generated.nummerplader'}\",\"sync_orders\":\"@:{'words.generated.synkroniser'} @:{'words.generated.ordrer'}\"},\"roles\":{\"permissions\":\"@:{'templates.generated.compat.user_admin.permissions'}\",\"users_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.brugere'}\"},\"self_serve\":{\"condition_rules\":\"@.capitalize:{'words.generated.betingelsesregler'}\",\"tasks\":\"@.capitalize:{'words.generated.opgaver'}\",\"vehicle_conditions\":\"@.capitalize:{'words.generated.køretøjsbetingelser'}\"},\"showing\":\"@:{'templates.generated.compat.common.view'}\",\"stripe\":{\"terminals\":\"@.capitalize:{'words.generated.terminaler'}\"},\"time_bookings\":{\"hours\":\"@.capitalize:{'words.generated.timer'}\"},\"users\":{\"last_login\":\"@.capitalize:{'words.generated.sidste'} @:{'words.generated.login'}\"},\"xlvask\":{\"create_order\":\"@:{'words.generated.opret'} @:{'words.generated.ordre'}\",\"create_order_all\":\"@:{'words.generated.opret'} @:{'words.generated.ordre'} @:{'words.generated.for'} @:{'words.generated.alle'} @:{'words.generated.relevante'}\",\"order_created\":\"@.capitalize:{'words.generated.ordre'} @:{'words.generated.oprettet'}\",\"usage_log_title\":\"@:{'words.generated.xlvask'} @.capitalize:{'words.generated.forbrugslog'}\"}},\"time_booking_flow\":{\"all_info_looks_good\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.oplysninger'} @:{'words.generated.ser'} gode @:{'words.generated.ud'}! @.capitalize:{'words.generated.du'} @:{'words.generated.kan'} @:{'words.generated.nu'} @:{'words.generated.bekræfte'} @:{'words.generated.din'} @:{'words.generated.booking'}.\",\"date_and_time\":\"@.capitalize:{'words.generated.dato'} @:{'words.generated.og'} @:{'words.generated.tidspunkt'}\",\"no_notifications_enabled\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.aktiveret'} @:{'words.generated.notifikationer'} @:{'words.generated.for'} @:{'words.generated.din'} @:{'words.generated.booking'}. @.capitalize:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.ikke'} @:{'words.generated.modtage'} @:{'words.generated.nogen'} @:{'words.generated.bekræftelse'}, påmindelse @:{'words.generated.eller'} opdateringer @:{'words.generated.om'} @:{'words.generated.din'} @:{'words.generated.booking'}.\",\"no_services_selected\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.ydelser'} @:{'words.generated.valgt'}\",\"not_selected\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.valgt'}\",\"not_specified\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.angivet'}\",\"notifications_incomplete\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.aktiveret'} @:{'words.generated.notifikationer'}, @:{'words.generated.men'} @:{'words.generated.ikke'} @:{'words.generated.udfyldt'} @:{'words.generated.alle'} @:{'words.generated.nødvendige'} @:{'words.generated.oplysninger'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.modtage'} dem.\",\"notifications_will_be_sent_to\":\"@.capitalize:{'words.generated.notifikationer'} @:{'words.generated.vil'} @:{'words.generated.blive'} @:{'words.generated.sendt'} @:{'words.generated.til'}\",\"progress\":\"@:{'words.generated.fremskridt'} {current} / {total}\",\"select_services\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.ydelser'}\",\"selected_services\":\"@.capitalize:{'words.generated.valgte'} @:{'words.generated.ydelser'}\",\"sms\":\"@:{'words.generated.sms'}\",\"step_of\":\"@:{'templates.common.step_of'}\",\"step1_subtitle\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.det'} @:{'words.generated.køretøj'}, @:{'words.generated.du'} @:{'words.generated.ønsker'} @:{'words.generated.at'} @:{'words.generated.booke'} @:{'words.generated.tid'} @:{'words.generated.for'}\",\"step2_subtitle\":\"@.capitalize:{'words.generated.vælg'} @:{'words.replication.article.host_mention'} @:{'words.generated.lokation'}, @:{'words.generated.hvor'} @:{'words.generated.du'} @:{'words.generated.ønsker'} @:{'words.generated.at'} @:{'words.generated.fa'} @:{'words.generated.udført'} servicen\",\"step2_title\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.lokation'}\",\"step3_subtitle\":\"@.capitalize:{'words.generated.vælg'} @:{'words.replication.article.host_mention'} @:{'words.generated.service'}, @:{'words.generated.du'} @:{'words.generated.ønsker'} @:{'words.generated.at'} @:{'words.generated.fa'} @:{'words.generated.udført'}\",\"step3_title\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.service'}\",\"step4_subtitle\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.det'} @:{'words.generated.tidspunkt'}, @:{'words.generated.der'} @:{'words.generated.passer'} @:{'words.generated.dig'} bedst\",\"step4_title\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.tidspunkt'}\",\"step5_subtitle\":\"@:{'words.generated.gennemga'} @:{'words.generated.og'} @:{'words.generated.bekræft'} @:{'words.generated.din'} @:{'words.generated.booking'}\",\"step5_title\":\"@:{'templates.generated.compat.bookings.confirm_booking'}\",\"update_notification_settings\":\"@:{'words.generated.opdater'} @:{'words.generated.dine'} @:{'words.generated.notifikationsindstillinger'} @:{'words.generated.her'}.\",\"warning_email_not_set\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.aktiveret'} @:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.notifikationer'}, @:{'words.generated.men'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.angivet'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kontakt'} @:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.eller'} @:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.til'} @:{'words.generated.vaskecertifikat'}.\",\"warning_no_datetime\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.valgt'} @:{'words.generated.dato'} @:{'words.generated.og'} @:{'words.generated.tidspunkt'}.\",\"warning_no_location\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.valgt'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.lokation'}.\",\"warning_no_registration\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.angivet'} noget @:{'words.generated.registreringsnummer'}.\",\"warning_no_services\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.valgt'} @:{'words.generated.nogle'} @:{'words.generated.ydelser'}.\",\"warning_sms_not_set\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.aktiveret'} @:{'words.generated.sms'} @:{'words.generated.notifikationer'}, @:{'words.generated.men'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.angivet'} @:{'words.generated.et_2'} @:{'words.generated.gyldigt'} @:{'words.generated.telefonnummer'}.\"},\"time_bookings\":{\"add_reg_number\":\"@:{'words.generated.tilføj'} @:{'words.generated.registreringsnummer'}\",\"exterior_wash_for\":\"@.capitalize:{'words.generated.udvendig'} @:{'words.generated.vask'} @:{'words.generated.til'}\",\"insert_reg_numbers\":\"@:{'words.generated.indsæt'} @:{'words.generated.relevante'} @:{'words.generated.registreringsnumre'}\",\"interior_wash_for\":\"@.capitalize:{'words.generated.indvendig'} @:{'words.generated.vask'} @:{'words.generated.til'}\",\"next_week\":\"@:{'templates.generated.compat.time.next_week'}\",\"no_wash_services_available\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.vaskeydelser'} @:{'words.generated.tilgængelige'} @:{'words.generated.for'} @:{'words.generated.dette'} @:{'words.generated.køretøj'}.\",\"previous_week\":\"@.capitalize:{'words.generated.forrige'} @:{'words.generated.uge'}\",\"select_vehicle_type_first\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.venligst'} @:{'words.replication.host_definite_suffix'} køretøjstype først\",\"select_vehicle_type\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.køretøjstype'}\",\"select_wash_hall\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.vaskehal'}\",\"tank_cleaning\":\"@:{'templates.generated.compat.global.tank_cleaning'}\",\"truck_wash\":\"@.capitalize:{'words.generated.lastbilvask'}\",\"wash_services_for\":\"@.capitalize:{'words.generated.vaskeydelser'} @:{'words.generated.til'}\",\"what_type_of_wash\":\"@.capitalize:{'words.generated.hvilken'} @:{'words.generated.type'} @:{'words.generated.vask'} @:{'words.generated.har'} @:{'words.generated.du'} @:{'words.generated.brug'} @:{'words.generated.for'}?\",\"where_to_wash\":\"@.capitalize:{'words.generated.hvor'} @:{'words.generated.vil'} @:{'words.generated.du'} @:{'words.generated.vaske'}?\"},\"time\":{\"ago\":\"@:{'words.generated.siden'}\",\"end_date\":\"Slutdato\",\"from_now\":\"@:{'words.generated.fra'} @:{'words.generated.nu'}\",\"just_now\":\"just @:{'words.generated.nu'}\",\"last_month\":\"@:{'templates.generated.compat.global.text.last_month'}\",\"last_year\":\"@.capitalize:{'words.generated.sidste'} @:{'words.generated.ar'}\",\"next_month\":\"@.capitalize:{'words.generated.næste'} @:{'words.generated.maned'}\",\"next_week\":\"@.capitalize:{'words.generated.næste'} @:{'words.generated.uge'}\",\"next_year\":\"@.capitalize:{'words.generated.næste'} @:{'words.generated.ar'}\",\"start_date\":\"Startdato\",\"this_year\":\"@.capitalize:{'words.generated.dette'} @:{'words.generated.ar'}\",\"today\":\"@:{'templates.generated.compat.common.today'}\",\"tomorrow\":\"@:{'templates.generated.compat.common.tomorrow'}\"},\"user_admin\":{\"currency\":\"Valuta\",\"cvr\":\"@:{'words.generated.cvr'}\",\"economic_data\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.data'}\",\"group_id\":\"@.capitalize:{'words.generated.gruppe'} @.upper:{'words.generated.id'}\",\"mass_data_inserter\":\"Masse @:{'words.generated.data'} indsætter\",\"mobile_phone\":\"Mobiltelefon\",\"orders\":{\"draft_not_found\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.var'} @:{'words.generated.ikke'} muligt @:{'words.generated.at'} finde fakturakladden. @.capitalize:{'words.generated.er'} @:{'words.replication.article.host_mention'} @:{'words.generated.blevet'} @:{'words.generated.faktureret'} @:{'words.generated.eller'} @:{'words.generated.slettet'} @:{'words.generated.uden'} @:{'words.generated.for'} @:{'words.generated.systemet'}?\",\"loading_subtitle\":\"@.capitalize:{'words.generated.vent'} @:{'words.generated.venligst'} @:{'words.generated.mens'} @:{'words.generated.vi'} @:{'words.generated.indlæser'} @:{'words.generated.brugerdata'}\",\"loading_title\":\"@.capitalize:{'words.generated.indlæser'} @:{'words.generated.brugerdata'}\",\"transaction_history\":\"@:{'templates.generated.compat.superuser.nav.orders'}\"},\"other\":\"@:{'templates.generated.compat.global.other'}\",\"overview\":{\"active_vehicles\":\"Aktive køretøjer\",\"attributes\":\"Attributter\",\"connected\":\"Forbundet\",\"customer_management\":\"Kundestyring\",\"customer_number_required\":\"Et kundenummer er påkrævet før kundeindstillinger kan administreres.\",\"customer_rules\":\"Kunderegler\",\"effective_access\":\"Effektiv adgang\",\"loaded\":\"Indlæst\",\"load_failed\":\"Brugerdata kunne ikke indlæses\",\"loading_user\":\"Indlæser bruger\",\"management_hub\":\"Administrationshub\",\"missing\":\"Mangler\",\"more_permissions\":\"+{count} flere tilladelser\",\"no_subscription_transactions\":\"Der er ikke registreret vaskeabonnementstransaktioner for kunden.\",\"not_invoiced\":\"Ikke faktureret\",\"open_draft\":\"Åben kladde\",\"open_vehicles\":\"Åbn køretøjer\",\"price_overrides\":\"Prisoverstyringer\",\"pricing\":\"Priser\",\"subscription_invoicing\":\"Abonnementsfakturering\",\"subtitle\":\"Overblik over kundedata, adgang, priser, køretøjer og abonnementsfakturering.\",\"vehicles_load_failed\":\"Køretøjer kunne ikke indlæses.\",\"workspace_shortcuts\":\"Arbejdsgange\"},\"permissions\":\"@.capitalize:{'words.generated.tilladelser'}\",\"user_data\":\"@.capitalize:{'words.generated.brugerdata'}\",\"user_id\":\"@.capitalize:{'words.generated.bruger'} @.upper:{'words.generated.id'}\",\"variables\":\"Variabler\",\"wash_subscriptions\":\"@.capitalize:{'words.generated.vaske'} @:{'words.generated.abonnement'}\"},\"user_bookings\":{\"my_vehicles\":\"@:{'templates.generated.compat.user_menu.my_vehicles'}\",\"select_vehicle_type_for\":\"V?lg @:{'words.generated.k'}?@:{'words.generated.ret'}?jstype @:{'words.generated.for'} {registration}\",\"vehicle_reg_input\":\"@:{'words.generated.køretøjets'} @:{'words.generated.registreringsnummer'}\"},\"user_dashboard\":{\"bookings\":{\"book_subtitle\":\"@.capitalize:{'words.generated.book'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.vask'}\",\"book\":{\"basket\":\"@:{'templates.generated.compat.admin.pos.cart'}\",\"booking_confirmed\":\"@.capitalize:{'words.generated.booking'} @:{'words.generated.bekræftet'}\",\"booking_confirmed_message\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.booking'} @:{'words.generated.er'} @:{'words.generated.nu'} @:{'words.generated.bekræftet'}. @.capitalize:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.modtage'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.bekræftelse'} @:{'words.generated.via'} @:{'words.generated.dine'} @:{'words.generated.valgte'} notifikationsmetoder.\",\"booking_failed\":\"@.capitalize:{'words.generated.booking'} @:{'words.generated.mislykkedes'}\",\"booking_failed_message\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.opstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.ved'} @:{'words.generated.booking'}. @.capitalize:{'words.generated.prøv'} @:{'words.generated.venligst'} @:{'words.generated.igen'}.\",\"customer_not_found\":\"@.capitalize:{'words.generated.kundenummeret'} @:{'words.generated.findes'} @:{'words.generated.ikke'}.\",\"enter_customer_number\":\"@:{'words.generated.angiv'} @:{'words.generated.kundenummer'}\",\"enter_vehicle\":\"@:{'words.generated.angiv'} @:{'words.generated.køretøj'}\",\"error_copied\":\"@.capitalize:{'words.generated.fejlmelding'} @:{'words.generated.kopieret'} @:{'words.generated.til'} udklipsholderen\",\"expected_date_time\":\"@.capitalize:{'words.generated.forventet'} @:{'words.generated.dato'} @:{'words.generated.og'} @:{'words.generated.tidspunkt'}\",\"exterior_wash\":\"@.capitalize:{'words.generated.udvendig'} @:{'words.generated.vask'}\",\"go_to_confirmation\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.bekræftelse'}\",\"guest_info_html\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.gæst'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.vælge'} @:{'words.generated.afdeling'}, @:{'words.generated.registrering'} @:{'words.generated.og'} @:{'words.generated.tidspunkt'}. @.capitalize:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.oprette'} @:{'words.generated.bookingen'} @:{'words.generated.skal'} @:{'words.generated.du'} @:{'words.generated.logge'} @:{'words.generated.ind'}.\",\"guest_mode_login_prompt\":\"@.capitalize:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.fuldføre'} @:{'words.generated.din'} @:{'words.generated.booking'} @:{'words.generated.skal'} @:{'words.generated.du'} @:{'words.generated.logge'} @:{'words.generated.ind'} @:{'words.generated.pa'} @:{'words.generated.din'} @:{'words.generated.konto'}.\",\"guest_mode_warning\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.er'} @:{'words.generated.i'} gæstetilstand.\",\"incl_pickup\":\"@.capitalize:{'words.generated.inkl'}. Pick-Up\",\"interior_wash\":\"@.capitalize:{'words.generated.indvendig'} @:{'words.generated.vask'}\",\"is_this_your_vehicle\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.dette'} @:{'words.generated.et_2'} @:{'words.generated.af'} @:{'words.generated.dine'} @:{'words.generated.køretøjer'}?\",\"login_for_products\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.vælge'} @:{'words.generated.produkter'} @:{'words.generated.til'} @:{'words.generated.din'} @:{'words.generated.booking'}.\",\"missing_fields\":\"Følgende @:{'words.generated.oplysninger'} @:{'words.generated.mangler'} @:{'words.generated.eller'} @:{'words.generated.er'} ugyldige:\",\"missing_valid_customer_number\":\"@.capitalize:{'words.generated.gyldigt'} @:{'words.generated.kundenummer'}\",\"missing_wash_hall\":\"@.capitalize:{'words.generated.vaskehal'}\",\"next_step_addons\":\"@.capitalize:{'words.generated.næste'} @:{'words.generated.trin'}: @.capitalize:{'words.generated.vælg'} @:{'words.generated.tillæg'}\",\"no_items_in_basket\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.varer'} @:{'words.generated.i'} kurven @:{'words.generated.endnu'}\",\"product_selection_unavailable\":\"Produktvalg @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.tilgængeligt'} @:{'words.generated.som'} @:{'words.generated.gæst'}.\",\"select_a_wash_hall\":\"@.capitalize:{'words.generated.vælg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vaskehal'}\",\"select_date_time_customer\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.dato'}/@:{'words.generated.tid'} @:{'words.generated.og'} @:{'words.generated.kundenummer'}\",\"select_department\":\"@:{'templates.generated.compat.nav.select_department'}\",\"select_products\":\"@:{'templates.generated.compat.pos.select_products'}\",\"select_vehicle\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.venligst'} @:{'words.generated.et_2'} @:{'words.generated.køretøj'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.se'} @:{'words.generated.tilgængelige'} @:{'words.generated.tillæg'}\",\"select_wash_hall\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.venligst'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vaskehal'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.fortsætte'}\"},\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.dine'} @:{'words.generated.bookinger'}\",\"title\":\"@:{'templates.generated.compat.user_menu.my_bookings'}\"},\"home\":{\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.generated.dine'} @:{'words.generated.ordrer'}, @:{'words.generated.bookinger'} @:{'words.generated.og'} @:{'words.generated.køretøjer'}\"},\"invoices\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.dine'} @:{'words.generated.fakturaer'}\",\"title\":\"@:{'templates.generated.compat.user_menu.my_invoices'}\"},\"materials\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.dine'} @:{'words.generated.materialer'}\",\"title\":\"@:{'words.generated.mine'} @:{'words.generated.materialer'}\"},\"menu\":{\"statistics\":\"@:{'templates.generated.compat.global.statistics'}\"},\"orders\":{\"single_subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.detaljer'} @:{'words.generated.om'} transaktionen\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.dine'} @:{'words.generated.vaske'}\",\"title\":\"@:{'templates.generated.compat.user_menu.my_washes'}\"},\"profile\":{\"default_department\":{\"description\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.standard'} @:{'words.generated.afdeling'}\",\"title\":\"@.capitalize:{'words.generated.standard'} @:{'words.generated.afdeling'}\"},\"driver\":{\"contact_description\":\"@.capitalize:{'words.generated.dine'} @:{'words.generated.kontaktoplysninger'} @:{'words.generated.som'} @:{'words.generated.chauffør'}\",\"contact_subtitle\":\"@.capitalize:{'words.generated.kontaktoplysninger'}\",\"country_code_desc\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.landekode'} @:{'words.generated.for'} telefonnummeret.\",\"customer_description\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.hvilken'} @:{'words.generated.kunde'} @:{'words.generated.du'} @:{'words.generated.vil'} handle @:{'words.generated.pa'} @:{'words.generated.vegne'} @:{'words.generated.af'}.\",\"customer_subtitle\":\"Kundevalg\",\"customer_switch_help\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.chauffør'} @:{'words.generated.kan'} @:{'words.generated.du'} skifte mellem @:{'words.generated.forskellige'} @:{'words.generated.kunder'}, @:{'words.generated.som'} @:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.adgang'} @:{'words.generated.til'}.\",\"edit_email\":\"@:{'words.generated.rediger'} @:{'words.generated.e'}-@:{'words.generated.mail'}\",\"edit_name\":\"@:{'words.generated.rediger'} @:{'words.generated.navn'}\",\"name_desc\":\"@.capitalize:{'words.generated.dit'} visningsnavn @:{'words.generated.som'} @:{'words.generated.chauffør'}.\",\"phone_desc\":\"@.capitalize:{'words.generated.dit'} @:{'words.generated.telefonnummer'} @:{'words.generated.som'} @:{'words.generated.chauffør'}.\",\"profile_description\":\"@.capitalize:{'words.generated.dine'} @:{'words.generated.chauffør'}-@:{'words.generated.oplysninger'}\",\"profile_subtitle\":\"Profiloplysninger\",\"username_desc\":\"@.capitalize:{'words.generated.dit'} @:{'words.generated.brugernavn'} @:{'words.generated.kan'} @:{'words.generated.ikke'} ændres.\"},\"invoicing\":{\"account_name_desc\":\"@:{'words.generated.kundekonto'} @:{'words.generated.navn'}\",\"account_number_desc\":\"@:{'words.generated.kundekonto'} @:{'words.generated.nummer'}\",\"description\":\"@.capitalize:{'words.generated.dine'} @:{'words.generated.fakturaoplysninger'}\",\"title\":\"@.capitalize:{'words.generated.fakturaoplysninger'}\"},\"microsoft_auth\":{\"create_event\":\"@:{'words.generated.opret'} begivenhed\",\"logged_in_as\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.er'} @:{'words.generated.logget'} @:{'words.generated.ind'} @:{'words.generated.som'} {name}\",\"login\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.ind'} @:{'words.generated.med'} @:{'words.generated.microsoft'}\",\"not_logged_in\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.logget'} @:{'words.generated.ind'}\",\"title\":\"@:{'words.generated.microsoft'} @:{'words.generated.godkendelse'}\"},\"microsoft\":{\"description\":\"@.capitalize:{'words.generated.dine'} @:{'words.generated.microsoft'} @:{'words.generated.indstillinger'}\",\"title\":\"@:{'words.generated.microsoft'}\"},\"notifications\":{\"booking_email\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.til'} @:{'words.generated.bookinger'}\",\"booking_email_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.e'}-@:{'words.generated.mailadresse'}, @:{'words.generated.der'} @:{'words.generated.modtager'} @:{'words.generated.booking'} bekræftelser @:{'words.generated.og'} @:{'words.generated.vaskecertifikater'}.\",\"description\":\"@.capitalize:{'words.generated.dine'} @:{'words.generated.notifikationsindstillinger'}\",\"email_notifications\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.notifikationer'}\",\"email_notifications_desc\":\"@:{'words.generated.modtag'} @:{'words.generated.e'}-mails @:{'words.generated.med'} bookingbekræftelser @:{'words.generated.og'} @:{'words.generated.vaskecertifikater'}.\",\"sms_notifications_desc\":\"@:{'words.generated.modtag'} @:{'words.generated.sms'} @:{'words.generated.notifikationer'} @:{'words.generated.ved'} @:{'words.generated.forskellige'} @:{'words.generated.begivenheder'}.\",\"sms_phone\":\"@.capitalize:{'words.generated.telefonnummer'} @:{'words.generated.til'} @:{'words.generated.sms'} @:{'words.generated.notifikationer'}\",\"sms_phone_desc\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.telefonnummer'}, @:{'words.generated.der'} @:{'words.generated.modtager'} @:{'words.generated.sms'} @:{'words.generated.notifikationer'}.\",\"superuser_notifications\":\"Superuser-notifikationer\",\"superuser_notifications_desc\":\"Modtag e-mailnotifikationer, når en ny kunde registrerer sig på siden.\"},\"security\":{\"description\":\"@.capitalize:{'words.generated.dine'} sikkerhedsindstillinger\",\"email_desc\":\"@.capitalize:{'words.generated.vi'} @:{'words.generated.bruger'} @:{'words.generated.denne'} @:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.til'} @:{'words.generated.at'} nulstille @:{'words.generated.din'} @:{'words.generated.adgangskode'}, fremsende @:{'words.generated.vaskecertifikater'} @:{'words.generated.og'} @:{'words.generated.andre'} vigtige @:{'words.generated.oplysninger'}.\"},\"title\":\"@.capitalize:{'words.generated.brugerprofil'}\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.dine'} @:{'words.generated.indstillinger'}\"},\"sidebar\":{\"book\":\"@.capitalize:{'words.generated.book'}\",\"logout\":\"@:{'templates.generated.compat.common.logout'}\"},\"vehicles\":{\"new_subtitle\":\"@:{'words.generated.opret'} @:{'words.generated.et_2'} @:{'words.generated.nyt'} @:{'words.generated.køretøj'}\",\"single_title\":\"Mit @:{'words.generated.køretøj'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.dine'} @:{'words.generated.køretøjer'}\"},\"wash\":{\"nearest_department\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.nærmeste'} @:{'words.generated.afdeling'} @:{'words.generated.er'} {name}, @:{'words.generated.som'} ligger @:{'words.generated.ca'}. {distance} km væk @:{'words.generated.fra'} @:{'words.generated.din'} @:{'words.generated.nuværende'} placering.\",\"subtitle\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.et_2'} @:{'words.generated.af'} @:{'words.generated.dine'} @:{'words.generated.køretøjer'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.starte'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vask'}\"}},\"user_home\":{\"book_wash_desc\":\"@.capitalize:{'words.generated.book'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vask'} @:{'words.generated.i'} @:{'words.generated.en'} @:{'words.generated.af'} @:{'words.generated.vores'} @:{'words.generated.afdelinger'} - @:{'words.generated.med'} @:{'words.generated.mulighed'} @:{'words.generated.for'} @:{'words.generated.safety'} @:{'words.generated.seal'}.\",\"contact_info_or_email\":\"@:{'words.generated.eller'} @:{'words.generated.email'}\",\"contact_info_prefix\":\"@.capitalize:{'words.generated.ved'} @:{'words.generated.problemer'} @:{'words.generated.kontakt'} @:{'words.generated.os'} @:{'words.generated.pa'} @:{'words.generated.telefon'}\",\"create_vehicle_desc\":\"@:{'words.generated.tilføj'} @:{'words.generated.et_2'} @:{'words.generated.køretøj'} @:{'words.generated.der'} @:{'words.generated.skal'} @:{'words.generated.kunne'} @:{'words.generated.vaske'} @:{'words.generated.hos'} @:{'words.generated.truck'} @:{'words.generated.wash'}.\",\"create_vehicle\":\"@:{'words.generated.opret'} @:{'words.generated.køretøj'}\",\"download_certificates_desc\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.vaske'} certifikater @:{'words.generated.for'} @:{'words.generated.dine'} @:{'words.generated.tidligere'} @:{'words.generated.vaske'}.\",\"download_certificates\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.vaskecertifikater'}\",\"download_invoices_desc\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.dine'} @:{'words.generated.tidligere'} @:{'words.generated.fakturaer'}.\",\"download_invoices\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.fakturaer'}\",\"empty_state_desc\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.adgang'} @:{'words.generated.til'} @:{'words.generated.nogen'} @:{'words.generated.genveje'}. @.capitalize:{'words.generated.kontakt'} @:{'words.generated.din'} @:{'words.generated.administrator'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.fa'} @:{'words.generated.tildelt'} rettigheder.\",\"empty_state_title\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.ser'} tomt @:{'words.generated.ud'} @:{'words.generated.her'}\",\"select_customer_desc\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.underbruger'} @:{'words.generated.skal'} @:{'words.generated.du'} @:{'words.generated.vælge'} @:{'words.generated.hvilken'} @:{'words.generated.kunde'} @:{'words.generated.du'} @:{'words.generated.vil'} arbejde @:{'words.generated.pa'} @:{'words.generated.vegne'} @:{'words.generated.af'}.\",\"select_customer\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.kunde'}\",\"start_wash_desc\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.direkte'} @:{'words.generated.til'} @:{'words.generated.afdelingens'} @:{'words.generated.vaskebaner'} @:{'words.generated.og'} @:{'words.generated.start'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vask'} @:{'words.generated.for'} @:{'words.generated.dit'} @:{'words.generated.køretøj'}. @.capitalize:{'words.generated.vælg'} @:{'words.generated.dit'} @:{'words.generated.køretøj'} @:{'words.generated.og'} @:{'words.replication.article.host_mention'} @:{'words.generated.ønskede'} @:{'words.generated.vasketype'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.komme'} @:{'words.generated.i'} @:{'words.generated.gang'}.\"},\"user_menu\":{\"my_bookings\":\"@:{'words.generated.mine'} @:{'words.generated.bookinger'}\",\"my_invoices\":\"@:{'words.generated.mine'} @:{'words.generated.fakturaer'}\",\"my_vehicles\":\"@:{'words.generated.mine'} @:{'words.generated.køretøjer'}\",\"my_washes\":\"@:{'words.generated.mine'} @:{'words.generated.vaske'}\"},\"user_navigation\":{\"back_to_own_user\":\"@.capitalize:{'words.generated.tilbage'} @:{'words.generated.til'} @:{'words.generated.egen'} @:{'words.generated.bruger'}\",\"guest\":\"@.capitalize:{'words.generated.gæst'}\",\"my_customer_page\":\"@:{'words.generated.min'} kundeside\",\"my_profile\":\"@:{'words.generated.min'} @:{'words.generated.brugerprofil'}\"},\"user_notifications\":{\"mark_as_read_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.skete'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.ved'} markering @:{'words.generated.af'} beskeden @:{'words.generated.som'} @:{'words.generated.læst'}. @.capitalize:{'words.generated.prøv'} @:{'words.generated.igen'}, @:{'words.generated.eller'} @:{'words.generated.kontakt'} @:{'words.generated.support'}.\"},\"user_vehicles\":{\"activate\":\"@.capitalize:{'words.generated.aktiver_2'}\",\"add_new_vehicle\":\"@:{'words.generated.tilføj'} @:{'words.generated.nyt'} @:{'words.generated.køretøj'}\",\"deactivate\":\"@.capitalize:{'words.generated.deaktiver'}\",\"no_vehicle_type_configured\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.vogntype'} @:{'words.generated.konfigureret'}\",\"reference_placeholder\":\"@.capitalize:{'words.generated.reference'} / Intern @:{'words.generated.nummer'}\",\"self_service_placeholder\":\"@:{'words.generated.placeholder'} @:{'words.generated.for'} @:{'words.generated.køretøjer'} @:{'words.generated.med'} @:{'words.generated.selvbetjening'}\",\"self_service\":\"@:{'templates.generated.compat.nav.self_wash'}\",\"subscriptions_placeholder\":\"@:{'words.generated.placeholder'} @:{'words.generated.for'} @:{'words.generated.køretøjer'} @:{'words.generated.med'} @:{'words.generated.aktive'} @:{'words.generated.vaskeabonnementer'}\",\"vehicle_count_placeholder\":\"@:{'words.generated.placeholder'} @:{'words.generated.for'} køretøjsantal\",\"vehicles_with_self_service\":\"@.capitalize:{'words.generated.køretøjer'} @:{'words.generated.med'} @:{'words.generated.selvbetjening'}\",\"vehicles_with_subscriptions\":\"@.capitalize:{'words.generated.køretøjer'} @:{'words.generated.med'} @:{'words.generated.aktive'} @:{'words.generated.vaskeabonnementer'}\",\"view_all_self_service\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.alle'} {count} @:{'words.generated.køretøjer'} @:{'words.generated.med'} @:{'words.generated.selvbetjening'}\",\"view_all_subscriptions\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.alle'} {count} @:{'words.generated.køretøjer'} @:{'words.generated.med'} @:{'words.generated.aktive'} @:{'words.generated.vaskeabonnementer'}\",\"view_all_vehicles\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.alle'} {count} @:{'words.generated.køretøjer'}\",\"with_self_service\":\"@:{'words.generated.med'} @:{'words.generated.selvvask'}\",\"without_self_service\":\"@:{'words.generated.uden'} @:{'words.generated.selvvask'}\"},\"validation\":{\"email\":\"@:{'words.generated.indtast'} @:{'words.generated.venligst'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.gyldig'} @:{'words.generated.e'}-@:{'words.generated.mailadresse'}\",\"invalid\":\"@.capitalize:{'words.generated.ugyldig'} @:{'words.generated.værdi'}\",\"max_length\":\"@.capitalize:{'words.generated.far'} @:{'words.generated.ikke'} @:{'words.generated.være'} @:{'words.generated.mere'} @:{'words.generated.end'} {max} @:{'words.generated.tegn'}\",\"max\":\"Maks {max} @:{'words.generated.tegn'} @:{'words.generated.tilladt'}\",\"min_length\":\"@:{'words.generated.maste'} @:{'words.generated.være'} @:{'words.generated.mindst'} {min} @:{'words.generated.tegn'}\",\"min\":\"@.capitalize:{'words.generated.mindst'} {min} @:{'words.generated.tegn'} @:{'words.generated.pakrævet'}\",\"numeric\":\"@:{'words.generated.maste'} @:{'words.generated.være'} @:{'words.generated.et_2'} @:{'words.generated.nummer'}\",\"password_confirmation\":\"@:{'words.generated.adgangskoderne'} stemmer @:{'words.generated.ikke'} overens\",\"password_match\":\"@:{'words.generated.adgangskoderne'} @:{'words.generated.matcher'} @:{'words.generated.ikke'}\",\"password\":\"@.capitalize:{'words.generated.adgangskoden'} @:{'words.generated.skal'} @:{'words.generated.være'} @:{'words.generated.mindst'} 8 @:{'words.generated.tegn'}\",\"phone\":\"@:{'words.generated.indtast'} @:{'words.generated.venligst'} @:{'words.generated.et_2'} @:{'words.generated.gyldigt'} @:{'words.generated.telefonnummer'}\",\"required\":\"@.capitalize:{'words.generated.dette'} @:{'words.generated.felt'} @:{'words.generated.er'} @:{'words.generated.pakrævet'}\"},\"vehicles\":{\"add\":\"@:{'words.generated.tilføj'} @:{'words.generated.køretøj'}\",\"add_modal\":{\"customer_label\":\"Kunde\",\"customer_placeholder\":\"Søg efter kundenavn eller kundenummer\",\"error\":\"Køretøjet kunne ikke tilføjes.\",\"no_customer_results\":\"Ingen kunder fundet\",\"reference_placeholder\":\"Valgfri reference\",\"registration_placeholder\":\"Registreringsnummer\",\"selected_customer\":\"Valgt kunde\",\"submit\":\"Tilføj køretøj\",\"title\":\"Tilføj køretøj\",\"type_load_error\":\"Køretøjstyper kunne ikke indlæses.\",\"type_placeholder\":\"Vælg køretøjstype\",\"validation_error\":\"Vælg kunde, registreringsnummer og køretøjstype.\"},\"brand\":\"@:{'templates.generated.compat.admin.pos.make'}\",\"color\":\"Farve\",\"delete_vehicle\":\"@:{'templates.generated.compat.vehicles.delete'}\",\"delete\":\"@.capitalize:{'words.generated.slet'} @:{'words.generated.køretøj'}\",\"edit\":\"@:{'words.generated.rediger'} @:{'words.generated.køretøj'}\",\"model\":\"Model\",\"new_vehicle\":\"@.capitalize:{'words.generated.nyt'} @:{'words.generated.køretøj'}\",\"no_previous_washes\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.tidligere'} @:{'words.generated.vask'} @:{'words.generated.fundet'}\",\"no_vehicles\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.køretøjer'} @:{'words.generated.fundet'}\",\"owner\":\"Ejer\",\"previous_wash\":\"@.capitalize:{'words.generated.forrige'} @:{'words.generated.vask'}\",\"previous_washes_count\":\"{count} @:{'words.generated.tidligere'} @:{'words.generated.vask'}\",\"previous_washes\":\"@.capitalize:{'words.generated.tidligere'} @:{'words.generated.vask'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.efter'} @:{'words.generated.registreringsnummer'}, @:{'words.generated.type'}, @:{'words.generated.kunde'}\",\"search\":\"@.capitalize:{'words.generated.søg'} @:{'words.generated.køretøjer'}...\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.køretøj'}\",\"type\":\"@:{'templates.generated.compat.products.type'}\",\"types\":{\"bus\":\"Bus\",\"semi\":\"@.capitalize:{'words.generated.sættevogn'}\",\"tractor\":\"Traktor\",\"trailer\":\"@.capitalize:{'words.generated.trailer'}\",\"truck\":\"Lastbil\",\"van\":\"Varebil\"},\"vehicle_types\":{\"box\":\"Kassevogn\",\"car\":\"Personbil\",\"crew\":\"Medarbejdervogn\",\"semi\":\"@:{'templates.generated.compat.vehicles.types.semi'}\"},\"wash_history\":\"Vaskhistorik\"},\"xlvask\":{\"admin\":{\"customer_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.kunder'}\",\"fetch_customers\":\"@:{'words.generated.hent'} @:{'words.generated.kunder'}\",\"fetch_objects\":\"@:{'words.generated.hent'} @:{'words.generated.objekter'}\",\"object_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.objekter'}\",\"objects\":\"@.capitalize:{'words.generated.objekter'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.handtere'} @:{'words.generated.xlvask'} @:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.xlvask'} @:{'words.generated.administration'}\"}},\"limited_backoffice\":{\"title\":\"Backoffice\",\"subtitle\":\"Administrer @:{'words.generated.afdelingspriser'} @:{'words.generated.og'} @:{'words.generated.medarbejderadgang'}.\",\"department\":\"@.capitalize:{'words.generated.afdeling'}\",\"select_department\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.afdeling'}\",\"loading\":\"Indlæser...\",\"no_departments\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.ingen'} @:{'words.generated.afdelinger'} tilgængelige @:{'words.generated.for'} @:{'words.generated.denne'} konto.\",\"cancel\":\"Annuller\",\"nav\":{\"prices\":\"@.capitalize:{'words.generated.priser'}\",\"customer_pricing\":\"Kundepriser\",\"employees\":\"@.capitalize:{'words.generated.medarbejdere'}\"},\"forbidden\":{\"title\":\"@.capitalize:{'words.generated.adgang'} nægtet\",\"department\":\"@.capitalize:{'words.generated.du'} har @:{'words.generated.ikke'} @:{'words.generated.adgang'} til @:{'words.generated.denne'} @:{'words.generated.afdeling'}.\"},\"prices\":{\"title\":\"@.capitalize:{'words.generated.afdelingspriser'}\",\"save\":\"@:{'words.generated.gem'} @:{'words.generated.priser'}\",\"saved\":\"Priserne @:{'words.generated.er'} @:{'words.generated.gemt'}.\",\"autosave_saving\":\"Gemmer priser...\",\"autosave_pending\":\"Prisændringer afventer.\",\"autosave_saved\":\"Alle prisændringer er gemt.\",\"product\":\"Produkt\",\"price\":\"Afdelingspris\",\"price_required\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.produkter'} @:{'words.generated.skal'} have @:{'words.replication.host_definite_suffix'} @:{'words.generated.ikke'}-negativ numerisk pris.\",\"setup_required_title\":\"Prisopsætning @:{'words.generated.pakrævet'}\",\"setup_required_message\":\"@.capitalize:{'words.replication.host_definite_suffix'} superbruger @:{'words.generated.skal'} oprette eksplicitte @:{'words.generated.priser'} @:{'words.generated.for'} @:{'words.generated.alle'} @:{'words.generated.produkter'}, @:{'words.generated.før'} afdelingen @:{'words.generated.kan'} administreres her.\",\"no_products\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.er'} @:{'words.generated.ingen'} @:{'words.generated.produkter'} opsat @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.afdeling'}.\"},\"employees\":{\"title\":\"@.capitalize:{'words.generated.medarbejderadgang'}\",\"subtitle\":\"@:{'words.generated.opret'} @:{'words.generated.medarbejdere'} @:{'words.generated.og'} tildel @:{'words.replication.host_definite_suffix'} begrænset @:{'words.generated.rolle'} @:{'words.generated.for'} dine @:{'words.generated.afdelinger'}.\",\"create_title\":\"@:{'words.generated.opret'} @:{'words.generated.medarbejder'}\",\"edit_title\":\"@:{'words.generated.rediger'} @:{'words.generated.medarbejder'}\",\"name\":\"Navn\",\"email\":\"Email\",\"user_id\":\"Bruger-id\",\"phone\":\"Telefon\",\"phone_validation\":\"Telefonnummeret skal være 4-15 cifre.\",\"country_codes\":{\"denmark\":\"Danmark\",\"sweden\":\"Sverige\",\"norway\":\"Norge\",\"finland\":\"Finland\"},\"password\":\"@.capitalize:{'words.generated.adgangskode'}\",\"password_create_help\":\"@.capitalize:{'words.generated.pakrævet'} @:{'words.generated.for'} nye @:{'words.generated.medarbejdere'}. Brug @:{'words.generated.mindst'} 8 tegn.\",\"password_update_help\":\"Lad feltet være tomt @:{'words.generated.for'} at beholde den nuværende @:{'words.generated.adgangskode'}.\",\"role\":\"@.capitalize:{'words.generated.rolle'}\",\"departments\":\"@.capitalize:{'words.generated.afdelinger'}\",\"department_required\":\"@.capitalize:{'words.generated.vælg'} @:{'words.generated.mindst'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.afdeling'}.\",\"validation\":\"Udfyld de påkrævede felter, @:{'words.generated.før'} @:{'words.generated.du'} gemmer.\",\"save\":\"@:{'words.generated.gem'} @:{'words.generated.medarbejder'}\",\"created\":\"@.capitalize:{'words.generated.medarbejderen'} @:{'words.generated.er'} oprettet.\",\"saved\":\"@.capitalize:{'words.generated.medarbejderen'} @:{'words.generated.er'} @:{'words.generated.gemt'}.\",\"deactivated\":\"@.capitalize:{'words.generated.medarbejderen'} @:{'words.generated.er'} deaktiveret.\",\"include_inactive\":\"Vis inaktive\",\"empty\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.medarbejdere'} fundet.\",\"status\":\"Status\",\"actions\":\"Handlinger\",\"active\":\"Aktiv\",\"inactive\":\"Inaktiv\",\"edit\":\"@:{'words.generated.rediger'}\",\"deactivate\":\"Deaktiver\",\"login_link\":\"QR-login\",\"login_link_title\":\"Medarbejderloginlink\",\"login_link_qr_alt\":\"QR-kode-loginlink\",\"login_link_url\":\"Loginlink\",\"copy_login_link\":\"Kopiér link\",\"login_link_copied\":\"Linket er kopieret.\"},\"roles\":{\"viewer\":{\"label\":\"Deaktiveret\",\"description\":\"Holder medarbejderen registreret uden adgang til ordre-, booking- eller administrationsfunktioner.\"},\"cashier\":{\"label\":\"Kassemedarbejder\",\"description\":\"@.capitalize:{'words.generated.kan'} arbejde med @:{'words.generated.ordrer'}, ordrelinjer @:{'words.generated.og'} @:{'words.generated.bookinger'} @:{'words.generated.for'} @:{'words.generated.tildelte'} @:{'words.generated.afdelinger'}.\"},\"booking_coordinator\":{\"label\":\"Bookingkoordinator\",\"description\":\"@.capitalize:{'words.generated.kan'} @:{'words.generated.koordinere'} @:{'words.generated.bookinger'} @:{'words.generated.for'} @:{'words.generated.tildelte'} @:{'words.generated.afdelinger'}.\"},\"operations_lead\":{\"label\":\"Driftsansvarlig\",\"description\":\"@.capitalize:{'words.generated.kan'} @:{'words.generated.koordinere'} @:{'words.generated.ordrer'}, @:{'words.generated.bookinger'} @:{'words.generated.og'} driftsvisninger @:{'words.generated.for'} @:{'words.generated.tildelte'} @:{'words.generated.afdelinger'}.\"},\"department_admin\":{\"label\":\"Afdelingsadministrator\",\"description\":\"@.capitalize:{'words.generated.kan'} administrere begrænsede @:{'words.generated.priser'} @:{'words.generated.og'} @:{'words.generated.medarbejderadgang'} @:{'words.generated.for'} @:{'words.generated.tildelte'} @:{'words.generated.afdelinger'}.\"}},\"errors\":{\"load_departments\":\"@.capitalize:{'words.generated.afdelinger'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.indlæses'}.\",\"load_prices\":\"@.capitalize:{'words.generated.afdelingspriser'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.indlæses'}.\",\"save_prices\":\"@.capitalize:{'words.generated.afdelingspriser'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.gemmes'}.\",\"load_employees\":\"@.capitalize:{'words.generated.medarbejdere'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.indlæses'}.\",\"save_employee\":\"@.capitalize:{'words.generated.medarbejderen'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.gemmes'}.\",\"deactivate_employee\":\"@.capitalize:{'words.generated.medarbejderen'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} deaktiveres.\",\"generate_employee_login_link\":\"Medarbejderens loginlink kunne ikke oprettes.\"},\"role_permissions\":{\"title\":\"Rolletilladelser\",\"tooltip\":\"Vis rolletilladelser\",\"intro\":\"Roller samler de præcise funktioner, der tildeles en medarbejder, når rollen gemmes.\",\"scope\":\"Alle funktioner er begrænset til de afdelinger, der vælges for medarbejderen.\",\"selected\":\"Valgt\",\"close\":\"Luk\",\"unavailable\":\"Tilladelsesdetaljer er ikke tilgængelige for denne rolle, før rollekataloget er opdateret.\",\"groups\":{\"account\":\"Konto\",\"orders\":\"Ordrer\",\"products\":\"Produkter\",\"customers\":\"Kunder\",\"vehicles\":\"Køretøjer\",\"attachments\":\"Vedhæftninger\",\"scanner\":\"Scannere\",\"bookings\":\"Bookinger\",\"time_bookings\":\"Tidsbookinger\",\"reports\":\"Rapporter\",\"limited_backoffice\":\"Backoffice\",\"unknown\":\"Øvrigt\"},\"capabilities\":{\"sign_in\":{\"label\":\"Log ind\",\"description\":\"Giver medarbejderen adgang til at logge ind i Pleno.\"},\"view_own_permissions\":{\"label\":\"Se egne tilladelser\",\"description\":\"Viser medarbejderen, hvilke adgangsrettigheder kontoen har.\"},\"view_orders\":{\"label\":\"Se ordrer\",\"description\":\"Kan åbne ordrelister og ordredetaljer for tildelte afdelinger.\"},\"create_orders\":{\"label\":\"Opret ordrer\",\"description\":\"Kan oprette nye ordrer for tildelte afdelinger.\"},\"edit_orders\":{\"label\":\"Rediger ordrer\",\"description\":\"Kan ændre ordredetaljer for tildelte afdelinger.\"},\"delete_orders\":{\"label\":\"Slet ordrer\",\"description\":\"Kan slette ordrer i tildelte afdelinger.\"},\"view_order_items\":{\"label\":\"Se ordrelinjer\",\"description\":\"Kan se produkter, ydelser og priser på ordrer.\"},\"create_order_items\":{\"label\":\"Opret ordrelinjer\",\"description\":\"Kan tilføje produkter og ydelser til ordrer.\"},\"update_order_lines\":{\"label\":\"Rediger ordrelinjer\",\"description\":\"Kan ændre produkter, antal og priser på ordrer.\"},\"remove_order_lines\":{\"label\":\"Slet ordrelinjer\",\"description\":\"Kan fjerne produkter og ydelser fra ordrer.\"},\"charge_orders\":{\"label\":\"Opkræv ordrer\",\"description\":\"Kan tage betaling eller opkræve en betalingsreservation for en ordre.\"},\"complete_orders\":{\"label\":\"Afslut ordrer\",\"description\":\"Kan markere ordrer som afsluttede.\"},\"view_product_catalog\":{\"label\":\"Se produktkatalog\",\"description\":\"Kan indlæse POS-kategorier, produkter, priser og tilvalg.\"},\"view_product_recommendations\":{\"label\":\"Se produktforslag\",\"description\":\"Kan se produktforslag baseret på ordrer og køretøjsdata.\"},\"search_customers\":{\"label\":\"Søg kunder\",\"description\":\"Kan søge og vælge kunder til POS-ordrer.\"},\"view_customer_details\":{\"label\":\"Se kundeoplysninger\",\"description\":\"Kan indlæse kundeoplysninger fra et kundenummer.\"},\"view_customer_notes\":{\"label\":\"Se kundebemærkninger\",\"description\":\"Kan læse kundebemærkninger i POS.\"},\"add_customer_notes\":{\"label\":\"Tilføj kundebemærkninger\",\"description\":\"Kan tilføje kundebemærkninger fra POS.\"},\"view_customer_flags\":{\"label\":\"Se kundemarkeringer\",\"description\":\"Kan se kundemarkeringer, der påvirker ordrekrav og produktregler.\"},\"search_vehicles\":{\"label\":\"Søg køretøjer\",\"description\":\"Kan søge nummerplader og se køretøjsstatus.\"},\"view_vehicle_matches\":{\"label\":\"Se køretøjsmatch\",\"description\":\"Kan se kundematch for køretøjer og forslag til ukendte køretøjer.\"},\"view_vehicle_history\":{\"label\":\"Se køretøjshistorik\",\"description\":\"Kan se seneste ordrehistorik for en nummerplade.\"},\"view_order_attachments\":{\"label\":\"Se ordrevedhæftninger\",\"description\":\"Kan liste vedhæftninger på ordrer.\"},\"add_order_attachments\":{\"label\":\"Tilføj ordrevedhæftninger\",\"description\":\"Kan uploade filer og vedhæfte vaskecertifikater til ordrer.\"},\"download_order_attachments\":{\"label\":\"Download ordrevedhæftninger\",\"description\":\"Kan åbne og downloade ordrevedhæftninger.\"},\"view_plate_scans\":{\"label\":\"Se nummerpladescanninger\",\"description\":\"Kan se seneste nummerpladescanninger og scannere for tildelte afdelinger.\"},\"view_department_bookings\":{\"label\":\"Se afdelingsbookinger\",\"description\":\"Kan se bookinger for tildelte afdelinger.\"},\"view_own_bookings\":{\"label\":\"Se egne bookinger\",\"description\":\"Kan se bookingantal og bookinger knyttet til medarbejderkontoen.\"},\"update_bookings\":{\"label\":\"Rediger bookinger\",\"description\":\"Kan ændre tilladte bookingdetaljer.\"},\"create_bookings\":{\"label\":\"Opret bookinger\",\"description\":\"Kan oprette nye bookinger for tildelte afdelinger.\"},\"mark_bookings_complete\":{\"label\":\"Afslut bookinger\",\"description\":\"Kan markere bookinger som afsluttet.\"},\"send_booking_confirmations\":{\"label\":\"Gensend bookingbekræftelser\",\"description\":\"Kan gensende bookingbekræftelser og afslutningsmails.\"},\"view_time_booking_entries\":{\"label\":\"Se tidsbookinger\",\"description\":\"Kan gennemse tidsbookingposter for tildelte afdelinger.\"},\"create_time_booking_entries\":{\"label\":\"Opret tidsbookinger\",\"description\":\"Kan oprette nye tidsbookingposter.\"},\"edit_time_booking_entries\":{\"label\":\"Rediger tidsbookinger\",\"description\":\"Kan redigere tidsbookingposter, når backend-ruten understøtter det.\"},\"view_order_statistics\":{\"label\":\"Se ordrestatistik\",\"description\":\"Kan åbne statistikvisninger for ordrer i tildelte afdelinger.\"},\"view_booking_statistics\":{\"label\":\"Se bookingstatistik\",\"description\":\"Kan åbne statistikvisninger for bookinger i tildelte afdelinger.\"},\"open_limited_backoffice\":{\"label\":\"Åbn begrænset backoffice\",\"description\":\"Kan tilgå det begrænsede backofficeområde.\"},\"manage_department_prices\":{\"label\":\"Administrer afdelingspriser\",\"description\":\"Kan redigere eksplicitte priser for tildelte afdelinger.\"},\"view_customer_pricing\":{\"label\":\"Se kundepriser\",\"description\":\"Kan se afdelingsspecifikke kundepriser og rabatter for tildelte afdelinger.\"},\"manage_customer_pricing\":{\"label\":\"Administrer kundepriser\",\"description\":\"Kan redigere afdelingsspecifikke kundepriser og rabatter for tildelte afdelinger.\"},\"manage_employee_access\":{\"label\":\"Administrer medarbejderadgang\",\"description\":\"Kan oprette, redigere og deaktivere begrænsede backofficemedarbejdere.\"},\"unknown\":{\"label\":\"Ekstra funktion\",\"description\":\"Denne funktion kommer fra rollekataloget, men er endnu ikke beskrevet i grænsefladen.\"}}}}}}}");
const daV2 = {
  words: words$4,
  templates: templates$4,
};

const words$3 = /* #__PURE__ */ JSON.parse("{\"grammar\":{},\"actions\":{},\"entities\":{},\"statuses\":{},\"domain\":{},\"services\":{},\"units\":{},\"replication\":{\"article\":{\"host_mention\":\"the\"},\"adjective\":{\"primary_host_mention\":\"primary\"},\"host\":\"host\",\"host_definite_suffix\":\"\",\"services\":{\"database\":\"database\",\"redis\":\"Redis\",\"minio\":\"MinIO\"}},\"generated\":{\"a\":\"a\",\"about\":\"about\",\"accept\":\"accept\",\"access\":\"access\",\"account\":\"account\",\"across\":\"across\",\"action\":\"action\",\"actions\":\"actions\",\"activate\":\"Activate\",\"active\":\"active\",\"add\":\"add\",\"added\":\"added\",\"additional\":\"additional\",\"additions\":\"additions\",\"address\":\"address\",\"admin\":\"admin\",\"administration\":\"administration\",\"administrator\":\"administrator\",\"again\":\"again\",\"against\":\"against\",\"agreement\":\"agreement\",\"agreements\":\"agreements\",\"aktiver\":\"Aktiver\",\"alert\":\"alert\",\"all\":\"all\",\"allocation\":\"allocation\",\"allocations\":\"allocations\",\"allow\":\"allow\",\"allowed\":\"Allowed\",\"already\":\"already\",\"amount\":\"amount\",\"an\":\"an\",\"and\":\"and\",\"another\":\"another\",\"answer\":\"Answer\",\"answered\":\"answered\",\"any\":\"any\",\"api\":\"API\",\"app\":\"app\",\"appear\":\"appear\",\"applicable\":\"applicable\",\"apply\":\"apply\",\"approx\":\"approx\",\"archived\":\"Archived\",\"are\":\"are\",\"arrangement\":\"arrangement\",\"arrangements\":\"arrangements\",\"as\":\"as\",\"assign\":\"Assign\",\"assigned\":\"assigned\",\"assistance\":\"assistance\",\"association\":\"association\",\"at\":\"at\",\"attach\":\"attach\",\"attached\":\"attached\",\"attachment\":\"attachment\",\"attachments\":\"Attachments\",\"authenticate\":\"authenticate\",\"authentication\":\"authentication\",\"authenticator\":\"authenticator\",\"automatic\":\"automatic\",\"automatically\":\"automatically\",\"available\":\"available\",\"average\":\"average\",\"avg\":\"avg\",\"awaiting\":\"Awaiting\",\"aware\":\"aware\",\"back\":\"back\",\"backup\":\"backup\",\"based\":\"based\",\"basket\":\"basket\",\"be\":\"be\",\"because\":\"because\",\"been\":\"been\",\"before\":\"before\",\"behalf\":\"behalf\",\"behind\":\"behind\",\"being\":\"being\",\"belongs\":\"belongs\",\"below\":\"below\",\"best\":\"best\",\"billing\":\"billing\",\"binary\":\"binary\",\"block\":\"Block\",\"blocked\":\"blocked\",\"blockers\":\"blockers\",\"book\":\"book\",\"booked\":\"booked\",\"booking\":\"booking\",\"bookings\":\"bookings\",\"branding\":\"branding\",\"browser\":\"browser\",\"brugerrabat\":\"brugerrabat\",\"bucket\":\"bucket\",\"buckets\":\"buckets\",\"but\":\"but\",\"button\":\"button\",\"by\":\"by\",\"bytes\":\"bytes\",\"cache\":\"cache\",\"calendar\":\"calendar\",\"camera\":\"camera\",\"can\":\"can\",\"cancel\":\"cancel\",\"canceled\":\"canceled\",\"cancelled\":\"cancelled\",\"cancelling\":\"Cancelling\",\"cannot\":\"cannot\",\"capture\":\"capture\",\"capturing\":\"Capturing\",\"car\":\"car\",\"card\":\"card\",\"cart\":\"cart\",\"cash\":\"cash\",\"categories\":\"categories\",\"category\":\"category\",\"certificate\":\"certificate\",\"certificates\":\"certificates\",\"change\":\"change\",\"changed\":\"changed\",\"changes\":\"changes\",\"characters\":\"characters\",\"charged\":\"charged\",\"check\":\"check\",\"checked\":\"checked\",\"choose\":\"choose\",\"chrome\":\"Chrome\",\"cleaning\":\"cleaning\",\"clear\":\"Clear\",\"cleared\":\"cleared\",\"click\":\"click\",\"client\":\"Client\",\"clipboard\":\"clipboard\",\"clone\":\"Clone\",\"close\":\"Close\",\"closed\":\"closed\",\"code\":\"code\",\"collected\":\"collected\",\"collection\":\"collection\",\"collections\":\"collections\",\"companies\":\"companies\",\"company\":\"company\",\"compare\":\"compare\",\"comparison\":\"comparison\",\"competitive\":\"competitive\",\"complaint\":\"complaint\",\"complaints\":\"complaints\",\"complete\":\"complete\",\"completed\":\"completed\",\"compose\":\"compose\",\"condition\":\"condition\",\"conditions\":\"conditions\",\"confident\":\"confident\",\"config\":\"config\",\"configuration\":\"configuration\",\"configure\":\"configure\",\"configured\":\"configured\",\"confirm\":\"confirm\",\"confirmation\":\"confirmation\",\"confirmations\":\"confirmations\",\"confirmed\":\"confirmed\",\"connection\":\"connection\",\"connectivity\":\"connectivity\",\"conomic\":\"conomic\",\"contact\":\"contact\",\"contains\":\"contains\",\"content\":\"content\",\"continue\":\"continue\",\"control\":\"Control\",\"conversion\":\"conversion\",\"coordinate\":\"coordinate\",\"copied\":\"copied\",\"copy\":\"copy\",\"could\":\"could\",\"count\":\"count\",\"country\":\"country\",\"cpu\":\"CPU\",\"create\":\"create\",\"created\":\"created\",\"creates\":\"creates\",\"creating\":\"creating\",\"creation\":\"creation\",\"credentials\":\"credentials\",\"credit\":\"credit\",\"currency\":\"Currency\",\"current\":\"current\",\"currently\":\"currently\",\"customer\":\"customer\",\"customers\":\"customers\",\"cvr\":\"CVR\",\"d\":\"D\",\"daily\":\"daily\",\"dashboard\":\"dashboard\",\"data\":\"data\",\"date\":\"date\",\"day\":\"day\",\"days\":\"days\",\"de\":\"De\",\"deactivate\":\"deactivate\",\"deaktiver\":\"deaktiver\",\"default\":\"default\",\"defaults\":\"defaults\",\"defer\":\"Defer\",\"delete\":\"delete\",\"deleted\":\"deleted\",\"denied\":\"denied\",\"denmark\":\"Denmark\",\"department\":\"department\",\"departmental\":\"departmental\",\"departments\":\"departments\",\"desired\":\"desired\",\"destination\":\"destination\",\"details\":\"details\",\"development\":\"development\",\"device\":\"device\",\"diagnostics\":\"diagnostics\",\"did\":\"did\",\"differs\":\"differs\",\"digit\":\"digit\",\"digital\":\"digital\",\"directly\":\"directly\",\"disable\":\"disable\",\"disabled\":\"disabled\",\"disconnect\":\"disconnect\",\"disconnected\":\"disconnected\",\"discount\":\"discount\",\"discounts\":\"discounts\",\"dispatchers\":\"dispatchers\",\"display\":\"display\",\"distribution\":\"distribution\",\"dkk\":\"DKK\",\"do\":\"do\",\"docker\":\"docker\",\"does\":\"does\",\"doing\":\"doing\",\"done\":\"done\",\"download\":\"download\",\"downloading\":\"downloading\",\"draft\":\"draft\",\"drafts\":\"drafts\",\"driver\":\"driver\",\"drivers\":\"drivers\",\"due\":\"Due\",\"duplicate\":\"duplicate\",\"duplicates\":\"duplicates\",\"duration\":\"duration\",\"during\":\"during\",\"e\":\"e\",\"each\":\"each\",\"earn\":\"earn\",\"economic\":\"Economic\",\"edge\":\"edge\",\"edit\":\"edit\",\"eller\":\"eller\",\"email\":\"email\",\"emails\":\"emails\",\"employee\":\"employee\",\"employees\":\"employees\",\"empty\":\"empty\",\"enable\":\"enable\",\"enabled\":\"enabled\",\"encryption\":\"encryption\",\"end\":\"end\",\"endpoint\":\"endpoint\",\"endpoints\":\"endpoints\",\"enough\":\"enough\",\"enter\":\"enter\",\"entered\":\"entered\",\"entire\":\"entire\",\"entity\":\"entity\",\"env\":\"env\",\"environmental\":\"environmental\",\"error\":\"error\",\"errors\":\"errors\",\"estimated\":\"estimated\",\"etc\":\"etc\",\"event\":\"event\",\"events\":\"events\",\"every\":\"every\",\"everything\":\"everything\",\"excel\":\"Excel\",\"exchange\":\"exchange\",\"exclude\":\"Exclude\",\"excluded\":\"excluded\",\"exempt\":\"exempt\",\"exist\":\"exist\",\"exists\":\"exists\",\"exit\":\"exit\",\"expected\":\"expected\",\"experience\":\"experience\",\"export\":\"export\",\"exported\":\"exported\",\"exterior\":\"exterior\",\"extra\":\"extra\",\"factor\":\"factor\",\"failed\":\"failed\",\"fallback\":\"fallback\",\"false\":\"false\",\"feature\":\"feature\",\"fee\":\"fee\",\"fees\":\"fees\",\"fell\":\"fell\",\"fetch\":\"Fetch\",\"fetched\":\"fetched\",\"fetching\":\"fetching\",\"field\":\"field\",\"file\":\"file\",\"files\":\"files\",\"fill\":\"fill\",\"filled\":\"filled\",\"filter\":\"filter\",\"filters\":\"filters\",\"find\":\"find\",\"finished\":\"finished\",\"first\":\"first\",\"fixed\":\"fixed\",\"flag\":\"flag\",\"fleet\":\"fleet\",\"follow\":\"follow\",\"for\":\"for\",\"force\":\"force\",\"form\":\"form\",\"format\":\"format\",\"forms\":\"forms\",\"found\":\"found\",\"free\":\"free\",\"from\":\"from\",\"further\":\"further\",\"fx\":\"FX\",\"fxratesapi\":\"FXRatesAPI\",\"g\":\"g\",\"gate\":\"gate\",\"gates\":\"gates\",\"gateway\":\"gateway\",\"gateways\":\"gateways\",\"gemt\":\"gemt\",\"general\":\"general\",\"generate\":\"Generate\",\"generated\":\"generated\",\"generelle\":\"generelle\",\"get\":\"get\",\"go\":\"go\",\"goal\":\"goal\",\"goals\":\"goals\",\"google\":\"Google\",\"grant\":\"grant\",\"grants\":\"grants\",\"group\":\"group\",\"grouped\":\"grouped\",\"gtid\":\"GTID\",\"guest\":\"guest\",\"hall\":\"hall\",\"halls\":\"halls\",\"handle\":\"handle\",\"handling\":\"handling\",\"has\":\"has\",\"hauliers\":\"hauliers\",\"have\":\"have\",\"health\":\"health\",\"here\":\"here\",\"hide\":\"Hide\",\"historical\":\"historical\",\"history\":\"history\",\"hold\":\"Hold\",\"home\":\"home\",\"hour\":\"hour\",\"hours\":\"hours\",\"how\":\"how\",\"http\":\"HTTP\",\"i\":\"i\",\"id\":\"id\",\"identity\":\"identity\",\"if\":\"if\",\"ignore\":\"Ignore\",\"ignored\":\"ignored\",\"image\":\"image\",\"images\":\"images\",\"implemented\":\"implemented\",\"import\":\"import\",\"in\":\"in\",\"inactive\":\"inactive\",\"incl\":\"incl\",\"include\":\"Include\",\"included\":\"included\",\"income\":\"income\",\"incomplete\":\"incomplete\",\"incorrect\":\"incorrect\",\"indstillinger\":\"indstillinger\",\"information\":\"information\",\"install\":\"install\",\"installation\":\"installation\",\"installed\":\"installed\",\"instant\":\"instant\",\"instead\":\"instead\",\"instructions\":\"instructions\",\"integration\":\"integration\",\"integrationen\":\"integrationen\",\"integrations\":\"integrations\",\"intent\":\"intent\",\"interface\":\"interface\",\"interior\":\"interior\",\"internal\":\"internal\",\"into\":\"into\",\"intranet\":\"intranet\",\"invalid\":\"invalid\",\"invoice\":\"invoice\",\"invoiced\":\"invoiced\",\"invoices\":\"invoices\",\"invoicing\":\"invoicing\",\"io\":\"io\",\"iphone\":\"iPhone\",\"is\":\"is\",\"iso\":\"ISO\",\"issue\":\"issue\",\"it\":\"it\",\"item\":\"item\",\"items\":\"items\",\"json\":\"JSON\",\"keep\":\"keep\",\"key\":\"key\",\"kladde\":\"kladde\",\"lane\":\"lane\",\"lanes\":\"lanes\",\"last\":\"last\",\"least\":\"least\",\"leder\":\"Leder\",\"legacy\":\"legacy\",\"less\":\"less\",\"level\":\"level\",\"license\":\"license\",\"like\":\"like\",\"limble\":\"Limble\",\"limit\":\"limit\",\"limited\":\"limited\",\"line\":\"line\",\"lines\":\"lines\",\"link\":\"link\",\"linked\":\"linked\",\"list\":\"list\",\"load\":\"load\",\"loaded\":\"loaded\",\"loading\":\"loading\",\"local\":\"local\",\"location\":\"location\",\"log\":\"log\",\"logged\":\"logged\",\"logging\":\"logging\",\"login\":\"login\",\"logs\":\"logs\",\"looks\":\"looks\",\"lookup\":\"lookup\",\"lookups\":\"lookups\",\"loyalty\":\"loyalty\",\"machine\":\"machine\",\"mail\":\"mail\",\"mailersend\":\"Mailersend\",\"mailersend_mailersend\":\"MailerSend\",\"make\":\"make\",\"manage\":\"manage\",\"managed\":\"managed\",\"manual\":\"Manual\",\"manually\":\"manually\",\"mariadb\":\"MariaDB\",\"mark\":\"Mark\",\"match\":\"match\",\"matched\":\"matched\",\"matches\":\"matches\",\"materials\":\"materials\",\"may\":\"may\",\"memory\":\"Memory\",\"menu\":\"menu\",\"message\":\"message\",\"meta\":\"meta\",\"metadata\":\"metadata\",\"method\":\"method\",\"metrics\":\"metrics\",\"microsoft\":\"Microsoft\",\"migration\":\"migration\",\"minute\":\"minute\",\"minutes\":\"minutes\",\"mismatch\":\"mismatch\",\"mismatches\":\"mismatches\",\"missing\":\"missing\",\"mix\":\"mix\",\"mobile\":\"mobile\",\"mode\":\"mode\",\"module\":\"module\",\"modules\":\"modules\",\"month\":\"month\",\"monthly\":\"monthly\",\"months\":\"months\",\"more\":\"more\",\"motor\":\"Motor\",\"motorapi\":\"MotorAPI\",\"multiple\":\"multiple\",\"must\":\"must\",\"my\":\"My\",\"mysql\":\"MySQL\",\"name\":\"name\",\"national\":\"national\",\"nearest\":\"nearest\",\"necessary\":\"necessary\",\"ned\":\"ned\",\"need\":\"need\",\"needed\":\"needed\",\"needs\":\"needs\",\"net\":\"net\",\"network\":\"network\",\"new\":\"new\",\"newer\":\"newer\",\"next\":\"next\",\"night\":\"Night\",\"no\":\"no\",\"non\":\"non\",\"none\":\"None\",\"not\":\"not\",\"note\":\"note\",\"notes\":\"notes\",\"nothing\":\"nothing\",\"notification\":\"notification\",\"notifications\":\"notifications\",\"now\":\"now\",\"number\":\"number\",\"numbers\":\"numbers\",\"object\":\"object\",\"objects\":\"objects\",\"occurred\":\"occurred\",\"of\":\"of\",\"old\":\"old\",\"on\":\"on\",\"one\":\"one\",\"online\":\"online\",\"only\":\"only\",\"ons\":\"ons\",\"open\":\"open\",\"openai\":\"OpenAI\",\"opening\":\"opening\",\"opens\":\"opens\",\"operations\":\"operations\",\"operators\":\"operators\",\"opret\":\"Opret\",\"option\":\"option\",\"optional\":\"optional\",\"options\":\"options\",\"or\":\"or\",\"oracle\":\"Oracle\",\"order\":\"order\",\"orders\":\"orders\",\"other\":\"other\",\"our\":\"our\",\"out\":\"out\",\"outdated\":\"outdated\",\"outgoing\":\"outgoing\",\"outside\":\"outside\",\"over\":\"over\",\"overview\":\"overview\",\"own\":\"own\",\"page\":\"page\",\"paid\":\"paid\",\"panel\":\"panel\",\"parser\":\"parser\",\"passkey\":\"passkey\",\"passkeys\":\"passkeys\",\"password\":\"password\",\"pay\":\"Pay\",\"payload\":\"payload\",\"payment\":\"payment\",\"payments\":\"payments\",\"pdf\":\"PDF\",\"pending\":\"pending\",\"per\":\"per\",\"perform\":\"perform\",\"performed\":\"performed\",\"performing\":\"performing\",\"period\":\"period\",\"permission\":\"permission\",\"permissions\":\"permissions\",\"phone\":\"phone\",\"pick\":\"Pick\",\"pickup\":\"Pickup\",\"placeholder\":\"Placeholder\",\"plate\":\"plate\",\"plates\":\"plates\",\"please\":\"please\",\"pleno\":\"Pleno\",\"plugin\":\"plugin\",\"plus\":\"plus\",\"po\":\"PO\",\"points\":\"points\",\"popular\":\"Popular\",\"popup\":\"popup\",\"port\":\"port\",\"portal\":\"portal\",\"pos\":\"POS\",\"possible\":\"possible\",\"posted\":\"posted\",\"potential\":\"potential\",\"present\":\"present\",\"press\":\"Press\",\"preview\":\"preview\",\"previous\":\"previous\",\"price\":\"price\",\"prices\":\"prices\",\"pricing\":\"pricing\",\"print\":\"Print\",\"priority\":\"Priority\",\"privacy\":\"privacy\",\"probe\":\"probe\",\"problems\":\"problems\",\"proc\":\"proc\",\"process\":\"process\",\"processed\":\"Processed\",\"processing\":\"processing\",\"processor\":\"processor\",\"product\":\"product\",\"products\":\"products\",\"produkt\":\"produkt\",\"profile\":\"profile\",\"progress\":\"progress\",\"property\":\"property\",\"protected\":\"protected\",\"provide\":\"Provide\",\"provision\":\"provision\",\"provisioning\":\"provisioning\",\"public\":\"public\",\"qr\":\"QR\",\"quantity\":\"quantity\",\"query\":\"query\",\"question\":\"question\",\"questions\":\"questions\",\"queue\":\"Queue\",\"queued\":\"queued\",\"quickly\":\"quickly\",\"rabatt\":\"rabatt\",\"rates\":\"rates\",\"reachable\":\"reachable\",\"read\":\"read\",\"reader\":\"reader\",\"readers\":\"readers\",\"ready\":\"ready\",\"reason\":\"reason\",\"rebuild\":\"rebuild\",\"receipt\":\"receipt\",\"receive\":\"receive\",\"received\":\"received\",\"receives\":\"receives\",\"recent\":\"recent\",\"recipient\":\"recipient\",\"reference\":\"reference\",\"refresh\":\"refresh\",\"reg\":\"reg\",\"regardless\":\"regardless\",\"register\":\"register\",\"registered\":\"registered\",\"registration\":\"registration\",\"rejected\":\"rejected\",\"relay\":\"relay\",\"relays\":\"relays\",\"released\":\"released\",\"relevant\":\"relevant\",\"reliability\":\"reliability\",\"remove\":\"remove\",\"removed\":\"removed\",\"rename\":\"rename\",\"replica\":\"replica\",\"replicas\":\"replicas\",\"replication\":\"replication\",\"replies\":\"replies\",\"reply\":\"Reply\",\"report\":\"report\",\"reports\":\"reports\",\"request\":\"request\",\"requests\":\"requests\",\"require\":\"Require\",\"required\":\"required\",\"requires\":\"requires\",\"requiring\":\"requiring\",\"reset\":\"reset\",\"response\":\"response\",\"restrict\":\"Restrict\",\"restricted\":\"restricted\",\"result\":\"result\",\"results\":\"results\",\"retrieve\":\"retrieve\",\"retry\":\"Retry\",\"retrying\":\"Retrying\",\"return\":\"return\",\"returned\":\"returned\",\"revenue\":\"revenue\",\"review\":\"Review\",\"right\":\"right\",\"rights\":\"rights\",\"rinse\":\"rinse\",\"role\":\"role\",\"roles\":\"roles\",\"rows\":\"rows\",\"rule\":\"rule\",\"rules\":\"rules\",\"run\":\"run\",\"running\":\"running\",\"runtime\":\"runtime\",\"s\":\"s\",\"safari\":\"Safari\",\"safe\":\"safe\",\"safely\":\"safely\",\"safety\":\"safety\",\"sales\":\"sales\",\"same\":\"same\",\"save\":\"save\",\"saved\":\"saved\",\"saving\":\"saving\",\"scan\":\"scan\",\"scanned\":\"scanned\",\"scanner\":\"scanner\",\"scanners\":\"scanners\",\"scanning\":\"scanning\",\"scans\":\"scans\",\"schema\":\"schema\",\"scope\":\"scope\",\"score\":\"score\",\"screen\":\"screen\",\"seal\":\"seal\",\"search\":\"search\",\"seconds\":\"seconds\",\"secret\":\"secret\",\"security\":\"security\",\"see\":\"see\",\"seed\":\"seed\",\"seeded\":\"seeded\",\"seen\":\"seen\",\"select\":\"select\",\"selected\":\"selected\",\"selection\":\"selection\",\"self\":\"self\",\"selvvask\":\"Selvvask\",\"semi\":\"semi\",\"send\":\"send\",\"sender\":\"sender\",\"sending\":\"sending\",\"sent\":\"sent\",\"separate\":\"separate\",\"serve\":\"serve\",\"server\":\"server\",\"service\":\"service\",\"services\":\"services\",\"session\":\"session\",\"sessions\":\"sessions\",\"set\":\"set\",\"settings\":\"settings\",\"setup\":\"setup\",\"share\":\"share\",\"shared\":\"shared\",\"shelly\":\"Shelly\",\"shift\":\"shift\",\"shortcuts\":\"shortcuts\",\"should\":\"should\",\"show\":\"show\",\"showing\":\"Showing\",\"side\":\"side\",\"sign\":\"sign\",\"skipped\":\"skipped\",\"slack\":\"Slack\",\"sms\":\"SMS\",\"smtp\":\"SMTP\",\"sold\":\"sold\",\"solutions\":\"solutions\",\"som\":\"som\",\"sort\":\"Sort\",\"sorted\":\"sorted\",\"source\":\"source\",\"space\":\"space\",\"special\":\"special\",\"specified\":\"specified\",\"split\":\"split\",\"spot\":\"spot\",\"sql\":\"SQL\",\"staffed\":\"staffed\",\"stakeholders\":\"stakeholders\",\"start\":\"start\",\"started\":\"started\",\"state\":\"state\",\"statistics\":\"statistics\",\"status\":\"status\",\"step\":\"step\",\"steps\":\"steps\",\"still\":\"still\",\"store\":\"store\",\"stripe\":\"Stripe\",\"studio\":\"Studio\",\"sub\":\"sub\",\"subscription\":\"subscription\",\"subscriptions\":\"subscriptions\",\"subuser\":\"subuser\",\"successful\":\"successful\",\"successfully\":\"successfully\",\"suits\":\"suits\",\"summary\":\"summary\",\"superuser\":\"superuser\",\"support\":\"support\",\"supported\":\"supported\",\"sure\":\"sure\",\"switch\":\"switch\",\"sync\":\"sync\",\"synchronization\":\"synchronization\",\"synchronized\":\"synchronized\",\"system\":\"system\",\"t\":\"t\",\"tab\":\"tab\",\"table\":\"table\",\"tables\":\"tables\",\"tablet\":\"tablet\",\"take\":\"take\",\"tank\":\"tank\",\"target\":\"target\",\"task\":\"task\",\"tasks\":\"tasks\",\"tax\":\"tax\",\"team\":\"team\",\"telephone\":\"telephone\",\"template\":\"template\",\"terminal\":\"terminal\",\"terminals\":\"terminals\",\"terms\":\"terms\",\"test\":\"test\",\"text\":\"text\",\"than\":\"than\",\"thank\":\"Thank\",\"that\":\"that\",\"there\":\"there\",\"therefore\":\"therefore\",\"they\":\"they\",\"this\":\"this\",\"thread\":\"thread\",\"through\":\"through\",\"time\":\"time\",\"to\":\"to\",\"today\":\"today\",\"token\":\"token\",\"tools\":\"tools\",\"top\":\"top\",\"total\":\"total\",\"totals\":\"totals\",\"tractor\":\"Tractor\",\"trailer\":\"trailer\",\"transaction\":\"transaction\",\"transactions\":\"transactions\",\"transfer\":\"transfer\",\"transfers\":\"transfers\",\"trend\":\"trend\",\"truck\":\"truck\",\"truckwash\":\"truckwash\",\"true\":\"true\",\"try\":\"try\",\"two\":\"two\",\"type\":\"type\",\"typed\":\"typed\",\"types\":\"types\",\"unable\":\"Unable\",\"unavailable\":\"unavailable\",\"undo\":\"undo\",\"undone\":\"undone\",\"unexpected\":\"unexpected\",\"unique\":\"unique\",\"unit\":\"Unit\",\"unknown\":\"unknown\",\"up\":\"up\",\"update\":\"update\",\"updated\":\"updated\",\"updates\":\"updates\",\"upload\":\"Upload\",\"uploading\":\"uploading\",\"url\":\"URL\",\"us\":\"us\",\"usage\":\"usage\",\"use\":\"use\",\"used\":\"used\",\"user\":\"user\",\"username\":\"username\",\"users\":\"users\",\"uses\":\"uses\",\"using\":\"using\",\"v2\":\"v2\",\"valid\":\"valid\",\"value\":\"value\",\"variables\":\"variables\",\"various\":\"various\",\"vask\":\"Vask\",\"vat\":\"VAT\",\"vehicle\":\"vehicle\",\"vehicles\":\"vehicles\",\"verification\":\"verification\",\"verify\":\"verify\",\"version\":\"version\",\"via\":\"via\",\"view\":\"view\",\"violates\":\"violates\",\"virk\":\"Virk\",\"virkdata\":\"VirkData\",\"virkdata_virkdata\":\"Virkdata\",\"visibility\":\"visibility\",\"visible\":\"visible\",\"vision\":\"vision\",\"wait\":\"wait\",\"waiting\":\"Waiting\",\"want\":\"want\",\"warning\":\"warning\",\"warnings\":\"warnings\",\"was\":\"was\",\"wash\":\"wash\",\"washers\":\"washers\",\"washes\":\"washes\",\"washing\":\"washing\",\"water\":\"water\",\"we\":\"we\",\"webhook\":\"webhook\",\"webhooks\":\"webhooks\",\"week\":\"week\",\"weeks\":\"weeks\",\"welcome\":\"Welcome\",\"were\":\"were\",\"when\":\"when\",\"where\":\"where\",\"whether\":\"whether\",\"which\":\"which\",\"while\":\"while\",\"will\":\"will\",\"wishes\":\"wishes\",\"with\":\"with\",\"within\":\"within\",\"without\":\"without\",\"word_00z\":\"00Z\",\"work\":\"work\",\"workfeed\":\"Workfeed\",\"would\":\"would\",\"x\":\"x\",\"xl\":\"XL\",\"xlvask\":\"XLVask\",\"xlvask_xlvask\":\"Xlvask\",\"xlwash\":\"XLWash\",\"year\":\"year\",\"years\":\"years\",\"yes\":\"yes\",\"yet\":\"yet\",\"you\":\"you\",\"your\":\"your\",\"yourself\":\"yourself\",\"zip\":\"ZIP\",\"zip_zip\":\"Zip\",\"zoom\":\"Zoom\"}}");
const templates$3 = /* #__PURE__ */ JSON.parse("{\"support\":{\"title\":\"Support\",\"meta_description\":\"Support and contact information for Truck Wash.\",\"eyebrow\":\"Truck Wash\",\"intro\":\"Contact us if you need help with bookings, self-service wash, payments, or access to the customer portal.\",\"contact_title\":\"Contact\",\"email_label\":\"Email\",\"phone_label\":\"Phone\",\"company_label\":\"Company\",\"help_title\":\"We can help with\",\"help_booking\":\"Booking and changing wash appointments.\",\"help_self_wash\":\"Starting and ending self-service wash sessions.\",\"help_payments\":\"Orders, invoices, and card payments.\",\"help_account\":\"Login, access, and vehicles on your account.\",\"privacy_prefix\":\"Also read our\",\"privacy_link\":\"privacy policy\",\"privacy_suffix\":\"for details about data and rights.\"},\"common\":{\"step_of\":\"@.capitalize:{'words.generated.step'} {current} @:{'words.generated.of'} {total}\",\"page_of\":\"@.capitalize:{'words.generated.page'} {current} @:{'words.generated.of'} {total}\",\"selected_count\":\"{count} @:{'words.generated.selected'}\",\"no_items\":\"@.capitalize:{'words.generated.no'} {entity}\",\"select_entity\":\"@.capitalize:{'words.generated.select'} {entity}\",\"create_entity\":\"@.capitalize:{'words.generated.create'} {entity}\",\"edit_entity\":\"@.capitalize:{'words.generated.edit'} {entity}\",\"delete_entity\":\"@.capitalize:{'words.generated.delete'} {entity}\",\"confirm_delete_entity\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.delete'} {entity}?\",\"field_required\":\"{field} @:{'words.generated.is'} @:{'words.generated.required'}\",\"no_entity_available\":\"@.capitalize:{'words.generated.no'} {entity} @:{'words.generated.available'}.\"},\"limited_backoffice\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.title'}\",\"subtitle\":\"@:{'templates.generated.compat.limited_backoffice.subtitle'}\",\"department\":\"@:{'templates.generated.compat.limited_backoffice.department'}\",\"select_department\":\"@:{'templates.generated.compat.limited_backoffice.select_department'}\",\"loading\":\"@:{'templates.generated.compat.limited_backoffice.loading'}\",\"no_departments\":\"@:{'templates.generated.compat.limited_backoffice.no_departments'}\",\"cancel\":\"@:{'templates.generated.compat.limited_backoffice.cancel'}\",\"nav\":{\"prices\":\"@:{'templates.generated.compat.limited_backoffice.nav.prices'}\",\"customer_pricing\":\"@:{'templates.generated.compat.limited_backoffice.nav.customer_pricing'}\",\"employees\":\"@:{'templates.generated.compat.limited_backoffice.nav.employees'}\"},\"forbidden\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.forbidden.title'}\",\"department\":\"@:{'templates.generated.compat.limited_backoffice.forbidden.department'}\"},\"prices\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.prices.title'}\",\"save\":\"@:{'templates.generated.compat.limited_backoffice.prices.save'}\",\"saved\":\"@:{'templates.generated.compat.limited_backoffice.prices.saved'}\",\"autosave_saving\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_saving'}\",\"autosave_pending\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_pending'}\",\"autosave_saved\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_saved'}\",\"product\":\"@:{'templates.generated.compat.limited_backoffice.prices.product'}\",\"price\":\"@:{'templates.generated.compat.limited_backoffice.prices.price'}\",\"price_required\":\"@:{'templates.generated.compat.limited_backoffice.prices.price_required'}\",\"setup_required_title\":\"@:{'templates.generated.compat.limited_backoffice.prices.setup_required_title'}\",\"setup_required_message\":\"@:{'templates.generated.compat.limited_backoffice.prices.setup_required_message'}\",\"no_products\":\"@:{'templates.generated.compat.limited_backoffice.prices.no_products'}\"},\"employees\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.employees.title'}\",\"subtitle\":\"@:{'templates.generated.compat.limited_backoffice.employees.subtitle'}\",\"create_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.create_title'}\",\"edit_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.edit_title'}\",\"name\":\"@:{'templates.generated.compat.limited_backoffice.employees.name'}\",\"email\":\"@:{'templates.generated.compat.limited_backoffice.employees.email'}\",\"user_id\":\"@:{'templates.generated.compat.limited_backoffice.employees.user_id'}\",\"phone\":\"@:{'templates.generated.compat.limited_backoffice.employees.phone'}\",\"phone_validation\":\"@:{'templates.generated.compat.limited_backoffice.employees.phone_validation'}\",\"country_codes\":{\"denmark\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.denmark'}\",\"sweden\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.sweden'}\",\"norway\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.norway'}\",\"finland\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.finland'}\"},\"password\":\"@:{'templates.generated.compat.limited_backoffice.employees.password'}\",\"password_create_help\":\"@:{'templates.generated.compat.limited_backoffice.employees.password_create_help'}\",\"password_update_help\":\"@:{'templates.generated.compat.limited_backoffice.employees.password_update_help'}\",\"role\":\"@:{'templates.generated.compat.limited_backoffice.employees.role'}\",\"departments\":\"@:{'templates.generated.compat.limited_backoffice.employees.departments'}\",\"department_required\":\"@:{'templates.generated.compat.limited_backoffice.employees.department_required'}\",\"validation\":\"@:{'templates.generated.compat.limited_backoffice.employees.validation'}\",\"save\":\"@:{'templates.generated.compat.limited_backoffice.employees.save'}\",\"created\":\"@:{'templates.generated.compat.limited_backoffice.employees.created'}\",\"saved\":\"@:{'templates.generated.compat.limited_backoffice.employees.saved'}\",\"deactivated\":\"@:{'templates.generated.compat.limited_backoffice.employees.deactivated'}\",\"include_inactive\":\"@:{'templates.generated.compat.limited_backoffice.employees.include_inactive'}\",\"empty\":\"@:{'templates.generated.compat.limited_backoffice.employees.empty'}\",\"status\":\"@:{'templates.generated.compat.limited_backoffice.employees.status'}\",\"actions\":\"@:{'templates.generated.compat.limited_backoffice.employees.actions'}\",\"active\":\"@:{'templates.generated.compat.limited_backoffice.employees.active'}\",\"inactive\":\"@:{'templates.generated.compat.limited_backoffice.employees.inactive'}\",\"edit\":\"@:{'templates.generated.compat.limited_backoffice.employees.edit'}\",\"deactivate\":\"@:{'templates.generated.compat.limited_backoffice.employees.deactivate'}\",\"login_link\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link'}\",\"login_link_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_title'}\",\"login_link_qr_alt\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_qr_alt'}\",\"login_link_url\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_url'}\",\"copy_login_link\":\"@:{'templates.generated.compat.limited_backoffice.employees.copy_login_link'}\",\"login_link_copied\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_copied'}\"},\"roles\":{\"viewer\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.viewer.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.viewer.description'}\"},\"cashier\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.cashier.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.cashier.description'}\"},\"booking_coordinator\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.booking_coordinator.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.booking_coordinator.description'}\"},\"operations_lead\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.operations_lead.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.operations_lead.description'}\"},\"department_admin\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.department_admin.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.department_admin.description'}\"}},\"errors\":{\"load_departments\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_departments'}\",\"load_prices\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_prices'}\",\"save_prices\":\"@:{'templates.generated.compat.limited_backoffice.errors.save_prices'}\",\"load_employees\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}\",\"save_employee\":\"@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}\",\"deactivate_employee\":\"@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}\",\"generate_employee_login_link\":\"@:{'templates.generated.compat.limited_backoffice.errors.generate_employee_login_link'}\"},\"role_permissions\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.title'}\",\"tooltip\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.tooltip'}\",\"intro\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.intro'}\",\"scope\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.scope'}\",\"selected\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.selected'}\",\"close\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.close'}\",\"unavailable\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.unavailable'}\",\"groups\":{\"account\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.account'}\",\"orders\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.orders'}\",\"products\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.products'}\",\"customers\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.customers'}\",\"vehicles\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.vehicles'}\",\"attachments\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.attachments'}\",\"scanner\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.scanner'}\",\"bookings\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.bookings'}\",\"time_bookings\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.time_bookings'}\",\"reports\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.reports'}\",\"limited_backoffice\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}\",\"unknown\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.unknown'}\"},\"capabilities\":{\"sign_in\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}\"},\"view_own_permissions\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}\"},\"view_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}\"},\"create_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}\"},\"edit_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}\"},\"delete_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}\"},\"view_order_items\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}\"},\"create_order_items\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}\"},\"update_order_lines\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}\"},\"remove_order_lines\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}\"},\"charge_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}\"},\"complete_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.complete_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.complete_orders.description'}\"},\"view_product_catalog\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_catalog.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_catalog.description'}\"},\"view_product_recommendations\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_recommendations.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_recommendations.description'}\"},\"search_customers\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_customers.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_customers.description'}\"},\"view_customer_details\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_details.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_details.description'}\"},\"view_customer_notes\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_notes.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_notes.description'}\"},\"add_customer_notes\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_customer_notes.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_customer_notes.description'}\"},\"view_customer_flags\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_flags.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_flags.description'}\"},\"search_vehicles\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_vehicles.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_vehicles.description'}\"},\"view_vehicle_matches\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_matches.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_matches.description'}\"},\"view_vehicle_history\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_history.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_history.description'}\"},\"view_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_attachments.description'}\"},\"add_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_order_attachments.description'}\"},\"download_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.download_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.download_order_attachments.description'}\"},\"view_plate_scans\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_plate_scans.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_plate_scans.description'}\"},\"view_department_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}\"},\"view_own_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}\"},\"update_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}\"},\"create_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}\"},\"mark_bookings_complete\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}\"},\"send_booking_confirmations\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}\"},\"view_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}\"},\"create_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}\"},\"edit_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}\"},\"view_order_statistics\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}\"},\"view_booking_statistics\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}\"},\"open_limited_backoffice\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}\"},\"manage_department_prices\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}\"},\"view_customer_pricing\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_pricing.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_pricing.description'}\"},\"manage_customer_pricing\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_customer_pricing.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_customer_pricing.description'}\"},\"manage_employee_access\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}\"},\"unknown\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}\"}}}},\"redirect\":{\"mobile_department_auto_select\":{\"manual_button\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.department'} @:{'words.generated.manually'}\",\"manual_title\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.your'} @:{'words.generated.department'}\",\"manual_loading\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.departments'}...\",\"use_department\":\"@.capitalize:{'words.generated.select'} {name}\"}},\"replication\":{\"host_targets\":{\"database\":\"@:{'words.replication.services.database'} @:{'words.replication.host'}\",\"redis\":\"@:{'words.replication.services.redis'} @:{'words.replication.host'}\",\"minio\":\"@:{'words.replication.services.minio'} @:{'words.replication.host'}\"},\"host_mentions\":{\"primary_database\":\"@:{'words.replication.adjective.primary_host_mention'} @:{'templates.replication.host_targets.database'}\",\"redis\":\"@:{'templates.replication.host_targets.redis'}\",\"minio\":\"@:{'templates.replication.host_targets.minio'}\"},\"add_host\":\"@.capitalize:{'words.generated.add'} {host}\",\"register_host_when_reachable\":\"@.capitalize:{'words.generated.add'} @:{'words.replication.article.host_mention'} {host} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.superuser'} @:{'words.generated.interface'} @:{'words.generated.when'} @:{'words.generated.it'} @:{'words.generated.is'} @:{'words.generated.reachable'}.\",\"register_host_when_reachable_with_space_requirement\":\"@.capitalize:{'words.generated.add'} @:{'words.replication.article.host_mention'} {host} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.superuser'} @:{'words.generated.interface'} @:{'words.generated.when'} @:{'words.generated.it'} @:{'words.generated.is'} @:{'words.generated.reachable'}. @.capitalize:{'words.generated.provisioning'} @:{'words.generated.requires'} @:{'words.generated.target'} @:{'words.generated.free'} @:{'words.generated.space'} equal @:{'words.generated.to'} @:{'words.generated.source'} @:{'words.generated.bucket'} @:{'words.generated.bytes'} @:{'words.generated.plus'} 20%.\"},\"generated\":{\"compat\":{\"2fa\":{\"back_to_login\":\"@.capitalize:{'words.generated.back'} @:{'words.generated.to'} @.capitalize:{'words.generated.login'}\",\"code_label\":\"@.capitalize:{'words.generated.verification'} @.capitalize:{'words.generated.code'}\",\"description\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.an'} @:{'words.generated.extra'} layer @:{'words.generated.of'} @:{'words.generated.security'} @:{'words.generated.to'} @:{'words.generated.your'} @:{'words.generated.account'} @:{'words.generated.by'} @:{'words.generated.requiring'} @:{'words.generated.a'} @:{'words.generated.verification'} @:{'words.generated.code'} @:{'words.generated.when'} signing @:{'words.generated.in'}.\",\"disable_confirm\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.disable'} @:{'words.generated.two'}-@:{'words.generated.factor'} @:{'words.generated.authentication'}? @.capitalize:{'words.generated.this'} @:{'words.generated.will'} @:{'words.generated.make'} @:{'words.generated.your'} @:{'words.generated.account'} @:{'words.generated.less'} secure.\",\"disable_error_title\":\"@.capitalize:{'words.generated.failed'} @:{'words.generated.to'} @.capitalize:{'words.generated.disable'}\",\"disable_title\":\"@.capitalize:{'words.generated.disable'} @.capitalize:{'words.generated.two'}-@.capitalize:{'words.generated.factor'} @.capitalize:{'words.generated.authentication'}\",\"disabled_message\":\"@.capitalize:{'words.generated.two'}-@:{'words.generated.factor'} @:{'words.generated.authentication'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.disabled'} @:{'words.generated.for'} @:{'words.generated.your'} @:{'words.generated.account'}.\",\"disabled_title\":\"@.capitalize:{'words.generated.two'}-@.capitalize:{'words.generated.factor'} @.capitalize:{'words.generated.authentication'} @.capitalize:{'words.generated.disabled'}\",\"enable_button\":\"@.capitalize:{'words.generated.enable'} @.capitalize:{'words.generated.two'}-@.capitalize:{'words.generated.factor'} @.capitalize:{'words.generated.authentication'}\",\"enabled_message\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.account'} @:{'words.generated.is'} @:{'words.generated.now'} @:{'words.generated.protected'} @:{'words.generated.with'} @:{'words.generated.two'}-@:{'words.generated.factor'} @:{'words.generated.authentication'}.\",\"enabled_title\":\"@.capitalize:{'words.generated.two'}-@.capitalize:{'words.generated.factor'} @.capitalize:{'words.generated.authentication'} @.capitalize:{'words.generated.enabled'}\",\"enter_code\":\"@.capitalize:{'words.generated.enter'} @:{'words.generated.your'} @:{'words.generated.verification'} @:{'words.generated.code'}\",\"invalid_code\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.enter'} @:{'words.generated.a'} @:{'words.generated.valid'} 6-@:{'words.generated.digit'} @:{'words.generated.code'}.\",\"setup_error_title\":\"@.capitalize:{'words.generated.setup'} @.capitalize:{'words.generated.failed'}\",\"setup_manual\":\"@.capitalize:{'words.generated.can'}'@:{'words.generated.t'} @:{'words.generated.scan'}? @.capitalize:{'words.generated.enter'} @:{'words.generated.this'} @:{'words.generated.code'} @:{'words.generated.manually'}:\",\"setup_step1\":\"@.capitalize:{'words.generated.scan'} @:{'words.generated.this'} @:{'words.generated.qr'} @:{'words.generated.code'} @:{'words.generated.with'} @:{'words.generated.your'} @:{'words.generated.authenticator'} @:{'words.generated.app'} (@:{'words.generated.google'} @.capitalize:{'words.generated.authenticator'}, Authy, @:{'words.generated.etc'}.):\",\"setup_step2\":\"@.capitalize:{'words.generated.enter'} @:{'words.replication.article.host_mention'} 6-@:{'words.generated.digit'} @:{'words.generated.code'} @:{'words.generated.from'} @:{'words.generated.your'} @:{'words.generated.authenticator'} @:{'words.generated.app'} @:{'words.generated.to'} @:{'words.generated.verify'}:\",\"setup_title\":\"@.capitalize:{'words.generated.set'} @.capitalize:{'words.generated.up'} @.capitalize:{'words.generated.two'}-@.capitalize:{'words.generated.factor'} @.capitalize:{'words.generated.authentication'}\",\"status_disabled_desc\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.two'}-@:{'words.generated.factor'} @:{'words.generated.authentication'} @:{'words.generated.for'} enhanced @:{'words.generated.security'}.\",\"status_disabled\":\"@.capitalize:{'words.generated.two'}-@.capitalize:{'words.generated.factor'} @.capitalize:{'words.generated.authentication'} @:{'words.generated.is'} @:{'words.generated.disabled'}\",\"status_enabled_desc\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.account'} @:{'words.generated.is'} @:{'words.generated.protected'} @:{'words.generated.with'} @:{'words.generated.an'} @:{'words.generated.additional'} @:{'words.generated.verification'} @:{'words.generated.step'}.\",\"status_enabled\":\"@.capitalize:{'words.generated.two'}-@.capitalize:{'words.generated.factor'} @.capitalize:{'words.generated.authentication'} @:{'words.generated.is'} @:{'words.generated.enabled'}\",\"title\":\"@.capitalize:{'words.generated.two'}-@.capitalize:{'words.generated.factor'} @.capitalize:{'words.generated.authentication'}\",\"verification_success\":\"@.capitalize:{'words.generated.verification'} @:{'words.generated.successful'}!\",\"verify_button\":\"@.capitalize:{'words.generated.verify'}\",\"verify_description\":\"@.capitalize:{'words.generated.enter'} @:{'words.replication.article.host_mention'} 6-@:{'words.generated.digit'} @:{'words.generated.code'} @:{'words.generated.from'} @:{'words.generated.your'} @:{'words.generated.authenticator'} @:{'words.generated.app'}.\",\"verify_title\":\"@.capitalize:{'words.generated.two'}-@.capitalize:{'words.generated.factor'} @.capitalize:{'words.generated.verification'}\"},\"about_us\":{\"solutions\":{\"customer\":{\"app_item1\":\"@.capitalize:{'words.generated.find'} @:{'words.generated.nearest'} @:{'words.generated.wash'} @:{'words.generated.hall'}\",\"app_item2\":\"@.capitalize:{'words.generated.use'} @.capitalize:{'words.generated.self'} @.capitalize:{'words.generated.wash'} @:{'words.generated.outside'} @:{'words.generated.staffed'} @:{'words.generated.opening'} @:{'words.generated.hours'}\",\"app_item3\":\"@.capitalize:{'words.generated.book'} @:{'words.generated.wash'} @:{'words.generated.with'} @:{'words.generated.reference'} @:{'words.generated.number'}\",\"app_item4\":\"@.capitalize:{'words.generated.earn'} @:{'words.generated.loyalty'} @:{'words.generated.points'}\",\"app_title\":\"@.capitalize:{'words.generated.app'} @:{'words.generated.for'} @:{'words.generated.drivers'}\",\"portal_item1\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.and'} @:{'words.generated.manage'} @:{'words.generated.vehicles'}\",\"portal_item3\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.data'} @:{'words.generated.for'} @:{'words.generated.historical'} @:{'words.generated.washes'}\",\"portal_title\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.portal'} @:{'words.generated.for'} @:{'words.generated.dispatchers'} @:{'words.generated.and'} @:{'words.generated.hauliers'}:\",\"title\":\"@.capitalize:{'words.generated.digital'} @:{'words.generated.solutions'} @:{'words.generated.for'} @:{'words.generated.wash'} @:{'words.generated.hall'} @:{'words.generated.customers'}\"},\"operator\":{\"book_demo\":\"@.capitalize:{'words.generated.book'} demo\",\"module_item1\":\"@.capitalize:{'words.generated.set'} @:{'words.generated.prices'}, @:{'words.generated.products'}, @:{'words.generated.opening'} @:{'words.generated.hours'}, @:{'words.generated.employees'}\",\"module_item3\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.customers'} @:{'words.generated.with'} associated @:{'words.generated.license'} @:{'words.generated.plates'}\",\"module_title\":\"@:{'words.generated.control'} @:{'words.generated.module'} @:{'words.generated.for'} @:{'words.generated.wash'} @:{'words.generated.hall'} @:{'words.generated.operators'}:\",\"pos_item1\":\"@.capitalize:{'words.generated.register'} @:{'words.generated.vehicles'} @:{'words.generated.quickly'} @:{'words.generated.by'} @:{'words.generated.scanning'} @:{'words.generated.license'} @:{'words.generated.plate'}\",\"pos_item2\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.images'} @:{'words.generated.and'} @:{'words.generated.reference'} @:{'words.generated.number'} @:{'words.generated.to'} @:{'words.generated.registration'}\",\"pos_item3\":\"@.capitalize:{'words.generated.handle'} @:{'words.generated.bookings'} @:{'words.generated.with'} @:{'words.generated.one'} @:{'words.generated.click'} (@:{'words.generated.incl'}. @:{'words.generated.automatic'} generation @:{'words.generated.of'} @:{'words.generated.wash'} @:{'words.generated.certificate'})\",\"pos_item4\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.wash'} @:{'words.generated.log'} @:{'words.generated.and'} @:{'words.generated.bookings'}\",\"pos_item5\":\"@.capitalize:{'words.generated.see'} dashboards @:{'words.generated.for'} @:{'words.generated.department'} performance\",\"pos_title\":\"@.capitalize:{'words.generated.registration'} @:{'words.generated.and'} @:{'words.generated.pos'} @:{'words.generated.system'} @:{'words.generated.for'} @:{'words.generated.vehicle'} @:{'words.generated.washers'}\",\"title\":\"@.capitalize:{'words.generated.digital'} @:{'words.generated.solutions'} @:{'words.generated.for'} @:{'words.generated.wash'} @:{'words.generated.hall'} @:{'words.generated.operators'}\"},\"title\":\"@.capitalize:{'words.generated.our'} @:{'words.generated.solutions'}\"},\"team\":{\"jeppe\":{\"role\":\"@.upper:{'words.generated.it'} Manager\"},\"mads\":{\"role\":\"CEO\"},\"mikkel\":{\"role1\":\"Founder\",\"role2\":\"Business @.capitalize:{'words.generated.development'}\"},\"title\":\"@.capitalize:{'words.generated.team'}\"},\"vision\":{\"developed_title\":\"@.capitalize:{'words.generated.therefore'} @:{'words.generated.we'} @:{'words.generated.have'} developed:\",\"item1\":\"@.upper:{'words.generated.a'} @:{'words.generated.portal'} @:{'words.generated.for'} @:{'words.generated.hauliers'} @:{'words.generated.and'} @:{'words.generated.dispatchers'} @:{'words.generated.where'} @:{'words.generated.they'} @:{'words.generated.can'} @:{'words.generated.manage'} @:{'words.generated.everything'} @:{'words.generated.about'} their @:{'words.generated.washes'}\",\"item2\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.app'} @:{'words.generated.for'} @:{'words.generated.drivers'} @:{'words.generated.where'} @:{'words.generated.they'} @:{'words.generated.can'} @:{'words.generated.book'}, @:{'words.generated.wash'} @:{'words.generated.and'} @:{'words.generated.earn'} @:{'words.generated.loyalty'} @:{'words.generated.points'}\",\"item3\":\"@.upper:{'words.generated.a'} @:{'words.generated.portal'} @:{'words.generated.for'} @:{'words.generated.wash'} @:{'words.generated.operators'} @:{'words.generated.where'} @:{'words.generated.they'} @:{'words.generated.can'} @:{'words.generated.manage'} @:{'words.generated.all'} aspects @:{'words.generated.of'} @:{'words.generated.running'} @:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.hall'}\",\"item4\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.app'} @:{'words.generated.for'} @:{'words.generated.vehicle'} @:{'words.generated.washers'} @:{'words.generated.where'} @:{'words.generated.they'} @:{'words.generated.can'} @:{'words.generated.register'} @:{'words.generated.vehicles'}, @:{'words.generated.create'} @:{'words.generated.wash'} @:{'words.generated.certificates'}, @:{'words.generated.accept'} @:{'words.generated.payments'} @:{'words.generated.etc'}.\",\"paragraph1\":\"Since 2023, @:{'words.replication.article.host_mention'} @:{'words.generated.team'} @:{'words.generated.behind'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.has'} worked towards @:{'words.replication.article.host_mention'} @:{'words.generated.vision'} @:{'words.generated.of'} @:{'words.generated.creating'} @:{'words.generated.one'} @:{'words.generated.system'} @:{'words.generated.where'} @:{'words.generated.all'} @:{'words.generated.relevant'} workflows @:{'words.generated.for'} @:{'words.generated.truck'} @:{'words.generated.washing'} @:{'words.generated.are'} digitized @:{'words.generated.and'} interconnected @:{'words.generated.to'} ease @:{'words.generated.daily'} life @:{'words.generated.for'} @:{'words.generated.all'} @:{'words.generated.stakeholders'} - @:{'words.generated.hauliers'}, @:{'words.generated.dispatchers'}, @:{'words.generated.drivers'}, @:{'words.generated.wash'} @:{'words.generated.hall'} @:{'words.generated.operators'} @:{'words.generated.and'} @:{'words.generated.vehicle'} @:{'words.generated.washers'}.\",\"paragraph2\":\"@.capitalize:{'words.generated.we'} operate @:{'words.generated.denmark'}'@:{'words.generated.s'} largest chain @:{'words.generated.for'} @:{'words.generated.truck'} @:{'words.generated.washing'} @:{'words.generated.and'} @:{'words.generated.therefore'} @:{'words.generated.have'} deep insight @:{'words.generated.into'} @:{'words.replication.article.host_mention'} industry. @.capitalize:{'words.generated.this'} means @:{'words.generated.we'} @:{'words.generated.can'} develop @.upper:{'words.generated.it'} @:{'words.generated.solutions'} @:{'words.generated.that'} satisfy @:{'words.replication.article.host_mention'} @:{'words.generated.needs'} @:{'words.generated.of'} @:{'words.generated.all'} @:{'words.generated.stakeholders'}\",\"title\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.vision'} @:{'words.generated.behind'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}\"}},\"admin\":{\"bookings\":{\"certificate_overview\":{\"subtitle\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.wash'} @:{'words.generated.certificates'}\",\"title\":\"@.capitalize:{'words.generated.wash'} @.capitalize:{'words.generated.certificate'} @.capitalize:{'words.generated.overview'}\"},\"complete\":{\"subtitle\":\"@.capitalize:{'words.generated.complete'} @:{'words.generated.a'} @:{'words.generated.booking'}\",\"title\":\"@.capitalize:{'words.generated.complete'} @.capitalize:{'words.generated.booking'}\"},\"legacy\":{\"subtitle\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.bookings'} (@:{'words.generated.legacy'})\",\"title\":\"@.capitalize:{'words.generated.bookings'} (@.capitalize:{'words.generated.legacy'})\"}},\"daily_report\":{\"navigation\":{\"title\":\"Navigation\"},\"object\":{\"subtitle\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.daily'} @:{'words.generated.report'} @:{'words.generated.details'}\",\"title\":\"@.capitalize:{'words.generated.daily'} @.capitalize:{'words.generated.report'} @.capitalize:{'words.generated.details'}\"},\"product_sales\":{\"subtitle_suffix\":\"@:{'words.generated.product'} @:{'words.generated.sales'}\",\"title\":\"@.capitalize:{'words.generated.product'} @.capitalize:{'words.generated.sales'}\"},\"product_targets\":{\"cancel_aria\":\"Cancel target\",\"edit_aria\":\"Edit target percentage\",\"input_label\":\"Target percentage\",\"save_aria\":\"Save target\",\"save_error\":\"The target could not be saved.\",\"validation_range\":\"The target percentage must be between 0 and 100.\"},\"reports\":{\"bookings\":{\"completed_count\":\"@.capitalize:{'words.generated.completed'} @:{'words.generated.count'}\",\"possible_count\":\"@.capitalize:{'words.generated.possible'} @:{'words.generated.count'}\"},\"night_washes\":{\"chart_title\":\"@:{'words.generated.night'} @:{'words.generated.washes'} @:{'words.generated.per'} @:{'words.generated.day'}\",\"subtitle\":\"@.capitalize:{'words.generated.washes'} @:{'words.generated.outside'} @:{'words.generated.opening'} @:{'words.generated.hours'}\",\"title\":\"@:{'words.generated.night'} @.capitalize:{'words.generated.washes'}\",\"warning_missing_opening_hours\":\"@.capitalize:{'words.generated.opening'} @:{'words.generated.hours'} @:{'words.generated.missing'} @:{'words.generated.for'}: {departments}\"},\"products_sold\":{\"possible_sold\":\"@.capitalize:{'words.generated.possible'} @:{'words.generated.sold'}\",\"quantity_sold\":\"@.capitalize:{'words.generated.quantity'} @:{'words.generated.sold'}\",\"sold\":\"@.capitalize:{'words.generated.sold'}\",\"subtitle\":\"@:{'words.generated.products'} @:{'words.generated.sold'}\",\"title\":\"@.capitalize:{'words.generated.products'} @:{'words.generated.sold'}\"},\"revenue\":{\"possible_revenue\":\"@.capitalize:{'words.generated.possible'} @:{'words.generated.revenue'}\"},\"transactions\":{\"possible_transactions\":\"@.capitalize:{'words.generated.possible'} @:{'words.generated.transactions'}\",\"subtitle\":\"@:{'words.generated.transactions'}\",\"title\":\"@.capitalize:{'words.generated.transactions'}\",\"transaction_count\":\"@.capitalize:{'words.generated.transaction'} @:{'words.generated.count'}\"},\"washes\":{\"completed_washes\":\"@.capitalize:{'words.generated.completed'} @:{'words.generated.washes'}\",\"possible_washes\":\"@.capitalize:{'words.generated.possible'} @:{'words.generated.washes'}\",\"subtitle\":\"@:{'words.generated.washes'}\"},\"water_usage_per_wash\":{\"avg_water_usage\":\"@.capitalize:{'words.generated.avg'}. @:{'words.generated.water'} @:{'words.generated.usage'} @:{'words.generated.per'} @:{'words.generated.wash'}\",\"subtitle\":\"@:{'words.generated.water'} @:{'words.generated.usage'} @:{'words.generated.per'} @:{'words.generated.wash'}\",\"title\":\"@.capitalize:{'words.generated.water'} @:{'words.generated.usage'} @:{'words.generated.per'} @:{'words.generated.wash'}\"},\"water_usage\":{\"subtitle\":\"@:{'words.generated.water'} @:{'words.generated.usage'}\",\"water_usage\":\"@.capitalize:{'words.generated.water'} @:{'words.generated.usage'}\"}},\"subtitle\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.today'}'@:{'words.generated.s'} @:{'words.generated.report'}\",\"tabs\":{\"previous_report\":\"@.capitalize:{'words.generated.previous'} @:{'words.generated.report'}\",\"todays_report\":\"@.capitalize:{'words.generated.today'}'@:{'words.generated.s'} @:{'words.generated.report'}\"},\"title\":\"Daily Report\",\"titles\":{\"operations\":\"Operations\",\"optional_products\":\"@.capitalize:{'words.generated.optional'} @.capitalize:{'words.generated.products'}\"},\"today_form\":{\"title\":\"@.capitalize:{'words.generated.today'}'@:{'words.generated.s'} @.capitalize:{'words.generated.form'}\"},\"todays_prefix\":\"@.capitalize:{'words.generated.today'}'@:{'words.generated.s'}\",\"update_report\":\"@.capitalize:{'words.generated.update'} @:{'words.generated.report'}\",\"update_todays_report\":\"@.capitalize:{'words.generated.update'} @:{'words.generated.today'}'@:{'words.generated.s'} @:{'words.generated.report'}\"},\"debug\":{\"reader_test\":{\"subtitle\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.reader'} @:{'words.generated.reliability'}\",\"title\":\"@.capitalize:{'words.generated.reader'} @.capitalize:{'words.generated.reliability'} @.capitalize:{'words.generated.test'}\"}},\"department_modules\":{\"bookings\":{\"description\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.bookings'}\"},\"daily_report\":{\"description\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.daily'} @:{'words.generated.report'}\"},\"goals\":{\"description\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.goals'}\"},\"pos\":{\"description\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.pos'} @:{'words.generated.system'}\"},\"self_wash\":{\"description\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.self'} @:{'words.generated.wash'}\",\"disabled\":\"@.capitalize:{'words.generated.self'} @:{'words.generated.wash'} @:{'words.generated.is'} @:{'words.generated.now'} @:{'words.generated.disabled'}\",\"enabled\":\"@.capitalize:{'words.generated.self'} @:{'words.generated.wash'} @:{'words.generated.is'} @:{'words.generated.now'} @:{'words.generated.enabled'}\",\"update_error\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.update'} @:{'words.generated.self'} @:{'words.generated.wash'} @:{'words.generated.status'}\"}},\"errors\":{\"select_department\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.department'} @:{'words.generated.that'} @:{'words.generated.you'} @:{'words.generated.have'} @:{'words.generated.access'} @:{'words.generated.to'}. @.capitalize:{'words.generated.if'} @:{'words.generated.you'} believe @:{'words.generated.this'} @:{'words.generated.is'} @:{'words.generated.an'} @:{'words.generated.error'}, @:{'words.generated.please'} @:{'words.generated.contact'} @:{'words.generated.support'}.\"},\"goals\":{\"form\":{\"edit_title\":\"@.capitalize:{'words.generated.edit'} @.capitalize:{'words.generated.goal'}\",\"target_duration_every\":{\"help\":\"@.capitalize:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.weeks'}, @:{'words.generated.months'}, @:{'words.generated.and'} @:{'words.generated.years'}.\",\"label\":\"@.capitalize:{'words.generated.every'}\",\"placeholder\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 1\"},\"target_duration\":{\"help\":\"@.capitalize:{'words.generated.choose'} @:{'words.generated.how'} @:{'words.generated.target'} values @:{'words.generated.should'} @:{'words.generated.be'} evaluated.\",\"label\":\"@.capitalize:{'words.generated.target'} @:{'words.generated.duration'}\",\"modes\":{\"entire_duration\":\"@.capitalize:{'words.generated.entire'} @:{'words.generated.duration'}\",\"legacy\":\"@.capitalize:{'words.generated.daily'} @:{'words.generated.based'} @:{'words.generated.on'} @:{'words.generated.entire'} @:{'words.generated.duration'} (@:{'words.generated.from'} @:{'words.generated.start'} @:{'words.generated.to'} @:{'words.generated.end'})\",\"months\":\"@.capitalize:{'words.generated.months'}\",\"weeks\":\"@.capitalize:{'words.generated.weeks'}\",\"years\":\"@.capitalize:{'words.generated.years'}\"}},\"title\":\"@.capitalize:{'words.generated.create'} @.capitalize:{'words.generated.goal'}\",\"validation\":{\"date_range_invalid\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.and'} @:{'words.generated.end'} dates @:{'words.generated.are'} @:{'words.generated.invalid'}.\",\"departments_required\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.at'} @:{'words.generated.least'} @:{'words.generated.one'} @:{'words.generated.department'}.\",\"target_duration_every_required\":\"@.capitalize:{'words.generated.enter'} @:{'words.generated.a'} cadence @:{'words.generated.value'} @:{'words.generated.of'} @:{'words.generated.at'} @:{'words.generated.least'} 1.\",\"target_required\":\"@.capitalize:{'words.generated.enter'} @:{'words.generated.a'} @:{'words.generated.valid'} @:{'words.generated.target'} @:{'words.generated.value'}.\"}},\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.department'} @:{'words.generated.goals'}\",\"test_alert\":{\"department_id\":\"@.capitalize:{'words.generated.department'} @.upper:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.slack'} @:{'words.generated.webhook'}\",\"destination\":\"Override @:{'words.generated.destination'}\",\"email_to\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.recipient'}\",\"error\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.send'} @:{'words.generated.test'} @:{'words.generated.alert'}.\",\"send\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.test'} @:{'words.generated.alert'}\",\"slack_help\":\"@:{'words.generated.provide'} @:{'words.generated.a'} @:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'} @:{'words.generated.or'} @:{'words.generated.a'} @:{'words.generated.department'} @.upper:{'words.generated.id'}.\",\"slack_webhook\":\"@:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'}\",\"sms_help\":\"@.capitalize:{'words.generated.use'} comma @:{'words.generated.or'} semicolon @:{'words.generated.to'} @:{'words.generated.separate'} @:{'words.generated.phone'} @:{'words.generated.numbers'}.\",\"sms_to\":\"@:{'words.generated.sms'} recipients\",\"subject\":\"@.capitalize:{'words.generated.email'} subject (@:{'words.generated.optional'})\",\"success\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.alert'} @:{'words.generated.sent'} @:{'words.generated.via'} {destination}.\",\"validation\":{\"email_required\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.recipient'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @.upper:{'words.generated.email'} @:{'words.generated.destination'}.\",\"invalid_destination\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.valid'} @:{'words.generated.destination'}.\",\"slack_target_required\":\"@:{'words.generated.provide'} @:{'words.generated.a'} @:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'} @:{'words.generated.or'} @:{'words.generated.department'} @.upper:{'words.generated.id'} @:{'words.generated.for'} @.upper:{'words.generated.slack'} @:{'words.generated.destination'}.\",\"sms_required\":\"@.capitalize:{'words.generated.at'} @:{'words.generated.least'} @:{'words.generated.one'} @:{'words.generated.sms'} @:{'words.generated.recipient'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.sms'} @:{'words.generated.destination'}.\"}},\"title\":\"@.capitalize:{'words.generated.goals'}\"},\"intranet\":{\"events\":{\"title\":\"@.capitalize:{'words.generated.events'}\"},\"import_events\":{\"title\":\"@.capitalize:{'words.generated.import'} @.capitalize:{'words.generated.events'}\"},\"subtitle\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.intranet'}\",\"title\":\"@.capitalize:{'words.generated.intranet'}\"},\"notifications\":{\"sms_activated_description\":\"Activated @:{'words.generated.phone'} @:{'words.generated.numbers'} @:{'words.generated.will'} @:{'words.generated.receive'} @:{'words.generated.sms'} @:{'words.generated.notifications'} @:{'words.generated.when'} @:{'words.generated.a'} @:{'words.generated.customer'} makes @:{'words.generated.a'} @:{'words.generated.booking'}.\",\"sms_overview\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}'@:{'words.generated.s'} @:{'words.generated.sms'} @:{'words.generated.notification'} @:{'words.generated.phone'} @:{'words.generated.numbers'}.\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.notifications'}\"},\"order_bookings\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.order'} @:{'words.generated.bookings'}\",\"title\":\"@.capitalize:{'words.generated.order'} @.capitalize:{'words.generated.bookings'}\"},\"overview\":{\"reports\":{\"title\":\"@.capitalize:{'words.generated.reports'}\"},\"subtitle\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.overview'}\"},\"pos\":{\"action_buttons\":{\"add_customer_desc\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.customer'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.system'}\",\"cancel_desc\":\"@:{'words.generated.close'} @:{'words.generated.this'} @:{'words.generated.popup'} @:{'words.generated.without'} @:{'words.generated.saving'} @:{'words.generated.changes'}\",\"close_desc\":\"@:{'words.generated.close'} @:{'words.generated.this'} @:{'words.generated.popup'}\",\"confirm_desc\":\"@.capitalize:{'words.generated.confirm'} @:{'words.generated.and'} @:{'words.generated.save'} @:{'words.generated.changes'}\",\"edit_reference\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.reference'}\",\"edit_reference_desc\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.reference'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.transaction'}\",\"select_customer_desc\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.customer'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.transaction'}\"},\"add_customer\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.customer'}\",\"add_more_items\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.more'} @:{'words.generated.items'}\",\"attachment\":\"@.capitalize:{'words.generated.attachment'}\",\"attachments\":\"@:{'words.generated.attachments'}\",\"attachments_add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.attachment'}\",\"attachments_no_preview\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.preview'} @:{'words.generated.available'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.file'} @:{'words.generated.type'}.\",\"attachments_office_preview_unavailable\":\"@.capitalize:{'words.generated.preview'} @:{'words.generated.not'} @:{'words.generated.available'} @:{'words.generated.for'} Office documents. @.capitalize:{'words.generated.please'} @:{'words.generated.download'} @:{'words.generated.to'} @:{'words.generated.view'}.\",\"attachments_upload_action\":\"@:{'templates.generated.compat.common.upload'}\",\"attachments_upload_description\":\"@:{'words.generated.upload'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.file'} @:{'words.generated.as'} @:{'words.generated.an'} @:{'words.generated.attachment'} @:{'words.generated.to'} @:{'words.generated.this'} @:{'words.generated.transaction'}.\",\"attachments_upload_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} @:{'words.generated.uploading'} @:{'words.replication.article.host_mention'} @:{'words.generated.attached'} @:{'words.generated.file'}.\",\"buttons\":{\"delete_all\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.all'}\",\"go_back\":\"@:{'templates.generated.compat.pos.go_back'}\",\"please_wait\":\"@:{'templates.generated.compat.messages.please_wait'}\",\"print_invoice\":\"@:{'words.generated.print'} @.capitalize:{'words.generated.invoice'}\"},\"cancel\":\"@:{'templates.generated.compat.common.cancel'}\",\"cancel_booking_confirm\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.cancel'} @:{'words.replication.article.host_mention'} @:{'words.generated.booking'}?\",\"cart\":\"@.capitalize:{'words.generated.cart'}\",\"company_phone\":\"@.capitalize:{'words.generated.company'} @:{'words.generated.phone'}\",\"contact_email\":\"@.capitalize:{'words.generated.contact'} @:{'words.generated.email'}\",\"contact_phone\":\"@.capitalize:{'words.generated.contact'} @:{'words.generated.phone'}\",\"ean\":\"EAN\",\"created_by\":\"@.capitalize:{'words.generated.created'} @:{'words.generated.by'}\",\"customer_conflict\":{\"help_text\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.typed'} @:{'words.generated.plate'} @:{'words.generated.belongs'} @:{'words.generated.to'} @:{'words.generated.another'} @:{'words.generated.saved'} @:{'words.generated.customer'}. @.capitalize:{'words.generated.choose'} @:{'words.generated.whether'} @:{'words.generated.to'} @:{'words.generated.keep'} @:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.customer'} @:{'words.generated.or'} @:{'words.generated.switch'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.vehicle'} @:{'words.generated.customer'}.\",\"warning_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.customer'} @:{'words.generated.and'} @:{'words.replication.article.host_mention'} @:{'words.generated.matched'} @:{'words.generated.vehicle'} @:{'words.generated.customer'} @:{'words.generated.do'} @:{'words.generated.not'} @:{'words.generated.match'}.\"},\"details\":\"@:{'templates.generated.compat.common.details'}\",\"drafts_assignment\":{\"button\":\"@:{'words.generated.assign'} @:{'words.generated.customer'}\",\"create_invoice_collection\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"customer_required\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.customer'} @:{'words.generated.to'} @:{'words.generated.view'} @:{'words.generated.invoice'} @:{'words.generated.collections'}.\",\"error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} assigning @:{'words.replication.article.host_mention'} @:{'words.generated.customer'}.\",\"invoice_collection_empty\":\"@.capitalize:{'words.generated.no'} unbooked @:{'words.generated.invoice'} @:{'words.generated.collections'} @:{'words.generated.were'} @:{'words.generated.found'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.customer'}.\",\"invoice_collection_label\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"invoice_collection_loading\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.invoice'} @:{'words.generated.collections'}...\",\"invoice_collection_total\":\"@.capitalize:{'words.generated.total'} @:{'words.generated.net'} @:{'words.generated.amount'}\",\"new_collection_description\":\"@.capitalize:{'words.generated.created'} @:{'words.generated.from'} @:{'words.replication.article.host_mention'} @:{'words.generated.drafts'} @:{'words.generated.overview'}\",\"new_collection_name\":\"@:{'words.generated.manual'} @:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"recalculate_prices\":\"Recalculate @:{'words.generated.prices'} @:{'words.generated.with'} @:{'words.generated.customer'} @:{'words.generated.discounts'}\",\"recalculate_prices_help\":\"Applies @:{'words.replication.article.host_mention'} @:{'words.generated.department'} @:{'words.generated.pricing'} @:{'words.generated.and'} @:{'words.generated.any'} @:{'words.generated.customer'} @:{'words.generated.discounts'} @:{'words.generated.to'} @:{'words.generated.all'} @:{'words.generated.order'} @:{'words.generated.lines'}.\",\"search_customer_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.by'} @:{'words.generated.customer'} @:{'words.generated.name'} @:{'words.generated.or'} @:{'words.generated.customer'} @:{'words.generated.number'}\",\"selected_customer\":\"@:{'templates.generated.compat.common.customer_picker.selected_customer'}\",\"subtitle\":\"@.capitalize:{'words.generated.choose'} @:{'words.replication.article.host_mention'} @:{'words.generated.customer'} @:{'words.generated.and'} @:{'words.generated.invoice'} @:{'words.generated.collection'} @:{'words.generated.to'} move @:{'words.generated.draft'} #{orderId} @:{'words.generated.out'} @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @:{'words.generated.draft'} @:{'words.generated.customer'}.\",\"success\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.draft'} @:{'words.generated.customer'} @:{'words.generated.was'} @:{'words.generated.assigned'} @:{'words.generated.successfully'}.\",\"title\":\"@:{'words.generated.assign'} @:{'words.generated.customer'} @:{'words.generated.to'} @:{'words.generated.draft'}\"},\"duplicate_order_warning\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.this'} hasn'@:{'words.generated.t'} @:{'words.generated.already'} @:{'words.generated.been'} written? @.capitalize:{'words.generated.potential'} @:{'words.generated.duplicates'} @:{'words.generated.of'} @:{'words.generated.this'} @:{'words.generated.order'} @:{'words.generated.have'} @:{'words.generated.been'} @:{'words.generated.found'}. @.capitalize:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.continue'} writing @:{'words.replication.article.host_mention'} @:{'words.generated.order'}, @:{'words.generated.or'} @:{'words.generated.view'} @:{'words.generated.order'} @:{'words.generated.details'}.\",\"duplicates\":{\"subtitle\":\"@.capitalize:{'words.generated.handle'} @:{'words.generated.possible'} @:{'words.generated.duplicates'}\"},\"enter_safety_seal_number\":\"@.capitalize:{'words.generated.enter'} @:{'words.generated.safety'} @:{'words.generated.seal'} @:{'words.generated.number'}\",\"hide_order_details\":\"@:{'words.generated.hide'} @:{'words.generated.order'} @:{'words.generated.details'}\",\"invoice_email\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.email'}\",\"make\":\"@.capitalize:{'words.generated.make'}\",\"model\":\"@:{'templates.generated.compat.vehicles.model'}\",\"no_content_available\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.content'} @:{'words.generated.available'}.\",\"no_plates_found\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.license'} @:{'words.generated.plates'} @:{'words.generated.were'} @:{'words.generated.found'}\",\"no_wash_certificate\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"not_found\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.found'}\",\"order_booking_selector\":{\"continue_without_booking\":\"@.capitalize:{'words.generated.continue'} @:{'words.generated.without'} @:{'words.generated.booking'}\",\"help_text\":\"@.capitalize:{'words.generated.multiple'} @:{'words.generated.pending'} @:{'words.generated.bookings'} @:{'words.generated.match'} @:{'words.generated.this'} @:{'words.generated.vehicle'}. @.capitalize:{'words.generated.choose'} @:{'words.replication.article.host_mention'} correct @:{'words.generated.booking'} @:{'words.generated.or'} @:{'words.generated.continue'} @:{'words.generated.without'} @:{'words.generated.one'}.\",\"title\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.booking'}\"},\"order_note\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.note'}\",\"orders\":{\"subtitle\":\"@:{'templates.generated.compat.objects.orders.description'}\"},\"pay_with_stripe\":\"@:{'words.generated.pay'} @:{'words.generated.with'} @:{'words.generated.stripe'}\",\"po_number\":\"@:{'words.generated.po'} @.capitalize:{'words.generated.number'}\",\"price_changed_from\":\"@.capitalize:{'words.generated.price'} @:{'words.generated.changed'} @:{'words.generated.from'} {from} @:{'words.generated.dkk'} @:{'words.generated.to'} {to} @:{'words.generated.dkk'} / @:{'words.generated.unit'} ({total} @:{'words.generated.dkk'} @:{'words.generated.total'})\",\"recent_scan_details_empty\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.vehicle'} @:{'words.generated.details'} @:{'words.generated.are'} @:{'words.generated.available'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.scan'}.\",\"recent_scan_details_error\":\"@.capitalize:{'words.generated.vehicle'} @:{'words.generated.details'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.be'} @:{'words.generated.loaded'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.another'} @:{'words.generated.scan'}.\",\"recent_scan_details_loading\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.vehicle'} @:{'words.generated.details'}...\",\"recent_scans\":\"@.capitalize:{'words.generated.recent'} @:{'words.generated.scans'}\",\"recent_scans_helper\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.license'} @:{'words.generated.plate'} @:{'words.generated.to'} @:{'words.generated.view'} @:{'words.generated.vehicle'} @:{'words.generated.details'}.\",\"reference_cannot_be_empty\":\"@.capitalize:{'words.generated.reference'} @:{'words.generated.cannot'} @:{'words.generated.be'} @:{'words.generated.empty'}\",\"reference_required_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.customer'} @:{'words.generated.requires'} @:{'words.generated.a'} @:{'words.generated.reference'} @:{'words.generated.number'} @:{'words.generated.to'} @:{'words.generated.continue'}. @.capitalize:{'words.generated.please'} @:{'words.generated.enter'} @:{'words.generated.a'} @:{'words.generated.reference'} @:{'words.generated.number'} @:{'words.generated.below'}:\",\"reference_required_title\":\"@.capitalize:{'words.generated.reference'} @:{'words.generated.number'} @:{'words.generated.required'}\",\"reference_required_tooltip\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.customer'} @:{'words.generated.requires'} @:{'words.generated.a'} @:{'words.generated.reference'}.\",\"safety_seal\":\"@.capitalize:{'words.generated.safety'} @.capitalize:{'words.generated.seal'}\",\"scanned\":\"@.capitalize:{'words.generated.scanned'}\",\"scanner\":\"@.capitalize:{'words.generated.scanner'}\",\"see_note\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.note'}\",\"see_reference\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.reference'}\",\"settings\":\"@:{'templates.generated.compat.common.settings'}\",\"settings_wheel\":{\"add_flag\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.flag'}\",\"add_flag_order\":\"@.capitalize:{'words.generated.entire'} @:{'words.generated.order'}\",\"add_flag_order_customer\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.customer'}\",\"add_flag_order_item\":\"@.capitalize:{'words.generated.entire'} @:{'words.generated.order'} @:{'words.generated.item'}\",\"add_flag_order_item_notes\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.item'} @:{'words.generated.notes'}\",\"add_flag_order_item_price\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.item'} @:{'words.generated.price'}\",\"add_flag_order_item_quantity\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.item'} @:{'words.generated.quantity'}\",\"add_flag_order_item_reference\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.item'} @:{'words.generated.reference'}\",\"add_flag_order_notes\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.notes'}\",\"add_flag_order_po\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.po'} @:{'words.generated.number'}\",\"add_flag_order_reference\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.reference'}\",\"add_flag_reason_placeholder\":\"@.capitalize:{'words.generated.reason'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.flag'}\",\"add_flag_reason_required\":\"@.upper:{'words.generated.a'} @:{'words.generated.reason'} @:{'words.generated.is'} @:{'words.generated.required'}.\",\"add_flag_target\":\"@.capitalize:{'words.generated.selected'} @:{'words.generated.item'}\",\"add_gate\":\"@.capitalize:{'words.generated.add'} @.capitalize:{'words.generated.gate'}\",\"add_relay\":\"@.capitalize:{'words.generated.add'} @.capitalize:{'words.generated.relay'}\",\"attach_wash_certificate\":\"@.capitalize:{'words.generated.attach'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"attached_files\":\"@.capitalize:{'words.generated.attached'} @:{'words.generated.files'}\",\"change_association\":\"@.capitalize:{'words.generated.change'} @:{'words.generated.association'}\",\"change_invoice_collection\":\"@.capitalize:{'words.generated.change'} @:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"change_order\":\"@.capitalize:{'words.generated.change'} {order}\",\"copy_link\":\"@.capitalize:{'words.generated.copy'} @:{'words.generated.link'}\",\"delete_booking\":\"@:{'templates.generated.compat.bookings.delete_booking'}\",\"delete_user\":\"@:{'templates.generated.compat.superuser_dashboard.users.delete'}\",\"download_invoice\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.invoice'}\",\"edit_permissions\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.permissions'}\",\"enter_password\":\"@.capitalize:{'words.generated.enter'} @:{'words.generated.password'}\",\"error_changing_password\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} changing @:{'words.replication.article.host_mention'} @:{'words.generated.password'}.\",\"error_downloading_attachment\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} @:{'words.generated.downloading'} @:{'words.replication.article.host_mention'} @:{'words.generated.attached'} @:{'words.generated.file'}.\",\"flags_section\":\"Flags\",\"gates_section\":\"@.capitalize:{'words.generated.gates'}\",\"link_copied\":\"@.capitalize:{'words.generated.link'} @:{'words.generated.copied'} @:{'words.generated.to'} @:{'words.generated.clipboard'}\",\"login_as_customer\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.as'} @:{'words.generated.customer'}\",\"login_as_user\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.as'} @:{'words.generated.user'}\",\"login_as_user_qr\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.as'} @:{'words.generated.user'} (@:{'words.generated.qr'} @:{'words.generated.code'})\",\"no_actions_defined\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.actions'} defined\",\"open_attached_file\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.attached'} @:{'words.generated.file'} #{id}\",\"open_fleet_landing\":\"@.capitalize:{'words.generated.open'} @.capitalize:{'words.generated.fleet'} Landing\",\"open_gates_tab\":\"@.capitalize:{'words.generated.open'} @.capitalize:{'words.generated.gates'} @.capitalize:{'words.generated.tab'}\",\"open_gateways_tab\":\"@.capitalize:{'words.generated.open'} @.capitalize:{'words.generated.gateways'} @.capitalize:{'words.generated.tab'}\",\"open_hardware_workspace_lanes\":\"@.capitalize:{'words.generated.open'} Hardware Workspace (@.capitalize:{'words.generated.lanes'})\",\"open_legacy_gates\":\"@.capitalize:{'words.generated.open'} @.capitalize:{'words.generated.legacy'} @.capitalize:{'words.generated.gates'}\",\"open_legacy_relays\":\"@.capitalize:{'words.generated.open'} @.capitalize:{'words.generated.legacy'} @.capitalize:{'words.generated.relays'}\",\"open_legacy_self_serve\":\"@.capitalize:{'words.generated.open'} @.capitalize:{'words.generated.legacy'} @.capitalize:{'words.generated.self'}-@.capitalize:{'words.generated.serve'}\",\"open_primary_gateway\":\"@.capitalize:{'words.generated.open'} @.capitalize:{'words.replication.adjective.primary_host_mention'} @.capitalize:{'words.generated.gateway'}\",\"open_relays_tab\":\"@.capitalize:{'words.generated.open'} @.capitalize:{'words.generated.relays'} @.capitalize:{'words.generated.tab'}\",\"open_studio\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.studio'}\",\"password_changed\":\"@.capitalize:{'words.generated.password'} @:{'words.generated.changed'}\",\"password_changed_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.password'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.changed'}.\",\"please_enter_password\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.enter'} @:{'words.generated.a'} @:{'words.generated.password'}\",\"relays_section\":\"@.capitalize:{'words.generated.relays'}\",\"rules_section\":\"@:{'templates.generated.compat.modals.rules'}\",\"scan_qr_to_login\":\"@.capitalize:{'words.generated.scan'} @:{'words.replication.article.host_mention'} @:{'words.generated.qr'} @:{'words.generated.code'} @:{'words.generated.to'} @:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.as'} @:{'words.generated.user'}\",\"self_serve_studio_section\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.studio'}\",\"shortcut_pricing\":\"@.capitalize:{'words.generated.pricing'}\",\"shortcuts_section\":\"@.capitalize:{'words.generated.shortcuts'}\",\"show_customer\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.customer'}\",\"show_qr_code\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.qr'} @:{'words.generated.code'}\",\"view_booking_new_tab\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.booking'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}\",\"view_customer_new_tab\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.customer'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}\",\"view_invoice_collection_new_tab\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.invoice'} @:{'words.generated.collection'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}\",\"view_lane_new_tab\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.lane'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}\",\"view_lane_setup_new_tab\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.lane'} @:{'words.generated.setup'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}\",\"view_order_new_tab\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.order'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}\",\"view_vehicle_new_tab\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.vehicle'} {reg} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}\",\"accept_self_serve_wash\":\"Accept self-serve wash\",\"accept_self_serve_wash_confirm\":\"Move this draft to customer #{customerNumber} with the self-serve details?\",\"accept_self_serve_wash_success\":\"The self-serve wash was accepted.\",\"email_notifications_section\":\"Email notifications\",\"resend_booking_completion_confirmation\":\"(Re)send booking completion confirmation\",\"resend_booking_completion_confirmation_error\":\"The booking completion confirmation could not be sent\",\"resend_booking_completion_confirmation_success\":\"The booking completion confirmation has been sent\",\"resend_booking_confirmation\":\"(Re)send booking confirmation\",\"resend_booking_confirmation_error\":\"The booking confirmation could not be sent\",\"resend_booking_confirmation_success\":\"The booking confirmation has been sent\",\"resend_wash_certificate\":\"(Re)send wash certificate\",\"resend_wash_certificate_error\":\"The wash certificate could not be sent\",\"resend_wash_certificate_success\":\"The wash certificate has been sent\",\"self_serve_customer\":\"Customer\",\"self_serve_driver\":\"Driver\",\"self_serve_elapsed\":\"Elapsed\",\"self_serve_wash_attachment\":\"Self-serve wash\",\"self_serve_wash_attachment_for_customer\":\"Self-serve wash for customer #{customerNumber}\"},\"show_details\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.details'}\",\"show_order_details\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.order'} @:{'words.generated.details'}\",\"stripe\":{\"actions\":{\"cancel_payment\":\"@.capitalize:{'words.generated.cancel'} @:{'words.generated.payment'}\",\"delete_payment_intent\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.payment'} @:{'words.generated.intent'}\",\"open_setup\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.stripe'} @:{'words.generated.setup'}\",\"refresh_payment_status\":\"@.capitalize:{'words.generated.refresh'} @:{'words.generated.payment'} @:{'words.generated.status'}\",\"refresh_readers\":\"@.capitalize:{'words.generated.refresh'} @:{'words.generated.readers'}\",\"refresh_setup\":\"@.capitalize:{'words.generated.refresh'} @:{'words.generated.terminal'} @:{'words.generated.setup'}\",\"retry_payment_state\":\"@:{'words.generated.retry'} @:{'words.generated.payment'} @:{'words.generated.state'}\",\"show_payment_details\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.payment'} @:{'words.generated.details'}\"},\"details\":{\"amount_received\":\"@.capitalize:{'words.generated.amount'} @.capitalize:{'words.generated.received'}\",\"metadata\":\"@.capitalize:{'words.generated.metadata'}\",\"payment_intent_id\":\"@.capitalize:{'words.generated.payment'} @.capitalize:{'words.generated.intent'} @.upper:{'words.generated.id'}\"},\"email\":{\"action\":\"@.capitalize:{'words.generated.card'} @:{'words.generated.payment'} (@.capitalize:{'words.generated.email'})\",\"address_placeholder\":\"@:{'words.generated.customer'} [@:{'words.generated.at'}] example.com\",\"errors\":{\"cancel\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.cancel'} @:{'words.replication.article.host_mention'} @:{'words.generated.payment'} @:{'words.generated.link'}.\",\"complete\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.complete'} @:{'words.replication.article.host_mention'} @:{'words.generated.order'}.\",\"load\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.load'} @:{'words.replication.article.host_mention'} @:{'words.generated.payment'} @:{'words.generated.link'} @:{'words.generated.status'}.\",\"send\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.send'} @:{'words.replication.article.host_mention'} @:{'words.generated.payment'} @:{'words.generated.link'}.\"},\"eyebrow\":\"@.capitalize:{'words.generated.online'} @:{'words.generated.payment'}\",\"help\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.a'} @:{'words.generated.stripe'} @:{'words.generated.payment'} @:{'words.generated.invoice'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.customer'} @:{'words.generated.by'} @:{'words.generated.email'}.\",\"invoice_link_label\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.link'}\",\"messages\":{\"active\":\"@.capitalize:{'words.generated.there'} @:{'words.generated.is'} @:{'words.generated.already'} @:{'words.generated.an'} @:{'words.generated.active'} @:{'words.generated.payment'} @:{'words.generated.link'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.order'}.\",\"closed\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.online'} @:{'words.generated.payment'} @:{'words.generated.link'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.closed'}.\",\"paid\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.received'}. @.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.order'} @:{'words.generated.can'} @:{'words.generated.now'} @:{'words.generated.be'} @:{'words.generated.completed'}.\",\"sent\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.payment'} @:{'words.generated.link'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.sent'}. @.capitalize:{'words.generated.status'} @:{'words.generated.updates'} @:{'words.generated.automatically'}.\"},\"states\":{\"open\":\"@:{'words.generated.awaiting'} @:{'words.generated.payment'}\",\"uncollectible\":\"@:{'templates.generated.compat.pos.order.status.uncollectible'}\"}},\"errors\":{\"capture_payment_intent\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.capture'} @:{'words.generated.payment'} @:{'words.generated.intent'}.\",\"create_payment_intent\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.payment'} @:{'words.generated.intent'}.\",\"delete_payment_intent\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.delete'} @:{'words.generated.payment'} @:{'words.generated.intent'}.\",\"load_payment_intent_state\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.load'} @:{'words.generated.payment'} @:{'words.generated.intent'} @:{'words.generated.state'}.\",\"load_readers\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.load'} @:{'words.generated.stripe'} @:{'words.generated.readers'}.\",\"select_reader_before_payment\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.reader'} @:{'words.generated.before'} starting @:{'words.generated.payment'}.\"},\"headings\":{\"card_payment\":\"@.capitalize:{'words.generated.card'} @:{'words.generated.payment'}\",\"terminal\":\"@:{'words.generated.stripe'} @.capitalize:{'words.generated.terminal'}\"},\"messages\":{\"contact_superuser\":\"@.capitalize:{'words.generated.contact'} @:{'words.generated.a'} @:{'words.generated.superuser'} @:{'words.generated.to'} @:{'words.generated.open'} @:{'words.generated.stripe'} @:{'words.generated.setup'} @:{'words.generated.and'} @:{'words.generated.choose'} @:{'words.generated.a'} @:{'words.generated.terminal'} @:{'words.generated.location'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.department'}.\",\"reader_unavailable\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.reader'} @:{'words.generated.is'} @:{'words.generated.currently'} @:{'words.generated.available'}. @.capitalize:{'words.generated.refresh'} @:{'words.replication.article.host_mention'} @:{'words.generated.reader'} @:{'words.generated.list'} @:{'words.generated.or'} @:{'words.generated.wait'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.terminal'} @:{'words.generated.to'} come @:{'words.generated.online'}.\",\"setup_required_title\":\"@.capitalize:{'words.generated.card'} @:{'words.generated.payments'} @:{'words.generated.are'} @:{'words.generated.not'} @:{'words.generated.ready'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.department'}.\",\"waiting_for_reader\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.is'} @:{'words.generated.in'} @:{'words.generated.progress'} @:{'words.generated.on'} @:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.reader'}. @.capitalize:{'words.generated.refresh'} @:{'words.replication.article.host_mention'} @:{'words.generated.state'} @:{'words.generated.if'} @:{'words.replication.article.host_mention'} @:{'words.generated.reader'} @:{'words.generated.has'} @:{'words.generated.already'} @:{'words.generated.collected'} @:{'words.replication.article.host_mention'} @:{'words.generated.card'}.\"},\"reader\":{\"label\":\"@.capitalize:{'words.generated.terminal'}\",\"no_selection\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.terminal'} @:{'words.generated.selected'}\",\"none_available\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.terminals'} @:{'words.generated.available'}\",\"none_ready\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.ready'} @:{'words.generated.terminals'}\",\"select\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.terminal'}\",\"status\":{\"busy\":\"@.capitalize:{'words.generated.in'} @:{'words.generated.use'}\"},\"unavailable_group\":\"@.capitalize:{'words.generated.unavailable'} @:{'words.generated.readers'}\"},\"states\":{\"cancelling\":\"@:{'words.generated.cancelling'} @:{'words.generated.payment'}\",\"capturing\":\"@:{'words.generated.capturing'} @:{'words.generated.payment'}\",\"creating\":\"@.capitalize:{'words.generated.creating'} @:{'words.generated.payment'}\",\"failed\":\"@.capitalize:{'words.generated.action'} @:{'words.generated.needed'}\",\"idle\":\"@.capitalize:{'words.generated.ready'} @:{'words.generated.to'} @:{'words.generated.start'}\",\"reader_unavailable\":\"@.capitalize:{'words.generated.reader'} @:{'words.generated.unavailable'}\",\"ready_to_capture\":\"@.capitalize:{'words.generated.ready'} @:{'words.generated.to'} @:{'words.generated.capture'}\",\"setup_required\":\"@.capitalize:{'words.generated.setup'} @:{'words.generated.required'}\",\"succeeded\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.completed'}\",\"waiting_for_reader\":\"@:{'words.generated.waiting'} @:{'words.generated.for'} @:{'words.generated.reader'}\"},\"tax_profile\":\"@.capitalize:{'words.generated.tax'} @:{'words.generated.profile'}\",\"tax_rates\":{\"danish_customer\":\"Danish @:{'words.generated.customer'}\",\"eu_customer\":\"EU @:{'words.generated.customer'}\"}},\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.manage'} @:{'words.generated.sales'} @:{'words.generated.and'} @:{'words.generated.orders'}\",\"sync\":{\"subtitle\":\"Synchronize @:{'words.generated.orders'} @:{'words.generated.with'} @:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"title\":\"@.capitalize:{'words.generated.synchronization'}\"},\"transaction\":\"@.capitalize:{'words.generated.transaction'}\",\"use\":\"@.capitalize:{'words.generated.use'}\",\"variant\":\"Variant\",\"waiting_for_booking\":\"@:{'words.generated.waiting'} @:{'words.generated.for'} @:{'words.generated.booking'} @:{'words.generated.to'} @:{'words.generated.be'} @:{'words.generated.completed'}\",\"warning\":\"@:{'templates.generated.compat.common.warning'}\",\"wash_certificate\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"wash_certificate_already_attached\":\"@.upper:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.is'} @:{'words.generated.already'} @:{'words.generated.attached'} @:{'words.generated.to'} @:{'words.generated.this'} @:{'words.generated.order'}.\",\"wash_certificate_attached\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.generated'} @:{'words.generated.and'} @:{'words.generated.attached'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.order'}.\",\"wash_certificate_generation_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} generating @:{'words.replication.article.host_mention'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"wash_certificate_item\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.certificate'} item\"},\"self_serve\":{\"condition_rules\":{\"add_question_rule\":\"@:{'templates.generated.compat.modals.add_question_rule'}\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.condition'} @:{'words.generated.rules'}\"},\"conditions\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.condition'}\",\"manage\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.conditions'}\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.conditions'}\"},\"questions\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.question'}\",\"manage\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.questions'}\"},\"select_vehicle_type_first\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.vehicle'} @:{'words.generated.type'} @:{'words.generated.first'}\",\"tasks\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.task'}\",\"manage\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.tasks'}\"},\"try\":\"@.capitalize:{'words.generated.try'}\",\"vehicle_conditions\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.vehicle'} @:{'words.generated.condition'}\",\"filter_by_reg\":\"@.capitalize:{'words.generated.filter'} @:{'words.generated.by'} @:{'words.generated.registration'} @:{'words.generated.number'}\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.vehicle'} @:{'words.generated.conditions'}\"}},\"time_bookings\":{\"new\":{\"subtitle\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.time'} @:{'words.generated.booking'}\",\"title\":\"@.capitalize:{'words.generated.new'} @.capitalize:{'words.generated.time'} @.capitalize:{'words.generated.booking'}\"},\"opening_hours\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.opening'} @:{'words.generated.hours'}\"},\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.time'} @:{'words.generated.bookings'}\",\"title\":\"@:{'templates.generated.compat.department_dashboard.sidebar.time_bookings'}\",\"types\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.booking'} @:{'words.generated.types'}\",\"title\":\"@.capitalize:{'words.generated.booking'} @.capitalize:{'words.generated.types'}\"}},\"wash_lanes\":{\"single\":{\"subtitle\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.lane'} @:{'words.generated.details'}\"},\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.wash'} @:{'words.generated.lanes'}\",\"title\":\"@.capitalize:{'words.generated.wash'} @.capitalize:{'words.generated.lanes'}\"}},\"auth\":{\"country_code\":\"@.capitalize:{'words.generated.country'} @.capitalize:{'words.generated.code'}\",\"customer_login_title\":\"@.capitalize:{'words.generated.customer'} @.capitalize:{'words.generated.login'}\",\"driver_login_title\":\"@.capitalize:{'words.generated.driver'} @.capitalize:{'words.generated.login'}\",\"forgot_password\":\"Forgot @.capitalize:{'words.generated.password'}\",\"operator_tagline\":\"@.capitalize:{'words.generated.truckwash'}.@:{'words.generated.io'} - @:{'words.generated.digital'} @:{'words.generated.solutions'} @:{'words.generated.for'} @:{'words.generated.truck'} @:{'words.generated.washing'}\",\"phone_number\":\"@.capitalize:{'words.generated.phone'} @.capitalize:{'words.generated.number'}\",\"remember_me\":\"Remember Me\",\"terms_acceptance\":\"@.capitalize:{'words.generated.by'} clicking \\\"@.capitalize:{'words.generated.login'}\\\" @:{'words.generated.you'} @:{'words.generated.accept'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.privacy'} policy @:{'words.generated.and'} @:{'words.generated.terms'}\",\"username\":\"@.capitalize:{'words.generated.username'}\",\"your_username\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.username'}\"},\"book_wash\":{\"title_desc\":\"@.capitalize:{'words.generated.book'} @:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.at'} one @:{'words.generated.of'} @:{'words.generated.our'} @:{'words.generated.departments'} - @:{'words.generated.with'} @:{'words.replication.article.host_mention'} option @:{'words.generated.for'} safety seal.\",\"title\":\"@.capitalize:{'words.generated.book'} @.capitalize:{'words.generated.wash'}\"},\"bookings_table\":{\"and_one_other\":\"{name} @:{'words.generated.and'} 1 @:{'words.generated.other'}\",\"and_others\":\"{name} @:{'words.generated.and'} {count} others\",\"no_services\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.services'}\",\"none_registered\":\"@:{'words.generated.none'} @:{'words.generated.registered'}\",\"pcs\":\"pcs\",\"po\":\"@:{'words.generated.po'}\",\"services\":\"@:{'templates.generated.compat.common.services'}\",\"unknown_service\":\"@.capitalize:{'words.generated.unknown'} @:{'words.generated.service'}\",\"wash\":\"@.capitalize:{'words.generated.wash'}\"},\"bookings\":{\"at_time\":\"@:{'words.generated.at'}\",\"booking_number\":\"@.capitalize:{'words.generated.booking'} @:{'words.generated.number'}\",\"cancel_booking\":\"@.capitalize:{'words.generated.cancel'} @:{'words.generated.booking'}\",\"complete_booking\":\"@.capitalize:{'words.generated.complete'} @:{'words.generated.booking'}\",\"confirm_booking\":\"@.capitalize:{'words.generated.confirm'} @:{'words.generated.booking'}\",\"date\":\"@:{'templates.generated.compat.common.date'}\",\"delete_booking\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.booking'}\",\"edit_booking\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.booking'}\",\"expected_at\":\"@.capitalize:{'words.generated.expected'}\",\"new_booking\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.booking'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.by'} @:{'words.generated.booking'} @:{'words.generated.number'}, @:{'words.generated.customer'}\",\"statuses\":{\"confirmed\":\"@.capitalize:{'words.generated.confirmed'}\"},\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.bookings'}\",\"view_booking\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.booking'}\"},\"calendar\":{\"april\":\"April\",\"august\":\"August\",\"day\":\"@.capitalize:{'words.generated.day'}\",\"december\":\"December\",\"february\":\"February\",\"fullcalendar\":{\"allDay\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.day'}\",\"dayHeaderFormat\":\"ddd @:{'words.generated.d'}/M\",\"eventTimeFormat\":\"HH:mm\",\"list\":\"@.capitalize:{'words.generated.list'}\",\"titleFormat\":\"dddd @:{'words.generated.d'}. MMMM YYYY\"},\"january\":\"January\",\"july\":\"July\",\"june\":\"June\",\"march\":\"March\",\"may\":\"@.capitalize:{'words.generated.may'}\",\"monday\":\"@:{'templates.generated.compat.common.days.monday'}\",\"november\":\"November\",\"october\":\"October\",\"saturday\":\"@:{'templates.generated.compat.common.days.saturday'}\",\"september\":\"September\",\"sunday\":\"@:{'templates.generated.compat.common.days.sunday'}\",\"tuesday\":\"@:{'templates.generated.compat.common.days.tuesday'}\",\"week\":\"@:{'templates.generated.compat.common.week'}\"},\"collected_invoice\":{\"move_customer\":{\"card_title\":\"Move to customer\",\"confirm_button\":\"Move\",\"confirm_text\":\"Move invoice collection #{id} and {count} orders to customer #{customer}?\",\"confirm_title\":\"Confirm move\",\"current_customer\":\"Current customer: #{customer}\",\"customer_value\":\"Customer #{customer}\",\"error_title\":\"Could not move invoice collection\",\"invalid_customer\":\"Enter a valid customer number.\",\"locked\":\"Locked\",\"same_customer\":\"Choose another customer than the current one.\",\"success_text\":\"{count} orders were moved to customer #{customer}.\",\"success_title\":\"Invoice collection moved\",\"title\":\"Move invoice collection\"},\"economic\":{\"booked_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.is'} @:{'words.generated.booked'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}, @:{'words.generated.no'} @:{'words.generated.further'} @:{'words.generated.actions'} @:{'words.generated.are'} @:{'words.generated.required'}.\",\"booked_with_economic\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.booked'} @:{'words.generated.with'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"create_invoice\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.invoice'}\",\"draft_customer_blocked_desc\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.invoice'} @:{'words.generated.collection'} @:{'words.generated.uses'} @:{'words.replication.article.host_mention'} @:{'words.generated.configured'} @:{'words.generated.draft'} @:{'words.generated.customer'} @:{'words.generated.and'} @:{'words.generated.cannot'} @:{'words.generated.be'} @:{'words.generated.exported'} @:{'words.generated.to'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"draft_customer_blocked_title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.export'} @:{'words.generated.is'} @:{'words.generated.blocked'}\",\"fixed_price_added\":\"@.capitalize:{'words.generated.fixed'} @:{'words.generated.price'} @:{'words.generated.added'}\",\"fixed_price_added_desc\":\"@.capitalize:{'words.generated.fixed'} @:{'words.generated.price'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.added'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"invoice_create_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} @:{'words.generated.creating'} @:{'words.replication.article.host_mention'} @:{'words.generated.invoice'}.\",\"invoice_created\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.created'}\",\"invoice_created_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.created'} @:{'words.generated.successfully'}.\",\"invoice_sent\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.sent'}\",\"invoice_sent_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.sent'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.customer'}\",\"invoice_split\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.collection'} @:{'words.generated.split'}\",\"invoice_split_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.collection'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.split'} @:{'words.generated.successfully'}.\",\"invoice_split_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} splitting @:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.collection'}.\",\"invoice_unlinked\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.is'} @:{'words.generated.disconnected'}\",\"invoice_unlinked_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.is'} @:{'words.generated.disconnected'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}, @:{'words.generated.be'} @:{'words.generated.aware'} @:{'words.generated.that'} @:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.may'} @:{'words.generated.still'} @:{'words.generated.exist'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"saved_as_draft\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.saved'} @:{'words.generated.as'} @:{'words.generated.draft'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"saved_as_draft_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.is'} @:{'words.generated.saved'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.draft'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.and'} @:{'words.generated.can'} @:{'words.generated.be'} @:{'words.generated.booked'} @:{'words.generated.directly'} @:{'words.generated.there'}.\",\"special_removed\":\"Specielle aftaler fjernet\",\"special_removed_desc\":\"@.capitalize:{'words.generated.special'} @:{'words.generated.agreements'} @:{'words.generated.have'} @:{'words.generated.been'} @:{'words.generated.removed'} @:{'words.generated.from'} @:{'words.replication.article.host_mention'} @:{'words.generated.invoice'}.\",\"split_confirm\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.split'} @:{'words.generated.this'} @:{'words.generated.invoice'} @:{'words.generated.collection'}?\",\"split_yes\":\"@.capitalize:{'words.generated.yes'}, @:{'words.generated.split'}\",\"subscriptions_added\":\"@.capitalize:{'words.generated.subscriptions'} @:{'words.generated.added'}\",\"subscriptions_added_desc\":\"@.capitalize:{'words.generated.vehicle'} @:{'words.generated.subscriptions'} @:{'words.generated.have'} @:{'words.generated.been'} @:{'words.generated.added'} @:{'words.generated.successfully'}.\",\"undo_send\":\"@.capitalize:{'words.generated.undo'} @:{'words.generated.send'}, @:{'words.generated.go'} @:{'words.generated.back'}\",\"unlink_confirm\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.disconnect'} @:{'words.replication.article.host_mention'} @:{'words.generated.invoice'}? @.capitalize:{'words.generated.be'} @:{'words.generated.aware'} @:{'words.generated.that'} @:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.may'} @:{'words.generated.still'} @:{'words.generated.exist'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}. @.capitalize:{'words.generated.you'} @:{'words.generated.must'} @:{'words.generated.delete'} @:{'words.generated.it'} @:{'words.generated.yourself'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.if'} @:{'words.generated.necessary'}.\",\"unlink_yes\":\"@.capitalize:{'words.generated.yes'}, @:{'words.generated.disconnect'} @:{'words.replication.article.host_mention'} @:{'words.generated.invoice'}\",\"use_economic_desc\":\"@.capitalize:{'words.generated.use'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.invoices'}\"},\"stripe\":{\"and_booked\":\"@:{'words.generated.and'} arched\",\"and_saved_draft\":\"og @:{'words.generated.gemt'} @:{'words.generated.som'} @:{'words.generated.kladde'}\",\"booked_with\":\"@:{'words.generated.registered'} @:{'words.generated.with'}\",\"but_not_booked\":\"@:{'words.generated.but'} @:{'words.generated.not'} @:{'words.generated.registered'}\",\"in_economic\":\"@:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"invoice_booked\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.is'} @:{'words.generated.registered'}\",\"invoice_booked_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.is'} @:{'words.generated.registered'} @:{'words.generated.in'} @:{'words.generated.stripe'}\",\"invoice_paid\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.paid'}\",\"invoice_status\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.is'} {status}\",\"not_booked\":\"@:{'words.generated.not'} @:{'words.generated.registered'}\",\"payment_amount\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.amount'}\",\"payment_id\":\"@.capitalize:{'words.generated.payment'} @.upper:{'words.generated.id'}\",\"payment_overview\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.summary'}\",\"payment_status\":\"Payment status\",\"saved_as_draft\":\"@:{'words.generated.gemt'} @:{'words.generated.som'} @:{'words.generated.kladde'} @:{'words.generated.i'}\",\"stripe_fees\":\"@:{'words.generated.stripe'} @:{'words.generated.fees'}\"}},\"common\":{\"about\":\"@.capitalize:{'words.generated.about'}\",\"actions\":\"@.capitalize:{'words.generated.actions'}\",\"active\":\"@.capitalize:{'words.generated.active'}\",\"add\":\"@.capitalize:{'words.generated.add'}\",\"addons\":\"@.capitalize:{'words.generated.add'}-@:{'words.generated.ons'}\",\"address\":\"@.capitalize:{'words.generated.address'}\",\"all\":\"@.capitalize:{'words.generated.all'}\",\"and\":\"@:{'words.generated.and'}\",\"apply\":\"@.capitalize:{'words.generated.apply'}\",\"approved\":\"Approved\",\"approx\":\"@:{'words.generated.approx'}.\",\"are\":\"@:{'words.generated.are'}\",\"back\":\"@.capitalize:{'words.generated.back'}\",\"booking_created\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.booking'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.created'}.\",\"bookings\":\"@.capitalize:{'words.generated.bookings'}\",\"can\":\"@:{'words.generated.can'}\",\"cancel\":\"@.capitalize:{'words.generated.cancel'}\",\"cancelled\":\"@.capitalize:{'words.generated.cancelled'}\",\"city\":\"City\",\"clear\":\"@:{'words.generated.clear'}\",\"click_to_copy\":\"@.capitalize:{'words.generated.click'} @:{'words.generated.to'} @:{'words.generated.copy'}\",\"close\":\"@:{'words.generated.close'}\",\"collapse\":\"Collapse\",\"comment\":\"Comment\",\"comments\":\"Comments\",\"company\":\"@.capitalize:{'words.generated.company'}\",\"completed\":\"@.capitalize:{'words.generated.completed'}\",\"confirm\":\"@.capitalize:{'words.generated.confirm'}\",\"contact\":\"@.capitalize:{'words.generated.contact'}\",\"continue\":\"@.capitalize:{'words.generated.continue'}\",\"copied\":\"@.capitalize:{'words.generated.copied'}\",\"copy_error\":\"@.capitalize:{'words.generated.copy'} @:{'words.generated.error'} @:{'words.generated.message'}\",\"copy\":\"@.capitalize:{'words.generated.copy'}\",\"could\":\"@:{'words.generated.could'}\",\"country\":\"@.capitalize:{'words.generated.country'}\",\"create\":\"@.capitalize:{'words.generated.create'}\",\"created\":\"@.capitalize:{'words.generated.created'}\",\"customer_conflict\":{\"help_text\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.typed'} @:{'words.generated.plate'} @:{'words.generated.belongs'} @:{'words.generated.to'} another saved @:{'words.generated.customer'}. Choose @:{'words.generated.whether'} @:{'words.generated.to'} @:{'words.generated.keep'} @:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.customer'} or switch @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.vehicle'} @:{'words.generated.customer'}.\",\"keep_selected_customer\":\"@.capitalize:{'words.generated.keep'} @:{'words.generated.selected'} @:{'words.generated.customer'}\",\"matched_customer_label\":\"@.capitalize:{'words.generated.vehicle'} @:{'words.generated.customer'}\",\"title\":\"Confirm @:{'words.generated.customer'} @:{'words.generated.for'} @:{'words.generated.plate'}\",\"use_vehicle_customer\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.vehicle'} @:{'words.generated.customer'}\",\"warning_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.customer'} @:{'words.generated.and'} @:{'words.replication.article.host_mention'} @:{'words.generated.matched'} @:{'words.generated.vehicle'} @:{'words.generated.customer'} do @:{'words.generated.not'} match.\"},\"customer_creation_error_generic\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} @:{'words.generated.creating'} @:{'words.replication.article.host_mention'} @:{'words.generated.customer'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.again'}.\",\"customer_creation_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} @:{'words.generated.creating'} @:{'words.replication.article.host_mention'} @:{'words.generated.customer'}: {error}\",\"customer_id\":\"@.capitalize:{'words.generated.customer'} @.upper:{'words.generated.id'}\",\"customer_name\":\"@.capitalize:{'words.generated.customer'} name\",\"customer_note\":\"@.capitalize:{'words.generated.note'} @:{'words.generated.from'} @:{'words.generated.customer'}\",\"customer_notes\":\"@.capitalize:{'words.generated.customer'} notes\",\"customer_number\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.number'}\",\"customer_picker\":{\"select_card_payment\":\"@.capitalize:{'words.generated.payment'} card\",\"select_customer_invoice\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.invoice'}\",\"select_draft_customer\":\"@:{'words.generated.defer'}\",\"select_new_customer\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.customer'}\",\"select_payment_form\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.payment'} form\",\"selected_customer\":\"@.capitalize:{'words.generated.selected'} @:{'words.generated.customer'}\"},\"customer_prices\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.prices'}\",\"customer_wishes\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.wishes'}\",\"customer\":\"@.capitalize:{'words.generated.customer'}\",\"customers\":\"@.capitalize:{'words.generated.customers'}\",\"cut\":\"Cut\",\"dashboard\":\"@.capitalize:{'words.generated.dashboard'}\",\"date\":\"@.capitalize:{'words.generated.date'}\",\"days\":{\"friday\":\"Friday\",\"monday\":\"Monday\",\"saturday\":\"Saturday\",\"sunday\":\"Sunday\",\"thursday\":\"Thursday\",\"tuesday\":\"Tuesday\",\"wednesday\":\"Wednesday\"},\"delete\":\"@.capitalize:{'words.generated.delete'}\",\"department_allocations\":\"@.capitalize:{'words.generated.department'} allocations\",\"department_id\":\"@.capitalize:{'words.generated.department'} @.upper:{'words.generated.id'}\",\"department\":\"@.capitalize:{'words.generated.department'}\",\"departments\":\"@.capitalize:{'words.generated.departments'}\",\"description\":\"Description\",\"details\":\"@.capitalize:{'words.generated.details'}\",\"disabled\":\"@.capitalize:{'words.generated.disabled'}\",\"discount\":\"@.capitalize:{'words.generated.discount'}\",\"done\":\"@.capitalize:{'words.generated.done'}\",\"download\":\"@.capitalize:{'words.generated.download'}\",\"during_the_day\":\"@:{'words.generated.during'} @:{'words.replication.article.host_mention'} @:{'words.generated.day'}\",\"edit\":\"@.capitalize:{'words.generated.edit'}\",\"email\":\"@.capitalize:{'words.generated.email'}\",\"enabled\":\"@.capitalize:{'words.generated.enabled'}\",\"entries_per_page\":\"entries @:{'words.generated.per'} @:{'words.generated.page'}\",\"error_creating_booking\":\"@.capitalize:{'words.generated.error'} @:{'words.generated.creating'} @:{'words.generated.booking'}\",\"error\":\"@.capitalize:{'words.generated.error'}\",\"expand\":\"Expand\",\"expired\":\"Expired\",\"export\":\"@.capitalize:{'words.generated.export'}\",\"failed\":\"@.capitalize:{'words.generated.failed'}\",\"filter\":\"@.capitalize:{'words.generated.filter'}\",\"finish\":\"Finish\",\"first\":\"@.capitalize:{'words.generated.first'}\",\"from\":\"@.capitalize:{'words.generated.from'}\",\"had\":\"had\",\"has\":\"@:{'words.generated.has'}\",\"have\":\"@:{'words.generated.have'}\",\"help\":\"Help\",\"hide\":\"@:{'words.generated.hide'}\",\"home\":\"@.capitalize:{'words.generated.home'}\",\"hour\":\"@.capitalize:{'words.generated.hour'}\",\"import\":\"@.capitalize:{'words.generated.import'}\",\"inactive\":\"Inactive\",\"info\":\"Info\",\"invoice\":\"@.capitalize:{'words.generated.invoice'}\",\"invoices\":\"@.capitalize:{'words.generated.invoices'}\",\"is_dev_on\":\"@.capitalize:{'words.generated.development'} @:{'words.generated.mode'}\",\"is\":\"@:{'words.generated.is'}\",\"language\":\"Language\",\"last_wash\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.wash'}\",\"last\":\"@.capitalize:{'words.generated.last'}\",\"less\":\"@.capitalize:{'words.generated.less'}\",\"loading\":\"@.capitalize:{'words.generated.loading'}...\",\"login\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.in'}\",\"logout\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.out'}\",\"may\":\"@:{'words.generated.may'}\",\"might\":\"might\",\"minute\":\"@.capitalize:{'words.generated.minute'}\",\"month\":\"@.capitalize:{'words.generated.month'}\",\"more\":\"@.capitalize:{'words.generated.more'}\",\"must\":\"@:{'words.generated.must'}\",\"name\":\"@.capitalize:{'words.generated.name'}\",\"new\":\"@.capitalize:{'words.generated.new'}\",\"next_step\":\"@.capitalize:{'words.generated.next'} @:{'words.generated.step'}\",\"next\":\"@.capitalize:{'words.generated.next'}\",\"no\":\"@.capitalize:{'words.generated.no'}\",\"none_registered\":\"None registered\",\"none_services_added\":\"No @:{'words.generated.services'} added yet\",\"none\":\"@:{'templates.generated.compat.common.no'}\",\"not_available\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.available'}\",\"not\":\"@:{'words.generated.not'}\",\"note\":\"@.capitalize:{'words.generated.note'}\",\"notes\":\"@.capitalize:{'words.generated.notes'}\",\"of\":\"@:{'words.generated.of'}\",\"ok\":\"OK\",\"open\":\"@.capitalize:{'words.generated.open'}\",\"optional\":\"@.capitalize:{'words.generated.optional'}\",\"or\":\"@:{'words.generated.or'}\",\"order_cancelled\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.booking'} @:{'words.generated.has'} @:{'words.generated.been'} cancelled\",\"order_created\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.booking'} @:{'words.generated.has'} @:{'words.generated.been'} created.\",\"order_desc\":\"@:{'words.generated.book'} @:{'words.generated.wash'} across @:{'words.replication.article.host_mention'} country\",\"order_id_incorrect\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.booking'} @.upper:{'words.generated.id'} @:{'words.generated.is'} @:{'words.generated.incorrect'}\",\"order_id_required\":\"@.capitalize:{'words.generated.you'} must @:{'words.generated.enter'} @:{'words.replication.article.host_mention'} @:{'words.generated.booking'} @.upper:{'words.generated.id'} @:{'words.generated.to'} @:{'words.generated.complete'} @:{'words.replication.article.host_mention'} @:{'words.generated.wash'} @:{'words.generated.without'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"order_info\":\"@.capitalize:{'words.generated.booking'} Information\",\"order\":\"@.capitalize:{'words.generated.order'}\",\"orders\":\"@.capitalize:{'words.generated.orders'}\",\"page_x_of_y\":\"@.capitalize:{'words.generated.page'} {x} @:{'words.generated.of'} {y}\",\"paste\":\"Paste\",\"pause\":\"Pause\",\"pending\":\"@.capitalize:{'words.generated.pending'}\",\"per_page\":\"@:{'words.generated.per'} @:{'words.generated.page'}\",\"phone\":\"@.capitalize:{'words.generated.phone'}\",\"preview\":\"@.capitalize:{'words.generated.preview'}\",\"previous_step\":\"@.capitalize:{'words.generated.previous'} @:{'words.generated.step'}\",\"previous\":\"@.capitalize:{'words.generated.previous'}\",\"price\":\"@.capitalize:{'words.generated.price'}\",\"print\":\"@:{'words.generated.print'}\",\"privacy\":\"@.capitalize:{'words.generated.privacy'}\",\"processing\":\"@.capitalize:{'words.generated.processing'}\",\"product\":\"@.capitalize:{'words.generated.product'}\",\"products\":\"@.capitalize:{'words.generated.products'}\",\"profile\":\"@.capitalize:{'words.generated.profile'}\",\"quantity\":\"@.capitalize:{'words.generated.quantity'}\",\"redo\":\"Redo\",\"reference\":\"@.capitalize:{'words.generated.reference'}\",\"refresh\":\"@.capitalize:{'words.generated.refresh'}\",\"register\":\"@.capitalize:{'words.generated.register'}\",\"rejected\":\"@.capitalize:{'words.generated.rejected'}\",\"remove\":\"@.capitalize:{'words.generated.remove'}\",\"required\":\"@.capitalize:{'words.generated.required'}\",\"reset\":\"@.capitalize:{'words.generated.reset'}\",\"results\":\"@.capitalize:{'words.generated.results'}\",\"resume\":\"Resume\",\"retry\":\"@.capitalize:{'words.generated.try'} @:{'words.generated.again'}\",\"role\":\"@.capitalize:{'words.generated.role'}\",\"roles\":\"@.capitalize:{'words.generated.roles'}\",\"roless\":{\"admin\":\"@.capitalize:{'words.generated.administrator'}\",\"employee\":\"@.capitalize:{'words.generated.employee'}\",\"manager\":\"@:{'words.generated.leder'}\"},\"save\":\"@.capitalize:{'words.generated.save'}\",\"search_booking\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.booking'}\",\"search_customer_by_number\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.customer'} @:{'words.generated.number'}\",\"search_customer\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.customer'}\",\"search_customers_ellipsis\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.customers'}...\",\"search_customers\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.in'} @:{'words.generated.customers'}\",\"search_cvr\":\"@.capitalize:{'words.generated.search'} CVR @:{'words.generated.number'}...\",\"search_department\":\"@.capitalize:{'words.generated.search'} by @:{'words.generated.department'}\",\"search_departments\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.departments'}...\",\"search_driver\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.driver'}\",\"search_for\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'}\",\"search_license_plate\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.number'} @:{'words.generated.plate'}\",\"search_order\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.order'}\",\"search_phone\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} phone @:{'words.generated.number'}\",\"search_products_ellipsis\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.products'}...\",\"search_products\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.products'}\",\"search_scanners\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} license @:{'words.generated.plate'} scanners\",\"search_subuser\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} subuser\",\"search_transactions\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.in'} transactions\",\"search_user\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} user\",\"search\":\"@.capitalize:{'words.generated.search'}\",\"second\":\"Second\",\"see_more\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.more'}\",\"select\":\"@.capitalize:{'words.generated.select'}\",\"selected\":\"@.capitalize:{'words.generated.selected'}\",\"service\":\"@.capitalize:{'words.generated.service'}\",\"services\":\"@.capitalize:{'words.generated.services'}\",\"settings\":\"@.capitalize:{'words.generated.settings'}\",\"shall\":\"shall\",\"should\":\"@:{'words.generated.should'}\",\"show\":\"@.capitalize:{'words.generated.show'}\",\"sort\":\"@:{'words.generated.sort'}\",\"start\":\"@.capitalize:{'words.generated.start'}\",\"status\":\"@.capitalize:{'words.generated.status'}\",\"stop\":\"Stop\",\"submit\":\"Submit\",\"subtotal\":\"Subtotal\",\"success\":\"Success\",\"support\":\"@.capitalize:{'words.generated.support'}\",\"tax\":\"@.capitalize:{'words.generated.tax'}\",\"terms\":\"@.capitalize:{'words.generated.terms'}\",\"thank_you\":\"@:{'words.generated.thank'} @:{'words.generated.you'}!\",\"time\":\"@.capitalize:{'words.generated.time'}\",\"to\":\"@:{'words.generated.to'}\",\"today\":\"@.capitalize:{'words.generated.today'}\",\"tomorrow\":\"Tomorrow\",\"total\":\"@.capitalize:{'words.generated.total'}\",\"unable_to_load\":\"@.capitalize:{'words.generated.failed'} @:{'words.generated.to'} @:{'words.generated.load'} @:{'words.generated.data'}, @:{'words.generated.but'} @:{'words.generated.no'} @:{'words.generated.errors'} @:{'words.generated.were'} @:{'words.generated.found'}.\",\"undo\":\"@.capitalize:{'words.generated.undo'}\",\"unknown_error\":\"@.capitalize:{'words.generated.unknown'} @:{'words.generated.error'}\",\"unknown\":\"@.capitalize:{'words.generated.unknown'}\",\"unselect\":\"Unselect\",\"update\":\"@.capitalize:{'words.generated.update'}\",\"updated\":\"@.capitalize:{'words.generated.updated'}\",\"upload\":\"@:{'words.generated.upload'}\",\"user\":\"@.capitalize:{'words.generated.user'}\",\"vehicle\":\"@.capitalize:{'words.generated.vehicle'}\",\"vehicles\":\"@.capitalize:{'words.generated.vehicles'}\",\"via\":\"@.capitalize:{'words.generated.via'}\",\"view_booking\":\"View @:{'words.generated.booking'}\",\"view\":\"@.capitalize:{'words.generated.view'}\",\"warning\":\"@.capitalize:{'words.generated.warning'}\",\"was\":\"@:{'words.generated.was'}\",\"week\":\"@.capitalize:{'words.generated.week'}\",\"were\":\"@:{'words.generated.were'}\",\"will\":\"@:{'words.generated.will'}\",\"would\":\"@:{'words.generated.would'}\",\"year\":\"@.capitalize:{'words.generated.year'}\",\"yes\":\"@.capitalize:{'words.generated.yes'}\",\"yesterday\":\"Yesterday\",\"zip\":\"@:{'words.generated.zip'} @:{'words.generated.code'}\"},\"configuration\":{\"backups\":{\"active_jobs\":\"Active jobs\",\"actions\":\"Actions\",\"app_data_enabled\":\"Include app data\",\"app_data_enabled_desc\":\"Back up app-owned object buckets together with the database.\",\"backup\":\"Backup\",\"backup_created\":\"@.capitalize:{'words.generated.backup'} @:{'words.generated.created'}\",\"backup_created_success\":\"@.capitalize:{'words.generated.backup'} @:{'words.generated.created'} @:{'words.generated.successfully'}.\",\"backup_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} @:{'words.generated.creating'} @:{'words.generated.a'} @:{'words.generated.backup'}.\",\"backup_queued\":\"Backup queued\",\"backup_queued_success\":\"The backup job has been queued.\",\"backup_schedule\":\"@.capitalize:{'words.generated.backup'} schedule\",\"backups\":\"Backups\",\"completed_at\":\"Completed\",\"create_backup\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.backup'}\",\"create_backup_confirm\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.a'} @:{'words.generated.backup'}?\",\"delete_backup\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.backup'}\",\"disabled\":\"Disabled\",\"download_backup\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.backup'}\",\"enable_system\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.backup'} @:{'words.generated.system'}\",\"enable_system_desc\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.or'} @:{'words.generated.disable'} @:{'words.replication.article.host_mention'} @:{'words.generated.backup'} @:{'words.generated.system'}.\",\"enabled\":\"Enabled\",\"general_settings_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.general'} @:{'words.generated.settings'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.backup'} @:{'words.generated.system'}.\",\"last_backup\":\"Latest @:{'words.generated.backup'}\",\"latest_backup\":\"Latest backup\",\"latest_verified\":\"Latest verified backup\",\"legacy_backups\":\"Legacy backups\",\"name\":\"Name\",\"no_backups\":\"No backups found.\",\"no_restore_audit\":\"No restore audit entries found.\",\"not_available\":\"Not available\",\"objects\":\"Objects\",\"refresh\":\"Refresh\",\"restore_audit\":\"Restore audit\",\"restore_backup\":\"Restore @:{'words.generated.backup'}\",\"restore_confirm_intro\":\"Restoring a backup will replace the production database and app data. Review the checks and type the exact confirmation phrase before continuing.\",\"restore_confirmation\":\"Confirmation phrase\",\"restore_enabled\":\"Allow production restore\",\"restore_enabled_desc\":\"Allow superusers to queue production restores after preview and typed confirmation.\",\"restore_error\":\"Could not queue the restore job.\",\"restore_queued\":\"Restore queued\",\"restore_queued_success\":\"The restore job has been queued.\",\"restore_reason\":\"Restore reason\",\"restore_state\":\"Restore\",\"restore_state_desc\":\"Production restore requires this setting plus preview confirmation.\",\"restore_validation_error\":\"Enter a reason and the exact confirmation phrase.\",\"retention\":\"Retention\",\"retention_daily_days\":\"Daily retention days\",\"retention_daily_days_desc\":\"Keep one verified backup per day for this many days.\",\"retention_monthly_months\":\"Monthly retention months\",\"retention_monthly_months_desc\":\"Keep one verified backup per month for this many months.\",\"retention_recent_hours\":\"Recent retention hours\",\"retention_recent_hours_desc\":\"Keep all verified backups from this recent hourly window.\",\"retention_weekly_weeks\":\"Weekly retention weeks\",\"retention_weekly_weeks_desc\":\"Keep one verified backup per week for this many weeks.\",\"size\":\"Size\",\"started_at\":\"Started\",\"status\":\"Status\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @:{'words.generated.backup'} @:{'words.generated.system'}.\",\"title\":\"@.capitalize:{'words.generated.backup'} @:{'words.generated.configuration'}\",\"verification_required\":\"Require verification\",\"verification_required_desc\":\"Mark backups as available only after verification succeeds.\",\"verified_at\":\"Verified\",\"verify\":\"Verify\"},\"economic\":{\"admin_fee_desc\":\"@.capitalize:{'words.generated.administration'} @:{'words.generated.and'} @:{'words.generated.environmental'} @:{'words.generated.fee'} @:{'words.generated.settings'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.integration'}.\",\"admin_fee_monthly\":\"@.capitalize:{'words.generated.administration'} @:{'words.generated.fee'} (@:{'words.generated.monthly'})\",\"admin_fee_monthly_desc\":\"@.capitalize:{'words.generated.set'} @:{'words.replication.article.host_mention'} @:{'words.generated.administration'} @:{'words.generated.and'} @:{'words.generated.environmental'} @:{'words.generated.fee'} @:{'words.generated.that'} @:{'words.generated.is'} @:{'words.generated.charged'} @:{'words.generated.monthly'}.\",\"admin_fee_order\":\"@.capitalize:{'words.generated.administration'} @:{'words.generated.fee'} (@:{'words.generated.per'} @:{'words.generated.order'})\",\"admin_fee_order_desc\":\"@.capitalize:{'words.generated.set'} @:{'words.replication.article.host_mention'} @:{'words.generated.administration'} @:{'words.generated.and'} @:{'words.generated.environmental'} @:{'words.generated.fee'} @:{'words.generated.charged'} @:{'words.generated.monthly'} @:{'words.generated.when'} @:{'words.generated.invoiced'} @:{'words.generated.per'} @:{'words.generated.order'}.\",\"admin_fee_title\":\"@.capitalize:{'words.generated.administration'} @:{'words.generated.and'} @:{'words.generated.environmental'} @:{'words.generated.fee'}\",\"agreement_grant_token\":\"@.capitalize:{'words.generated.agreement'} @.capitalize:{'words.generated.grant'} @.capitalize:{'words.generated.token'}\",\"agreement_grant_token_desc\":\"@.capitalize:{'words.generated.your'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.agreement'} @:{'words.generated.grant'} @:{'words.generated.token'}\",\"app_secret_token\":\"@.capitalize:{'words.generated.app'} @.capitalize:{'words.generated.secret'} @.capitalize:{'words.generated.token'}\",\"app_secret_token_desc\":\"@.capitalize:{'words.generated.your'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.app'} @:{'words.generated.secret'} @:{'words.generated.token'}\",\"default_distribution_department_id\":\"@.capitalize:{'words.generated.default'} @:{'words.generated.distribution'} @:{'words.generated.department'}\",\"default_distribution_department_id_desc\":\"@.capitalize:{'words.generated.used'} @:{'words.generated.for'} @:{'words.generated.wash'} @:{'words.generated.agreement'} @:{'words.generated.and'} @:{'words.generated.fixed'}-@:{'words.generated.price'} @:{'words.generated.distribution'} @:{'words.generated.when'} @:{'words.replication.article.host_mention'} @:{'words.generated.customer'} @:{'words.generated.has'} @:{'words.generated.no'} @:{'words.generated.default'} @:{'words.generated.department'}.\",\"env_fee_product_id\":\"@.capitalize:{'words.generated.environmental'} @:{'words.generated.fee'} @:{'words.generated.product'} @.upper:{'words.generated.id'}\",\"env_fee_product_id_desc\":\"@.capitalize:{'words.generated.set'} @:{'words.replication.article.host_mention'} @:{'words.generated.product'} @.upper:{'words.generated.id'} @:{'words.generated.used'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.environmental'} @:{'words.generated.fee'}.\",\"invoice_settings\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.settings'}\",\"invoice_settings_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.configuration'} allows @:{'words.generated.you'} @:{'words.generated.to'} @:{'words.generated.configure'} @:{'words.replication.article.host_mention'} @:{'words.generated.integration'} @:{'words.generated.with'} @:{'words.replication.article.host_mention'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} accounting @:{'words.generated.system'}.\",\"invoice_template\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.template'}\",\"invoice_template_desc\":\"@.capitalize:{'words.generated.select'} @:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.template'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.integration'}.\",\"show_payment_terms\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.payment'} @:{'words.generated.terms'}\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.integration'}\",\"title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.configuration'}\",\"transaction_draft_customer_number\":\"@.capitalize:{'words.generated.transaction'} @:{'words.generated.draft'} @:{'words.generated.customer'} @:{'words.generated.number'}\",\"transaction_draft_customer_number_desc\":\"@.capitalize:{'words.generated.set'} @:{'words.replication.article.host_mention'} @:{'words.generated.customer'} @:{'words.generated.number'} @:{'words.generated.that'} marks @:{'words.generated.orders'} @:{'words.generated.and'} @:{'words.generated.invoice'} @:{'words.generated.collections'} @:{'words.generated.as'} @:{'words.generated.drafts'}. Leave @:{'words.generated.empty'} @:{'words.generated.to'} @:{'words.generated.disable'} @:{'words.replication.article.host_mention'} @:{'words.generated.feature'}.\",\"transaction_draft_desc\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.a'} dedicated @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.customer'} @:{'words.generated.for'} @:{'words.generated.transactions'} @:{'words.generated.that'} @:{'words.generated.should'} remain @:{'words.generated.drafts'} @:{'words.generated.and'} never @:{'words.generated.be'} @:{'words.generated.exported'} @:{'words.generated.automatically'}.\",\"transaction_draft_title\":\"@.capitalize:{'words.generated.transaction'} @:{'words.generated.draft'} @:{'words.generated.customer'}\"},\"email\":{\"enable_mailersend\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.mailersend'}\",\"enable_mailersend_desc\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.or'} @:{'words.generated.disable'} @:{'words.replication.article.host_mention'} @:{'words.generated.mailersend'} @:{'words.generated.integration'}\",\"enable_system\":\"@.capitalize:{'words.generated.enable'} @.capitalize:{'words.generated.email'} @.capitalize:{'words.generated.system'}\",\"enable_system_desc\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.or'} @:{'words.generated.disable'} @:{'words.replication.article.host_mention'} @:{'words.generated.email'} @:{'words.generated.system'}\",\"from_address\":\"@.capitalize:{'words.generated.sender'} @:{'words.generated.address'}\",\"from_email\":\"@.capitalize:{'words.generated.from'} @.capitalize:{'words.generated.email'}\",\"from_email_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.email'} @:{'words.generated.address'} @:{'words.generated.that'} @:{'words.generated.emails'} @:{'words.generated.will'} @:{'words.generated.be'} @:{'words.generated.sent'} @:{'words.generated.from'}\",\"from_name\":\"@.capitalize:{'words.generated.from'} @.capitalize:{'words.generated.name'}\",\"from_name_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.name'} @:{'words.generated.that'} @:{'words.generated.will'} @:{'words.generated.appear'} @:{'words.generated.as'} @:{'words.replication.article.host_mention'} @:{'words.generated.sender'}\",\"general_settings\":\"@.capitalize:{'words.generated.general'} @.capitalize:{'words.generated.settings'}\",\"general_settings_desc\":\"@.capitalize:{'words.generated.general'} @:{'words.generated.email'} @:{'words.generated.settings'}\",\"mailersend_api_key\":\"@:{'words.generated.mailersend'} @:{'words.generated.api'} @.capitalize:{'words.generated.key'}\",\"mailersend_api_key_desc\":\"@:{'templates.generated.compat.configuration.mailersend.api_key_desc'}\",\"mailersend_integration\":\"@:{'words.generated.mailersend'} @.capitalize:{'words.generated.integration'}\",\"mailersend_integration_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.mailersend'} @:{'words.generated.integration'} @:{'words.generated.settings'}\",\"reply_to_email\":\"@:{'words.generated.reply'}-@.capitalize:{'words.generated.to'} @.capitalize:{'words.generated.email'}\",\"reply_to_email_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.email'} @:{'words.generated.address'} @:{'words.generated.that'} @:{'words.generated.replies'} @:{'words.generated.will'} @:{'words.generated.be'} @:{'words.generated.sent'} @:{'words.generated.to'}\",\"reply_to_name\":\"@:{'words.generated.reply'}-@.capitalize:{'words.generated.to'} @.capitalize:{'words.generated.name'}\",\"reply_to_name_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.name'} @:{'words.generated.that'} @:{'words.generated.will'} @:{'words.generated.appear'} @:{'words.generated.for'} @:{'words.generated.replies'}\",\"sender_identity_desc\":\"@.capitalize:{'words.generated.configure'} @:{'words.replication.article.host_mention'} @:{'words.generated.sender'} @:{'words.generated.identity'} @:{'words.generated.for'} @:{'words.generated.outgoing'} @:{'words.generated.emails'}\",\"smtp_encryption\":\"@:{'words.generated.smtp'} @.capitalize:{'words.generated.encryption'}\",\"smtp_encryption_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.encryption'} @:{'words.generated.method'} @:{'words.generated.for'} @:{'words.generated.smtp'}\",\"smtp_host\":\"@:{'words.generated.smtp'} @.capitalize:{'words.replication.host'}\",\"smtp_host_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.smtp'} @:{'words.generated.server'} hostname\",\"smtp_password\":\"@:{'words.generated.smtp'} @.capitalize:{'words.generated.password'}\",\"smtp_password_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.smtp'} @:{'words.generated.authentication'} @:{'words.generated.password'}\",\"smtp_port\":\"@:{'words.generated.smtp'} @.capitalize:{'words.generated.port'}\",\"smtp_port_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.smtp'} @:{'words.generated.server'} @:{'words.generated.port'}\",\"smtp_settings\":\"@:{'words.generated.smtp'} @.capitalize:{'words.generated.settings'}\",\"smtp_settings_desc\":\"@.capitalize:{'words.generated.configure'} @:{'words.generated.smtp'} @:{'words.generated.server'} @:{'words.generated.settings'}\",\"smtp_user\":\"@:{'words.generated.smtp'} @:{'words.generated.user'}\",\"smtp_username\":\"@:{'words.generated.smtp'} @.capitalize:{'words.generated.username'}\",\"smtp_username_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.smtp'} @:{'words.generated.authentication'} @:{'words.generated.username'}\",\"subtitle\":\"@.capitalize:{'words.generated.configure'} @:{'words.generated.email'} @:{'words.generated.settings'}\",\"test_email_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} @:{'words.generated.sending'} @:{'words.replication.article.host_mention'} @:{'words.generated.test'} @:{'words.generated.email'}\",\"test_email_sent\":\"@.capitalize:{'words.generated.test'} @.capitalize:{'words.generated.email'} @.capitalize:{'words.generated.sent'}\",\"test_email_sent_success\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.test'} @:{'words.generated.email'} @:{'words.generated.was'} @:{'words.generated.sent'} @:{'words.generated.successfully'}\",\"title\":\"@.capitalize:{'words.generated.email'} @.capitalize:{'words.generated.configuration'}\"},\"fxrates\":{\"api_key_desc\":\"@.capitalize:{'words.generated.exchange'} @:{'words.generated.rates'} @.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.retrieve'} @:{'words.generated.exchange'} @:{'words.generated.rates'}\",\"api_settings_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}.\",\"conversion_rates\":\"@.capitalize:{'words.generated.exchange'} @:{'words.generated.rates'}\",\"daily_limit\":\"@.capitalize:{'words.generated.daily'} @:{'words.generated.request'} @:{'words.generated.limit'}\",\"daily_limit_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.daily'} @:{'words.generated.request'} @:{'words.generated.limit'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.integration'}.\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.integrationen'}.\",\"get_rates\":\"@.capitalize:{'words.generated.get'} @:{'words.generated.exchange'} @:{'words.generated.rates'}\",\"getting_rates\":\"Retrieves @:{'words.generated.exchange'} @:{'words.generated.rates'} @:{'words.generated.from'} @:{'words.generated.dkk'}\",\"getting_rates_desc\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.wait'} @:{'words.generated.while'} @:{'words.generated.we'} @:{'words.generated.retrieve'} @:{'words.replication.article.host_mention'} @:{'words.generated.exchange'} @:{'words.generated.rates'} @:{'words.generated.from'} @:{'words.generated.dkk'} @:{'words.generated.to'} @:{'words.generated.other'} currencies.\",\"rates_fetched\":\"@.capitalize:{'words.generated.exchange'} @:{'words.generated.rates'} @:{'words.generated.fetched'} @:{'words.generated.successfully'}\",\"rates_fetched_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.exchange'} @:{'words.generated.rates'} @:{'words.generated.have'} @:{'words.generated.been'} retrieved @:{'words.generated.successfully'}.\",\"show_rates\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.exchange'} @:{'words.generated.rates'}\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.configuration'}\",\"update_rates\":\"@.capitalize:{'words.generated.update'} @:{'words.generated.exchange'} @:{'words.generated.rates'}\"},\"general\":{\"currency\":\"@:{'templates.generated.compat.user_admin.currency'}\",\"language\":\"@:{'templates.generated.compat.common.language'}\",\"timezone\":\"Tidssone\",\"title\":\"Generelt\",\"title_desc\":\"De generelle indstillinger @:{'words.generated.for'} FX Rates @:{'words.generated.api'} integrationen.\"},\"integrations\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.integrations'}\"},\"limble\":{\"api_key\":\"@:{'words.generated.api'}-nyckel\",\"api_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.limble'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.limble'} @:{'words.generated.integration'}\",\"api_settings\":\"@:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}\",\"api_settings_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.limble'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}.\",\"client_id\":\"@:{'words.generated.client'} @.upper:{'words.generated.id'}\",\"client_id_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.client'} @.upper:{'words.generated.id'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.connection'}.\",\"client_secret\":\"@:{'words.generated.client'} @.capitalize:{'words.generated.secret'}\",\"client_secret_desc\":\"@:{'words.generated.client'} @:{'words.generated.secret'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.connection'}.\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.to'} @:{'words.generated.limble'} @:{'words.generated.api'} @:{'words.generated.failed'}!\",\"connection_success\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.successful'}\",\"connection_success_desc\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.to'} @:{'words.generated.limble'} @:{'words.generated.api'} @:{'words.generated.was'} @:{'words.generated.successful'}!\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.limble'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.limble'} @:{'words.generated.integrationen'}.\",\"enable_webhooks\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.webhooks'} @:{'words.generated.for'} @:{'words.generated.instant'} @:{'words.generated.sync'}\",\"enable_webhooks_desc\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.or'} @:{'words.generated.disable'} @:{'words.generated.limble'} @:{'words.generated.webhooks'} @:{'words.generated.for'} @:{'words.generated.instant'} @:{'words.generated.sync'}.\",\"general_settings_desc\":\"@:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.limble'} @:{'words.generated.integrationen'}.\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @:{'words.generated.limble'} @:{'words.generated.integration'}\",\"test_connection\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.connection'}\",\"title\":\"@:{'words.generated.limble'} @:{'words.generated.configuration'}\"},\"mailersend\":{\"api_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.mailersend'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.mailersend'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.mailersend'} @:{'words.generated.configuration'}\"},\"motor_api\":{\"api_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.motor'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.motor'} @:{'words.generated.api'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.motor'} @:{'words.generated.api'} @:{'words.generated.configuration'}\"},\"motorapi\":{\"api_settings_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.motorapi'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}.\",\"daily_limit_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.daily'} @:{'words.generated.request'} @:{'words.generated.limit'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.motorapi'} @:{'words.generated.integration'}.\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.motorapi'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.motorapi'} @:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.motorapi'} @:{'words.generated.integrationen'}.\",\"get_license_plate\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.license'} @:{'words.generated.plate'}\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @:{'words.generated.motorapi'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.motorapi'} @:{'words.generated.configuration'}\"},\"products\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.product'}\",\"delete_confirm\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.delete'} @:{'words.generated.this'} @:{'words.generated.product'}?\",\"edit\":\"@:{'templates.generated.compat.products.edit_product'}\"},\"slack\":{\"customer_registration_webhook_url\":\"Customer registration webhook URL\",\"customer_registration_webhook_url_desc\":\"Slack webhook that receives a message when a new customer registration succeeds. Leave empty to disable.\",\"internal_department_goal_progress_save_error\":\"Could not save internal department Slack settings.\",\"internal_department_goal_progress_saved\":\"Internal department Slack settings saved\",\"internal_department_goal_progress_webhook_url\":\"Internal department goal progress webhook URL\",\"internal_department_goal_progress_webhook_url_desc\":\"Slack webhook that receives the combined internal department goal progress summary. Leave empty to disable the combined notification.\",\"internal_departments\":\"Internal departments\",\"internal_departments_desc\":\"Departments selected here are included in the internal goal progress Slack summary.\",\"internal_departments_empty\":\"No departments found.\",\"notification_settings\":\"Notification settings\",\"notification_settings_desc\":\"Slack webhooks for system events.\",\"save_internal_departments\":\"Save internal departments\",\"send_test_webhook\":\"Send test webhook\",\"subtitle\":\"Configuration of Slack notifications\",\"test_customer_registration_webhook\":\"Test customer registration webhook\",\"test_internal_department_goal_progress_webhook\":\"Test internal department goal progress webhook\",\"test_internal_department_goal_progress_webhook_not_configured\":\"Save an internal department goal progress webhook URL before sending a test.\",\"test_internal_department_goal_progress_webhook_sent_success\":\"The Slack internal department goal progress test message was sent.\",\"test_webhook_error\":\"Could not send the Slack test webhook.\",\"test_webhook_not_configured\":\"Save a customer registration webhook URL before sending a test.\",\"test_webhook_sent\":\"Slack test sent\",\"test_webhook_sent_success\":\"The Slack customer registration test message was sent.\",\"title\":\"Slack configuration\",\"unavailable\":\"Slack configuration is not available on this API release.\"},\"shelly\":{\"api_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.shelly'} @:{'words.generated.integration'}\",\"api_settings_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}.\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.to'} @:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.failed'}!\",\"connection_success_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.connection'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.was'} @:{'words.generated.successful'}.\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.shelly'}\",\"enable_desc\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.or'} @:{'words.generated.disable'} @:{'words.replication.article.host_mention'} @:{'words.generated.shelly'} @:{'words.generated.integration'}.\",\"general_settings_desc\":\"@:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.shelly'} @:{'words.generated.integrationen'}.\",\"secret_key\":\"@.capitalize:{'words.generated.secret'} @:{'words.generated.key'} (@:{'words.generated.api'} @:{'words.generated.key'})\",\"secret_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.secret'} @:{'words.generated.key'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.connection'}.\",\"server_url\":\"@.capitalize:{'words.generated.server'} @:{'words.generated.url'}\",\"server_url_desc\":\"@:{'words.generated.url'}'en til @:{'words.generated.shelly'} serveren.\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @:{'words.generated.shelly'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.shelly'} @:{'words.generated.configuration'}\"},\"stripe\":{\"api_key_desc\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.stripe'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.for'} @:{'words.generated.payment'} @:{'words.generated.processing'}\",\"api_settings_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.stripe'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}.\",\"customers\":\"@:{'words.generated.stripe'} @:{'words.generated.customers'}\",\"economic_customer\":\"@:{'words.generated.economic'} @:{'words.generated.customer'} @:{'words.generated.number'}\",\"economic_customer_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.customer'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.store'} @:{'words.generated.stripe'} @:{'words.generated.payments'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.economic'} @:{'words.generated.system'}.\",\"economic_settings\":\"@:{'words.generated.economic'} @:{'words.generated.integration'} @:{'words.generated.settings'}\",\"economic_settings_desc\":\"@.capitalize:{'words.generated.settings'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.integration'} @:{'words.generated.with'} @:{'words.replication.article.host_mention'} @:{'words.generated.economic'} @:{'words.generated.system'}.\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.stripe'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.stripe'} @:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.stripe'} @:{'words.generated.integrationen'}.\",\"get_prices\":\"@.capitalize:{'words.generated.get'} @:{'words.generated.prices'}\",\"get_products\":\"@.capitalize:{'words.generated.get'} @:{'words.generated.products'}\",\"prices\":\"@:{'words.generated.stripe'} priser\",\"products\":\"@:{'words.generated.stripe'} @:{'words.generated.products'}\",\"publishable_key\":\"@.capitalize:{'words.generated.public'} @:{'words.generated.key'}\",\"publishable_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.public'} @:{'words.generated.key'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.connection'}.\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @:{'words.generated.stripe'} @:{'words.generated.integration'}\",\"test_mode\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.mode'}\",\"test_mode_desc\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.test'} @:{'words.generated.mode'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.stripe'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.stripe'} @:{'words.generated.configuration'}\",\"webhook_secret\":\"@.capitalize:{'words.generated.webhook'} @:{'words.generated.secret'}\",\"webhook_secret_desc\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.stripe'} @:{'words.generated.webhook'} @:{'words.generated.secret'} @:{'words.generated.for'} @:{'words.generated.event'} @:{'words.generated.handling'}\"},\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.system'} @:{'words.generated.configuration'}\",\"users\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.users'}\"},\"virkdata\":{\"api_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.virk'} @.capitalize:{'words.generated.data'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.virk'} @.capitalize:{'words.generated.data'} @:{'words.generated.integration'}\",\"api_settings_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.virkdata'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}.\",\"company_selected\":\"@.capitalize:{'words.generated.company'} @:{'words.generated.selected'}\",\"company_selected_desc\":\"Du har valgt {name} ({cvr})\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.virkdata'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.virkdata'} @:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for'} @:{'words.generated.virkdata'} @:{'words.generated.integrationen'}.\",\"monthly_limit\":\"@.capitalize:{'words.generated.monthly'} @:{'words.generated.request'} @:{'words.generated.limit'}\",\"monthly_limit_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.monthly'} @:{'words.generated.request'} @:{'words.generated.limit'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.virkdata'} @:{'words.generated.integration'}.\",\"no_results\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.results'}\",\"no_results_desc\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.companies'} @:{'words.generated.were'} @:{'words.generated.found'} @:{'words.generated.that'} @:{'words.generated.match'} @:{'words.generated.your'} @:{'words.generated.search'}.\",\"search_company\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.company'}\",\"search_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} searching @:{'words.generated.for'} @:{'words.generated.companies'}.\",\"select_company\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.company'}\",\"select_company_required\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.must'} @:{'words.generated.choose'} @:{'words.generated.a'} @:{'words.generated.company'}\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @:{'words.generated.virkdata'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.virkdata'} @:{'words.generated.configuration'}\"},\"workfeed\":{\"api_key\":\"@:{'words.generated.api'} @:{'words.generated.key'}\",\"api_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.generated.requests'} @:{'words.generated.to'} @:{'words.generated.workfeed'}.\",\"api_settings\":\"@:{'templates.generated.compat.configuration.limble.api_settings'}\",\"api_settings_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'} @:{'words.generated.used'} @:{'words.generated.for'} @:{'words.generated.workfeed'} @:{'words.generated.requests'}.\",\"api_url\":\"@:{'words.generated.api'} @:{'words.generated.url'}\",\"api_url_desc\":\"@.capitalize:{'words.replication.article.host_mention'} base @:{'words.generated.url'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.workfeed'} @:{'words.generated.api'}.\",\"close\":\"@:{'templates.generated.compat.common.close'}\",\"company_id\":\"@.capitalize:{'words.generated.company'} @.upper:{'words.generated.id'}\",\"company_id_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.workfeed'} @:{'words.generated.company'} identifier @:{'words.generated.used'} @:{'words.generated.for'} @:{'words.generated.api'} @:{'words.generated.synchronization'}.\",\"diagnostics\":{\"description\":\"@.capitalize:{'words.generated.run'} @:{'words.generated.test'} @:{'words.generated.lookups'} @:{'words.generated.against'} @:{'words.replication.article.host_mention'} @:{'words.generated.workfeed'} @:{'words.generated.integration'} @:{'words.generated.endpoints'}.\",\"get_employee\":\"@.capitalize:{'words.generated.get'} @:{'words.generated.employee'} @:{'words.generated.by'} @.upper:{'words.generated.id'}\",\"get_shift\":\"@.capitalize:{'words.generated.get'} @:{'words.generated.shift'} @:{'words.generated.by'} @.upper:{'words.generated.id'}\",\"list_departments\":\"@.capitalize:{'words.generated.list'} @:{'words.generated.departments'}\",\"list_employees\":\"@.capitalize:{'words.generated.list'} @:{'words.generated.employees'}\",\"list_shifts\":\"@.capitalize:{'words.generated.list'} shifts\",\"no_params_required\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.query'} parameters @:{'words.generated.are'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.lookup'}.\",\"placeholder_employee_id\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. emp_01J5P2F2A0CQKBBX4P8M3Y7R5P\",\"placeholder_released\":\"@:{'words.generated.true'} @:{'words.generated.or'} @:{'words.generated.false'}\",\"placeholder_search\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. north facility\",\"placeholder_shift_id\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. shf_01J5P3X9D35R9C6BDZ1S0R4V6Q\",\"placeholder_start_from\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 2026-03-24T00:00:@:{'words.generated.word_00z'}\",\"placeholder_start_to\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 2026-03-25T00:00:@:{'words.generated.word_00z'}\",\"placeholder_status\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. published\",\"prompt_employee_id\":\"@.capitalize:{'words.generated.employee'} @.upper:{'words.generated.id'}\",\"prompt_employee_id_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.employee'} @.upper:{'words.generated.id'}\",\"prompt_released_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.released'} @:{'words.generated.filter'} (@:{'words.generated.true'}/@:{'words.generated.false'})\",\"prompt_search_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.search'} @:{'words.generated.text'}\",\"prompt_shift_id\":\"@.capitalize:{'words.generated.shift'} @.upper:{'words.generated.id'}\",\"prompt_start_from\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.start'} @:{'words.generated.from'} (@:{'words.generated.iso'} 8601)\",\"prompt_start_to\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.start'} @:{'words.generated.to'} (@:{'words.generated.iso'} 8601)\",\"prompt_status_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.shift'} @:{'words.generated.status'}\",\"result_departments\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"result_employee\":\"@.capitalize:{'words.generated.employee'} @:{'words.generated.result'}\",\"result_employees\":\"@.capitalize:{'words.generated.employee'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"result_shift\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.result'}\",\"result_shifts\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"select_employee_all\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.employees'}\",\"select_released_all\":\"@.capitalize:{'words.generated.all'} release states\",\"select_released_false\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.released'} @:{'words.generated.only'}\",\"select_released_true\":\"@.capitalize:{'words.generated.released'} @:{'words.generated.only'}\",\"title\":\"@.capitalize:{'words.generated.diagnostics'}\",\"validation_datetime_invalid\":\"@.capitalize:{'words.generated.invalid'} @:{'words.generated.date'}-@:{'words.generated.time'} @:{'words.generated.value'}.\",\"validation_released_boolean\":\"@.capitalize:{'words.generated.released'} @:{'words.generated.must'} @:{'words.generated.be'} either @:{'words.generated.true'} @:{'words.generated.or'} @:{'words.generated.false'}.\",\"validation_shift_range_required\":\"startFrom @:{'words.generated.and'} startTo @:{'words.generated.are'} @:{'words.generated.required'}.\"},\"enable\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.workfeed'}\",\"enable_desc\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.or'} @:{'words.generated.disable'} @:{'words.replication.article.host_mention'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.general'} @:{'words.generated.settings'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}.\",\"lookup\":\"@.capitalize:{'words.generated.lookup'}\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.workfeed'} @:{'words.generated.configuration'}\",\"validation_required\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.field'} @:{'words.generated.is'} @:{'words.generated.required'}.\"},\"xlvask\":{\"api_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.xl'} @:{'words.generated.vask'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.xl'} @:{'words.generated.vask'} @:{'words.generated.integration'}\",\"api_settings_desc\":\"@:{'words.generated.xlwash'} @:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}.\",\"automation_settings\":\"Automation\",\"automation_settings_desc\":\"@:{'words.generated.control'} @:{'words.generated.automatic'} @:{'words.generated.order'} @:{'words.generated.attachment'} @:{'words.generated.and'} @:{'words.generated.creation'} @:{'words.generated.from'} @:{'words.generated.selvvask'}.\",\"connection_failed\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.failed'}\",\"connection_failed_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.connection'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.failed'}.\",\"connection_success_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.connection'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.was'} @:{'words.generated.successful'}.\",\"enable\":\"@:{'words.generated.activate'} @:{'words.generated.xlwash'}\",\"enable_automatic_attachment\":\"@.capitalize:{'words.generated.automatic'} @:{'words.generated.order'} @:{'words.generated.attachment'}\",\"enable_automatic_attachment_desc\":\"@.capitalize:{'words.generated.automatically'} @:{'words.generated.attach'} @:{'words.generated.confident'} @:{'words.generated.selvvask'} @:{'words.generated.matches'} @:{'words.generated.to'} existing @:{'words.generated.orders'}.\",\"enable_automatic_creation\":\"@.capitalize:{'words.generated.automatic'} @:{'words.generated.order'} @:{'words.generated.creation'}\",\"enable_automatic_creation_desc\":\"@.capitalize:{'words.generated.automatically'} @:{'words.generated.create'} @:{'words.generated.confident'} @:{'words.generated.selvvask'} @:{'words.generated.orders'} @:{'words.generated.when'} @:{'words.replication.article.host_mention'} @:{'words.generated.wash'} @:{'words.generated.is'} @:{'words.generated.more'} @:{'words.generated.than'} 6 @:{'words.generated.hours'} @:{'words.generated.old'}.\",\"enable_desc\":\"@:{'words.generated.activate'} @:{'words.generated.or'} @:{'words.generated.deactivate'} @:{'words.replication.article.host_mention'} @:{'words.generated.xlvask'} @:{'words.generated.integration'}.\",\"enable_openai_integration\":\"@:{'words.generated.openai'} suggestions\",\"enable_openai_integration_desc\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.openai'} @:{'words.generated.to'} suggest @:{'words.generated.attachment'} @:{'words.generated.or'} @:{'words.generated.creation'} @:{'words.generated.when'} @:{'words.generated.fixed'} @:{'words.generated.rules'} @:{'words.generated.are'} @:{'words.generated.not'} @:{'words.generated.confident'} @:{'words.generated.enough'}.\",\"enable_sync\":\"@:{'words.generated.aktiver'} automatisk synkronisering\",\"enable_sync_desc\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.or'} @:{'words.generated.disable'} @:{'words.generated.xlwash'} @:{'words.generated.automatic'} @:{'words.generated.synchronization'}.\",\"general_settings_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.general'} @:{'words.generated.settings'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.xlvask'} @:{'words.generated.integration'}.\",\"password_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.password'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.connection'}.\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @:{'words.generated.xlvask'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.xlvask'} @:{'words.generated.configuration'}\",\"username_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.username'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.connection'}.\"},\"release_manager\":{\"integrations\":{\"title\":\"GitHub and Coolify\",\"subtitle\":\"Map GitHub repositories and branches to channel-specific Coolify services.\",\"choose_repository\":\"Choose repository\",\"add_health_url\":\"add health URL\",\"github_token_not_configured\":\"GitHub token is not configured; private repositories cannot be listed.\",\"open_github_token_settings\":\"Open GitHub token settings\",\"channel\":\"Channel\",\"app\":\"App\",\"repository\":\"Repository\",\"repository_message\":\"Example: truckwash/backend-php\",\"repository_placeholder\":\"owner/repo\",\"branch\":\"Branch\",\"branch_message\":\"Example: release/canary\",\"branch_placeholder\":\"branch\",\"latest_prefix\":\"Latest: {commit}\",\"coolify_instance\":\"Coolify instance\",\"coolify_instance_message\":\"Leave empty for manual deployment records.\",\"no_coolify_instance\":\"No Coolify instance\",\"coolify_instance_placeholder\":\"Coolify instance id\",\"coolify_service_uuid\":\"Coolify service UUID\",\"coolify_service_uuid_message\":\"Select an existing service or paste a UUID.\",\"coolify_service_uuid_placeholder\":\"Coolify service UUID\",\"health_url\":\"Health URL\",\"health_url_message\":\"Example: https://api-canary.example.test/ping\",\"health_url_placeholder\":\"Health URL\",\"ssl_domain\":\"Load balancer domain\",\"ssl_domain_message\":\"Must be a DNS domain routed to the Coolify load balancer. Example: api-v2.truckwash.io\",\"ssl_domain_placeholder\":\"Load balancer domain\",\"https_domain_for_coolify\":\"Domain controlled by the load balancer\",\"endpoint_mode\":\"Endpoint mode\",\"endpoint_mode_message\":\"Use automatic gateway routing or manually override the public host and port.\",\"endpoint_mode_auto\":\"Auto\",\"endpoint_mode_manual\":\"Manual\",\"manual_endpoint_host\":\"Manual host\",\"manual_endpoint_host_message\":\"Public host shown in release previews when manual mode is selected.\",\"manual_endpoint_host_placeholder\":\"api-v2.truckwash.io\",\"manual_endpoint_port\":\"Manual public port\",\"manual_endpoint_port_message\":\"Optional public port from 1 to 65535.\",\"app_port\":\"App port\",\"app_port_message\":\"Internal container port exposed to Coolify routing.\",\"auto_gateway_endpoint\":\"Automatic gateway endpoint\",\"pending_automatic_endpoint\":\"Automatic endpoint resolution pending\",\"auto_deploy\":\"Auto deploy\",\"auto_deploy_tooltip\":\"Automatically create deployments when this target changes.\",\"coolify_ssl\":\"Coolify SSL\",\"coolify_ssl_tooltip\":\"Ask Coolify to provision HTTPS for the configured domain.\",\"deploy_now\":\"Deploy now\",\"deploy_now_tooltip\":\"Start a deployment immediately after saving the target.\",\"create_missing_service\":\"Create missing service\",\"create_missing_service_tooltip\":\"Allow Release Manager to create a missing Coolify service.\",\"test_access_tooltip\":\"Verify the configured GitHub token can read this repository and branch.\"},\"title\":\"Release Manager\",\"subtitle\":\"Gradual API and Front-End releases\",\"channel_names\":{\"stable\":\"Stable\",\"canary\":\"Canary\",\"internal\":\"Internal\"},\"channel_descriptions\":{\"stable\":\"Default production channel.\",\"canary\":\"Early production validation channel.\",\"internal\":\"Internal staff and superuser validation channel.\"},\"control_api\":{\"title\":\"Control API\",\"tooltip\":\"Release Manager actions are sent to this API. Use the production control API unless testing a staged backend.\",\"example\":\"Example: https://api.truckwash.io:4433\",\"endpoint_label\":\"API endpoint\",\"endpoint_message\":\"Switch this only when Release Manager endpoints are available on the target API.\",\"endpoint_aria\":\"Release Manager control API URL\",\"use_tooltip\":\"Load release data from this API\",\"use\":\"Use\",\"reset_tooltip\":\"Return to the default control API\",\"reset\":\"Reset\",\"known_endpoints\":\"Known control API endpoints\"},\"tabs\":{\"overview\":{\"label\":\"Overview\",\"description\":\"Channel health, setup progress, and the latest release state.\"},\"channels\":{\"label\":\"Channels\",\"description\":\"Create stable, canary, and targeted channels with rollout limits.\"},\"assignments\":{\"label\":\"Assignments\",\"description\":\"Pin users, subusers, or customers to a specific release channel.\"},\"deployments\":{\"label\":\"Deployments\",\"description\":\"Trigger deployments and promote successful builds.\"},\"replay\":{\"label\":\"Replay\",\"description\":\"Enable targeted capture and search release timeline events.\"},\"integrations\":{\"label\":\"Integrations\",\"description\":\"Connect GitHub repositories, branches, and Coolify services.\"},\"settings\":{\"label\":\"Settings\",\"description\":\"Configure Release Manager GitHub access and webhook settings.\"}},\"loading\":{\"summary\":\"Loading release manager data...\",\"refreshing_summary\":\"Refreshing release manager data...\",\"summary_detail\":\"Release status, channels, deployments, and service health are being loaded.\",\"channels\":\"Loading release channels...\",\"channels_detail\":\"Channel lanes and release dependencies are being loaded.\",\"assignments\":\"Loading release assignments...\",\"deployments\":\"Loading release deployments...\",\"operations\":\"Loading release operations...\",\"data_services\":\"Loading release data services...\",\"integrations\":\"Loading release integrations...\",\"settings\":\"Loading Release Manager settings...\",\"github_repositories\":\"Loading GitHub repositories...\",\"timeline_sessions\":\"Loading release timeline sessions...\",\"timeline_events\":\"Loading release timeline events...\",\"refreshing_timeline\":\"Refreshing release timeline...\"},\"setup\":{\"channels\":\"Channels\",\"targets\":\"GitHub and Coolify targets\",\"assignments\":\"Pilot assignments\",\"deployments\":\"First deployment\",\"replay\":\"Replay capture\"},\"stats\":{\"channels\":\"Channels\",\"targets\":\"Targets\",\"deployments\":\"Deployments\",\"timeline_events\":\"Timeline events\"},\"overview\":{\"title\":\"Overview\",\"subtitle\":\"Current channel health, release activity, and module status.\",\"guided_setup\":\"Guided setup\",\"next_step\":\"Next: {step}\",\"ready\":\"Release Manager is ready for day-to-day operations.\",\"add_suggested_channel\":\"Add suggested channel\",\"module_health_empty\":\"Module health snapshots appear after probes have been recorded.\"},\"status\":{\"confirm_issue_action\":\"Run this Release Manager action? It can change deployment state and will be audited.\",\"choose_bundle_prompt\":\"Enter the bundle id to set for this channel.\",\"impact\":\"Impact\",\"cause\":\"Cause\",\"automated_fix\":\"Automated fix\",\"manual_fallback\":\"Manual fallback\",\"related_deployment\":\"Related deployment\",\"recent_result\":\"Recent result\",\"no_automated_action\":\"No automated action available.\",\"deployment\":\"Deployment\",\"target\":\"Target\",\"coolify_target\":\"Coolify target\",\"service_set\":\"Service set\"},\"settings\":{\"title\":\"Release Manager Settings\",\"subtitle\":\"Configure the GitHub token used for private repositories and branch lookups.\",\"github_token\":\"GitHub token\",\"github_api_url\":\"GitHub API URL\",\"webhook_secret\":\"Webhook secret\",\"github_webhook_secret\":\"GitHub webhook secret\",\"configured\":\"Configured\",\"not_configured\":\"Not configured\",\"loaded_from\":\"Loaded from {variable}\",\"set_below\":\"Set {variable} below\",\"private_repositories_prefix\":\"Private repositories are read with the server environment variable\",\"private_repositories_or\":\"or the module config variable\",\"github_token_message\":\"Example: github_pat_... with access to the private repositories Release Manager deploys.\",\"github_token_placeholder\":\"Leave blank to keep the existing token\",\"github_api_url_message\":\"Configured in ReleaseManager.github_api_url. Use https://api.github.com unless using GitHub Enterprise.\",\"webhook_secret_message\":\"Optional; leave blank to keep the existing secret.\",\"webhook_secret_placeholder\":\"Webhook HMAC secret\",\"save\":\"Save settings\",\"back_to_integrations\":\"Back to integrations\",\"guide\":{\"steps\":{\"github_token\":\"GitHub token\",\"github_api_url\":\"GitHub API URL\",\"github_webhook_secret\":\"GitHub webhook secret\",\"review\":\"Review\"},\"github_token_title\":\"Add GitHub token\",\"github_token_description\":\"Release Manager uses this token to list private repositories, branches, and commits before a deployment target is saved or tested.\",\"configure_this_in\":\"Configure this in\",\"server_environment_variable\":\"The server environment variable\",\"takes_precedence\":\"takes precedence when it is set.\",\"recommended_access\":\"Recommended access\",\"recommended_access_description\":\"Fine-grained GitHub token with Contents: read access for each release repository.\",\"github_api_url_title\":\"Add GitHub API URL\",\"github_api_url_description\":\"Use GitHub Cloud by default, or point this at the REST API base URL for a GitHub Enterprise Server installation.\",\"github_api_url_invalid\":\"Enter a full HTTP or HTTPS URL.\",\"github_cloud\":\"GitHub Cloud\",\"enterprise_example\":\"Enterprise example\",\"github_webhook_secret_title\":\"Add GitHub webhook secret\",\"github_webhook_secret_description\":\"Use the same secret in GitHub repository webhooks so Release Manager can verify deployment events before handling them.\",\"github_webhook_url\":\"GitHub webhook URL:\",\"store_shared_secret_in\":\"Store the shared secret in\",\"review_title\":\"Review GitHub setup\",\"review_description\":\"Save the values, then use Integrations to select a private repository, branch, and specific commit or latest commit before testing access.\",\"ready\":\"Ready\",\"needs_value\":\"Needs value\"}},\"channel_unavailable\":{\"kicker\":\"Release Manager\",\"title\":\"Release channel is not ready\",\"summary_prefix\":\"Your account is assigned to\",\"summary_suffix\":\", but that channel is missing required release configuration.\",\"release_bundle\":\"Release bundle\",\"frontend_version\":\"Frontend version\",\"api_version\":\"API version\",\"frontend_base_url\":\"Frontend URL\",\"api_base_url\":\"API URL\",\"frontend_entry\":\"Frontend entry\",\"release_runtime\":\"Release runtime\",\"checking_again\":\"Checking again in {seconds}s\",\"refresh_error\":\"Release status could not be refreshed. The next automatic check will try again.\",\"ignore\":\"Ignore next 5 minutes\",\"check_again\":\"Check again\",\"logout\":\"Logout\",\"base_image\":\"Base image\"},\"channel_switched\":{\"kicker\":\"Release Manager\",\"title\":\"You are now on {channel}\",\"summary_prefix\":\"Your account has been assigned to the\",\"summary_suffix\":\"release channel. This device will remember that you have seen this notice.\",\"bundle\":\"Bundle\",\"frontend\":\"Frontend\",\"api\":\"API\",\"frontend_version\":\"Frontend version\",\"api_version\":\"API version\",\"assigned_channel\":\"Assigned channel\",\"current_app_image\":\"Current app image\",\"current_api\":\"Current API\",\"base_image\":\"Base image\",\"continue\":\"Continue\"},\"channel_selector\":{\"title\":\"Release channel\",\"subtitle\":\"Choose which assigned release channel this device should use.\",\"sidebar_title\":\"Release\",\"default\":\"Default\",\"ready\":\"Ready\",\"unavailable\":\"Not ready\",\"release_bundle\":\"Release bundle\",\"frontend_version\":\"Frontend version\",\"api_version\":\"API version\",\"frontend_base_url\":\"Frontend URL\",\"api_base_url\":\"API URL\",\"frontend_entry\":\"Frontend entry\",\"release_runtime\":\"Release runtime\",\"bundle\":\"Bundle\",\"frontend\":\"Frontend\",\"api\":\"API\",\"use_local_frontend\":\"Use local frontend\",\"switch_error\":\"Release channel could not be switched. The previous channel is still active.\"},\"common\":{\"yes\":\"yes\",\"no\":\"no\",\"off\":\"off\"},\"actions\":{\"edit\":\"Edit\",\"rollback\":\"Rollback\",\"update\":\"Update\",\"create\":\"Create\",\"publish_release\":\"Publish release\",\"clear\":\"Clear\",\"assign\":\"Assign\",\"remove\":\"Remove\",\"test_access\":\"Test access\",\"deploy\":\"Deploy\",\"redeploy\":\"Redeploy\",\"promote\":\"Promote\",\"enable\":\"Enable\",\"search\":\"Search\",\"save_target\":\"Save target\",\"delete\":\"Delete\",\"back\":\"Back\",\"next\":\"Next\"},\"tables\":{\"channel\":\"Channel\",\"rollout\":\"Rollout\",\"frontend\":\"Frontend\",\"api\":\"API\",\"replay\":\"Replay\",\"actions\":\"Actions\",\"module\":\"Module\",\"status\":\"Status\",\"checked\":\"Checked\",\"subject\":\"Subject\",\"reason\":\"Reason\",\"expires\":\"Expires\",\"deployment\":\"Deployment\",\"source\":\"Source\",\"started\":\"Started\",\"target\":\"Target\",\"coolify\":\"Coolify\",\"auto\":\"Auto\"},\"values\":{\"app\":{\"frontend\":\"frontend\",\"api\":\"api\"},\"capture_level\":{\"metadata\":\"metadata\",\"full_redacted\":\"full_redacted\"},\"subject_type\":{\"user\":\"user\",\"subuser\":\"subuser\",\"customer\":\"customer\",\"channel\":\"channel\"},\"severity\":{\"error\":\"error\",\"warning\":\"warning\",\"info\":\"info\"},\"status\":{\"ok\":\"ok\",\"active\":\"active\",\"deployed\":\"deployed\",\"stable\":\"stable\",\"enabled\":\"enabled\",\"queued\":\"queued\",\"deploying\":\"deploying\",\"metadata\":\"metadata\",\"not_configured\":\"not configured\",\"warning\":\"warning\",\"failed\":\"failed\",\"down\":\"down\",\"error\":\"error\",\"unknown\":\"unknown\"}},\"autocomplete\":{\"suggested_value\":\"Suggested value\",\"suggestion\":\"Suggestion\",\"use_typed_value\":\"Use typed value\",\"custom\":\"Custom\",\"api_url\":\"API URL\",\"frontend_url\":\"Frontend URL\",\"known_release_url\":\"Known release URL\",\"deploy_here_with_coolify\":\"Deploy {app} here with Coolify\",\"prepare_coolify_target\":\"Prepare a Coolify target with HTTPS/SSL enabled\",\"coolify_ssl\":\"Coolify SSL\",\"github_repository\":\"GitHub repository\",\"owner_repository\":\"owner/repository\",\"git_branch\":\"Git branch\",\"deployment_branch\":\"Deployment branch\",\"github_commit\":\"GitHub commit\",\"git_commit\":\"Git commit\",\"use_specific_commit_sha\":\"Use specific commit SHA\",\"custom_commit\":\"Custom commit\",\"health_url\":\"Health URL\",\"release_health_check\":\"Release health check\",\"coolify_service\":\"Coolify service\",\"service_uuid\":\"Service UUID\",\"known_coolify_service_uuid\":\"Known Coolify service UUID\",\"control_api\":\"Control API\",\"release_manager_api_endpoint\":\"Release Manager API endpoint\",\"module\":\"Module\",\"timeline_module_key\":\"Timeline module key\"},\"errors\":{\"github_repositories\":\"Could not load GitHub repositories.\",\"github_branches\":\"Could not load GitHub branches.\",\"repository_branch_required\":\"Repository and branch are required before testing GitHub access.\",\"github_access_failed\":\"GitHub repository access test failed.\"},\"channels\":{\"title\":\"Channels\",\"subtitle\":\"Create and tune gradual release channels.\",\"rollout_percent\":\"{percent}% rollout\",\"already_configured\":\"Already configured\",\"slug\":\"Slug\",\"slug_message\":\"Example: canary\",\"slug_placeholder\":\"slug\",\"name\":\"Name\",\"name_message\":\"Shown to operators when reviewing a channel.\",\"name_placeholder\":\"Name\",\"rollout\":\"Rollout\",\"rollout_message\":\"0-100 percent of unassigned traffic.\",\"frontend_url\":\"Frontend URL\",\"frontend_url_message\":\"Example: https://canary.example.test\",\"frontend_url_placeholder\":\"Frontend URL\",\"no_matching_release_url\":\"No matching release URL.\",\"api_url\":\"API URL\",\"api_url_message\":\"Example: https://api-canary.example.test\",\"api_url_placeholder\":\"API URL\",\"no_matching_api_url\":\"No matching API URL.\",\"replay_capture\":\"Replay capture\",\"replay_capture_message\":\"Metadata is safer for broad channels.\",\"retention_days\":\"Retention days\",\"retention_days_message\":\"1-365 days.\",\"enabled\":\"Enabled\",\"default_channel\":\"Default channel\",\"replay_enabled\":\"Replay enabled\",\"frontend_chip\":\"Frontend: {url}\",\"api_chip\":\"API: {url}\"},\"assignments\":{\"title\":\"Assignments\",\"subtitle\":\"Pin users, subusers, or customers to release channels.\",\"subject\":\"Subject\",\"subject_message\":\"Search users, subusers, or customers, or type a manual subject like user:42.\",\"subject_placeholder\":\"Search or type subject\",\"subject_empty\":\"No subjects found\",\"group_users\":\"Users\",\"group_subusers\":\"Subusers\",\"group_customers\":\"Customers\",\"group_manual\":\"Manual\",\"manual_user\":\"User #{id}\",\"manual_subuser\":\"Subuser #{id}\",\"manual_customer\":\"Customer #{id}\",\"manual_description\":\"Use typed value {subject}\",\"subject_type\":\"Subject type\",\"subject_type_message\":\"Choose the identity type to pin.\",\"customer\":\"Customer\",\"customer_message\":\"Search by customer number or name, then select the exact customer.\",\"customer_placeholder\":\"Search customer\",\"subject_id\":\"Subject ID\",\"subject_id_message\":\"Example: user id 42\",\"subject_id_placeholder\":\"Subject id\",\"channel\":\"Channel\",\"channel_message\":\"Pinned subjects bypass percentage rollout.\",\"reason\":\"Reason\",\"reason_message\":\"Example: canary validation for customer support.\",\"reason_placeholder\":\"Reason\",\"expires\":\"Expires\",\"expires_message\":\"Leave blank for no automatic expiry.\"},\"deployments\":{\"title\":\"Deployments\",\"subtitle\":\"Trigger, promote, and inspect release deployments.\",\"manual_deployment_record\":\"Manual deployment record\",\"target\":\"Target\",\"target_message\":\"Pick a saved target or keep manual fields editable.\",\"select_target_or_manual\":\"Select target or manual\",\"channel\":\"Channel\",\"app\":\"App\",\"repository\":\"Repository\",\"repository_message\":\"Example: truckwash/front-end-vue\",\"repository_placeholder\":\"owner/repo\",\"branch\":\"Branch\",\"branch_message\":\"Example: master\",\"branch_placeholder\":\"branch\",\"commit_selection\":\"Commit selection\",\"commit_selection_message\":\"Latest resolves to the branch head with the configured GitHub token.\",\"latest_from_branch\":\"Latest from branch\",\"specific_commit\":\"Specific commit\",\"specific_commit_message\":\"Example: feedface1234\",\"commit_sha_placeholder\":\"commit sha\",\"version_label\":\"Version label\",\"version_label_message\":\"Example: api-2026.05.19\",\"version_label_placeholder\":\"version label\",\"commit_prefix\":\"Commit: {commit}\",\"test_access_tooltip\":\"Verify token access to the selected repository, branch, and commit.\"},\"replay\":{\"title\":\"Replay\",\"subtitle\":\"Enable targeted capture and step through failure timelines.\",\"capture_channel\":\"Capture {channel}\",\"target_type\":\"Target type\",\"target\":\"Target\",\"target_message\":\"Example: user id 42 or channel slug canary.\",\"target_placeholder\":\"Target id or channel slug\",\"channel_scope\":\"Channel scope\",\"channel_scope_message\":\"Optional; limits replay capture to a channel.\",\"no_channel_scope\":\"No channel scope\",\"capture_level\":\"Capture level\",\"expires\":\"Expires\",\"expires_message\":\"Leave blank for manual disable.\",\"trace_id\":\"Trace ID\",\"trace_id_message\":\"Example: trace-canary-1\",\"trace_id_placeholder\":\"Trace id\",\"channel\":\"Channel\",\"channel_placeholder\":\"Channel\",\"principal_id\":\"Principal ID\",\"principal_id_placeholder\":\"Principal id\",\"module\":\"Module\",\"module_placeholder\":\"Module\",\"severity\":\"Severity\",\"any_severity\":\"Any severity\",\"no_timeline_events\":\"No timeline events match the current filters.\"}}},\"connectivity\":{\"description\":\"@.capitalize:{'words.generated.this'} usually resolves itself. @.capitalize:{'words.generated.please'} @:{'words.generated.wait'} @:{'words.generated.while'} @:{'words.generated.we'} @:{'words.generated.check'} @:{'words.replication.article.host_mention'} @:{'words.generated.server'}.\",\"footer\":\"@.capitalize:{'words.generated.if'} @:{'words.replication.article.host_mention'} @:{'words.generated.issue'} persists, @:{'words.generated.please'} @:{'words.generated.contact'} @:{'words.generated.support'}.\",\"no_internet\":\"@.capitalize:{'words.generated.no'} internet @:{'words.generated.connection'}.\",\"retry_in\":\"@:{'words.generated.retrying'} @:{'words.generated.in'} {seconds} @:{'words.generated.seconds'}...\",\"retry_now\":\"Trying @:{'words.generated.to'} reconnect...\",\"retry\":\"@:{'words.generated.retry'}\",\"server_down\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.connection'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.server'}.\",\"subtitle\":\"@:{'words.generated.retrying'} @:{'words.generated.every'} 5 @:{'words.generated.seconds'}...\",\"title\":\"@.capitalize:{'words.generated.connectivity'} @.capitalize:{'words.generated.issue'}\"},\"customer_creation\":{\"customer\":{\"benefit_credit\":\"@.capitalize:{'words.generated.credit'} @.capitalize:{'words.generated.account'}\",\"benefit_credit_desc\":\"@.capitalize:{'words.generated.get'} @:{'words.generated.a'} @:{'words.generated.credit'} @:{'words.generated.account'} @:{'words.generated.with'} @:{'words.generated.monthly'} @:{'words.generated.billing'}\",\"benefit_portal\":\"@.capitalize:{'words.generated.customer'} @.capitalize:{'words.generated.portal'}\",\"benefit_portal_desc\":\"@.capitalize:{'words.generated.use'} @:{'words.replication.article.host_mention'} @:{'words.generated.customer'} @:{'words.generated.portal'} @:{'words.generated.to'} @:{'words.generated.add'} @:{'words.generated.vehicles'}, @:{'words.generated.book'} @:{'words.generated.washes'}, @:{'words.generated.download'} @:{'words.generated.invoices'}, @:{'words.generated.wash'} @:{'words.generated.certificates'} @:{'words.generated.and'} @:{'words.generated.information'} @:{'words.generated.for'} @:{'words.generated.historical'} @:{'words.generated.washes'}\",\"benefit_wash_desc\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.our'} @:{'words.generated.national'} @:{'words.generated.network'} @:{'words.generated.of'} @:{'words.generated.wash'} @:{'words.generated.halls'} @:{'words.generated.at'} @:{'words.generated.competitive'} @:{'words.generated.prices'}\",\"ean_label\":\"@:{'templates.generated.compat.admin.pos.ean'}\",\"email_label\":\"@.capitalize:{'words.generated.company'} @:{'words.generated.email'}\",\"intro\":\"@.capitalize:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.customer'} @:{'words.generated.at'} @.capitalize:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.you'} @:{'words.generated.get'} @:{'words.generated.access'} @:{'words.generated.to'}:\",\"phone_label\":\"@:{'templates.generated.compat.admin.pos.company_phone'}\",\"success_message\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.account'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.created'}. @.capitalize:{'words.generated.we'} @:{'words.generated.have'} @:{'words.generated.sent'} @:{'words.generated.an'} @:{'words.generated.email'} @:{'words.generated.with'} @:{'words.generated.further'} @:{'words.generated.information'}.\",\"title\":\"@.capitalize:{'words.generated.register'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.customer'}\"},\"driver\":{\"benefit_24h\":\"24h @.capitalize:{'words.generated.wash'}\",\"benefit_24h_desc\":\"@:{'words.generated.wash'} @:{'words.generated.when'} @:{'words.generated.it'} @:{'words.generated.suits'} @:{'words.generated.you'} @:{'words.generated.outside'} @:{'words.generated.staffed'} @:{'words.generated.opening'} @:{'words.generated.hours'}\",\"benefit_booking_desc\":\"@:{'words.generated.book'} @:{'words.generated.wash'} @:{'words.generated.across'} @:{'words.replication.article.host_mention'} @:{'words.generated.country'}\",\"benefit_find\":\"@.capitalize:{'words.generated.find'} @.capitalize:{'words.generated.wash'} @.capitalize:{'words.generated.halls'}\",\"benefit_find_desc\":\"navigate @:{'words.generated.quickly'} @:{'words.generated.and'} easily @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.nearest'} @:{'words.generated.wash'} @:{'words.generated.hall'} near @:{'words.generated.you'}\",\"benefit_loyalty\":\"@.capitalize:{'words.generated.loyalty'} @.capitalize:{'words.generated.points'}\",\"benefit_loyalty_desc\":\"@:{'words.generated.earn'} @:{'words.generated.and'} @:{'words.generated.use'} @:{'words.generated.loyalty'} @:{'words.generated.points'} @:{'words.generated.every'} @:{'words.generated.time'} @:{'words.generated.you'} @:{'words.generated.wash'} @:{'words.generated.at'} @.capitalize:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} (@:{'words.generated.available'} @:{'words.generated.from'} @.capitalize:{'words.generated.may'} 2026)\",\"intro\":\"@.capitalize:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.driver'} @:{'words.generated.at'} @.capitalize:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.you'} @:{'words.generated.get'} @:{'words.generated.access'} @:{'words.generated.to'}:\",\"phone_label\":\"@.capitalize:{'words.generated.driver'} @:{'words.generated.phone'}\",\"submit\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.account'}\",\"title\":\"@.capitalize:{'words.generated.register'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.driver'}\"},\"pre_title\":\"@.capitalize:{'words.generated.customer'} @.capitalize:{'words.generated.creation'}\",\"subtitle\":\"@.capitalize:{'words.generated.get'} @:{'words.generated.a'} range @:{'words.generated.of'} benefits @:{'words.generated.by'} @:{'words.generated.being'} @:{'words.generated.registered'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.customer'} @:{'words.generated.or'} @:{'words.generated.driver'} @:{'words.generated.at'} @.capitalize:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\",\"title\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.yourself'} @:{'words.generated.quickly'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.customer'} @:{'words.generated.or'} @:{'words.generated.new'} @:{'words.generated.driver'} @:{'words.generated.at'} @.capitalize:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\"},\"customer_rules\":{\"attributes\":{\"exemptFromAdministrationFee\":{\"description\":\"@.capitalize:{'words.generated.do'} @:{'words.generated.not'} @:{'words.generated.apply'} @:{'words.generated.administration'} @:{'words.generated.fees'} @:{'words.generated.to'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@.capitalize:{'words.generated.exempt'} @:{'words.generated.from'} @:{'words.generated.administration'} @:{'words.generated.fee'}\"},\"invoiceAllOrdersIndividually\":{\"description\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.separate'} @:{'words.generated.invoices'} @:{'words.generated.instead'} @:{'words.generated.of'} grouping @:{'words.generated.this'} @:{'words.generated.customer'}'@:{'words.generated.s'} @:{'words.generated.orders'}.\",\"label\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.all'} @:{'words.generated.orders'} individually\"},\"invoiceWithStripe\":{\"description\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.stripe'} @:{'words.generated.invoicing'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.with'} @:{'words.generated.stripe'}\"},\"onlyTankCleaning\":{\"description\":\"@.capitalize:{'words.generated.allow'} @:{'words.generated.only'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} @:{'words.generated.services'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\"},\"requiresReferenceNumber\":{\"description\":\"@:{'words.generated.require'} @:{'words.generated.a'} @:{'words.generated.reference'} @:{'words.generated.number'} @:{'words.generated.on'} @:{'words.generated.bookings'} @:{'words.generated.and'} @:{'words.generated.orders'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.require'} @:{'words.generated.reference'} @:{'words.generated.number'}\"},\"requiresRegistrationNumbersInvoice\":{\"description\":\"@:{'words.generated.require'} @:{'words.generated.registration'} @:{'words.generated.numbers'} @:{'words.generated.to'} @:{'words.generated.appear'} @:{'words.generated.on'} @:{'words.generated.invoices'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.require'} @:{'words.generated.registration'} @:{'words.generated.numbers'} @:{'words.generated.on'} @:{'words.generated.invoice'}\"},\"restrictAdditionalServices\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.additional'} @:{'words.generated.services'} @:{'words.generated.and'} @:{'words.generated.add'}-@:{'words.generated.ons'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.additional'} @:{'words.generated.services'}\"},\"restrictInteriorCleaning\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.interior'} @:{'words.generated.cleaning'} @:{'words.generated.services'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.interior'} @:{'words.generated.cleaning'}\"},\"restrictSpotFree\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.spot'}-@:{'words.generated.free'} @:{'words.generated.rinse'} @:{'words.generated.services'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.spot'}-@:{'words.generated.free'} @:{'words.generated.rinse'}\"},\"restrictTankCleaning\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} @:{'words.generated.services'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}\"},\"showPricesOnBookingPage\":{\"description\":\"@.capitalize:{'words.generated.display'} @:{'words.generated.customer'} @:{'words.generated.prices'} @:{'words.generated.on'} @:{'words.replication.article.host_mention'} @:{'words.generated.booking'} @:{'words.generated.page'}.\",\"label\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.prices'} @:{'words.generated.on'} @:{'words.generated.booking'} @:{'words.generated.page'}\"},\"usePONumbers\":{\"description\":\"@.capitalize:{'words.generated.enable'} @:{'words.generated.po'} @:{'words.generated.number'} @:{'words.generated.handling'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.po'} @:{'words.generated.numbers'}\"}},\"manager\":{\"active_count\":\"{count} active\",\"errors\":{\"load\":\"Could not load customer rules.\",\"update\":\"Could not update the customer rule.\"},\"no_target\":\"A user id or customer number is required before customer rules can be managed.\",\"toggle_unavailable\":\"You do not have permission to change this customer rule.\",\"unavailable\":\"You do not have permission to view customer rules.\",\"unknown_active\":\"Unknown active rules\"},\"tooltip\":{\"available_if_enabled\":\"Would remain available if enabled\",\"available_while_enabled\":\"Available while active\",\"blocked_if_enabled\":\"Would be blocked if enabled\",\"blocked_now\":\"Blocked while active\",\"changes\":\"Changes\",\"groups\":{\"primary_products\":\"Primary products\",\"related_addons\":\"Related add-ons\",\"standalone_additional_services\":\"Standalone additional services\"},\"load_failed\":\"Could not load affected products.\",\"loading_products\":\"Loading affected products...\",\"no_affected_products\":\"No affected products found in the current product catalog.\"}},\"customers\":{\"add_customer\":\"@:{'templates.generated.compat.admin.pos.add_customer'}\",\"add_vehicle_subtitle\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.vehicle'}\",\"add_vehicle_to_customer\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.vehicle'} @:{'words.generated.to'} @:{'words.generated.customer'}\",\"add_vehicle\":\"@:{'templates.generated.compat.vehicles.add'}\",\"confirm_delete_vehicle\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.delete'} @:{'words.generated.this'} @:{'words.generated.vehicle'}? @.capitalize:{'words.generated.this'} @:{'words.generated.cannot'} @:{'words.generated.be'} @:{'words.generated.undone'}.\",\"confirm_remove_vehicle\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.remove'} @:{'words.generated.this'} @:{'words.generated.vehicle'} @:{'words.generated.from'} @:{'words.replication.article.host_mention'} @:{'words.generated.customer'}?\",\"contact\":{\"title\":\"Kontaktperson\"},\"cvr\":\"Organisasjonsnummer\",\"delete_confirm\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.delete'} @:{'words.generated.this'} @:{'words.generated.customer'}?\",\"delete_customer\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.customer'}\",\"delete_selected_confirm\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.delete'} {count} @:{'words.generated.selected'} @:{'words.generated.customers'}?\",\"delete_selected\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.selected'}\",\"edit_customer\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.customer'}\",\"export\":\"@.capitalize:{'words.generated.export'} @:{'words.generated.customers'}\",\"form\":{\"billing_type\":\"@.capitalize:{'words.generated.billing'} @:{'words.generated.type'}\",\"contact_name\":\"@:{'templates.generated.compat.tables.common.name'}\",\"contact_phone\":\"Kontakttelefon\",\"credit_limit\":\"Kredittgrense\",\"payment_due\":\"@.capitalize:{'words.generated.payment'} deadline\",\"vat_registered\":\"MVA-registrert\"},\"import\":\"@.capitalize:{'words.generated.import'} @:{'words.generated.customers'}\",\"no_customers\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.customers'} @:{'words.generated.found'}\",\"no_vehicles\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.vehicle'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.by'} @:{'words.generated.customer'} @:{'words.generated.name'}, @:{'words.generated.customer'} @:{'words.generated.number'}, @:{'words.generated.e'}-@:{'words.generated.mail'}, @:{'words.generated.telephone'}\",\"view_subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.customer'} @:{'words.generated.details'}\",\"view_vehicles\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.vehicles'}\"},\"department_dashboard\":{\"bookings\":{\"all\":\"@:{'templates.generated.compat.common.all'}\",\"certificate_download_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} @:{'words.generated.downloading'} @:{'words.replication.article.host_mention'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"certificate_generated\":\"@.upper:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.generated'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.booking'}.\",\"search\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.bookings'}...\",\"sent_to\":\"@.capitalize:{'words.generated.sent'} @:{'words.generated.to'}\",\"services\":{\"exterior_semi_trailer\":\"@.capitalize:{'words.generated.exterior'} @:{'words.generated.semi'}-@:{'words.generated.trailer'} (@.capitalize:{'words.generated.truck'} / @:{'words.generated.trailer'})\",\"exterior_trailer_wash\":\"@.capitalize:{'words.generated.exterior'} @:{'words.generated.trailer'} @:{'words.generated.wash'}\",\"interior_trailer_wash\":\"@.capitalize:{'words.generated.interior'} @:{'words.generated.trailer'} @:{'words.generated.wash'}\"},\"subtitle\":\"@:{'templates.generated.compat.bookings.subtitle'}\",\"upcoming\":\"Upcoming\",\"wash_completed\":\"@:{'templates.generated.compat.self_wash.wash_completed'}\"},\"calendar\":{\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.calendar'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}\"},\"customers\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.customers'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}\"},\"daily_report\":{\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.daily'} @:{'words.generated.reports'}\"},\"employees\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.employees'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}\"},\"home\":{\"subtitle\":\"@:{'words.generated.welcome'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}'@:{'words.generated.s'} @:{'words.generated.dashboard'}\"},\"invoices\":{\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.invoices'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}\"},\"overview\":{\"charts\":\"Charts\",\"list\":\"@:{'templates.generated.compat.calendar.fullcalendar.list'}\",\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.how'} @:{'words.generated.your'} @:{'words.generated.departments'} @:{'words.generated.are'} @:{'words.generated.performing'}\"},\"pos\":{\"subtitle\":\"Record @:{'words.generated.sales'}\"},\"products\":{\"addons_subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.product'} @:{'words.generated.additions'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}\",\"no_addons\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.additions'} @:{'words.generated.found'}.\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.products'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.settings'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}\"},\"sidebar\":{\"time_bookings\":\"@.capitalize:{'words.generated.time'} @.capitalize:{'words.generated.bookings'}\"},\"statistics\":{\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.statistics'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}\"},\"time_bookings\":{\"subtitle\":\"@:{'templates.generated.compat.admin.time_bookings.subtitle'}\"},\"vehicles\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.vehicles'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}\"},\"wash_log\":{\"add_wash\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.wash'}\",\"add_wash_title\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.wash'} @:{'words.generated.to'} @:{'words.generated.log'}\",\"created_certificate\":\"@.capitalize:{'words.generated.washing'} @:{'words.generated.certificate'} @:{'words.generated.created'}. @.capitalize:{'words.generated.it'} @:{'words.generated.now'} @:{'words.generated.opens'} @:{'words.generated.in'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.tab'}.\",\"creating_certificate\":\"@.capitalize:{'words.generated.creates'} @:{'words.generated.washing'} @:{'words.generated.certificate'}...\",\"discount\":\"@.capitalize:{'words.generated.rabatt'}\",\"download_csv\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} CSV\",\"download_excel\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.excel'}\",\"edit_wash\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.wash'}\",\"ended\":\"Avsluttet\",\"no_washes\":\"@.capitalize:{'words.generated.no'} sink @:{'words.generated.found'}\",\"open_wash_certificate\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.washing'} @:{'words.generated.certificate'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.registration'} @:{'words.generated.number'}, @:{'words.generated.reference'}, @:{'words.generated.employee'}, @:{'words.generated.customer'}\",\"showing_x_of_y\":\"@:{'words.generated.showing'} {x} @:{'words.generated.of'} {y}\",\"started\":\"@.capitalize:{'words.generated.started'}\",\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.wash'} @:{'words.generated.log'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}\",\"subtitle_expanded\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.about'} @:{'words.generated.washing'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}\",\"washes_per_page\":\"@:{'words.generated.wash'} @:{'words.generated.per'} @:{'words.generated.side'}\",\"washes_per_page_title\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.per'} @:{'words.generated.side'}\"}},\"department_reports\":{\"avg_revenue_per_wash\":\"@.capitalize:{'words.generated.avg'}. @:{'words.generated.revenue'} @:{'words.generated.per'} @:{'words.generated.wash'}\",\"revenue\":\"@.capitalize:{'words.generated.revenue'}\",\"today\":\"@:{'words.generated.today'}\"},\"departments\":{\"addons\":{\"new_addon\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.add'}-@:{'words.generated.on'}\"},\"confirm_delete\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.delete'} @:{'words.generated.this'} @:{'words.generated.department'}?\",\"dashboard\":\"@:{'templates.generated.compat.common.dashboard'}\",\"delete_department\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.department'}\",\"edit_department\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.department'}\",\"form\":{\"latitude\":\"Latitude\",\"longitude\":\"Longitude\"},\"integrations\":{\"mailersend_api_key\":\"@:{'words.generated.mailersend'} @:{'words.generated.api'} @:{'words.generated.key'}\",\"subtitle\":\"@.capitalize:{'words.generated.configure'} @:{'words.generated.integrations'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}\"},\"new_department\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.department'}\",\"no_departments\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.departments'} @:{'words.generated.found'}\",\"opening_hours\":{\"closed\":\"@:{'templates.generated.compat.global.closed'}\"},\"pricing\":{\"custom_pricing_disabled\":\"Fallback enabled\",\"custom_pricing_enabled\":\"Custom only\",\"custom_pricing_missing_price\":\"Missing department prices resolve to 999999.\",\"custom_pricing_only\":\"No fallback pricing\",\"effective_department_price\":\"Effective department price\"},\"search_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.by'} @:{'words.generated.department'} @:{'words.generated.name'}\",\"select_department\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.department'}\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.departments'}\",\"tab\":{\"info\":\"@:{'templates.generated.compat.common.info'}\",\"opening_hours\":\"@:{'templates.generated.compat.global.opening_hours'}\",\"product_addons\":\"@.capitalize:{'words.generated.product'} @:{'words.generated.add'}-@:{'words.generated.ons'}\",\"wash_products\":\"Laundry @:{'words.generated.products'}\"},\"title\":\"@:{'templates.generated.compat.common.departments'}\"},\"employees\":{\"confirm_delete\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.delete'} @:{'words.generated.this'} @:{'words.generated.employee'}?\",\"delete_employee\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.employee'}\",\"edit_employee\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.employee'}\",\"new_employee\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.employee'}\",\"no_employees\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.employees'} @:{'words.generated.found'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.by'} @:{'words.generated.name'}, @:{'words.generated.e'}-@:{'words.generated.mail'}, @:{'words.generated.telephone'}\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.employees'}\"},\"error_report\":{\"button\":\"Report error\",\"title\":\"Report error\",\"subtitle\":\"Send recent error details to support. A screenshot is attached when available.\",\"before_error\":\"What were you doing before the error occurred?\",\"expected\":\"What did you expect would happen?\",\"actual\":\"What actually happened?\",\"before_error_placeholder\":\"Describe the action you were taking, for example opening orders or selecting a customer.\",\"expected_placeholder\":\"Describe the result you expected to see.\",\"actual_placeholder\":\"Describe what you saw instead, including any error text.\",\"consent\":\"I accept that recent request errors, Vue errors, browser details, my answers, and an app screenshot when available are collected for troubleshooting.\",\"submit\":\"Submit report\",\"submitted\":\"Error report submitted.\",\"capture_failed\":\"The screen capture failed. The report will be sent without a screenshot.\",\"submit_failed\":\"The error report could not be submitted.\",\"required\":\"All fields and data collection acceptance are required.\",\"page_subtitle\":\"Reported screens, request failures, and Vue errors\",\"screenshot\":\"Screenshot\",\"request_errors\":\"Request errors\",\"vue_errors\":\"Vue errors\",\"runtime_context\":\"Runtime context\",\"empty\":\"No error reports found.\",\"resolve\":\"Mark resolved\",\"reopen\":\"Reopen\",\"resolution_note\":\"Resolution note\",\"filters\":{\"open\":\"Open\",\"resolved\":\"Resolved\",\"all\":\"All\"}},\"errors\":{\"forbidden\":\"@.capitalize:{'words.generated.access'} @:{'words.generated.denied'}.\",\"general\":\"@:{'templates.generated.compat.messages.error'}\",\"network_error\":\"Nettverksfeil\",\"network\":\"@.capitalize:{'words.generated.network'} @:{'words.generated.error'}. @.capitalize:{'words.generated.check'} @:{'words.generated.your'} @:{'words.generated.connection'}.\",\"not_found\":\"Resource @:{'words.generated.not'} @:{'words.generated.found'}.\",\"parse_error\":{\"unknown\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.unknown'} @:{'words.generated.error'} @:{'words.generated.occurred'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.again'}.\"},\"server_error\":\"@.capitalize:{'words.generated.server'} @:{'words.generated.error'}\",\"server\":\"@.capitalize:{'words.generated.server'} @:{'words.generated.error'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.again'} later.\",\"timeout\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.request'} took @:{'words.generated.a'} long @:{'words.generated.time'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.again'}.\",\"unauthorized\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.are'} @:{'words.generated.not'} authorized @:{'words.generated.to'} @:{'words.generated.perform'} @:{'words.generated.this'} @:{'words.generated.action'}.\",\"validation\":\"Valideringsfel. Kontrollera din inmatning.\"},\"global_search\":{\"actions\":{\"back_to_results\":\"@.capitalize:{'words.generated.back'} @:{'words.generated.to'} @:{'words.generated.results'}\",\"clear_results\":\"@:{'words.generated.clear'} @:{'words.generated.results'}\",\"close_settings\":\"@:{'words.generated.close'} @:{'words.generated.settings'}\",\"run_search\":\"@.capitalize:{'words.generated.run'} @:{'words.generated.search'}\"},\"badges\":{\"score\":\"@.capitalize:{'words.generated.score'} {score}\"},\"cache\":{\"clear_cache\":\"@:{'words.generated.clear'} @:{'words.generated.cache'}\",\"errors\":{\"types_required\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.at'} @:{'words.generated.least'} @:{'words.generated.one'} @:{'words.generated.type'} @:{'words.generated.when'} @:{'words.generated.scope'} @:{'words.generated.is'} \\\"@:{'words.generated.types'}\\\".\"},\"messages\":{\"cleared\":\"@.capitalize:{'words.generated.system'} @:{'words.generated.search'} caches @:{'words.generated.cleared'}.\",\"rebuild_queued\":\"@.capitalize:{'words.generated.system'} @:{'words.generated.search'} @:{'words.generated.cache'} @:{'words.generated.rebuild'} @:{'words.generated.queued'}.\"},\"queue_rebuild\":\"@:{'words.generated.queue'} @:{'words.generated.rebuild'}\",\"rebuild_scope\":\"@.capitalize:{'words.generated.rebuild'} @:{'words.generated.scope'}\",\"rebuild_types\":\"@.capitalize:{'words.generated.rebuild'} @:{'words.generated.types'}\",\"scope_all\":\"@:{'words.generated.all'}\",\"scope_dirty\":\"dirty\",\"scope_types\":\"@:{'words.generated.types'}\",\"superuser_only\":\"@.capitalize:{'words.generated.cache'} @:{'words.generated.tools'} @:{'words.generated.are'} @:{'words.generated.available'} @:{'words.generated.for'} superusers.\",\"title\":\"@.capitalize:{'words.generated.superuser'} @:{'words.generated.cache'} @:{'words.generated.tools'}\"},\"department_goals\":{\"loading\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.goal'} @:{'words.generated.progress'}...\",\"overview\":\"@.capitalize:{'words.generated.goal'} @:{'words.generated.progress'}\",\"period\":\"@:{'templates.generated.compat.objects.goals.columns.period'}\",\"progress_unavailable\":\"@.capitalize:{'words.generated.goal'} @:{'words.generated.progress'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.available'} @:{'words.generated.yet'}.\"},\"entity_types\":{\"bookings\":\"@.capitalize:{'words.generated.legacy'} @:{'words.generated.bookings'}\",\"bookings_new\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.bookings'}\",\"currency_conversion_rates\":\"@:{'words.generated.currency'} @:{'words.generated.conversion'} @:{'words.generated.rates'}\",\"customer_codes\":\"@.capitalize:{'words.generated.customer'} codes\",\"customer_default_department\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.default'} @:{'words.generated.department'}\",\"customer_discounts\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.discounts'}\",\"customer_fixed_prices\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.fixed'} @:{'words.generated.prices'}\",\"customer_notes\":\"@:{'templates.generated.compat.common.customer_notes'}\",\"customer_vehicles_addons\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.vehicle'} @:{'words.generated.add'}-@:{'words.generated.ons'}\",\"customers\":\"@:{'templates.generated.compat.common.customers'}\",\"department_goals\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.goals'}\",\"department_selfserve_condition_rules\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.condition'} @:{'words.generated.rules'}\",\"department_selfserve_conditions\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.conditions'}\",\"department_selfserve_questions\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.questions'}\",\"department_selfserve_tasks\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.tasks'}\",\"department_selfserve_vehicle_conditions\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.vehicle'} @:{'words.generated.conditions'}\",\"fxratesapi_conversion_rates\":\"@:{'words.generated.fxratesapi'} @:{'words.generated.conversion'} @:{'words.generated.rates'}\",\"module_config\":\"@.capitalize:{'words.generated.module'} @:{'words.generated.config'}\",\"motorapi_lookups\":\"@:{'words.generated.motorapi'} @:{'words.generated.lookups'}\",\"order_items\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.items'}\",\"plate_scanners\":\"@.capitalize:{'words.generated.plate'} @:{'words.generated.scanners'}\",\"plate_scans\":\"@.capitalize:{'words.generated.plate'} @:{'words.generated.scans'}\",\"stripe_module_customers\":\"@:{'words.generated.stripe'} @:{'words.generated.module'} @:{'words.generated.customers'}\",\"stripe_module_orders\":\"@:{'words.generated.stripe'} @:{'words.generated.module'} @:{'words.generated.orders'}\",\"stripe_payment_intents\":\"@:{'words.generated.stripe'} @:{'words.generated.payment'} intents\",\"subusers\":\"Subusers\",\"xlvask_customers\":\"@:{'words.generated.xlvask_xlvask'} @:{'words.generated.customers'}\",\"xlvask_potential_order_matches\":\"@:{'words.generated.xlvask_xlvask'} @:{'words.generated.potential'} @:{'words.generated.order'} @:{'words.generated.matches'}\",\"xlvask_usage_log_wash_items\":\"@:{'words.generated.xlvask_xlvask'} @:{'words.generated.usage'} @:{'words.generated.log'} @:{'words.generated.wash'} @:{'words.generated.items'}\",\"xlvask_usage_logs\":\"@:{'words.generated.xlvask_xlvask'} @:{'words.generated.usage'} @:{'words.generated.logs'}\",\"xlvask_vehicles\":\"@:{'words.generated.xlvask_xlvask'} @:{'words.generated.vehicles'}\"},\"errors\":{\"enter_query\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.enter'} @:{'words.generated.a'} @:{'words.generated.search'} @:{'words.generated.query'}.\",\"invalid_payload\":\"@.capitalize:{'words.generated.invalid'} @:{'words.generated.search'} @:{'words.generated.response'} @:{'words.generated.payload'}.\",\"request_failed\":\"@.capitalize:{'words.generated.request'} @:{'words.generated.failed'}.\"},\"groups\":{\"active\":\"@.capitalize:{'words.generated.active'} @:{'words.generated.group'}: {group}\",\"description\":\"@.capitalize:{'words.generated.choose'} @:{'words.generated.a'} @:{'words.generated.group'} @:{'words.generated.to'} @:{'words.generated.filter'} @:{'words.generated.visible'} @:{'words.generated.results'}.\",\"empty_hint\":\"@.capitalize:{'words.generated.run'} @:{'words.generated.a'} @:{'words.generated.search'} @:{'words.generated.to'} populate @:{'words.generated.grouped'} @:{'words.generated.results'}.\",\"summary\":\"@.capitalize:{'words.generated.grouped'} @:{'words.generated.results'} (@:{'words.generated.by'} @:{'words.generated.entity'} @:{'words.generated.type'})\",\"title\":\"@.capitalize:{'words.generated.result'} Groups\"},\"launcher\":{\"last_search\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.search'}: \\\"{query}\\\", {total} @:{'words.generated.results'}\"},\"meta\":{\"allowed_types\":\"@:{'words.generated.allowed'} @:{'words.generated.types'}\",\"cache_hit\":\"@.capitalize:{'words.generated.cache'} hit\",\"hide\":\"@:{'words.generated.hide'} @:{'words.generated.meta'}\",\"intent\":{\"confidence\":\"Confidence\",\"entity_hints\":\"@.capitalize:{'words.generated.entity'} hints\",\"expanded_terms\":\"Expanded @:{'words.generated.terms'}\",\"fallback_reason\":\"@.capitalize:{'words.generated.fallback'} @:{'words.generated.reason'}\",\"invoked\":\"Invoked\",\"source\":\"@.capitalize:{'words.generated.source'}\",\"title\":\"@.capitalize:{'words.generated.intent'} @:{'words.generated.parser'} @:{'words.generated.diagnostics'}\"},\"limit\":\"@.capitalize:{'words.generated.limit'}\",\"max_results\":\"Max results\",\"no\":\"@:{'words.generated.no'}\",\"offset\":\"Offset\",\"returned\":\"Returned\",\"show\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.meta'}\",\"truncated\":\"Truncated\",\"yes\":\"@:{'words.generated.yes'}\"},\"progress\":{\"fetching_known\":\"@.capitalize:{'words.generated.fetching'} @:{'words.generated.page'} {pagesDone} @:{'words.generated.of'} {pagesTotal}\",\"fetching_unknown\":\"@.capitalize:{'words.generated.fetching'} pages... ({pagesDone} @:{'words.generated.fetched'})\",\"preparing\":\"Preparing @:{'words.generated.search'}...\",\"results_loaded\":\"{loaded} / {total} @:{'words.generated.results'} @:{'words.generated.loaded'}\"},\"results\":{\"association\":\"@.capitalize:{'words.generated.association'}\",\"cap\":\"{returned} of {max}\",\"cap_truncated\":\"{returned} of {max} shown\",\"empty\":\"@.capitalize:{'words.generated.run'} @:{'words.generated.a'} @:{'words.generated.search'} @:{'words.generated.to'} @:{'words.generated.load'} @:{'words.generated.results'}.\",\"none_for_search\":\"@.capitalize:{'words.generated.no'} {group} @:{'words.generated.results'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.search'}.\",\"payload\":\"@.capitalize:{'words.generated.payload'}\",\"range\":\"@.capitalize:{'words.generated.results'} {start}-{end} @:{'words.generated.of'} {total}\"},\"search\":{\"placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.everything'}...\"},\"settings_menu\":{\"object_types\":\"@.capitalize:{'words.generated.filter'} @:{'words.generated.object'} @:{'words.generated.types'}\",\"open_hint\":\"@.capitalize:{'words.generated.settings'} @:{'words.generated.open'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.right'} @:{'words.generated.panel'}.\",\"pagination\":\"Pagination\"},\"settings\":{\"exclude_entity_types\":\"@:{'words.generated.exclude'} @:{'words.generated.entity'} @:{'words.generated.types'}\",\"include_all\":\"@:{'words.generated.include'} @:{'words.generated.all'}\",\"include_associations\":\"@:{'words.generated.include'} associations\",\"include_entity_types\":\"@:{'words.generated.include'} @:{'words.generated.entity'} @:{'words.generated.types'}\",\"include_intent_diagnostics\":\"@:{'words.generated.include'} @:{'words.generated.intent'} @:{'words.generated.parser'} @:{'words.generated.diagnostics'}\",\"manage_description\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.display'} @:{'words.generated.and'} @:{'words.generated.diagnostics'}.\",\"methods\":{\"get\":\"@.upper:{'words.generated.get'} (@:{'words.generated.query'} params)\",\"post\":\"POST (@:{'words.generated.json'} body)\"},\"reset_defaults\":\"@.capitalize:{'words.generated.reset'} @:{'words.generated.defaults'}\",\"reset_type_filters\":\"@.capitalize:{'words.generated.reset'} @:{'words.generated.type'} @:{'words.generated.filters'}\",\"search_method\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.method'}\",\"show_grouped_summary\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.grouped'} @:{'words.generated.summary'}\",\"show_payload_inspector\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.payload'} inspector\",\"show_score_badges\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.score'} badges\"},\"title\":\"Advanced @.capitalize:{'words.generated.system'} @.capitalize:{'words.generated.search'}\"},\"global\":{\"abnormal\":\"Abnormal\",\"add_desc\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.note'}\",\"add_other_product\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.other'} @:{'words.generated.product'}\",\"add\":\"@:{'templates.generated.compat.common.add'}\",\"additional_items\":\"@.capitalize:{'words.generated.additional'} @:{'words.generated.items'}\",\"all_booked\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.booked'}\",\"attach_to_order\":\"@.capitalize:{'words.generated.attach'} @:{'words.generated.to'} @:{'words.generated.transaction'}\",\"auto_start_on_lpr\":\"Auto-@:{'words.generated.start'} @:{'words.generated.on'} LPR\",\"barred\":\"Barred\",\"booked\":\"@.capitalize:{'words.generated.booked'}\",\"cancelled\":\"@:{'templates.generated.compat.common.cancelled'}\",\"capture\":\"@.capitalize:{'words.generated.capture'}\",\"change_customer\":\"@.capitalize:{'words.generated.change'} @:{'words.generated.customer'}\",\"clear_all\":\"@:{'words.generated.clear'} @:{'words.generated.all'}\",\"closed\":\"@.capitalize:{'words.generated.closed'}\",\"closing_hour\":\"Closing @:{'words.generated.hour'}\",\"collapse\":\"@:{'templates.generated.compat.common.collapse'}\",\"collection\":\"@.capitalize:{'words.generated.collection'}\",\"compare\":\"@.capitalize:{'words.generated.compare'}\",\"complete_order\":\"@.capitalize:{'words.generated.complete'} @:{'words.generated.order'}\",\"complete\":\"@.capitalize:{'words.generated.complete'}\",\"completed\":\"@:{'templates.generated.compat.common.completed'}\",\"configuration\":\"@.capitalize:{'words.generated.configuration'}\",\"confirm_delete_message\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.delete'} @:{'words.generated.this'} @:{'words.generated.object'}?\",\"confirm_delete\":\"@.capitalize:{'words.generated.yes'}, @:{'words.generated.delete'}\",\"confirmation_needed\":\"@.capitalize:{'words.generated.confirmation'} @:{'words.generated.needed'}\",\"copy\":\"@:{'templates.generated.compat.common.copy'}\",\"date_from\":\"@.capitalize:{'words.generated.date'} @:{'words.generated.from'}\",\"date_to\":\"@.capitalize:{'words.generated.date'} @:{'words.generated.to'}\",\"default\":\"@.capitalize:{'words.generated.default'}\",\"defaults\":\"@.capitalize:{'words.generated.defaults'}\",\"delete_confirm\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.delete'} @:{'words.replication.article.host_mention'} @:{'words.generated.passkey'} \\\"{name}\\\"? @.capitalize:{'words.generated.this'} cannot be undone.\",\"delete_failed\":\"Failed @:{'words.generated.to'} @:{'words.generated.delete'} @:{'words.generated.passkey'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.again'}.\",\"delete_passkey\":\"@.capitalize:{'words.generated.delete'} @.capitalize:{'words.generated.passkey'}\",\"delete\":\"@:{'templates.generated.compat.common.delete'}\",\"deleted_successfully\":\"@.capitalize:{'words.generated.passkey'} @:{'words.generated.has'} @:{'words.generated.been'} deleted successfully.\",\"download_wash_certificate\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"edit\":\"@:{'templates.generated.compat.common.edit'}\",\"emphasis\":\"Emphasized\",\"error_loading_transaction\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.failed'}\",\"error_messages\":{\"not_array\":\"@.capitalize:{'words.generated.data'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.a'} @:{'words.generated.list'}\",\"not_object\":\"@.capitalize:{'words.generated.data'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.an'} @:{'words.generated.object'}\",\"not_string\":\"@.capitalize:{'words.generated.data'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.a'} @:{'words.generated.text'} string\"},\"excl_tax\":\"excl. @:{'words.generated.tax'}\",\"expand\":\"@:{'templates.generated.compat.common.expand'}\",\"failed_to_send\":\"Could @:{'words.generated.not'} @:{'words.generated.send'} @:{'words.generated.invoice'}\",\"failed\":\"@:{'templates.generated.compat.common.failed'}\",\"fixed_price_arrangements\":\"@.capitalize:{'words.generated.fixed'} @:{'words.generated.price'} @:{'words.generated.arrangements'}\",\"found\":\"@.capitalize:{'words.generated.found'}\",\"generate_wash_certificate\":\"@:{'words.generated.generate'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"generated\":\"@.capitalize:{'words.generated.generated'}\",\"handheld_pending_order\":\"Handheld\",\"have_not\":\"@.capitalize:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.have'}\",\"have\":\"@.capitalize:{'words.generated.has'}\",\"hide_content\":\"@:{'words.generated.hide'} @:{'words.generated.content'}\",\"history\":\"@.capitalize:{'words.generated.history'}\",\"home\":\"@:{'templates.generated.compat.common.home'}\",\"ignore_customer_arrangements\":\"@:{'words.generated.ignore'} @:{'words.generated.customer'} @:{'words.generated.arrangements'}\",\"import_all\":\"@.capitalize:{'words.generated.import'} @:{'words.generated.all'}\",\"import\":\"@:{'templates.generated.compat.common.import'}\",\"in_progress\":\"@:{'words.generated.in'} @:{'words.generated.progress'}\",\"in\":\"@:{'words.generated.in'}\",\"incl_tax\":\"@:{'words.generated.incl'}. @:{'words.generated.tax'}\",\"include_all_items_on_invoice\":\"@:{'words.generated.include'} @:{'words.generated.all'} @:{'words.generated.items'} @:{'words.generated.on'} @:{'words.generated.invoice'}\",\"information\":\"@.capitalize:{'words.generated.information'}\",\"invalid\":\"@.capitalize:{'words.generated.invalid'}\",\"invoice_already_created\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.already'} @:{'words.generated.created'}\",\"invoice_now\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.now'}\",\"invoice_per_order\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.per'} @:{'words.generated.order'}\",\"lane\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.lane'}\",\"last_wash\":\"@:{'templates.generated.compat.common.last_wash'}\",\"link\":\"@.capitalize:{'words.generated.link'}\",\"login_as_customer\":\"@.capitalize:{'words.generated.login'} @:{'words.generated.as'} @:{'words.generated.customer'}\",\"login_for_products\":\"Log @:{'words.generated.in'} @:{'words.generated.to'} @:{'words.generated.select'} @:{'words.generated.products'} @:{'words.generated.for'} @:{'words.generated.your'} @:{'words.generated.booking'}.\",\"login_with_qr_code\":\"@.capitalize:{'words.generated.login'} @:{'words.generated.with'} @:{'words.generated.qr'} @:{'words.generated.code'}\",\"login_with\":\"@.capitalize:{'words.generated.login'} @:{'words.generated.with'}\",\"login\":\"@.capitalize:{'words.generated.login'}\",\"manage\":\"@.capitalize:{'words.generated.manage'}\",\"mark_as_completed\":\"@:{'words.generated.mark'} @:{'words.generated.as'} @:{'words.generated.completed'}\",\"mark_as_not_duplicate\":\"@:{'words.generated.mark'} @:{'words.generated.as'} @:{'words.generated.not'} @:{'words.generated.duplicate'}\",\"month\":\"@:{'templates.generated.compat.common.month'}\",\"my\":\"@:{'words.generated.my'}\",\"no_additional_items\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.additional'} @:{'words.generated.items'}\",\"no_applicable_booking_types\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.applicable'} @:{'words.generated.booking'} @:{'words.generated.types'}, @:{'words.generated.try'} selecting @:{'words.generated.another'} @:{'words.generated.department'}.\",\"no_data\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.data'}\",\"no_slots_available\":\"@.capitalize:{'words.generated.no'} slots @:{'words.generated.available'}\",\"no_transactions_yet\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.transactions'} @:{'words.generated.yet'}\",\"non_included_products\":\"@.capitalize:{'words.generated.non'}-@:{'words.generated.included'} @:{'words.generated.products'}\",\"not_completed\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.completed'}\",\"not_configured\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.configured'}\",\"not_synchronized\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.synchronized'}\",\"note\":\"@:{'templates.generated.compat.common.note'}\",\"nothing_left_to_show\":\"@.capitalize:{'words.generated.nothing'} left @:{'words.generated.to'} @:{'words.generated.show'}\",\"nothing_to_do_all_set\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.done'}, @:{'words.generated.nothing'} @:{'words.generated.more'} @:{'words.generated.to'} @:{'words.generated.do'} @:{'words.generated.here'}!\",\"only_tank_cleaning\":\"@.capitalize:{'words.generated.only'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}\",\"open\":\"@:{'templates.generated.compat.common.open'}\",\"opening_hour\":\"@.capitalize:{'words.generated.opening'} @:{'words.generated.hour'}\",\"opening_hours\":\"@.capitalize:{'words.generated.opening'} @:{'words.generated.hours'}\",\"optional\":\"@:{'templates.generated.compat.common.optional'}\",\"or_scan_plates\":\"@.capitalize:{'words.generated.or'} @:{'words.generated.scan'} @:{'words.generated.plates'}\",\"other_period\":\"@.capitalize:{'words.generated.other'} @:{'words.generated.period'}\",\"other\":\"@.capitalize:{'words.generated.other'}\",\"password\":\"@.capitalize:{'words.generated.password'}\",\"past\":\"Past\",\"payment_status\":\"@.capitalize:{'words.generated.payment'} @.capitalize:{'words.generated.status'}\",\"payment\":{\"amount\":\"@.capitalize:{'words.generated.amount'}\",\"fixed_pricing\":\"@.capitalize:{'words.generated.fixed'} @:{'words.generated.price'}\",\"method\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.method'}\",\"payment_intent\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.intent'}\",\"payment_recieved\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.received'}\",\"receipt\":\"@.capitalize:{'words.generated.receipt'}\",\"receipt_url\":\"@.capitalize:{'words.generated.receipt'} @:{'words.generated.url'}\",\"transaction_id\":\"@.capitalize:{'words.generated.transaction'} @.upper:{'words.generated.id'}\",\"type\":{\"bank_transfer\":\"Bank @:{'words.generated.transfer'}\",\"card\":\"@.capitalize:{'words.generated.card'}\",\"cash\":\"@.capitalize:{'words.generated.cash'}\"}},\"pending\":\"@:{'templates.generated.compat.common.pending'}\",\"phone_country_code\":\"@.capitalize:{'words.generated.country'} @:{'words.generated.code'}\",\"phone_number\":\"@.capitalize:{'words.generated.phone'} @:{'words.generated.number'}\",\"possible_duplicates\":\"@.capitalize:{'words.generated.possible'} @:{'words.generated.duplicates'}\",\"preview\":\"@:{'templates.generated.compat.common.preview'}\",\"previous\":\"@:{'templates.generated.compat.common.previous'}\",\"price_match\":\"@.capitalize:{'words.generated.price'} @:{'words.generated.match'}\",\"price_unmatch\":\"@.capitalize:{'words.generated.price'} @:{'words.generated.mismatch'}\",\"prices\":\"@.capitalize:{'words.generated.prices'}\",\"print\":\"@:{'templates.generated.compat.common.print'}\",\"processing\":\"@:{'templates.generated.compat.common.processing'}\",\"queue\":\"@:{'words.generated.queue'}\",\"ready_to_wash\":\"@.capitalize:{'words.generated.ready'} @:{'words.generated.to'} @:{'words.generated.wash'}\",\"recent\":\"@.capitalize:{'words.generated.recent'}\",\"recommended\":\"Recommended\",\"register\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.user'}\",\"regret\":\"Regret\",\"reject\":\"Reject\",\"related_service\":\"Related @:{'words.generated.service'}\",\"required\":\"@:{'templates.generated.compat.common.required'}\",\"requires_action\":\"@.capitalize:{'words.generated.requires'} @:{'words.generated.action'}\",\"reset\":\"@:{'templates.generated.compat.common.reset'}\",\"rows\":\"@.capitalize:{'words.generated.rows'}\",\"scanning\":\"@.capitalize:{'words.generated.scanning'}\",\"search_cvr\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.cvr'} @:{'words.generated.number'}...\",\"search_phone\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.phone'} @:{'words.generated.number'}\",\"search_subuser\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.subuser'}\",\"search_transactions\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.in'} @:{'words.generated.transactions'}\",\"search_user\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.user'}\",\"selected\":\"@:{'templates.generated.compat.common.selected'}\",\"send_as_is\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.as'} @:{'words.generated.is'}\",\"show_content\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.content'}\",\"showing_of_separator\":\"@:{'templates.generated.compat.common.of'}\",\"special_arrangements\":\"@.capitalize:{'words.generated.special'} @:{'words.generated.arrangements'}\",\"split\":\"@.capitalize:{'words.generated.split'}\",\"statistics\":\"@.capitalize:{'words.generated.statistics'}\",\"stop\":\"@:{'templates.generated.compat.common.stop'}\",\"submit_test_email_prompt\":\"@.capitalize:{'words.generated.enter'} @:{'words.replication.article.host_mention'} @:{'words.generated.email'} @:{'words.generated.address'} @:{'words.generated.to'} @:{'words.generated.send'} @:{'words.generated.a'} @:{'words.generated.test'} @:{'words.generated.email'} @:{'words.generated.to'}\",\"submit_test_email\":\"@.capitalize:{'words.generated.send'} @.capitalize:{'words.generated.test'} @.capitalize:{'words.generated.email'}\",\"submit\":\"@:{'templates.generated.compat.common.submit'}\",\"submiter_identity_desc\":\"Configure @:{'words.replication.article.host_mention'} @:{'words.generated.sender'} @:{'words.generated.identity'} @:{'words.generated.for'} @:{'words.generated.outgoing'} emails\",\"submiter_identity\":\"@.capitalize:{'words.generated.sender'} @.capitalize:{'words.generated.identity'}\",\"subscriptions\":\"@.capitalize:{'words.generated.subscriptions'}\",\"succeeded\":\"Succeeded\",\"successful_syncs\":\"@.capitalize:{'words.generated.successful'} syncs\",\"summary\":\"@.capitalize:{'words.generated.summary'}\",\"synchronized\":\"@.capitalize:{'words.generated.synchronized'}\",\"take_picture\":\"@.capitalize:{'words.generated.take'} picture\",\"tank_cleaning\":\"@.capitalize:{'words.generated.tank'} @:{'words.generated.cleaning'}\",\"text\":{\"all\":\"Always\",\"anytime\":\"Anytime\",\"last_7_days\":\"@.capitalize:{'words.generated.last'} 7 @:{'words.generated.days'}\",\"last_month\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.month'}\",\"other_month\":\"@.capitalize:{'words.generated.other'} @:{'words.generated.month'}\",\"last_week\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.week'}\",\"same_month_last_year\":\"@.capitalize:{'words.generated.same'} @:{'words.generated.month'} @:{'words.generated.last'} @:{'words.generated.year'}\",\"same_week_last_year\":\"@.capitalize:{'words.generated.same'} @:{'words.generated.week'} @:{'words.generated.last'} @:{'words.generated.year'}\",\"search_in\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.in'}\",\"this_month\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.month'}\",\"this_week\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.week'}\",\"this_year\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.year'}\",\"yesterday\":\"@:{'templates.generated.compat.common.yesterday'}\"},\"time\":{\"at_hour\":\"@.capitalize:{'words.generated.at'}\"},\"to_department_and_customer_defaults\":\"@.capitalize:{'words.generated.to'} @:{'words.generated.department'} @:{'words.generated.and'} @:{'words.generated.customer'} @:{'words.generated.defaults'}\",\"total_amount\":\"@.capitalize:{'words.generated.total'} amount\",\"total_price_for_order\":\"@.capitalize:{'words.generated.total'} @:{'words.generated.price'} @:{'words.generated.for'} @:{'words.generated.order'}: {total} @:{'words.generated.dkk'}\",\"total\":\"@:{'templates.generated.compat.common.total'}\",\"unlink\":\"Unlink\",\"unselect\":\"@:{'templates.generated.compat.common.unselect'}\",\"usage_log\":\"@.capitalize:{'words.generated.usage'} @:{'words.generated.log'}\",\"view_order\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.transaction'}\",\"warnings\":\"@.capitalize:{'words.generated.warnings'}\",\"wash_multiple\":\"@.capitalize:{'words.generated.washes'}\",\"weekday\":\"Weekday\",\"zoom_out\":\"@:{'words.generated.zoom'} @:{'words.generated.out'}\",\"zoom\":\"@:{'words.generated.zoom'}\"},\"guest\":{\"about\":\"@.capitalize:{'words.generated.about'} @:{'words.generated.us'}\",\"access_code\":\"@.capitalize:{'words.generated.access'} @:{'words.generated.code'}\",\"app_store\":\"@.capitalize:{'words.generated.app'} @.capitalize:{'words.generated.store'}\",\"book_wash\":\"@.capitalize:{'words.generated.book'} @:{'words.generated.wash'}\",\"contact\":\"@.capitalize:{'words.generated.contact'} @:{'words.generated.us'}\",\"download_app\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.app'}\",\"driver\":{\"coming_soon\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.feature'} @:{'words.generated.is'} coming soon!\"},\"enter_access_code\":\"@.capitalize:{'words.generated.enter'} @:{'words.generated.access'} @:{'words.generated.code'}\",\"find_wash\":\"@.capitalize:{'words.generated.find'} @:{'words.generated.wash'}\",\"home\":{\"contact_or_call\":\"@:{'words.generated.or'} call @:{'words.generated.us'} @:{'words.generated.at'}\",\"contact_prefix\":\"@.capitalize:{'words.generated.if'} @:{'words.generated.you'} @:{'words.generated.experience'} @:{'words.generated.problems'}, @:{'words.generated.contact'} @:{'words.generated.us'} @:{'words.generated.at'}\",\"description\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.is'} @:{'words.generated.your'} @:{'words.generated.dashboard'}. @.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.your'} @:{'words.generated.orders'}, @:{'words.generated.bookings'} @:{'words.generated.and'} @:{'words.generated.vehicles'}.\",\"subtitle\":\"@:{'words.generated.welcome'} @:{'words.generated.to'} @.upper:{'words.generated.pleno'}\"},\"invalid_code\":\"@.capitalize:{'words.generated.invalid'} @:{'words.generated.access'} @:{'words.generated.code'}\",\"play_store\":\"@:{'words.generated.google'} Play\",\"pwa\":{\"already_installed\":\"@:{'words.generated.pleno'} @:{'words.generated.is'} @:{'words.generated.already'} @:{'words.generated.installed'} @:{'words.generated.on'} @:{'words.generated.your'} @:{'words.generated.device'}.\",\"android_instructions\":\"@:{'words.generated.press'} @:{'words.replication.article.host_mention'} @:{'words.generated.menu'} @:{'words.generated.button'} @:{'words.generated.and'} @:{'words.generated.select'} '@.capitalize:{'words.generated.install'} @.capitalize:{'words.generated.app'}'\",\"card_title\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.pleno'}\",\"click_to_install\":\"@.capitalize:{'words.generated.click'} @:{'words.replication.article.host_mention'} @:{'words.generated.button'} @:{'words.generated.below'} @:{'words.generated.to'} @:{'words.generated.install'} @:{'words.generated.pleno'} @:{'words.generated.on'} @:{'words.generated.your'} @:{'words.generated.device'}.\",\"description\":\"@:{'words.generated.pleno'} @:{'words.generated.is'} @:{'words.generated.a'} Progressive Web @.capitalize:{'words.generated.app'} (PWA) @:{'words.generated.that'} @:{'words.generated.can'} @:{'words.generated.be'} @:{'words.generated.installed'} @:{'words.generated.on'} @:{'words.generated.your'} @:{'words.generated.device'} @:{'words.generated.for'} @:{'words.generated.a'} better @:{'words.generated.experience'}.\",\"install\":\"@.capitalize:{'words.generated.install'}\",\"install_label\":\"@.capitalize:{'words.generated.install'} @:{'words.generated.pleno'}\",\"install_via_browser\":\"@.capitalize:{'words.generated.install'} @:{'words.generated.pleno'} @:{'words.generated.through'} @:{'words.generated.your'} @:{'words.generated.browser'} @:{'words.generated.menu'}\",\"installed_label\":\"@:{'words.generated.pleno'} @:{'words.generated.is'} @:{'words.generated.installed'}\",\"instructions\":\"@.capitalize:{'words.generated.instructions'}\",\"ios_instructions\":\"@:{'words.generated.press'} @:{'words.replication.article.host_mention'} @:{'words.generated.share'} @:{'words.generated.button'} @:{'words.generated.and'} @:{'words.generated.select'} '@.capitalize:{'words.generated.add'} @:{'words.generated.to'} @:{'words.generated.home'} @:{'words.generated.screen'}'\",\"subtitle\":\"@.capitalize:{'words.generated.download'} @:{'words.replication.article.host_mention'} @:{'words.generated.app'} @:{'words.generated.on'} @:{'words.generated.your'} @:{'words.generated.device'}\",\"title\":\"@:{'templates.generated.compat.common.download'}\",\"use_supported_browser\":\"@.capitalize:{'words.generated.to'} @:{'words.generated.install'} @:{'words.generated.pleno'}, @:{'words.generated.please'} @:{'words.generated.use'} @:{'words.generated.a'} @:{'words.generated.supported'} @:{'words.generated.browser'} @:{'words.generated.and'} @:{'words.generated.follow'} @:{'words.replication.article.host_mention'} @:{'words.generated.installation'} @:{'words.generated.instructions'}.\"},\"scan_qr\":\"@.capitalize:{'words.generated.scan'} @:{'words.generated.qr'} @:{'words.generated.code'}\",\"start_wash_subtitle\":\"@.capitalize:{'words.generated.enter'} @:{'words.replication.article.host_mention'} @:{'words.generated.access'} @:{'words.generated.code'} @:{'words.generated.to'} @:{'words.generated.continue'}\",\"start_wash_title\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.washing'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.guest'}\",\"start_wash\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.washing'}\",\"title\":\"@.capitalize:{'words.generated.guest'} @:{'words.generated.access'}\",\"welcome_message\":\"@:{'words.generated.welcome'} @:{'words.generated.to'} @.capitalize:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\",\"welcome\":\"@:{'templates.generated.compat.messages.welcome'}\"},\"header\":{\"about_us\":\"@.capitalize:{'words.generated.about'} @.capitalize:{'words.generated.us'}\",\"backoffice\":\"Backoffice\",\"customer_creation_discount\":\"Opret @:{'words.generated.brugerrabat'}\",\"customer_creation\":\"@.capitalize:{'words.generated.create'} @.capitalize:{'words.generated.user'}\",\"operator_login\":\"Operator @.capitalize:{'words.generated.login'}\",\"return_to_account\":\"@.capitalize:{'words.generated.return'} @:{'words.generated.to'} @:{'words.generated.own'} @:{'words.generated.account'}\"},\"invoice_period\":{\"flags\":{\"automatic\":{\"customer_rule_exempt_from_administration_fees\":\"{product} @:{'words.generated.is'} @:{'words.generated.an'} @:{'words.generated.administration'} @:{'words.generated.fee'} @:{'words.generated.for'} @:{'words.generated.an'} @:{'words.generated.exempt'} @:{'words.generated.customer'}.\",\"customer_rule_invoice_all_orders_individually\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.collection'} @:{'words.generated.contains'} @:{'words.generated.multiple'} @:{'words.generated.orders'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.customer'} @:{'words.generated.requiring'} individual @:{'words.generated.invoices'}.\",\"customer_rule_only_tank_cleaning\":\"{product} @:{'words.generated.violates'} @:{'words.replication.article.host_mention'} @:{'words.generated.only'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} @:{'words.generated.rule'}.\",\"customer_rule_requires_po_number\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.is'} @:{'words.generated.missing'} @:{'words.generated.a'} @:{'words.generated.required'} @:{'words.generated.po'} @:{'words.generated.number'}.\",\"customer_rule_requires_reference\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.is'} @:{'words.generated.missing'} @:{'words.generated.a'} @:{'words.generated.required'} @:{'words.generated.reference'}.\",\"customer_rule_restrict_addon_services\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} addon @:{'words.generated.services'}.\",\"customer_rule_restrict_interior_cleaning\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} @:{'words.generated.interior'} @:{'words.generated.wash'}.\",\"customer_rule_restrict_spot_free\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} @.capitalize:{'words.generated.spot'} @.capitalize:{'words.generated.free'}.\",\"customer_rule_restrict_tank_cleaning\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}.\",\"duplicate_vehicle_subscription_charge_same_month\":\"@.capitalize:{'words.generated.duplicate'} @:{'words.generated.vehicle'} @:{'words.generated.subscription'} charges @:{'words.generated.exist'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.same'} @:{'words.generated.month'}.\",\"historical_primary_product_mismatch\":\"{product} @:{'words.generated.differs'} @:{'words.generated.from'} @:{'words.replication.article.host_mention'} @:{'words.generated.registration'} @:{'words.generated.number'}'@:{'words.generated.s'} usual @:{'words.generated.product'} {expected_product}.\",\"multiple_fixed_pricing_items_same_month\":\"@.capitalize:{'words.generated.multiple'} @:{'words.generated.fixed'} @:{'words.generated.pricing'} @:{'words.generated.items'} @:{'words.generated.exist'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.same'} @:{'words.generated.month'}.\",\"multiple_identical_primary_vehicle_items\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.contains'} @:{'words.generated.multiple'} identical @:{'words.replication.adjective.primary_host_mention'} @:{'words.generated.vehicle'} @:{'words.generated.items'}.\",\"price_mismatch\":\"{product} @:{'words.generated.product'} @:{'words.generated.price'} @:{'words.generated.differs'} @:{'words.generated.from'} @:{'words.generated.expected'}.\",\"quantity_exceeds_product_limit\":\"{product} @:{'words.generated.quantity'} exceeds @:{'words.replication.article.host_mention'} @:{'words.generated.product'} @:{'words.generated.limit'}.\",\"vehicle_subscription_type_mismatch\":\"{product} @:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.match'} @:{'words.replication.article.host_mention'} @:{'words.generated.vehicle'} @:{'words.generated.subscription'} @:{'words.generated.type'} {expected_product}.\",\"wash_certificate_attached_without_item\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.is'} @:{'words.generated.attached'} @:{'words.generated.without'} @:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.item'}.\",\"wash_certificate_item_without_certificate\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.item'} @:{'words.generated.is'} @:{'words.generated.present'} @:{'words.generated.without'} @:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.certificate'}.\",\"xlvask_missing_order_link\":\"@:{'words.generated.xl'} @:{'words.generated.vask'} @:{'words.generated.wash'} @:{'words.generated.is'} neither @:{'words.generated.ignored'} nor @:{'words.generated.linked'} @:{'words.generated.to'} @:{'words.generated.an'} @:{'words.generated.order'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.period'}.\"},\"preview\":{\"entities\":{\"order_items\":\"@:{'words.generated.order'} @:{'words.generated.items'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @:{'words.generated.vask'} @:{'words.generated.details'}\"},\"expected_price\":\"@.capitalize:{'words.generated.expected'} @:{'words.generated.price'}\",\"start_time\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.time'}\",\"wash_id\":\"@:{'templates.generated.compat.objects.orders.columns.wash_id'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @:{'words.generated.vask'} @:{'words.generated.registration'}\"},\"status\":{\"false_positive\":\"@.capitalize:{'words.generated.false'} positive\",\"ignored\":\"@.capitalize:{'words.generated.ignored'}\",\"reason_placeholder\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.reason'}\",\"resolved\":\"Resolved\"},\"tokens\":{\"expected\":\"@:{'words.generated.expected'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @:{'words.generated.vask'} @:{'words.generated.wash'}\"},\"tooltip\":{\"created_by\":\"@.capitalize:{'words.generated.by'}\"}}},\"invoice_transfer_monitor\":{\"clear_all_error\":\"@.capitalize:{'words.generated.finished'} @:{'words.generated.transfers'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.be'} @:{'words.generated.cleared'}.\",\"clear_all\":\"@:{'words.generated.clear'} @:{'words.generated.finished'}\",\"clear_error\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.transfer'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.be'} @:{'words.generated.cleared'}.\",\"clear_one\":\"@:{'words.generated.clear'} @:{'words.generated.transfer'}\",\"empty\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.visible'} @:{'words.generated.transfers'}.\",\"load_error\":\"@.capitalize:{'words.generated.transfers'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.be'} @:{'words.generated.loaded'}.\",\"loading\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.transfers'}\",\"menu_title\":\"@.capitalize:{'words.generated.transfers'}\",\"no_details\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.details'} @:{'words.generated.yet'}.\",\"refreshing\":\"refreshing\",\"short\":{\"queued\":\"@:{'templates.generated.compat.invoicing.progress.queued'}\"},\"status\":{\"in_progress\":\"@:{'templates.generated.compat.pagination.in_progress'}\"},\"transfer\":\"@.capitalize:{'words.generated.transfer'}\",\"visible\":\"@:{'words.generated.visible'}\"},\"invoices\":{\"delete_invoice\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.invoice'}\",\"download_pdf\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.pdf'}\",\"due_date\":\"@:{'words.generated.due'} @:{'words.generated.date'}\",\"economic\":{\"check_errors\":\"@.capitalize:{'words.generated.check'} @:{'words.generated.errors'}\",\"draft\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.draft'}\",\"load_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} @:{'words.generated.loading'} @:{'words.generated.data'}.\",\"update_draft_status\":\"@.capitalize:{'words.generated.update'} @:{'words.replication.article.host_mention'} @:{'words.generated.status'} @:{'words.generated.of'} @:{'words.generated.invoice'} @:{'words.generated.drafts'}\"},\"edit_invoice\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.invoice'}\",\"invoice_number\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.number'}\",\"new_invoice\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.invoice'}\",\"no_invoices\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.invoices'} @:{'words.generated.found'}\",\"overdue\":\"Overdue\",\"paid\":\"@.capitalize:{'words.generated.paid'}\",\"partial\":\"Partially @:{'words.generated.paid'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.invoice'} @:{'words.generated.number'}, @:{'words.generated.customer'}\",\"search\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.invoices'}...\",\"statuses\":{\"draft\":\"@.capitalize:{'words.generated.draft'}\",\"draft_transaction\":\"@.capitalize:{'words.generated.draft'} transaction\"},\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.invoices'}\",\"unpaid\":\"Unpaid\"},\"invoicing_period\":{\"invoice_collection_actions\":{\"actions\":{\"merge_collections\":\"Merge\",\"queue_economic\":\"Invoice selected\",\"remove_customer_rule_violations\":\"Remove rule violations\",\"reset_hidden_item_prices\":\"Reset hidden prices\",\"split_by_month\":\"Split by month\"},\"error_title\":\"Action failed\",\"merge_requires_multiple_text\":\"Select at least two invoice collections to merge them.\",\"merge_requires_multiple_title\":\"Select multiple invoice collections\",\"merge_target_title\":\"Select target invoice collection\",\"menu\":{\"collapse_all\":\"Collapse all\",\"expand_all\":\"Expand all\",\"label\":\"Invoice collection actions ({count})\",\"modification_section\":\"Modify selected\",\"select_all\":\"Select all\",\"selection_section\":\"Selection\",\"unselect_all\":\"Unselect all\"},\"preview\":{\"affected_examples\":\"Example changes\",\"blocked_title\":\"Action is blocked\",\"blockers\":\"Blockers\",\"changed\":\"Changes: {count}\",\"collection_status_line\":\"Invoice collection #{collection}: {status}\",\"collections\":\"Invoice collections: {count}\",\"confirm_button\":\"Apply action\",\"confirmation_label\":\"Type {phrase} to confirm\",\"confirmation_mismatch\":\"Type exactly {phrase} to continue.\",\"merge_target\":\"Target: invoice collection #{id}\",\"no_changes_title\":\"No changes\",\"order_item_line\":\"Invoice collection #{collection}, order #{order}: {product}\",\"order_move_line\":\"Order #{order}: #{source} to #{target}\",\"requires_confirmation\":\"Review the preview. No changes are applied until you type {phrase}.\",\"skipped\":\"Skipped: {count}\",\"title\":\"Preview {action}\"},\"success_text\":\"Applied {count} changes.\",\"success_title\":\"Action completed\"},\"monthly_split\":{\"button\":\"@.capitalize:{'words.generated.split'} @:{'words.generated.invoices'} @:{'words.generated.by'} @:{'words.generated.month'}\",\"confirm_text\":\"@.capitalize:{'words.generated.split'} @:{'words.generated.non'}-@:{'words.generated.invoiced'} @:{'words.generated.collected'} @:{'words.generated.invoices'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.period'} @:{'words.generated.into'} @:{'words.generated.monthly'} @:{'words.generated.invoice'} @:{'words.generated.collections'}?\",\"confirm_yes\":\"@.capitalize:{'words.generated.yes'}, @:{'words.generated.split'} @:{'words.generated.by'} @:{'words.generated.month'}\",\"error_title\":\"@.capitalize:{'words.generated.monthly'} @:{'words.generated.split'} @:{'words.generated.failed'}\",\"preview_apply\":\"@.capitalize:{'words.generated.apply'} @:{'words.generated.split'}\",\"preview_create_new\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.collection'}\",\"preview_existing\":\"@.capitalize:{'words.generated.keep'} original @:{'words.generated.collection'} #{id}\",\"preview_no_changes_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.period'} @:{'words.generated.has'} @:{'words.generated.no'} @:{'words.generated.invoice'} @:{'words.generated.collections'} @:{'words.generated.that'} @:{'words.generated.will'} @:{'words.generated.be'} @:{'words.generated.changed'}.\",\"preview_no_changes_title\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.invoices'} @:{'words.generated.to'} @:{'words.generated.split'}\",\"preview_orders\":\"{count} @:{'words.generated.orders'}\",\"preview_skipped_title\":\"@.capitalize:{'words.generated.skipped'}\",\"preview_summary\":\"@:{'words.generated.processed'} {processed} @:{'words.generated.invoice'} @:{'words.generated.collections'}. @.capitalize:{'words.generated.will'} @:{'words.generated.split'} {changed}, @:{'words.generated.skipped'} {skipped}.\",\"preview_title\":\"@.capitalize:{'words.generated.preview'} @:{'words.generated.monthly'} @:{'words.generated.split'}\",\"success_text\":\"@:{'words.generated.processed'} {processed} @:{'words.generated.invoice'} @:{'words.generated.collections'}. @.capitalize:{'words.generated.split'} {changed}, @:{'words.generated.skipped'} {skipped}.\",\"success_title\":\"@.capitalize:{'words.generated.monthly'} @:{'words.generated.split'} @:{'words.generated.completed'}\"},\"multi_month_invoice_warning\":{\"invoice_together\":\"Invoice together\",\"split_by_month\":\"Split by month\",\"split_error_title\":\"Monthly split failed\",\"split_success_text\":\"Processed {processed} invoice collections. Split {changed}, skipped {skipped}.\",\"split_success_title\":\"Monthly split completed\",\"text\":\"You are about to invoice orders from multiple months together ({months}). Should they be split by month instead?\",\"title\":\"Orders from multiple months\"}},\"invoicing\":{\"progress\":{\"failed_to_send\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.send'} @:{'words.generated.invoice'}\",\"queued\":\"@.capitalize:{'words.generated.queued'}\",\"sending_invoices\":\"@.capitalize:{'words.generated.sending'} @:{'words.generated.invoices'}...\",\"succeeded\":\"@.capitalize:{'words.generated.successful'}\"}},\"login_qr\":{\"camera_error\":\"@.capitalize:{'words.generated.camera'} @.capitalize:{'words.generated.error'}\",\"login_with_password_instead\":\"@.capitalize:{'words.generated.login'} @:{'words.generated.with'} @:{'words.generated.password'} @:{'words.generated.instead'}\",\"login_with_password\":\"@.capitalize:{'words.generated.login'} @:{'words.generated.with'} @:{'words.generated.password'}\",\"mobile_only\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.page'} @:{'words.generated.is'} @:{'words.generated.only'} @:{'words.generated.available'} @:{'words.generated.on'} @:{'words.generated.mobile'} devices. @.capitalize:{'words.generated.please'} @:{'words.generated.use'} @:{'words.generated.your'} @:{'words.generated.phone'} @:{'words.generated.or'} @:{'words.generated.tablet'} @:{'words.generated.to'} @:{'words.generated.scan'} @:{'words.replication.article.host_mention'} @:{'words.generated.qr'} @:{'words.generated.code'}.\",\"scan_subtitle\":\"Place @:{'words.replication.article.host_mention'} @:{'words.generated.qr'} @:{'words.generated.code'} @:{'words.generated.within'} @:{'words.replication.article.host_mention'} frame\",\"scan_title\":\"@.capitalize:{'words.generated.scan'} @:{'words.generated.qr'} @.capitalize:{'words.generated.code'}\",\"unknown_qr_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.scanned'} @:{'words.generated.qr'} @:{'words.generated.code'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.valid'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.page'}.\",\"unknown_qr_title\":\"@.capitalize:{'words.generated.unknown'} @:{'words.generated.qr'} @.capitalize:{'words.generated.code'}\"},\"maintenance_menu\":{\"confirm_clear_local\":\"Clear all local app data and reload now?\",\"copy_trace_copied\":\"Copied\",\"copy_trace_failed\":\"Copy failed\",\"copy_trace\":\"Copy trace\",\"force_update_clear_hint\":\"Clears local storage, session storage, service workers, and browser caches.\",\"force_update_clear\":\"Force update and clear all local\",\"title\":\"Maintenance\",\"version\":\"Current {current} / latest {latest}\"},\"messages\":{\"are_you_sure\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'}?\",\"cannot_undo\":\"@.capitalize:{'words.generated.this'} decision @:{'words.generated.cannot'} @:{'words.generated.be'} @:{'words.generated.undone'}.\",\"confirm_cancel\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.cancel'}?\",\"confirm_delete\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.delete'} @:{'words.generated.this'}?\",\"confirmed\":\"@.capitalize:{'words.generated.confirmed'} @:{'words.generated.successful'}\",\"copied\":\"@.capitalize:{'words.generated.copied'} @:{'words.generated.to'} @:{'words.generated.clipboard'}\",\"error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.again'}.\",\"loading\":\"Laddar...\",\"no_results\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.results'} @:{'words.generated.found'}\",\"please_wait\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.wait'}...\",\"saved\":\"@.capitalize:{'words.generated.saved'} @:{'words.generated.successfully'}\",\"sent\":\"@.capitalize:{'words.generated.sent'} @:{'words.generated.successfully'}\",\"welcome\":\"@:{'words.generated.welcome'}\"},\"modals\":{\"action\":\"@.capitalize:{'words.generated.action'}\",\"active_tasks\":\"@.capitalize:{'words.generated.active'} @.capitalize:{'words.generated.tasks'} / @.capitalize:{'words.generated.actions'}\",\"add_condition_rule\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.condition'} @:{'words.generated.rule'}\",\"add_question_rule\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.question'} @:{'words.generated.rule'}\",\"add_task_rule\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.task'} @:{'words.generated.rule'}\",\"all_possible_questions\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.possible'} @:{'words.generated.questions'} (@:{'words.generated.visibility'})\",\"all_possible_tasks\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.possible'} @:{'words.generated.tasks'} (@:{'words.generated.visibility'})\",\"all_questions_answered\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.relevant'} @:{'words.generated.questions'} @:{'words.generated.have'} @:{'words.generated.been'} @:{'words.generated.answered'}!\",\"answer\":\"@:{'words.generated.answer'}\",\"answered_questions\":\"@.capitalize:{'words.generated.answered'} @:{'words.generated.questions'}\",\"are_you_sure\":\"@:{'templates.generated.compat.messages.are_you_sure'}\",\"attached_file\":\"@.capitalize:{'words.generated.attached'} @:{'words.generated.file'}\",\"attachments_for\":\"@:{'words.generated.attachments'} @:{'words.generated.for'}\",\"cannot_undo\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.cannot'} @:{'words.generated.undo'} @:{'words.generated.this'}!\",\"choose_file\":\"@.capitalize:{'words.generated.choose'} @:{'words.generated.a'} @:{'words.generated.file'}...\",\"could_not_read_file\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.read'} @:{'words.replication.article.host_mention'} @:{'words.generated.file'}. @.capitalize:{'words.generated.make'} @:{'words.generated.sure'} @:{'words.generated.it'} @:{'words.generated.is'} @:{'words.generated.a'} @:{'words.generated.valid'} @:{'words.generated.json'} @:{'words.generated.file'}.\",\"delete_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} deleting @:{'words.replication.article.host_mention'} @:{'words.generated.file'}.\",\"download_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} @:{'words.generated.downloading'} @:{'words.replication.article.host_mention'} @:{'words.generated.file'}.\",\"export\":\"@:{'templates.generated.compat.common.export'}\",\"fetching_data\":\"@.capitalize:{'words.generated.fetching'} @:{'words.generated.data'}...\",\"fetching_files\":\"@.capitalize:{'words.generated.fetching'} @:{'words.generated.files'}...\",\"file_deleted\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.file'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.deleted'}.\",\"file_uploaded\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.file'} @:{'words.generated.has'} @:{'words.generated.been'} uploaded.\",\"filename\":\"Filename\",\"if_condition\":\"@.capitalize:{'words.generated.if'}\",\"invalid_file_format\":\"@.capitalize:{'words.generated.invalid'} @:{'words.generated.file'} @:{'words.generated.format'}. @.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.file'} @:{'words.generated.must'} contain @:{'words.generated.an'} \\\"@:{'words.generated.items'}\\\" array.\",\"lane\":\"@.capitalize:{'words.generated.lane'}\",\"mass_data_warning\":\"@.capitalize:{'words.generated.this'} function @:{'words.generated.can'} @:{'words.generated.only'} @:{'words.generated.take'} @:{'words.generated.import'} @:{'words.generated.of'} @:{'words.generated.data'} @:{'words.generated.in'} @:{'words.generated.special'} @:{'words.generated.format'}, @:{'words.generated.it'} @:{'words.generated.should'} @:{'words.generated.therefore'} @:{'words.generated.not'} @:{'words.generated.be'} @:{'words.generated.used'} @:{'words.generated.without'} @:{'words.generated.being'} @:{'words.generated.set'} @:{'words.generated.into'} @:{'words.generated.this'}.\",\"no_active_tasks\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.active'} @:{'words.generated.tasks'}\",\"no_answers_yet\":\"@.capitalize:{'words.generated.no'} answers @:{'words.generated.yet'}\",\"no_conditions_found\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.conditions'} @:{'words.generated.found'}\",\"no_files_attached\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.files'} @:{'words.generated.attached'} @:{'words.generated.to'} @:{'words.generated.this'} @:{'words.generated.task'}.\",\"no_rules\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.rules'}\",\"no_tasks_found\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.tasks'} @:{'words.generated.found'}\",\"no\":\"@.upper:{'words.generated.no'}\",\"please_wait\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.wait'} @:{'words.generated.while'} @:{'words.generated.we'} @:{'words.generated.load'} @:{'words.replication.article.host_mention'} @:{'words.generated.data'}.\",\"question\":\"@.capitalize:{'words.generated.question'}\",\"questions\":\"@.capitalize:{'words.generated.questions'}\",\"remove_passed\":\"@.capitalize:{'words.generated.remove'} passed\",\"reset_all\":\"@.capitalize:{'words.generated.reset'} @:{'words.generated.all'}\",\"rule_types\":{\"IS_FALSE\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.false'}\",\"IS_FALSE_OR_ANY_FALSE\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.false'} @:{'words.generated.or'} @.upper:{'words.generated.any'} @:{'words.generated.false'}\",\"IS_FALSE_OR_NOT_SET\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.false'} @:{'words.generated.or'} @:{'words.generated.not'} @:{'words.generated.set'}\",\"IS_NOT_SET\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.set'}\",\"IS_SET\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.set'}\",\"IS_TRUE\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.true'}\",\"IS_TRUE_OR_ANY_TRUE\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.true'} @:{'words.generated.or'} @.upper:{'words.generated.any'} @:{'words.generated.true'}\",\"IS_TRUE_OR_NOT_SET\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.true'} @:{'words.generated.or'} @:{'words.generated.not'} @:{'words.generated.set'}\"},\"rules_for\":\"@.capitalize:{'words.generated.rules'} @:{'words.generated.for'}\",\"rules\":\"@.capitalize:{'words.generated.rules'}\",\"run_again\":\"@.capitalize:{'words.generated.run'} @:{'words.generated.again'}\",\"save_changes\":\"@.capitalize:{'words.generated.save'} @:{'words.generated.changes'}\",\"select_an_object\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.an'} @.capitalize:{'words.generated.object'}\",\"start_over\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.over'}\",\"test_flow\":\"@.capitalize:{'words.generated.test'} flow\",\"under_development\":\"Under @:{'words.generated.development'}...\",\"unknown_customer\":\"@.capitalize:{'words.generated.unknown'} @:{'words.generated.customer'}\",\"upload_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} @:{'words.generated.uploading'} @:{'words.replication.article.host_mention'} @:{'words.generated.file'}.\",\"yes\":\"@.upper:{'words.generated.yes'}\"},\"nav\":{\"create_transaction\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.transaction'}\",\"daily_report\":\"@.capitalize:{'words.generated.daily'} @:{'words.generated.report'}\",\"drafts\":\"@.capitalize:{'words.generated.drafts'}\",\"drivers\":\"@.capitalize:{'words.generated.drivers'}\",\"notifications\":\"@.capitalize:{'words.generated.notifications'}\",\"overview\":\"@.capitalize:{'words.generated.overview'}\",\"pos_system\":\"@:{'words.generated.pos'} @.capitalize:{'words.generated.system'}\",\"select_department\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.department'}\",\"self_wash\":\"@.capitalize:{'words.generated.self'} @:{'words.generated.wash'}\",\"wash_log\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.log'}\"},\"objects\":{\"bookings\":{\"columns\":{\"economic_customer_number\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.customer'} @:{'words.generated.number'}\",\"pickup\":\"@:{'templates.generated.compat.pagination.pickup'}\",\"wash_certificate_email\":\"@.capitalize:{'words.generated.wash'} @.capitalize:{'words.generated.certificate'} @.capitalize:{'words.generated.email'}\",\"wash_certificate_pdf\":\"@.capitalize:{'words.generated.wash'} @.capitalize:{'words.generated.certificate'} @:{'words.generated.pdf'}\",\"wash_certificate_status\":\"@.capitalize:{'words.generated.wash'} @.capitalize:{'words.generated.certificate'} @.capitalize:{'words.generated.status'}\",\"wash_certificate_url\":\"@.capitalize:{'words.generated.wash'} @.capitalize:{'words.generated.certificate'} @:{'words.generated.url'}\"},\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.bookings'}\"},\"branding\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.branding'}\",\"multiple\":\"brands\",\"single\":\"@:{'words.generated.branding'}\",\"title\":\"@.capitalize:{'words.generated.branding'}\"},\"categories\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.categories'}\",\"single\":\"@:{'words.generated.category'}\",\"title\":\"@:{'templates.generated.compat.superuser.nav.categories'}\"},\"collected_order_invoices\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.collected'} @:{'words.generated.order'} @:{'words.generated.invoices'}\",\"multiple\":\"@:{'words.generated.collected'} @:{'words.generated.order'} @:{'words.generated.invoices'}\",\"single\":\"@:{'words.generated.collected'} @:{'words.generated.order'} @:{'words.generated.invoice'}\",\"title\":\"@.capitalize:{'words.generated.collected'} @.capitalize:{'words.generated.order'} @.capitalize:{'words.generated.invoices'}\"},\"columns\":{\"capacity\":\"Capacity\",\"category_id\":\"@.capitalize:{'words.generated.category'} @.upper:{'words.generated.id'}\",\"city\":\"@:{'templates.generated.compat.common.city'}\",\"color\":\"@:{'templates.generated.compat.vehicles.color'}\",\"condition\":\"@.capitalize:{'words.generated.condition'}\",\"config\":\"@.capitalize:{'words.generated.config'}\",\"content\":\"@.capitalize:{'words.generated.content'}\",\"country\":\"@:{'templates.generated.compat.common.country'}\",\"customer_number\":\"Customer Number\",\"data\":\"@.capitalize:{'words.generated.data'}\",\"deleted\":\"@.capitalize:{'words.generated.deleted'}\",\"department_id\":\"@:{'templates.generated.compat.common.department_id'}\",\"duration\":\"@.capitalize:{'words.generated.duration'}\",\"dynamic_image_id\":\"Dynamic @.capitalize:{'words.generated.image'} @.upper:{'words.generated.id'}\",\"email\":\"@:{'templates.generated.compat.common.email'}\",\"email_desc\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.email'} @:{'words.generated.address'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.driver'}.\",\"external_id\":\"External @.upper:{'words.generated.id'}\",\"filled_by\":\"@.capitalize:{'words.generated.filled'} @.capitalize:{'words.generated.by'}\",\"grant\":\"@.capitalize:{'words.generated.grant'}\",\"icon\":\"Icon\",\"image\":\"@.capitalize:{'words.generated.image'}\",\"is_entrance\":\"@.capitalize:{'words.generated.is'} entrance\",\"is_exit\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.exit'}\",\"key\":\"@.capitalize:{'words.generated.key'}\",\"max\":\"Maximum\",\"message\":\"@.capitalize:{'words.generated.message'}\",\"module\":\"@.capitalize:{'words.generated.module'}\",\"notes\":\"@:{'templates.generated.compat.common.notes'}\",\"order_id\":\"Order ID\",\"permission\":\"@.capitalize:{'words.generated.permission'}\",\"po_number\":\"@:{'templates.generated.compat.admin.pos.po_number'}\",\"priority\":\"@:{'words.generated.priority'}\",\"processor\":\"@.capitalize:{'words.generated.invoice'} @.capitalize:{'words.generated.processor'}\",\"relay_id\":\"@.capitalize:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_in_id\":\"Input @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_machine_cleaner_id\":\"@.capitalize:{'words.generated.machine'} cleaner @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_machine_id\":\"@.capitalize:{'words.generated.machine'} @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_machine_program_picker_id\":\"@.capitalize:{'words.generated.machine'} program picker @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_out_id\":\"Output @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"role_id\":\"@.capitalize:{'words.generated.role'} @.upper:{'words.generated.id'}\",\"rule\":\"@.capitalize:{'words.generated.rule'}\",\"sort_order\":\"@:{'words.generated.sort'} @.capitalize:{'words.generated.order'}\",\"suspended\":\"Suspended\",\"task\":\"@.capitalize:{'words.generated.task'}\",\"title\":\"Title\",\"total_net_amount\":\"@.capitalize:{'words.generated.total'} @.capitalize:{'words.generated.net'} @.capitalize:{'words.generated.amount'}\",\"updated_at\":\"@:{'templates.generated.compat.common.updated'}\",\"url\":\"@:{'words.generated.url'}\",\"user_id\":\"@:{'templates.generated.compat.user_admin.user_id'}\",\"water_usage\":\"@.capitalize:{'words.generated.water'} @.capitalize:{'words.generated.usage'} (m3)\",\"zip\":\"@:{'words.generated.zip_zip'} @.capitalize:{'words.generated.code'}\"},\"department_categories\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.department'} @:{'words.generated.categories'}\",\"multiple\":\"@:{'words.generated.department'} @:{'words.generated.categories'}\",\"single\":\"@:{'words.generated.department'} @:{'words.generated.category'}\",\"title\":\"@.capitalize:{'words.generated.department'} @.capitalize:{'words.generated.categories'}\"},\"department_daily_reports\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.daily'} @:{'words.generated.reports'}\",\"multiple\":\"@:{'words.generated.daily'} @:{'words.generated.reports'}\",\"title\":\"@.capitalize:{'words.generated.daily'} @.capitalize:{'words.generated.reports'}\"},\"department_gates\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.department'} @:{'words.generated.gates'}\",\"multiple\":\"@:{'words.generated.department'} @:{'words.generated.gates'}\",\"single\":\"@:{'words.generated.department'} @:{'words.generated.gate'}\"},\"department_lanes\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.wash'} @:{'words.generated.lanes'}\",\"multiple\":\"@:{'words.generated.wash'} @:{'words.generated.lanes'}\",\"single\":\"@:{'words.generated.wash'} @:{'words.generated.lane'}\"},\"department_notification_sms\":{\"country_codes\":{\"denmark\":\"@:{'words.generated.denmark'} (+45)\",\"finland\":\"Finland (+358)\",\"norway\":\"Norway (+47)\",\"sweden\":\"Sweden (+46)\"},\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.department'} @:{'words.generated.sms'} @:{'words.generated.notifications'}\",\"multiple\":\"@:{'words.generated.phone'} @:{'words.generated.numbers'}\",\"title\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.sms'} @.capitalize:{'words.generated.notifications'}\"},\"department_relays\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.department'} @:{'words.generated.relays'}\",\"single\":\"@:{'words.generated.department'} @:{'words.generated.relay'}\"},\"department_time_bookings_entries\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.time'} @:{'words.generated.bookings'}\",\"single\":\"@:{'words.generated.time'} @:{'words.generated.booking'}\"},\"department_time_bookings_opening_hours\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.opening'} @:{'words.generated.hours'}\",\"single\":\"@:{'words.generated.opening'} @:{'words.generated.hour'}\"},\"department_time_bookings_types\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.booking'} @:{'words.generated.types'}\",\"multiple\":\"@:{'words.generated.booking'} @:{'words.generated.types'}\",\"single\":\"@:{'words.generated.booking'} @:{'words.generated.type'}\"},\"department_variables\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.department'} @:{'words.generated.variables'}\",\"multiple\":\"@:{'words.generated.department'} @:{'words.generated.variables'}\",\"single\":\"@:{'words.generated.department'} variable\",\"title\":\"@.capitalize:{'words.generated.department'} @.capitalize:{'words.generated.variables'}\"},\"departments\":{\"columns\":{\"archived\":\"@:{'words.generated.archived'}\",\"custom_pricing_only\":\"No fallback pricing\",\"dimension\":\"Dimension\",\"economic_department\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @.capitalize:{'words.generated.department'}\",\"latitude\":\"@:{'templates.generated.compat.departments.form.latitude'}\",\"longitude\":\"@:{'templates.generated.compat.departments.form.longitude'}\",\"slack_webhook\":\"@:{'words.generated.slack'} @.capitalize:{'words.generated.webhook'}\"},\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.departments'}\",\"filters\":{\"active\":\"@.capitalize:{'words.generated.active'} @:{'words.generated.departments'}\",\"archived\":\"@:{'words.generated.archived'} @:{'words.generated.departments'}\"}},\"economic_departments\":{\"columns\":{\"department_number\":\"@.capitalize:{'words.generated.department'} @.capitalize:{'words.generated.number'}\"},\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.departments'}\",\"multiple\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.departments'}\",\"single\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.department'}\",\"title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @.capitalize:{'words.generated.departments'}\"},\"economic_products\":{\"columns\":{\"product_number\":\"@.capitalize:{'words.generated.product'} @.capitalize:{'words.generated.number'}\"},\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.products'}\",\"multiple\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.products'}\",\"single\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.product'}\",\"title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @.capitalize:{'words.generated.products'}\"},\"forms\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.forms'}\",\"multiple\":\"@:{'words.generated.forms'}\",\"single\":\"@:{'words.generated.form'}\",\"title\":\"@.capitalize:{'words.generated.forms'}\"},\"goals\":{\"columns\":{\"current\":\"@.capitalize:{'words.generated.current'}\",\"period\":\"@.capitalize:{'words.generated.period'}\",\"target\":\"@.capitalize:{'words.generated.target'}\"},\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.goals'}\",\"multiple\":\"@:{'words.generated.goals'}\",\"single\":\"@:{'words.generated.goal'}\"},\"invoices\":{\"columns\":{\"due_date\":\"@:{'words.generated.due'} @.capitalize:{'words.generated.date'}\"},\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.invoices'}\",\"multiple\":\"@:{'words.generated.invoices'}\",\"single\":\"@:{'words.generated.invoice'}\"},\"module_action_logs\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.module'} @:{'words.generated.action'} @:{'words.generated.logs'}\",\"multiple\":\"@:{'words.generated.module'} @:{'words.generated.actions'}\",\"single\":\"@:{'words.generated.module'} @:{'words.generated.action'}\",\"title\":\"@.capitalize:{'words.generated.module'} @.capitalize:{'words.generated.action'} @.capitalize:{'words.generated.logs'}\"},\"notifications\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.notifications'}\",\"single\":\"@:{'words.generated.notification'}\"},\"order_bookings\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.order'} @:{'words.generated.bookings'}\",\"multiple\":\"@:{'words.generated.order'} @:{'words.generated.bookings'}\",\"single\":\"@:{'words.generated.order'} @:{'words.generated.booking'}\"},\"orders\":{\"columns\":{\"cashier\":\"Cashier\",\"reg_2\":\"@.capitalize:{'words.generated.reg'}. 2\",\"reg_3\":\"@.capitalize:{'words.generated.reg'}. 3\",\"wash_id\":\"@.capitalize:{'words.generated.wash'} @.upper:{'words.generated.id'}\"},\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.wash'} @:{'words.generated.log'}\"},\"permissions\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.permissions'}\"},\"product_options\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.product'} @:{'words.generated.options'}\",\"multiple\":\"@:{'words.generated.product'} @:{'words.generated.options'}\",\"single\":\"@:{'words.generated.product'} @:{'words.generated.option'}\",\"title\":\"@.capitalize:{'words.generated.product'} @.capitalize:{'words.generated.options'}\"},\"products\":{\"columns\":{\"economic_product\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @.capitalize:{'words.generated.product'}\",\"is_wash\":\"Is Wash\",\"piktogram\":\"Pictogram\",\"requires_note\":\"@.capitalize:{'words.generated.requires'} @.capitalize:{'words.generated.note'}\",\"show_in_booking_form\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.in'} @.capitalize:{'words.generated.booking'} @.capitalize:{'words.generated.form'}\",\"sort_priority\":\"@:{'words.generated.sort'} @:{'words.generated.priority'} (lowest @:{'words.generated.first'})\",\"subscription_allowed\":\"@.capitalize:{'words.generated.subscription'} @:{'words.generated.allowed'}\",\"use_category_discount\":\"@.capitalize:{'words.generated.use'} @.capitalize:{'words.generated.category'} @.capitalize:{'words.generated.discount'}\"},\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.products'}\",\"multiple\":\"@:{'words.generated.products'}\",\"single\":\"@:{'words.generated.product'}\"},\"roles\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.roles'}\"},\"self_serve_condition_rules\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.condition'} @:{'words.generated.rules'}\",\"multiple\":\"@:{'words.generated.condition'} @:{'words.generated.rules'}\",\"single\":\"@:{'words.generated.condition'} @:{'words.generated.rule'}\"},\"self_serve_conditions\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.conditions'}\",\"single\":\"@:{'words.generated.condition'}\",\"title\":\"@.capitalize:{'words.generated.self'}-@.capitalize:{'words.generated.serve'} @.capitalize:{'words.generated.conditions'}\"},\"self_serve_questions\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.questions'}\",\"single\":\"@:{'words.generated.question'}\",\"title\":\"@.capitalize:{'words.generated.self'}-@.capitalize:{'words.generated.serve'} @.capitalize:{'words.generated.questions'}\"},\"self_serve_tasks\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.tasks'}\",\"multiple\":\"@:{'words.generated.tasks'}\",\"single\":\"@:{'words.generated.task'}\",\"title\":\"@.capitalize:{'words.generated.self'}-@.capitalize:{'words.generated.serve'} @.capitalize:{'words.generated.tasks'}\"},\"self_serve_vehicle_conditions\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.vehicle'} @:{'words.generated.conditions'}\",\"multiple\":\"@:{'words.generated.vehicle'} @:{'words.generated.conditions'}\",\"single\":\"@:{'words.generated.vehicle'} @:{'words.generated.condition'}\"},\"subuser_grants\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.subuser'} @:{'words.generated.grants'}\",\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.view'} @:{'words.generated.and'} @:{'words.generated.manage'} @:{'words.generated.your'} @:{'words.generated.drivers'}.\",\"title\":\"@:{'templates.generated.compat.nav.drivers'}\"},\"vehicles\":{\"columns\":{\"reg\":\"@.capitalize:{'words.generated.reg'}. 1.\"},\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.vehicles'}\"},\"xlvask_vehicle_types\":{\"description\":\"@.capitalize:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.vehicle'} @:{'words.generated.types'}\",\"title\":\"@.capitalize:{'words.generated.vehicle'} @.capitalize:{'words.generated.types'}\"}},\"order_bookings\":{\"add_service\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.service'}\",\"no_date_selected\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.date'} @:{'words.generated.selected'}\",\"no_department_selected\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.department'} @:{'words.generated.selected'}\"},\"outdated\":{\"gateway\":{\"description\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.will'} @:{'words.generated.be'} redirected @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.same'} path @:{'words.generated.on'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}.\",\"redirect_now\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.now'}\",\"redirecting_in\":\"Redirecting @:{'words.generated.in'} {seconds} @:{'words.generated.seconds'}...\",\"subtitle\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.link'} @:{'words.generated.is'} @:{'words.generated.being'} phased @:{'words.generated.out'}.\",\"title\":\"@.capitalize:{'words.generated.outdated'} @:{'words.generated.gateway'}\"},\"installation\":{\"android_step_1\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.in'} @:{'words.generated.chrome'}.\",\"android_step_2\":\"@.capitalize:{'words.generated.open'} @:{'words.replication.article.host_mention'} @:{'words.generated.browser'} @:{'words.generated.menu'} @:{'words.generated.and'} @:{'words.generated.choose'} \\\"@.capitalize:{'words.generated.install'} @:{'words.generated.app'}\\\".\",\"android_step_3\":\"@.capitalize:{'words.generated.use'} @:{'words.replication.article.host_mention'} newly @:{'words.generated.installed'} @:{'words.generated.app'} @:{'words.generated.and'} @:{'words.generated.remove'} @:{'words.generated.this'} @:{'words.generated.outdated'} @:{'words.generated.one'}.\",\"android_title\":\"Android @:{'words.generated.migration'}\",\"description\":\"@.capitalize:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.has'} moved @:{'words.generated.to'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.installation'} @:{'words.generated.at'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}. @.capitalize:{'words.generated.please'} @:{'words.generated.open'} @:{'words.replication.article.host_mention'} @:{'words.generated.new'} site @:{'words.generated.and'} @:{'words.generated.install'} @:{'words.generated.it'} @:{'words.generated.again'} @:{'words.generated.on'} @:{'words.generated.your'} @:{'words.generated.device'}.\",\"ios_step_1\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.in'} @:{'words.generated.safari'}.\",\"ios_step_2\":\"Tap @.capitalize:{'words.generated.share'} @:{'words.generated.and'} @:{'words.generated.choose'} \\\"@.capitalize:{'words.generated.add'} @:{'words.generated.to'} @.capitalize:{'words.generated.home'} @.capitalize:{'words.generated.screen'}\\\".\",\"ios_step_3\":\"@.capitalize:{'words.generated.use'} @:{'words.replication.article.host_mention'} @:{'words.generated.new'} @:{'words.generated.home'}-@:{'words.generated.screen'} @:{'words.generated.app'} @:{'words.generated.and'} @:{'words.generated.remove'} @:{'words.generated.this'} @:{'words.generated.outdated'} @:{'words.generated.one'}.\",\"ios_title\":\"@:{'words.generated.iphone'} @:{'words.generated.migration'}\",\"open_now\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.now'}\",\"subtitle\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.installed'} @:{'words.generated.app'} @:{'words.generated.is'} @:{'words.generated.outdated'} @:{'words.generated.and'} @:{'words.generated.must'} @:{'words.generated.be'} migrated.\",\"title\":\"@.capitalize:{'words.generated.outdated'} @:{'words.generated.installation'}\"}},\"pagination\":{\"archive\":\"Archive\",\"clear_all\":\"Clear all\",\"ascending\":\"Ascending (Oldest @:{'words.generated.first'})\",\"booking_status\":\"@.capitalize:{'words.generated.booking'} @:{'words.generated.status'}\",\"bookings_overview\":\"@.capitalize:{'words.generated.bookings'} @:{'words.generated.overview'}\",\"descending\":\"Descending (Newest @:{'words.generated.first'})\",\"download_excel\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.excel'}\",\"error_status\":\"@.capitalize:{'words.generated.error'} @:{'words.generated.status'}\",\"from_date\":\"@.capitalize:{'words.generated.from'} @:{'words.generated.date'}\",\"has_special_agreement\":\"@.capitalize:{'words.generated.has'} @:{'words.generated.special'} @:{'words.generated.agreement'}\",\"has_wash_subscription\":\"@.capitalize:{'words.generated.has'} @:{'words.generated.wash'} @:{'words.generated.subscription'}\",\"here\":\"@:{'words.generated.here'}\",\"hide_filters\":\"@:{'words.generated.hide'} @:{'words.generated.filters'}\",\"in_progress\":\"@.capitalize:{'words.generated.in'} @:{'words.generated.progress'}\",\"invoice_per_month\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.per'} @:{'words.generated.month'}\",\"invoice_selection\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.selection'}\",\"invoicing_period\":\"@.capitalize:{'words.generated.invoicing'} @:{'words.generated.period'}\",\"loading\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.data'}...\",\"new_booking\":\"@:{'templates.generated.compat.bookings.new_booking'}\",\"next\":\"@.capitalize:{'words.generated.next'} @:{'words.generated.page'}\",\"no_special_agreement\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.special'} @:{'words.generated.agreement'}\",\"no_wash_subscription\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.wash'} @:{'words.generated.subscription'}\",\"not_booked\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.booked'}\",\"not_completed\":\"@:{'templates.generated.compat.global.not_completed'}\",\"not_specified\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.specified'}\",\"not_tank_cleaning\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}\",\"old_booking_notice\":\"@.capitalize:{'words.generated.note'}: @.capitalize:{'words.generated.you'} @:{'words.generated.are'} @:{'words.generated.on'} @:{'words.replication.article.host_mention'} @:{'words.generated.old'} @:{'words.generated.booking'} @:{'words.generated.portal'}, @:{'words.generated.we'} @:{'words.generated.are'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.process'} @:{'words.generated.of'} moving @:{'words.generated.historical'} @:{'words.generated.data'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.new'} @:{'words.generated.one'}. @.capitalize:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.find'} @:{'words.replication.article.host_mention'} @:{'words.generated.new'} @:{'words.generated.booking'} @:{'words.generated.portal'}\",\"old\":\"@.capitalize:{'words.generated.old'}\",\"only_tank_cleaning\":\"@:{'templates.generated.compat.global.only_tank_cleaning'}\",\"only_today\":\"@.capitalize:{'words.generated.only'} @:{'words.generated.today'}\",\"order_direction\":\"@.capitalize:{'words.generated.order'} direction\",\"other_filters\":\"@.capitalize:{'words.generated.other'} @:{'words.generated.filters'}\",\"other_no_tracking\":\"@.capitalize:{'words.generated.other'} (@.capitalize:{'words.generated.no'} tracking)\",\"page_of\":\"@:{'templates.common.page_of'}\",\"payment_processor\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.processor'}\",\"per_page\":\"@.capitalize:{'words.generated.per'} @:{'words.generated.page'}\",\"pickup\":\"@:{'words.generated.pickup'}\",\"previous\":\"@.capitalize:{'words.generated.previous'} @:{'words.generated.page'}\",\"reload\":\"@:{'templates.generated.compat.common.refresh'}\",\"show_filters\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.filters'}\",\"show_only_pending\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.only'} @:{'words.generated.pending'}\",\"show_only_today\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.only'} @:{'words.generated.today'}\",\"show_only_todays_pending\":\"@.capitalize:{'words.generated.show'} @:{'words.generated.only'} @:{'words.generated.today'}'@:{'words.generated.s'} @:{'words.generated.pending'}\",\"special_agreement\":\"@.capitalize:{'words.generated.special'} @:{'words.generated.agreement'}\",\"to_date\":\"@.capitalize:{'words.generated.to'} @:{'words.generated.date'}\",\"version\":\"@.capitalize:{'words.generated.version'}\",\"wash_subscription\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.subscription'}\"},\"passkeys\":{\"added_successfully\":\"@.capitalize:{'words.generated.passkey'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.added'} @:{'words.generated.successfully'}.\",\"delete_confirm\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.delete'} @:{'words.replication.article.host_mention'} @:{'words.generated.passkey'} \\\"{name}\\\"? @.capitalize:{'words.generated.this'} @:{'words.generated.cannot'} @:{'words.generated.be'} @:{'words.generated.undone'}.\",\"description\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.passkeys'} @:{'words.generated.to'} @:{'words.generated.sign'} @:{'words.generated.in'} securely @:{'words.generated.with'} biometrics @:{'words.generated.like'} Face @.upper:{'words.generated.id'}, Touch @.upper:{'words.generated.id'}, @:{'words.generated.or'} @:{'words.generated.your'} @:{'words.generated.device'} PIN.\",\"login_failed\":\"@.capitalize:{'words.generated.failed'} @:{'words.generated.to'} @:{'words.generated.sign'} @:{'words.generated.in'} @:{'words.generated.with'} @:{'words.generated.passkey'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.again'}.\",\"login_with_passkey\":\"@.capitalize:{'words.generated.sign'} @:{'words.generated.in'} @:{'words.generated.with'} @.capitalize:{'words.generated.passkey'}\",\"name_label\":\"@.capitalize:{'words.generated.passkey'} @.capitalize:{'words.generated.name'}\",\"name_placeholder\":\"@:{'words.generated.e'}.@:{'words.generated.g'}., @:{'words.generated.my'} @:{'words.generated.iphone'}, @.capitalize:{'words.generated.work'} Laptop\",\"name_required\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.enter'} @:{'words.generated.a'} @:{'words.generated.name'} @:{'words.generated.for'} @:{'words.generated.your'} @:{'words.generated.passkey'}\",\"no_passkeys\":\"@.capitalize:{'words.generated.you'} haven'@:{'words.generated.t'} @:{'words.generated.added'} @:{'words.generated.any'} @:{'words.generated.passkeys'} @:{'words.generated.yet'}. @.capitalize:{'words.generated.add'} @:{'words.generated.one'} @:{'words.generated.to'} @:{'words.generated.enable'} passwordless @:{'words.generated.sign'}-@:{'words.generated.in'}.\",\"not_supported_browser\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.browser'} doesn'@:{'words.generated.t'} @:{'words.generated.support'} @:{'words.generated.passkeys'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.using'} @:{'words.generated.a'} modern @:{'words.generated.browser'} @:{'words.generated.like'} @:{'words.generated.chrome'}, @:{'words.generated.safari'}, Firefox, @:{'words.generated.or'} @.capitalize:{'words.generated.edge'}.\",\"not_supported\":\"@.capitalize:{'words.generated.passkeys'} @:{'words.generated.are'} @:{'words.generated.not'} @:{'words.generated.supported'} @:{'words.generated.on'} @:{'words.generated.this'} @:{'words.generated.device'}.\",\"registration_cancelled\":\"@.capitalize:{'words.generated.passkey'} @:{'words.generated.registration'} @:{'words.generated.was'} @:{'words.generated.cancelled'}.\",\"registration_failed\":\"@.capitalize:{'words.generated.failed'} @:{'words.generated.to'} @:{'words.generated.register'} @:{'words.generated.passkey'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.again'}.\",\"rename_failed\":\"@.capitalize:{'words.generated.failed'} @:{'words.generated.to'} @:{'words.generated.rename'} @:{'words.generated.passkey'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.again'}.\",\"rename_passkey\":\"@.capitalize:{'words.generated.rename'} @.capitalize:{'words.generated.passkey'}\",\"rename\":\"@.capitalize:{'words.generated.rename'}\",\"renamed_successfully\":\"@.capitalize:{'words.generated.passkey'} @:{'words.generated.has'} @:{'words.generated.been'} renamed @:{'words.generated.successfully'}.\",\"success\":\"@:{'templates.generated.compat.common.success'}\",\"title\":\"@.capitalize:{'words.generated.passkeys'}\",\"unnamed\":\"Unnamed @:{'words.generated.passkey'}\"},\"password_reset\":{\"new_password\":\"@:{'templates.generated.compat.settings.new_password'}\",\"restart\":\"Restart @:{'words.generated.reset'} @:{'words.generated.password'}\",\"submit\":\"@.capitalize:{'words.generated.reset'} @:{'words.generated.password'}\"},\"pos\":{\"add_to_cart\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.to'} @:{'words.generated.cart'}\",\"add_to_order\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.to'} @:{'words.generated.order'}\",\"addon\":{\"included\":\"@.capitalize:{'words.generated.included'}\"},\"apply_discount\":\"@.capitalize:{'words.generated.apply'} @:{'words.generated.discount'}\",\"bookings\":{\"customer_number\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.no'}.\"},\"camera_permission_denied\":\"@.capitalize:{'words.generated.camera'} @:{'words.generated.access'} @:{'words.generated.denied'}. @.capitalize:{'words.generated.please'} @:{'words.generated.allow'} @:{'words.generated.access'} @:{'words.generated.to'} @:{'words.generated.camera'} @:{'words.generated.to'} @:{'words.generated.scan'} @:{'words.generated.registration'} @:{'words.generated.number'}.\",\"cancel_order\":\"@.capitalize:{'words.generated.cancel'} @:{'words.generated.order'}\",\"card\":\"@:{'templates.generated.compat.global.payment.type.card'}\",\"cash\":\"@:{'templates.generated.compat.global.payment.type.cash'}\",\"clear_order\":\"@.capitalize:{'words.generated.empty'} @:{'words.generated.order'}\",\"confirm_clear_order\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.cancel'} @:{'words.replication.article.host_mention'} @:{'words.generated.order'}?\",\"confirm_complete_order\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.complete'} @:{'words.replication.article.host_mention'} @:{'words.generated.order'}?\",\"confirm\":{\"confirm_booking\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.confirm'} @:{'words.generated.and'} @:{'words.generated.process'} @:{'words.generated.this'} @:{'words.generated.order'}?\",\"yes_confirm\":\"@.capitalize:{'words.generated.yes'}, @:{'words.generated.confirm'}\"},\"copy_last_wash_hint\":\"Copies @:{'words.replication.article.host_mention'} @:{'words.generated.service'}, @:{'words.generated.add'}-@:{'words.generated.ons'}, @:{'words.generated.and'} @:{'words.generated.extra'} @:{'words.generated.items'} @:{'words.generated.from'} @:{'words.replication.article.host_mention'} @:{'words.generated.previous'} @:{'words.generated.wash'}\",\"copying_last_wash\":\"Copying @:{'words.generated.previous'} @:{'words.generated.wash'}\",\"create_new_vehicle\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.vehicle'}\",\"department_not_found\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.not'} @:{'words.generated.found'}. @.capitalize:{'words.generated.please'} @:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.again'}.\",\"email_receipt\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.receipt'}\",\"enter_plate\":\"@.capitalize:{'words.generated.enter'} @:{'words.generated.license'} @:{'words.generated.plate'}\",\"finish_and_register_new\":\"@.capitalize:{'words.generated.complete'} @:{'words.generated.and'} @:{'words.generated.register'} @:{'words.generated.new'}\",\"finish_and_register\":\"@.capitalize:{'words.generated.complete'} @:{'words.generated.and'} @:{'words.generated.register'}\",\"generate_certificate\":\"@:{'words.generated.generate'} @:{'words.generated.certificate'}\",\"go_back\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.back'}\",\"go_to_login\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.login'}\",\"hold_to_change_vehicle\":\"@:{'words.generated.hold'} @:{'words.generated.to'} @:{'words.generated.change'} @:{'words.generated.vehicle'}\",\"hold_to_choose_additional_items\":\"@:{'words.generated.hold'} @:{'words.generated.to'} @:{'words.generated.choose'} @:{'words.generated.additional'} @:{'words.generated.items'}\",\"hold_to_copy_last_wash\":\"@:{'words.generated.hold'} @:{'words.generated.to'} @:{'words.generated.copy'} @:{'words.generated.previous'} @:{'words.generated.wash'}\",\"images\":\"@.capitalize:{'words.generated.images'}\",\"input\":{\"license_plate_manual\":\"@.capitalize:{'words.generated.enter'} @:{'words.replication.article.host_mention'} @:{'words.generated.registration'} @:{'words.generated.number'} @:{'words.generated.manually'}\"},\"keyboard\":{\"clear\":\"@:{'templates.generated.compat.common.clear'}\"},\"last_wash_matches_current_selection\":\"@.capitalize:{'words.generated.same'} @:{'words.generated.service'}, @:{'words.generated.add'}-@:{'words.generated.ons'}, @:{'words.generated.and'} @:{'words.generated.extra'} @:{'words.generated.items'} @:{'words.generated.as'} @:{'words.replication.article.host_mention'} @:{'words.generated.previous'} @:{'words.generated.wash'}\",\"manual_entry\":\"@:{'words.generated.manual'} @:{'words.generated.registration'}\",\"new_order\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.order'}\",\"new_sale\":\"@.capitalize:{'words.generated.new'} sale\",\"no_bookings\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.orders'} @:{'words.generated.found'}\",\"no_camera_found\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.camera'} @:{'words.generated.found'}. @.capitalize:{'words.generated.please'} connect @:{'words.generated.a'} @:{'words.generated.camera'} @:{'words.generated.to'} @:{'words.generated.scan'} @:{'words.generated.registration'} @:{'words.generated.number'}.\",\"order_summary\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.summary'}\",\"order\":{\"add_more_products\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.more'} @:{'words.generated.products'}\",\"badges\":{\"amount_due\":\"Outstanding @:{'words.generated.amount'}\",\"amount_received\":\"@.capitalize:{'words.generated.amount'} @:{'words.generated.received'}\",\"amount_reserved\":\"@.capitalize:{'words.generated.amount'} reserved\",\"not_invoiced\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.invoiced'}\",\"saved_for_invoicing\":\"@.capitalize:{'words.generated.saved'} @:{'words.generated.for'} @:{'words.generated.invoicing'}\",\"tax\":\"@:{'words.generated.vat'}\"},\"click_to_go_to_booking\":\"@.capitalize:{'words.generated.click'} @:{'words.generated.to'} @:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.booking'}\",\"complete_order\":\"@:{'templates.generated.compat.global.complete_order'}\",\"delete_order\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.order'}\",\"draft_check_exists\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.check'} @:{'words.generated.if'} @:{'words.replication.article.host_mention'} @:{'words.generated.draft'} @:{'words.generated.invoice'} @:{'words.generated.exists'} @:{'words.generated.in'} @:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"draft_fetch_error\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.draft'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.be'} @:{'words.generated.fetched'} @:{'words.generated.from'} @:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"draft_transaction_export_blocked\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.transaction'} @:{'words.generated.uses'} @:{'words.replication.article.host_mention'} @:{'words.generated.configured'} @:{'words.generated.draft'} @:{'words.generated.customer'} @:{'words.generated.and'} @:{'words.generated.cannot'} @:{'words.generated.be'} @:{'words.generated.exported'} @:{'words.generated.to'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"edit_note\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.note'}\",\"force_edit\":\"@.capitalize:{'words.generated.force'} @:{'words.generated.edit'} @:{'words.generated.rights'}\",\"get_invoice\":\"@.capitalize:{'words.generated.get'} @:{'words.generated.invoice'}\",\"include_in_invoice\":\"@.capitalize:{'words.generated.invoice'} inclusion\",\"invoice_override\":{\"exclude\":\"@:{'words.generated.exclude'}\",\"force_exclude_help\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.order'} @:{'words.generated.will'} @:{'words.generated.be'} @:{'words.generated.excluded'} @:{'words.generated.from'} @:{'words.generated.invoicing'} @:{'words.generated.regardless'} @:{'words.generated.of'} @:{'words.generated.department'}.\",\"force_include_help\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.order'} @:{'words.generated.will'} @:{'words.generated.be'} @:{'words.generated.included'} @:{'words.generated.in'} @:{'words.generated.invoicing'} @:{'words.generated.regardless'} @:{'words.generated.of'} @:{'words.generated.department'}.\",\"include\":\"@:{'words.generated.include'}\",\"inherit_exclude_help\":\"@.capitalize:{'words.generated.using'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'} @:{'words.generated.invoicing'} @:{'words.generated.rule'}. @.capitalize:{'words.generated.this'} @:{'words.generated.order'} @:{'words.generated.is'} @:{'words.generated.currently'} @:{'words.generated.excluded'} @:{'words.generated.from'} @:{'words.generated.invoicing'}.\",\"inherit_help\":\"@.capitalize:{'words.generated.using'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'} @:{'words.generated.invoicing'} @:{'words.generated.rule'}.\",\"inherit_include_help\":\"@.capitalize:{'words.generated.using'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'} @:{'words.generated.invoicing'} @:{'words.generated.rule'}. @.capitalize:{'words.generated.this'} @:{'words.generated.order'} @:{'words.generated.is'} @:{'words.generated.currently'} @:{'words.generated.included'} @:{'words.generated.in'} @:{'words.generated.invoicing'}.\",\"use_department\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.department'}\"},\"linked_booking_id\":\"@.capitalize:{'words.generated.linked'} @:{'words.generated.booking'} @.upper:{'words.generated.id'}\",\"order_note\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.note'} (@.capitalize:{'words.generated.sent'} @:{'words.generated.to'} @:{'words.generated.customer'} @:{'words.generated.at'} @:{'words.generated.top'} @:{'words.generated.of'} @:{'words.generated.invoice'})\",\"print_receipt\":\"@:{'templates.generated.compat.pos.print_receipt'}\",\"reg\":\"@.capitalize:{'words.generated.reg'}\",\"remove_force_edit\":\"@.capitalize:{'words.generated.remove'} forced @:{'words.generated.edit'} @:{'words.generated.rights'}\",\"send_to_economic\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.to'} @:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"settings_actions_title\":\"@.capitalize:{'words.generated.admin'} @:{'words.generated.actions'}\",\"settings_description\":\"@.capitalize:{'words.generated.update'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}, @:{'words.generated.created'} @:{'words.generated.time'}, @:{'words.generated.and'} @:{'words.generated.invoicing'} behavior @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.order'}.\",\"settings_save_error\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.save'} @:{'words.replication.article.host_mention'} @:{'words.generated.settings'}.\",\"settings_saved\":\"@.capitalize:{'words.generated.settings'} @:{'words.generated.saved'}.\",\"status\":{\"not_paid\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.paid'}\",\"partially_paid\":\"@:{'templates.generated.compat.invoices.partial'}\",\"uncollectible\":\"Uncollectible\",\"void\":\"Charge @:{'words.generated.canceled'} (void)\"}},\"pay\":\"@:{'words.generated.pay'}\",\"payment_by_card\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.by'} @:{'words.generated.card'}\",\"payment_by_cash\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.by'} @:{'words.generated.cash'}\",\"payment_by_invoice\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.by'} @:{'words.generated.invoice'}\",\"payment_method\":\"@:{'templates.generated.compat.global.payment.method'}\",\"payment\":\"@.capitalize:{'words.generated.payment'}\",\"print_receipt\":\"@:{'words.generated.print'} @:{'words.generated.receipt'}\",\"process_booking\":\"@.capitalize:{'words.generated.process'} @:{'words.generated.order'}\",\"processing_order\":\"@.capitalize:{'words.generated.processing'} @:{'words.generated.order'}...\",\"restrictions\":{\"addons_not_allowed\":\"Add-ons are not allowed for this customer\",\"backend_rejected\":\"The product was rejected by customer rules and was not added\",\"product_not_allowed\":\"This product is not allowed for this customer\",\"restricted_items_removed\":\"Restricted add-ons were removed from the cart\",\"title\":\"Customer rule\"},\"receipt\":\"@:{'templates.generated.compat.global.payment.receipt'}\",\"recent\":{\"title\":\"@:{'templates.generated.compat.global.recent'}\"},\"reference\":\"@:{'templates.generated.compat.common.reference'}\",\"register_vehicle\":\"@.capitalize:{'words.generated.register'} @:{'words.generated.vehicle'}\",\"remove_discount\":\"Ta bort @:{'words.generated.rabatt'}\",\"remove_from_order\":\"@.upper:{'words.generated.a'} fruit board @:{'words.generated.orders'}\",\"remove_image\":\"Fjern bilde\",\"scan_plate\":\"@.capitalize:{'words.generated.scan'} @:{'words.generated.license'} @:{'words.generated.plate'}\",\"search_license_plate\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.for'} @:{'words.generated.registration'} @:{'words.generated.number'}\",\"select_product\":\"Velg et @:{'words.generated.produkt'}\",\"select_products\":\"@.capitalize:{'words.generated.choose'} @:{'words.generated.products'}\",\"subtitle\":\"@.capitalize:{'words.generated.register'} @:{'words.generated.vehicle'} @:{'words.generated.and'} @:{'words.generated.process'} @:{'words.generated.payments'}\",\"subtotal\":\"@:{'templates.generated.compat.common.subtotal'}\",\"take_photo\":\"@.capitalize:{'words.generated.take'} photo\",\"title\":\"@:{'templates.generated.compat.nav.pos_system'}\",\"total_amount\":\"@.capitalize:{'words.generated.total'} @:{'words.generated.amount'}\",\"upload_image\":\"@:{'words.generated.upload'} @:{'words.generated.image'}\",\"vehicle_not_found\":\"@.capitalize:{'words.generated.vehicle'} @:{'words.generated.not'} @:{'words.generated.found'}\",\"vehicle_type\":\"@.capitalize:{'words.generated.vehicle'} @:{'words.generated.type'}\",\"vehicle_types\":{\"bus\":\"Buss\",\"lastbil\":\"Lastbil\",\"lift\":\"Lift\",\"mandskabsvogn\":\"@:{'templates.generated.compat.vehicles.vehicle_types.crew'}\",\"motorcykel\":\"Motorcycle\",\"sættevogn\":\"Semitrailer\",\"trailer\":\"@:{'templates.generated.compat.vehicles.types.trailer'}\",\"traktor\":\"Trekkbil\",\"varevogn\":\"@:{'templates.generated.compat.vehicles.types.van'}\"},\"vehicle\":{\"previously_washed\":\"Previously washed\"},\"wash_certificate\":\"@.capitalize:{'words.generated.washing'} @:{'words.generated.certificate'}\",\"wash_type\":\"@.capitalize:{'words.generated.washing'} @:{'words.generated.type'}\"},\"products\":{\"admin\":{\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.handle'} @:{'words.generated.products'}\",\"title\":\"@.capitalize:{'words.generated.product'} @:{'words.generated.administration'}\"},\"delete_product\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.product'}\",\"edit_product\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.product'}\",\"form\":{\"exterior\":\"@.capitalize:{'words.generated.exterior'}\",\"interior\":\"@.capitalize:{'words.generated.interior'}\",\"is_exterior\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.exterior'}\",\"is_interior\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.interior'}\",\"product_name\":\"@.capitalize:{'words.generated.product'} @:{'words.generated.name'}\",\"save\":\"@:{'templates.generated.compat.common.save'}\",\"vehicle_type\":\"@:{'templates.generated.compat.pos.vehicle_type'}\"},\"new_product\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.product'}\",\"no_products\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.products'} @:{'words.generated.found'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.by'} @:{'words.generated.product'} @:{'words.generated.name'}\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.products'}\",\"type\":\"@.capitalize:{'words.generated.type'}\"},\"profile\":{\"email\":{\"enter_email\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.enter'} @:{'words.generated.your'} @:{'words.generated.email'} @:{'words.generated.address'}\",\"enter_password\":\"@.capitalize:{'words.generated.enter'} @:{'words.generated.your'} @:{'words.generated.password'}\",\"invalid_email\":\"@:{'templates.generated.compat.validation.email'}\",\"label\":\"@.capitalize:{'words.generated.email'} @.capitalize:{'words.generated.address'}\",\"new_email_prompt\":\"@.capitalize:{'words.generated.which'} @:{'words.generated.email'} @:{'words.generated.address'} @:{'words.generated.would'} @:{'words.generated.you'} @:{'words.generated.like'} @:{'words.generated.to'} @:{'words.generated.use'}?\",\"new_email_text\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.enter'} @:{'words.generated.your'} @:{'words.generated.new'} @:{'words.generated.email'} @:{'words.generated.address'}.\",\"password_prompt\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.enter'} @:{'words.generated.your'} @:{'words.generated.password'}\",\"saved\":\"@.capitalize:{'words.generated.email'} @.capitalize:{'words.generated.address'} @.capitalize:{'words.generated.saved'}\",\"saved_text\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.email'} @:{'words.generated.address'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.saved'}.\"},\"error\":{\"save_email_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} @:{'words.generated.saving'} @:{'words.replication.article.host_mention'} @:{'words.generated.email'} @:{'words.generated.address'}.\",\"validation_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} validating @:{'words.replication.article.host_mention'} @:{'words.generated.password'}.\"}},\"replication\":{\"actions\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.replication.host'}\",\"promote\":\"Promote\",\"provision\":\"@.capitalize:{'words.generated.provision'}\",\"remove\":\"@:{'templates.generated.compat.common.remove'}\",\"rename\":\"@.capitalize:{'words.generated.rename'}\",\"save_and_provision\":\"@.capitalize:{'words.generated.save'} @:{'words.generated.and'} @:{'words.generated.provision'}\",\"test\":\"@.capitalize:{'words.generated.test'}\"},\"blockers\":{\"database_engine_match_required\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'} @:{'words.generated.and'} @:{'words.generated.replica'} @:{'words.generated.must'} @:{'words.generated.use'} @:{'words.replication.article.host_mention'} @:{'words.generated.same'} @:{'words.replication.services.database'} family.\",\"database_io_thread_stopped\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.replication.services.database'} @:{'words.generated.replication'} @.upper:{'words.generated.io'} @:{'words.generated.thread'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.running'}. @.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.fetching'} @:{'words.generated.new'} binlog @:{'words.generated.events'} @:{'words.generated.from'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}.\",\"database_primary_missing\":\"@.capitalize:{'words.generated.no'} @:{'words.replication.services.database'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.generated.is'} @:{'words.generated.registered'}.\",\"database_replica_missing_table_count\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.replica'} @:{'words.generated.seed'} @:{'words.generated.is'} @:{'words.generated.incomplete'}. {count} @:{'words.generated.tables'} @:{'words.generated.are'} @:{'words.generated.missing'} @:{'words.generated.on'} @:{'words.replication.article.host_mention'} @:{'words.generated.replica'}. Examples: {tables}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.and'} @:{'words.generated.fill'} @:{'words.replication.article.host_mention'} @:{'words.generated.schema'} @:{'words.generated.from'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}.\",\"database_replica_missing_tables\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.replica'} @:{'words.generated.seed'} @:{'words.generated.is'} @:{'words.generated.incomplete'}. @.capitalize:{'words.generated.missing'} @:{'words.generated.tables'}: {tables}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.and'} @:{'words.generated.fill'} @:{'words.replication.article.host_mention'} @:{'words.generated.schema'} @:{'words.generated.from'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}.\",\"database_replica_not_seeded\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.missing'} @:{'words.generated.tables'} @:{'words.generated.or'} @:{'words.generated.data'} @:{'words.generated.from'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.and'} @:{'words.generated.fill'} @:{'words.replication.article.host_mention'} @:{'words.generated.schema'} @:{'words.generated.from'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}. Technical @:{'words.generated.error'}: {error}\",\"database_replica_schema_only_rows\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.replica'} @:{'words.generated.contains'} @:{'words.generated.data'} @:{'words.generated.in'} @:{'words.generated.tables'} @:{'words.generated.where'} @:{'words.generated.only'} @:{'words.replication.article.host_mention'} @:{'words.generated.schema'} @:{'words.generated.should'} @:{'words.generated.be'} @:{'words.generated.copied'}: {tables}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.rebuild'} @:{'words.replication.article.host_mention'} @:{'words.generated.replica'} @:{'words.generated.without'} operational @:{'words.generated.log'} @:{'words.generated.data'}.\",\"database_replica_status_missing\":\"@:{'words.generated.mariadb'} @:{'words.generated.replication'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.configured'} @:{'words.generated.on'} @:{'words.replication.article.host_mention'} @:{'words.generated.replica'}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.configure'} @:{'words.replication.article.host_mention'} @:{'words.generated.replica'} @:{'words.generated.again'}.\",\"database_sql_thread_stopped\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.replication.services.database'} @:{'words.generated.replication'} @:{'words.generated.sql'} @:{'words.generated.thread'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.running'}. @.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.not'} applying @:{'words.generated.fetched'} @:{'words.generated.changes'}.\",\"database_threads_required\":\"@.capitalize:{'words.replication.services.database'} @:{'words.generated.replication'} @.upper:{'words.generated.io'} @:{'words.generated.and'} @:{'words.generated.sql'} threads @:{'words.generated.must'} both @:{'words.generated.be'} @:{'words.generated.running'}.\",\"mariadb_binlog_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.enabled'}.\",\"mariadb_binlog_unavailable\":\"@:{'words.generated.mariadb'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.status'} @:{'words.generated.is'} @:{'words.generated.unavailable'}.\",\"mariadb_gtid_position_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.gtid'} position @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.available'}.\",\"mariadb_gtid_replication_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.replication'} @:{'words.generated.must'} @:{'words.generated.use'} @:{'words.generated.gtid'} @:{'words.generated.mode'}.\",\"mariadb_preseed_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.replicas'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.safely'} @:{'words.generated.seeded'} @:{'words.generated.before'} @:{'words.generated.managed'} @:{'words.generated.replication'} @:{'words.generated.can'} @:{'words.generated.be'} @:{'words.generated.configured'}.\",\"mariadb_server_id_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.server'}_@:{'words.generated.id'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.configured'}.\",\"mariadb_version_current\":\"@:{'words.generated.mariadb'} 10.6 @:{'words.generated.or'} @:{'words.generated.newer'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.managed'} @:{'words.generated.replication'}. @.capitalize:{'words.generated.current'} @:{'words.generated.server'} @:{'words.generated.reports'} {version}.\",\"mariadb_version_required\":\"@:{'words.generated.mariadb'} 10.6 @:{'words.generated.or'} @:{'words.generated.newer'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.managed'} @:{'words.generated.replication'}.\",\"minio_primary_missing\":\"@.capitalize:{'words.generated.no'} @:{'words.replication.services.minio'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.generated.is'} @:{'words.generated.registered'}.\",\"minio_replica_not_caught_up\":\"@:{'words.replication.services.minio'} @:{'words.generated.replica'} @:{'words.generated.has'} @:{'words.generated.not'} caught @:{'words.generated.up'}.\",\"minio_replication_not_configured\":\"@:{'words.replication.services.minio'} @:{'words.generated.bucket'} @:{'words.generated.replication'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.configured'}.\",\"minio_source_bucket_missing\":\"@:{'words.replication.services.minio'} @:{'words.generated.source'} @:{'words.generated.bucket'} {bucket} @:{'words.generated.is'} @:{'words.generated.missing'}.\",\"minio_space_insufficient\":\"@:{'words.replication.services.minio'} @:{'words.generated.target'} @:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.have'} @:{'words.generated.enough'} @:{'words.generated.free'} @:{'words.generated.space'}. @.capitalize:{'words.generated.required'} {required} @:{'words.generated.bytes'}, @:{'words.generated.available'} {available} @:{'words.generated.bytes'}.\",\"minio_space_unknown\":\"@:{'words.replication.services.minio'} @:{'words.generated.target'} @:{'words.generated.free'} @:{'words.generated.space'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.be'} determined.\",\"minio_target_bucket_missing\":\"@:{'words.replication.services.minio'} @:{'words.generated.target'} @:{'words.generated.bucket'} {bucket} @:{'words.generated.is'} @:{'words.generated.missing'}.\",\"mysql_binlog_required\":\"@:{'words.generated.mysql'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.enabled'}.\",\"mysql_binlog_unavailable\":\"@:{'words.generated.mysql'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.status'} @:{'words.generated.is'} @:{'words.generated.unavailable'}.\",\"mysql_clone_primary_required\":\"@:{'words.generated.mysql'} @:{'words.generated.clone'} @:{'words.generated.plugin'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.active'} @:{'words.generated.on'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} donor.\",\"mysql_clone_target_required\":\"@:{'words.generated.mysql'} @:{'words.generated.clone'} @:{'words.generated.plugin'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.active'} @:{'words.generated.on'} @:{'words.replication.article.host_mention'} @:{'words.generated.target'}. @.capitalize:{'words.generated.use'} @:{'words.generated.a'} preseeded @:{'words.generated.replica'} @:{'words.generated.only'} after @:{'words.replication.article.host_mention'} @:{'words.generated.target'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.safely'} @:{'words.generated.seeded'}.\",\"mysql_gtid_required\":\"@:{'words.generated.mysql'} @:{'words.generated.gtid'} @:{'words.generated.mode'} @:{'words.generated.must'} @:{'words.generated.be'} @.upper:{'words.generated.on'}.\",\"mysql_gtid_unavailable\":\"@:{'words.generated.mysql'} @:{'words.generated.gtid'} @:{'words.generated.mode'} @:{'words.generated.is'} @:{'words.generated.unavailable'}. @.capitalize:{'words.generated.managed'} @:{'words.generated.replication'} @:{'words.generated.requires'} @:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.with'} @:{'words.generated.gtid'} @:{'words.generated.enabled'}.\",\"mysql_server_id_required\":\"@:{'words.generated.mysql'} @:{'words.generated.server'}_@:{'words.generated.id'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.configured'}.\",\"mysql_server_uuid_required\":\"@:{'words.generated.mysql'} @:{'words.generated.server'}_uuid @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.available'}. @.capitalize:{'words.generated.managed'} @:{'words.generated.replication'} @:{'words.generated.requires'} @:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'}.\",\"mysql_unique_server_id\":\"@.capitalize:{'words.replication.services.database'} @:{'words.generated.replica'} @:{'words.generated.must'} @:{'words.generated.have'} @:{'words.generated.a'} @:{'words.generated.unique'} @:{'words.generated.server'}_@:{'words.generated.id'}.\",\"mysql8_current\":\"@:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.managed'} @:{'words.generated.replication'}. @.capitalize:{'words.generated.current'} @:{'words.generated.server'} @:{'words.generated.reports'} {version}.\",\"mysql8_required\":\"@:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.managed'} @:{'words.generated.replication'}.\",\"redis_acl_config_required\":\"@:{'words.replication.services.redis'} ACL @:{'words.generated.must'} @:{'words.generated.allow'} @.upper:{'words.generated.config'} @.upper:{'words.generated.get'}, @.upper:{'words.generated.set'}, @:{'words.generated.and'} REWRITE @:{'words.generated.for'} durable @:{'words.generated.replication'} @:{'words.generated.changes'}.\",\"redis_link_down\":\"@:{'words.replication.services.redis'} @:{'words.generated.replica'} @:{'words.generated.link'} @:{'words.generated.to'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.up'}.\",\"redis_not_replica\":\"@:{'words.replication.services.redis'} @:{'words.replication.host'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.currently'} @:{'words.generated.a'} @:{'words.generated.replica'}.\",\"redis_ping_failed\":\"@:{'words.replication.services.redis'} PING @:{'words.generated.did'} @:{'words.generated.not'} @:{'words.generated.return'} PONG.\",\"redis_primary_missing\":\"@.capitalize:{'words.generated.no'} @:{'words.replication.services.redis'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.generated.is'} @:{'words.generated.registered'}.\"},\"compose\":{\"compose_file\":\"@:{'words.generated.docker'}-@:{'words.generated.compose'}.yml\",\"env_file\":\".@:{'words.generated.env'}\",\"generate\":\"@:{'words.generated.generate'} @:{'words.generated.compose'}\",\"host_port\":\"@.capitalize:{'words.replication.host'} @:{'words.generated.port'}\",\"next_steps\":\"@.capitalize:{'words.generated.next'} @:{'words.generated.steps'}\",\"primary_host\":\"@.capitalize:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.host'}\",\"primary_port\":\"@.capitalize:{'words.replication.adjective.primary_host_mention'} @:{'words.generated.port'}\",\"seed_command\":\"@:{'words.generated.manual'} @:{'words.generated.seed'} command (@:{'words.generated.fallback'})\",\"server_id\":\"@.capitalize:{'words.generated.server'} @.upper:{'words.generated.id'}\",\"service_name\":\"@.capitalize:{'words.generated.service'} @:{'words.generated.name'}\",\"steps\":{\"database_register_replica\":\"@.capitalize:{'words.generated.fill'} @.upper:{'words.generated.mariadb'}_@.upper:{'words.replication.adjective.primary_host_mention'}_@.upper:{'words.generated.admin'}_@.upper:{'words.generated.password'} @:{'words.generated.in'} .@:{'words.generated.env'}, @:{'words.generated.wait'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.seed'} @:{'words.generated.service'} @:{'words.generated.to'} @:{'words.generated.complete'}, @:{'words.generated.test'} @:{'words.replication.article.host_mention'} @:{'words.generated.connection'}, then @:{'words.generated.save'} @:{'words.generated.and'} @:{'words.generated.provision'}.\",\"database_seed\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.generated'} @:{'words.generated.compose'} @:{'words.generated.seed'} @:{'words.generated.service'} imports @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'} @:{'words.generated.automatically'}.\",\"database_server_id\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.a'} @:{'words.generated.unique'} @:{'words.generated.server'} @.upper:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.each'} @:{'words.generated.mariadb'} @:{'words.replication.host'}.\",\"deploy\":\"Deploy @:{'words.generated.this'} @:{'words.generated.configuration'} @:{'words.generated.as'} @:{'words.generated.a'} @.capitalize:{'words.generated.docker'} @.capitalize:{'words.generated.compose'} @:{'words.generated.or'} Coolify @.capitalize:{'words.generated.compose'} @:{'words.generated.service'}.\",\"minio_buckets\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.setup'} @:{'words.generated.service'} @:{'words.generated.creates'} @:{'words.replication.article.host_mention'} @:{'words.generated.configured'} @:{'words.generated.buckets'} @:{'words.generated.and'} enables versioning.\",\"minio_primary_credentials\":\"@.capitalize:{'words.generated.keep'} @:{'words.replication.article.host_mention'} @:{'words.generated.current'} @:{'words.replication.services.minio'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.generated.endpoint'} @:{'words.generated.and'} @:{'words.generated.credentials'} @:{'words.generated.ready'}; @:{'words.generated.managed'} @:{'words.generated.bucket'} @:{'words.generated.replication'} @:{'words.generated.is'} @:{'words.generated.configured'} @:{'words.generated.during'} @:{'words.generated.provisioning'}.\",\"redis_primary_password\":\"@.capitalize:{'words.generated.fill'} @.upper:{'words.replication.services.redis'}_@.upper:{'words.replication.adjective.primary_host_mention'}_@.upper:{'words.replication.host'}, @.upper:{'words.replication.services.redis'}_@.upper:{'words.replication.adjective.primary_host_mention'}_@.upper:{'words.generated.port'}, @:{'words.generated.and'} @.upper:{'words.replication.services.redis'}_@.upper:{'words.replication.adjective.primary_host_mention'}_@.upper:{'words.generated.password'} @:{'words.generated.with'} @:{'words.replication.article.host_mention'} @:{'words.generated.current'} @:{'words.replication.services.redis'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.generated.details'}.\"},\"test_before_save\":\"@:{'templates.generated.compat.configuration.limble.test_connection'}\",\"test_failed\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.test'} @:{'words.generated.did'} @:{'words.generated.not'} @:{'words.generated.complete'} @:{'words.generated.successfully'}. @:{'words.generated.review'} @:{'words.replication.article.host_mention'} @:{'words.generated.blockers'} @:{'words.generated.below'}.\",\"test_ok\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.test'} @:{'words.generated.completed'} @:{'words.generated.successfully'}.\",\"title\":\"@:{'words.generated.generate'} @.capitalize:{'words.generated.docker'} @.capitalize:{'words.generated.compose'}\"},\"fields\":{\"admin_password\":\"@.capitalize:{'words.generated.admin'} @:{'words.generated.password'}\",\"admin_username\":\"@.capitalize:{'words.generated.admin'} @:{'words.generated.username'}\",\"allow_preseeded_replica\":\"@.capitalize:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.already'} @:{'words.generated.safely'} @:{'words.generated.seeded'}\",\"buckets\":\"@.capitalize:{'words.generated.buckets'}\",\"console_port\":\"Console @:{'words.generated.port'}\",\"replication_transfer_limit\":\"Transfer limit\",\"database_index\":\"@.capitalize:{'words.replication.services.database'} index\",\"port\":\"@.capitalize:{'words.generated.port'}\",\"replication_password\":\"@.capitalize:{'words.generated.replication'} @:{'words.generated.password'}\",\"replication_username\":\"@.capitalize:{'words.generated.replication'} @:{'words.generated.username'}\",\"scheme\":\"Scheme\",\"ssl_mode\":\"SSL @:{'words.generated.mode'}\",\"username\":\"@:{'templates.generated.compat.auth.username'}\"},\"labels\":{\"blockers\":\"@.capitalize:{'words.generated.blockers'}\",\"last_checked\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.checked'}\",\"replicas\":\"@.capitalize:{'words.generated.replicas'}\",\"replication\":\"@.capitalize:{'words.generated.replication'}\"},\"prompts\":{\"rename_host\":\"@.capitalize:{'words.generated.enter'} @:{'words.generated.a'} @:{'words.generated.new'} host label\"},\"roles\":{\"inactive\":\"@:{'templates.generated.compat.common.inactive'}\",\"primary\":\"@.capitalize:{'words.replication.adjective.primary_host_mention'}\",\"replica\":\"@.capitalize:{'words.generated.replica'}\"},\"states\":{\"empty\":\"@.capitalize:{'words.generated.no'} hosts @:{'words.generated.registered'}.\",\"error\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.complete'} @:{'words.generated.replication'} @:{'words.generated.request'}.\",\"loading\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.replication'} topology...\",\"coolify_deploying\":\"Coolify deployment is running.\",\"coolify_restarting\":\"Coolify restart is running.\",\"coolify_starting_provisioning\":\"Coolify service is reachable. Starting replication provisioning.\",\"coolify_waiting_for_endpoint\":\"Coolify deployment is running. Waiting for the service port before replication provisioning starts.\",\"deploy_timeout\":\"Coolify deployment is still running. Refresh status to continue.\",\"provision_timeout\":\"@.capitalize:{'words.generated.provisioning'} @:{'words.generated.is'} @:{'words.generated.still'} @:{'words.generated.running'}. @.capitalize:{'words.generated.refresh'} @:{'words.generated.status'} @:{'words.generated.to'} @:{'words.generated.continue'}.\",\"syncing_in_background\":\"Syncing in background.\",\"waiting_for_redis_primary_link\":\"Waiting for the Redis primary link.\"},\"status\":{\"degraded\":\"Degraded\",\"down\":\"Down\",\"not_configured\":\"@:{'templates.generated.compat.global.not_configured'}\",\"provisioning\":\"@.capitalize:{'words.generated.provisioning'}\",\"removed\":\"@.capitalize:{'words.generated.removed'}\"},\"subtitle\":\"@.capitalize:{'words.generated.managed'} @:{'words.replication.services.database'}, @:{'words.replication.services.redis'}, @:{'words.generated.and'} @:{'words.replication.services.minio'} @:{'words.generated.replication'}\"},\"roles\":{\"permissions\":{\"access_scope\":\"Access scope\",\"actions\":{\"clear_all\":\"Clear group\",\"reload\":\"Reload\",\"retry\":\"Try again\",\"select_all\":\"Select group\"},\"columns\":{\"enabled\":\"Enabled\",\"permission\":\"Permission\",\"route\":\"Route\",\"status\":\"Status\"},\"department_access_description\":\"Allows access to {name}.\",\"empty\":\"No permissions are available.\",\"empty_group\":\"This group has no permissions.\",\"errors\":{\"load\":\"Could not load role permissions.\",\"update\":\"Could not update one or more permissions. The current role permissions were reloaded.\"},\"filtered_summary\":\"{count} matching\",\"groups\":{\"access\":{\"description\":\"Page type and department access permissions.\",\"label\":\"Access\"},\"bookings\":{\"description\":\"Booking, time booking, and planning permissions.\",\"label\":\"Bookings\"},\"customers_users\":{\"description\":\"Customer, user, employee, role, and authentication permissions.\",\"label\":\"Customers and users\"},\"departments_operations\":{\"description\":\"Department operations, lanes, relays, notifications, reports, and goals.\",\"label\":\"Departments and operations\"},\"invoicing_economic\":{\"description\":\"Invoice, billing period, collection, and e-conomic permissions.\",\"label\":\"Invoicing and e-conomic\"},\"orders_pos\":{\"description\":\"Order, POS, payment, and order line permissions.\",\"label\":\"Orders and POS\"},\"other\":{\"description\":\"Permissions that do not match another group.\",\"label\":\"Other\"},\"products_pricing\":{\"description\":\"Product, price, discount, and currency permissions.\",\"label\":\"Products and pricing\"},\"selfserve_edge\":{\"description\":\"Self-serve, wash, scanner, gateway, and edge hardware permissions.\",\"label\":\"Self-serve and edge\"},\"system_config\":{\"description\":\"System, configuration, release, replication, and integration permissions.\",\"label\":\"System and configuration\"}},\"no_description\":\"No description is available.\",\"no_search_results\":\"No permissions match the current search.\",\"page_access\":{\"admin\":{\"description\":\"Allows access to admin dashboard pages.\",\"label\":\"Admin\"},\"superuser\":{\"description\":\"Allows access to superuser dashboard pages.\",\"label\":\"Superuser\"},\"user\":{\"description\":\"Allows access to user dashboard pages.\",\"label\":\"User\"}},\"search_label\":\"Search permissions\",\"search_placeholder\":\"Search by label, key, description, route, or method\",\"selected_summary\":\"{selected} of {total} selected\",\"status\":{\"disabled\":\"Disabled\",\"enabled\":\"Enabled\"},\"subtitle\":\"Role permissions\",\"title\":\"Role {id} permissions\",\"title_with_name\":\"{name} permissions\"},\"templates\":{\"apply\":\"Apply {template} template\",\"confirm_button\":\"Apply template\",\"confirm_text\":\"Add {count} missing permissions from {template} to {role}?\",\"confirm_title\":\"Apply permission template?\",\"error_text\":\"One or more permissions from {template} could not be added to {role}. The role list was reloaded.\",\"error_title\":\"Could not apply template\",\"load_error\":\"Could not load templates. Try again\",\"loading\":\"Loading templates...\",\"section\":\"Limited backoffice templates\",\"success_text\":\"Added {count} permissions from {template} to {role}.\",\"success_title\":\"Template applied\",\"unavailable\":\"No templates are available.\",\"up_to_date_text\":\"{role} already has every permission in {template}.\",\"up_to_date_title\":\"Role is up to date\"},\"subtitle\":\"@.capitalize:{'words.generated.user'} @:{'words.generated.roles'}\"},\"self_wash\":{\"add_as_new_vehicle\":\"@.capitalize:{'words.generated.add'} {plate} @:{'words.generated.as'} @:{'words.generated.new'} @:{'words.generated.vehicle'}\",\"answer_questions\":\"@:{'words.generated.answer'} @:{'words.generated.questions'}\",\"assistance\":\"@.capitalize:{'words.generated.assistance'}\",\"available\":\"@.capitalize:{'words.generated.available'}\",\"configure_wash\":\"@.capitalize:{'words.generated.configure'} @:{'words.generated.wash'}\",\"confirm_and_start\":\"@.capitalize:{'words.generated.confirm'} @:{'words.generated.and'} @:{'words.generated.start'} @:{'words.generated.wash'}\",\"department_no_self_wash_in_staffed_hours\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.department'} @:{'words.generated.does'} @:{'words.generated.not'} offer @:{'words.generated.self'}-@:{'words.generated.wash'} @:{'words.generated.during'} @:{'words.generated.staffed'} @:{'words.generated.hours'}.\",\"department_no_self_wash\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.department'} @:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.support'} @:{'words.generated.self'}-@:{'words.generated.wash'}.\",\"enter_customer_number\":\"@.capitalize:{'words.generated.enter'} @:{'words.generated.customer'} @:{'words.generated.number'}\",\"enter_registration_number\":\"@.capitalize:{'words.generated.enter'} @:{'words.generated.registration'} @:{'words.generated.number'}\",\"finishing_wash_exit_opening\":\"Finishing @:{'words.generated.wash'}, @:{'words.replication.article.host_mention'} @:{'words.generated.gate'} @:{'words.generated.opens'} @:{'words.generated.automatically'}\",\"follow_steps\":\"@.capitalize:{'words.generated.follow'} @:{'words.replication.article.host_mention'} 6 @:{'words.generated.steps'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.best'} @:{'words.generated.result'}:\",\"loading_department\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.department'}...\",\"loading_types\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.types'}...\",\"loading_vehicle_types\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.available'} @:{'words.generated.vehicle'} @:{'words.generated.types'}...\",\"lane_unavailable\":\"Lane unavailable\",\"machine\":\"@.capitalize:{'words.generated.machine'}\",\"no_departments_found\":\"@:{'templates.generated.compat.departments.no_departments'}\",\"occupied\":\"Occupied\",\"open_property_access_gate\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.property'} @:{'words.generated.access'} @:{'words.generated.gate'}\",\"open_property_exit_gate\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.property'} @:{'words.generated.exit'} @:{'words.generated.gate'}\",\"perform_wash\":\"@.capitalize:{'words.generated.perform'} @:{'words.generated.wash'}\",\"questions_answered\":\"@.capitalize:{'words.generated.questions'} @:{'words.generated.answered'}\",\"select_from_vehicles\":\"@.capitalize:{'words.generated.select'} {plate} @:{'words.generated.from'} @:{'words.generated.your'} @:{'words.generated.vehicles'}\",\"select_vehicle_type\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.vehicle'} @:{'words.generated.type'}\",\"select_vehicle\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.vehicle'}\",\"select_your_vehicle\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.your'} @:{'words.generated.vehicle'}\",\"start_machine\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.machine'}\",\"start_wash_desc\":\"Go directly @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}'s @:{'words.generated.wash'} lanes @:{'words.generated.and'} start @:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.for'} @:{'words.generated.your'} @:{'words.generated.vehicle'}. @.capitalize:{'words.generated.select'} @:{'words.generated.your'} @:{'words.generated.vehicle'} @:{'words.generated.and'} @:{'words.replication.article.host_mention'} @:{'words.generated.desired'} @:{'words.generated.wash'} @:{'words.generated.type'} @:{'words.generated.to'} get started.\",\"start_wash\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.wash'}\",\"total_time\":\"@.capitalize:{'words.generated.total'} @:{'words.generated.time'}: {minutes} @:{'words.generated.minutes'} @:{'words.generated.and'} {seconds} @:{'words.generated.seconds'}\",\"unavailable\":\"@.capitalize:{'words.generated.unavailable'}\",\"vehicle_step_missing_customer_number\":\"Enter your customer number to continue.\",\"vehicle_step_missing_department\":\"Wait for the nearest department to load before continuing.\",\"vehicle_step_missing_registration\":\"Enter your registration number to continue.\",\"vehicle_step_missing_vehicle_type\":\"Choose an available vehicle type to continue.\",\"wash_completed_contact\":\"@.capitalize:{'words.generated.we'} hope @:{'words.generated.you'} @:{'words.generated.are'} satisfied @:{'words.generated.with'} @:{'words.replication.article.host_mention'} @:{'words.generated.result'}. @.capitalize:{'words.generated.if'} @:{'words.generated.you'} @:{'words.generated.need'} @:{'words.generated.further'} @:{'words.generated.assistance'}, @:{'words.generated.please'} @:{'words.generated.contact'} @:{'words.generated.our'} staff.\",\"wash_completed_message\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.wash'} @:{'words.generated.is'} @:{'words.generated.now'} @:{'words.generated.complete'}! @:{'words.generated.thank'} @:{'words.generated.you'} @:{'words.generated.for'} @:{'words.generated.using'} @:{'words.generated.our'} @:{'words.generated.self'}-@:{'words.generated.service'} @:{'words.generated.wash'}.\",\"wash_completed\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.completed'}\",\"wash_in_progress\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.in'} @:{'words.generated.progress'}\"},\"settings\":{\"appearance\":\"Appearance\",\"billing\":\"@.capitalize:{'words.generated.invoicing'}\",\"change_password\":\"@.capitalize:{'words.generated.change'} @:{'words.generated.password'}\",\"confirm_password\":\"@.capitalize:{'words.generated.confirm'} @:{'words.generated.password'}\",\"current_password\":\"@.capitalize:{'words.generated.current'} @:{'words.generated.password'}\",\"date_format\":\"@.capitalize:{'words.generated.date'} @:{'words.generated.format'}\",\"disable\":\"@.capitalize:{'words.generated.disable'}\",\"discard_changes\":\"@:{'words.generated.ignore'} @:{'words.generated.changes'}\",\"email_notifications\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.notifications'}\",\"enable\":\"@.capitalize:{'words.generated.enable'}\",\"general\":\"@.capitalize:{'words.generated.general'}\",\"integrations\":\"@.capitalize:{'words.generated.integrations'}\",\"new_password\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.password'}\",\"notifications\":\"@:{'templates.generated.compat.nav.notifications'}\",\"password_change\":{\"confirm_password\":\"@:{'templates.generated.compat.settings.confirm_password'}\",\"current_password\":\"@:{'templates.generated.compat.settings.current_password'}\"},\"push_notifications\":\"Push @:{'words.generated.notifications'}\",\"save_changes\":\"@:{'templates.generated.compat.modals.save_changes'}\",\"section\":{\"password\":\"@:{'templates.generated.compat.global.password'}\",\"password_desc\":\"@.capitalize:{'words.replication.article.host_mention'} password @:{'words.generated.is'} used @:{'words.generated.to'} authenticate @:{'words.replication.article.host_mention'} @:{'words.generated.api'} connection.\",\"subscription\":\"@.capitalize:{'words.generated.subscription'}\"},\"security\":\"@.capitalize:{'words.generated.security'}\",\"sms_notifications_desc\":\"Receive SMS notifications @:{'words.generated.for'} @:{'words.generated.various'} events.\",\"sms_notifications\":\"@:{'words.generated.sms'} @:{'words.generated.notifications'}\",\"subscription\":{\"expires_at\":\"Expires\"},\"theme\":\"Theme\",\"time_format\":\"@.capitalize:{'words.generated.time'} @:{'words.generated.format'}\",\"timezone\":\"@.capitalize:{'words.generated.time'} zone\",\"two_factor\":\"@.capitalize:{'words.generated.two'}-@:{'words.generated.factor'} @:{'words.generated.authentication'}\"},\"statistics\":{\"average\":\"@.capitalize:{'words.generated.average'}\",\"avg_revenue_per_wash\":\"@.capitalize:{'words.generated.average'} turnover @:{'words.generated.per'} @:{'words.generated.wash'}\",\"avg_wash_time\":\"@.capitalize:{'words.generated.average'} @:{'words.generated.washing'} @:{'words.generated.time'}\",\"chart\":{\"revenue_over_time\":\"@.capitalize:{'words.generated.revenue'} @:{'words.generated.over'} @:{'words.generated.time'}\",\"washes_over_time\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.over'} @:{'words.generated.time'}\"},\"compare\":\"@.capitalize:{'words.generated.comparison'}\",\"customer_types\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.types'}\",\"day\":\"@:{'templates.generated.compat.calendar.day'}\",\"days\":\"@.capitalize:{'words.generated.days'}\",\"growth\":\"Growth\",\"no_data\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.data'} @:{'words.generated.available'}\",\"overview\":{\"departments_today\":\"@.capitalize:{'words.generated.departments'} @:{'words.generated.today'}\",\"departments_today_desc\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.how'} @:{'words.generated.your'} @:{'words.generated.departments'} @:{'words.generated.are'} @:{'words.generated.doing'} @:{'words.generated.today'}\",\"no_departments\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.departments'}\",\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.how'} @:{'words.generated.your'} @:{'words.generated.departments'} @:{'words.generated.are'} @:{'words.generated.doing'}\"},\"popular_products\":\"@:{'words.generated.popular'} @:{'words.generated.products'}\",\"popular_times\":\"@:{'words.generated.popular'} times\",\"revenue\":\"@.capitalize:{'words.generated.income'}\",\"subtitle\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.statistics'}\",\"sum\":\"Sum\",\"table\":\"@.capitalize:{'words.generated.table'}\",\"top_customers_by_revenue\":\"@.capitalize:{'words.generated.top'} @:{'words.generated.customers'} @:{'words.generated.by'} @:{'words.generated.revenue'}\",\"top_customers_by_washes\":\"@.capitalize:{'words.generated.top'} @:{'words.generated.customers'} @:{'words.generated.by'} @:{'words.generated.washes'}\",\"vehicle_types\":\"@.capitalize:{'words.generated.vehicle'} @:{'words.generated.types'}\",\"washes\":\"@:{'templates.generated.compat.global.wash_multiple'}\"},\"super_user_dashboard\":{\"create_department\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.department'}\",\"create_number_plate_scan\":\"@:{'words.generated.opret'} nummerplade @:{'words.generated.scanning'}\",\"create_order_booking\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.order'} @:{'words.generated.booking'}\",\"create_order\":\"@:{'templates.generated.compat.tables.xlvask.create_order'}\",\"create_product\":\"@:{'words.generated.opret'} @:{'words.generated.produkt'}\",\"get_department_list\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.department'} @:{'words.generated.list'}\",\"get_orders\":\"@:{'words.generated.pick'} @:{'words.generated.up'} @:{'words.generated.orders'}\",\"get_session_data\":\"@.capitalize:{'words.generated.get'} @:{'words.generated.session'} @:{'words.generated.data'}\",\"get_user_list\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.user'} @:{'words.generated.list'}\",\"run_cron\":\"@.capitalize:{'words.generated.run'} cron\",\"title\":\"Super @.capitalize:{'words.generated.user'} @.capitalize:{'words.generated.dashboard'}\"},\"superuser_dashboard\":{\"bookings\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.orders'} @:{'words.generated.across'} @:{'words.generated.departments'}\"},\"calendar\":{\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.calendar'} @:{'words.generated.for'} @:{'words.generated.all'} @:{'words.generated.departments'}\"},\"configuration\":{\"backups\":\"@:{'templates.generated.compat.system_status.modules.backups'}\",\"economic\":\"@:{'templates.generated.compat.system_status.modules.economic'}\",\"fxrates\":\"@:{'templates.generated.compat.configuration.fxrates.conversion_rates'}\",\"limble\":\"@:{'templates.generated.compat.system_status.modules.limble'}\",\"mailersend\":\"@:{'words.generated.mailersend'}\",\"motor_api\":\"@:{'words.generated.motor'} @:{'words.generated.api'}\",\"subtitle\":\"@.capitalize:{'words.generated.system'} @:{'words.generated.configuration'}\",\"virkdata\":\"@:{'words.generated.virk'} @.capitalize:{'words.generated.data'}\"},\"customers\":{\"edit_customer_title\":\"@:{'templates.generated.compat.customers.edit_customer'}\",\"new_customer_subtitle\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.customer'}\",\"new_customer_title\":\"@:{'templates.generated.compat.common.customer_picker.select_new_customer'}\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.customers'} @:{'words.generated.across'} @:{'words.generated.departments'}\"},\"departments\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.department'}\",\"delete\":\"@:{'templates.generated.compat.departments.delete_department'}\",\"edit\":\"@:{'templates.generated.compat.departments.edit_department'}\",\"new_department_subtitle\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.department'}\",\"subtitle\":\"@:{'templates.generated.compat.departments.subtitle'}\"},\"department_pages\":{\"branding\":{\"subtitle\":\"Brand identity, contact details, and department profile\"},\"categories\":{\"subtitle\":\"Browse and maintain the department's category catalogue\"},\"gateways\":{\"subtitle\":\"Gateway coverage, lane bindings, scanners, and relay health\"},\"modules\":{\"subtitle\":\"Toggle department-wide module settings and integration flags\",\"variables\":{\"bookingsystem_enabled\":\"Bookingsystem enabled\",\"bookingsystem_time_based_enabled\":\"Time-based bookingsystem enabled\",\"bookingsystem_time_based_password\":\"Time-based bookingsystem password\",\"exclude_from_invoicing\":\"Excluded from invoicing\",\"workfeed_department_id\":\"Workfeed department\"}},\"pricing\":{\"subtitle\":\"Review the department's explicit price overrides\"},\"stripe\":{\"readers\":{\"subtitle\":\"Payment terminals currently associated with this department\"},\"setup\":{\"subtitle\":\"Assign the Stripe location used by this department\"}}},\"employees\":{\"new_employee_subtitle\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.employee'}\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.employees'} @:{'words.generated.across'} @:{'words.generated.departments'}\"},\"home\":{\"subtitle\":\"@:{'words.generated.welcome'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.admin'} @:{'words.generated.panel'}\",\"title\":\"@.capitalize:{'words.generated.admin'} @:{'words.generated.dashboard'}\"},\"invoices\":{\"subtitle\":\"@:{'templates.generated.compat.invoices.subtitle'}\"},\"menu\":{\"calendar\":\"@.capitalize:{'words.generated.calendar'}\",\"pos\":\"@:{'words.generated.pos'}\"},\"products\":{\"add\":\"@:{'templates.generated.compat.configuration.products.add'}\",\"addons_subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.product'} @:{'words.generated.additions'} @:{'words.generated.across'} @:{'words.generated.departments'}\",\"addons\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.options'}\",\"delete\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.add'}-@:{'words.generated.on'}\",\"edit\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.options'}\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.product'} @:{'words.generated.add'}-@:{'words.generated.ons'}\"},\"delete\":\"@:{'templates.generated.compat.products.delete_product'}\",\"subtitle\":\"@:{'templates.generated.compat.products.subtitle'}\"},\"roles\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.user'} @:{'words.generated.roles'}\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.system'} @:{'words.generated.settings'}\"},\"sidebar\":{\"billing_periods\":\"@.capitalize:{'words.generated.billing'} periods\",\"xlvask\":\"@:{'templates.generated.compat.superuser.nav.xlvask'}\"},\"statistics\":{\"subtitle\":\"@:{'templates.generated.compat.statistics.subtitle'}\"},\"users\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.user'}\",\"delete\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.user'}\",\"edit\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.user'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.users.subtitle'}\"},\"vehicles\":{\"subtitle\":\"@:{'templates.generated.compat.vehicles.subtitle'}\"},\"wash_log\":{\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.wash'} @:{'words.generated.log'} @:{'words.generated.across'} @:{'words.generated.departments'}\"}},\"superuser_invoice_distribution\":{\"actions\":{\"next_month\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.next'} @:{'words.generated.month'}\",\"open_month\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.month'}\",\"previous_month\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.previous'} @:{'words.generated.month'}\",\"reset_filters\":\"@.capitalize:{'words.generated.reset'} @:{'words.generated.filters'}\"},\"aria\":{\"compare_table_caption\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.comparison'} @:{'words.generated.results'} @:{'words.generated.sorted'} @:{'words.generated.by'} @:{'words.generated.mismatches'} @:{'words.generated.and'} @:{'words.generated.warnings'}\",\"customer_table_caption\":\"@.capitalize:{'words.generated.customer'}-@:{'words.generated.level'} @:{'words.generated.allocation'} @:{'words.generated.rows'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.month'}\",\"department_table_caption\":\"@.capitalize:{'words.generated.department'}-@:{'words.generated.level'} @:{'words.generated.allocation'} @:{'words.generated.split'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.month'}\",\"month_comparison_caption\":\"@.capitalize:{'words.generated.month'}-@:{'words.generated.over'}-@:{'words.generated.month'} @:{'words.generated.comparison'} @:{'words.generated.table'} @:{'words.generated.for'} @:{'words.generated.key'} @:{'words.generated.metrics'}\",\"month_table_caption\":\"@.capitalize:{'words.generated.monthly'} @:{'words.generated.distribution'} @:{'words.generated.totals'} @:{'words.generated.with'} @:{'words.generated.source'} @:{'words.generated.mix'} @:{'words.generated.and'} quick-@:{'words.generated.open'} @:{'words.generated.actions'}\",\"open_month\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.distribution'} @:{'words.generated.details'} @:{'words.generated.for'} {month}\",\"sort_month\":\"@:{'words.generated.sort'} @:{'words.generated.table'} @:{'words.generated.by'} @:{'words.generated.month'}\",\"sort_total\":\"@:{'words.generated.sort'} @:{'words.generated.table'} @:{'words.generated.by'} @:{'words.generated.total'} @:{'words.generated.amount'}\",\"source_mix_row\":\"@.capitalize:{'words.generated.source'} composition @:{'words.generated.for'} {month}\",\"trend_chart\":\"@.capitalize:{'words.generated.distribution'} @:{'words.generated.trend'} chart @:{'words.generated.by'} @:{'words.generated.month'}\"},\"compare\":{\"compare_month\":\"@.capitalize:{'words.generated.compare'} @:{'words.generated.against'} @:{'words.generated.month'}\",\"line_mode_disclaimer\":\"@.capitalize:{'words.generated.line'}-@:{'words.generated.by'}-@:{'words.generated.line'} @:{'words.generated.mode'} @:{'words.generated.uses'} @:{'words.generated.available'} @:{'words.generated.compare'} @:{'words.generated.metadata'} @:{'words.generated.and'} @:{'words.generated.warning'} @:{'words.generated.lines'} @:{'words.generated.from'} @:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.response'}.\",\"mismatches\":\"@.capitalize:{'words.generated.mismatches'}\",\"mode\":\"@.capitalize:{'words.generated.comparison'} @:{'words.generated.mode'}\",\"modes\":{\"invoice_total\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.total'} @:{'words.generated.only'}\",\"line_by_line\":\"@.capitalize:{'words.generated.line'}-@:{'words.generated.by'}-@:{'words.generated.line'} @:{'words.generated.summary'}\"},\"month_to_month\":\"@.capitalize:{'words.generated.month'}-@:{'words.generated.over'}-@:{'words.generated.month'} @:{'words.generated.comparison'}\",\"run\":\"@.capitalize:{'words.generated.compare'} @:{'words.generated.all'} @:{'words.generated.local'} @:{'words.generated.invoices'} @:{'words.generated.with'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"run_short\":\"@.capitalize:{'words.generated.run'} @:{'words.generated.compare'}\",\"sorted_hint\":\"@.capitalize:{'words.generated.rows'} @:{'words.generated.are'} @:{'words.generated.sorted'} @:{'words.generated.by'} @:{'words.generated.mismatches'} @:{'words.generated.and'} @:{'words.generated.warning'} severity @:{'words.generated.first'}.\",\"status_label\":\"@.capitalize:{'words.generated.comparison'} @:{'words.generated.status'}\",\"status\":{\"mismatch\":\"@.capitalize:{'words.generated.mismatch'}\",\"ok\":\"@.capitalize:{'words.generated.match'}\"},\"total_checked\":\"@.capitalize:{'words.generated.invoices'} @:{'words.generated.checked'}\",\"total_difference\":\"@.capitalize:{'words.generated.total'} difference\",\"warning_details\":\"@.capitalize:{'words.generated.warnings'} @:{'words.generated.for'} @:{'words.generated.invoice'} #{invoiceId}\"},\"departments\":{\"allocation_hint\":\"@.capitalize:{'words.generated.booked'} @:{'words.generated.allocation'} @:{'words.generated.is'} @:{'words.generated.estimated'} @:{'words.generated.from'} @:{'words.generated.each'} @:{'words.generated.department'}'@:{'words.generated.s'} @:{'words.generated.distribution'} @:{'words.generated.share'}.\"},\"empty\":{\"no_compare_results\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.comparison'} @:{'words.generated.results'} @:{'words.generated.yet'}\",\"no_comparison_months\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.month'} @:{'words.generated.available'}\",\"no_customers\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.customers'} @:{'words.generated.match'} @:{'words.replication.article.host_mention'} @:{'words.generated.current'} @:{'words.generated.filters'}\",\"no_departments\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.departments'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.month'}\",\"no_month_comparison\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.comparison'} @:{'words.generated.month'} @:{'words.generated.to'} @:{'words.generated.view'} deltas.\",\"no_months\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.months'} @:{'words.generated.to'} @:{'words.generated.display'}\"},\"errors\":{\"compare_failed\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.complete'} @:{'words.generated.comparison'}\",\"month_load_failed\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.load'} @:{'words.generated.selected'} @:{'words.generated.month'}\",\"overview_load_failed\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.load'} @:{'words.generated.monthly'} @:{'words.generated.distribution'} @:{'words.generated.overview'}\"},\"filters\":{\"all_departments\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.departments'}\",\"all_sources\":\"@.capitalize:{'words.generated.all'} sources\",\"all_years\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.years'}\",\"search\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.month'}\",\"search_customer\":\"@:{'templates.generated.compat.common.search_customer'}\",\"search_customer_placeholder\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.name'} @:{'words.generated.or'} @:{'words.generated.number'}...\",\"search_department\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.department'}\",\"search_department_placeholder\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.name'}...\",\"search_placeholder\":\"@.capitalize:{'words.generated.find'} @:{'words.generated.month'}...\"},\"loading\":{\"loading_months\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.months'} ({loaded}/{total})\"},\"metrics\":{\"booked\":\"@.capitalize:{'words.generated.booked'} @:{'words.generated.invoices'}\",\"distribution\":\"@.capitalize:{'words.generated.departmental'} @:{'words.generated.distribution'}\",\"months\":\"@.capitalize:{'words.generated.months'} @:{'words.generated.in'} @:{'words.generated.view'}\",\"other\":\"@.capitalize:{'words.generated.other'} @:{'words.generated.booked'} @:{'words.generated.income'}\",\"subscriptions\":\"@.capitalize:{'words.generated.vehicle'} @:{'words.generated.subscriptions'}\"},\"monthly_page\":{\"subtitle\":\"@:{'words.generated.review'} @:{'words.generated.departmental'} @:{'words.generated.allocations'}, @:{'words.generated.customer'} @:{'words.generated.split'}, @:{'words.generated.and'} @:{'words.generated.invoice'} comparisons.\",\"title\":\"@.capitalize:{'words.generated.distribution'} @:{'words.generated.for'} {month}\",\"toolbar_month\":\"@.capitalize:{'words.generated.month'} selector\",\"toolbar_month_picker\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.month'}\"},\"overview\":{\"loaded_months\":\"{loaded} @:{'words.generated.months'} @:{'words.generated.loaded'}\",\"subtitle\":\"@.capitalize:{'words.generated.monthly'} @:{'words.generated.overview'} @:{'words.generated.of'} @:{'words.generated.shared'} @:{'words.generated.income'} @:{'words.generated.allocation'} @:{'words.generated.by'} @:{'words.generated.source'}.\",\"title\":\"@.capitalize:{'words.generated.departmental'} @.capitalize:{'words.generated.distribution'}\"},\"sections\":{\"month_table\":\"@.capitalize:{'words.generated.month'} @:{'words.generated.totals'}\",\"source_blend\":\"@.capitalize:{'words.generated.source'} blend\",\"top_months\":\"@.capitalize:{'words.generated.top'} @:{'words.generated.months'} @:{'words.generated.by'} @:{'words.generated.total'}\",\"trend\":\"@.capitalize:{'words.generated.monthly'} @:{'words.generated.trend'}\"},\"table\":{\"booked\":\"@:{'templates.generated.compat.global.booked'}\",\"compared\":\"Compared @:{'words.generated.month'}\",\"current\":\"@:{'templates.generated.compat.objects.goals.columns.current'}\",\"delta\":\"Delta\",\"distribution\":\"@.capitalize:{'words.generated.distribution'}\",\"economic_total\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.total'}\",\"estimated_booked_allocation\":\"@.capitalize:{'words.generated.estimated'} @:{'words.generated.booked'} @:{'words.generated.allocation'}\",\"fixed_pricing\":\"@.capitalize:{'words.generated.fixed'} @:{'words.generated.pricing'}\",\"internal_total\":\"@.capitalize:{'words.generated.local'} @:{'words.generated.total'}\",\"invoice_id\":\"@.capitalize:{'words.generated.invoice'} @.upper:{'words.generated.id'}\",\"metric\":\"Metric\",\"share\":\"@.capitalize:{'words.generated.share'}\",\"source_mix\":\"@.capitalize:{'words.generated.source'} @:{'words.generated.mix'}\"},\"tooltips\":{\"compare_mode\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.total'} compares aggregate @:{'words.generated.totals'}. @.capitalize:{'words.generated.line'}-@:{'words.generated.by'}-@:{'words.generated.line'} provides @:{'words.generated.per'}-@:{'words.generated.invoice'} @:{'words.generated.line'} @:{'words.generated.summary'} @:{'words.generated.from'} @:{'words.generated.available'} @:{'words.generated.compare'} @:{'words.generated.data'}.\",\"estimated_booked\":\"@.capitalize:{'words.generated.estimated'} @:{'words.generated.booked'} @:{'words.generated.share'} @:{'words.generated.based'} @:{'words.generated.on'} @:{'words.generated.each'} @:{'words.generated.department'}'@:{'words.generated.s'} proportion @:{'words.generated.of'} @:{'words.replication.article.host_mention'} @:{'words.generated.shared'} @:{'words.generated.distribution'}.\",\"fixed_pricing\":\"@.capitalize:{'words.generated.amount'} @:{'words.generated.assigned'} @:{'words.generated.from'} @:{'words.generated.fixed'}-@:{'words.generated.price'} @:{'words.generated.agreements'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.month'}.\",\"subscriptions\":\"@.capitalize:{'words.generated.amount'} @:{'words.generated.assigned'} @:{'words.generated.from'} @:{'words.generated.vehicle'} @:{'words.generated.subscriptions'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.selected'} @:{'words.generated.month'}.\",\"summary\":\"@.capitalize:{'words.generated.each'} @:{'words.generated.month'} includes @:{'words.generated.booked'} @:{'words.generated.totals'} @:{'words.generated.plus'} @:{'words.generated.fixed'}-@:{'words.generated.pricing'} @:{'words.generated.and'} @:{'words.generated.subscription'} @:{'words.generated.distribution'} @:{'words.generated.totals'}.\"},\"warnings\":{\"legacy_compare_fallback\":\"@.capitalize:{'words.generated.comparison'} @:{'words.generated.is'} @:{'words.generated.running'} @:{'words.generated.on'} @:{'words.replication.article.host_mention'} @:{'words.generated.legacy'} @:{'words.generated.endpoint'} @:{'words.generated.because'} @:{'words.generated.v2'} bulk @:{'words.generated.compare'} @:{'words.generated.was'} @:{'words.generated.unavailable'}.\",\"legacy_distribution_fallback\":\"@.capitalize:{'words.generated.loaded'} {count} @:{'words.generated.month'}(@:{'words.generated.s'}) @:{'words.generated.through'} @:{'words.generated.legacy'} @:{'words.generated.distribution'} @:{'words.generated.endpoints'} @:{'words.generated.while'} @:{'words.generated.v2'} @:{'words.generated.was'} @:{'words.generated.unavailable'}.\",\"legacy_distribution_month\":\"@.capitalize:{'words.generated.current'} @:{'words.generated.month'} @:{'words.generated.data'} @:{'words.generated.used'} @:{'words.generated.legacy'} @:{'words.generated.distribution'} @:{'words.generated.endpoints'} @:{'words.generated.because'} @:{'words.generated.v2'} @:{'words.generated.was'} @:{'words.generated.unavailable'}.\"}},\"superuser\":{\"collected_order_invoice\":{\"and_booked\":\"@:{'words.generated.and'} @:{'words.generated.posted'}\",\"and_draft\":\"@:{'words.generated.and'} @:{'words.generated.saved'} @:{'words.generated.as'} @:{'words.generated.draft'}\",\"but_not_booked\":\"@:{'words.generated.but'} @:{'words.generated.not'} @:{'words.generated.posted'}\",\"in_economic\":\"@:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"invoice_booked_economic\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.is'} @:{'words.generated.posted'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}, @:{'words.generated.no'} @:{'words.generated.further'} @:{'words.generated.actions'} @:{'words.generated.are'} @:{'words.generated.necessary'}.\",\"invoice_draft_economic\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.is'} @:{'words.generated.saved'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.draft'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.and'} @:{'words.generated.can'} @:{'words.generated.be'} @:{'words.generated.posted'} @:{'words.generated.there'} @:{'words.generated.directly'}.\",\"invoice_paid_status\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.invoice'} @:{'words.generated.is'} @:{'words.generated.paid'}\",\"no_invoice_found\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.invoice'} @:{'words.generated.found'} @:{'words.generated.with'} @:{'words.replication.article.host_mention'} @:{'words.generated.specified'} @.upper:{'words.generated.id'}\",\"payment_overview\":\"@.capitalize:{'words.generated.payment'} @.capitalize:{'words.generated.overview'}\"},\"department_lane\":{\"force_disable_machine\":\"@.capitalize:{'words.generated.force'} @:{'words.generated.disable'} @:{'words.generated.machine'}\",\"force_disable_success\":\"@.capitalize:{'words.generated.machine'} @:{'words.generated.force'} @:{'words.generated.disabled'}\",\"force_enable_machine\":\"@.capitalize:{'words.generated.force'} @:{'words.generated.enable'} @:{'words.generated.machine'}\",\"force_enable_success\":\"@.capitalize:{'words.generated.machine'} @:{'words.generated.force'} @:{'words.generated.enabled'}\",\"force_error\":\"@.capitalize:{'words.generated.error'} @:{'words.generated.performing'} @:{'words.generated.force'} @:{'words.generated.action'}\"},\"driver_access\":{\"advanced\":\"Advanced\",\"capabilities\":{\"add_bookings\":\"Create bookings\",\"add_vehicles\":\"Add vehicles\",\"delete_bookings\":\"Delete bookings\",\"delete_selfserve\":\"Delete self-service\",\"delete_vehicles\":\"Delete vehicles\",\"disable_driver_access\":\"Disable driver access\",\"edit_bookings\":\"Edit bookings\",\"edit_driver_access\":\"Edit driver access\",\"edit_orders\":\"Edit orders\",\"edit_selfserve\":\"Edit self-service\",\"edit_vehicles\":\"Edit vehicles\",\"invite_drivers\":\"Invite drivers\",\"start_selfserve\":\"Start self-service\",\"view_bookings\":\"View bookings\",\"view_drivers\":\"View drivers\",\"view_orders\":\"View orders\",\"view_selfserve\":\"View self-service\",\"view_vehicles\":\"View vehicles\"},\"custom_description\":\"Choose individual access areas for this driver.\",\"editor_intro\":\"Choose a grouped access profile. Superusers can use custom access for exceptions.\",\"editor_title\":\"Access profile for {name}\",\"empty\":\"No access profiles were found.\",\"groups\":{\"bookings\":\"Bookings\",\"driver_management\":\"Driver management\",\"orders\":\"Orders\",\"selfserve\":\"Self-service\",\"vehicles\":\"Vehicles\"},\"loading\":\"Loading access profiles...\",\"selected\":\"Selected\",\"templates\":{\"booking_coordinator\":{\"description\":\"Can coordinate bookings and see the related vehicles and orders.\",\"label\":\"Booking coordinator\"},\"custom\":{\"description\":\"Choose individual access areas.\",\"label\":\"Custom\"},\"deactivated\":{\"description\":\"Keeps the driver linked to the customer without active access.\",\"label\":\"Deactivated\"},\"driver\":{\"description\":\"Can use self-service, manage own bookings, see vehicles, and view orders.\",\"label\":\"Driver\"},\"fleet_admin\":{\"description\":\"Can manage drivers, vehicles, bookings, self-service, and orders for the customer.\",\"label\":\"Fleet admin\"}},\"form_label\":\"Access profile\",\"form_help\":\"Choose a grouped access profile. It can be changed later.\",\"summary\":{\"no_permissions\":\"No permissions\",\"permission_count\":\"{count} permissions\",\"custom_summary\":\"Custom: {summary}\"}},\"driver_contact\":{\"close\":\"Close\",\"email_missing\":\"E-mail missing\",\"link_not_sent_default\":\"The link could not be sent.\",\"link_not_sent_title\":\"Link could not be sent\",\"link_send_failed\":\"The link could not be sent.\",\"link_sent_default\":\"The link was sent.\",\"link_sent_title\":\"Link sent\",\"login_link_failed_title\":\"Login link could not be sent\",\"login_link_not_sent_title\":\"Login link could not be sent\",\"login_link_sent_title\":\"Login link sent\",\"missing\":\"Missing\",\"password_guide_failed_title\":\"Guide could not be sent\",\"password_guide_not_sent_title\":\"Guide could not be sent\",\"password_guide_sent_title\":\"Guide sent\",\"phone_missing\":\"Phone missing\",\"send_login_link\":\"Send pre-authorized login link\",\"send_password_guide\":\"Send new password guide\",\"status\":\"Status\",\"unverified\":\"Not verified\",\"verification_update_failed\":\"Verification status could not be updated.\",\"verification_update_failed_title\":\"Status could not be updated\",\"verified\":\"Verified\"},\"driver_wheel\":{\"access_section\":\"Access\",\"account_section\":\"Account\",\"contact_section\":\"Contact\",\"details_section\":\"Details\",\"identity_subsection\":\"Identity\",\"system_subsection\":\"System\"},\"invoicing_billing_period\":{\"dashboard_right\":\"@.capitalize:{'words.generated.dashboard'} @.capitalize:{'words.generated.right'} @.capitalize:{'words.generated.display'}\",\"fetch_period_data\":\"@:{'words.generated.fetch'} @.capitalize:{'words.generated.period'} @.capitalize:{'words.generated.data'}\"},\"nav\":{\"categories\":\"@.capitalize:{'words.generated.categories'}\",\"complaints\":\"@.capitalize:{'words.generated.complaints'}\",\"department_gates\":\"@.capitalize:{'words.generated.department'} @.capitalize:{'words.generated.gates'}\",\"department_lanes\":\"@.capitalize:{'words.generated.department'} @.capitalize:{'words.generated.lanes'}\",\"department_relays\":\"@.capitalize:{'words.generated.department'} @.capitalize:{'words.generated.relays'}\",\"invoicing\":\"@:{'templates.generated.compat.settings.billing'}\",\"orders\":\"@.capitalize:{'words.generated.transaction'} @.capitalize:{'words.generated.history'}\",\"roles\":\"@.capitalize:{'words.generated.roles'} @:{'words.generated.and'} @.capitalize:{'words.generated.permissions'}\",\"scanners\":\"@.capitalize:{'words.generated.license'} @.capitalize:{'words.generated.plate'} @.capitalize:{'words.generated.scanners'}\",\"xlvask\":\"@:{'words.generated.xlvask'}\",\"error_reports\":\"Error reports\"},\"pages\":{\"categories\":{\"create\":\"@:{'templates.generated.compat.common.create'}\"},\"complaints\":{\"created_by_column\":\"@:{'templates.generated.compat.admin.pos.created_by'}\",\"delete_message\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.complaint'} @:{'words.generated.will'} @:{'words.generated.be'} permanently @:{'words.generated.removed'}.\",\"delete_title\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.complaint'}?\",\"edit_title\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.complaint'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.complaints'}\",\"single\":\"@.capitalize:{'words.generated.complaint'}\",\"subtitle\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.and'} @:{'words.generated.manage'} @:{'words.generated.customer'} @:{'words.generated.complaints'} @:{'words.generated.across'} @:{'words.generated.departments'}.\",\"title\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.complaints'}\"},\"customers\":{\"create\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.customer'}\",\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.a'} @:{'words.generated.list'} @:{'words.generated.of'} @:{'words.generated.all'} @:{'words.generated.customers'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.system'}\"},\"department_gates\":{\"create\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.department'} @:{'words.generated.gate'}\",\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.a'} @:{'words.generated.list'} @:{'words.generated.of'} @:{'words.generated.all'} @:{'words.generated.department'} @:{'words.generated.gates'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.system'}\"},\"department_lanes\":{\"create\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.department'} @:{'words.generated.lane'}\",\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.a'} @:{'words.generated.list'} @:{'words.generated.of'} @:{'words.generated.all'} @:{'words.generated.department'} @:{'words.generated.lanes'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.system'}\"},\"department_relays\":{\"create\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.department'} @:{'words.generated.relay'}\",\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.a'} @:{'words.generated.list'} @:{'words.generated.of'} @:{'words.generated.all'} @:{'words.generated.department'} @:{'words.generated.relays'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.system'}\"},\"department_selector\":{\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.department'}\"},\"departments\":{\"create\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.department'}\",\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.a'} @:{'words.generated.list'} @:{'words.generated.of'} @:{'words.generated.all'} @:{'words.generated.departments'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.system'}\"},\"drivers\":{\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.and'} @:{'words.generated.manage'} @:{'words.generated.your'} @:{'words.generated.drivers'}.\"},\"employees\":{\"create\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.employee'}\",\"migrate_to_limited_backoffice\":\"Migrate to limited backoffice\",\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.a'} @:{'words.generated.list'} @:{'words.generated.of'} @:{'words.generated.all'} @:{'words.generated.employees'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.system'}\"},\"orders\":{\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.a'} @:{'words.generated.list'} @:{'words.generated.of'} @:{'words.generated.all'} @:{'words.generated.transactions'}\"},\"products\":{\"create\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.product'}\",\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.a'} @:{'words.generated.list'} @:{'words.generated.of'} @:{'words.generated.all'} @:{'words.generated.products'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.system'}\"},\"scanners\":{\"create\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.license'} @:{'words.generated.plate'} @:{'words.generated.scanner'}\",\"simulate_scan\":\"Simulate @:{'words.generated.scan'}\",\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.a'} @:{'words.generated.list'} @:{'words.generated.of'} @:{'words.generated.all'} @:{'words.generated.license'} @:{'words.generated.plate'} @:{'words.generated.scanners'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.system'}\"},\"subusers\":{\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.a'} @:{'words.generated.list'} @:{'words.generated.of'} @:{'words.generated.all'} @:{'words.generated.sub'}-@:{'words.generated.users'} @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.system'}\",\"title\":\"@.capitalize:{'words.generated.sub'}-@:{'words.generated.users'}\"}},\"statistics\":{\"error_occurred\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'}\"},\"user_detail\":{\"overview_header_help\":\"Use the workspace shortcuts and direct actions below to manage this customer account.\",\"workspace_shortcuts_help\":\"Jump straight into the user-specific workspaces for this account.\",\"attribute_help\":\"Hover an attribute to see what it changes for the customer.\",\"subtitles\":{\"overview\":\"Customer overview and management workspace\",\"orders\":\"Invoice handling, open drafts, and order history\",\"pricing\":\"Customer-specific discounts and fixed product prices\",\"other\":\"Special arrangements and internal customer notes\",\"security\":\"Permissions and customer rule access\",\"subusers\":\"Drivers and customer access grants\",\"vehicles\":\"Vehicles, subscriptions, and mass registration tools\",\"xlvask\":\"XLVask account details and related imported vehicles\"},\"orders\":{\"summary_title\":\"Order invoicing overview\",\"summary_subtitle\":\"Review how this customer is invoiced before opening the full order list.\",\"invoicing_mode\":\"Invoicing mode\",\"open_draft\":\"Open invoice draft\"},\"pricing\":{\"summary_title\":\"Pricing overview\",\"summary_subtitle\":\"Inspect the customer-wide discount policy and product-specific overrides.\",\"table_title\":\"Product pricing overrides\",\"table_subtitle\":\"Adjust fixed prices and discount rules for each available product.\",\"global_discount\":\"Global discount\",\"product_overrides\":\"Product overrides\",\"discount_percent\":\"Discount percent\",\"fixed_price_label\":\"Fixed price\",\"fixed_price_validation\":\"Please enter a valid non-negative whole number.\",\"category_discount_disabled\":\"Category discount disabled\",\"fixed_price_tooltip\":\"Edit the fixed price for this product.\",\"item_discount_tooltip\":\"Edit the customer-specific discount for this product.\",\"category_discount_tooltip\":\"Edit the category discount used for this product.\"},\"other\":{\"summary_title\":\"Special arrangements\",\"summary_subtitle\":\"Store account-specific notes and billing details that affect day-to-day operations.\"},\"subusers\":{\"active\":\"Active\",\"disabled\":\"Disabled\",\"invite\":\"Invite driver\",\"pending_setup\":\"Pending setup\",\"summary_load_failed\":\"Could not load driver summary.\",\"summary_subtitle\":\"Review driver access before changing grants, permissions, or invitations.\",\"summary_title\":\"Driver access overview\",\"table_subtitle\":\"Manage the drivers that are linked to this customer's account.\",\"table_title\":\"Drivers\",\"total\":\"Total drivers\"},\"security\":{\"active_rules\":\"Active rules\",\"current_role\":\"Current role\",\"customer_rules_subtitle\":\"Toggle customer-specific rules that affect booking, invoicing, and product availability.\",\"direct_role_tab\":\"Set role\",\"editable\":\"Editable\",\"limited_employee_departments_label\":\"Departments\",\"limited_employee_load_failed\":\"Could not load limited backoffice options.\",\"limited_employee_migrate_failed\":\"Could not migrate employee.\",\"limited_employee_migrated\":\"Employee migrated to limited backoffice.\",\"limited_employee_role_label\":\"Role\",\"limited_employee_subtitle\":\"Choose a limited backoffice role and the departments this employee can access.\",\"limited_employee_tab\":\"Limited backoffice employee\",\"limited_employee_unavailable\":\"Only employee accounts without a customer number can be migrated to limited backoffice.\",\"limited_employee_validation\":\"Select a role and at least one department.\",\"managed_employee\":\"Limited backoffice\",\"manage_rules\":\"Manage rules\",\"migrate_employee\":\"Migrate employee\",\"no_role\":\"This user does not currently have an assigned role.\",\"permission_editor_notice\":\"Permission changes update the assigned role and affect every user using that role.\",\"permission_toggle_unavailable\":\"You do not have permission to change this role permission.\",\"permissions_unavailable\":\"You do not have permission to load role permissions.\",\"readonly\":\"Read-only\",\"role_assignment_subtitle\":\"Change which role supplies this user's effective permissions.\",\"role_assignment_title\":\"Role assignment\",\"role_edit_unavailable\":\"You do not have permission to edit this user's role.\",\"role_fetch_unavailable\":\"You do not have permission to load role options.\",\"role_locked\":\"Locked\",\"role_locked_limited_backoffice\":\"Limited backoffice managed users cannot have their role changed here.\",\"role_permissions_subtitle\":\"Review and update permissions for the assigned role.\",\"role_permissions_title\":\"Assigned role permissions\",\"role_save_failed\":\"Could not update the user role.\",\"role_saved\":\"Role updated.\",\"role_select_label\":\"Assigned role\",\"review_permissions\":\"Review permissions\",\"save_role\":\"Save role\",\"standard_user\":\"Standard user\",\"switch_role\":\"Switch role\"},\"vehicles\":{\"summary_title\":\"Vehicle workspace\",\"summary_subtitle\":\"Review the customer's vehicles, subscriptions, and import workflows.\",\"subscription_invoicing_subtitle\":\"Manage active wash subscriptions and create invoice drafts for other periods.\",\"table_title\":\"Registered vehicles\",\"table_subtitle\":\"Manage vehicle registrations and wash subscription settings for this customer.\",\"total\":\"Vehicles total\",\"wash_subscription\":\"Wash subscriptions\",\"self_service\":\"Self-service vehicles\",\"add_vehicle\":\"Add vehicle\",\"no_customer\":\"This user does not have a customer number, so vehicles cannot be managed here.\",\"summary_load_failed\":\"Vehicle summary could not be loaded.\"},\"overview\":{\"customer_actions_title\":\"Customer actions\",\"customer_actions_subtitle\":\"Run customer-specific actions without leaving the overview.\",\"customer_shortcuts_title\":\"Customer shortcuts\",\"customer_shortcuts_subtitle\":\"Jump to the most common customer workspaces from the overview.\",\"customer_flags_title\":\"Customer flags\",\"customer_flags_subtitle\":\"Create billing-period flags for this customer when follow-up is needed.\",\"fixed_pricing_title\":\"Fixed pricing\",\"fixed_pricing_subtitle\":\"Manage the customer-wide fixed pricing agreement.\",\"default_department_title\":\"Default department\",\"default_department_subtitle\":\"Choose which department should be preselected for this customer.\",\"open_orders\":\"Open orders\",\"open_pricing\":\"Open pricing\",\"open_security\":\"Open security\",\"open_subscriptions\":\"Open subscriptions\",\"special_arrangement_title\":\"Special arrangement\",\"special_arrangement_subtitle\":\"Store operational notes about the customer's special agreement.\",\"view_account\":\"View account\",\"view_economic\":\"View e-conomic\",\"wash_subscription_note_title\":\"Wash subscription note\",\"wash_subscription_note_subtitle\":\"Store the internal note used for wash subscription invoicing.\"},\"xlvask\":{\"summary_title\":\"XLVask customer profile\",\"summary_subtitle\":\"Inspect the linked XLVask customer record before importing vehicles.\",\"vehicles_title\":\"XLVask vehicles\",\"vehicles_subtitle\":\"Vehicles available in XLVask for this linked customer.\",\"not_found\":\"No XLVask customer record is linked to this account yet.\",\"customer_id\":\"XLVask ID\"}},\"user\":{\"fixed_pricing\":{\"not_implemented_desc\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.now'} @:{'words.generated.create'} @:{'words.generated.fixed'} @:{'words.generated.price'} @:{'words.generated.agreements'}, @:{'words.generated.but'} these @:{'words.generated.will'} @:{'words.generated.not'} @:{'words.generated.yet'} @:{'words.generated.be'} applied @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.system'}.\",\"not_implemented_title\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.feature'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.yet'} @:{'words.generated.implemented'} @:{'words.generated.in'} @:{'words.generated.invoicing'}\"},\"special_arrangement\":{\"label\":\"@.capitalize:{'words.generated.special'} @:{'words.generated.arrangement'}, @:{'words.generated.internal'}. (@.capitalize:{'words.generated.note'})\",\"save\":\"@.capitalize:{'words.generated.save'} @:{'words.generated.special'} @:{'words.generated.arrangement'}\",\"title\":\"@.capitalize:{'words.generated.special'} @:{'words.generated.arrangement'}\"},\"vehicles\":{\"placeholder_active_subscriptions\":\"@:{'templates.generated.compat.user_vehicles.subscriptions_placeholder'}\",\"placeholder_self_service\":\"@:{'templates.generated.compat.user_vehicles.self_service_placeholder'}\",\"placeholder_vehicle_count\":\"@:{'words.generated.placeholder'} @:{'words.generated.for'} @:{'words.generated.vehicle'} @:{'words.generated.count'}\"},\"wash_subscription\":{\"save\":\"@.capitalize:{'words.generated.save'} @:{'words.generated.wash'} @:{'words.generated.subscription'}\"}},\"vehicle\":{\"xlvask_usage_log\":{\"create_order_all\":\"@.capitalize:{'words.generated.create'} @.capitalize:{'words.generated.order'} @:{'words.generated.for'} @.capitalize:{'words.generated.all'} @.capitalize:{'words.generated.applicable'}\"}},\"xlvask\":{\"fetch_customers\":\"@:{'words.generated.fetch'} @:{'words.generated.customers'}\",\"fetch_objects\":\"@:{'words.generated.fetch'} @.capitalize:{'words.generated.objects'}\",\"objects\":\"@.capitalize:{'words.generated.objects'}\"}},\"system_status\":{\"actions\":{\"open_config\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.configuration'}\",\"open_replication\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.replication'}\"},\"cards\":{\"cpu\":\"@:{'words.generated.cpu'}\",\"database\":\"@.capitalize:{'words.replication.services.database'}\",\"memory\":\"@:{'words.generated.memory'}\"},\"devices\":{\"desktop\":\"Desktop\",\"mobile\":\"@.capitalize:{'words.generated.mobile'}\",\"tablet\":\"@.capitalize:{'words.generated.tablet'}\"},\"gateways\":{\"actions\":{\"open_fleet\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.fleet'}\",\"open_gateway\":\"@.capitalize:{'words.generated.open'} @:{'words.generated.gateway'}\"},\"description\":\"@.capitalize:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.fleet'} @:{'words.generated.health'} @:{'words.generated.for'} @:{'words.generated.installed'} @:{'words.generated.edge'} @:{'words.generated.gateways'}.\",\"discovery_status\":{\"ready\":\"@.capitalize:{'words.generated.ready'}\",\"stale\":\"Stale\"},\"empty\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.edge'} @:{'words.generated.gateways'} @:{'words.generated.are'} @:{'words.generated.registered'}.\",\"error\":\"@.capitalize:{'words.generated.gateway'} @:{'words.generated.health'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.be'} @:{'words.generated.loaded'} @:{'words.generated.right'} @:{'words.generated.now'}.\",\"labels\":{\"active_operation\":\"@.capitalize:{'words.generated.active'} operation\",\"last_heartbeat\":\"@.capitalize:{'words.generated.last'} heartbeat\"},\"loading\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.gateway'} @:{'words.generated.health'}...\",\"status\":{\"degraded\":\"@.capitalize:{'words.generated.needs'} attention\",\"online\":\"@.capitalize:{'words.generated.online'}\"},\"summary\":{\"total\":\"@.capitalize:{'words.generated.gateways'}\"}},\"labels\":{\"activity_window\":\"@.capitalize:{'words.generated.active'} @:{'words.generated.within'} @:{'words.replication.article.host_mention'} @:{'words.generated.last'} {minutes} @:{'words.generated.minutes'}\",\"buckets_available\":\"{available} @:{'words.generated.of'} {total} @:{'words.generated.buckets'} @:{'words.generated.available'}\",\"checked_at\":\"@.capitalize:{'words.generated.checked'} @:{'words.generated.at'}\",\"configured\":\"@.capitalize:{'words.generated.configured'}\",\"enabled\":\"@:{'templates.generated.compat.common.enabled'}\",\"latency\":\"Latency\",\"no_reason\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.additional'} @:{'words.generated.details'}\",\"replication_percent\":\"{percent}% @:{'words.generated.replication'} ({status})\",\"runtime_source\":\"@.capitalize:{'words.generated.runtime'} @:{'words.generated.source'}\",\"server_version\":\"@.capitalize:{'words.generated.server'} @:{'words.generated.version'}\",\"warnings\":\"@:{'templates.generated.compat.global.warnings'}\"},\"modules\":{\"backups\":\"Backups\",\"economic\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"entra\":\"@:{'words.generated.microsoft'} Entra\",\"fxratesapi\":\"@:{'words.generated.fxratesapi'}\",\"licenseplaterecognizer\":\"@.capitalize:{'words.generated.license'} @.capitalize:{'words.generated.plate'} Recognizer\",\"limble\":\"@:{'words.generated.limble'}\",\"motorapi\":\"@:{'words.generated.motorapi'}\",\"ocrspace\":\"OCR.@:{'words.generated.space'}\",\"openai\":\"@:{'words.generated.openai'}\",\"selfserve\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'}\",\"shelly\":\"@:{'words.generated.shelly'}\",\"stripe\":\"@:{'words.generated.stripe'}\",\"virkdata\":\"@:{'words.generated.virkdata_virkdata'}\",\"workfeed\":\"@:{'words.generated.workfeed'}\"},\"reasons\":{\"backup_connectivity_confirmed\":\"@.capitalize:{'words.generated.backup'} @:{'words.generated.store'} @:{'words.generated.connectivity'} @:{'words.generated.confirmed'}.\",\"backup_encryption_key_missing\":\"Backup encryption is not ready: {error}.\",\"backup_latest_verified_stale\":\"Latest verified backup is stale.\",\"backup_no_verified_backup\":\"No verified backup is available for restore.\",\"backup_probe_failed\":\"@.capitalize:{'words.generated.backup'} @:{'words.generated.probe'} @:{'words.generated.failed'}: {error}.\",\"economic_credentials_missing\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.credentials'} @:{'words.generated.are'} @:{'words.generated.missing'} @:{'words.generated.from'} @:{'words.generated.runtime'} environment @:{'words.generated.configuration'}.\",\"email_delivery_not_implemented\":\"@:{'words.generated.mailersend_mailersend'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.enabled'} @:{'words.generated.because'} @:{'words.generated.default'} @:{'words.generated.smtp'} delivery @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.implemented'}.\",\"http_curl_init_failed\":\"{label} @:{'words.generated.probe'} @:{'words.generated.could'} @:{'words.generated.not'} initialize cURL.\",\"http_endpoint_missing\":\"{label} @:{'words.generated.probe'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.run'} @:{'words.generated.because'} @:{'words.replication.article.host_mention'} @:{'words.generated.endpoint'} @:{'words.generated.is'} @:{'words.generated.missing'}.\",\"http_no_response\":\"{label} @:{'words.generated.did'} @:{'words.generated.not'} @:{'words.generated.return'} @:{'words.generated.an'} @:{'words.generated.http'} @:{'words.generated.response'}.\",\"http_ok\":\"{label} @:{'words.generated.connectivity'} @:{'words.generated.confirmed'}.\",\"http_probe_failed\":\"{label} @:{'words.generated.probe'} @:{'words.generated.failed'}: {error}.\",\"http_rate_limited\":\"{label} @:{'words.generated.probe'} @:{'words.generated.was'} rate limited (@:{'words.generated.http'} {httpStatus}).\",\"http_status\":\"{label} @:{'words.generated.returned'} @:{'words.generated.http'} {httpStatus}.\",\"http_unexpected_response\":\"{label} @:{'words.generated.returned'} @:{'words.generated.an'} @:{'words.generated.unexpected'} @:{'words.generated.http'} @:{'words.generated.response'}.\",\"invalid_probe_payload\":\"@.capitalize:{'words.generated.probe'} @:{'words.generated.returned'} @:{'words.generated.an'} @:{'words.generated.invalid'} @:{'words.generated.payload'}.\",\"missing_config\":\"@.capitalize:{'words.generated.missing'} @:{'words.generated.required'} @:{'words.generated.configuration'}: {variables}.\",\"module_disabled\":\"@.capitalize:{'words.generated.module'} @:{'words.generated.is'} @:{'words.generated.disabled'}.\",\"recaptcha_credentials_rejected\":\"{label} @:{'words.generated.credentials'} @:{'words.generated.were'} @:{'words.generated.rejected'} @:{'words.generated.by'} @:{'words.generated.google'}.\",\"recaptcha_unreadable_payload\":\"{label} @:{'words.generated.returned'} @:{'words.generated.an'} unreadable @:{'words.generated.response'} @:{'words.generated.payload'}.\",\"recaptcha_validation_errors\":\"{label} @:{'words.generated.returned'} @:{'words.generated.unexpected'} validation @:{'words.generated.errors'}: {errors}.\",\"safe_probe_unavailable\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.is'} @:{'words.generated.present'}, @:{'words.generated.but'} @:{'words.generated.no'} @:{'words.generated.safe'} @:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.probe'} @:{'words.generated.is'} @:{'words.generated.available'}.\",\"selfserve_configuration_confirmed\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.schema'} @:{'words.generated.and'} @:{'words.generated.minute'} @:{'words.generated.product'} @:{'words.generated.configuration'} @:{'words.generated.confirmed'}.\",\"selfserve_minute_product_invalid\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.minute'} @:{'words.generated.product'} @:{'words.generated.configuration'} @:{'words.generated.is'} @:{'words.generated.invalid'}.\",\"selfserve_minute_product_missing\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.minute'} @:{'words.generated.product'} #{productId} @:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.exist'}.\",\"selfserve_minutes_invalid\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.machine'} @:{'words.generated.minutes'} @:{'words.generated.configuration'} @:{'words.generated.is'} @:{'words.generated.invalid'}.\",\"selfserve_probe_failed\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.probe'} @:{'words.generated.failed'}: {error}.\",\"shelly_no_device_id\":\"@:{'words.generated.shelly'} cloud @:{'words.generated.credentials'} @:{'words.generated.are'} @:{'words.generated.configured'}, @:{'words.generated.but'} @:{'words.generated.no'} known @:{'words.generated.device'} @:{'words.generated.id'} @:{'words.generated.is'} @:{'words.generated.available'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.safe'} @:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.probe'}.\"},\"sections\":{\"gateways\":\"@.capitalize:{'words.generated.edge'} @:{'words.generated.gateways'}\",\"infrastructure\":\"Infrastructure\",\"modules\":\"@.capitalize:{'words.generated.modules'}\",\"sessions\":\"@.capitalize:{'words.generated.recent'} @:{'words.generated.sessions'}\"},\"session_display\":{\"session_with_id\":\"@.capitalize:{'words.generated.session'} #{id}\"},\"session_types\":{\"subuser\":\"@.capitalize:{'words.generated.subuser'}\"},\"states\":{\"error\":\"@.capitalize:{'words.generated.status'} @:{'words.generated.error'}\",\"error_generic\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.load'} @:{'words.generated.system'} @:{'words.generated.status'}.\",\"loading\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.system'} @:{'words.generated.status'}...\",\"no_sessions\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.recent'} @:{'words.generated.sessions'} @:{'words.generated.found'}.\",\"stale\":\"@.capitalize:{'words.generated.this'} snapshot @:{'words.generated.is'} older @:{'words.generated.than'} @:{'words.generated.expected'}. @.capitalize:{'words.generated.automatic'} @:{'words.generated.refresh'} @:{'words.generated.may'} @:{'words.generated.be'} delayed.\"},\"status\":{\"degraded\":\"@:{'templates.generated.compat.replication.status.degraded'}\",\"disabled\":\"@:{'templates.generated.compat.common.disabled'}\"},\"summary\":{\"active_sessions\":\"@.capitalize:{'words.generated.active'} @:{'words.generated.sessions'}\",\"active_users\":\"@.capitalize:{'words.generated.active'} @:{'words.generated.users'}\",\"last_updated\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.updated'}\",\"overall\":\"Overall @:{'words.generated.status'}\"},\"table\":{\"active\":\"@:{'templates.generated.compat.common.active'}\",\"device\":\"@.capitalize:{'words.generated.device'}\",\"first_seen\":\"@.capitalize:{'words.generated.first'} @:{'words.generated.seen'}\",\"last_seen\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.seen'}\",\"route\":\"@.capitalize:{'words.generated.last'} route\"},\"title\":\"@.capitalize:{'words.generated.system'} @.capitalize:{'words.generated.status'}\",\"warnings\":{\"cpu_loadavg_fallback\":\"@:{'words.generated.cpu'} @:{'words.generated.usage'} @:{'words.generated.fell'} @:{'words.generated.back'} @:{'words.generated.to'} @:{'words.generated.load'} @:{'words.generated.average'} @:{'words.generated.because'} /@:{'words.generated.proc'}/stat sampling @:{'words.generated.was'} @:{'words.generated.unavailable'}.\",\"cpu_unavailable\":\"@:{'words.generated.cpu'} @:{'words.generated.usage'} @:{'words.generated.metrics'} @:{'words.generated.are'} @:{'words.generated.unavailable'} @:{'words.generated.in'} @:{'words.generated.this'} @:{'words.generated.runtime'}.\",\"memory_proc_fallback\":\"@:{'words.generated.memory'} @:{'words.generated.usage'} @:{'words.generated.fell'} @:{'words.generated.back'} @:{'words.generated.to'} /@:{'words.generated.proc'}/meminfo @:{'words.generated.because'} cgroup limits @:{'words.generated.were'} @:{'words.generated.unavailable'}.\",\"memory_unavailable\":\"@:{'words.generated.memory'} @:{'words.generated.metrics'} @:{'words.generated.are'} @:{'words.generated.unavailable'} @:{'words.generated.in'} @:{'words.generated.this'} @:{'words.generated.runtime'}.\",\"minio_missing_buckets\":\"@:{'words.replication.services.minio'} @:{'words.generated.is'} @:{'words.generated.reachable'}, @:{'words.generated.but'} @:{'words.generated.one'} @:{'words.generated.or'} @:{'words.generated.more'} @:{'words.generated.expected'} @:{'words.generated.buckets'} @:{'words.generated.are'} @:{'words.generated.missing'} @:{'words.generated.or'} inaccessible.\",\"modules_without_probes\":\"Some @:{'words.generated.modules'} expose @:{'words.generated.configuration'}-@:{'words.generated.only'} @:{'words.generated.status'} @:{'words.generated.because'} @:{'words.generated.no'} @:{'words.generated.safe'} @:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.probe'} @:{'words.generated.exists'}: {modules}.\",\"redis_cache_bypass\":\"@:{'words.replication.services.redis'} @:{'words.generated.is'} @:{'words.generated.unavailable'}; @:{'words.generated.module'} @:{'words.generated.probe'} caching @:{'words.generated.is'} bypassed.\",\"redis_cache_lookup_failed\":\"@:{'words.replication.services.redis'} @:{'words.generated.cache'} @:{'words.generated.lookup'} @:{'words.generated.failed'} @:{'words.generated.for'} @:{'words.generated.module'} @:{'words.generated.probe'} {module}: {error}\",\"redis_cache_write_failed\":\"@:{'words.replication.services.redis'} @:{'words.generated.cache'} write @:{'words.generated.failed'} @:{'words.generated.for'} @:{'words.generated.module'} @:{'words.generated.probe'} {module}: {error}\"}},\"tables\":{\"actions\":\"@:{'templates.generated.compat.common.actions'}\",\"bookings\":{\"booking_id_required\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.must'} @:{'words.generated.enter'} @:{'words.replication.article.host_mention'} @:{'words.generated.booking'} @.upper:{'words.generated.id'} @:{'words.generated.to'} @:{'words.generated.complete'} @:{'words.replication.article.host_mention'} @:{'words.generated.wash'} @:{'words.generated.without'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"complete_wash_without_certificate\":\"@.capitalize:{'words.generated.complete'} @:{'words.generated.wash'} @:{'words.generated.without'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"complete_wash_without_certificate_prompt\":\"@.capitalize:{'words.generated.enter'} @:{'words.replication.article.host_mention'} @:{'words.generated.booking'} @.upper:{'words.generated.id'} @:{'words.generated.to'} @:{'words.generated.complete'} @:{'words.replication.article.host_mention'} @:{'words.generated.wash'} @:{'words.generated.without'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"create_order_from_booking\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.order'} @:{'words.generated.from'} @:{'words.generated.booking'}\",\"create_order_from_booking_confirm\":\"@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.an'} @:{'words.generated.order'} @:{'words.generated.from'} @:{'words.replication.article.host_mention'} @:{'words.generated.booking'}?\",\"customer_name\":\"@.capitalize:{'words.generated.customer'} @.capitalize:{'words.generated.name'}\",\"error_add_service\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.add'} @:{'words.generated.service'}\",\"loading\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.booking'}...\",\"no_registered\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.registered'}\",\"no_services_added\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.services'} @:{'words.generated.added'} @:{'words.generated.yet'}\",\"pickup_required\":\"@:{'words.generated.pickup'} @.capitalize:{'words.generated.required'}?\",\"reg_tractor\":\"@.capitalize:{'words.generated.reg'}. @:{'words.generated.tractor'}\",\"reg_trailer\":\"@.capitalize:{'words.generated.reg'}. @.capitalize:{'words.generated.trailer'}\",\"vehicle_1\":\"@.capitalize:{'words.generated.vehicle'} 1\",\"vehicle_2\":\"@.capitalize:{'words.generated.vehicle'} 2\",\"wash\":\"@:{'templates.generated.compat.bookings_table.wash'}\",\"wash_certificate_type\":\"@.capitalize:{'words.generated.wash'} @.capitalize:{'words.generated.certificate'} / @.capitalize:{'words.generated.type'}\",\"wash_completed\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.wash'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.completed'}\",\"wash_desc\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.our'} @:{'words.generated.national'} network @:{'words.generated.of'} @:{'words.generated.wash'} halls @:{'words.generated.at'} @:{'words.generated.competitive'} @:{'words.generated.prices'}\",\"wash_performed\":\"@.upper:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.has'} @:{'words.generated.been'} performed on @:{'words.generated.this'} @:{'words.generated.booking'}.\",\"wash_services\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.services'}\",\"wash_type\":\"@.capitalize:{'words.generated.wash'} @.capitalize:{'words.generated.type'}\",\"wash_without_certificate\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.wash'} @:{'words.generated.is'} @:{'words.generated.without'} @:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.certificate'}.\",\"yes\":\"@:{'templates.generated.compat.common.yes'}\"},\"categories\":{\"products_count\":\"@.capitalize:{'words.generated.products'} @.capitalize:{'words.generated.count'}\"},\"common\":{\"category\":\"@.capitalize:{'words.generated.category'}\",\"count\":\"@.capitalize:{'words.generated.count'}\",\"default_price\":\"@.capitalize:{'words.generated.default'} @.capitalize:{'words.generated.price'}\",\"department_price\":\"@.capitalize:{'words.generated.department'} @.capitalize:{'words.generated.price'}\",\"discount_category\":\"@.capitalize:{'words.generated.discount'} (@.capitalize:{'words.generated.category'})\",\"discount_item\":\"@.capitalize:{'words.generated.discount'} (@.capitalize:{'words.generated.item'})\",\"end_time\":\"@.capitalize:{'words.generated.end'} @.capitalize:{'words.generated.time'}\",\"field\":\"@.capitalize:{'words.generated.field'}\",\"id\":\"@.upper:{'words.generated.id'}\",\"label\":\"Label\",\"last_seen\":\"@.capitalize:{'words.generated.last'} @.capitalize:{'words.generated.seen'}\",\"location\":\"@.capitalize:{'words.generated.location'}\",\"name\":\"@:{'templates.generated.compat.common.name'}\",\"phone\":\"@:{'templates.generated.compat.common.phone'}\",\"price\":\"@:{'templates.generated.compat.common.price'}\",\"price_changed_from\":\"@.capitalize:{'words.generated.price'} changed @:{'words.generated.from'} {from} @:{'words.generated.dkk'} @:{'words.generated.to'} {to} @:{'words.generated.dkk'} / @:{'words.generated.unit'} ({total} @:{'words.generated.dkk'} @:{'words.generated.total'})\",\"price_dkk\":\"@.capitalize:{'words.generated.price'} (@:{'words.generated.dkk'})\",\"price_per_unit\":\"{price} @:{'words.generated.dkk'} / @:{'words.generated.unit'} ({total} @:{'words.generated.dkk'} @:{'words.generated.total'})\",\"product_id\":\"@.capitalize:{'words.generated.product'} @.upper:{'words.generated.id'}\",\"product_name\":\"@.capitalize:{'words.generated.product'} @.capitalize:{'words.generated.name'}\",\"registration_number\":\"@.capitalize:{'words.generated.registration'} @.capitalize:{'words.generated.number'}\",\"serial_number\":\"Serial @.capitalize:{'words.generated.number'}\",\"start_time\":\"@.capitalize:{'words.generated.start'} @.capitalize:{'words.generated.time'}\",\"value\":\"@.capitalize:{'words.generated.value'}\",\"wash_item\":\"@.capitalize:{'words.generated.wash'} @.capitalize:{'words.generated.item'}\",\"website\":\"Website\"},\"economic\":{\"payment_terms\":\"@.capitalize:{'words.generated.payment'} @.capitalize:{'words.generated.terms'}\"},\"in_total\":\"@:{'words.generated.in'} @:{'words.generated.total'}\",\"invoices\":{\"invoice_number\":\"@.capitalize:{'words.generated.invoice'} @.capitalize:{'words.generated.number'}\",\"overdue\":\"@:{'templates.generated.compat.invoices.overdue'}\"},\"notifications\":{\"read\":\"@.capitalize:{'words.generated.read'}\"},\"orders\":{\"historical_washes\":\"@.capitalize:{'words.generated.historical'} @:{'words.generated.washes'}\",\"items\":\"@.capitalize:{'words.generated.items'}\"},\"pos\":{\"order_items\":\"@.capitalize:{'words.generated.order'} @.capitalize:{'words.generated.items'}\",\"possible_duplicates\":\"@.capitalize:{'words.generated.possible'} @.capitalize:{'words.generated.duplicates'}\",\"scanned_plates\":\"@.capitalize:{'words.generated.scanned'} @.capitalize:{'words.generated.plates'}\",\"sync_orders\":\"@.capitalize:{'words.generated.sync'} @.capitalize:{'words.generated.orders'}\"},\"roles\":{\"permissions\":\"@:{'templates.generated.compat.user_admin.permissions'}\",\"users_count\":\"@.capitalize:{'words.generated.users'} @.capitalize:{'words.generated.count'}\"},\"self_serve\":{\"condition_rules\":\"@.capitalize:{'words.generated.condition'} @.capitalize:{'words.generated.rules'}\",\"tasks\":\"@.capitalize:{'words.generated.tasks'}\",\"vehicle_conditions\":\"@.capitalize:{'words.generated.vehicle'} @.capitalize:{'words.generated.conditions'}\"},\"showing\":\"@:{'templates.generated.compat.common.view'}\",\"stripe\":{\"terminals\":\"@.capitalize:{'words.generated.terminals'}\"},\"time_bookings\":{\"hours\":\"@.capitalize:{'words.generated.hours'}\"},\"users\":{\"last_login\":\"@.capitalize:{'words.generated.last'} @.capitalize:{'words.generated.login'}\"},\"xlvask\":{\"create_order\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.order'}\",\"create_order_all\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.order'} @:{'words.generated.for'} @:{'words.generated.all'} @:{'words.generated.applicable'}\",\"order_created\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.created'}\",\"usage_log_title\":\"@:{'words.generated.xlvask'} @.capitalize:{'words.generated.usage'} @.capitalize:{'words.generated.log'}\"}},\"time_booking_flow\":{\"all_info_looks_good\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.information'} @:{'words.generated.looks'} good! @.capitalize:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.now'} @:{'words.generated.confirm'} @:{'words.generated.your'} @:{'words.generated.booking'}.\",\"date_and_time\":\"@.capitalize:{'words.generated.date'} @:{'words.generated.and'} @:{'words.generated.time'}\",\"no_notifications_enabled\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.have'} @:{'words.generated.not'} @:{'words.generated.enabled'} @:{'words.generated.notifications'} @:{'words.generated.for'} @:{'words.generated.your'} @:{'words.generated.booking'}. @.capitalize:{'words.generated.you'} @:{'words.generated.will'} @:{'words.generated.not'} @:{'words.generated.receive'} @:{'words.generated.any'} @:{'words.generated.confirmation'}, reminder @:{'words.generated.or'} @:{'words.generated.updates'} @:{'words.generated.about'} @:{'words.generated.your'} @:{'words.generated.booking'}.\",\"no_services_selected\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.services'} @:{'words.generated.selected'}\",\"not_selected\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.selected'}\",\"not_specified\":\"@:{'templates.generated.compat.pagination.not_specified'}\",\"notifications_incomplete\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.have'} @:{'words.generated.enabled'} @:{'words.generated.notifications'}, @:{'words.generated.but'} @:{'words.generated.have'} @:{'words.generated.not'} @:{'words.generated.filled'} @:{'words.generated.in'} @:{'words.generated.all'} @:{'words.generated.required'} @:{'words.generated.information'} @:{'words.generated.to'} @:{'words.generated.receive'} them.\",\"notifications_will_be_sent_to\":\"@.capitalize:{'words.generated.notifications'} @:{'words.generated.will'} @:{'words.generated.be'} @:{'words.generated.sent'} @:{'words.generated.to'}\",\"progress\":\"@.capitalize:{'words.generated.progress'} {current} / {total}\",\"select_services\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.services'}\",\"selected_services\":\"@.capitalize:{'words.generated.selected'} @:{'words.generated.services'}\",\"sms\":\"@:{'words.generated.sms'}\",\"step_of\":\"@:{'templates.common.step_of'}\",\"step1_subtitle\":\"@.capitalize:{'words.generated.select'} @:{'words.replication.article.host_mention'} @:{'words.generated.vehicle'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.book'} @:{'words.generated.time'} @:{'words.generated.for'}\",\"step2_subtitle\":\"@.capitalize:{'words.generated.select'} @:{'words.replication.article.host_mention'} @:{'words.generated.location'} @:{'words.generated.where'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.replication.article.host_mention'} @:{'words.generated.service'} @:{'words.generated.performed'}\",\"step2_title\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.location'}\",\"step3_subtitle\":\"@.capitalize:{'words.generated.select'} @:{'words.replication.article.host_mention'} @:{'words.generated.service'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.performed'}\",\"step3_title\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.service'}\",\"step4_subtitle\":\"@.capitalize:{'words.generated.select'} @:{'words.replication.article.host_mention'} @:{'words.generated.time'} @:{'words.generated.that'} @:{'words.generated.suits'} @:{'words.generated.you'} @:{'words.generated.best'}\",\"step4_title\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.time'}\",\"step5_subtitle\":\"@:{'words.generated.review'} @:{'words.generated.and'} @:{'words.generated.confirm'} @:{'words.generated.your'} @:{'words.generated.booking'}\",\"step5_title\":\"@:{'templates.generated.compat.bookings.confirm_booking'}\",\"update_notification_settings\":\"@.capitalize:{'words.generated.update'} @:{'words.generated.your'} @:{'words.generated.notification'} @:{'words.generated.settings'} @:{'words.generated.here'}.\",\"warning_email_not_set\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.have'} @:{'words.generated.enabled'} @:{'words.generated.email'} @:{'words.generated.notifications'}, @:{'words.generated.but'} @:{'words.generated.have'} @:{'words.generated.not'} @:{'words.generated.entered'} @:{'words.generated.a'} @:{'words.generated.contact'} @:{'words.generated.email'} @:{'words.generated.or'} @:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.email'}.\",\"warning_no_datetime\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.have'} @:{'words.generated.not'} @:{'words.generated.selected'} @:{'words.generated.a'} @:{'words.generated.date'} @:{'words.generated.and'} @:{'words.generated.time'}.\",\"warning_no_location\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.have'} @:{'words.generated.not'} @:{'words.generated.selected'} @:{'words.generated.a'} @:{'words.generated.location'}.\",\"warning_no_registration\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.have'} @:{'words.generated.not'} @:{'words.generated.entered'} @:{'words.generated.a'} @:{'words.generated.registration'} @:{'words.generated.number'}.\",\"warning_no_services\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.have'} @:{'words.generated.not'} @:{'words.generated.selected'} @:{'words.generated.any'} @:{'words.generated.services'}.\",\"warning_sms_not_set\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.have'} @:{'words.generated.enabled'} @:{'words.generated.sms'} @:{'words.generated.notifications'}, @:{'words.generated.but'} @:{'words.generated.have'} @:{'words.generated.not'} @:{'words.generated.entered'} @:{'words.generated.a'} @:{'words.generated.valid'} @:{'words.generated.phone'} @:{'words.generated.number'}.\"},\"time_bookings\":{\"add_reg_number\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.registration'} @:{'words.generated.number'}\",\"exterior_wash_for\":\"@.capitalize:{'words.generated.exterior'} @:{'words.generated.wash'} @:{'words.generated.for'}\",\"insert_reg_numbers\":\"Insert @:{'words.generated.relevant'} @:{'words.generated.registration'} @:{'words.generated.numbers'}\",\"interior_wash_for\":\"@.capitalize:{'words.generated.interior'} @:{'words.generated.wash'} @:{'words.generated.for'}\",\"next_week\":\"@:{'templates.generated.compat.time.next_week'}\",\"no_wash_services_available\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.wash'} @:{'words.generated.services'} @:{'words.generated.available'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.vehicle'}.\",\"previous_week\":\"@.capitalize:{'words.generated.previous'} @:{'words.generated.week'}\",\"select_vehicle_type_first\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.vehicle'} @:{'words.generated.type'} first\",\"select_vehicle_type\":\"@:{'templates.generated.compat.self_wash.select_vehicle_type'}\",\"select_wash_hall\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.wash'} @:{'words.generated.hall'}\",\"tank_cleaning\":\"@.capitalize:{'words.generated.tank'} @.capitalize:{'words.generated.cleaning'}\",\"truck_wash\":\"@.capitalize:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\",\"wash_services_for\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.services'} @:{'words.generated.for'}\",\"what_type_of_wash\":\"What @:{'words.generated.type'} @:{'words.generated.of'} @:{'words.generated.washing'} @:{'words.generated.do'} @:{'words.generated.you'} @:{'words.generated.need'}?\",\"where_to_wash\":\"@.capitalize:{'words.generated.where'} @:{'words.generated.do'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.wash'}?\"},\"time\":{\"ago\":\"ago\",\"end_date\":\"@.capitalize:{'words.generated.end'} @:{'words.generated.date'}\",\"from_now\":\"@:{'words.generated.from'} @:{'words.generated.now'}\",\"just_now\":\"just @:{'words.generated.now'}\",\"last_month\":\"@:{'templates.generated.compat.global.text.last_month'}\",\"last_year\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.year'}\",\"next_month\":\"@.capitalize:{'words.generated.next'} @:{'words.generated.month'}\",\"next_week\":\"@.capitalize:{'words.generated.next'} @:{'words.generated.week'}\",\"next_year\":\"@.capitalize:{'words.generated.next'} @:{'words.generated.year'}\",\"start_date\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.date'}\",\"this_year\":\"@:{'templates.generated.compat.global.text.this_year'}\",\"today\":\"@:{'templates.generated.compat.common.today'}\",\"tomorrow\":\"@:{'templates.generated.compat.common.tomorrow'}\"},\"user_admin\":{\"currency\":\"@:{'words.generated.currency'}\",\"cvr\":\"@:{'words.generated.cvr'}\",\"economic_data\":\"@:{'words.generated.economic'} @:{'words.generated.data'}\",\"group_id\":\"@.capitalize:{'words.generated.group'} @.upper:{'words.generated.id'}\",\"mass_data_inserter\":\"Mass @:{'words.generated.data'} importer\",\"mobile_phone\":\"@.capitalize:{'words.generated.mobile'} @:{'words.generated.phone'}\",\"orders\":{\"draft_not_found\":\"@.capitalize:{'words.generated.it'} @:{'words.generated.was'} @:{'words.generated.not'} @:{'words.generated.possible'} @:{'words.generated.to'} @:{'words.generated.find'} @:{'words.replication.article.host_mention'} @:{'words.generated.draft'} @:{'words.generated.invoice'}. @.capitalize:{'words.generated.is'} @:{'words.generated.it'} @:{'words.generated.invoiced'} @:{'words.generated.or'} @:{'words.generated.deleted'} @:{'words.generated.outside'} @:{'words.replication.article.host_mention'} @:{'words.generated.system'}?\",\"loading_subtitle\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.wait'} @:{'words.generated.while'} @:{'words.generated.we'} @:{'words.generated.load'} @:{'words.generated.user'} @:{'words.generated.data'}\",\"loading_title\":\"@.capitalize:{'words.generated.loading'} @:{'words.generated.user'} @:{'words.generated.data'}\",\"transaction_history\":\"@.capitalize:{'words.generated.transaction'} @:{'words.generated.history'}\"},\"other\":\"@:{'templates.generated.compat.global.other'}\",\"overview\":{\"active_vehicles\":\"Active vehicles\",\"attributes\":\"Attributes\",\"connected\":\"Connected\",\"customer_management\":\"Customer management\",\"customer_number_required\":\"A customer number is required before customer settings can be managed.\",\"customer_rules\":\"Customer rules\",\"effective_access\":\"Effective access\",\"loaded\":\"Loaded\",\"load_failed\":\"User data could not be loaded\",\"loading_user\":\"Loading user\",\"management_hub\":\"Management hub\",\"missing\":\"Missing\",\"more_permissions\":\"+{count} more permissions\",\"no_subscription_transactions\":\"No wash subscription transactions are registered for this customer.\",\"not_invoiced\":\"Not invoiced\",\"open_draft\":\"Open draft\",\"open_vehicles\":\"Open vehicles\",\"price_overrides\":\"Price overrides\",\"pricing\":\"Pricing\",\"subscription_invoicing\":\"Subscription invoicing\",\"subtitle\":\"Overview of customer data, access, pricing, vehicles, and subscription invoicing.\",\"vehicles_load_failed\":\"Vehicles could not be loaded.\",\"workspace_shortcuts\":\"Workspace shortcuts\"},\"permissions\":\"@.capitalize:{'words.generated.permissions'}\",\"user_data\":\"@.capitalize:{'words.generated.user'} @:{'words.generated.data'}\",\"user_id\":\"@.capitalize:{'words.generated.user'} @.upper:{'words.generated.id'}\",\"variables\":\"@.capitalize:{'words.generated.variables'}\",\"wash_subscriptions\":\"@:{'templates.generated.compat.pagination.wash_subscription'}\"},\"user_bookings\":{\"my_vehicles\":\"@:{'words.generated.my'} @:{'words.generated.vehicles'}\",\"select_vehicle_type_for\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.vehicle'} @:{'words.generated.type'} @:{'words.generated.for'} {registration}\",\"vehicle_reg_input\":\"@.capitalize:{'words.generated.vehicle'} @:{'words.generated.registration'} @:{'words.generated.number'}\"},\"user_dashboard\":{\"bookings\":{\"book_subtitle\":\"@.capitalize:{'words.generated.book'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.wash'}\",\"book\":{\"basket\":\"@.capitalize:{'words.generated.basket'}\",\"booking_confirmed\":\"@.capitalize:{'words.generated.booking'} @:{'words.generated.confirmed'}\",\"booking_confirmed_message\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.booking'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.confirmed'}. @.capitalize:{'words.generated.you'} @:{'words.generated.will'} @:{'words.generated.receive'} @:{'words.generated.a'} @:{'words.generated.confirmation'} @:{'words.generated.by'} @:{'words.generated.e'}-@:{'words.generated.mail'}.\",\"booking_failed\":\"@.capitalize:{'words.generated.booking'} @:{'words.generated.failed'}\",\"booking_failed_message\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.during'} @:{'words.generated.booking'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.again'}.\",\"customer_not_found\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.number'} @:{'words.generated.not'} @:{'words.generated.found'}.\",\"enter_customer_number\":\"@:{'templates.generated.compat.self_wash.enter_customer_number'}\",\"enter_vehicle\":\"@.capitalize:{'words.generated.enter'} @:{'words.generated.vehicle'}\",\"error_copied\":\"@.capitalize:{'words.generated.error'} @:{'words.generated.message'} @:{'words.generated.copied'} @:{'words.generated.to'} @:{'words.generated.clipboard'}\",\"expected_date_time\":\"@.capitalize:{'words.generated.expected'} @:{'words.generated.date'} @:{'words.generated.and'} @:{'words.generated.time'}\",\"exterior_wash\":\"@.capitalize:{'words.generated.exterior'} @:{'words.generated.wash'}\",\"go_to_confirmation\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.confirmation'}\",\"guest_info_html\":\"@.capitalize:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.guest'}, @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.select'} @:{'words.generated.department'}, @:{'words.generated.registration'} @:{'words.generated.and'} @:{'words.generated.time'}. @.capitalize:{'words.generated.to'} @:{'words.generated.create'} @:{'words.replication.article.host_mention'} @:{'words.generated.booking'}, @:{'words.generated.you'} @:{'words.generated.must'} @:{'words.generated.log'} @:{'words.generated.in'}.\",\"guest_mode_login_prompt\":\"@.capitalize:{'words.generated.to'} @:{'words.generated.complete'} @:{'words.generated.your'} @:{'words.generated.booking'}, @:{'words.generated.you'} @:{'words.generated.must'} @:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.to'} @:{'words.generated.your'} @:{'words.generated.account'}.\",\"guest_mode_warning\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.are'} @:{'words.generated.in'} @:{'words.generated.guest'} @:{'words.generated.mode'}.\",\"incl_pickup\":\"@.capitalize:{'words.generated.incl'}. @:{'words.generated.pick'}-@.capitalize:{'words.generated.up'}\",\"interior_wash\":\"@.capitalize:{'words.generated.interior'} @:{'words.generated.wash'}\",\"is_this_your_vehicle\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.this'} @:{'words.generated.one'} @:{'words.generated.of'} @:{'words.generated.your'} @:{'words.generated.vehicles'}?\",\"login_for_products\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.to'} @:{'words.generated.select'} @:{'words.generated.products'} @:{'words.generated.for'} @:{'words.generated.your'} @:{'words.generated.booking'}.\",\"missing_fields\":\"@.capitalize:{'words.replication.article.host_mention'} following fields @:{'words.generated.are'} @:{'words.generated.missing'}:\",\"missing_valid_customer_number\":\"@.capitalize:{'words.generated.valid'} @:{'words.generated.customer'} @:{'words.generated.number'}\",\"missing_wash_hall\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.hall'}\",\"next_step_addons\":\"@.capitalize:{'words.generated.next'} @:{'words.generated.step'}: @.capitalize:{'words.generated.select'} @:{'words.generated.add'}-@:{'words.generated.ons'}\",\"no_items_in_basket\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.items'} @:{'words.generated.in'} @:{'words.generated.basket'} @:{'words.generated.yet'}\",\"product_selection_unavailable\":\"@.capitalize:{'words.generated.product'} @:{'words.generated.selection'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.available'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.guest'}.\",\"select_a_wash_hall\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.hall'}\",\"select_date_time_customer\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.date'}/@:{'words.generated.time'} @:{'words.generated.and'} @:{'words.generated.customer'} @:{'words.generated.number'}\",\"select_department\":\"@:{'templates.generated.compat.nav.select_department'}\",\"select_products\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.products'}\",\"select_vehicle\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.vehicle'} @:{'words.generated.to'} @:{'words.generated.see'} @:{'words.generated.available'} @:{'words.generated.add'}-@:{'words.generated.ons'}\",\"select_wash_hall\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.hall'} @:{'words.generated.to'} @:{'words.generated.continue'}\"},\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.your'} @:{'words.generated.bookings'}\",\"title\":\"@:{'words.generated.my'} @:{'words.generated.bookings'}\"},\"home\":{\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.your'} @:{'words.generated.orders'}, @:{'words.generated.bookings'} @:{'words.generated.and'} @:{'words.generated.vehicles'}\"},\"invoices\":{\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.your'} @:{'words.generated.invoices'}\",\"title\":\"@:{'words.generated.my'} @:{'words.generated.invoices'}\"},\"materials\":{\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.your'} @:{'words.generated.materials'}\",\"title\":\"@:{'words.generated.my'} @:{'words.generated.materials'}\"},\"menu\":{\"statistics\":\"@:{'templates.generated.compat.global.statistics'}\"},\"orders\":{\"single_subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.transaction'} @:{'words.generated.details'}\",\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.your'} @:{'words.generated.washes'}\",\"title\":\"@:{'words.generated.my'} @:{'words.generated.washes'}\"},\"profile\":{\"default_department\":{\"description\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.default'} @:{'words.generated.department'}\",\"title\":\"@.capitalize:{'words.generated.default'} @:{'words.generated.department'}\"},\"driver\":{\"contact_description\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.contact'} @:{'words.generated.information'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.driver'}\",\"contact_subtitle\":\"@.capitalize:{'words.generated.contact'} @.capitalize:{'words.generated.information'}\",\"country_code_desc\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.country'} @:{'words.generated.code'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.phone'} @:{'words.generated.number'}.\",\"customer_description\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.which'} @:{'words.generated.customer'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} act @:{'words.generated.on'} @:{'words.generated.behalf'} @:{'words.generated.of'}.\",\"customer_subtitle\":\"@.capitalize:{'words.generated.customer'} @.capitalize:{'words.generated.selection'}\",\"customer_switch_help\":\"@.capitalize:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.driver'}, @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.switch'} between different @:{'words.generated.customers'} @:{'words.generated.you'} @:{'words.generated.have'} @:{'words.generated.access'} @:{'words.generated.to'}.\",\"edit_email\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.email'}\",\"edit_name\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.name'}\",\"name_desc\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.display'} @:{'words.generated.name'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.driver'}.\",\"phone_desc\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.phone'} @:{'words.generated.number'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.driver'}.\",\"profile_description\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.driver'} @:{'words.generated.information'}\",\"profile_subtitle\":\"@.capitalize:{'words.generated.profile'} @.capitalize:{'words.generated.information'}\",\"username_desc\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.username'} @:{'words.generated.cannot'} @:{'words.generated.be'} @:{'words.generated.changed'}.\"},\"invoicing\":{\"account_name_desc\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.account'} @:{'words.generated.name'}\",\"account_number_desc\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.account'} @:{'words.generated.number'}\",\"description\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.invoice'} @:{'words.generated.information'}\",\"title\":\"@.capitalize:{'words.generated.invoice'} @.capitalize:{'words.generated.information'}\"},\"microsoft_auth\":{\"create_event\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.event'}\",\"logged_in_as\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.are'} @:{'words.generated.logged'} @:{'words.generated.in'} @:{'words.generated.as'} {name}\",\"login\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.with'} @:{'words.generated.microsoft'}\",\"not_logged_in\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.are'} @:{'words.generated.not'} @:{'words.generated.logged'} @:{'words.generated.in'}\",\"title\":\"@:{'words.generated.microsoft'} @.capitalize:{'words.generated.authentication'}\"},\"microsoft\":{\"description\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.microsoft'} @:{'words.generated.settings'}\",\"title\":\"@:{'words.generated.microsoft'}\"},\"notifications\":{\"booking_email\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.for'} @:{'words.generated.bookings'}\",\"booking_email_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.email'} @:{'words.generated.address'} @:{'words.generated.that'} @:{'words.generated.receives'} @:{'words.generated.booking'} @:{'words.generated.confirmations'} @:{'words.generated.and'} @:{'words.generated.wash'} @:{'words.generated.certificates'}.\",\"description\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.notification'} @:{'words.generated.settings'}\",\"email_notifications\":\"@:{'templates.generated.compat.settings.email_notifications'}\",\"email_notifications_desc\":\"@.capitalize:{'words.generated.receive'} @:{'words.generated.emails'} @:{'words.generated.with'} @:{'words.generated.booking'} @:{'words.generated.confirmations'} @:{'words.generated.and'} @:{'words.generated.wash'} @:{'words.generated.certificates'}.\",\"sms_notifications_desc\":\"@.capitalize:{'words.generated.receive'} @:{'words.generated.sms'} @:{'words.generated.notifications'} @:{'words.generated.for'} @:{'words.generated.various'} @:{'words.generated.events'}.\",\"sms_phone\":\"@.capitalize:{'words.generated.phone'} @:{'words.generated.number'} @:{'words.generated.for'} @:{'words.generated.sms'} @:{'words.generated.notifications'}\",\"sms_phone_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.phone'} @:{'words.generated.number'} @:{'words.generated.that'} @:{'words.generated.receives'} @:{'words.generated.sms'} @:{'words.generated.notifications'}.\",\"superuser_notifications\":\"Superuser notifications\",\"superuser_notifications_desc\":\"Receive email notifications when a new customer registers on the site.\"},\"security\":{\"description\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.security'} @:{'words.generated.settings'}\",\"email_desc\":\"@.capitalize:{'words.generated.we'} @:{'words.generated.use'} @:{'words.generated.this'} @:{'words.generated.email'} @:{'words.generated.to'} @:{'words.generated.reset'} @:{'words.generated.your'} @:{'words.generated.password'}, @:{'words.generated.send'} @:{'words.generated.wash'} @:{'words.generated.certificates'} @:{'words.generated.and'} @:{'words.generated.other'} important @:{'words.generated.information'}.\"},\"title\":\"@.capitalize:{'words.generated.user'} @.capitalize:{'words.generated.profile'}\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.your'} @:{'words.generated.settings'}\"},\"sidebar\":{\"book\":\"Boka\",\"logout\":\"Logga ut\"},\"vehicles\":{\"new_subtitle\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.vehicle'}\",\"single_title\":\"@:{'words.generated.my'} @:{'words.generated.vehicle'}\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.your'} @:{'words.generated.vehicles'}\"},\"wash\":{\"nearest_department\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.nearest'} @:{'words.generated.department'} @:{'words.generated.is'} {name}, @:{'words.generated.which'} @:{'words.generated.is'} @:{'words.generated.approx'}. {distance} km away @:{'words.generated.from'} @:{'words.generated.your'} @:{'words.generated.current'} @:{'words.generated.location'}.\",\"subtitle\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.one'} @:{'words.generated.of'} @:{'words.generated.your'} @:{'words.generated.vehicles'} @:{'words.generated.to'} @:{'words.generated.start'} @:{'words.generated.a'} @:{'words.generated.wash'}\"}},\"user_home\":{\"book_wash_desc\":\"@.capitalize:{'words.generated.book'} @:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.at'} @:{'words.generated.one'} @:{'words.generated.of'} @:{'words.generated.our'} @:{'words.generated.departments'} - @:{'words.generated.with'} @:{'words.replication.article.host_mention'} @:{'words.generated.option'} @:{'words.generated.for'} @:{'words.generated.safety'} @:{'words.generated.seal'}.\",\"contact_info_or_email\":\"@:{'words.generated.or'} @:{'words.generated.email'}\",\"contact_info_prefix\":\"@.capitalize:{'words.generated.for'} @:{'words.generated.problems'} @:{'words.generated.contact'} @:{'words.generated.us'} @:{'words.generated.by'} @:{'words.generated.phone'}\",\"create_vehicle_desc\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.a'} @:{'words.generated.vehicle'} @:{'words.generated.that'} @:{'words.generated.should'} @:{'words.generated.be'} able @:{'words.generated.to'} @:{'words.generated.wash'} @:{'words.generated.at'} @.capitalize:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}.\",\"create_vehicle\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.vehicle'}\",\"download_certificates_desc\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.wash'} @:{'words.generated.certificates'} @:{'words.generated.for'} @:{'words.generated.your'} @:{'words.generated.previous'} @:{'words.generated.washes'}.\",\"download_certificates\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.wash'} @:{'words.generated.certificates'}\",\"download_invoices_desc\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.your'} @:{'words.generated.previous'} @:{'words.generated.invoices'}.\",\"download_invoices\":\"@.capitalize:{'words.generated.download'} @:{'words.generated.invoices'}\",\"empty_state_desc\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.do'} @:{'words.generated.not'} @:{'words.generated.have'} @:{'words.generated.access'} @:{'words.generated.to'} @:{'words.generated.any'} @:{'words.generated.shortcuts'}. @.capitalize:{'words.generated.contact'} @:{'words.generated.your'} @:{'words.generated.administrator'} @:{'words.generated.to'} @:{'words.generated.be'} @:{'words.generated.assigned'} @:{'words.generated.permissions'}.\",\"empty_state_title\":\"@.capitalize:{'words.generated.it'} @:{'words.generated.looks'} @:{'words.generated.empty'} @:{'words.generated.here'}\",\"select_customer_desc\":\"@.capitalize:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.sub'}-@:{'words.generated.user'}, @:{'words.generated.you'} @:{'words.generated.must'} @:{'words.generated.select'} @:{'words.generated.which'} @:{'words.generated.customer'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.work'} @:{'words.generated.on'} @:{'words.generated.behalf'} @:{'words.generated.of'}.\",\"select_customer\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.customer'}\",\"start_wash_desc\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.directly'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.department'}'@:{'words.generated.s'} @:{'words.generated.wash'} @:{'words.generated.lanes'} @:{'words.generated.and'} @:{'words.generated.start'} @:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.for'} @:{'words.generated.your'} @:{'words.generated.vehicle'}. @.capitalize:{'words.generated.select'} @:{'words.generated.your'} @:{'words.generated.vehicle'} @:{'words.generated.and'} @:{'words.replication.article.host_mention'} @:{'words.generated.desired'} @:{'words.generated.wash'} @:{'words.generated.type'} @:{'words.generated.to'} @:{'words.generated.get'} @:{'words.generated.started'}.\"},\"user_menu\":{\"my_bookings\":\"@:{'words.generated.my'} @.capitalize:{'words.generated.bookings'}\",\"my_invoices\":\"@:{'words.generated.my'} @.capitalize:{'words.generated.invoices'}\",\"my_vehicles\":\"@:{'words.generated.my'} @.capitalize:{'words.generated.vehicles'}\",\"my_washes\":\"@:{'words.generated.my'} @.capitalize:{'words.generated.washes'}\"},\"user_navigation\":{\"back_to_own_user\":\"@.capitalize:{'words.generated.back'} @:{'words.generated.to'} @:{'words.generated.own'} @:{'words.generated.user'}\",\"guest\":\"@.capitalize:{'words.generated.guest'}\",\"my_customer_page\":\"@:{'words.generated.my'} @:{'words.generated.customer'} @:{'words.generated.page'}\",\"my_profile\":\"@:{'words.generated.my'} @:{'words.generated.profile'}\"},\"user_notifications\":{\"mark_as_read_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} marking @:{'words.replication.article.host_mention'} @:{'words.generated.message'} @:{'words.generated.as'} @:{'words.generated.read'}. @.capitalize:{'words.generated.please'} @:{'words.generated.try'} @:{'words.generated.again'}, @:{'words.generated.or'} @:{'words.generated.contact'} @:{'words.generated.support'}.\"},\"user_vehicles\":{\"activate\":\"@:{'words.generated.activate'}\",\"add_new_vehicle\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.new'} @:{'words.generated.vehicle'}\",\"deactivate\":\"@.capitalize:{'words.generated.deactivate'}\",\"no_vehicle_type_configured\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.vehicle'} @:{'words.generated.type'} @:{'words.generated.configured'}\",\"reference_placeholder\":\"@.capitalize:{'words.generated.reference'} / @:{'words.generated.internal'} @:{'words.generated.number'}\",\"self_service_placeholder\":\"@:{'words.generated.placeholder'} @:{'words.generated.for'} @:{'words.generated.vehicles'} @:{'words.generated.with'} @:{'words.generated.self'}-@:{'words.generated.service'}\",\"self_service\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.service'}\",\"subscriptions_placeholder\":\"@:{'words.generated.placeholder'} @:{'words.generated.for'} @:{'words.generated.vehicles'} @:{'words.generated.with'} @:{'words.generated.active'} @:{'words.generated.wash'} @:{'words.generated.subscriptions'}\",\"vehicle_count_placeholder\":\"@:{'words.generated.placeholder'} @:{'words.generated.for'} @:{'words.generated.number'} @:{'words.generated.of'} @:{'words.generated.vehicles'}\",\"vehicles_with_self_service\":\"@.capitalize:{'words.generated.vehicles'} @:{'words.generated.with'} @:{'words.generated.self'}-@:{'words.generated.service'}\",\"vehicles_with_subscriptions\":\"@.capitalize:{'words.generated.vehicles'} @:{'words.generated.with'} @:{'words.generated.active'} @:{'words.generated.wash'} @:{'words.generated.subscriptions'}\",\"view_all_self_service\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.all'} {count} @:{'words.generated.vehicles'} @:{'words.generated.with'} @:{'words.generated.self'}-@:{'words.generated.service'}\",\"view_all_subscriptions\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.all'} {count} @:{'words.generated.vehicles'} @:{'words.generated.with'} @:{'words.generated.active'} @:{'words.generated.wash'} @:{'words.generated.subscriptions'}\",\"view_all_vehicles\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.all'} {count} @:{'words.generated.vehicles'}\",\"with_self_service\":\"@:{'words.generated.with'} @:{'words.generated.self'}-@:{'words.generated.service'}\",\"without_self_service\":\"@:{'words.generated.without'} @:{'words.generated.self'}-@:{'words.generated.service'}\"},\"validation\":{\"email\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.enter'} @:{'words.generated.a'} @:{'words.generated.valid'} @:{'words.generated.email'} @:{'words.generated.address'}\",\"invalid\":\"@.capitalize:{'words.generated.invalid'} @:{'words.generated.value'}\",\"max_length\":\"@.capitalize:{'words.generated.must'} @:{'words.generated.not'} @:{'words.generated.be'} @:{'words.generated.more'} @:{'words.generated.than'} {max} @:{'words.generated.characters'}\",\"max\":\"Maks {max} tegn tillatt\",\"min_length\":\"@.capitalize:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.at'} @:{'words.generated.least'} {min} @:{'words.generated.characters'}\",\"min\":\"@.capitalize:{'words.generated.at'} @:{'words.generated.least'} {min} @:{'words.generated.characters'} @:{'words.generated.required'}\",\"numeric\":\"@.capitalize:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.a'} @:{'words.generated.number'}\",\"password_confirmation\":\"@:{'templates.generated.compat.validation.password_match'}\",\"password_match\":\"@.capitalize:{'words.replication.article.host_mention'} passwords @:{'words.generated.do'} @:{'words.generated.not'} @:{'words.generated.match'}\",\"password\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.password'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.at'} @:{'words.generated.least'} 8 @:{'words.generated.characters'}\",\"phone\":\"@.capitalize:{'words.generated.please'} @:{'words.generated.enter'} @:{'words.generated.a'} @:{'words.generated.valid'} @:{'words.generated.phone'} @:{'words.generated.number'}\",\"required\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.field'} @:{'words.generated.is'} mandatory\"},\"vehicles\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.vehicle'}\",\"add_modal\":{\"customer_label\":\"Customer\",\"customer_placeholder\":\"Search by customer name or number\",\"error\":\"Unable to add vehicle.\",\"no_customer_results\":\"No customers found\",\"reference_placeholder\":\"Optional reference\",\"registration_placeholder\":\"Registration number\",\"selected_customer\":\"Selected customer\",\"submit\":\"Add vehicle\",\"title\":\"Add vehicle\",\"type_load_error\":\"Unable to load vehicle types.\",\"type_placeholder\":\"Select vehicle type\",\"validation_error\":\"Select a customer, registration number, and vehicle type.\"},\"brand\":\"Brand\",\"color\":\"Color\",\"delete_vehicle\":\"@:{'templates.generated.compat.vehicles.delete'}\",\"delete\":\"@.capitalize:{'words.generated.delete'} @:{'words.generated.vehicle'}\",\"edit\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.vehicle'}\",\"model\":\"Model\",\"new_vehicle\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.vehicle'}\",\"no_previous_washes\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.previous'} @:{'words.generated.washes'} @:{'words.generated.found'}\",\"no_vehicles\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.vehicles'} @:{'words.generated.found'}\",\"owner\":\"Owner\",\"previous_wash\":\"@.capitalize:{'words.generated.previous'} @:{'words.generated.wash'}\",\"previous_washes_count\":\"{count} @:{'words.generated.previous'} @:{'words.generated.washes'}\",\"previous_washes\":\"@.capitalize:{'words.generated.previous'} @:{'words.generated.washes'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.by'} @:{'words.generated.registration'} @:{'words.generated.number'}, @:{'words.generated.type'}, @:{'words.generated.customer'}\",\"search\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.vehicle'}...\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.vehicles'}\",\"type\":\"@:{'templates.generated.compat.products.type'}\",\"types\":{\"bus\":\"Bus\",\"semi\":\"@.capitalize:{'words.generated.semi'}-@:{'words.generated.truck'}\",\"tractor\":\"Traktor\",\"trailer\":\"@.capitalize:{'words.generated.trailer'}\",\"truck\":\"@.capitalize:{'words.generated.truck'}\",\"van\":\"Van\"},\"vehicle_types\":{\"box\":\"Box @:{'words.generated.truck'}\",\"car\":\"Passenger @:{'words.generated.car'}\",\"crew\":\"Crew\",\"semi\":\"@.capitalize:{'words.generated.semi'}-@:{'words.generated.trailer'}\"},\"wash_history\":\"@.capitalize:{'words.generated.wash'} @:{'words.generated.history'}\"},\"xlvask\":{\"admin\":{\"customer_count\":\"@.capitalize:{'words.generated.number'} @:{'words.generated.of'} @:{'words.generated.customers'}\",\"fetch_customers\":\"@.capitalize:{'words.generated.get'} @:{'words.generated.customers'}\",\"fetch_objects\":\"@.capitalize:{'words.generated.retrieve'} @:{'words.generated.objects'}\",\"object_count\":\"@.capitalize:{'words.generated.number'} @:{'words.generated.of'} @:{'words.generated.objects'}\",\"objects\":\"Objekter\",\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.manage'} @:{'words.replication.article.host_mention'} @:{'words.generated.xlvask'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.xlvask'} @:{'words.generated.administration'}\"}},\"limited_backoffice\":{\"title\":\"Backoffice\",\"subtitle\":\"@.capitalize:{'words.generated.manage'} @:{'words.generated.department'} @:{'words.generated.prices'} @:{'words.generated.and'} @:{'words.generated.employee'} @:{'words.generated.access'}.\",\"department\":\"@.capitalize:{'words.generated.department'}\",\"select_department\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.department'}\",\"loading\":\"Loading...\",\"no_departments\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.departments'} @:{'words.generated.are'} available @:{'words.generated.for'} @:{'words.generated.this'} account.\",\"cancel\":\"Cancel\",\"nav\":{\"prices\":\"@.capitalize:{'words.generated.prices'}\",\"customer_pricing\":\"Customer pricing\",\"employees\":\"@.capitalize:{'words.generated.employees'}\"},\"forbidden\":{\"title\":\"@.capitalize:{'words.generated.access'} denied\",\"department\":\"You do @:{'words.generated.not'} @:{'words.generated.have'} @:{'words.generated.access'} @:{'words.generated.to'} @:{'words.generated.this'} @:{'words.generated.department'}.\"},\"prices\":{\"title\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.prices'}\",\"save\":\"@.capitalize:{'words.generated.save'} @:{'words.generated.prices'}\",\"saved\":\"@.capitalize:{'words.generated.prices'} @:{'words.generated.saved'}.\",\"autosave_saving\":\"Saving prices...\",\"autosave_pending\":\"Price changes pending.\",\"autosave_saved\":\"All price changes saved.\",\"product\":\"@.capitalize:{'words.generated.product'}\",\"price\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.price'}\",\"price_required\":\"Every @:{'words.generated.product'} @:{'words.generated.must'} @:{'words.generated.have'} @:{'words.generated.a'} non-negative numeric @:{'words.generated.price'}.\",\"setup_required_title\":\"@.capitalize:{'words.generated.price'} setup @:{'words.generated.required'}\",\"setup_required_message\":\"@.upper:{'words.generated.a'} superuser @:{'words.generated.must'} @:{'words.generated.create'} explicit @:{'words.generated.prices'} @:{'words.generated.for'} all @:{'words.generated.products'} @:{'words.generated.before'} @:{'words.generated.this'} @:{'words.generated.department'} @:{'words.generated.can'} be managed here.\",\"no_products\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.products'} @:{'words.generated.are'} configured @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.department'}.\"},\"employees\":{\"title\":\"@.capitalize:{'words.generated.employee'} @:{'words.generated.access'}\",\"subtitle\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.employees'} @:{'words.generated.and'} assign @:{'words.generated.a'} @:{'words.generated.limited'} @:{'words.generated.role'} @:{'words.generated.for'} your @:{'words.generated.departments'}.\",\"create_title\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.employee'}\",\"edit_title\":\"@.capitalize:{'words.generated.edit'} @:{'words.generated.employee'}\",\"name\":\"Name\",\"email\":\"Email\",\"user_id\":\"User ID\",\"phone\":\"Phone\",\"phone_validation\":\"Phone number must be 4-15 digits.\",\"country_codes\":{\"denmark\":\"Denmark\",\"sweden\":\"Sweden\",\"norway\":\"Norway\",\"finland\":\"Finland\"},\"password\":\"@.capitalize:{'words.generated.password'}\",\"password_create_help\":\"@.capitalize:{'words.generated.required'} @:{'words.generated.for'} new @:{'words.generated.employees'}. Use @:{'words.generated.at'} @:{'words.generated.least'} 8 characters.\",\"password_update_help\":\"Leave blank @:{'words.generated.to'} keep @:{'words.replication.article.host_mention'} existing @:{'words.generated.password'}.\",\"role\":\"@.capitalize:{'words.generated.role'}\",\"departments\":\"@.capitalize:{'words.generated.departments'}\",\"department_required\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.at'} @:{'words.generated.least'} one @:{'words.generated.department'}.\",\"validation\":\"Fill @:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.required'} fields @:{'words.generated.before'} saving.\",\"save\":\"@.capitalize:{'words.generated.save'} @:{'words.generated.employee'}\",\"created\":\"@.capitalize:{'words.generated.employee'} created.\",\"saved\":\"@.capitalize:{'words.generated.employee'} @:{'words.generated.saved'}.\",\"deactivated\":\"@.capitalize:{'words.generated.employee'} deactivated.\",\"include_inactive\":\"Show @:{'words.generated.inactive'}\",\"empty\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.employees'} found.\",\"status\":\"Status\",\"actions\":\"Actions\",\"active\":\"Active\",\"inactive\":\"@.capitalize:{'words.generated.inactive'}\",\"edit\":\"@.capitalize:{'words.generated.edit'}\",\"deactivate\":\"@.capitalize:{'words.generated.deactivate'}\",\"login_link\":\"QR login\",\"login_link_title\":\"Employee login link\",\"login_link_qr_alt\":\"QR code login link\",\"login_link_url\":\"Login link\",\"copy_login_link\":\"Copy link\",\"login_link_copied\":\"Link copied.\"},\"roles\":{\"viewer\":{\"label\":\"Deactivated\",\"description\":\"Keeps the employee registered without order, booking, or management permissions.\"},\"cashier\":{\"label\":\"Cashier\",\"description\":\"@.capitalize:{'words.generated.can'} work with @:{'words.generated.orders'}, order lines @:{'words.generated.and'} @:{'words.generated.bookings'} @:{'words.generated.for'} @:{'words.generated.assigned'} @:{'words.generated.departments'}.\"},\"booking_coordinator\":{\"label\":\"Booking coordinator\",\"description\":\"@.capitalize:{'words.generated.can'} @:{'words.generated.coordinate'} @:{'words.generated.bookings'} @:{'words.generated.for'} @:{'words.generated.assigned'} @:{'words.generated.departments'}.\"},\"operations_lead\":{\"label\":\"@.capitalize:{'words.generated.operations'} lead\",\"description\":\"@.capitalize:{'words.generated.can'} @:{'words.generated.coordinate'} @:{'words.generated.orders'}, @:{'words.generated.bookings'}, @:{'words.generated.and'} @:{'words.generated.operations'} views @:{'words.generated.for'} @:{'words.generated.assigned'} @:{'words.generated.departments'}.\"},\"department_admin\":{\"label\":\"@.capitalize:{'words.generated.department'} admin\",\"description\":\"@.capitalize:{'words.generated.can'} @:{'words.generated.manage'} @:{'words.generated.limited'} @:{'words.generated.prices'} @:{'words.generated.and'} @:{'words.generated.employee'} @:{'words.generated.access'} @:{'words.generated.for'} @:{'words.generated.assigned'} @:{'words.generated.departments'}.\"}},\"errors\":{\"load_departments\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.load'} @:{'words.generated.departments'}.\",\"load_prices\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.load'} @:{'words.generated.department'} @:{'words.generated.prices'}.\",\"save_prices\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.save'} @:{'words.generated.department'} @:{'words.generated.prices'}.\",\"load_employees\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.load'} @:{'words.generated.employees'}.\",\"save_employee\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.save'} @:{'words.generated.employee'}.\",\"deactivate_employee\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.deactivate'} @:{'words.generated.employee'}.\",\"generate_employee_login_link\":\"Could not create employee login link.\"},\"role_permissions\":{\"title\":\"Role permissions\",\"tooltip\":\"View role permissions\",\"intro\":\"Roles combine the exact capabilities assigned to an employee when the role is saved.\",\"scope\":\"Every capability is limited to the departments selected for the employee.\",\"selected\":\"Selected\",\"close\":\"Close\",\"unavailable\":\"Permission details are unavailable for this role until the role catalog has been updated.\",\"groups\":{\"account\":\"Account\",\"orders\":\"Orders\",\"products\":\"Products\",\"customers\":\"Customers\",\"vehicles\":\"Vehicles\",\"attachments\":\"Attachments\",\"scanner\":\"Scanners\",\"bookings\":\"Bookings\",\"time_bookings\":\"Time bookings\",\"reports\":\"Reports\",\"limited_backoffice\":\"Backoffice\",\"unknown\":\"Other\"},\"capabilities\":{\"sign_in\":{\"label\":\"Sign in\",\"description\":\"Allows the employee to sign in to Pleno.\"},\"view_own_permissions\":{\"label\":\"View own permissions\",\"description\":\"Shows the employee which access rights their account has.\"},\"view_orders\":{\"label\":\"View orders\",\"description\":\"Can open order lists and order details for assigned departments.\"},\"create_orders\":{\"label\":\"Create orders\",\"description\":\"Can create new orders for assigned departments.\"},\"edit_orders\":{\"label\":\"Edit orders\",\"description\":\"Can update order details for assigned departments.\"},\"delete_orders\":{\"label\":\"Delete orders\",\"description\":\"Can delete orders in assigned departments.\"},\"view_order_items\":{\"label\":\"View order lines\",\"description\":\"Can see products, services, and prices on orders.\"},\"create_order_items\":{\"label\":\"Create order lines\",\"description\":\"Can add products and services to orders.\"},\"update_order_lines\":{\"label\":\"Edit order lines\",\"description\":\"Can change products, quantities, and prices on orders.\"},\"remove_order_lines\":{\"label\":\"Delete order lines\",\"description\":\"Can remove products and services from orders.\"},\"charge_orders\":{\"label\":\"Charge orders\",\"description\":\"Can take payment or charge a payment intent for an order.\"},\"complete_orders\":{\"label\":\"Complete orders\",\"description\":\"Can mark orders as completed.\"},\"view_product_catalog\":{\"label\":\"View product catalog\",\"description\":\"Can load POS categories, products, prices, and addons.\"},\"view_product_recommendations\":{\"label\":\"View product recommendations\",\"description\":\"Can see product suggestions based on orders and vehicle data.\"},\"search_customers\":{\"label\":\"Search customers\",\"description\":\"Can search and select customers for POS orders.\"},\"view_customer_details\":{\"label\":\"View customer details\",\"description\":\"Can load customer details from a customer number.\"},\"view_customer_notes\":{\"label\":\"View customer notes\",\"description\":\"Can read customer notes in POS.\"},\"add_customer_notes\":{\"label\":\"Add customer notes\",\"description\":\"Can add customer notes from POS.\"},\"view_customer_flags\":{\"label\":\"View customer flags\",\"description\":\"Can see customer flags that affect order requirements and product rules.\"},\"search_vehicles\":{\"label\":\"Search vehicles\",\"description\":\"Can search license plates and see vehicle status.\"},\"view_vehicle_matches\":{\"label\":\"View vehicle matches\",\"description\":\"Can see vehicle customer matches and unknown vehicle suggestions.\"},\"view_vehicle_history\":{\"label\":\"View vehicle history\",\"description\":\"Can see recent order history for a license plate.\"},\"view_order_attachments\":{\"label\":\"View order attachments\",\"description\":\"Can list attachments on orders.\"},\"add_order_attachments\":{\"label\":\"Add order attachments\",\"description\":\"Can upload files and attach wash certificates to orders.\"},\"download_order_attachments\":{\"label\":\"Download order attachments\",\"description\":\"Can open and download order attachments.\"},\"view_plate_scans\":{\"label\":\"View plate scans\",\"description\":\"Can view recent license plate scans and scanners for assigned departments.\"},\"view_department_bookings\":{\"label\":\"View department bookings\",\"description\":\"Can see bookings for assigned departments.\"},\"view_own_bookings\":{\"label\":\"View own bookings\",\"description\":\"Can see booking counts and bookings tied to the employee account.\"},\"update_bookings\":{\"label\":\"Edit bookings\",\"description\":\"Can change permitted booking details.\"},\"create_bookings\":{\"label\":\"Create bookings\",\"description\":\"Can create new bookings for assigned departments.\"},\"mark_bookings_complete\":{\"label\":\"Complete bookings\",\"description\":\"Can mark bookings as completed.\"},\"send_booking_confirmations\":{\"label\":\"Resend booking confirmations\",\"description\":\"Can resend booking confirmation and completion emails.\"},\"view_time_booking_entries\":{\"label\":\"View time booking entries\",\"description\":\"Can inspect time-booking entries for assigned departments.\"},\"create_time_booking_entries\":{\"label\":\"Create time booking entries\",\"description\":\"Can add new time-booking entries.\"},\"edit_time_booking_entries\":{\"label\":\"Edit time booking entries\",\"description\":\"Can edit time-booking entries when the backend route supports it.\"},\"view_order_statistics\":{\"label\":\"View order statistics\",\"description\":\"Can open order statistics views for assigned departments.\"},\"view_booking_statistics\":{\"label\":\"View booking statistics\",\"description\":\"Can open booking statistics views for assigned departments.\"},\"open_limited_backoffice\":{\"label\":\"Open limited backoffice\",\"description\":\"Can access the limited backoffice area.\"},\"manage_department_prices\":{\"label\":\"Manage department prices\",\"description\":\"Can edit explicit prices for assigned departments.\"},\"view_customer_pricing\":{\"label\":\"View customer pricing\",\"description\":\"Can view department-specific customer prices and discounts for assigned departments.\"},\"manage_customer_pricing\":{\"label\":\"Manage customer pricing\",\"description\":\"Can edit department-specific customer prices and discounts for assigned departments.\"},\"manage_employee_access\":{\"label\":\"Manage employee access\",\"description\":\"Can create, edit, and deactivate limited backoffice employees.\"},\"unknown\":{\"label\":\"Additional capability\",\"description\":\"This capability is provided by the role catalog but is not yet described in the interface.\"}}}}}}}");
const enV2 = {
  words: words$3,
  templates: templates$3,
};

const words$2 = /* #__PURE__ */ JSON.parse("{\"grammar\":{},\"actions\":{},\"entities\":{},\"statuses\":{},\"domain\":{},\"services\":{},\"units\":{},\"replication\":{\"article\":{\"host_mention\":\"den\"},\"adjective\":{\"primary_host_mention\":\"primära\"},\"host\":\"värd\",\"host_definite_suffix\":\"en\",\"services\":{\"database\":\"databas\",\"redis\":\"Redis\",\"minio\":\"MinIO\"}},\"generated\":{\"a\":\"a\",\"a_2\":\"å\",\"abonnemang\":\"Abonnemang\",\"abonnement\":\"abonnement\",\"action\":\"action\",\"actions\":\"actions\",\"active\":\"active\",\"add\":\"add\",\"additional\":\"additional\",\"address\":\"address\",\"admin\":\"Admin\",\"administration\":\"administration\",\"administrations\":\"administrations\",\"administrationsgebyr\":\"Administrationsgebyr\",\"administrator\":\"Administrator\",\"administrer\":\"Administrer\",\"af\":\"af\",\"again\":\"again\",\"akare\":\"åkare\",\"aktiv\":\"aktiv\",\"aktiva\":\"aktiva\",\"aktiver\":\"Aktiver\",\"aktivera\":\"aktivera\",\"aktiverad\":\"aktiverad\",\"aktiverat\":\"aktiverat\",\"aldre\":\"äldre\",\"alert\":\"alert\",\"all\":\"all\",\"alla\":\"alla\",\"allmanna\":\"allmänna\",\"allow\":\"allow\",\"allt\":\"allt\",\"already\":\"already\",\"amount\":\"amount\",\"an\":\"an\",\"an_2\":\"än\",\"and\":\"and\",\"andel\":\"andel\",\"andra\":\"ändra\",\"andringar\":\"ändringar\",\"ange\":\"ange\",\"angett\":\"angett\",\"angivet\":\"angivet\",\"angivna\":\"angivna\",\"angra\":\"ångra\",\"angras\":\"ångras\",\"annan\":\"annan\",\"annu\":\"ännu\",\"annullerad\":\"annullerad\",\"ansatt\":\"ansatt\",\"ansatte\":\"ansatte\",\"anslutning\":\"anslutning\",\"anslutningen\":\"anslutningen\",\"anslutningsinstallningar\":\"anslutningsinställningar\",\"anstalld\":\"anställd\",\"anstallda\":\"anställda\",\"antal\":\"antal\",\"anteckning\":\"anteckning\",\"anteckningar\":\"anteckningar\",\"anvand\":\"använd\",\"anvand_2\":\"Anvand\",\"anvandardata\":\"användardata\",\"anvandare\":\"användare\",\"anvandarnamn\":\"användarnamn\",\"anvandarrabatt\":\"användarrabatt\",\"anvander\":\"använder\",\"anvands\":\"används\",\"any\":\"any\",\"api\":\"API\",\"app\":\"app\",\"appen\":\"appen\",\"apply\":\"apply\",\"ar\":\"är\",\"ar_2\":\"år\",\"are\":\"are\",\"aret\":\"året\",\"arrangement\":\"arrangement\",\"artiklar\":\"artiklar\",\"as\":\"as\",\"assign\":\"Assign\",\"at\":\"at\",\"aterstall\":\"Återställ\",\"aterstalla\":\"återställa\",\"atgard\":\"åtgärd\",\"atgarder\":\"åtgärder\",\"atkomst\":\"åtkomst\",\"att\":\"att\",\"attached\":\"attached\",\"autentisera\":\"autentisera\",\"autentiseringsapp\":\"autentiseringsapp\",\"authentication\":\"authentication\",\"automatisk\":\"automatisk\",\"automatiskt\":\"automatiskt\",\"av\":\"av\",\"available\":\"available\",\"avbruten\":\"Avbruten\",\"avbrutits\":\"avbrutits\",\"avbryt\":\"Avbryt\",\"avbryta\":\"avbryta\",\"avbryter\":\"Avbryter\",\"avdeling\":\"avdeling\",\"avdelingen\":\"avdelingen\",\"avdelinger\":\"avdelinger\",\"avdelning\":\"avdelning\",\"avdelningar\":\"avdelningar\",\"avdelningen\":\"avdelningen\",\"avdelningens\":\"avdelningens\",\"avdelnings\":\"avdelnings\",\"avdelningsbanor\":\"avdelningsbanor\",\"avdelningsfardelningar\":\"avdelningsfärdelningar\",\"avdelningsgrind\":\"avdelningsgrind\",\"avdelningsgrindar\":\"avdelningsgrindar\",\"avdelningskategorier\":\"avdelningskategorier\",\"avdelningsnamn\":\"avdelningsnamn\",\"avdelningsrela\":\"avdelningsrelä\",\"avdelningsrelaer\":\"avdelningsreläer\",\"avdelningsvariabler\":\"avdelningsvariabler\",\"avg\":\"Avg\",\"aviseringar\":\"aviseringar\",\"aviseringsinstallningar\":\"aviseringsinställningar\",\"avsandaridentitet\":\"avsändaridentitet\",\"avsiktsparser\":\"avsiktsparser\",\"avslutade\":\"avslutade\",\"avvikelser\":\"avvikelser\",\"avdelningspriser\":\"avdelningspriser\",\"back\":\"back\",\"backup\":\"backup\",\"bakom\":\"bakom\",\"battre\":\"bättre\",\"be\":\"be\",\"bearbetar\":\"Bearbetar\",\"because\":\"because\",\"been\":\"been\",\"begaran\":\"Begäran\",\"begaransgrans\":\"begäransgräns\",\"begaransgransen\":\"begäransgränsen\",\"behall\":\"Behall\",\"behallas\":\"behallas\",\"behorigheter\":\"behörigheter\",\"behover\":\"behöver\",\"bekrafta\":\"bekräfta\",\"bekrafta_2\":\"Bekrafta\",\"bekraftad\":\"bekräftad\",\"bekraftelse\":\"bekräftelse\",\"bekreft\":\"bekreft\",\"belopp\":\"belopp\",\"bemannade\":\"bemannade\",\"beraknad\":\"Beräknad\",\"bestilling\":\"bestilling\",\"bestillinger\":\"bestillinger\",\"besvarade\":\"besvarade\",\"betala\":\"Betala\",\"betald\":\"betald\",\"betaling\":\"Betaling\",\"betalkort\":\"Betalkort\",\"betalning\":\"betalning\",\"betalningar\":\"betalningar\",\"betalningen\":\"betalningen\",\"betalningsform\":\"betalningsform\",\"betalningslank\":\"betalningslänk\",\"betalningslanken\":\"betalningslänken\",\"betalningsstatus\":\"betalningsstatus\",\"betalt\":\"betalt\",\"bifogade\":\"bifogade\",\"bilaga\":\"bilaga\",\"bilagor\":\"Bilagor\",\"bilder\":\"bilder\",\"binary\":\"binary\",\"block\":\"Block\",\"blockers\":\"blockers\",\"boka\":\"boka\",\"bokforas\":\"bokföras\",\"bokford\":\"bokförd\",\"bokforda\":\"bokförda\",\"bokning\":\"bokning\",\"bokningar\":\"bokningar\",\"bokningen\":\"bokningen\",\"bokningena\":\"bokningenä\",\"boknings\":\"boknings\",\"bokningsbekraftelser\":\"bokningsbekräftelser\",\"bokningsinformation\":\"Bokningsinformation\",\"bokningsportalen\":\"bokningsportalen\",\"bokningstyper\":\"bokningstyper\",\"book\":\"Book\",\"booking\":\"booking\",\"bookings\":\"bookings\",\"bort\":\"bort\",\"branding\":\"branding\",\"bucket\":\"bucket\",\"buckets\":\"buckets\",\"but\":\"but\",\"by\":\"by\",\"bygg\":\"Bygg\",\"byt\":\"Byt\",\"byta\":\"byta\",\"bytes\":\"bytes\",\"bytet\":\"bytet\",\"cache\":\"cache\",\"cacheverktyg\":\"Cacheverktyg\",\"can\":\"can\",\"cart\":\"cart\",\"categories\":\"categories\",\"certificate\":\"certificate\",\"change\":\"Change\",\"changed\":\"changed\",\"changes\":\"changes\",\"checked\":\"checked\",\"choose\":\"Choose\",\"chrome\":\"Chrome\",\"cleaning\":\"cleaning\",\"client\":\"Client\",\"clone\":\"Clone\",\"close\":\"Close\",\"code\":\"code\",\"collection\":\"collection\",\"collections\":\"collections\",\"company\":\"company\",\"complaint\":\"complaint\",\"complaints\":\"complaints\",\"complete\":\"complete\",\"completed\":\"completed\",\"compose\":\"compose\",\"condition\":\"condition\",\"conditions\":\"conditions\",\"config\":\"config\",\"configuration\":\"configuration\",\"configure\":\"configure\",\"configured\":\"configured\",\"confirm\":\"Confirm\",\"confirmed\":\"confirmed\",\"connection\":\"connection\",\"connectivity\":\"connectivity\",\"conomic\":\"conomic\",\"contains\":\"contains\",\"content\":\"content\",\"conversion\":\"conversion\",\"copied\":\"copied\",\"copy\":\"Copy\",\"could\":\"could\",\"count\":\"Count\",\"cpu\":\"CPU\",\"create\":\"create\",\"created\":\"Created\",\"credentials\":\"credentials\",\"current\":\"current\",\"customer\":\"customer\",\"customers\":\"customers\",\"cvr\":\"CVR\",\"d\":\"D\",\"dag\":\"dag\",\"dagen\":\"dagen\",\"dagens\":\"dagens\",\"daglig\":\"Daglig\",\"dagliga\":\"dagliga\",\"dagsrapportdetaljer\":\"dagsrapportdetaljer\",\"daily\":\"daily\",\"dar\":\"där\",\"darfor\":\"därför\",\"dashboard\":\"dashboard\",\"data\":\"data\",\"database\":\"database\",\"date\":\"date\",\"datum\":\"datum\",\"de\":\"de\",\"deaktiver\":\"deaktiver\",\"debiteras\":\"debiteras\",\"default\":\"default\",\"dela\":\"dela\",\"delete\":\"Delete\",\"denna\":\"denna\",\"department\":\"department\",\"departments\":\"departments\",\"der\":\"der\",\"destination\":\"destination\",\"det\":\"det\",\"details\":\"details\",\"detaljer\":\"detaljer\",\"detta\":\"detta\",\"device\":\"device\",\"diagnostik\":\"diagnostik\",\"did\":\"did\",\"differs\":\"differs\",\"dig\":\"dig\",\"digitala\":\"digitala\",\"din\":\"din\",\"dina\":\"dina\",\"direkt\":\"direkt\",\"disable\":\"disable\",\"disabled\":\"disabled\",\"discounts\":\"discounts\",\"display\":\"display\",\"disponenter\":\"disponenter\",\"distributionsendpoints\":\"distributionsendpoints\",\"ditt\":\"ditt\",\"dkk\":\"DKK\",\"do\":\"do\",\"docker\":\"docker\",\"does\":\"does\",\"dolj\":\"Dölj\",\"draft\":\"draft\",\"driver\":\"driver\",\"drivers\":\"drivers\",\"du\":\"du\",\"dubbletter\":\"dubbletter\",\"duplicate\":\"duplicate\",\"due\":\"Förfallen\",\"duration\":\"duration\",\"dygntvatt\":\"Dygntvätt\",\"e\":\"e\",\"economic\":\"Economic\",\"edge\":\"edge\",\"edit\":\"Edit\",\"efter\":\"efter\",\"eftersom\":\"eftersom\",\"ej\":\"Ej\",\"eller\":\"eller\",\"email\":\"email\",\"emot\":\"emot\",\"employee\":\"employee\",\"employees\":\"employees\",\"enable\":\"Enable\",\"enabled\":\"enabled\",\"encryption\":\"encryption\",\"end\":\"end\",\"endast\":\"endast\",\"endpoint\":\"endpoint\",\"enhet\":\"enhet\",\"enter\":\"Enter\",\"entire\":\"entire\",\"entitetstyper\":\"entitetstyper\",\"env\":\"env\",\"er\":\"er\",\"error\":\"error\",\"ett\":\"ett\",\"etter\":\"etter\",\"events\":\"events\",\"excel\":\"Excel\",\"exempt\":\"exempt\",\"exist\":\"exist\",\"exkludera\":\"Exkludera\",\"expected\":\"expected\",\"export\":\"export\",\"exporteras\":\"exporteras\",\"exterior\":\"Exterior\",\"extra\":\"extra\",\"fa\":\"få\",\"failed\":\"failed\",\"faktura\":\"faktura\",\"fakturaen\":\"fakturaen\",\"fakturaer\":\"fakturaer\",\"fakturainformation\":\"fakturainformation\",\"fakturajamfarelser\":\"fakturajämfärelser\",\"fakturan\":\"fakturan\",\"fakturanummer\":\"fakturanummer\",\"fakturasamling\":\"fakturasamling\",\"fakturasamlingen\":\"fakturasamlingen\",\"fakturatotal\":\"fakturatotal\",\"fakturautkastet\":\"fakturautkastet\",\"fakturering\":\"fakturering\",\"faktureringsregel\":\"faktureringsregel\",\"fakturor\":\"fakturor\",\"fallback\":\"fallback\",\"false\":\"false\",\"falt\":\"fält\",\"far\":\"får\",\"fast\":\"fast\",\"fastighetens\":\"fastighetens\",\"fastprisavtal\":\"fastprisavtal\",\"fee\":\"fee\",\"fejl\":\"fejl\",\"fel\":\"fel\",\"felaktigt\":\"felaktigt\",\"fell\":\"fell\",\"fetching\":\"fetching\",\"field\":\"field\",\"fil\":\"fil\",\"file\":\"file\",\"filen\":\"filen\",\"filer\":\"filer\",\"fill\":\"fill\",\"filter\":\"filter\",\"filtrera\":\"filtrera\",\"finnas\":\"finnas\",\"finns\":\"finns\",\"first\":\"first\",\"fixed\":\"fixed\",\"fjern\":\"Fjern\",\"flera\":\"flera\",\"flik\":\"flik\",\"folj\":\"följ\",\"for\":\"för\",\"for_2\":\"for\",\"foraldrad\":\"föråldrad\",\"foraldrade\":\"föråldrade\",\"forare\":\"förare\",\"fordelning\":\"fördelning\",\"fordelningen\":\"fördelningen\",\"fordon\":\"fordon\",\"fordona\":\"fordonä\",\"fordonet\":\"fordonet\",\"fordonets\":\"Fordonets\",\"fordonsabonnemang\":\"fordonsabonnemang\",\"fordonsdetaljer\":\"fordonsdetaljer\",\"fordonskund\":\"fordonskund\",\"fordonskunden\":\"fordonskunden\",\"fordonstvattare\":\"fordonstvättare\",\"fordonstyp\":\"fordonstyp\",\"fordonstyper\":\"fordonstyper\",\"fordonsvillkor\":\"fordonsvillkor\",\"foregaende\":\"föregående\",\"foretag\":\"företag\",\"forhandsvisning\":\"förhandsvisning\",\"forms\":\"forms\",\"formular\":\"formulär\",\"forra\":\"förra\",\"forsok\":\"försök\",\"forsoker\":\"Försöker\",\"forst\":\"först\",\"fortfarande\":\"fortfarande\",\"fortsatt\":\"fortsätt\",\"fortsatta\":\"fortsätta\",\"forvantat\":\"forvantat\",\"found\":\"found\",\"fraga\":\"fråga\",\"fragor\":\"frågor\",\"framgangsrikt\":\"framgångsrikt\",\"fran\":\"från\",\"free\":\"free\",\"from\":\"from\",\"funktionen\":\"funktionen\",\"funnet\":\"funnet\",\"fx\":\"FX\",\"fxratesapi\":\"FXRatesAPI\",\"g\":\"g\",\"ga\":\"Gå\",\"gar\":\"går\",\"gast\":\"gäst\",\"gateway\":\"gateway\",\"gateways\":\"gateways\",\"gatewaystatus\":\"gatewaystatus\",\"gemt\":\"gemt\",\"general\":\"General\",\"generate\":\"Generate\",\"generated\":\"generated\",\"generelle\":\"generelle\",\"generera\":\"Generera\",\"genom\":\"genom\",\"genvagar\":\"genvägar\",\"get\":\"Get\",\"giltig\":\"giltig\",\"giltigt\":\"giltigt\",\"gj\":\"Gj\",\"gns\":\"gns\",\"go\":\"go\",\"goal\":\"goal\",\"goals\":\"goals\",\"google\":\"Google\",\"gor\":\"gör\",\"goras\":\"goras\",\"granska\":\"Granska\",\"granssnittet\":\"gränssnittet\",\"grant\":\"grant\",\"grindar\":\"grindar\",\"grupp\":\"grupp\",\"grupperade\":\"grupperade\",\"gtid\":\"GTID\",\"guest\":\"guest\",\"hall\":\"Håll\",\"haller\":\"håller\",\"hamta\":\"hämta\",\"hamtade\":\"hämtade\",\"hamtar\":\"hämtar\",\"handelser\":\"händelser\",\"handtere\":\"håndtere\",\"hantera\":\"hantera\",\"har\":\"har\",\"har_2\":\"här\",\"has\":\"has\",\"have\":\"have\",\"hela\":\"hela\",\"hemlighet\":\"hemlighet\",\"hemskarmen\":\"hemskärmen\",\"hent\":\"Hent\",\"her\":\"Her\",\"here\":\"here\",\"hide\":\"Hide\",\"historiska\":\"historiska\",\"hitta\":\"hitta\",\"hittades\":\"hittades\",\"hjalp\":\"hjälp\",\"hos\":\"hos\",\"host\":\"host\",\"hours\":\"hours\",\"http\":\"HTTP\",\"hur\":\"hur\",\"i\":\"i\",\"id\":\"id\",\"identity\":\"Identity\",\"igang\":\"igång\",\"igen\":\"igen\",\"ignorera\":\"Ignorera\",\"ikke\":\"ikke\",\"image\":\"Image\",\"import\":\"Import\",\"importera\":\"importera\",\"in\":\"in\",\"inaktivera\":\"inaktivera\",\"inaktiverad\":\"inaktiverad\",\"incomplete\":\"incomplete\",\"indstillinger\":\"indstillinger\",\"information\":\"information\",\"inga\":\"inga\",\"ingen\":\"ingen\",\"inget\":\"inget\",\"inkl\":\"inkl\",\"inkludera\":\"Inkludera\",\"inkomst\":\"inkomst\",\"inlasta\":\"inlåsta\",\"inloggning\":\"inloggning\",\"inn\":\"inn\",\"innan\":\"innan\",\"inne\":\"inne\",\"innehall\":\"innehåll\",\"innstillinger\":\"innstillinger\",\"innvendig\":\"innvendig\",\"installation\":\"installation\",\"installera\":\"installera\",\"installerade\":\"installerade\",\"installningar\":\"inställningar\",\"installningarna\":\"inställningarna\",\"instrumentpanel\":\"instrumentpanel\",\"intakt\":\"intäkt\",\"inte\":\"inte\",\"integrasjoner\":\"integrasjoner\",\"integration\":\"integration\",\"integrationen\":\"integrationen\",\"intent\":\"Intent\",\"interior\":\"interior\",\"intressenter\":\"intressenter\",\"invalid\":\"invalid\",\"invoice\":\"invoice\",\"invoices\":\"invoices\",\"invoicing\":\"invoicing\",\"io\":\"io\",\"iphone\":\"iPhone\",\"is\":\"is\",\"iso\":\"ISO\",\"it\":\"IT\",\"items\":\"items\",\"ja\":\"ja\",\"jamfor\":\"jämför\",\"jamforelse\":\"jämförelse\",\"jamforelsen\":\"jämförelsen\",\"json\":\"JSON\",\"just\":\"just\",\"kalender\":\"kalender\",\"kalla\":\"källa\",\"kallmix\":\"källmix\",\"kamera\":\"kamera\",\"kan\":\"kan\",\"kassasystem\":\"kassasystem\",\"kategori\":\"kategori\",\"keep\":\"Keep\",\"key\":\"key\",\"kladde\":\"kladde\",\"klar\":\"klar\",\"klara\":\"klara\",\"klicka\":\"klicka\",\"knappen\":\"knappen\",\"ko\":\"kö\",\"kod\":\"kod\",\"koden\":\"koden\",\"komma\":\"komma\",\"kommer\":\"kommer\",\"konfiguration\":\"konfiguration\",\"konfigurationen\":\"konfigurationen\",\"konfigurera\":\"konfigurera\",\"konfigurerade\":\"konfigurerade\",\"konkurrenskraftiga\":\"konkurrenskraftiga\",\"kontakt\":\"kontakt\",\"kontakta\":\"kontakta\",\"kontaktinformation\":\"kontaktinformation\",\"kontant\":\"kontant\",\"konto\":\"konto\",\"kontrollera\":\"Kontrollera\",\"koordinera\":\"koordinera\",\"kopiera\":\"kopiera\",\"kopierar\":\"Kopierar\",\"koppla\":\"koppla\",\"koppling\":\"koppling\",\"kor\":\"Kör\",\"kort\":\"kort\",\"kortbetalning\":\"Kortbetalning\",\"kraver\":\"kräver\",\"kravs\":\"krävs\",\"kreditkonto\":\"kreditkonto\",\"kund\":\"kund\",\"kundanteckningar\":\"Kundanteckningar\",\"kunde\":\"kunde\",\"kunden\":\"kunden\",\"kundens\":\"Kundens\",\"kundenummer\":\"kundenummer\",\"kunder\":\"kunder\",\"kundfaktura\":\"Kundfaktura\",\"kundnamn\":\"kundnamn\",\"kundnummer\":\"kundnummer\",\"kundonskemal\":\"Kundönskemål\",\"kundportal\":\"Kundportal\",\"kundpriser\":\"Kundpriser\",\"kunne\":\"Kunne\",\"kvar\":\"kvar\",\"kvitto\":\"kvitto\",\"ladda\":\"ladda\",\"laddades\":\"laddades\",\"laddar\":\"Laddar\",\"laddas\":\"laddas\",\"lagg\":\"Lägg\",\"lagga\":\"lägga\",\"lagts\":\"lagts\",\"landet\":\"landet\",\"landskod\":\"landskod\",\"lane\":\"lane\",\"lasa\":\"läsa\",\"lasarens\":\"läsarens\",\"laser\":\"läser\",\"last\":\"läst\",\"last_2\":\"last\",\"lastbilstvatt\":\"lastbilstvätt\",\"least\":\"least\",\"leder\":\"Leder\",\"legg\":\"Legg\",\"license\":\"license\",\"limble\":\"Limble\",\"link\":\"link\",\"linked\":\"linked\",\"list\":\"list\",\"lista\":\"lista\",\"load\":\"load\",\"loading\":\"Loading\",\"log\":\"log\",\"logg\":\"logg\",\"logga\":\"logga\",\"logged\":\"logged\",\"logging\":\"logging\",\"login\":\"Login\",\"logs\":\"logs\",\"lojalitetspoang\":\"lojalitetspoäng\",\"lookup\":\"lookup\",\"lookups\":\"lookups\",\"losennyckel\":\"lösennyckel\",\"losennyckeln\":\"lösennyckeln\",\"losennycklar\":\"lösennycklar\",\"losenord\":\"lösenord\",\"losenordet\":\"lösenordet\",\"losningar\":\"lösningar\",\"lyckades\":\"lyckades\",\"machine\":\"machine\",\"mailersend\":\"Mailersend\",\"mailersend_mailersend\":\"MailerSend\",\"maj\":\"maj\",\"mal\":\"mål\",\"manad\":\"månad\",\"manaden\":\"månaden\",\"manader\":\"månader\",\"manadsvis\":\"månadsvis\",\"manage\":\"manage\",\"managed\":\"managed\",\"manual\":\"Manual\",\"mariadb\":\"MariaDB\",\"maskin\":\"maskin\",\"maskinen\":\"Maskinen\",\"maste\":\"måste\",\"match\":\"match\",\"matchar\":\"matchar\",\"materials\":\"materials\",\"med\":\"med\",\"medan\":\"medan\",\"medarbetaratkomst\":\"medarbetaråtkomst\",\"medarbetare\":\"medarbetare\",\"medarbetaren\":\"medarbetaren\",\"memory\":\"Memory\",\"men\":\"men\",\"mer\":\"mer\",\"message\":\"message\",\"meta\":\"meta\",\"metrics\":\"metrics\",\"microsoft\":\"Microsoft\",\"migrering\":\"migrering\",\"miljoavgift\":\"miljöavgift\",\"miljoavgiften\":\"miljöavgiften\",\"mina\":\"Mina\",\"mindre\":\"mindre\",\"minst\":\"minst\",\"minute\":\"minute\",\"minutes\":\"minutes\",\"missing\":\"missing\",\"misslyckades\":\"misslyckades\",\"mode\":\"mode\",\"module\":\"module\",\"modules\":\"modules\",\"mojliga\":\"möjliga\",\"mojlighet\":\"möjlighet\",\"moms\":\"moms\",\"month\":\"month\",\"monthly\":\"monthly\",\"months\":\"months\",\"more\":\"more\",\"mot\":\"mot\",\"motor\":\"Motor\",\"motorapi\":\"MotorAPI\",\"mottaget\":\"mottaget\",\"multiple\":\"multiple\",\"must\":\"must\",\"my\":\"My\",\"mysql\":\"MySQL\",\"nagra\":\"några\",\"name\":\"name\",\"namn\":\"namn\",\"namnet\":\"Namnet\",\"nar\":\"när\",\"narmaste\":\"närmaste\",\"narvarande\":\"närvarande\",\"nas\":\"nås\",\"nasta\":\"nästa\",\"nationella\":\"nationella\",\"natverk\":\"nätverk\",\"ned\":\"ned\",\"nedan\":\"nedan\",\"nej\":\"nej\",\"ner\":\"ner\",\"net\":\"net\",\"new\":\"new\",\"newer\":\"newer\",\"next\":\"Next\",\"no\":\"no\",\"none\":\"None\",\"not\":\"not\",\"note\":\"note\",\"notes\":\"notes\",\"notifieringar\":\"notifieringar\",\"nu\":\"nu\",\"number\":\"number\",\"numbers\":\"numbers\",\"nummer\":\"nummer\",\"nummerplade\":\"nummerplade\",\"nuvarande\":\"nuvarande\",\"ny\":\"ny\",\"nya\":\"nya\",\"nyckel\":\"nyckel\",\"nyckeln\":\"nyckeln\",\"nyckeltal\":\"nyckeltal\",\"nytt\":\"nytt\",\"oavsett\":\"oavsett\",\"objekt\":\"objekt\",\"objekter\":\"objekter\",\"obligatoriskt\":\"obligatoriskt\",\"observera\":\"Observera\",\"occurred\":\"occurred\",\"och\":\"och\",\"oeppna\":\"Oeppna\",\"of\":\"of\",\"ogiltigt\":\"Ogiltigt\",\"okand\":\"Okänd\",\"okant\":\"okänt\",\"olika\":\"olika\",\"om\":\"om\",\"ombyggnad\":\"ombyggnad\",\"omedelbar\":\"omedelbar\",\"omsetning\":\"omsetning\",\"on\":\"on\",\"one\":\"one\",\"online\":\"online\",\"only\":\"only\",\"ons\":\"ons\",\"onskad\":\"önskad\",\"opdater\":\"Opdater\",\"open\":\"Open\",\"openai\":\"OpenAI\",\"opening\":\"opening\",\"oppettider\":\"öppettider\",\"oppna\":\"öppna\",\"opprett\":\"Opprett\",\"opprettet\":\"opprettet\",\"opret\":\"Opret\",\"optional\":\"optional\",\"or\":\"or\",\"oracle\":\"Oracle\",\"order\":\"order\",\"orderbokningar\":\"orderbokningar\",\"orderdetaljer\":\"orderdetaljer\",\"orderfakturor\":\"orderfakturor\",\"orderkoppling\":\"orderkoppling\",\"ordern\":\"ordern\",\"orderradens\":\"Orderradens\",\"orderrader\":\"orderrader\",\"orders\":\"orders\",\"orderskapande\":\"orderskapande\",\"ordrar\":\"ordrar\",\"ordre\":\"ordre\",\"orsak\":\"orsak\",\"oss\":\"oss\",\"other\":\"other\",\"over\":\"över\",\"over_2\":\"over\",\"overforing\":\"overföring\",\"overforingar\":\"overföringar\",\"oversikt\":\"översikt\",\"pa\":\"på\",\"pagar\":\"pågår\",\"page\":\"page\",\"passar\":\"passar\",\"passord\":\"passord\",\"password\":\"password\",\"payload\":\"payload\",\"payment\":\"payment\",\"pdf\":\"PDF\",\"per\":\"per\",\"period\":\"period\",\"permission\":\"permission\",\"permissions\":\"permissions\",\"phone\":\"phone\",\"plate\":\"plate\",\"plates\":\"plates\",\"plats\":\"plats\",\"platshallare\":\"Platshållare\",\"pleno\":\"Pleno\",\"plugin\":\"plugin\",\"po\":\"PO\",\"poang\":\"Poäng\",\"populara\":\"Populära\",\"port\":\"port\",\"portal\":\"portal\",\"pos\":\"POS\",\"post\":\"post\",\"postadress\":\"postadress\",\"postadressen\":\"postadressen\",\"postaviseringar\":\"postaviseringar\",\"posted\":\"posted\",\"press\":\"Press\",\"presterar\":\"presterar\",\"price\":\"price\",\"prices\":\"prices\",\"pricing\":\"pricing\",\"primary\":\"primary\",\"pris\":\"pris\",\"priser\":\"priser\",\"prissattning\":\"prissättning\",\"probe\":\"probe\",\"proc\":\"proc\",\"processed\":\"Processed\",\"product\":\"product\",\"produkt\":\"produkt\",\"produktalternativ\":\"produktalternativ\",\"produkter\":\"produkter\",\"produktforsaljning\":\"produktförsäljning\",\"produkttillegg\":\"produkttillegg\",\"profile\":\"profile\",\"progress\":\"progress\",\"prova\":\"Prova\",\"provide\":\"Provide\",\"provision\":\"provision\",\"provisioning\":\"provisioning\",\"qr\":\"QR\",\"rabatt\":\"rabatt\",\"rad\":\"rad\",\"radera\":\"radera\",\"raderad\":\"Raderad\",\"rapport\":\"rapport\",\"rates\":\"rates\",\"read\":\"read\",\"recent\":\"recent\",\"recipient\":\"recipient\",\"redan\":\"redan\",\"rediger\":\"Rediger\",\"redigera\":\"Redigera\",\"redigeringsrattigheter\":\"redigeringsrättigheter\",\"redo\":\"Redo\",\"reference\":\"reference\",\"referens\":\"referens\",\"referensnummer\":\"referensnummer\",\"refresh\":\"refresh\",\"reg\":\"reg\",\"register\":\"Register\",\"registered\":\"registered\",\"registration\":\"registration\",\"registrera\":\"registrera\",\"registrering\":\"registrering\",\"registreringsnummer\":\"registreringsnummer\",\"registreringsnumret\":\"registreringsnumret\",\"registreringsskannrar\":\"registreringsskannrar\",\"registreringsskylt\":\"registreringsskylt\",\"regler\":\"regler\",\"relaer\":\"reläer\",\"relay\":\"relay\",\"released\":\"released\",\"relevanta\":\"relevanta\",\"remove\":\"Remove\",\"removed\":\"removed\",\"rename\":\"byt namn\",\"rensa\":\"Rensa\",\"rensas\":\"rensas\",\"replica\":\"replica\",\"replicas\":\"replicas\",\"replication\":\"replication\",\"reply\":\"Reply\",\"report\":\"report\",\"reports\":\"reports\",\"request\":\"request\",\"requests\":\"requests\",\"require\":\"Require\",\"required\":\"required\",\"requires\":\"requires\",\"reset\":\"reset\",\"response\":\"response\",\"restrict\":\"Restrict\",\"restricted\":\"restricted\",\"result\":\"result\",\"resultat\":\"resultat\",\"resultater\":\"resultater\",\"return\":\"return\",\"returned\":\"returned\",\"rinse\":\"rinse\",\"role\":\"role\",\"roles\":\"roles\",\"roll\":\"roll\",\"roller\":\"roller\",\"rule\":\"rule\",\"rules\":\"rules\",\"run\":\"run\",\"running\":\"running\",\"runtime\":\"runtime\",\"s\":\"s\",\"safari\":\"Safari\",\"safe\":\"safe\",\"safely\":\"safely\",\"saker\":\"säker\",\"sakerhet\":\"säkerhet\",\"sakerhetsfarsegling\":\"säkerhetsfärsegling\",\"sakerhetskopia\":\"säkerhetskopia\",\"sakert\":\"säkert\",\"saknar\":\"saknar\",\"saknas\":\"saknas\",\"sakra\":\"säkra\",\"salda\":\"sålda\",\"same\":\"same\",\"samlad\":\"samlad\",\"samlade\":\"samlade\",\"samma\":\"samma\",\"sammanfattning\":\"sammanfattning\",\"save\":\"save\",\"scan\":\"scan\",\"scanned\":\"scanned\",\"scanners\":\"scanners\",\"scanning\":\"scanning\",\"scans\":\"scans\",\"schema\":\"schema\",\"se\":\"se\",\"search\":\"search\",\"secret\":\"secret\",\"sedan\":\"sedan\",\"see\":\"see\",\"seed\":\"seed\",\"seeded\":\"seeded\",\"seen\":\"seen\",\"sekund\":\"sekund\",\"sekunder\":\"sekunder\",\"select\":\"select\",\"selected\":\"selected\",\"self\":\"self\",\"selvvask\":\"selvvask\",\"semi\":\"semi\",\"senaste\":\"senaste\",\"send\":\"send\",\"sende\":\"sende\",\"sender\":\"Sender\",\"sendt\":\"sendt\",\"sent\":\"sent\",\"separate\":\"separate\",\"ser\":\"ser\",\"serve\":\"serve\",\"server\":\"server\",\"servern\":\"servern\",\"service\":\"service\",\"services\":\"services\",\"session\":\"session\",\"sessions\":\"sessions\",\"set\":\"set\",\"settings\":\"settings\",\"setup\":\"setup\",\"shelly\":\"Shelly\",\"shift\":\"shift\",\"should\":\"should\",\"show\":\"Show\",\"sida\":\"sida\",\"sidan\":\"sidan\",\"side\":\"side\",\"siffriga\":\"siffriga\",\"siste\":\"Siste\",\"sjalv\":\"själv\",\"sjalvbetjaning\":\"självbetjäning\",\"sjalvbetjaningsfragor\":\"självbetjäningsfrägor\",\"sjalvbetjaningsvillkor\":\"självbetjäningsvillkor\",\"sjalvtvatt\":\"självtvätt\",\"ska\":\"ska\",\"skanna\":\"skanna\",\"skapa\":\"skapa\",\"skapad\":\"skapad\",\"skapades\":\"skapades\",\"skapande\":\"skapande\",\"skapar\":\"Skapar\",\"skapats\":\"skapats\",\"skicka\":\"skicka\",\"skickades\":\"skickades\",\"skickas\":\"skickas\",\"skipped\":\"skipped\",\"skjut\":\"Skjut\",\"skriv\":\"Skriv\",\"skyddat\":\"skyddat\",\"slack\":\"Slack\",\"slett\":\"Slett\",\"slutfor\":\"Slutför\",\"slutfora\":\"slutföra\",\"slutforas\":\"slutföras\",\"slutford\":\"slutförd\",\"slutforda\":\"slutförda\",\"sms\":\"SMS\",\"smtp\":\"SMTP\",\"snabbt\":\"snabbt\",\"snitt\":\"snitt\",\"sok\":\"Sök\",\"soker\":\"söker\",\"sokning\":\"sökning\",\"som\":\"som\",\"sortera\":\"Sortera\",\"sorterade\":\"sorterade\",\"source\":\"source\",\"space\":\"space\",\"spara\":\"spara\",\"sparad\":\"sparad\",\"sparades\":\"sparades\",\"special\":\"special\",\"specialavtal\":\"specialavtal\",\"split\":\"split\",\"spot\":\"spot\",\"sql\":\"SQL\",\"standard\":\"Standard\",\"standardavdelning\":\"standardavdelning\",\"standardvarden\":\"standardvärden\",\"stang\":\"Stäng\",\"start\":\"start\",\"starta\":\"starta\",\"statistik\":\"statistik\",\"statistikk\":\"statistikk\",\"status\":\"status\",\"steg\":\"steg\",\"step\":\"step\",\"stods\":\"stöds\",\"store\":\"store\",\"stripe\":\"Stripe\",\"studio\":\"Studio\",\"sub\":\"sub\",\"subscription\":\"subscription\",\"subuser\":\"Subuser\",\"successfully\":\"successfully\",\"superanvandare\":\"superanvändare\",\"superuser\":\"superuser\",\"support\":\"support\",\"svar\":\"svar\",\"synkroniserad\":\"synkroniserad\",\"synkronisering\":\"synkronisering\",\"synliga\":\"synliga\",\"synlighet\":\"synlighet\",\"system\":\"system\",\"systemet\":\"systemet\",\"systemsakningens\":\"systemsäkningens\",\"sparats\":\"sparats\",\"ta\":\"ta\",\"tab\":\"tab\",\"tabell\":\"tabell\",\"tables\":\"tables\",\"tack\":\"Tack\",\"tagits\":\"tagits\",\"tank\":\"tank\",\"target\":\"target\",\"task\":\"task\",\"tasks\":\"tasks\",\"tecken\":\"tecken\",\"tegn\":\"tegn\",\"telefon\":\"telefon\",\"telefonnummer\":\"telefonnummer\",\"telefonnumret\":\"telefonnumret\",\"terminal\":\"terminal\",\"terminaler\":\"terminaler\",\"test\":\"test\",\"testlage\":\"testläge\",\"testmejlet\":\"testmejlet\",\"text\":\"text\",\"the\":\"the\",\"this\":\"this\",\"thread\":\"thread\",\"tid\":\"tid\",\"tider\":\"tider\",\"tidigare\":\"tidigare\",\"tidligere\":\"tidligere\",\"tidsbokning\":\"tidsbokning\",\"tidsbokningar\":\"tidsbokningar\",\"til\":\"til\",\"tilgangskode\":\"tilgangskode\",\"till\":\"till\",\"tillagda\":\"tillagda\",\"tillagg\":\"tillägg\",\"tillampliga\":\"tillämpliga\",\"tillbaka\":\"Tillbaka\",\"tilldelade\":\"tilldelade\",\"tilldelats\":\"tilldelats\",\"tillegg\":\"tillegg\",\"tillforlitlighet\":\"tillförlitlighet\",\"tillgang\":\"tillgång\",\"tillganglig\":\"tillgänglig\",\"tillgangliga\":\"tillgängliga\",\"tillgangligt\":\"tillgängligt\",\"tillhor\":\"tillhor\",\"tillval\":\"tillval\",\"time\":\"time\",\"timmar\":\"timmar\",\"tjana\":\"tjäna\",\"tjanst\":\"tjänst\",\"tjansten\":\"tjänsten\",\"tjanster\":\"tjänster\",\"to\":\"to\",\"token\":\"token\",\"tom\":\"Töm\",\"tomt\":\"tomt\",\"topp\":\"Topp\",\"total\":\"total\",\"totalbelopp\":\"totalbelopp\",\"totalsummor\":\"totalsummor\",\"totalt\":\"Totalt\",\"trailer\":\"trailer\",\"transaktion\":\"transaktion\",\"transaktioner\":\"transaktioner\",\"transaktionsutkast\":\"transaktionsutkast\",\"truck\":\"Truck\",\"truckwash\":\"truckwash\",\"true\":\"true\",\"tryck\":\"Tryck\",\"tvafaktorsautentisering\":\"tvåfaktorsautentisering\",\"tvatt\":\"tvätt\",\"tvatt_2\":\"tvatt\",\"tvatta\":\"tvätta\",\"tvattabonnemang\":\"tvättabonnemang\",\"tvattar\":\"tvättar\",\"tvattbana\":\"tvättbana\",\"tvattbanor\":\"tvättbanor\",\"tvattcertifikat\":\"tvättcertifikat\",\"tvattcertifikat_2\":\"tvattcertifikat\",\"tvattcertifikatraden\":\"Tvattcertifikatraden\",\"tvatten\":\"tvätten\",\"tvatthall\":\"tvätthall\",\"tvatthallar\":\"tvätthallar\",\"tvatthallsoperatorer\":\"tvätthallsoperatörer\",\"tvattjanster\":\"tvättjänster\",\"tvattlogg\":\"tvättlogg\",\"tvatttyp\":\"tvätttyp\",\"tvers\":\"tvers\",\"tvinga\":\"Tvinga\",\"typ\":\"typ\",\"type\":\"type\",\"typer\":\"typer\",\"types\":\"types\",\"unable\":\"Unable\",\"unavailable\":\"unavailable\",\"under\":\"under\",\"underanvandare\":\"underanvändare\",\"undo\":\"Undo\",\"unexpected\":\"unexpected\",\"unique\":\"unique\",\"unit\":\"Unit\",\"up\":\"up\",\"upp\":\"upp\",\"uppdatera\":\"uppdatera\",\"uppdaterad\":\"Uppdaterad\",\"uppgifter\":\"uppgifter\",\"uppstod\":\"uppstod\",\"urklipp\":\"urklipp\",\"url\":\"URL\",\"us\":\"us\",\"usage\":\"usage\",\"use\":\"use\",\"used\":\"used\",\"user\":\"user\",\"username\":\"username\",\"users\":\"users\",\"ut\":\"ut\",\"utan\":\"utan\",\"utanfor\":\"utanför\",\"utford\":\"utförd\",\"utforts\":\"utförts\",\"utgaende\":\"utgående\",\"utkast\":\"utkast\",\"utkastkunden\":\"utkastkunden\",\"utvendig\":\"utvendig\",\"v2\":\"v2\",\"vald\":\"vald\",\"valda\":\"valda\",\"valfri\":\"Valfri\",\"valgt\":\"valgt\",\"valgte\":\"valgte\",\"valid\":\"valid\",\"valj\":\"välj\",\"valj_2\":\"Valj\",\"valja\":\"välja\",\"valkommen\":\"Välkommen\",\"valt\":\"valt\",\"value\":\"value\",\"valutakurser\":\"valutakurser\",\"vanligen\":\"Vänligen\",\"vanta\":\"vänta\",\"vantande\":\"väntande\",\"vantar\":\"Väntar\",\"var\":\"var\",\"var_2\":\"vår\",\"vara\":\"vara\",\"varje\":\"varje\",\"varningar\":\"varningar\",\"vart\":\"vårt\",\"vask\":\"vask\",\"vaskelogg\":\"vaskelogg\",\"vaskesertifikat\":\"vaskesertifikat\",\"vat\":\"VAT\",\"vecka\":\"vecka\",\"vehicle\":\"vehicle\",\"velg\":\"Velg\",\"vennligst\":\"Vennligst\",\"verifiera\":\"verifiera\",\"verifieringskod\":\"verifieringskod\",\"version\":\"version\",\"vi\":\"vi\",\"via\":\"via\",\"vid\":\"vid\",\"view\":\"view\",\"vilken\":\"vilken\",\"vill\":\"vill\",\"villkor\":\"villkor\",\"villkorsregler\":\"villkorsregler\",\"violates\":\"violates\",\"virk\":\"Virk\",\"virkdata\":\"VirkData\",\"virkdata_virkdata\":\"Virkdata\",\"vis\":\"Vis\",\"visa\":\"visa\",\"visar\":\"visar\",\"visas\":\"visas\",\"visionen\":\"visionen\",\"visning\":\"visning\",\"vogntype\":\"vogntype\",\"was\":\"was\",\"wash\":\"wash\",\"washes\":\"washes\",\"water\":\"water\",\"webblasare\":\"webbläsare\",\"webhook\":\"webhook\",\"webhooks\":\"webhooks\",\"week\":\"week\",\"weeks\":\"weeks\",\"were\":\"were\",\"where\":\"where\",\"while\":\"while\",\"will\":\"will\",\"with\":\"with\",\"within\":\"within\",\"word_00z\":\"00Z\",\"workfeed\":\"Workfeed\",\"x\":\"x\",\"xl\":\"XL\",\"xlvask\":\"XLVask\",\"xlvask_xlvask\":\"Xlvask\",\"years\":\"years\",\"yes\":\"Yes\",\"you\":\"you\",\"your\":\"your\",\"ytterligare\":\"ytterligare\"}}");
const templates$2 = /* #__PURE__ */ JSON.parse("{\"support\":{\"title\":\"Support\",\"meta_description\":\"Support och kontaktinformation for Truck Wash.\",\"eyebrow\":\"Truck Wash\",\"intro\":\"Kontakta oss om du behover hjalp med bokningar, sjalvtvatt, betalningar eller atkomst till kundportalen.\",\"contact_title\":\"Kontakt\",\"email_label\":\"E-post\",\"phone_label\":\"Telefon\",\"company_label\":\"Foretag\",\"help_title\":\"Vi kan hjalpa till med\",\"help_booking\":\"Bokning och andring av tvattider.\",\"help_self_wash\":\"Start och avslut av sjalvtvatt.\",\"help_payments\":\"Ordrar, fakturor och kortbetalningar.\",\"help_account\":\"Inloggning, atkomst och fordon pa ditt konto.\",\"privacy_prefix\":\"Las ocksa var\",\"privacy_link\":\"integritetspolicy\",\"privacy_suffix\":\"for information om data och rattigheter.\"},\"common\":{\"step_of\":\"@.capitalize:{'words.generated.steg'} {current} @:{'words.generated.av'} {total}\",\"page_of\":\"@.capitalize:{'words.generated.sida'} {current} @:{'words.generated.av'} {total}\",\"selected_count\":\"{count} @:{'words.generated.valda'}\",\"no_items\":\"@.capitalize:{'words.generated.inga'} {entity}\",\"select_entity\":\"@.capitalize:{'words.generated.valj'} {entity}\",\"create_entity\":\"@.capitalize:{'words.generated.skapa'} {entity}\",\"edit_entity\":\"@:{'words.generated.redigera'} {entity}\",\"delete_entity\":\"@.capitalize:{'words.generated.ta'} @:{'words.generated.bort'} {entity}\",\"confirm_delete_entity\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.ta'} @:{'words.generated.bort'} {entity}?\",\"field_required\":\"{field} @:{'words.generated.kravs'}\",\"no_entity_available\":\"@.capitalize:{'words.generated.inga'} {entity} @:{'words.generated.tillgangliga'}.\"},\"limited_backoffice\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.title'}\",\"subtitle\":\"@:{'templates.generated.compat.limited_backoffice.subtitle'}\",\"department\":\"@:{'templates.generated.compat.limited_backoffice.department'}\",\"select_department\":\"@:{'templates.generated.compat.limited_backoffice.select_department'}\",\"loading\":\"@:{'templates.generated.compat.limited_backoffice.loading'}\",\"no_departments\":\"@:{'templates.generated.compat.limited_backoffice.no_departments'}\",\"cancel\":\"@:{'templates.generated.compat.limited_backoffice.cancel'}\",\"nav\":{\"prices\":\"@:{'templates.generated.compat.limited_backoffice.nav.prices'}\",\"customer_pricing\":\"@:{'templates.generated.compat.limited_backoffice.nav.customer_pricing'}\",\"employees\":\"@:{'templates.generated.compat.limited_backoffice.nav.employees'}\"},\"forbidden\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.forbidden.title'}\",\"department\":\"@:{'templates.generated.compat.limited_backoffice.forbidden.department'}\"},\"prices\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.prices.title'}\",\"save\":\"@:{'templates.generated.compat.limited_backoffice.prices.save'}\",\"saved\":\"@:{'templates.generated.compat.limited_backoffice.prices.saved'}\",\"autosave_saving\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_saving'}\",\"autosave_pending\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_pending'}\",\"autosave_saved\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_saved'}\",\"product\":\"@:{'templates.generated.compat.limited_backoffice.prices.product'}\",\"price\":\"@:{'templates.generated.compat.limited_backoffice.prices.price'}\",\"price_required\":\"@:{'templates.generated.compat.limited_backoffice.prices.price_required'}\",\"setup_required_title\":\"@:{'templates.generated.compat.limited_backoffice.prices.setup_required_title'}\",\"setup_required_message\":\"@:{'templates.generated.compat.limited_backoffice.prices.setup_required_message'}\",\"no_products\":\"@:{'templates.generated.compat.limited_backoffice.prices.no_products'}\"},\"employees\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.employees.title'}\",\"subtitle\":\"@:{'templates.generated.compat.limited_backoffice.employees.subtitle'}\",\"create_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.create_title'}\",\"edit_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.edit_title'}\",\"name\":\"@:{'templates.generated.compat.limited_backoffice.employees.name'}\",\"email\":\"@:{'templates.generated.compat.limited_backoffice.employees.email'}\",\"user_id\":\"@:{'templates.generated.compat.limited_backoffice.employees.user_id'}\",\"phone\":\"@:{'templates.generated.compat.limited_backoffice.employees.phone'}\",\"phone_validation\":\"@:{'templates.generated.compat.limited_backoffice.employees.phone_validation'}\",\"country_codes\":{\"denmark\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.denmark'}\",\"sweden\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.sweden'}\",\"norway\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.norway'}\",\"finland\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.finland'}\"},\"password\":\"@:{'templates.generated.compat.limited_backoffice.employees.password'}\",\"password_create_help\":\"@:{'templates.generated.compat.limited_backoffice.employees.password_create_help'}\",\"password_update_help\":\"@:{'templates.generated.compat.limited_backoffice.employees.password_update_help'}\",\"role\":\"@:{'templates.generated.compat.limited_backoffice.employees.role'}\",\"departments\":\"@:{'templates.generated.compat.limited_backoffice.employees.departments'}\",\"department_required\":\"@:{'templates.generated.compat.limited_backoffice.employees.department_required'}\",\"validation\":\"@:{'templates.generated.compat.limited_backoffice.employees.validation'}\",\"save\":\"@:{'templates.generated.compat.limited_backoffice.employees.save'}\",\"created\":\"@:{'templates.generated.compat.limited_backoffice.employees.created'}\",\"saved\":\"@:{'templates.generated.compat.limited_backoffice.employees.saved'}\",\"deactivated\":\"@:{'templates.generated.compat.limited_backoffice.employees.deactivated'}\",\"include_inactive\":\"@:{'templates.generated.compat.limited_backoffice.employees.include_inactive'}\",\"empty\":\"@:{'templates.generated.compat.limited_backoffice.employees.empty'}\",\"status\":\"@:{'templates.generated.compat.limited_backoffice.employees.status'}\",\"actions\":\"@:{'templates.generated.compat.limited_backoffice.employees.actions'}\",\"active\":\"@:{'templates.generated.compat.limited_backoffice.employees.active'}\",\"inactive\":\"@:{'templates.generated.compat.limited_backoffice.employees.inactive'}\",\"edit\":\"@:{'templates.generated.compat.limited_backoffice.employees.edit'}\",\"deactivate\":\"@:{'templates.generated.compat.limited_backoffice.employees.deactivate'}\",\"login_link\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link'}\",\"login_link_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_title'}\",\"login_link_qr_alt\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_qr_alt'}\",\"login_link_url\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_url'}\",\"copy_login_link\":\"@:{'templates.generated.compat.limited_backoffice.employees.copy_login_link'}\",\"login_link_copied\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_copied'}\"},\"roles\":{\"viewer\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.viewer.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.viewer.description'}\"},\"cashier\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.cashier.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.cashier.description'}\"},\"booking_coordinator\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.booking_coordinator.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.booking_coordinator.description'}\"},\"operations_lead\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.operations_lead.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.operations_lead.description'}\"},\"department_admin\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.department_admin.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.department_admin.description'}\"}},\"errors\":{\"load_departments\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_departments'}\",\"load_prices\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_prices'}\",\"save_prices\":\"@:{'templates.generated.compat.limited_backoffice.errors.save_prices'}\",\"load_employees\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}\",\"save_employee\":\"@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}\",\"deactivate_employee\":\"@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}\",\"generate_employee_login_link\":\"@:{'templates.generated.compat.limited_backoffice.errors.generate_employee_login_link'}\"},\"role_permissions\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.title'}\",\"tooltip\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.tooltip'}\",\"intro\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.intro'}\",\"scope\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.scope'}\",\"selected\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.selected'}\",\"close\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.close'}\",\"unavailable\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.unavailable'}\",\"groups\":{\"account\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.account'}\",\"orders\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.orders'}\",\"products\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.products'}\",\"customers\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.customers'}\",\"vehicles\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.vehicles'}\",\"attachments\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.attachments'}\",\"scanner\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.scanner'}\",\"bookings\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.bookings'}\",\"time_bookings\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.time_bookings'}\",\"reports\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.reports'}\",\"limited_backoffice\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}\",\"unknown\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.unknown'}\"},\"capabilities\":{\"sign_in\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}\"},\"view_own_permissions\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}\"},\"view_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}\"},\"create_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}\"},\"edit_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}\"},\"delete_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}\"},\"view_order_items\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}\"},\"create_order_items\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}\"},\"update_order_lines\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}\"},\"remove_order_lines\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}\"},\"charge_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}\"},\"complete_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.complete_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.complete_orders.description'}\"},\"view_product_catalog\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_catalog.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_catalog.description'}\"},\"view_product_recommendations\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_recommendations.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_recommendations.description'}\"},\"search_customers\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_customers.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_customers.description'}\"},\"view_customer_details\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_details.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_details.description'}\"},\"view_customer_notes\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_notes.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_notes.description'}\"},\"add_customer_notes\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_customer_notes.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_customer_notes.description'}\"},\"view_customer_flags\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_flags.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_flags.description'}\"},\"search_vehicles\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_vehicles.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_vehicles.description'}\"},\"view_vehicle_matches\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_matches.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_matches.description'}\"},\"view_vehicle_history\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_history.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_history.description'}\"},\"view_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_attachments.description'}\"},\"add_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_order_attachments.description'}\"},\"download_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.download_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.download_order_attachments.description'}\"},\"view_plate_scans\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_plate_scans.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_plate_scans.description'}\"},\"view_department_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}\"},\"view_own_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}\"},\"update_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}\"},\"create_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}\"},\"mark_bookings_complete\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}\"},\"send_booking_confirmations\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}\"},\"view_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}\"},\"create_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}\"},\"edit_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}\"},\"view_order_statistics\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}\"},\"view_booking_statistics\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}\"},\"open_limited_backoffice\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}\"},\"manage_department_prices\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}\"},\"view_customer_pricing\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_pricing.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_pricing.description'}\"},\"manage_customer_pricing\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_customer_pricing.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_customer_pricing.description'}\"},\"manage_employee_access\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}\"},\"unknown\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}\"}}}},\"redirect\":{\"mobile_department_auto_select\":{\"manual_button\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.avdelning'} manuellt\",\"manual_title\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.din'} @:{'words.generated.avdelning'}\",\"manual_loading\":\"@:{'words.generated.laddar'} @:{'words.generated.avdelningar'}...\",\"use_department\":\"@.capitalize:{'words.generated.valj'} {name}\"}},\"replication\":{\"host_targets\":{\"database\":\"@:{'words.replication.services.database'}-@:{'words.replication.host'}\",\"redis\":\"@:{'words.replication.services.redis'}-@:{'words.replication.host'}\",\"minio\":\"@:{'words.replication.services.minio'}-@:{'words.replication.host'}\"},\"host_mentions\":{\"primary_database\":\"@:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}-@:{'words.replication.host'}@:{'words.replication.host_definite_suffix'}\",\"redis\":\"@:{'words.replication.services.redis'}-@:{'words.replication.host'}@:{'words.replication.host_definite_suffix'}\",\"minio\":\"@:{'words.replication.services.minio'}-@:{'words.replication.host'}@:{'words.replication.host_definite_suffix'}\"},\"add_host\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} {host}\",\"register_host_when_reachable\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} {host} @:{'words.generated.i'} @:{'words.generated.superuser'}-@:{'words.generated.granssnittet'} @:{'words.generated.nar'} @:{'words.replication.article.host_mention'} @:{'words.generated.kan'} @:{'words.generated.nas'}.\",\"register_host_when_reachable_with_space_requirement\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} {host} @:{'words.generated.i'} @:{'words.generated.superuser'}-@:{'words.generated.granssnittet'} @:{'words.generated.nar'} @:{'words.replication.article.host_mention'} @:{'words.generated.kan'} @:{'words.generated.nas'}. Provisionering @:{'words.generated.kraver'} ledigt utrymme motsvarande källbucketarna plus 20%.\"},\"generated\":{\"compat\":{\"2fa\":{\"back_to_login\":\"@:{'words.generated.tillbaka'} @:{'words.generated.till'} @:{'words.generated.inloggning'}\",\"code_label\":\"@.capitalize:{'words.generated.verifieringskod'}\",\"description\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.ett'} @:{'words.generated.extra'} säkerhetslager @:{'words.generated.pa'} @:{'words.generated.ditt'} @:{'words.generated.konto'} @:{'words.generated.genom'} @:{'words.generated.att'} kräva @:{'words.replication.host_definite_suffix'} @:{'words.generated.verifieringskod'} @:{'words.generated.vid'} @:{'words.generated.inloggning'}.\",\"disable_confirm\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.inaktivera'} @:{'words.generated.tvafaktorsautentisering'}? @.capitalize:{'words.generated.detta'} @:{'words.generated.gor'} @:{'words.generated.ditt'} @:{'words.generated.konto'} @:{'words.generated.mindre'} @:{'words.generated.sakert'}.\",\"disable_error_title\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.inaktivera'}\",\"disable_title\":\"@.capitalize:{'words.generated.inaktivera'} @:{'words.generated.tvafaktorsautentisering'}\",\"disabled_message\":\"@.capitalize:{'words.generated.tvafaktorsautentisering'} @:{'words.generated.har'} inaktiverats @:{'words.generated.for'} @:{'words.generated.ditt'} @:{'words.generated.konto'}.\",\"disabled_title\":\"@.capitalize:{'words.generated.tvafaktorsautentisering'} @:{'words.generated.inaktiverad'}\",\"enable_button\":\"@.capitalize:{'words.generated.aktivera'} @:{'words.generated.tvafaktorsautentisering'}\",\"enabled_message\":\"@.capitalize:{'words.generated.ditt'} @:{'words.generated.konto'} @:{'words.generated.ar'} @:{'words.generated.nu'} @:{'words.generated.skyddat'} @:{'words.generated.med'} @:{'words.generated.tvafaktorsautentisering'}.\",\"enabled_title\":\"@.capitalize:{'words.generated.tvafaktorsautentisering'} @:{'words.generated.aktiverad'}\",\"enter_code\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.din'} @:{'words.generated.verifieringskod'}\",\"invalid_code\":\"@.capitalize:{'words.generated.ange'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.giltig'} 6-siffrig @:{'words.generated.kod'}.\",\"setup_error_title\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.misslyckades'}\",\"setup_manual\":\"@.capitalize:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.inte'} @:{'words.generated.skanna'}? @.capitalize:{'words.generated.ange'} @:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.koden'} manuellt:\",\"setup_step1\":\"@.capitalize:{'words.generated.skanna'} @:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.qr'}-@:{'words.generated.koden'} @:{'words.generated.med'} @:{'words.generated.din'} @:{'words.generated.autentiseringsapp'} (@:{'words.generated.google'} Authenticator, Authy osv.):\",\"setup_step2\":\"@.capitalize:{'words.generated.ange'} @:{'words.replication.article.host_mention'} 6-@:{'words.generated.siffriga'} @:{'words.generated.koden'} @:{'words.generated.fran'} autentiseringsappen @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.verifiera'}:\",\"setup_title\":\"@.capitalize:{'words.generated.konfigurera'} @:{'words.generated.tvafaktorsautentisering'}\",\"status_disabled_desc\":\"@.capitalize:{'words.generated.aktivera'} @:{'words.generated.tvafaktorsautentisering'} @:{'words.generated.for'} @:{'words.generated.battre'} @:{'words.generated.sakerhet'}.\",\"status_disabled\":\"@.capitalize:{'words.generated.tvafaktorsautentisering'} @:{'words.generated.ar'} @:{'words.generated.inaktiverad'}\",\"status_enabled_desc\":\"@.capitalize:{'words.generated.ditt'} @:{'words.generated.konto'} @:{'words.generated.ar'} @:{'words.generated.skyddat'} @:{'words.generated.med'} @:{'words.generated.ett'} @:{'words.generated.extra'} verifieringssteg.\",\"status_enabled\":\"@.capitalize:{'words.generated.tvafaktorsautentisering'} @:{'words.generated.ar'} @:{'words.generated.aktiverad'}\",\"title\":\"@:{'templates.generated.compat.settings.two_factor'}\",\"verification_success\":\"Verifiering @:{'words.generated.lyckades'}!\",\"verify_button\":\"@.capitalize:{'words.generated.verifiera'}\",\"verify_description\":\"@.capitalize:{'words.generated.ange'} @:{'words.replication.article.host_mention'} 6-@:{'words.generated.siffriga'} @:{'words.generated.koden'} @:{'words.generated.fran'} @:{'words.generated.din'} @:{'words.generated.autentiseringsapp'}.\",\"verify_title\":\"Tvåfaktorsverifiering\"},\"about_us\":{\"solutions\":{\"customer\":{\"app_item1\":\"@.capitalize:{'words.generated.hitta'} @:{'words.generated.narmaste'} @:{'words.generated.tvatthall'}\",\"app_item2\":\"@.capitalize:{'words.generated.anvand'} @:{'words.generated.sjalvtvatt'} @:{'words.generated.utanfor'} @:{'words.generated.bemannade'} @:{'words.generated.oppettider'}\",\"app_item3\":\"@.capitalize:{'words.generated.boka'} @:{'words.generated.tvatt'} @:{'words.generated.med'} @:{'words.generated.referensnummer'}\",\"app_item4\":\"@.capitalize:{'words.generated.tjana'} @:{'words.generated.lojalitetspoang'}\",\"app_title\":\"@.capitalize:{'words.generated.app'} @:{'words.generated.for'} @:{'words.generated.forare'}\",\"portal_item1\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.och'} @:{'words.generated.hantera'} @:{'words.generated.fordon'}\",\"portal_item3\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.data'} @:{'words.generated.for'} @:{'words.generated.historiska'} @:{'words.generated.tvattar'}\",\"portal_title\":\"@:{'words.generated.kundportal'} @:{'words.generated.for'} @:{'words.generated.disponenter'} @:{'words.generated.och'} @:{'words.generated.akare'}:\",\"title\":\"@.capitalize:{'words.generated.digitala'} @:{'words.generated.losningar'} @:{'words.generated.for'} tvätthallskunder\"},\"operator\":{\"book_demo\":\"@.capitalize:{'words.generated.boka'} demo\",\"module_item1\":\"Ställ @:{'words.generated.in'} @:{'words.generated.priser'}, @:{'words.generated.produkter'}, @:{'words.generated.oppettider'}, @:{'words.generated.anstallda'}\",\"module_item3\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.nya'} @:{'words.generated.kunder'} @:{'words.generated.med'} tillhörande registreringsskyltar\",\"module_title\":\"Styrmodul @:{'words.generated.for'} @:{'words.generated.tvatthallsoperatorer'}:\",\"pos_item1\":\"@.capitalize:{'words.generated.registrera'} @:{'words.generated.fordon'} @:{'words.generated.snabbt'} @:{'words.generated.genom'} @:{'words.generated.att'} @:{'words.generated.skanna'} @:{'words.generated.registreringsskylt'}\",\"pos_item2\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.bilder'} @:{'words.generated.och'} @:{'words.generated.referensnummer'} @:{'words.generated.till'} @:{'words.generated.registrering'}\",\"pos_item3\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.bokningar'} @:{'words.generated.med'} @:{'words.generated.ett'} klick (@:{'words.generated.inkl'}. @:{'words.generated.automatisk'} generering @:{'words.generated.av'} @:{'words.generated.tvattcertifikat'})\",\"pos_item4\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.tvattlogg'} @:{'words.generated.och'} @:{'words.generated.bokningar'}\",\"pos_item5\":\"@.capitalize:{'words.generated.se'} dashboards @:{'words.generated.for'} @:{'words.generated.avdelningens'} prestanda\",\"pos_title\":\"Registrerings- @:{'words.generated.och'} @:{'words.generated.kassasystem'} @:{'words.generated.for'} @:{'words.generated.fordonstvattare'}\",\"title\":\"@.capitalize:{'words.generated.digitala'} @:{'words.generated.losningar'} @:{'words.generated.for'} @:{'words.generated.tvatthallsoperatorer'}\"},\"title\":\"Våra @:{'words.generated.losningar'}\"},\"team\":{\"jeppe\":{\"role\":\"@:{'words.generated.it'}-chef\"},\"mads\":{\"role\":\"VD\"},\"mikkel\":{\"role1\":\"Grundare\",\"role2\":\"Affärsutveckling\"},\"title\":\"Team\"},\"vision\":{\"developed_title\":\"@.capitalize:{'words.generated.darfor'} @:{'words.generated.har'} @:{'words.generated.vi'} utvecklat:\",\"item1\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.portal'} @:{'words.generated.for'} @:{'words.generated.akare'} @:{'words.generated.och'} @:{'words.generated.disponenter'} @:{'words.generated.dar'} @:{'words.generated.de'} @:{'words.generated.kan'} @:{'words.generated.hantera'} @:{'words.generated.allt'} @:{'words.generated.om'} sina @:{'words.generated.tvattar'}\",\"item2\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.app'} @:{'words.generated.for'} @:{'words.generated.forare'} @:{'words.generated.dar'} @:{'words.generated.de'} @:{'words.generated.kan'} @:{'words.generated.boka'}, @:{'words.generated.tvatta'} @:{'words.generated.och'} @:{'words.generated.tjana'} @:{'words.generated.lojalitetspoang'}\",\"item3\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.portal'} @:{'words.generated.for'} tvättoperatörer @:{'words.generated.dar'} @:{'words.generated.de'} @:{'words.generated.kan'} @:{'words.generated.hantera'} @:{'words.generated.alla'} aspekter @:{'words.generated.av'} @:{'words.generated.att'} driva @:{'words.replication.host_definite_suffix'} @:{'words.generated.tvatthall'}\",\"item4\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.app'} @:{'words.generated.for'} @:{'words.generated.fordonstvattare'} @:{'words.generated.dar'} @:{'words.generated.de'} @:{'words.generated.kan'} @:{'words.generated.registrera'} @:{'words.generated.fordon'}, @:{'words.generated.skapa'} @:{'words.generated.tvattcertifikat'}, @:{'words.generated.ta'} @:{'words.generated.emot'} @:{'words.generated.betalningar'} etc.\",\"paragraph1\":\"@.capitalize:{'words.generated.sedan'} 2023 @:{'words.generated.har'} teamet @:{'words.generated.bakom'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} arbetat @:{'words.generated.mot'} @:{'words.generated.visionen'} @:{'words.generated.att'} @:{'words.generated.skapa'} @:{'words.generated.ett'} @:{'words.generated.system'} @:{'words.generated.dar'} @:{'words.generated.alla'} @:{'words.generated.relevanta'} arbetsflöden @:{'words.generated.for'} @:{'words.generated.lastbilstvatt'} digitaliseras @:{'words.generated.och'} sammankopplas @:{'words.generated.for'} @:{'words.generated.att'} underlätta vardagen @:{'words.generated.for'} @:{'words.generated.alla'} @:{'words.generated.intressenter'} – @:{'words.generated.akare'}, @:{'words.generated.disponenter'}, @:{'words.generated.forare'}, @:{'words.generated.tvatthallsoperatorer'} @:{'words.generated.och'} @:{'words.generated.fordonstvattare'}.\",\"paragraph2\":\"@.capitalize:{'words.generated.vi'} @:{'words.generated.driver'} Danmarks största kedja @:{'words.generated.for'} @:{'words.generated.lastbilstvatt'} @:{'words.generated.och'} @:{'words.generated.har'} @:{'words.generated.darfor'} djup insikt @:{'words.generated.i'} branschen. @.capitalize:{'words.generated.det'} innebär @:{'words.generated.att'} @:{'words.generated.vi'} @:{'words.generated.kan'} utveckla @:{'words.generated.it'}-@:{'words.generated.losningar'} @:{'words.generated.som'} tillfredsställer behoven @:{'words.generated.hos'} @:{'words.generated.alla'} @:{'words.generated.intressenter'}\",\"title\":\"@.capitalize:{'words.generated.visionen'} @:{'words.generated.bakom'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}\"}},\"admin\":{\"bookings\":{\"certificate_overview\":{\"subtitle\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.tvattcertifikat'}\",\"title\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.tvattcertifikat'}\"},\"complete\":{\"subtitle\":\"@:{'words.generated.slutfor'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.bokning'}\",\"title\":\"@:{'templates.generated.compat.bookings.complete_booking'}\"},\"legacy\":{\"subtitle\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.bokningar'} (@:{'words.generated.aldre'})\",\"title\":\"@.capitalize:{'words.generated.bokningar'} (@:{'words.generated.aldre'})\"}},\"daily_report\":{\"navigation\":{\"title\":\"Navigation\"},\"object\":{\"subtitle\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.dagsrapportdetaljer'}\",\"title\":\"@.capitalize:{'words.generated.dagsrapportdetaljer'}\"},\"product_sales\":{\"subtitle_suffix\":\"@:{'words.generated.produktforsaljning'}\",\"title\":\"@.capitalize:{'words.generated.produktforsaljning'}\"},\"product_targets\":{\"cancel_aria\":\"Avbryt mål\",\"edit_aria\":\"Redigera målprocent\",\"input_label\":\"Målprocent\",\"save_aria\":\"Spara mål\",\"save_error\":\"Målet kunde inte sparas.\",\"validation_range\":\"Målprocenten måste vara mellan 0 och 100.\"},\"reports\":{\"bookings\":{\"completed_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.slutforda'}\",\"possible_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.mojliga'}\"},\"night_washes\":{\"chart_title\":\"@:{'words.generated.dygntvatt'} @:{'words.generated.per'} @:{'words.generated.dag'}\",\"subtitle\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.tvattar'} @:{'words.generated.utanfor'} @:{'words.generated.oppettider'}\",\"title\":\"@:{'words.generated.dygntvatt'}\",\"warning_missing_opening_hours\":\"@.capitalize:{'words.generated.oppettider'} @:{'words.generated.saknas'} @:{'words.generated.for'}: {departments}\"},\"products_sold\":{\"possible_sold\":\"@.capitalize:{'words.generated.mojliga'} @:{'words.generated.salda'}\",\"quantity_sold\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.salda'}\",\"sold\":\"Sold\",\"subtitle\":\"@:{'words.generated.salda'} @:{'words.generated.produkter'}\",\"title\":\"@.capitalize:{'words.generated.salda'} @:{'words.generated.produkter'}\"},\"revenue\":{\"possible_revenue\":\"Möjlig @:{'words.generated.intakt'}\"},\"transactions\":{\"possible_transactions\":\"@.capitalize:{'words.generated.mojliga'} @:{'words.generated.transaktioner'}\",\"subtitle\":\"@:{'words.generated.transaktioner'}\",\"title\":\"@.capitalize:{'words.generated.transaktioner'}\",\"transaction_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.transaktioner'}\"},\"washes\":{\"completed_washes\":\"@.capitalize:{'words.generated.slutforda'} @:{'words.generated.tvattar'}\",\"possible_washes\":\"@.capitalize:{'words.generated.mojliga'} @:{'words.generated.tvattar'}\",\"subtitle\":\"@:{'words.generated.tvattar'}\"},\"water_usage_per_wash\":{\"avg_water_usage\":\"@:{'words.generated.avg'}. @:{'words.generated.water'} @:{'words.generated.usage'} @:{'words.generated.per'} @:{'words.generated.wash'}\",\"subtitle\":\"@:{'words.generated.water'} @:{'words.generated.usage'} @:{'words.generated.per'} @:{'words.generated.wash'}\",\"title\":\"@.capitalize:{'words.generated.water'} @:{'words.generated.usage'} @:{'words.generated.per'} @:{'words.generated.wash'}\"},\"water_usage\":{\"subtitle\":\"@:{'words.generated.water'} @:{'words.generated.usage'}\",\"water_usage\":\"@.capitalize:{'words.generated.water'} @:{'words.generated.usage'}\"}},\"subtitle\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.dagens'} @:{'words.generated.rapport'}\",\"tabs\":{\"previous_report\":\"@.capitalize:{'words.generated.foregaende'} @:{'words.generated.rapport'}\",\"todays_report\":\"@.capitalize:{'words.generated.dagens'} @:{'words.generated.rapport'}\"},\"title\":\"Daily Report\",\"titles\":{\"operations\":\"Drift\",\"optional_products\":\"Valfria @:{'words.generated.produkter'}\"},\"today_form\":{\"title\":\"@.capitalize:{'words.generated.dagens'} @:{'words.generated.formular'}\"},\"todays_prefix\":\"@.capitalize:{'words.generated.dagens'}\",\"update_report\":\"Update @:{'words.generated.report'}\",\"update_todays_report\":\"@.capitalize:{'words.generated.uppdatera'} @:{'words.generated.dagens'} @:{'words.generated.rapport'}\"},\"debug\":{\"reader_test\":{\"subtitle\":\"Testa @:{'words.generated.lasarens'} @:{'words.generated.tillforlitlighet'}\",\"title\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.av'} @:{'words.generated.lasarens'} @:{'words.generated.tillforlitlighet'}\"}},\"department_modules\":{\"bookings\":{\"description\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.bookings'}\"},\"daily_report\":{\"description\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.daily'} @:{'words.generated.report'}\"},\"goals\":{\"description\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.goals'}\"},\"pos\":{\"description\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.the'} @:{'words.generated.pos'} @:{'words.generated.system'}\"},\"self_wash\":{\"description\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.self'} @:{'words.generated.wash'}\",\"disabled\":\"@.capitalize:{'words.generated.sjalvtvatt'} @:{'words.generated.ar'} @:{'words.generated.nu'} @:{'words.generated.inaktiverad'}\",\"enabled\":\"@.capitalize:{'words.generated.sjalvtvatt'} @:{'words.generated.ar'} @:{'words.generated.nu'} @:{'words.generated.aktiverad'}\",\"update_error\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.uppdatera'} @:{'words.generated.status'} @:{'words.generated.for'} @:{'words.generated.sjalvtvatt'}\"}},\"errors\":{\"select_department\":\"@.capitalize:{'words.generated.valj'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.avdelning'} @:{'words.generated.som'} @:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.atkomst'} @:{'words.generated.till'}. @.capitalize:{'words.generated.om'} @:{'words.generated.du'} tror @:{'words.generated.att'} @:{'words.generated.detta'} @:{'words.generated.ar'} @:{'words.generated.ett'} @:{'words.generated.fel'}, @:{'words.generated.kontakta'} @:{'words.generated.support'}.\"},\"goals\":{\"form\":{\"edit_title\":\"@:{'words.generated.edit'} @.capitalize:{'words.generated.goal'}\",\"target_duration_every\":{\"help\":\"@.capitalize:{'words.generated.required'} @:{'words.generated.for_2'} @:{'words.generated.weeks'}, @:{'words.generated.months'}, @:{'words.generated.and'} @:{'words.generated.years'}.\",\"label\":\"Every\",\"placeholder\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 1\"},\"target_duration\":{\"help\":\"@:{'words.generated.choose'} how @:{'words.generated.target'} values @:{'words.generated.should'} @:{'words.generated.be'} evaluated.\",\"label\":\"@.capitalize:{'words.generated.target'} @:{'words.generated.duration'}\",\"modes\":{\"entire_duration\":\"@.capitalize:{'words.generated.entire'} @:{'words.generated.duration'}\",\"legacy\":\"@.capitalize:{'words.generated.daily'} based @:{'words.generated.on'} @:{'words.generated.entire'} @:{'words.generated.duration'} (@:{'words.generated.from'} @:{'words.generated.start'} @:{'words.generated.to'} @:{'words.generated.end'})\",\"months\":\"@.capitalize:{'words.generated.months'}\",\"weeks\":\"@.capitalize:{'words.generated.weeks'}\",\"years\":\"@.capitalize:{'words.generated.years'}\"}},\"title\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.mal'}\",\"validation\":{\"date_range_invalid\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.and'} @:{'words.generated.end'} dates @:{'words.generated.are'} @:{'words.generated.invalid'}.\",\"departments_required\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.at'} @:{'words.generated.least'} @:{'words.generated.one'} @:{'words.generated.department'}.\",\"target_duration_every_required\":\"@:{'words.generated.enter'} @:{'words.generated.a'} cadence @:{'words.generated.value'} @:{'words.generated.of'} @:{'words.generated.at'} @:{'words.generated.least'} 1.\",\"target_required\":\"@:{'words.generated.enter'} @:{'words.generated.a'} @:{'words.generated.valid'} @:{'words.generated.target'} @:{'words.generated.value'}.\"}},\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.avdelningens'} @:{'words.generated.mal'}\",\"test_alert\":{\"department_id\":\"@.capitalize:{'words.generated.department'} @.upper:{'words.generated.id'} @:{'words.generated.for_2'} @:{'words.generated.slack'} @:{'words.generated.webhook'}\",\"destination\":\"Override @:{'words.generated.destination'}\",\"email_to\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.recipient'}\",\"error\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.send'} @:{'words.generated.test'} @:{'words.generated.alert'}.\",\"send\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.test'} @:{'words.generated.alert'}\",\"slack_help\":\"@:{'words.generated.provide'} @:{'words.generated.a'} @:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'} @:{'words.generated.or'} @:{'words.generated.a'} @:{'words.generated.department'} @.upper:{'words.generated.id'}.\",\"slack_webhook\":\"@:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'}\",\"sms_help\":\"@.capitalize:{'words.generated.use'} comma @:{'words.generated.or'} semicolon @:{'words.generated.to'} @:{'words.generated.separate'} @:{'words.generated.phone'} @:{'words.generated.numbers'}.\",\"sms_to\":\"@:{'words.generated.sms'} recipients\",\"subject\":\"@.capitalize:{'words.generated.email'} subject (@:{'words.generated.optional'})\",\"success\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.alert'} @:{'words.generated.sent'} @:{'words.generated.via'} {destination}.\",\"validation\":{\"email_required\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.recipient'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for_2'} @.upper:{'words.generated.email'} @:{'words.generated.destination'}.\",\"invalid_destination\":\"Please @:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.valid'} @:{'words.generated.destination'}.\",\"slack_target_required\":\"@:{'words.generated.provide'} @:{'words.generated.a'} @:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'} @:{'words.generated.or'} @:{'words.generated.department'} @.upper:{'words.generated.id'} @:{'words.generated.for_2'} @.upper:{'words.generated.slack'} @:{'words.generated.destination'}.\",\"sms_required\":\"@.capitalize:{'words.generated.at'} @:{'words.generated.least'} @:{'words.generated.one'} @:{'words.generated.sms'} @:{'words.generated.recipient'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for_2'} @:{'words.generated.sms'} @:{'words.generated.destination'}.\"}},\"title\":\"@.capitalize:{'words.generated.goals'}\"},\"intranet\":{\"events\":{\"title\":\"@.capitalize:{'words.generated.events'}\"},\"import_events\":{\"title\":\"@:{'words.generated.import'} @.capitalize:{'words.generated.events'}\"},\"subtitle\":\"@.capitalize:{'words.generated.avdelningens'} intranät\",\"title\":\"Intranet\"},\"notifications\":{\"sms_activated_description\":\"Aktiverade @:{'words.generated.telefonnummer'} @:{'words.generated.for'} @:{'words.generated.sms'}-@:{'words.generated.aviseringar'} @:{'words.generated.nar'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kund'} @:{'words.generated.gar'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.bokning'}.\",\"sms_overview\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelningens'} @:{'words.generated.telefonnummer'} @:{'words.generated.for'} @:{'words.generated.sms'}-@:{'words.generated.aviseringar'}.\",\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.aviseringar'}\"},\"order_bookings\":{\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.orderbokningar'}\",\"title\":\"@.capitalize:{'words.generated.orderbokningar'}\"},\"overview\":{\"reports\":{\"title\":\"@.capitalize:{'words.generated.reports'}\"},\"subtitle\":\"Avdelningsäversikt\"},\"pos\":{\"action_buttons\":{\"add_customer_desc\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.kund'} @:{'words.generated.i'} @:{'words.generated.systemet'}\",\"cancel_desc\":\"@:{'words.generated.stang'} @:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} rutan @:{'words.generated.utan'} @:{'words.generated.att'} @:{'words.generated.spara'} @:{'words.generated.andringar'}\",\"close_desc\":\"@:{'words.generated.close'} @:{'words.generated.this'} popup\",\"confirm_desc\":\"@:{'words.generated.confirm'} @:{'words.generated.and'} @:{'words.generated.save'} @:{'words.generated.changes'}\",\"edit_reference\":\"@:{'words.generated.redigera'} @:{'words.generated.referens'}\",\"edit_reference_desc\":\"@:{'words.generated.redigera'} @:{'words.generated.referens'} @:{'words.generated.for'} @:{'words.generated.denna'} @:{'words.generated.transaktion'}\",\"select_customer_desc\":\"@.capitalize:{'words.generated.valj'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kund'} @:{'words.generated.for'} @:{'words.generated.denna'} @:{'words.generated.transaktion'}\"},\"add_customer\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.customer'}\",\"add_more_items\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.more'} @:{'words.generated.items'}\",\"attachment\":\"@.capitalize:{'words.generated.bilaga'}\",\"attachments\":\"@:{'words.generated.bilagor'}\",\"attachments_add\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.bilaga'}\",\"attachments_no_preview\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.forhandsvisning'} @:{'words.generated.tillganglig'} @:{'words.generated.for'} @:{'words.generated.denna'} filtyp.\",\"attachments_office_preview_unavailable\":\"@.capitalize:{'words.generated.forhandsvisning'} @:{'words.generated.ar'} @:{'words.generated.inte'} @:{'words.generated.tillganglig'} @:{'words.generated.for'} Office-dokument. @.capitalize:{'words.generated.ladda'} @:{'words.generated.ner'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.visa'}.\",\"attachments_upload_action\":\"Upload\",\"attachments_upload_description\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.upp'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.fil'} @:{'words.generated.som'} @:{'words.generated.bilaga'} @:{'words.generated.till'} @:{'words.generated.denna'} @:{'words.generated.transaktion'}.\",\"attachments_upload_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} nar @:{'words.replication.article.host_mention'} @:{'words.generated.bifogade'} @:{'words.generated.filen'} @:{'words.generated.laddades'} @:{'words.generated.upp'}.\",\"buttons\":{\"delete_all\":\"@:{'words.generated.delete'} @:{'words.generated.all'}\",\"go_back\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.back'}\",\"please_wait\":\"@.capitalize:{'words.generated.vanta'}...\",\"print_invoice\":\"@:{'words.generated.skriv'} @:{'words.generated.ut'} @:{'words.generated.faktura'}\"},\"cancel\":\"Cancel\",\"cancel_booking_confirm\":\"@:{'words.generated.ar'} @:{'words.generated.du'} söker @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} avbryta bokningenä\",\"cart\":\"@.capitalize:{'words.generated.cart'}\",\"company_phone\":\"Färetagstelefon\",\"contact_email\":\"@.capitalize:{'words.generated.kontakt'}-@:{'words.generated.e'}-@:{'words.generated.post'}\",\"contact_phone\":\"Kontakttelefon\",\"ean\":\"EAN\",\"created_by\":\"@.capitalize:{'words.generated.skapad'} @:{'words.generated.av'}\",\"customer_conflict\":{\"help_text\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.angivna'} @:{'words.generated.registreringsnumret'} @:{'words.generated.tillhor'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.annan'} @:{'words.generated.sparad'} @:{'words.generated.kund'}. @:{'words.generated.valj_2'} @:{'words.generated.om'} @:{'words.replication.article.host_mention'} @:{'words.generated.valda'} @:{'words.generated.kunden'} @:{'words.generated.ska'} @:{'words.generated.behallas'} @:{'words.generated.eller'} @:{'words.generated.om'} @:{'words.generated.bytet'} @:{'words.generated.ska'} @:{'words.generated.goras'} @:{'words.generated.till'} @:{'words.generated.fordonskunden'}.\",\"warning_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.valda'} @:{'words.generated.kunden'} @:{'words.generated.och'} @:{'words.generated.fordonskunden'} @:{'words.generated.matchar'} @:{'words.generated.inte'}.\"},\"details\":\"@.capitalize:{'words.generated.details'}\",\"drafts_assignment\":{\"button\":\"@:{'words.generated.assign'} @:{'words.generated.customer'}\",\"create_invoice_collection\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"customer_required\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.customer'} @:{'words.generated.to'} @:{'words.generated.view'} @:{'words.generated.invoice'} @:{'words.generated.collections'}.\",\"error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} assigning @:{'words.generated.the'} @:{'words.generated.customer'}.\",\"invoice_collection_empty\":\"@.capitalize:{'words.generated.no'} unbooked @:{'words.generated.invoice'} @:{'words.generated.collections'} @:{'words.generated.were'} @:{'words.generated.found'} @:{'words.generated.for_2'} @:{'words.generated.the'} @:{'words.generated.selected'} @:{'words.generated.customer'}.\",\"invoice_collection_label\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"invoice_collection_loading\":\"@:{'words.generated.loading'} @:{'words.generated.invoice'} @:{'words.generated.collections'}...\",\"invoice_collection_total\":\"@.capitalize:{'words.generated.total'} @:{'words.generated.net'} @:{'words.generated.amount'}\",\"new_collection_description\":\"@:{'words.generated.created'} @:{'words.generated.from'} @:{'words.generated.the'} drafts overview\",\"new_collection_name\":\"@:{'words.generated.manual'} @:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"recalculate_prices\":\"Recalculate @:{'words.generated.prices'} @:{'words.generated.with'} @:{'words.generated.customer'} @:{'words.generated.discounts'}\",\"recalculate_prices_help\":\"Applies @:{'words.generated.the'} @:{'words.generated.department'} @:{'words.generated.pricing'} @:{'words.generated.and'} @:{'words.generated.any'} @:{'words.generated.customer'} @:{'words.generated.discounts'} @:{'words.generated.to'} @:{'words.generated.all'} @:{'words.generated.order'} lines.\",\"search_customer_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.by'} @:{'words.generated.customer'} @:{'words.generated.name'} @:{'words.generated.or'} @:{'words.generated.customer'} @:{'words.generated.number'}\",\"selected_customer\":\"@.capitalize:{'words.generated.selected'} @:{'words.generated.customer'}\",\"subtitle\":\"@:{'words.generated.choose'} @:{'words.generated.the'} @:{'words.generated.customer'} @:{'words.generated.and'} @:{'words.generated.invoice'} @:{'words.generated.collection'} @:{'words.generated.to'} move @:{'words.generated.draft'} #{orderId} out @:{'words.generated.of'} @:{'words.generated.the'} @:{'words.generated.draft'} @:{'words.generated.customer'}.\",\"success\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.draft'} @:{'words.generated.customer'} @:{'words.generated.was'} assigned @:{'words.generated.successfully'}.\",\"title\":\"@:{'words.generated.assign'} @:{'words.generated.customer'} @:{'words.generated.to'} @:{'words.generated.draft'}\"},\"duplicate_order_warning\":\"@:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.soker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.detta'} @:{'words.generated.inte'} @:{'words.generated.redan'} @:{'words.generated.har'} skrivitsä Potentiella @:{'words.generated.dubbletter'} @:{'words.generated.av'} @:{'words.generated.denna'} @:{'words.generated.order'} @:{'words.generated.har'} hittats. @.capitalize:{'words.generated.du'} @:{'words.generated.kan'} @:{'words.generated.fortsatta'} skriva @:{'words.generated.ordern'} @:{'words.generated.eller'} @:{'words.generated.visa'} @:{'words.generated.orderdetaljer'}.\",\"duplicates\":{\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.mojliga'} @:{'words.generated.dubbletter'}\"},\"enter_safety_seal_number\":\"@.capitalize:{'words.generated.ange'} säkerhetsfärseglingsnummer\",\"hide_order_details\":\"@:{'words.generated.dolj'} @:{'words.generated.orderdetaljer'}\",\"invoice_email\":\"@.capitalize:{'words.generated.faktura'}-@:{'words.generated.e'}-@:{'words.generated.post'}\",\"make\":\"Make\",\"model\":\"Model\",\"no_content_available\":\"@.capitalize:{'words.generated.inget'} @:{'words.generated.innehall'} @:{'words.generated.tillgangligt'}.\",\"no_plates_found\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.registreringsnummer'} @:{'words.generated.hittades'}\",\"no_wash_certificate\":\"@.capitalize:{'words.generated.inget'} @:{'words.generated.tvattcertifikat'}\",\"not_found\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.found'}\",\"order_booking_selector\":{\"continue_without_booking\":\"@.capitalize:{'words.generated.fortsatt'} @:{'words.generated.utan'} @:{'words.generated.bokning'}\",\"help_text\":\"@.capitalize:{'words.generated.flera'} @:{'words.generated.vantande'} @:{'words.generated.bokningar'} @:{'words.generated.matchar'} @:{'words.generated.det'} @:{'words.generated.har_2'} @:{'words.generated.fordonet'}. @.capitalize:{'words.generated.valj'} rätt @:{'words.generated.bokning'} @:{'words.generated.eller'} @:{'words.generated.fortsatt'} @:{'words.generated.utan'} @:{'words.generated.bokning'}.\",\"title\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.bokning'}\"},\"order_note\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.note'}\",\"orders\":{\"subtitle\":\"@:{'templates.generated.compat.objects.orders.description'}\"},\"pay_with_stripe\":\"@:{'words.generated.betala'} @:{'words.generated.med'} @:{'words.generated.stripe'}\",\"po_number\":\"@:{'words.generated.po'}-@:{'words.generated.nummer'}\",\"price_changed_from\":\"@.capitalize:{'words.generated.price'} @:{'words.generated.changed'} @:{'words.generated.from'} {from} @:{'words.generated.dkk'} @:{'words.generated.to'} {to} @:{'words.generated.dkk'} / @:{'words.generated.unit'} ({total} @:{'words.generated.dkk'} @:{'words.generated.total'})\",\"recent_scan_details_empty\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.finns'} @:{'words.generated.inga'} @:{'words.generated.fordonsdetaljer'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} skanningen.\",\"recent_scan_details_error\":\"@.capitalize:{'words.generated.fordonsdetaljer'} @:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.laddas'}. @:{'words.generated.prova'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.annan'} skanning.\",\"recent_scan_details_loading\":\"@:{'words.generated.laddar'} @:{'words.generated.fordonsdetaljer'}...\",\"recent_scans\":\"@.capitalize:{'words.generated.recent'} @:{'words.generated.scans'}\",\"recent_scans_helper\":\"@.capitalize:{'words.generated.valj'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.registreringsskylt'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.visa'} @:{'words.generated.fordonsdetaljer'}.\",\"reference_cannot_be_empty\":\"@.capitalize:{'words.generated.referens'} @:{'words.generated.for'} @:{'words.generated.inte'} @:{'words.generated.vara'} tom\",\"reference_required_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.valda'} @:{'words.generated.kunden'} @:{'words.generated.kraver'} @:{'words.generated.ett'} @:{'words.generated.referensnummer'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.fortsatta'}. @.capitalize:{'words.generated.ange'} @:{'words.generated.ett'} @:{'words.generated.referensnummer'} @:{'words.generated.nedan'}:\",\"reference_required_title\":\"@.capitalize:{'words.generated.referensnummer'} @:{'words.generated.kravs'}\",\"reference_required_tooltip\":\"@.capitalize:{'words.generated.kunden'} @:{'words.generated.kraver'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.referens'}.\",\"safety_seal\":\"@.capitalize:{'words.generated.sakerhetsfarsegling'}\",\"scanned\":\"@.capitalize:{'words.generated.scanned'}\",\"scanner\":\"Scanner\",\"see_note\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.note'}\",\"see_reference\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.referens'}\",\"settings\":\"@.capitalize:{'words.generated.settings'}\",\"settings_wheel\":{\"add_flag\":\"Lagg @:{'words.generated.till'} flagga\",\"add_flag_order\":\"@.capitalize:{'words.generated.hela'} @:{'words.generated.ordern'}\",\"add_flag_order_customer\":\"Orderkund\",\"add_flag_order_item\":\"@.capitalize:{'words.generated.hela'} orderraden\",\"add_flag_order_item_notes\":\"@:{'words.generated.orderradens'} @:{'words.generated.anteckningar'}\",\"add_flag_order_item_price\":\"@:{'words.generated.orderradens'} @:{'words.generated.pris'}\",\"add_flag_order_item_quantity\":\"@:{'words.generated.orderradens'} @:{'words.generated.antal'}\",\"add_flag_order_item_reference\":\"@:{'words.generated.orderradens'} @:{'words.generated.referens'}\",\"add_flag_order_notes\":\"Orderanteckningar\",\"add_flag_order_po\":\"Orderns @:{'words.generated.po'}-@:{'words.generated.nummer'}\",\"add_flag_order_reference\":\"Orderreferens\",\"add_flag_reason_placeholder\":\"@.capitalize:{'words.generated.orsak'} @:{'words.generated.till'} flaggan\",\"add_flag_reason_required\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.orsak'} kravs.\",\"add_flag_target\":\"@.capitalize:{'words.generated.valt'} element\",\"add_gate\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} grind\",\"add_relay\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} relä\",\"attach_wash_certificate\":\"Bifoga @:{'words.generated.tvattcertifikat'}\",\"attached_files\":\"@.capitalize:{'words.generated.bifogade'} @:{'words.generated.filer'}\",\"change_association\":\"@:{'words.generated.andra'} @:{'words.generated.koppling'}\",\"change_invoice_collection\":\"@:{'words.generated.andra'} @:{'words.generated.fakturasamling'}\",\"change_order\":\"@:{'words.generated.change'} {order}\",\"copy_link\":\"@:{'words.generated.copy'} @:{'words.generated.link'}\",\"delete_booking\":\"@:{'words.generated.delete'} @:{'words.generated.booking'}\",\"delete_user\":\"@:{'words.generated.delete'} @:{'words.generated.user'}\",\"download_invoice\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.ner'} @:{'words.generated.faktura'}\",\"edit_permissions\":\"@:{'words.generated.edit'} @:{'words.generated.permissions'}\",\"enter_password\":\"@:{'words.generated.enter'} @:{'words.generated.password'}\",\"error_changing_password\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.nar'} @:{'words.generated.losenordet'} ändrades.\",\"error_downloading_attachment\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.nar'} @:{'words.replication.article.host_mention'} @:{'words.generated.bifogade'} @:{'words.generated.filen'} @:{'words.generated.laddades'} @:{'words.generated.ner'}.\",\"flags_section\":\"Flaggor\",\"gates_section\":\"@.capitalize:{'words.generated.grindar'}\",\"link_copied\":\"@.capitalize:{'words.generated.link'} @:{'words.generated.copied'} @:{'words.generated.to'} clipboard\",\"login_as_customer\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.as'} @:{'words.generated.customer'}\",\"login_as_user\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.as'} @:{'words.generated.user'}\",\"login_as_user_qr\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.as'} @:{'words.generated.user'} (@:{'words.generated.qr'} @:{'words.generated.code'})\",\"no_actions_defined\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.atgarder'} definierade\",\"open_attached_file\":\"@:{'words.generated.open'} @:{'words.generated.attached'} @:{'words.generated.file'} #{id}\",\"open_fleet_landing\":\"@.capitalize:{'words.generated.oppna'} @:{'words.generated.gateway'}-@:{'words.generated.oversikt'}\",\"open_gates_tab\":\"@.capitalize:{'words.generated.oppna'} grindflik\",\"open_gateways_tab\":\"@.capitalize:{'words.generated.oppna'} @:{'words.generated.gateways'}-@:{'words.generated.flik'}\",\"open_hardware_workspace_lanes\":\"@.capitalize:{'words.generated.oppna'} hårdvaruarbetsyta (banor)\",\"open_legacy_gates\":\"@.capitalize:{'words.generated.oppna'} @:{'words.generated.aldre'} @:{'words.generated.grindar'}\",\"open_legacy_relays\":\"@.capitalize:{'words.generated.oppna'} @:{'words.generated.aldre'} @:{'words.generated.relaer'}\",\"open_legacy_self_serve\":\"@.capitalize:{'words.generated.oppna'} @:{'words.generated.aldre'} @:{'words.generated.self'}-@:{'words.generated.serve'}\",\"open_primary_gateway\":\"@.capitalize:{'words.generated.oppna'} primär @:{'words.generated.gateway'}\",\"open_relays_tab\":\"@.capitalize:{'words.generated.oppna'} reläflik\",\"open_studio\":\"@.capitalize:{'words.generated.oppna'} @:{'words.generated.studio'}\",\"password_changed\":\"@.capitalize:{'words.generated.password'} @:{'words.generated.changed'}\",\"password_changed_text\":\"@.capitalize:{'words.generated.losenordet'} @:{'words.generated.har'} ändrats.\",\"please_enter_password\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.ett'} @:{'words.generated.losenord'}\",\"relays_section\":\"@.capitalize:{'words.generated.relaer'}\",\"rules_section\":\"@.capitalize:{'words.generated.regler'}\",\"scan_qr_to_login\":\"@.capitalize:{'words.generated.scan'} @:{'words.generated.the'} @:{'words.generated.qr'} @:{'words.generated.code'} @:{'words.generated.to'} @:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.as'} @:{'words.generated.user'}\",\"self_serve_studio_section\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.studio'}\",\"shortcut_pricing\":\"@:{'templates.generated.compat.global.prices'}\",\"shortcuts_section\":\"@.capitalize:{'words.generated.genvagar'}\",\"show_customer\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.kund'}\",\"show_qr_code\":\"@:{'words.generated.show'} @:{'words.generated.qr'} @:{'words.generated.code'}\",\"view_booking_new_tab\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.bokning'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.flik'}\",\"view_customer_new_tab\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.kund'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.flik'}\",\"view_invoice_collection_new_tab\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.fakturasamling'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.flik'}\",\"view_lane_new_tab\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.lane'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}\",\"view_lane_setup_new_tab\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.lane'} @:{'words.generated.setup'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}\",\"view_order_new_tab\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.order'} @:{'words.generated.in'} @:{'words.generated.new'} @:{'words.generated.tab'}\",\"view_vehicle_new_tab\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.fordon'} {reg} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.flik'}\",\"accept_self_serve_wash\":\"Godkänn självbetjäningstvätt\",\"accept_self_serve_wash_confirm\":\"Flytta detta utkast till kund #{customerNumber} med självbetjäningsdetaljerna?\",\"accept_self_serve_wash_success\":\"Självbetjäningstvätten godkändes.\",\"email_notifications_section\":\"E-postaviseringar\",\"resend_booking_completion_confirmation\":\"(Re)send booking completion confirmation\",\"resend_booking_completion_confirmation_error\":\"The booking completion confirmation could not be sent\",\"resend_booking_completion_confirmation_success\":\"The booking completion confirmation has been sent\",\"resend_booking_confirmation\":\"(Re)send booking confirmation\",\"resend_booking_confirmation_error\":\"The booking confirmation could not be sent\",\"resend_booking_confirmation_success\":\"The booking confirmation has been sent\",\"resend_wash_certificate\":\"(Re)send wash certificate\",\"resend_wash_certificate_error\":\"The wash certificate could not be sent\",\"resend_wash_certificate_success\":\"The wash certificate has been sent\",\"self_serve_customer\":\"Kund\",\"self_serve_driver\":\"Förare\",\"self_serve_elapsed\":\"Tid\",\"self_serve_wash_attachment\":\"Självbetjäningstvätt\",\"self_serve_wash_attachment_for_customer\":\"Självbetjäningstvätt för kund #{customerNumber}\"},\"show_details\":\"@:{'words.generated.show'} @:{'words.generated.details'}\",\"show_order_details\":\"@:{'words.generated.show'} @:{'words.generated.order'} @:{'words.generated.details'}\",\"stripe\":{\"actions\":{\"cancel_payment\":\"@:{'words.generated.avbryt'} @:{'words.generated.betalning'}\",\"delete_payment_intent\":\"@.capitalize:{'words.generated.radera'} @.capitalize:{'words.generated.payment'} @:{'words.generated.intent'}\",\"open_setup\":\"@.capitalize:{'words.generated.oppna'} @:{'words.generated.stripe'}-@:{'words.generated.konfiguration'}\",\"refresh_payment_status\":\"@.capitalize:{'words.generated.uppdatera'} @:{'words.generated.betalningsstatus'}\",\"refresh_readers\":\"@.capitalize:{'words.generated.uppdatera'} @:{'words.generated.terminaler'}\",\"refresh_setup\":\"@.capitalize:{'words.generated.uppdatera'} terminalkonfiguration\",\"retry_payment_state\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.betalningsstatus'} @:{'words.generated.igen'}\",\"show_payment_details\":\"@.capitalize:{'words.generated.visa'} betalningsdetaljer\"},\"details\":{\"amount_received\":\"@.capitalize:{'words.generated.mottaget'} @:{'words.generated.belopp'}\",\"metadata\":\"Metadata\",\"payment_intent_id\":\"@.capitalize:{'words.generated.payment'} @:{'words.generated.intent'} @.upper:{'words.generated.id'}\"},\"email\":{\"action\":\"@:{'words.generated.kortbetalning'} (@:{'words.generated.e'}-@:{'words.generated.post'})\",\"address_placeholder\":\"@:{'words.generated.kund'} [@:{'words.generated.at'}] exempel.@:{'words.generated.se'}\",\"errors\":{\"cancel\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} annullera @:{'words.generated.betalningslanken'}.\",\"complete\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.slutfora'} @:{'words.generated.ordern'}.\",\"load\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.ladda'} betalningslänkens @:{'words.generated.status'}.\",\"send\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.skicka'} @:{'words.generated.betalningslanken'}.\"},\"eyebrow\":\"Onlinebetalning\",\"help\":\"@.capitalize:{'words.generated.skicka'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.stripe'}-betalningsfaktura @:{'words.generated.till'} @:{'words.generated.kunden'} @:{'words.generated.via'} @:{'words.generated.e'}-@:{'words.generated.post'}.\",\"invoice_link_label\":\"@.capitalize:{'words.generated.betalningslank'}\",\"messages\":{\"active\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.finns'} @:{'words.generated.redan'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.aktiv'} @:{'words.generated.betalningslank'} @:{'words.generated.for'} @:{'words.generated.denna'} @:{'words.generated.order'}.\",\"closed\":\"Onlinebetalningslänken @:{'words.generated.ar'} stängd.\",\"paid\":\"@.capitalize:{'words.generated.betalningen'} @:{'words.generated.har'} @:{'words.generated.tagits'} @:{'words.generated.emot'}. @.capitalize:{'words.generated.ordern'} @:{'words.generated.kan'} @:{'words.generated.nu'} @:{'words.generated.slutforas'}.\",\"sent\":\"@.capitalize:{'words.generated.betalningslanken'} @:{'words.generated.har'} skickats. @.capitalize:{'words.generated.status'} uppdateras @:{'words.generated.automatiskt'}.\"},\"states\":{\"open\":\"@:{'words.generated.vantar'} @:{'words.generated.pa'} @:{'words.generated.betalning'}\",\"uncollectible\":\"@:{'words.generated.ej'} indrivningsbar\"}},\"errors\":{\"capture_payment_intent\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.slutfora'} @.capitalize:{'words.generated.payment'} @:{'words.generated.intent'}.\",\"create_payment_intent\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.skapa'} @.capitalize:{'words.generated.payment'} @:{'words.generated.intent'}.\",\"delete_payment_intent\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.radera'} @.capitalize:{'words.generated.payment'} @:{'words.generated.intent'}.\",\"load_payment_intent_state\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.ladda'} @:{'words.generated.betalningsstatus'}.\",\"load_readers\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.ladda'} @:{'words.generated.stripe'}-@:{'words.generated.terminaler'}.\",\"select_reader_before_payment\":\"@.capitalize:{'words.generated.valj'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.terminal'} innan @:{'words.generated.betalningen'} startas.\"},\"headings\":{\"card_payment\":\"@:{'words.generated.kortbetalning'}\",\"terminal\":\"@:{'words.generated.stripe'} @.capitalize:{'words.generated.terminal'}\"},\"messages\":{\"contact_superuser\":\"@.capitalize:{'words.generated.kontakta'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.superuser'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.oppna'} @:{'words.generated.stripe'}-@:{'words.generated.konfigurationen'} @:{'words.generated.och'} @:{'words.generated.valja'} @:{'words.replication.host_definite_suffix'} terminalplats @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.avdelningen'}.\",\"reader_unavailable\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.terminal'} @:{'words.generated.ar'} @:{'words.generated.tillganglig'} @:{'words.generated.just'} @:{'words.generated.nu'}. @.capitalize:{'words.generated.uppdatera'} listan @:{'words.generated.eller'} @:{'words.generated.vanta'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.terminal'} @:{'words.generated.kommer'} @:{'words.generated.online'}.\",\"setup_required_title\":\"Kortbetalningar @:{'words.generated.ar'} @:{'words.generated.inte'} @:{'words.generated.klara'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.avdelningen'}.\",\"waiting_for_reader\":\"@.capitalize:{'words.generated.betalningen'} @:{'words.generated.pagar'} @:{'words.generated.pa'} @:{'words.generated.vald'} @:{'words.generated.terminal'}. @.capitalize:{'words.generated.uppdatera'} statusen @:{'words.generated.om'} terminalen @:{'words.generated.redan'} @:{'words.generated.har'} @:{'words.generated.last'} kortet.\"},\"reader\":{\"label\":\"@.capitalize:{'words.generated.terminal'}\",\"no_selection\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.terminal'} @:{'words.generated.vald'}\",\"none_available\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.terminaler'} @:{'words.generated.tillgangliga'}\",\"none_ready\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.klara'} @:{'words.generated.terminaler'}\",\"select\":\"@.capitalize:{'words.generated.valj'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.terminal'}\",\"status\":{\"busy\":\"@.capitalize:{'words.generated.anvands'}\"},\"unavailable_group\":\"Otillgängliga @:{'words.generated.terminaler'}\"},\"states\":{\"cancelling\":\"@:{'words.generated.avbryter'} @:{'words.generated.betalning'}\",\"capturing\":\"@:{'words.generated.slutfor'} @:{'words.generated.betalning'}\",\"creating\":\"@:{'words.generated.skapar'} @:{'words.generated.betalning'}\",\"failed\":\"@.capitalize:{'words.generated.atgard'} @:{'words.generated.kravs'}\",\"idle\":\"@.capitalize:{'words.generated.klar'} @:{'words.generated.att'} @:{'words.generated.starta'}\",\"reader_unavailable\":\"@.capitalize:{'words.generated.terminal'} otillgänglig\",\"ready_to_capture\":\"@:{'words.generated.redo'} @:{'words.generated.att'} @:{'words.generated.slutfora'}\",\"setup_required\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.kravs'}\",\"succeeded\":\"@.capitalize:{'words.generated.betalning'} @:{'words.generated.slutford'}\",\"waiting_for_reader\":\"@:{'words.generated.vantar'} @:{'words.generated.pa'} @:{'words.generated.terminal'}\"},\"tax_profile\":\"Momsprofil\",\"tax_rates\":{\"danish_customer\":\"Dansk @:{'words.generated.kund'}\",\"eu_customer\":\"EU-@:{'words.generated.kund'}\"}},\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.manage'} sales @:{'words.generated.and'} @:{'words.generated.orders'}\",\"sync\":{\"subtitle\":\"Synkronisera @:{'words.generated.ordrar'} @:{'words.generated.med'} @:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"title\":\"@.capitalize:{'words.generated.synkronisering'}\"},\"transaction\":\"@.capitalize:{'words.generated.transaktion'}\",\"use\":\"@.capitalize:{'words.generated.use'}\",\"variant\":\"Variant\",\"waiting_for_booking\":\"@:{'words.generated.vantar'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.bokningen'} @:{'words.generated.ska'} @:{'words.generated.slutforas'}\",\"warning\":\"Warning\",\"wash_certificate\":\"@:{'templates.generated.compat.pos.wash_certificate'}\",\"wash_certificate_already_attached\":\"@.upper:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.is'} @:{'words.generated.already'} @:{'words.generated.attached'} @:{'words.generated.to'} @:{'words.generated.this'} @:{'words.generated.order'}.\",\"wash_certificate_attached\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.generated'} @:{'words.generated.and'} @:{'words.generated.attached'} @:{'words.generated.to'} @:{'words.generated.the'} @:{'words.generated.order'}.\",\"wash_certificate_generation_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} generating @:{'words.generated.the'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"wash_certificate_item\":\"@:{'words.generated.tvattcertifikatraden'}\"},\"self_serve\":{\"condition_rules\":{\"add_question_rule\":\"@:{'templates.generated.compat.modals.add_question_rule'}\",\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.villkorsregler'}\"},\"conditions\":{\"add\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.villkor'}\",\"manage\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.villkor'}\",\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.sjalvbetjaningsvillkor'}\"},\"questions\":{\"add\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.fraga'}\",\"manage\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.fragor'}\"},\"select_vehicle_type_first\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.forst'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fordonstyp'}\",\"tasks\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.task'}\",\"manage\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.uppgifter'}\"},\"try\":\"Try\",\"vehicle_conditions\":{\"add\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.fordonsvillkor'}\",\"filter_by_reg\":\"@.capitalize:{'words.generated.filter'} @:{'words.generated.by'} @:{'words.generated.registration'} @:{'words.generated.number'}\",\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.fordonsvillkor'}\"}},\"time_bookings\":{\"new\":{\"subtitle\":\"@.capitalize:{'words.generated.skapa'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.tidsbokning'}\",\"title\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.tidsbokning'}\"},\"opening_hours\":{\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.oppettider'}\"},\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.tidsbokningar'}\",\"title\":\"@:{'templates.generated.compat.department_dashboard.sidebar.time_bookings'}\",\"types\":{\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.bokningstyper'}\",\"title\":\"@.capitalize:{'words.generated.bokningstyper'}\"}},\"wash_lanes\":{\"single\":{\"subtitle\":\"@.capitalize:{'words.generated.detaljer'} @:{'words.generated.for'} @:{'words.generated.tvattbana'}\"},\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.tvattbanor'}\",\"title\":\"@.capitalize:{'words.generated.tvattbanor'}\"}},\"auth\":{\"country_code\":\"@.capitalize:{'words.generated.landskod'}\",\"customer_login_title\":\"Kundinloggning\",\"driver_login_title\":\"@.capitalize:{'words.generated.driver'} @:{'words.generated.login'}\",\"forgot_password\":\"Glömt @:{'words.generated.losenord'}\",\"operator_tagline\":\"@.capitalize:{'words.generated.truckwash'}.@:{'words.generated.io'} – @:{'words.generated.digitala'} @:{'words.generated.losningar'} @:{'words.generated.for'} @:{'words.generated.lastbilstvatt'}\",\"phone_number\":\"@:{'templates.generated.compat.global.phone_number'}\",\"remember_me\":\"Kom ihåg mig\",\"terms_acceptance\":\"@.capitalize:{'words.generated.genom'} @:{'words.generated.att'} @:{'words.generated.klicka'} @:{'words.generated.pa'} \\\"@.capitalize:{'words.generated.logga'} @:{'words.generated.in'}\\\" accepterar @:{'words.generated.du'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}:@:{'words.generated.s'} integritetspolicy @:{'words.generated.och'} @:{'words.generated.villkor'}\",\"username\":\"@.capitalize:{'words.generated.anvandarnamn'}\",\"your_username\":\"@.capitalize:{'words.generated.ditt'} @:{'words.generated.anvandarnamn'}\"},\"book_wash\":{\"title_desc\":\"@.capitalize:{'words.generated.boka'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.tvatt'} @:{'words.generated.pa'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.av'} vara @:{'words.generated.avdelningar'} - @:{'words.generated.med'} @:{'words.generated.mojlighet'} @:{'words.generated.till'} säkerhetsfärsegling.\",\"title\":\"@:{'templates.generated.compat.guest.book_wash'}\"},\"bookings_table\":{\"and_one_other\":\"{name} @:{'words.generated.and'} 1 @:{'words.generated.other'}\",\"and_others\":\"{name} @:{'words.generated.and'} {count} others\",\"no_services\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.tjanster'}\",\"none_registered\":\"@:{'words.generated.none'} @:{'words.generated.registered'}\",\"pcs\":\"pcs\",\"po\":\"@:{'words.generated.po'}\",\"services\":\"@:{'templates.generated.compat.common.services'}\",\"unknown_service\":\"@:{'words.generated.okand'} @:{'words.generated.tjanst'}\",\"wash\":\"@.capitalize:{'words.generated.tvatt'}\"},\"bookings\":{\"at_time\":\"kl.\",\"booking_number\":\"Bestillingsnummer\",\"cancel_booking\":\"@:{'words.generated.avbryt'} @:{'words.generated.bestilling'}\",\"complete_booking\":\"@:{'words.generated.slutfor'} @:{'words.generated.bokning'}\",\"confirm_booking\":\"@.capitalize:{'words.generated.bekreft'} @:{'words.generated.bestilling'}\",\"date\":\"@:{'templates.generated.compat.common.date'}\",\"delete_booking\":\"@:{'words.generated.slett'} @:{'words.generated.bestilling'}\",\"edit_booking\":\"@:{'words.generated.rediger'} @:{'words.generated.bestilling'}\",\"expected_at\":\"Forventet\",\"new_booking\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.bestilling'}\",\"search_placeholder\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} bokningsnummer, @:{'words.generated.kund'}\",\"statuses\":{\"confirmed\":\"@.capitalize:{'words.generated.bekraftad'}\"},\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.bestillinger'}\",\"view_booking\":\"@:{'words.generated.vis'} @:{'words.generated.bestilling'}\"},\"calendar\":{\"april\":\"April\",\"august\":\"Augusti\",\"day\":\"@.capitalize:{'words.generated.dag'}\",\"december\":\"December\",\"february\":\"Februari\",\"fullcalendar\":{\"allDay\":\"Hele @:{'words.generated.dagen'}\",\"dayHeaderFormat\":\"ddd @:{'words.generated.d'}/M\",\"eventTimeFormat\":\"HH:mm\",\"list\":\"Liste\",\"titleFormat\":\"dddd @:{'words.generated.d'}. MMMM YYYY\"},\"january\":\"Januari\",\"july\":\"Juli\",\"june\":\"Juni\",\"march\":\"Mars\",\"may\":\"@.capitalize:{'words.generated.maj'}\",\"monday\":\"@:{'templates.generated.compat.common.days.monday'}\",\"november\":\"November\",\"october\":\"Oktober\",\"saturday\":\"@:{'templates.generated.compat.common.days.saturday'}\",\"september\":\"September\",\"sunday\":\"@:{'templates.generated.compat.common.days.sunday'}\",\"tuesday\":\"@:{'templates.generated.compat.common.days.tuesday'}\",\"week\":\"Uke\"},\"collected_invoice\":{\"move_customer\":{\"card_title\":\"Move to customer\",\"confirm_button\":\"Move\",\"confirm_text\":\"Move invoice collection #{id} and {count} orders to customer #{customer}?\",\"confirm_title\":\"Confirm move\",\"current_customer\":\"Current customer: #{customer}\",\"customer_value\":\"Customer #{customer}\",\"error_title\":\"Could not move invoice collection\",\"invalid_customer\":\"Enter a valid customer number.\",\"locked\":\"Locked\",\"same_customer\":\"Choose another customer than the current one.\",\"success_text\":\"{count} orders were moved to customer #{customer}.\",\"success_title\":\"Invoice collection moved\",\"title\":\"Move invoice collection\"},\"economic\":{\"booked_desc\":\"@.capitalize:{'words.generated.fakturan'} @:{'words.generated.ar'} @:{'words.generated.bokford'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}, @:{'words.generated.inga'} @:{'words.generated.ytterligare'} @:{'words.generated.atgarder'} @:{'words.generated.kravs'}.\",\"booked_with_economic\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.bokford'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"create_invoice\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.faktura'}\",\"draft_customer_blocked_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.fakturasamlingen'} @:{'words.generated.anvander'} @:{'words.replication.article.host_mention'} @:{'words.generated.konfigurerade'} @:{'words.generated.utkastkunden'} @:{'words.generated.och'} @:{'words.generated.kan'} @:{'words.generated.darfor'} @:{'words.generated.inte'} @:{'words.generated.exporteras'} @:{'words.generated.till'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"draft_customer_blocked_title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.export'} @:{'words.generated.ar'} blockerad\",\"fixed_price_added\":\"@.capitalize:{'words.generated.fast'} @:{'words.generated.pris'} tillagd\",\"fixed_price_added_desc\":\"@.capitalize:{'words.generated.fast'} @:{'words.generated.pris'} @:{'words.generated.har'} @:{'words.generated.lagts'} @:{'words.generated.till'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"invoice_create_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.nar'} @:{'words.generated.fakturan'} @:{'words.generated.skapades'}.\",\"invoice_created\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.skapad'}\",\"invoice_created_desc\":\"@.capitalize:{'words.generated.fakturan'} @:{'words.generated.har'} @:{'words.generated.skapats'}.\",\"invoice_sent\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.sendt'}\",\"invoice_sent_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.sendt'} @:{'words.generated.til'} @:{'words.generated.kunden'}\",\"invoice_split\":\"@.capitalize:{'words.generated.fakturasamling'} uppdelad\",\"invoice_split_desc\":\"@.capitalize:{'words.generated.fakturasamlingen'} @:{'words.generated.har'} delats @:{'words.generated.upp'}.\",\"invoice_split_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.vid'} uppdelning @:{'words.generated.av'} @:{'words.generated.fakturasamlingen'}.\",\"invoice_unlinked\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} frakoblet\",\"invoice_unlinked_desc\":\"@.capitalize:{'words.generated.fakturan'} @:{'words.generated.ar'} frånkopplad @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}. @:{'words.generated.observera'} @:{'words.generated.att'} @:{'words.generated.fakturan'} @:{'words.generated.fortfarande'} @:{'words.generated.kan'} @:{'words.generated.finnas'} @:{'words.generated.kvar'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"saved_as_draft\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.sparad'} @:{'words.generated.som'} @:{'words.generated.utkast'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"saved_as_draft_desc\":\"@.capitalize:{'words.generated.fakturan'} @:{'words.generated.ar'} @:{'words.generated.sparad'} @:{'words.generated.som'} @:{'words.generated.utkast'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.och'} @:{'words.generated.kan'} @:{'words.generated.bokforas'} @:{'words.generated.direkt'} @:{'words.generated.dar'}.\",\"special_removed\":\"@.capitalize:{'words.generated.specialavtal'} borttagna\",\"special_removed_desc\":\"@.capitalize:{'words.generated.specialavtal'} @:{'words.generated.har'} @:{'words.generated.tagits'} @:{'words.generated.bort'} @:{'words.generated.fran'} @:{'words.generated.fakturan'}.\",\"split_confirm\":\"@:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.soker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.dela'} @:{'words.generated.upp'} @:{'words.generated.denna'} fakturasamlingä\",\"split_yes\":\"@:{'words.generated.yes'}, @:{'words.generated.split'}\",\"subscriptions_added\":\"@:{'words.generated.abonnemang'} @:{'words.generated.tillagda'}\",\"subscriptions_added_desc\":\"@.capitalize:{'words.generated.fordonsabonnemang'} @:{'words.generated.har'} @:{'words.generated.lagts'} @:{'words.generated.till'}.\",\"undo_send\":\"@:{'words.generated.undo'} @:{'words.generated.send'}, @:{'words.generated.go'} @:{'words.generated.back'}\",\"unlink_confirm\":\"@:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.soker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.koppla'} @:{'words.generated.fran'} fakturanä @:{'words.generated.observera'} @:{'words.generated.att'} @:{'words.generated.fakturan'} @:{'words.generated.fortfarande'} @:{'words.generated.kan'} @:{'words.generated.finnas'} @:{'words.generated.kvar'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}. @.capitalize:{'words.generated.du'} @:{'words.generated.maste'} @:{'words.generated.sjalv'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.replication.article.host_mention'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.vid'} behov.\",\"unlink_yes\":\"@.capitalize:{'words.generated.ja'}, frakobl @:{'words.generated.fakturaen'}\",\"use_economic_desc\":\"@.capitalize:{'words.generated.anvand'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.skapa'} @:{'words.generated.fakturor'}\"},\"stripe\":{\"and_booked\":\"@:{'words.generated.och'} @:{'words.generated.bokford'}\",\"and_saved_draft\":\"og @:{'words.generated.gemt'} @:{'words.generated.som'} @:{'words.generated.kladde'}\",\"booked_with\":\"@:{'words.generated.bokford'} @:{'words.generated.med'}\",\"but_not_booked\":\"@:{'words.generated.men'} @:{'words.generated.inte'} @:{'words.generated.bokford'}\",\"in_economic\":\"@:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"invoice_booked\":\"@.capitalize:{'words.generated.fakturan'} @:{'words.generated.ar'} @:{'words.generated.bokford'}\",\"invoice_booked_desc\":\"@.capitalize:{'words.generated.fakturan'} @:{'words.generated.ar'} @:{'words.generated.bokford'} @:{'words.generated.i'} @:{'words.generated.stripe'}\",\"invoice_paid\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.betalt'}\",\"invoice_status\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} {status}\",\"not_booked\":\"@:{'words.generated.inte'} @:{'words.generated.bokford'}\",\"payment_amount\":\"Betalningsbelopp\",\"payment_id\":\"Betalings-@:{'words.generated.id'}\",\"payment_overview\":\"Betalingsoversigt\",\"payment_status\":\"Betalingsstatus\",\"saved_as_draft\":\"@:{'words.generated.gemt'} @:{'words.generated.som'} @:{'words.generated.kladde'} @:{'words.generated.i'}\",\"stripe_fees\":\"@:{'words.generated.stripe'} gebyrer\"}},\"common\":{\"about\":\"@.capitalize:{'words.generated.om'}\",\"actions\":\"@.capitalize:{'words.generated.atgarder'}\",\"active\":\"@.capitalize:{'words.generated.aktiv'}\",\"add\":\"@:{'words.generated.lagg'} @:{'words.generated.till'}\",\"addons\":\"@.capitalize:{'words.generated.tillval'}\",\"address\":\"Adress\",\"all\":\"@.capitalize:{'words.generated.alla'}\",\"and\":\"@:{'words.generated.och'}\",\"apply\":\"Bruk\",\"approved\":\"Godkänd\",\"approx\":\"ca.\",\"are\":\"@:{'templates.generated.compat.common.is'}\",\"back\":\"@:{'words.generated.tillbaka'}\",\"booking_created\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.bokning'} @:{'words.generated.har'} @:{'words.generated.skapats'}.\",\"bookings\":\"@.capitalize:{'words.generated.bokningar'}\",\"can\":\"@:{'words.generated.kan'}\",\"cancel\":\"@:{'words.generated.avbryt'}\",\"cancelled\":\"@:{'words.generated.avbruten'}\",\"city\":\"Stad\",\"clear\":\"@:{'words.generated.rensa'}\",\"click_to_copy\":\"Klikk @:{'words.generated.for_2'} @:{'words.generated.a_2'} kopiere\",\"close\":\"@:{'words.generated.stang'}\",\"collapse\":\"@:{'templates.generated.compat.common.hide'}\",\"comment\":\"Kommentar\",\"comments\":\"Kommentarer\",\"company\":\"@.capitalize:{'words.generated.foretag'}\",\"completed\":\"Avslutad\",\"confirm\":\"@.capitalize:{'words.generated.bekrafta'}\",\"contact\":\"@.capitalize:{'words.generated.kontakt'}\",\"continue\":\"@.capitalize:{'words.generated.fortsatt'}\",\"copied\":\"Kopiert\",\"copy_error\":\"@:{'words.generated.copy'} @:{'words.generated.error'} @:{'words.generated.message'}\",\"copy\":\"@.capitalize:{'words.generated.kopiera'}\",\"could\":\"@:{'words.generated.kunde'}\",\"country\":\"Land\",\"create\":\"@:{'words.generated.opprett'}\",\"created\":\"@.capitalize:{'words.generated.skapad'}\",\"customer_conflict\":{\"help_text\":\"Det @:{'words.generated.angivna'} @:{'words.generated.registreringsnumret'} @:{'words.generated.tillhor'} @:{'words.replication.host_definite_suffix'} annan sparad @:{'words.generated.kund'}. @:{'words.generated.valj_2'} @:{'words.generated.om'} @:{'words.replication.article.host_mention'} @:{'words.generated.valda'} @:{'words.generated.kunden'} @:{'words.generated.ska'} @:{'words.generated.behallas'} eller @:{'words.generated.om'} @:{'words.generated.bytet'} @:{'words.generated.ska'} @:{'words.generated.goras'} @:{'words.generated.till'} @:{'words.generated.fordonskunden'}.\",\"keep_selected_customer\":\"@:{'words.generated.behall'} @:{'words.generated.vald'} @:{'words.generated.kund'}\",\"matched_customer_label\":\"@.capitalize:{'words.generated.fordonskund'}\",\"title\":\"@:{'words.generated.bekrafta_2'} @:{'words.generated.kund'} @:{'words.generated.for_2'} registreringsnummer\",\"use_vehicle_customer\":\"@:{'words.generated.anvand_2'} @:{'words.generated.fordonskund'}\",\"warning_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.valda'} @:{'words.generated.kunden'} @:{'words.generated.och'} @:{'words.generated.fordonskunden'} matchar @:{'words.generated.inte'}.\"},\"customer_creation_error_generic\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.nar'} @:{'words.generated.kunden'} @:{'words.generated.skapades'}. @.capitalize:{'words.generated.forsok'} @:{'words.generated.igen'}.\",\"customer_creation_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.nar'} @:{'words.generated.kunden'} @:{'words.generated.skapades'}: {error}\",\"customer_id\":\"@.capitalize:{'words.generated.kund'}-@.upper:{'words.generated.id'}\",\"customer_name\":\"@.capitalize:{'words.generated.kundnamn'}\",\"customer_note\":\"Anteckning från @:{'words.generated.kund'}\",\"customer_notes\":\"@:{'words.generated.kundanteckningar'}\",\"customer_number\":\"@.capitalize:{'words.generated.kundnummer'}\",\"customer_picker\":{\"select_card_payment\":\"@:{'words.generated.betalkort'}\",\"select_customer_invoice\":\"@:{'words.generated.kundfaktura'}\",\"select_draft_customer\":\"@:{'words.generated.skjut'} upp\",\"select_new_customer\":\"Ny @:{'words.generated.kund'}\",\"select_payment_form\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.betalningsform'}\",\"selected_customer\":\"@.capitalize:{'words.generated.vald'} @:{'words.generated.kund'}\"},\"customer_prices\":\"@:{'words.generated.kundpriser'}\",\"customer_wishes\":\"@:{'words.generated.kundonskemal'}\",\"customer\":\"@.capitalize:{'words.generated.kund'}\",\"customers\":\"@.capitalize:{'words.generated.kunder'}\",\"cut\":\"Klipp @:{'words.generated.ut'}\",\"dashboard\":\"@.capitalize:{'words.generated.instrumentpanel'}\",\"date\":\"@.capitalize:{'words.generated.datum'}\",\"days\":{\"friday\":\"Fredag\",\"monday\":\"Måndag\",\"saturday\":\"Lördag\",\"sunday\":\"Söndag\",\"thursday\":\"Torsdag\",\"tuesday\":\"Tisdag\",\"wednesday\":\"Onsdag\"},\"delete\":\"@.capitalize:{'words.generated.radera'}\",\"department_allocations\":\"@.capitalize:{'words.generated.avdelningsfardelningar'}\",\"department_id\":\"Avdelnings-@.upper:{'words.generated.id'}\",\"department\":\"@.capitalize:{'words.generated.avdelning'}\",\"departments\":\"@.capitalize:{'words.generated.avdelningar'}\",\"description\":\"Beskrivning\",\"details\":\"@.capitalize:{'words.generated.detaljer'}\",\"disabled\":\"@.capitalize:{'words.generated.inaktiverad'}\",\"discount\":\"@.capitalize:{'words.generated.rabatt'}\",\"done\":\"@.capitalize:{'words.generated.klar'}\",\"download\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.ner'}\",\"during_the_day\":\"@:{'words.generated.under'} @:{'words.generated.dagen'}\",\"edit\":\"@:{'words.generated.redigera'}\",\"email\":\"@.upper:{'words.generated.e'}-@:{'words.generated.post'}\",\"enabled\":\"@.capitalize:{'words.generated.aktiverad'}\",\"entries_per_page\":\"poster @:{'words.generated.per'} @:{'words.generated.sida'}\",\"error_creating_booking\":\"@.capitalize:{'words.generated.fel'} @:{'words.generated.vid'} @:{'words.generated.skapande'} @:{'words.generated.av'} @:{'words.generated.bokning'}\",\"error\":\"@.capitalize:{'words.generated.fel'}\",\"expand\":\"Expand\",\"expired\":\"Utgången\",\"export\":\"Exportera\",\"failed\":\"Misslyckad\",\"filter\":\"@.capitalize:{'words.generated.filter'}\",\"finish\":\"@:{'words.generated.slutfor'}\",\"first\":\"Första\",\"from\":\"@.capitalize:{'words.generated.fran'}\",\"had\":\"hade\",\"has\":\"@:{'words.generated.har'}\",\"have\":\"@:{'templates.generated.compat.common.has'}\",\"help\":\"@.capitalize:{'words.generated.hjalp'}\",\"hide\":\"@:{'words.generated.dolj'}\",\"home\":\"Hem\",\"hour\":\"Timme\",\"import\":\"@.capitalize:{'words.generated.importera'}\",\"inactive\":\"Inaktiv\",\"info\":\"Info\",\"invoice\":\"@.capitalize:{'words.generated.faktura'}\",\"invoices\":\"@.capitalize:{'words.generated.fakturor'}\",\"is_dev_on\":\"Utvecklingsläge\",\"is\":\"@:{'words.generated.ar'}\",\"language\":\"Språk\",\"last_wash\":\"@.capitalize:{'words.generated.senaste'} @:{'words.generated.tvatt'}\",\"last\":\"@:{'words.generated.siste'}\",\"less\":\"@.capitalize:{'words.generated.mindre'}\",\"loading\":\"@:{'words.generated.laddar'}...\",\"login\":\"@.capitalize:{'words.generated.logga'} @:{'words.generated.in'}\",\"logout\":\"@.capitalize:{'words.generated.logga'} @:{'words.generated.ut'}\",\"may\":\"@:{'templates.generated.compat.common.can'}\",\"might\":\"kanske\",\"minute\":\"Minut\",\"month\":\"@.capitalize:{'words.generated.manad'}\",\"more\":\"@.capitalize:{'words.generated.mer'}\",\"must\":\"@:{'words.generated.maste'}\",\"name\":\"@.capitalize:{'words.generated.namn'}\",\"new\":\"@.capitalize:{'words.generated.ny'}\",\"next_step\":\"@:{'words.generated.next'} @:{'words.generated.step'}\",\"next\":\"@.capitalize:{'words.generated.nasta'}\",\"no\":\"@.capitalize:{'words.generated.nej'}\",\"none_registered\":\"@:{'words.generated.none'} registered\",\"none_services_added\":\"Inga tjänster tillagda ännu\",\"none\":\"@.capitalize:{'words.generated.inga'}\",\"not_available\":\"@:{'words.generated.ej'} @:{'words.generated.tillganglig'}\",\"not\":\"@:{'words.generated.inte'}\",\"note\":\"@.capitalize:{'words.generated.anteckning'}\",\"notes\":\"@.capitalize:{'words.generated.anteckningar'}\",\"of\":\"@:{'words.generated.av'}\",\"ok\":\"OK\",\"open\":\"@.capitalize:{'words.generated.oppna'}\",\"optional\":\"Valfritt\",\"or\":\"@:{'words.generated.eller'}\",\"order_cancelled\":\"Bokningen @:{'words.generated.har'} @:{'words.generated.avbrutits'}\",\"order_created\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.bokning'} @:{'words.generated.har'} skapats.\",\"order_desc\":\"@:{'words.generated.boka'} @:{'words.generated.tvatt'} @:{'words.generated.i'} hela @:{'words.generated.landet'}\",\"order_id_incorrect\":\"@.capitalize:{'words.generated.boknings'}-@.upper:{'words.generated.id'} @:{'words.generated.ar'} @:{'words.generated.felaktigt'}\",\"order_id_required\":\"@.capitalize:{'words.generated.du'} måste ange @:{'words.generated.boknings'}-@.upper:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.att'} slutföra tvätten utan @:{'words.generated.tvattcertifikat'}\",\"order_info\":\"@:{'words.generated.bokningsinformation'}\",\"order\":\"@.capitalize:{'words.generated.order'}\",\"orders\":\"@.capitalize:{'words.generated.ordrar'}\",\"page_x_of_y\":\"@.capitalize:{'words.generated.side'} {x} @:{'words.generated.av'} {y}\",\"paste\":\"Klistra @:{'words.generated.in'}\",\"pause\":\"Pausa\",\"pending\":\"@.capitalize:{'words.generated.vantande'}\",\"per_page\":\"@:{'words.generated.per'} @:{'words.generated.side'}\",\"phone\":\"@.capitalize:{'words.generated.telefon'}\",\"preview\":\"@.capitalize:{'words.generated.forhandsvisning'}\",\"previous_step\":\"@.capitalize:{'words.generated.foregaende'} @:{'words.generated.steg'}\",\"previous\":\"@.capitalize:{'words.generated.foregaende'}\",\"price\":\"@.capitalize:{'words.generated.pris'}\",\"print\":\"@:{'words.generated.skriv'} @:{'words.generated.ut'}\",\"privacy\":\"Integritet\",\"processing\":\"@:{'words.generated.bearbetar'}\",\"product\":\"@.capitalize:{'words.generated.produkt'}\",\"products\":\"@.capitalize:{'words.generated.produkter'}\",\"profile\":\"Profil\",\"quantity\":\"@.capitalize:{'words.generated.antal'}\",\"redo\":\"@.capitalize:{'words.generated.gor'} @:{'words.generated.om'}\",\"reference\":\"@.capitalize:{'words.generated.referens'}\",\"refresh\":\"@.capitalize:{'words.generated.uppdatera'}\",\"register\":\"@.capitalize:{'words.generated.registrera'}\",\"rejected\":\"Avvisad\",\"remove\":\"@.capitalize:{'words.generated.ta'} @:{'words.generated.bort'}\",\"required\":\"@.capitalize:{'words.generated.obligatoriskt'}\",\"reset\":\"@:{'words.generated.aterstall'}\",\"results\":\"@:{'words.generated.resultater'}\",\"resume\":\"Återuppta\",\"retry\":\"@.capitalize:{'words.generated.forsok'} @:{'words.generated.igen'}\",\"role\":\"Roll\",\"roles\":\"@.capitalize:{'words.generated.roller'}\",\"roless\":{\"admin\":\"@:{'words.generated.administrator'}\",\"employee\":\"@.capitalize:{'words.generated.ansatt'}\",\"manager\":\"@:{'words.generated.leder'}\"},\"save\":\"@.capitalize:{'words.generated.spara'}\",\"search_booking\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.bokning'}\",\"search_customer_by_number\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.kundnummer'}\",\"search_customer\":\"@:{'words.generated.sok'} @:{'words.generated.kund'}\",\"search_customers_ellipsis\":\"@:{'words.generated.sok'} @:{'words.generated.kunder'}...\",\"search_customers\":\"@:{'words.generated.sok'} @:{'words.generated.i'} @:{'words.generated.kunder'}\",\"search_cvr\":\"@:{'words.generated.sok'} CVR-nummer...\",\"search_department\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} avdelning\",\"search_departments\":\"@:{'words.generated.sok'} @:{'words.generated.avdelningar'}...\",\"search_driver\":\"Search @:{'words.generated.for_2'} driver\",\"search_for\":\"@:{'words.generated.sok'} @:{'words.generated.efter'}\",\"search_license_plate\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} registreringsskylt\",\"search_order\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.order'}\",\"search_phone\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} telefonnummer\",\"search_products_ellipsis\":\"@:{'words.generated.sok'} @:{'words.generated.produkter'}...\",\"search_products\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.produkter'}\",\"search_scanners\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} registreringsskannrar\",\"search_subuser\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} underanvändare\",\"search_transactions\":\"@:{'words.generated.sok'} @:{'words.generated.i'} transaktioner\",\"search_user\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} användare\",\"search\":\"@:{'words.generated.sok'}\",\"second\":\"@.capitalize:{'words.generated.sekund'}\",\"see_more\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.mer'}\",\"select\":\"@.capitalize:{'words.generated.valj'}\",\"selected\":\"@.capitalize:{'words.generated.valgt'}\",\"service\":\"@.capitalize:{'words.generated.tjanst'}\",\"services\":\"@.capitalize:{'words.generated.tjanster'}\",\"settings\":\"@.capitalize:{'words.generated.installningar'}\",\"shall\":\"@:{'words.generated.ska'}\",\"should\":\"borde\",\"show\":\"@.capitalize:{'words.generated.visa'}\",\"sort\":\"Sorter\",\"start\":\"@.capitalize:{'words.generated.starta'}\",\"status\":\"@.capitalize:{'words.generated.status'}\",\"stop\":\"Stoppa\",\"submit\":\"@.capitalize:{'words.generated.skicka'}\",\"subtotal\":\"Delsumma\",\"success\":\"Framgång\",\"support\":\"@.capitalize:{'words.generated.support'}\",\"tax\":\"@.capitalize:{'words.generated.moms'}\",\"terms\":\"@.capitalize:{'words.generated.villkor'}\",\"thank_you\":\"@:{'words.generated.tack'} @:{'words.generated.for'} @:{'words.generated.din'} @:{'words.generated.bokning'}!\",\"time\":\"@.capitalize:{'words.generated.tid'}\",\"to\":\"@.capitalize:{'words.generated.till'}\",\"today\":\"Idag\",\"tomorrow\":\"Imorgon\",\"total\":\"@:{'words.generated.totalt'}\",\"unable_to_load\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.lasa'} @:{'words.generated.in'} @:{'words.generated.data'}, @:{'words.generated.men'} @:{'words.generated.inga'} @:{'words.generated.fel'} @:{'words.generated.hittades'}.\",\"undo\":\"@.capitalize:{'words.generated.angra'}\",\"unknown_error\":\"@.capitalize:{'words.generated.okant'} @:{'words.generated.fel'}\",\"unknown\":\"@:{'words.generated.okand'}\",\"unselect\":\"@:{'words.generated.fjern'} valg\",\"update\":\"Oppdater\",\"updated\":\"@:{'words.generated.uppdaterad'}\",\"upload\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.upp'}\",\"user\":\"@.capitalize:{'words.generated.anvandare'}\",\"vehicle\":\"@.capitalize:{'words.generated.fordon'}\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicle'}\",\"via\":\"@.capitalize:{'words.generated.via'}\",\"view_booking\":\"Vis bestilling\",\"view\":\"@:{'templates.generated.compat.common.show'}\",\"warning\":\"Varning\",\"was\":\"@:{'words.generated.var'}\",\"week\":\"@.capitalize:{'words.generated.vecka'}\",\"were\":\"@:{'templates.generated.compat.common.was'}\",\"will\":\"@:{'words.generated.kommer'}\",\"would\":\"skulle\",\"year\":\"@.capitalize:{'words.generated.ar_2'}\",\"yes\":\"@.capitalize:{'words.generated.ja'}\",\"yesterday\":\"@.upper:{'words.generated.i'} @:{'words.generated.gar'}\",\"zip\":\"Postnummer\"},\"configuration\":{\"backups\":{\"active_jobs\":\"Active jobs\",\"actions\":\"Actions\",\"app_data_enabled\":\"Include app data\",\"app_data_enabled_desc\":\"Back up app-owned object buckets together with the database.\",\"backup\":\"Backup\",\"backup_created\":\"@.capitalize:{'words.generated.backup'} oprettet\",\"backup_created_success\":\"Säkerhetskopian @:{'words.generated.skapades'}.\",\"backup_error\":\"@.capitalize:{'words.generated.der'} opstod @:{'words.replication.host_definite_suffix'} @:{'words.generated.fejl'} @:{'words.generated.under'} oprettelse @:{'words.generated.af'} @:{'words.generated.backup'}.\",\"backup_queued\":\"Backup queued\",\"backup_queued_success\":\"The backup job has been queued.\",\"backup_schedule\":\"Säkerhetskopieringsschema\",\"backups\":\"Backups\",\"completed_at\":\"Completed\",\"create_backup\":\"@:{'words.generated.opret'} @:{'words.generated.backup'}\",\"create_backup_confirm\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.skapa'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.sakerhetskopia'}?\",\"delete_backup\":\"@.capitalize:{'words.generated.radera'} @:{'words.generated.sakerhetskopia'}\",\"disabled\":\"Disabled\",\"download_backup\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.ner'} @:{'words.generated.sakerhetskopia'}\",\"enable_system\":\"@:{'words.generated.aktiver'} @:{'words.generated.backup'} @:{'words.generated.system'}\",\"enable_system_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.backup'} @:{'words.generated.systemet'}.\",\"enabled\":\"Enabled\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for_2'} @:{'words.generated.backup'} @:{'words.generated.systemet'}.\",\"last_backup\":\"@.capitalize:{'words.generated.senaste'} @:{'words.generated.sakerhetskopia'}\",\"latest_backup\":\"Latest backup\",\"latest_verified\":\"Latest verified backup\",\"legacy_backups\":\"Legacy backups\",\"name\":\"Name\",\"no_backups\":\"No backups found.\",\"no_restore_audit\":\"No restore audit entries found.\",\"not_available\":\"Not available\",\"objects\":\"Objects\",\"refresh\":\"Refresh\",\"restore_audit\":\"Restore audit\",\"restore_backup\":\"@:{'words.generated.aterstall'} @:{'words.generated.sakerhetskopia'}\",\"restore_confirm_intro\":\"Restoring a backup will replace the production database and app data. Review the checks and type the exact confirmation phrase before continuing.\",\"restore_confirmation\":\"Confirmation phrase\",\"restore_enabled\":\"Allow production restore\",\"restore_enabled_desc\":\"Allow superusers to queue production restores after preview and typed confirmation.\",\"restore_error\":\"Could not queue the restore job.\",\"restore_queued\":\"Restore queued\",\"restore_queued_success\":\"The restore job has been queued.\",\"restore_reason\":\"Restore reason\",\"restore_state\":\"Restore\",\"restore_state_desc\":\"Production restore requires this setting plus preview confirmation.\",\"restore_validation_error\":\"Enter a reason and the exact confirmation phrase.\",\"retention\":\"Retention\",\"retention_daily_days\":\"Daily retention days\",\"retention_daily_days_desc\":\"Keep one verified backup per day for this many days.\",\"retention_monthly_months\":\"Monthly retention months\",\"retention_monthly_months_desc\":\"Keep one verified backup per month for this many months.\",\"retention_recent_hours\":\"Recent retention hours\",\"retention_recent_hours_desc\":\"Keep all verified backups from this recent hourly window.\",\"retention_weekly_weeks\":\"Weekly retention weeks\",\"retention_weekly_weeks_desc\":\"Keep one verified backup per week for this many weeks.\",\"size\":\"Size\",\"started_at\":\"Started\",\"status\":\"Status\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.backup'} @:{'words.generated.systemet'}.\",\"title\":\"@.capitalize:{'words.generated.backup'} @:{'words.generated.konfiguration'}\",\"verification_required\":\"Require verification\",\"verification_required_desc\":\"Mark backups as available only after verification succeeds.\",\"verified_at\":\"Verified\",\"verify\":\"Verify\"},\"economic\":{\"admin_fee_desc\":\"@.capitalize:{'words.generated.installningar'} @:{'words.generated.for'} @:{'words.generated.administrations'}- @:{'words.generated.och'} @:{'words.generated.miljoavgift'} @:{'words.generated.for'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.integrationen'}.\",\"admin_fee_monthly\":\"@:{'words.generated.administrationsgebyr'} (månedligt)\",\"admin_fee_monthly_desc\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.administrations'}- @:{'words.generated.och'} @:{'words.generated.miljoavgiften'} @:{'words.generated.som'} @:{'words.generated.debiteras'} @:{'words.generated.manadsvis'}.\",\"admin_fee_order\":\"@:{'words.generated.administrationsgebyr'} (@:{'words.generated.per'} @:{'words.generated.ordre'})\",\"admin_fee_order_desc\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.administrations'}- @:{'words.generated.och'} miljäavgiften @:{'words.generated.som'} @:{'words.generated.debiteras'} @:{'words.generated.manadsvis'} @:{'words.generated.nar'} @:{'words.generated.fakturering'} sker @:{'words.generated.per'} @:{'words.generated.order'}.\",\"admin_fee_title\":\"@.capitalize:{'words.generated.administrations'}- @:{'words.generated.och'} @:{'words.generated.miljoavgift'}\",\"agreement_grant_token\":\"Avtalets @:{'words.generated.grant'}-@:{'words.generated.token'}\",\"agreement_grant_token_desc\":\"@.capitalize:{'words.generated.din'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.grant'}-@:{'words.generated.token'} @:{'words.generated.for'} avtal\",\"app_secret_token\":\"@.capitalize:{'words.generated.app'} @.capitalize:{'words.generated.secret'} @.capitalize:{'words.generated.token'}\",\"app_secret_token_desc\":\"@.capitalize:{'words.generated.din'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.app'} @:{'words.generated.secret'} @:{'words.generated.token'}\",\"default_distribution_department_id\":\"@:{'words.generated.standard'} @:{'words.generated.fallback'}-@:{'words.generated.avdelning'}\",\"default_distribution_department_id_desc\":\"@.capitalize:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.fordelning'} @:{'words.generated.av'} tvättavtal @:{'words.generated.och'} fastpris @:{'words.generated.nar'} @:{'words.generated.kunden'} @:{'words.generated.saknar'} @:{'words.generated.standardavdelning'}.\",\"env_fee_product_id\":\"@.capitalize:{'words.generated.miljoavgift'} @:{'words.generated.produkt'}-@.upper:{'words.generated.id'}\",\"env_fee_product_id_desc\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.produkt'}-@.upper:{'words.generated.id'} @:{'words.generated.som'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.miljoavgiften'}.\",\"invoice_settings\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.indstillinger'}\",\"invoice_settings_desc\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.konfigurationen'} låter @:{'words.generated.dig'} @:{'words.generated.konfigurera'} @:{'words.generated.integrationen'} @:{'words.generated.med'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} bokföringssystem.\",\"invoice_template\":\"@.capitalize:{'words.generated.faktura'} skabelon\",\"invoice_template_desc\":\"@.capitalize:{'words.generated.valj'} fakturamallen @:{'words.generated.for'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.integrationen'}.\",\"show_payment_terms\":\"@:{'words.generated.vis'} betalingsbetingelser\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.integrationen'}\",\"title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.konfiguration'}\",\"transaction_draft_customer_number\":\"@.capitalize:{'words.generated.kundnummer'} @:{'words.generated.for'} @:{'words.generated.transaktionsutkast'}\",\"transaction_draft_customer_number_desc\":\"@.capitalize:{'words.generated.ange'} kundnumret @:{'words.generated.som'} markerar @:{'words.generated.order'} @:{'words.generated.och'} fakturasamlingar @:{'words.generated.som'} @:{'words.generated.utkast'}. Lämna @:{'words.generated.tomt'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.inaktivera'} @:{'words.generated.funktionen'}.\",\"transaction_draft_desc\":\"@.capitalize:{'words.generated.anvand'} @:{'words.replication.host_definite_suffix'} dedikerad @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.kund'} @:{'words.generated.for'} @:{'words.generated.transaktioner'} @:{'words.generated.som'} @:{'words.generated.ska'} förbli @:{'words.generated.utkast'} @:{'words.generated.och'} aldrig @:{'words.generated.exporteras'} @:{'words.generated.automatiskt'}.\",\"transaction_draft_title\":\"@.capitalize:{'words.generated.transaktionsutkast'}-@:{'words.generated.kund'}\"},\"email\":{\"enable_mailersend\":\"@:{'words.generated.enable'} @:{'words.generated.mailersend'}\",\"enable_mailersend_desc\":\"@:{'words.generated.enable'} @:{'words.generated.or'} @:{'words.generated.disable'} @:{'words.generated.the'} @:{'words.generated.mailersend'} @:{'words.generated.integration'}\",\"enable_system\":\"@:{'words.generated.enable'} @.capitalize:{'words.generated.email'} @.capitalize:{'words.generated.system'}\",\"enable_system_desc\":\"@.capitalize:{'words.generated.aktivera'} @:{'words.generated.eller'} @:{'words.generated.inaktivera'} @:{'words.generated.e'}-postsystemet\",\"from_address\":\"Avsändaradress\",\"from_email\":\"@.capitalize:{'words.generated.from'} @.capitalize:{'words.generated.email'}\",\"from_email_desc\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postadressen'} @:{'words.generated.som'} @:{'words.generated.e'}-postmeddelanden @:{'words.generated.skickas'} @:{'words.generated.fran'}\",\"from_name\":\"@.capitalize:{'words.generated.from'} @.capitalize:{'words.generated.name'}\",\"from_name_desc\":\"@:{'words.generated.namnet'} @:{'words.generated.som'} @:{'words.generated.visas'} @:{'words.generated.som'} avsändare\",\"general_settings\":\"@:{'words.generated.general'} @.capitalize:{'words.generated.settings'}\",\"general_settings_desc\":\"@:{'words.generated.general'} @:{'words.generated.email'} @:{'words.generated.settings'}\",\"mailersend_api_key\":\"@:{'words.generated.mailersend'} @:{'words.generated.api'} @.capitalize:{'words.generated.key'}\",\"mailersend_api_key_desc\":\"@:{'templates.generated.compat.configuration.mailersend.api_key_desc'}\",\"mailersend_integration\":\"@:{'words.generated.mailersend'} @.capitalize:{'words.generated.integration'}\",\"mailersend_integration_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.mailersend'} @:{'words.generated.integration'} @:{'words.generated.settings'}\",\"reply_to_email\":\"@:{'words.generated.reply'}-@.capitalize:{'words.generated.to'} @.capitalize:{'words.generated.email'}\",\"reply_to_email_desc\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postadressen'} @:{'words.generated.som'} @:{'words.generated.svar'} @:{'words.generated.skickas'} @:{'words.generated.till'}\",\"reply_to_name\":\"@:{'words.generated.reply'}-@.capitalize:{'words.generated.to'} @.capitalize:{'words.generated.name'}\",\"reply_to_name_desc\":\"@:{'words.generated.namnet'} @:{'words.generated.som'} @:{'words.generated.visas'} @:{'words.generated.for'} @:{'words.generated.svar'}\",\"sender_identity_desc\":\"@.capitalize:{'words.generated.konfigurera'} @:{'words.generated.avsandaridentitet'} @:{'words.generated.for'} @:{'words.generated.utgaende'} @:{'words.generated.e'}-@:{'words.generated.post'}\",\"smtp_encryption\":\"@:{'words.generated.smtp'} @.capitalize:{'words.generated.encryption'}\",\"smtp_encryption_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.encryption'} method @:{'words.generated.for_2'} @:{'words.generated.smtp'}\",\"smtp_host\":\"@:{'words.generated.smtp'} @.capitalize:{'words.generated.host'}\",\"smtp_host_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.smtp'} @:{'words.generated.server'} hostname\",\"smtp_password\":\"@:{'words.generated.smtp'} @.capitalize:{'words.generated.password'}\",\"smtp_password_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.smtp'} @:{'words.generated.authentication'} @:{'words.generated.password'}\",\"smtp_port\":\"@:{'words.generated.smtp'} @.capitalize:{'words.generated.port'}\",\"smtp_port_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.smtp'} @:{'words.generated.server'} @:{'words.generated.port'}\",\"smtp_settings\":\"@:{'words.generated.smtp'} @.capitalize:{'words.generated.settings'}\",\"smtp_settings_desc\":\"@.capitalize:{'words.generated.configure'} @:{'words.generated.smtp'} @:{'words.generated.server'} @:{'words.generated.settings'}\",\"smtp_user\":\"@:{'words.generated.smtp'}-@:{'words.generated.anvandare'}\",\"smtp_username\":\"@:{'words.generated.smtp'} @.capitalize:{'words.generated.username'}\",\"smtp_username_desc\":\"@.capitalize:{'words.generated.anvandarnamn'} @:{'words.generated.for'} @:{'words.generated.smtp'}-autentisering\",\"subtitle\":\"@.capitalize:{'words.generated.configure'} @:{'words.generated.email'} @:{'words.generated.settings'}\",\"test_email_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.nar'} @:{'words.generated.testmejlet'} @:{'words.generated.skickades'}\",\"test_email_sent\":\"@.capitalize:{'words.generated.test'} @.capitalize:{'words.generated.email'} @.capitalize:{'words.generated.sent'}\",\"test_email_sent_success\":\"@.capitalize:{'words.generated.testmejlet'} @:{'words.generated.skickades'}\",\"title\":\"@.capitalize:{'words.generated.email'} @.capitalize:{'words.generated.configuration'}\"},\"fxrates\":{\"api_key_desc\":\"@.capitalize:{'words.generated.valutakurser'} @:{'words.generated.api'}-@:{'words.generated.nyckeln'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.hamta'} @:{'words.generated.valutakurser'}\",\"api_settings_desc\":\"@.capitalize:{'words.generated.anslutningsinstallningar'} @:{'words.generated.for'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'}.\",\"conversion_rates\":\"@.capitalize:{'words.generated.valutakurser'}\",\"daily_limit\":\"@:{'words.generated.daglig'} @:{'words.generated.begaransgrans'}\",\"daily_limit_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.dagliga'} @:{'words.generated.begaransgransen'} @:{'words.generated.for'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'}-@:{'words.generated.integrationen'}.\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.allmanna'} @:{'words.generated.installningarna'} @:{'words.generated.for'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'}-@:{'words.generated.integrationen'}.\",\"get_rates\":\"@:{'words.generated.hent'} @:{'words.generated.valutakurser'}\",\"getting_rates\":\"Henter @:{'words.generated.valutakurser'} fra @:{'words.generated.dkk'}\",\"getting_rates_desc\":\"@.capitalize:{'words.generated.vanta'} @:{'words.generated.medan'} @:{'words.generated.vi'} @:{'words.generated.hamtar'} @:{'words.generated.valutakurser'} @:{'words.generated.fran'} @:{'words.generated.dkk'} @:{'words.generated.till'} andra valutor.\",\"rates_fetched\":\"@.capitalize:{'words.generated.valutakurser'} @:{'words.generated.hamtade'}\",\"rates_fetched_desc\":\"Valutakurserna @:{'words.generated.har'} hämtats.\",\"show_rates\":\"@:{'words.generated.vis'} @:{'words.generated.valutakurser'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.konfiguration'}\",\"update_rates\":\"@:{'words.generated.opdater'} @:{'words.generated.valutakurser'}\"},\"general\":{\"currency\":\"@:{'templates.generated.compat.user_admin.currency'}\",\"language\":\"@:{'templates.generated.compat.common.language'}\",\"timezone\":\"Tidssone\",\"title\":\"Generelt\",\"title_desc\":\"De allmänna inställningarna @:{'words.generated.for'} FX Rates @:{'words.generated.api'}-integrationen.\"},\"integrations\":{\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.integrasjoner'}\"},\"limble\":{\"api_key\":\"@:{'words.generated.api'}-@:{'words.generated.nyckel'}\",\"api_key_desc\":\"@:{'words.generated.limble'} @:{'words.generated.api'}-@:{'words.generated.nyckeln'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.limble'}-@:{'words.generated.integrationen'}\",\"api_settings\":\"@:{'words.generated.api'}-@:{'words.generated.anslutningsinstallningar'}\",\"api_settings_desc\":\"@.capitalize:{'words.generated.anslutningsinstallningar'} @:{'words.generated.for'} @:{'words.generated.limble'} @:{'words.generated.api'}.\",\"client_id\":\"@:{'words.generated.client'} @.upper:{'words.generated.id'}\",\"client_id_desc\":\"@:{'words.generated.client'} @.upper:{'words.generated.id'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.api'}-@:{'words.generated.anslutningen'}.\",\"client_secret\":\"@:{'words.generated.client'} @.capitalize:{'words.generated.secret'}\",\"client_secret_desc\":\"@:{'words.generated.client'} @:{'words.generated.secret'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.api'}-@:{'words.generated.anslutningen'}.\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.anslutningen'} @:{'words.generated.till'} @:{'words.generated.limble'} @:{'words.generated.api'} @:{'words.generated.misslyckades'}!\",\"connection_success\":\"@.capitalize:{'words.generated.anslutning'} @:{'words.generated.lyckades'}\",\"connection_success_desc\":\"@.capitalize:{'words.generated.anslutningen'} @:{'words.generated.till'} @:{'words.generated.limble'} @:{'words.generated.api'} @:{'words.generated.lyckades'}!\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.limble'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.limble'} @:{'words.generated.integrationen'}.\",\"enable_webhooks\":\"@.capitalize:{'words.generated.aktivera'} @:{'words.generated.webhooks'} @:{'words.generated.for'} @:{'words.generated.omedelbar'} @:{'words.generated.synkronisering'}\",\"enable_webhooks_desc\":\"@.capitalize:{'words.generated.aktivera'} @:{'words.generated.eller'} @:{'words.generated.inaktivera'} @:{'words.generated.limble'}-@:{'words.generated.webhooks'} @:{'words.generated.for'} @:{'words.generated.omedelbar'} @:{'words.generated.synkronisering'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for_2'} @:{'words.generated.limble'} @:{'words.generated.integrationen'}.\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.limble'} @:{'words.generated.integrationen'}\",\"test_connection\":\"@.capitalize:{'words.generated.test'} forbindelse\",\"title\":\"@:{'words.generated.limble'} @:{'words.generated.konfiguration'}\"},\"mailersend\":{\"api_key_desc\":\"@:{'words.generated.mailersend'} @:{'words.generated.api'}-@:{'words.generated.nyckeln'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.mailersend'}-@:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.mailersend'}-@:{'words.generated.konfiguration'}\"},\"motor_api\":{\"api_key_desc\":\"@:{'words.generated.motor'} @:{'words.generated.api'}-@:{'words.generated.nyckeln'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.motor'} @:{'words.generated.api'}-@:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.motor'} @:{'words.generated.api'}-@:{'words.generated.konfiguration'}\"},\"motorapi\":{\"api_settings_desc\":\"@.capitalize:{'words.generated.anslutningsinstallningar'} @:{'words.generated.for'} @:{'words.generated.motorapi'} @:{'words.generated.api'}.\",\"daily_limit_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.dagliga'} @:{'words.generated.begaransgransen'} @:{'words.generated.for'} @:{'words.generated.motorapi'}-@:{'words.generated.integrationen'}.\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.motorapi'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.motorapi'} @:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.allmanna'} @:{'words.generated.installningarna'} @:{'words.generated.for'} @:{'words.generated.motorapi'}-@:{'words.generated.integrationen'}.\",\"get_license_plate\":\"@:{'words.generated.hent'} @:{'words.generated.nummerplade'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.motorapi'} @:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.motorapi'} @:{'words.generated.konfiguration'}\"},\"products\":{\"add\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.produkt'}\",\"delete_confirm\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.denna'} @:{'words.generated.produkt'}?\",\"edit\":\"@:{'templates.generated.compat.products.edit_product'}\"},\"slack\":{\"customer_registration_webhook_url\":\"Webhook-URL för kundregistreringar\",\"customer_registration_webhook_url_desc\":\"Slack-webhook som får ett meddelande när en ny kundregistrering lyckas. Lämna tomt för att inaktivera.\",\"internal_department_goal_progress_save_error\":\"Det gick inte att spara Slack-inställningar för interna avdelningar.\",\"internal_department_goal_progress_saved\":\"Slack-inställningar för interna avdelningar sparades\",\"internal_department_goal_progress_webhook_url\":\"Webhook-URL för måluppföljning för interna avdelningar\",\"internal_department_goal_progress_webhook_url_desc\":\"Slack-webhook som får den sammanlagda måluppföljningen för interna avdelningar. Lämna tomt för att inaktivera den sammanlagda aviseringen.\",\"internal_departments\":\"Interna avdelningar\",\"internal_departments_desc\":\"Avdelningar som väljs här ingår i den interna Slack-översikten för måluppföljning.\",\"internal_departments_empty\":\"Inga avdelningar hittades.\",\"notification_settings\":\"Aviseringsinställningar\",\"notification_settings_desc\":\"Slack-webhooks för systemhändelser.\",\"save_internal_departments\":\"Spara interna avdelningar\",\"send_test_webhook\":\"Skicka test-webhook\",\"subtitle\":\"Konfiguration av Slack-aviseringar\",\"test_customer_registration_webhook\":\"Testa webhook för kundregistreringar\",\"test_internal_department_goal_progress_webhook\":\"Testa webhook för måluppföljning för interna avdelningar\",\"test_internal_department_goal_progress_webhook_not_configured\":\"Spara en webhook-URL för måluppföljning för interna avdelningar innan du skickar ett test.\",\"test_internal_department_goal_progress_webhook_sent_success\":\"Slack-testmeddelandet för måluppföljning för interna avdelningar skickades.\",\"test_webhook_error\":\"Det gick inte att skicka Slack-testwebhooken.\",\"test_webhook_not_configured\":\"Spara en webhook-URL för kundregistreringar innan du skickar ett test.\",\"test_webhook_sent\":\"Slack-test skickat\",\"test_webhook_sent_success\":\"Slack-testmeddelandet för kundregistrering skickades.\",\"title\":\"Slack-konfiguration\",\"unavailable\":\"Slack-konfigurationen är inte tillgänglig i den här API-versionen.\"},\"shelly\":{\"api_key_desc\":\"@:{'words.generated.shelly'} @:{'words.generated.api'}-@:{'words.generated.nyckeln'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.shelly'}-@:{'words.generated.integrationen'}\",\"api_settings_desc\":\"@.capitalize:{'words.generated.anslutningsinstallningar'} @:{'words.generated.for'} @:{'words.generated.shelly'} @:{'words.generated.api'}.\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.anslutningen'} @:{'words.generated.till'} @:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.misslyckades'}!\",\"connection_success_desc\":\"@.capitalize:{'words.generated.anslutningen'} @:{'words.generated.till'} @:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.lyckades'}!\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.shelly'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.shelly'} @:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.allmanna'} @:{'words.generated.installningarna'} @:{'words.generated.for'} @:{'words.generated.shelly'}-@:{'words.generated.integrationen'}.\",\"secret_key\":\"Hemlig @:{'words.generated.nyckel'} (@:{'words.generated.api'}-@:{'words.generated.nyckel'})\",\"secret_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} hemliga @:{'words.generated.nyckeln'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.api'}-@:{'words.generated.anslutningen'}.\",\"server_url\":\"@.capitalize:{'words.generated.server'} @:{'words.generated.url'}\",\"server_url_desc\":\"@:{'words.generated.url'}'@:{'words.replication.host_definite_suffix'} @:{'words.generated.til'} @:{'words.generated.shelly'} serveren.\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.shelly'} @:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.shelly'} @:{'words.generated.konfiguration'}\"},\"stripe\":{\"api_key_desc\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.stripe'} @:{'words.generated.api'}-@:{'words.generated.nyckel'} @:{'words.generated.for'} betalningsbearbetning\",\"api_settings_desc\":\"@.capitalize:{'words.generated.anslutningsinstallningar'} @:{'words.generated.for'} @:{'words.generated.stripe'} @:{'words.generated.api'}.\",\"customers\":\"@:{'words.generated.stripe'} @:{'words.generated.kunder'}\",\"economic_customer\":\"@:{'words.generated.economic'} @:{'words.generated.kundenummer'}\",\"economic_customer_desc\":\"@.capitalize:{'words.generated.kunden'} @:{'words.generated.der'} bruges @:{'words.generated.til'} @:{'words.generated.at'} gemme @:{'words.generated.stripe'} betalinger @:{'words.generated.i'} @:{'words.generated.economic'} @:{'words.generated.systemet'}.\",\"economic_settings\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} integrationsinställningar\",\"economic_settings_desc\":\"@.capitalize:{'words.generated.installningar'} @:{'words.generated.for'} @:{'words.generated.integrationen'} @:{'words.generated.med'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.systemet'}.\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.stripe'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.stripe'} @:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for_2'} @:{'words.generated.stripe'} @:{'words.generated.integrationen'}.\",\"get_prices\":\"@:{'words.generated.hent'} @:{'words.generated.priser'}\",\"get_products\":\"@:{'words.generated.hent'} @:{'words.generated.produkter'}\",\"prices\":\"@:{'words.generated.stripe'} @:{'words.generated.priser'}\",\"products\":\"@:{'words.generated.stripe'} @:{'words.generated.produkter'}\",\"publishable_key\":\"Publik @:{'words.generated.nyckel'}\",\"publishable_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} publika @:{'words.generated.nyckeln'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.api'}-@:{'words.generated.anslutningen'}.\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.stripe'} @:{'words.generated.integrationen'}\",\"test_mode\":\"@.capitalize:{'words.generated.testlage'}\",\"test_mode_desc\":\"@.capitalize:{'words.generated.aktivera'} @:{'words.generated.testlage'} @:{'words.generated.for'} @:{'words.generated.stripe'}-@:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.stripe'} @:{'words.generated.konfiguration'}\",\"webhook_secret\":\"@.capitalize:{'words.generated.webhook'}-@:{'words.generated.hemlighet'}\",\"webhook_secret_desc\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.stripe'} @:{'words.generated.webhook'}-@:{'words.generated.hemlighet'} @:{'words.generated.for'} händelsehantering\"},\"subtitle\":\"@:{'words.generated.administrer'} systemkonfigurasjon\",\"users\":{\"subtitle\":\"@:{'words.generated.administrer'} brukere\"},\"virkdata\":{\"api_key_desc\":\"@:{'words.generated.virk'} @.capitalize:{'words.generated.data'} @:{'words.generated.api'}-@:{'words.generated.nyckeln'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.virk'} @.capitalize:{'words.generated.data'}-@:{'words.generated.integrationen'}\",\"api_settings_desc\":\"@.capitalize:{'words.generated.anslutningsinstallningar'} @:{'words.generated.for'} @:{'words.generated.virkdata'} @:{'words.generated.api'}.\",\"company_selected\":\"@.capitalize:{'words.generated.foretag'} @:{'words.generated.valt'}\",\"company_selected_desc\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.valgt'} {name} ({cvr})\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.virkdata'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.virkdata'} @:{'words.generated.integrationen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.allmanna'} @:{'words.generated.installningarna'} @:{'words.generated.for'} @:{'words.generated.virkdata'}-@:{'words.generated.integrationen'}.\",\"monthly_limit\":\"Månatlig @:{'words.generated.begaransgrans'}\",\"monthly_limit_desc\":\"@.capitalize:{'words.replication.article.host_mention'} månatliga @:{'words.generated.begaransgransen'} @:{'words.generated.for'} @:{'words.generated.virkdata'}-@:{'words.generated.integrationen'}.\",\"no_results\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.resultater'}\",\"no_results_desc\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.foretag'} @:{'words.generated.hittades'} @:{'words.generated.som'} @:{'words.generated.matchar'} @:{'words.generated.din'} @:{'words.generated.sokning'}.\",\"search_company\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.foretag'}\",\"search_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.vid'} @:{'words.generated.sokning'} @:{'words.generated.efter'} @:{'words.generated.foretag'}.\",\"select_company\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.ett'} @:{'words.generated.foretag'}\",\"select_company_required\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.maste'} @:{'words.generated.valja'} @:{'words.generated.ett'} @:{'words.generated.foretag'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.virkdata'} @:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.virkdata'} @:{'words.generated.konfiguration'}\"},\"workfeed\":{\"api_key\":\"@:{'words.generated.api'} @:{'words.generated.key'}\",\"api_key_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.used'} @:{'words.generated.to'} authenticate @:{'words.generated.requests'} @:{'words.generated.to'} @:{'words.generated.workfeed'}.\",\"api_settings\":\"@:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}\",\"api_settings_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'} @:{'words.generated.used'} @:{'words.generated.for_2'} @:{'words.generated.workfeed'} @:{'words.generated.requests'}.\",\"api_url\":\"@:{'words.generated.api'} @:{'words.generated.url'}\",\"api_url_desc\":\"@.capitalize:{'words.generated.the'} base @:{'words.generated.url'} @:{'words.generated.for_2'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.api'}.\",\"close\":\"@:{'words.generated.close'}\",\"company_id\":\"@.capitalize:{'words.generated.company'} @.upper:{'words.generated.id'}\",\"company_id_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.company'} identifier @:{'words.generated.used'} @:{'words.generated.for_2'} @:{'words.generated.api'} synchronization.\",\"diagnostics\":{\"description\":\"@.capitalize:{'words.generated.run'} @:{'words.generated.test'} @:{'words.generated.lookups'} against @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'} endpoints.\",\"get_employee\":\"@:{'words.generated.get'} @:{'words.generated.employee'} @:{'words.generated.by'} @.upper:{'words.generated.id'}\",\"get_shift\":\"@:{'words.generated.get'} @:{'words.generated.shift'} @:{'words.generated.by'} @.upper:{'words.generated.id'}\",\"list_departments\":\"@.capitalize:{'words.generated.list'} @:{'words.generated.departments'}\",\"list_employees\":\"@.capitalize:{'words.generated.list'} @:{'words.generated.employees'}\",\"list_shifts\":\"@.capitalize:{'words.generated.list'} shifts\",\"no_params_required\":\"@.capitalize:{'words.generated.no'} query parameters @:{'words.generated.are'} @:{'words.generated.required'} @:{'words.generated.for_2'} @:{'words.generated.this'} @:{'words.generated.lookup'}.\",\"placeholder_employee_id\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. emp_01J5P2F2A0CQKBBX4P8M3Y7R5P\",\"placeholder_released\":\"@:{'words.generated.true'} @:{'words.generated.or'} @:{'words.generated.false'}\",\"placeholder_search\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. north facility\",\"placeholder_shift_id\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. shf_01J5P3X9D35R9C6BDZ1S0R4V6Q\",\"placeholder_start_from\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 2026-03-24T00:00:@:{'words.generated.word_00z'}\",\"placeholder_start_to\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 2026-03-25T00:00:@:{'words.generated.word_00z'}\",\"placeholder_status\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. published\",\"prompt_employee_id\":\"@.capitalize:{'words.generated.employee'} @.upper:{'words.generated.id'}\",\"prompt_employee_id_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.employee'} @.upper:{'words.generated.id'}\",\"prompt_released_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.released'} @:{'words.generated.filter'} (@:{'words.generated.true'}/@:{'words.generated.false'})\",\"prompt_search_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.search'} @:{'words.generated.text'}\",\"prompt_shift_id\":\"@.capitalize:{'words.generated.shift'} @.upper:{'words.generated.id'}\",\"prompt_start_from\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.start'} @:{'words.generated.from'} (@:{'words.generated.iso'} 8601)\",\"prompt_start_to\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.start'} @:{'words.generated.to'} (@:{'words.generated.iso'} 8601)\",\"prompt_status_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.shift'} @:{'words.generated.status'}\",\"result_departments\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"result_employee\":\"@.capitalize:{'words.generated.employee'} @:{'words.generated.result'}\",\"result_employees\":\"@.capitalize:{'words.generated.employee'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"result_shift\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.result'}\",\"result_shifts\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"select_employee_all\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.employees'}\",\"select_released_all\":\"@.capitalize:{'words.generated.all'} release states\",\"select_released_false\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.released'} @:{'words.generated.only'}\",\"select_released_true\":\"@.capitalize:{'words.generated.released'} @:{'words.generated.only'}\",\"title\":\"Diagnostics\",\"validation_datetime_invalid\":\"@.capitalize:{'words.generated.invalid'} @:{'words.generated.date'}-@:{'words.generated.time'} @:{'words.generated.value'}.\",\"validation_released_boolean\":\"@.capitalize:{'words.generated.released'} @:{'words.generated.must'} @:{'words.generated.be'} either @:{'words.generated.true'} @:{'words.generated.or'} @:{'words.generated.false'}.\",\"validation_shift_range_required\":\"startFrom @:{'words.generated.and'} startTo @:{'words.generated.are'} @:{'words.generated.required'}.\"},\"enable\":\"@:{'words.generated.enable'} @:{'words.generated.workfeed'}\",\"enable_desc\":\"@:{'words.generated.enable'} @:{'words.generated.or'} @:{'words.generated.disable'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}.\",\"general_settings_desc\":\"@:{'words.generated.general'} @:{'words.generated.settings'} @:{'words.generated.for_2'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}.\",\"lookup\":\"@.capitalize:{'words.generated.lookup'}\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.workfeed'} @:{'words.generated.configuration'}\",\"validation_required\":\"@.capitalize:{'words.generated.this'} @:{'words.generated.field'} @:{'words.generated.is'} @:{'words.generated.required'}.\"},\"xlvask\":{\"api_key_desc\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'} @:{'words.generated.api'}-@:{'words.generated.nyckeln'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-@:{'words.generated.integrationen'}\",\"api_settings_desc\":\"@.capitalize:{'words.generated.anslutningsinstallningar'} @:{'words.generated.for'} @:{'words.generated.xlvask'} @:{'words.generated.api'}.\",\"automation_settings\":\"Automatisering\",\"automation_settings_desc\":\"Styr @:{'words.generated.automatisk'} @:{'words.generated.orderkoppling'} @:{'words.generated.och'} @:{'words.generated.orderskapande'} @:{'words.generated.fran'} @.capitalize:{'words.generated.selvvask'}.\",\"connection_failed\":\"@.capitalize:{'words.generated.anslutning'} @:{'words.generated.misslyckades'}\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.anslutningen'} @:{'words.generated.till'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.misslyckades'}.\",\"connection_success_desc\":\"@.capitalize:{'words.generated.anslutningen'} @:{'words.generated.till'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.lyckades'}.\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.xlvask'}\",\"enable_automatic_attachment\":\"@.capitalize:{'words.generated.automatisk'} @:{'words.generated.orderkoppling'}\",\"enable_automatic_attachment_desc\":\"@.capitalize:{'words.generated.koppla'} @:{'words.generated.sakra'} @.capitalize:{'words.generated.selvvask'}-träffar @:{'words.generated.automatiskt'} @:{'words.generated.till'} befintliga @:{'words.generated.ordrar'}.\",\"enable_automatic_creation\":\"@.capitalize:{'words.generated.automatiskt'} @:{'words.generated.orderskapande'}\",\"enable_automatic_creation_desc\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.sakra'} @.capitalize:{'words.generated.selvvask'}-@:{'words.generated.ordrar'} @:{'words.generated.automatiskt'} @:{'words.generated.nar'} @:{'words.generated.tvatten'} @:{'words.generated.ar'} @:{'words.generated.aldre'} @:{'words.generated.an_2'} 6 @:{'words.generated.timmar'}.\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.xlvask'} @:{'words.generated.integrationen'}.\",\"enable_openai_integration\":\"@:{'words.generated.openai'}-förslag\",\"enable_openai_integration_desc\":\"@.capitalize:{'words.generated.anvand'} @:{'words.generated.openai'} @:{'words.generated.for'} @:{'words.generated.att'} föreslå @:{'words.generated.koppling'} @:{'words.generated.eller'} @:{'words.generated.skapande'} @:{'words.generated.nar'} fasta @:{'words.generated.regler'} @:{'words.generated.inte'} @:{'words.generated.ar'} @:{'words.generated.sakra'} nog.\",\"enable_sync\":\"@:{'words.generated.aktiver'} @:{'words.generated.automatisk'} @:{'words.generated.synkronisering'}\",\"enable_sync_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.xlvask'} @:{'words.generated.automatisk'} @:{'words.generated.synkronisering'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.indstillinger'} @:{'words.generated.for_2'} @:{'words.generated.xlvask'} @:{'words.generated.integrationen'}.\",\"password_desc\":\"@.capitalize:{'words.generated.losenordet'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.api'}-@:{'words.generated.anslutningen'}.\",\"subtitle\":\"@.capitalize:{'words.generated.konfiguration'} @:{'words.generated.af'} @:{'words.generated.xlvask'} @:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.xlvask'} @:{'words.generated.konfiguration'}\",\"username_desc\":\"Användarnamnet @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.api'}-@:{'words.generated.anslutningen'}.\"},\"release_manager\":{\"integrations\":{\"title\":\"GitHub och Coolify\",\"subtitle\":\"Koppla GitHub-repositories och branches till kanalspecifika Coolify-tjänster.\",\"choose_repository\":\"Välj repository\",\"add_health_url\":\"lägg till health-URL\",\"github_token_not_configured\":\"GitHub-token er ikke konfigureret; private repositories kan ikke vises.\",\"open_github_token_settings\":\"Öppna GitHub token-inställningar\",\"channel\":\"Kanal\",\"app\":\"App\",\"repository\":\"Repository\",\"repository_message\":\"Eksempel: truckwash/backend-php\",\"repository_placeholder\":\"ejer/repo\",\"branch\":\"Branch\",\"branch_message\":\"Eksempel: release/canary\",\"branch_placeholder\":\"branch\",\"latest_prefix\":\"Seneste: {commit}\",\"coolify_instance\":\"Coolify-instans\",\"coolify_instance_message\":\"Lad feltet være tomt for manuelle deployment-poster.\",\"no_coolify_instance\":\"Ingen Coolify-instans\",\"coolify_instance_placeholder\":\"Coolify-instans-id\",\"coolify_service_uuid\":\"Coolify service-UUID\",\"coolify_service_uuid_message\":\"Vælg en eksisterende service eller indsæt en UUID.\",\"coolify_service_uuid_placeholder\":\"Coolify service-UUID\",\"health_url\":\"Health-URL\",\"health_url_message\":\"Eksempel: https://api-canary.example.test/ping\",\"health_url_placeholder\":\"Health-URL\",\"ssl_domain\":\"Load balancer-domän\",\"ssl_domain_message\":\"Måste vara en DNS-domän som routas till Coolify load balancern. Exempel: api-v2.truckwash.io\",\"ssl_domain_placeholder\":\"Load balancer-domän\",\"https_domain_for_coolify\":\"Domän som kontrolleras av load balancern\",\"endpoint_mode\":\"Endpoint mode\",\"endpoint_mode_message\":\"Use automatic gateway routing or manually override the public host and port.\",\"endpoint_mode_auto\":\"Auto\",\"endpoint_mode_manual\":\"Manual\",\"manual_endpoint_host\":\"Manual host\",\"manual_endpoint_host_message\":\"Public host shown in release previews when manual mode is selected.\",\"manual_endpoint_host_placeholder\":\"api-v2.truckwash.io\",\"manual_endpoint_port\":\"Manual public port\",\"manual_endpoint_port_message\":\"Optional public port from 1 to 65535.\",\"app_port\":\"App port\",\"app_port_message\":\"Internal container port exposed to Coolify routing.\",\"auto_gateway_endpoint\":\"Automatic gateway endpoint\",\"pending_automatic_endpoint\":\"Automatic endpoint resolution pending\",\"auto_deploy\":\"Auto deploy\",\"auto_deploy_tooltip\":\"Opret automatisk deployments, når dette mål ændres.\",\"coolify_ssl\":\"Coolify SSL\",\"coolify_ssl_tooltip\":\"Bed Coolify om at oprette HTTPS for det konfigurerede domæne.\",\"deploy_now\":\"Deploy nu\",\"deploy_now_tooltip\":\"Start en deployment straks efter målet gemmes.\",\"create_missing_service\":\"Skapa saknad tjänst\",\"create_missing_service_tooltip\":\"Tillad Release Manager at oprette en manglende Coolify-service.\",\"test_access_tooltip\":\"Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch.\"},\"title\":\"Release Manager\",\"subtitle\":\"Gradvisa API- och Front-End-versioner\",\"channel_names\":{\"stable\":\"Stabil\",\"canary\":\"Canary\",\"internal\":\"Intern\"},\"channel_descriptions\":{\"stable\":\"Standardkanal för produktion.\",\"canary\":\"Tidig produktionsvalideringskanal.\",\"internal\":\"Intern kanal för personal och superanvändarvalidering.\"},\"control_api\":{\"title\":\"Kontroll-API\",\"tooltip\":\"Release Manager-åtgärder skickas till detta API. Använd produktions-API:t om du inte testar en staging-backend.\",\"example\":\"Exempel: https://api.truckwash.io:4433\",\"endpoint_label\":\"API-endpoint\",\"endpoint_message\":\"Ändra detta endast när Release Manager-endpoints finns på mål-API:t.\",\"endpoint_aria\":\"Release Manager kontroll-API URL\",\"use_tooltip\":\"Läs in release-data från detta API\",\"use\":\"Använd\",\"reset_tooltip\":\"Gå tillbaka till standard kontroll-API\",\"reset\":\"Återställ\",\"known_endpoints\":\"Kända kontroll-API-endpoints\"},\"tabs\":{\"overview\":{\"label\":\"Översikt\",\"description\":\"Kanalhälsa, installationsstatus och senaste release-läge.\"},\"channels\":{\"label\":\"Kanaler\",\"description\":\"Skapa stabila, canary- och riktade kanaler med rollout-gränser.\"},\"assignments\":{\"label\":\"Tilldelningar\",\"description\":\"Koppla användare, underanvändare eller kunder till en specifik release-kanal.\"},\"deployments\":{\"label\":\"Utrullningar\",\"description\":\"Starta utrullningar och promovera lyckade byggen.\"},\"replay\":{\"label\":\"Replay\",\"description\":\"Aktivera riktad insamling och sök i release-tidslinjehändelser.\"},\"integrations\":{\"label\":\"Integrationer\",\"description\":\"Anslut GitHub-repositories, branches och Coolify-tjänster.\"},\"settings\":{\"label\":\"Inställningar\",\"description\":\"Konfigurera Release Managers GitHub-åtkomst och webhook-inställningar.\"}},\"loading\":{\"summary\":\"Laddar Release Manager-data...\",\"refreshing_summary\":\"Uppdaterar Release Manager-data...\",\"summary_detail\":\"Release-status, kanaler, deployments och servicehalsa laddas.\",\"channels\":\"Laddar release-kanaler...\",\"channels_detail\":\"Kanalvyer och release-beroenden laddas.\",\"assignments\":\"Laddar release-tilldelningar...\",\"deployments\":\"Laddar release-deployments...\",\"operations\":\"Laddar release-operationer...\",\"data_services\":\"Laddar release-datatjanster...\",\"integrations\":\"Laddar release-integrationer...\",\"settings\":\"Laddar Release Manager-installningar...\",\"github_repositories\":\"Laddar GitHub-repositories...\",\"timeline_sessions\":\"Laddar release-tidslinjesessioner...\",\"timeline_events\":\"Laddar release-tidslinjehandelser...\",\"refreshing_timeline\":\"Uppdaterar release-tidslinje...\"},\"setup\":{\"channels\":\"Kanaler\",\"targets\":\"GitHub- och Coolify-mål\",\"assignments\":\"Pilottilldelningar\",\"deployments\":\"Första utrullningen\",\"replay\":\"Replay-insamling\"},\"stats\":{\"channels\":\"Kanaler\",\"targets\":\"Mål\",\"deployments\":\"Utrullningar\",\"timeline_events\":\"Tidslinjehändelser\"},\"overview\":{\"title\":\"Översikt\",\"subtitle\":\"Aktuell kanalhälsa, release-aktivitet och modulstatus.\",\"guided_setup\":\"Guidad installation\",\"next_step\":\"Nästa: {step}\",\"ready\":\"Release Manager är klar för daglig drift.\",\"add_suggested_channel\":\"Lägg till föreslagen kanal\",\"module_health_empty\":\"Modulhälsosnapshots visas när probes har registrerats.\"},\"settings\":{\"title\":\"Release Manager-inställningar\",\"subtitle\":\"Konfigurera GitHub-token som används för privata repositories och branch-uppslag.\",\"github_token\":\"GitHub-token\",\"github_api_url\":\"GitHub API-URL\",\"webhook_secret\":\"Webhook-hemlighet\",\"github_webhook_secret\":\"GitHub webhook-hemlighet\",\"configured\":\"Konfigurerad\",\"not_configured\":\"Inte konfigurerad\",\"loaded_from\":\"Inläst från {variable}\",\"set_below\":\"Ange {variable} nedan\",\"private_repositories_prefix\":\"Privata repositories läses med serverns miljövariabel\",\"private_repositories_or\":\"eller modulens konfigurationsvariabel\",\"github_token_message\":\"Exempel: github_pat_... med åtkomst till de privata repositories som Release Manager distribuerar.\",\"github_token_placeholder\":\"Lämna tomt för att behålla befintlig token\",\"github_api_url_message\":\"Konfigurerad i ReleaseManager.github_api_url. Använd https://api.github.com om du inte använder GitHub Enterprise.\",\"webhook_secret_message\":\"Valfritt; lämna tomt för att behålla befintlig hemlighet.\",\"webhook_secret_placeholder\":\"Webhook HMAC-hemlighet\",\"save\":\"Spara inställningar\",\"back_to_integrations\":\"Tillbaka till integrationer\",\"guide\":{\"steps\":{\"github_token\":\"GitHub-token\",\"github_api_url\":\"GitHub API-URL\",\"github_webhook_secret\":\"GitHub webhook secret\",\"review\":\"Gennemgang\"},\"github_token_title\":\"Lägg till GitHub-token\",\"github_token_description\":\"Release Manager använder denna token för att lista privata repositories, branches och commits innan ett deployment-mål sparas eller testas.\",\"configure_this_in\":\"Konfigurera detta i\",\"server_environment_variable\":\"Serverns miljövariabel\",\"takes_precedence\":\"har företräde när den är satt.\",\"recommended_access\":\"Rekommenderad åtkomst\",\"recommended_access_description\":\"Fine-grained GitHub-token med Contents: read-åtkomst till varje release-repository.\",\"github_api_url_title\":\"Lägg till GitHub API-URL\",\"github_api_url_description\":\"Brug GitHub Cloud som standard, eller peg på REST API-base-URLen for en GitHub Enterprise Server-installation.\",\"github_api_url_invalid\":\"Ange en fullständig HTTP- eller HTTPS-URL.\",\"github_cloud\":\"GitHub Cloud\",\"enterprise_example\":\"Enterprise-exempel\",\"github_webhook_secret_title\":\"Lägg till GitHub webhook secret\",\"github_webhook_secret_description\":\"Brug samme secret i GitHub repository-webhooks, så Release Manager kan verificere deployment-events, før de håndteres.\",\"github_webhook_url\":\"GitHub webhook-URL:\",\"store_shared_secret_in\":\"Spara den delade secret i\",\"review_title\":\"Granska GitHub-konfiguration\",\"review_description\":\"Gem værdierne, og brug derefter Integrationer til at vælge et privat repository, branch og specifik commit eller seneste commit før adgang testes.\",\"ready\":\"Klar\",\"needs_value\":\"Saknar värde\"}},\"channel_unavailable\":{\"kicker\":\"Release Manager\",\"title\":\"Release-kanalen är inte klar\",\"summary_prefix\":\"Ditt konto är tilldelat\",\"summary_suffix\":\", men kanalen saknar obligatorisk release-konfiguration.\",\"release_bundle\":\"Release-bundle\",\"frontend_version\":\"Frontend-version\",\"api_version\":\"API-version\",\"frontend_base_url\":\"Frontend-URL\",\"api_base_url\":\"API-URL\",\"frontend_entry\":\"Frontend-entry\",\"release_runtime\":\"Release-runtime\",\"checking_again\":\"Kontrollerar igen om {seconds}s\",\"refresh_error\":\"Release-status kunde inte uppdateras. Nästa automatiska kontroll försöker igen.\",\"ignore\":\"Ignorera de kommande 5 minuterna\",\"check_again\":\"Kontrollera igen\",\"logout\":\"Logga ut\",\"base_image\":\"Bas-image\"},\"channel_switched\":{\"kicker\":\"Release Manager\",\"title\":\"Du är nu på {channel}\",\"summary_prefix\":\"Ditt konto har tilldelats release-kanalen\",\"summary_suffix\":\"Den här enheten kommer ihåg att du har sett detta meddelande.\",\"bundle\":\"Bundle\",\"frontend\":\"Frontend\",\"api\":\"API\",\"frontend_version\":\"Frontend-version\",\"api_version\":\"API-version\",\"assigned_channel\":\"Tilldelad kanal\",\"current_app_image\":\"Nuvarande app-image\",\"current_api\":\"Nuvarande API\",\"base_image\":\"Bas-image\",\"continue\":\"Fortsätt\"},\"channel_selector\":{\"title\":\"Release-kanal\",\"subtitle\":\"Välj vilken tilldelad release-kanal den här enheten ska använda.\",\"sidebar_title\":\"Release\",\"default\":\"Standard\",\"ready\":\"Klar\",\"unavailable\":\"Inte klar\",\"release_bundle\":\"Release-bundle\",\"frontend_version\":\"Frontend-version\",\"api_version\":\"API-version\",\"frontend_base_url\":\"Frontend-URL\",\"api_base_url\":\"API-URL\",\"frontend_entry\":\"Frontend-entry\",\"release_runtime\":\"Release-runtime\",\"bundle\":\"Bundle\",\"frontend\":\"Frontend\",\"api\":\"API\",\"use_local_frontend\":\"Använd lokal frontend\",\"switch_error\":\"Release channel could not be switched. The previous channel is still active.\"},\"common\":{\"yes\":\"ja\",\"no\":\"nej\",\"off\":\"av\"},\"actions\":{\"edit\":\"Redigera\",\"rollback\":\"Rulla tillbaka\",\"update\":\"Uppdatera\",\"create\":\"Skapa\",\"clear\":\"Rensa\",\"assign\":\"Tilldela\",\"remove\":\"Ta bort\",\"test_access\":\"Testa åtkomst\",\"deploy\":\"Deploy\",\"redeploy\":\"Redeploy\",\"promote\":\"Promota\",\"enable\":\"Aktivera\",\"search\":\"Sök\",\"save_target\":\"Spara mål\",\"delete\":\"Radera\",\"back\":\"Tillbaka\",\"next\":\"Nästa\",\"publish_release\":\"Publish release\"},\"tables\":{\"channel\":\"Kanal\",\"rollout\":\"Udrulning\",\"frontend\":\"Frontend\",\"api\":\"API\",\"replay\":\"Replay\",\"actions\":\"Åtgärder\",\"module\":\"Modul\",\"status\":\"Status\",\"checked\":\"Kontrollerad\",\"subject\":\"Emne\",\"reason\":\"Orsak\",\"expires\":\"Upphör\",\"deployment\":\"Deployment\",\"source\":\"Källa\",\"started\":\"Startet\",\"target\":\"Mål\",\"coolify\":\"Coolify\",\"auto\":\"Auto\"},\"values\":{\"app\":{\"frontend\":\"frontend\",\"api\":\"api\"},\"capture_level\":{\"metadata\":\"metadata\",\"full_redacted\":\"helt redigerad\"},\"subject_type\":{\"user\":\"användare\",\"subuser\":\"medarbetare\",\"customer\":\"kund\",\"channel\":\"kanal\"},\"severity\":{\"error\":\"fel\",\"warning\":\"varning\",\"info\":\"info\"},\"status\":{\"ok\":\"ok\",\"active\":\"aktiv\",\"deployed\":\"deployad\",\"stable\":\"stabil\",\"enabled\":\"aktiverad\",\"queued\":\"i kö\",\"deploying\":\"deployar\",\"metadata\":\"metadata\",\"not_configured\":\"inte konfigurerad\",\"warning\":\"varning\",\"failed\":\"misslyckad\",\"down\":\"nere\",\"error\":\"fel\",\"unknown\":\"okänd\"}},\"autocomplete\":{\"suggested_value\":\"Foreslået værdi\",\"suggestion\":\"Forslag\",\"use_typed_value\":\"Brug indtastet værdi\",\"custom\":\"Tilpasset\",\"api_url\":\"API-URL\",\"frontend_url\":\"Frontend-URL\",\"known_release_url\":\"Kendt release-URL\",\"deploy_here_with_coolify\":\"Deploy {app} her med Coolify\",\"prepare_coolify_target\":\"Forbered et Coolify-mål med HTTPS/SSL aktiveret\",\"coolify_ssl\":\"Coolify SSL\",\"github_repository\":\"GitHub-repository\",\"owner_repository\":\"ejer/repository\",\"git_branch\":\"Git-branch\",\"deployment_branch\":\"Deployment-branch\",\"github_commit\":\"GitHub-commit\",\"git_commit\":\"Git-commit\",\"use_specific_commit_sha\":\"Brug specifik commit-SHA\",\"custom_commit\":\"Tilpasset commit\",\"health_url\":\"Health-URL\",\"release_health_check\":\"Release health check\",\"coolify_service\":\"Coolify-service\",\"service_uuid\":\"Service-UUID\",\"known_coolify_service_uuid\":\"Kendt Coolify service-UUID\",\"control_api\":\"Kontrol-API\",\"release_manager_api_endpoint\":\"Release Manager API-endpoint\",\"module\":\"Modul\",\"timeline_module_key\":\"Timeline-modulnøgle\"},\"errors\":{\"github_repositories\":\"Kunne ikke indlæse GitHub-repositories.\",\"github_branches\":\"Kunne ikke indlæse GitHub-branches.\",\"repository_branch_required\":\"Repository og branch er påkrævet før GitHub-adgang kan testes.\",\"github_access_failed\":\"Test af GitHub repository-adgang fejlede.\"},\"channels\":{\"title\":\"Kanaler\",\"subtitle\":\"Skapa och justera gradvisa release-kanaler.\",\"rollout_percent\":\"{percent}% utrullning\",\"already_configured\":\"Redan konfigurerad\",\"slug\":\"Slug\",\"slug_message\":\"Eksempel: canary\",\"slug_placeholder\":\"slug\",\"name\":\"Namn\",\"name_message\":\"Visas för operatörer när de granskar en kanal.\",\"name_placeholder\":\"Namn\",\"rollout\":\"Utrullning\",\"rollout_message\":\"0-100 procent av otilldelad trafik.\",\"frontend_url\":\"Frontend-URL\",\"frontend_url_message\":\"Eksempel: https://canary.example.test\",\"frontend_url_placeholder\":\"Frontend-URL\",\"no_matching_release_url\":\"Ingen matchande release-URL.\",\"api_url\":\"API-URL\",\"api_url_message\":\"Eksempel: https://api-canary.example.test\",\"api_url_placeholder\":\"API-URL\",\"no_matching_api_url\":\"Ingen matchande API-URL.\",\"replay_capture\":\"Replay capture\",\"replay_capture_message\":\"Metadata är säkrare för breda kanaler.\",\"retention_days\":\"Lagringsdagar\",\"retention_days_message\":\"1-365 dagar.\",\"enabled\":\"Aktiverad\",\"default_channel\":\"Standardkanal\",\"replay_enabled\":\"Replay aktiverad\",\"frontend_chip\":\"Frontend: {url}\",\"api_chip\":\"API: {url}\"},\"assignments\":{\"title\":\"Tilldelningar\",\"subtitle\":\"Fäst användare, medarbetare eller kunder till release-kanaler.\",\"subject\":\"Ämne\",\"subject_message\":\"Sök efter användare, medarbetare eller kunder, eller skriv ett manuellt ämne som user:42.\",\"subject_placeholder\":\"Sök eller skriv ämne\",\"subject_empty\":\"Inga ämnen hittades\",\"group_users\":\"Användare\",\"group_subusers\":\"Medarbetare\",\"group_customers\":\"Kunder\",\"group_manual\":\"Manuell\",\"manual_user\":\"Användare #{id}\",\"manual_subuser\":\"Medarbetare #{id}\",\"manual_customer\":\"Kund #{id}\",\"manual_description\":\"Använd inmatat värde {subject}\",\"subject_type\":\"Ämnestyp\",\"subject_type_message\":\"Välj identitetstypen som ska fästas.\",\"customer\":\"Kunde\",\"customer_message\":\"Sök på kundnummer eller namn och välj sedan exakt kund.\",\"customer_placeholder\":\"Sök kund\",\"subject_id\":\"Ämnes-ID\",\"subject_id_message\":\"Exempel: användar-id 42\",\"subject_id_placeholder\":\"Ämnes-id\",\"channel\":\"Kanal\",\"channel_message\":\"Fästa ämnen hoppar över procentutrullningen.\",\"reason\":\"Orsak\",\"reason_message\":\"Exempel: canary-validering för kundsupport.\",\"reason_placeholder\":\"Orsak\",\"expires\":\"Upphör\",\"expires_message\":\"Lämna tomt för ingen automatisk upphörning.\"},\"deployments\":{\"title\":\"Deployments\",\"subtitle\":\"Starta, promota och inspektera release-deployments.\",\"manual_deployment_record\":\"Manuel deployment-post\",\"target\":\"Mål\",\"target_message\":\"Välj ett sparat mål eller behåll manuella fält redigerbara.\",\"select_target_or_manual\":\"Vælg mål eller manuel\",\"channel\":\"Kanal\",\"app\":\"App\",\"repository\":\"Repository\",\"repository_message\":\"Eksempel: truckwash/front-end-vue\",\"repository_placeholder\":\"ejer/repo\",\"branch\":\"Branch\",\"branch_message\":\"Eksempel: master\",\"branch_placeholder\":\"branch\",\"commit_selection\":\"Commit-val\",\"commit_selection_message\":\"Senaste slås upp som branchens head med konfigurerad GitHub-token.\",\"latest_from_branch\":\"Senaste från branch\",\"specific_commit\":\"Specifik commit\",\"specific_commit_message\":\"Eksempel: feedface1234\",\"commit_sha_placeholder\":\"commit sha\",\"version_label\":\"Versionsetikett\",\"version_label_message\":\"Eksempel: api-2026.05.19\",\"version_label_placeholder\":\"versionsetikett\",\"commit_prefix\":\"Commit: {commit}\",\"test_access_tooltip\":\"Bekræft token-adgang til det valgte repository, branch og commit.\"},\"replay\":{\"title\":\"Replay\",\"subtitle\":\"Aktivera riktad capture och gå igenom feltimelines steg för steg.\",\"capture_channel\":\"Capture {channel}\",\"target_type\":\"Måltype\",\"target\":\"Mål\",\"target_message\":\"Exempel: användar-id 42 eller kanal-slug canary.\",\"target_placeholder\":\"Mål-id eller kanal-slug\",\"channel_scope\":\"Kanalavgränsning\",\"channel_scope_message\":\"Valgfrit; begrænser replay capture til en kanal.\",\"no_channel_scope\":\"Ingen kanalavgränsning\",\"capture_level\":\"Capture-niveau\",\"expires\":\"Upphör\",\"expires_message\":\"Lad feltet være tomt for manuel deaktivering.\",\"trace_id\":\"Trace-ID\",\"trace_id_message\":\"Eksempel: trace-canary-1\",\"trace_id_placeholder\":\"Trace-id\",\"channel\":\"Kanal\",\"channel_placeholder\":\"Kanal\",\"principal_id\":\"Principal-ID\",\"principal_id_placeholder\":\"Principal-id\",\"module\":\"Modul\",\"module_placeholder\":\"Modul\",\"severity\":\"Allvarlighetsgrad\",\"any_severity\":\"Alla allvarlighetsgrader\",\"no_timeline_events\":\"Ingen timeline-events matcher de aktuelle filtre.\"},\"status\":{\"confirm_issue_action\":\"Run this Release Manager action? It can change deployment state and will be audited.\",\"choose_bundle_prompt\":\"Enter the bundle id to set for this channel.\",\"impact\":\"Impact\",\"cause\":\"Cause\",\"automated_fix\":\"Automated fix\",\"manual_fallback\":\"Manual fallback\",\"related_deployment\":\"Related deployment\",\"recent_result\":\"Recent result\",\"no_automated_action\":\"No automated action available.\",\"deployment\":\"Deployment\",\"target\":\"Target\",\"coolify_target\":\"Coolify target\",\"service_set\":\"Service set\"}}},\"connectivity\":{\"description\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.har_2'} brukar lösa sig @:{'words.generated.sjalv'}. @.capitalize:{'words.generated.vanta'} @:{'words.generated.medan'} @:{'words.generated.vi'} kontrollerar @:{'words.generated.servern'}.\",\"footer\":\"@.capitalize:{'words.generated.om'} problemet kvarstår, @:{'words.generated.kontakta'} supporten.\",\"no_internet\":\"@.capitalize:{'words.generated.ingen'} internetanslutning.\",\"retry_in\":\"@:{'words.generated.forsoker'} @:{'words.generated.igen'} @:{'words.generated.om'} {seconds} @:{'words.generated.sekunder'}...\",\"retry_now\":\"@:{'words.generated.forsoker'} @:{'words.generated.att'} @:{'words.generated.aterstalla'} @:{'words.generated.anslutningen'}...\",\"retry\":\"@:{'templates.generated.compat.common.retry'}\",\"server_down\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.anslutning'} @:{'words.generated.till'} @:{'words.generated.servern'}.\",\"subtitle\":\"@:{'words.generated.forsoker'} @:{'words.generated.igen'} @:{'words.generated.var'} 5:@:{'words.generated.e'} @:{'words.generated.sekund'}...\",\"title\":\"Anslutningsproblem\"},\"customer_creation\":{\"customer\":{\"benefit_credit\":\"@.capitalize:{'words.generated.kreditkonto'}\",\"benefit_credit_desc\":\"@.capitalize:{'words.generated.fa'} @:{'words.generated.ett'} @:{'words.generated.kreditkonto'} @:{'words.generated.med'} månadsfakturering\",\"benefit_portal\":\"@:{'words.generated.kundportal'}\",\"benefit_portal_desc\":\"@.capitalize:{'words.generated.anvand'} kundportalen @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.lagga'} @:{'words.generated.till'} @:{'words.generated.fordon'}, @:{'words.generated.boka'} @:{'words.generated.tvattar'}, @:{'words.generated.ladda'} @:{'words.generated.ner'} @:{'words.generated.fakturor'}, @:{'words.generated.tvattcertifikat'} @:{'words.generated.och'} @:{'words.generated.information'} @:{'words.generated.om'} @:{'words.generated.historiska'} @:{'words.generated.tvattar'}\",\"benefit_wash_desc\":\"@.capitalize:{'words.generated.anvand'} @:{'words.generated.vart'} @:{'words.generated.nationella'} @:{'words.generated.natverk'} @:{'words.generated.av'} @:{'words.generated.tvatthallar'} @:{'words.generated.till'} @:{'words.generated.konkurrenskraftiga'} @:{'words.generated.priser'}\",\"ean_label\":\"@:{'templates.generated.compat.admin.pos.ean'}\",\"email_label\":\"Företagets @:{'words.generated.e'}-@:{'words.generated.post'}\",\"intro\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.kund'} @:{'words.generated.hos'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.far'} @:{'words.generated.du'} @:{'words.generated.tillgang'} @:{'words.generated.till'}:\",\"phone_label\":\"@:{'templates.generated.compat.admin.pos.company_phone'}\",\"success_message\":\"@.capitalize:{'words.generated.ditt'} @:{'words.generated.konto'} @:{'words.generated.har'} @:{'words.generated.skapats'}. @.capitalize:{'words.generated.vi'} @:{'words.generated.har'} skickat @:{'words.generated.ett'} @:{'words.generated.e'}-postmeddelande @:{'words.generated.med'} @:{'words.generated.mer'} @:{'words.generated.information'}.\",\"title\":\"@:{'words.generated.register'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.customer'}\"},\"driver\":{\"benefit_24h\":\"24-timmars @:{'words.generated.tvatt'}\",\"benefit_24h_desc\":\"@:{'words.generated.tvatta'} @:{'words.generated.nar'} @:{'words.generated.det'} @:{'words.generated.passar'} @:{'words.generated.dig'} @:{'words.generated.utanfor'} @:{'words.generated.bemannade'} @:{'words.generated.oppettider'}\",\"benefit_booking_desc\":\"@:{'words.generated.boka'} @:{'words.generated.tvatt'} @:{'words.generated.i'} @:{'words.generated.hela'} @:{'words.generated.landet'}\",\"benefit_find\":\"@.capitalize:{'words.generated.hitta'} @:{'words.generated.tvatthallar'}\",\"benefit_find_desc\":\"navigera @:{'words.generated.snabbt'} @:{'words.generated.och'} enkelt @:{'words.generated.till'} @:{'words.generated.narmaste'} @:{'words.generated.tvatthall'}\",\"benefit_loyalty\":\"@.capitalize:{'words.generated.lojalitetspoang'}\",\"benefit_loyalty_desc\":\"@:{'words.generated.tjana'} @:{'words.generated.och'} @:{'words.generated.anvand'} @:{'words.generated.lojalitetspoang'} @:{'words.generated.varje'} gång @:{'words.generated.du'} @:{'words.generated.tvattar'} @:{'words.generated.hos'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} (@:{'words.generated.tillgangligt'} @:{'words.generated.fran'} @:{'words.generated.maj'} 2026)\",\"intro\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.forare'} @:{'words.generated.hos'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.far'} @:{'words.generated.du'} @:{'words.generated.tillgang'} @:{'words.generated.till'}:\",\"phone_label\":\"@.capitalize:{'words.generated.driver'} @:{'words.generated.phone'}\",\"submit\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.konto'}\",\"title\":\"@:{'words.generated.register'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.driver'}\"},\"pre_title\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.kund'}\",\"subtitle\":\"@.capitalize:{'words.generated.fa'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.rad'} förmåner @:{'words.generated.genom'} @:{'words.generated.att'} @:{'words.generated.vara'} registrerad @:{'words.generated.som'} @:{'words.generated.kund'} @:{'words.generated.eller'} @:{'words.generated.forare'} @:{'words.generated.hos'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\",\"title\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.dig'} @:{'words.generated.snabbt'} @:{'words.generated.som'} @:{'words.generated.ny'} @:{'words.generated.kund'} @:{'words.generated.eller'} @:{'words.generated.ny'} @:{'words.generated.forare'} @:{'words.generated.hos'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\"},\"customer_rules\":{\"attributes\":{\"exemptFromAdministrationFee\":{\"description\":\"@.capitalize:{'words.generated.do'} @:{'words.generated.not'} @:{'words.generated.apply'} @:{'words.generated.administration'} fees @:{'words.generated.to'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@.capitalize:{'words.generated.exempt'} @:{'words.generated.from'} @:{'words.generated.administration'} @:{'words.generated.fee'}\"},\"invoiceAllOrdersIndividually\":{\"description\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.separate'} @:{'words.generated.invoices'} instead @:{'words.generated.of'} grouping @:{'words.generated.this'} @:{'words.generated.customer'}'@:{'words.generated.s'} @:{'words.generated.orders'}.\",\"label\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.all'} @:{'words.generated.orders'} individually\"},\"invoiceWithStripe\":{\"description\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.stripe'} @:{'words.generated.invoicing'} @:{'words.generated.for_2'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.with'} @:{'words.generated.stripe'}\"},\"onlyTankCleaning\":{\"description\":\"@.capitalize:{'words.generated.allow'} @:{'words.generated.only'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} @:{'words.generated.services'} @:{'words.generated.for_2'} @:{'words.generated.this'} @:{'words.generated.customer'}.\"},\"requiresReferenceNumber\":{\"description\":\"@:{'words.generated.require'} @:{'words.generated.a'} @:{'words.generated.reference'} @:{'words.generated.number'} @:{'words.generated.on'} @:{'words.generated.bookings'} @:{'words.generated.and'} @:{'words.generated.orders'} @:{'words.generated.for_2'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.require'} @:{'words.generated.reference'} @:{'words.generated.number'}\"},\"requiresRegistrationNumbersInvoice\":{\"description\":\"@:{'words.generated.require'} @:{'words.generated.registration'} @:{'words.generated.numbers'} @:{'words.generated.to'} appear @:{'words.generated.on'} @:{'words.generated.invoices'} @:{'words.generated.for_2'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.require'} @:{'words.generated.registration'} @:{'words.generated.numbers'} @:{'words.generated.on'} @:{'words.generated.invoice'}\"},\"restrictAdditionalServices\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.additional'} @:{'words.generated.services'} @:{'words.generated.and'} @:{'words.generated.add'}-@:{'words.generated.ons'} @:{'words.generated.for_2'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.additional'} @:{'words.generated.services'}\"},\"restrictInteriorCleaning\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.interior'} @:{'words.generated.cleaning'} @:{'words.generated.services'} @:{'words.generated.for_2'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.interior'} @:{'words.generated.cleaning'}\"},\"restrictSpotFree\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.spot'}-@:{'words.generated.free'} @:{'words.generated.rinse'} @:{'words.generated.services'} @:{'words.generated.for_2'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.spot'}-@:{'words.generated.free'} @:{'words.generated.rinse'}\"},\"restrictTankCleaning\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} @:{'words.generated.services'} @:{'words.generated.for_2'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}\"},\"showPricesOnBookingPage\":{\"description\":\"@.capitalize:{'words.generated.display'} @:{'words.generated.customer'} @:{'words.generated.prices'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.booking'} @:{'words.generated.page'}.\",\"label\":\"@:{'words.generated.show'} @:{'words.generated.prices'} @:{'words.generated.on'} @:{'words.generated.booking'} @:{'words.generated.page'}\"},\"usePONumbers\":{\"description\":\"@:{'words.generated.enable'} @:{'words.generated.po'} @:{'words.generated.number'} handling @:{'words.generated.for_2'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.po'} @:{'words.generated.numbers'}\"}},\"manager\":{\"active_count\":\"{count} aktiva\",\"errors\":{\"load\":\"Kundregler kunde inte läsas in.\",\"update\":\"Kundregeln kunde inte uppdateras.\"},\"no_target\":\"Användar-id eller kundnummer krävs innan kundregler kan hanteras.\",\"toggle_unavailable\":\"Du har inte behörighet att ändra denna kundregel.\",\"unavailable\":\"Du har inte behörighet att visa kundregler.\",\"unknown_active\":\"Okända aktiva regler\"},\"tooltip\":{\"available_if_enabled\":\"Förblir tillgängliga om aktiverad\",\"available_while_enabled\":\"Tillgängliga medan aktiv\",\"blocked_if_enabled\":\"Blockeras om aktiverad\",\"blocked_now\":\"Blockerad medan aktiv\",\"changes\":\"Ändringar\",\"groups\":{\"primary_products\":\"Primära produkter\",\"related_addons\":\"Kopplade add-ons\",\"standalone_additional_services\":\"Fristående tilläggstjänster\"},\"load_failed\":\"Berörda produkter kunde inte läsas in.\",\"loading_products\":\"Läser in berörda produkter...\",\"no_affected_products\":\"Inga berörda produkter hittades i den aktuella produktkatalogen.\"}},\"customers\":{\"add_customer\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.kunde'}\",\"add_vehicle_subtitle\":\"Lägg @:{'words.generated.till'} @:{'words.generated.ett'} nytt @:{'words.generated.fordon'}\",\"add_vehicle_to_customer\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.fordon'} @:{'words.generated.till'} @:{'words.generated.kund'}\",\"add_vehicle\":\"@:{'templates.generated.compat.vehicles.add'}\",\"confirm_delete_vehicle\":\"@:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.soker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.detta'} @:{'words.generated.fordona'} @.capitalize:{'words.generated.detta'} @:{'words.generated.kan'} @:{'words.generated.inte'} @:{'words.generated.angras'}.\",\"confirm_remove_vehicle\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.detta'} @:{'words.generated.fordon'} @:{'words.generated.fran'} @:{'words.generated.kunden'}?\",\"contact\":{\"title\":\"Kontaktperson\"},\"cvr\":\"Organisasjonsnummer\",\"delete_confirm\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.denna'} @:{'words.generated.kund'}?\",\"delete_customer\":\"@:{'words.generated.slett'} @:{'words.generated.kunde'}\",\"delete_selected_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} sikker @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} vil slette {count} @:{'words.generated.valgte'} kundera\",\"delete_selected\":\"@:{'words.generated.slett'} @:{'words.generated.valgte'}\",\"edit_customer\":\"@:{'words.generated.rediger'} @:{'words.generated.kunde'}\",\"export\":\"Eksporter @:{'words.generated.kunder'}\",\"form\":{\"billing_type\":\"Faktureringstype\",\"contact_name\":\"Kontaktnavn\",\"contact_phone\":\"@:{'templates.generated.compat.admin.pos.contact_phone'}\",\"credit_limit\":\"Kredittgrense\",\"payment_due\":\"Betalingsfrist\",\"vat_registered\":\"MVA-registrert\"},\"import\":\"Importer @:{'words.generated.kunder'}\",\"no_customers\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.kunder'} @:{'words.generated.funnet'}\",\"no_vehicles\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.fordon'}\",\"search_placeholder\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.kundnamn'}, @:{'words.generated.kundnummer'}, @:{'words.generated.e'}-@:{'words.generated.post'}, @:{'words.generated.telefon'}\",\"view_subtitle\":\"@.capitalize:{'words.generated.se'} kundedetaljer\",\"view_vehicles\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.fordon'}\"},\"department_dashboard\":{\"bookings\":{\"all\":\"@:{'templates.generated.compat.common.all'}\",\"certificate_download_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.vid'} nedladdning @:{'words.generated.av'} tvättcertifikatet\",\"certificate_generated\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.tvattcertifikat'} @:{'words.generated.har'} @:{'words.generated.skapats'} @:{'words.generated.for'} @:{'words.generated.denna'} @:{'words.generated.bokning'}.\",\"search\":\"@:{'words.generated.sok'} @:{'words.generated.bokningar'}...\",\"sent_to\":\"@.capitalize:{'words.generated.sent'} @:{'words.generated.to'}\",\"services\":{\"exterior_semi_trailer\":\"@:{'words.generated.exterior'} @:{'words.generated.semi'}-@:{'words.generated.trailer'} (@:{'words.generated.truck'} / @:{'words.generated.trailer'})\",\"exterior_trailer_wash\":\"@:{'words.generated.exterior'} @:{'words.generated.trailer'} @:{'words.generated.wash'}\",\"interior_trailer_wash\":\"@.capitalize:{'words.generated.interior'} @:{'words.generated.trailer'} @:{'words.generated.wash'}\"},\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.bokningar'}\",\"upcoming\":\"Kommande\",\"wash_completed\":\"@:{'templates.generated.compat.self_wash.wash_completed'}\"},\"calendar\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.kalender'} @:{'words.generated.for_2'} @:{'words.generated.avdelingen'}\"},\"customers\":{\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.kunder'} @:{'words.generated.i'} @:{'words.generated.avdelingen'}\"},\"daily_report\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.dagliga'} rapporter\"},\"employees\":{\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.ansatte'} @:{'words.generated.i'} @:{'words.generated.avdelingen'}\"},\"home\":{\"subtitle\":\"@:{'words.generated.valkommen'} @:{'words.generated.till'} @:{'words.generated.avdelningens'} @:{'words.generated.instrumentpanel'}\"},\"invoices\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.fakturaer'} @:{'words.generated.for_2'} @:{'words.generated.avdelingen'}\"},\"overview\":{\"charts\":\"Diagram\",\"list\":\"@.capitalize:{'words.generated.list'}\",\"subtitle\":\"@:{'templates.generated.compat.statistics.overview.subtitle'}\"},\"pos\":{\"subtitle\":\"@.capitalize:{'words.generated.registrera'} försäljningar\"},\"products\":{\"addons_subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.produkttillegg'} @:{'words.generated.i'} @:{'words.generated.avdelingen'}\",\"no_addons\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.tillegg'} @:{'words.generated.funnet'}.\",\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.produkter'} @:{'words.generated.i'} @:{'words.generated.avdelingen'}\"},\"settings\":{\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.innstillinger'} @:{'words.generated.for_2'} @:{'words.generated.avdelingen'}\"},\"sidebar\":{\"time_bookings\":\"@.capitalize:{'words.generated.tidsbokningar'}\"},\"statistics\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.statistikk'} @:{'words.generated.for_2'} @:{'words.generated.avdelingen'}\"},\"time_bookings\":{\"subtitle\":\"@:{'templates.generated.compat.admin.time_bookings.subtitle'}\"},\"vehicles\":{\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.fordon'} @:{'words.generated.i'} @:{'words.generated.avdelningen'}\"},\"wash_log\":{\"add_wash\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.vask'}\",\"add_wash_title\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.vask'} @:{'words.generated.i'} @:{'words.generated.logg'}\",\"created_certificate\":\"@.capitalize:{'words.generated.vaskesertifikat'} @:{'words.generated.opprettet'}. @.capitalize:{'words.generated.det'} åpnes nå @:{'words.generated.i'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} fane.\",\"creating_certificate\":\"Oppretter @:{'words.generated.vaskesertifikat'}...\",\"discount\":\"@:{'templates.generated.compat.common.discount'}\",\"download_csv\":\"@.capitalize:{'words.generated.last_2'} @:{'words.generated.ned'} CSV\",\"download_excel\":\"@.capitalize:{'words.generated.last_2'} @:{'words.generated.ned'} @:{'words.generated.excel'}\",\"edit_wash\":\"@:{'words.generated.rediger'} @:{'words.generated.vask'}\",\"ended\":\"Avsluttet\",\"no_washes\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.vask'} @:{'words.generated.funnet'}\",\"open_wash_certificate\":\"@.capitalize:{'words.generated.oppna'} @:{'words.generated.tvattcertifikat'}\",\"search_placeholder\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.registreringsnummer'}, @:{'words.generated.referens'}, @:{'words.generated.anstalld'}, @:{'words.generated.kund'}\",\"showing_x_of_y\":\"Viser {x} @:{'words.generated.av'} {y}\",\"started\":\"Startet\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.vaskelogg'} @:{'words.generated.for_2'} @:{'words.generated.avdelingen'}\",\"subtitle_expanded\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.over_2'} @:{'words.generated.vask'} @:{'words.generated.i'} @:{'words.generated.avdelingen'}\",\"washes_per_page\":\"@:{'words.generated.vask'} @:{'words.generated.per'} @:{'words.generated.side'}\",\"washes_per_page_title\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.per'} @:{'words.generated.side'}\"}},\"department_reports\":{\"avg_revenue_per_wash\":\"@:{'words.generated.avg'}. revenue @:{'words.generated.per'} @:{'words.generated.wash'}\",\"revenue\":\"@.capitalize:{'words.generated.intakt'}\",\"today\":\"@:{'words.generated.i'} @:{'words.generated.dag'}\"},\"departments\":{\"addons\":{\"new_addon\":\"@.capitalize:{'words.generated.nytt'} @:{'words.generated.tillegg'}\"},\"confirm_delete\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.denna'} @:{'words.generated.avdelning'}?\",\"dashboard\":\"@:{'templates.generated.compat.common.dashboard'}\",\"delete_department\":\"@:{'words.generated.slett'} @:{'words.generated.avdeling'}\",\"edit_department\":\"@:{'words.generated.rediger'} @:{'words.generated.avdeling'}\",\"form\":{\"latitude\":\"Breddegrad\",\"longitude\":\"Lengdegrad\"},\"integrations\":{\"mailersend_api_key\":\"@:{'words.generated.mailersend'} @:{'words.generated.api'}-@:{'words.generated.nyckel'}\",\"subtitle\":\"Konfigurer @:{'words.generated.integrasjoner'} @:{'words.generated.for_2'} @:{'words.generated.avdelingen'}\"},\"new_department\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.avdeling'}\",\"no_departments\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.avdelinger'} @:{'words.generated.funnet'}\",\"opening_hours\":{\"closed\":\"Stengt\"},\"pricing\":{\"custom_pricing_disabled\":\"Fallback aktiv\",\"custom_pricing_enabled\":\"Endast egna priser\",\"custom_pricing_missing_price\":\"Saknade avdelningspriser blir 999999.\",\"custom_pricing_only\":\"Inga fallback-priser\",\"effective_department_price\":\"Effektivt avdelningspris\"},\"search_placeholder\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.avdelningsnamn'}\",\"select_department\":\"@:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.avdeling'}\",\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.avdelinger'}\",\"tab\":{\"info\":\"@:{'templates.generated.compat.common.info'}\",\"opening_hours\":\"@:{'templates.generated.compat.global.opening_hours'}\",\"product_addons\":\"@.capitalize:{'words.generated.produkttillegg'}\",\"wash_products\":\"Vaskeprodukter\"},\"title\":\"@.capitalize:{'words.generated.avdelinger'}\"},\"employees\":{\"confirm_delete\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.denna'} @:{'words.generated.anstalld'}?\",\"delete_employee\":\"@:{'words.generated.slett'} @:{'words.generated.ansatt'}\",\"edit_employee\":\"@:{'words.generated.rediger'} @:{'words.generated.ansatt'}\",\"new_employee\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.ansatt'}\",\"no_employees\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.anstallda'} @:{'words.generated.hittades'}\",\"search_placeholder\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.namn'}, @:{'words.generated.e'}-@:{'words.generated.post'}, @:{'words.generated.telefon'}\",\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.ansatte'}\"},\"error_report\":{\"button\":\"Rapportera fel\",\"title\":\"Rapportera fel\",\"subtitle\":\"Skicka de senaste feldetaljerna till support. En skärmbild bifogas när det är möjligt.\",\"before_error\":\"Vad gjorde du innan felet uppstod?\",\"expected\":\"Vad förväntade du dig skulle hända?\",\"actual\":\"Vad hände faktiskt?\",\"before_error_placeholder\":\"Beskriv åtgärden du gjorde, till exempel att öppna ordrar eller välja en kund.\",\"expected_placeholder\":\"Beskriv resultatet du förväntade dig att se.\",\"actual_placeholder\":\"Beskriv vad du såg i stället, inklusive eventuell feltext.\",\"consent\":\"Jag accepterar att senaste request-fel, Vue-fel, webbläsardetaljer, mina svar och en app-skärmbild när det är möjligt samlas in för felsökning.\",\"submit\":\"Skicka rapport\",\"submitted\":\"Felrapport skickad.\",\"capture_failed\":\"Skärmbilden kunde inte tas. Rapporten skickas utan skärmbild.\",\"submit_failed\":\"Felrapporten kunde inte skickas.\",\"required\":\"Alla fält och godkännande av datainsamling krävs.\",\"page_subtitle\":\"Rapporterade skärmar, request-fel och Vue-fel\",\"screenshot\":\"Skärmbild\",\"request_errors\":\"Request-fel\",\"vue_errors\":\"Vue-fel\",\"runtime_context\":\"Runtime-kontext\",\"empty\":\"Inga felrapporter hittades.\",\"resolve\":\"Markera som löst\",\"reopen\":\"Öppna igen\",\"resolution_note\":\"Lösningsnotering\",\"filters\":{\"open\":\"Öppen\",\"resolved\":\"Löst\",\"all\":\"Alla\"}},\"errors\":{\"forbidden\":\"@.capitalize:{'words.generated.atkomst'} nekad.\",\"general\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'}. @:{'words.generated.vanligen'} @:{'words.generated.forsok'} @:{'words.generated.igen'}.\",\"network_error\":\"Nettverksfeil\",\"network\":\"Nätverksfel. @:{'words.generated.kontrollera'} @:{'words.generated.din'} @:{'words.generated.anslutning'}.\",\"not_found\":\"Resursen @:{'words.generated.hittades'} @:{'words.generated.inte'}.\",\"parse_error\":{\"unknown\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.okant'} @:{'words.generated.fel'} @:{'words.generated.uppstod'}. @.capitalize:{'words.generated.forsok'} @:{'words.generated.igen'}.\"},\"server_error\":\"Serverfeil\",\"server\":\"Serverfel. @:{'words.generated.vanligen'} @:{'words.generated.forsok'} @:{'words.generated.igen'} senare.\",\"timeout\":\"@:{'words.generated.begaran'} tog @:{'words.generated.for'} lång @:{'words.generated.tid'}. @:{'words.generated.vanligen'} @:{'words.generated.forsok'} @:{'words.generated.igen'}.\",\"unauthorized\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.ar'} @:{'words.generated.inte'} auktoriserad @:{'words.generated.att'} utföra @:{'words.generated.denna'} @:{'words.generated.atgard'}.\",\"validation\":\"Valideringsfel. @:{'words.generated.kontrollera'} @:{'words.generated.din'} inmatning.\"},\"global_search\":{\"actions\":{\"back_to_results\":\"@:{'words.generated.tillbaka'} @:{'words.generated.till'} @:{'words.generated.resultat'}\",\"clear_results\":\"@:{'words.generated.rensa'} @:{'words.generated.resultat'}\",\"close_settings\":\"@:{'words.generated.stang'} @:{'words.generated.installningar'}\",\"run_search\":\"@:{'words.generated.kor'} @:{'words.generated.sokning'}\"},\"badges\":{\"score\":\"@:{'words.generated.poang'} {score}\"},\"cache\":{\"clear_cache\":\"@:{'words.generated.rensa'} @:{'words.generated.cache'}\",\"errors\":{\"types_required\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.minst'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.typ'} @:{'words.generated.nar'} omfattningen @:{'words.generated.ar'} \\\"@:{'words.generated.types'}\\\".\"},\"messages\":{\"cleared\":\"@.capitalize:{'words.generated.systemsakningens'} @:{'words.generated.cache'} @:{'words.generated.har'} rensats.\",\"rebuild_queued\":\"@.capitalize:{'words.generated.ombyggnad'} @:{'words.generated.av'} @:{'words.generated.systemsakningens'} @:{'words.generated.cache'} @:{'words.generated.har'} keats.\"},\"queue_rebuild\":\"Köa @:{'words.generated.ombyggnad'}\",\"rebuild_scope\":\"@:{'words.generated.bygg'} @:{'words.generated.om'} omfattning\",\"rebuild_types\":\"@:{'words.generated.bygg'} @:{'words.generated.om'} @:{'words.generated.typer'}\",\"scope_all\":\"@:{'words.generated.alla'}\",\"scope_dirty\":\"ändrade\",\"scope_types\":\"@:{'words.generated.typer'}\",\"superuser_only\":\"@:{'words.generated.cacheverktyg'} @:{'words.generated.ar'} @:{'words.generated.endast'} @:{'words.generated.tillgangliga'} @:{'words.generated.for'} @:{'words.generated.superanvandare'}.\",\"title\":\"@:{'words.generated.cacheverktyg'} @:{'words.generated.for'} @:{'words.generated.superanvandare'}\"},\"department_goals\":{\"loading\":\"@:{'words.generated.loading'} @:{'words.generated.goal'} @:{'words.generated.progress'}...\",\"overview\":\"@.capitalize:{'words.generated.goal'} @:{'words.generated.progress'}\",\"period\":\"@:{'templates.generated.compat.objects.goals.columns.period'}\",\"progress_unavailable\":\"@.capitalize:{'words.generated.goal'} @:{'words.generated.progress'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.available'} yet.\"},\"entity_types\":{\"bookings\":\"Legacy @:{'words.generated.bookings'}\",\"bookings_new\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.bookings'}\",\"currency_conversion_rates\":\"Currency @:{'words.generated.conversion'} @:{'words.generated.rates'}\",\"customer_codes\":\"@.capitalize:{'words.generated.customer'} codes\",\"customer_default_department\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.default'} @:{'words.generated.department'}\",\"customer_discounts\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.discounts'}\",\"customer_fixed_prices\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.fixed'} @:{'words.generated.prices'}\",\"customer_notes\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.notes'}\",\"customer_vehicles_addons\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.vehicle'} @:{'words.generated.add'}-@:{'words.generated.ons'}\",\"customers\":\"@.capitalize:{'words.generated.customers'}\",\"department_goals\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.goals'}\",\"department_selfserve_condition_rules\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.condition'} @:{'words.generated.rules'}\",\"department_selfserve_conditions\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.conditions'}\",\"department_selfserve_questions\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} questions\",\"department_selfserve_tasks\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.tasks'}\",\"department_selfserve_vehicle_conditions\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.vehicle'} @:{'words.generated.conditions'}\",\"fxratesapi_conversion_rates\":\"@:{'words.generated.fxratesapi'} @:{'words.generated.conversion'} @:{'words.generated.rates'}\",\"module_config\":\"@.capitalize:{'words.generated.module'} @:{'words.generated.config'}\",\"motorapi_lookups\":\"@:{'words.generated.motorapi'} @:{'words.generated.lookups'}\",\"order_items\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.items'}\",\"plate_scanners\":\"@.capitalize:{'words.generated.plate'} @:{'words.generated.scanners'}\",\"plate_scans\":\"@.capitalize:{'words.generated.plate'} @:{'words.generated.scans'}\",\"stripe_module_customers\":\"@:{'words.generated.stripe'} @:{'words.generated.module'} @:{'words.generated.customers'}\",\"stripe_module_orders\":\"@:{'words.generated.stripe'} @:{'words.generated.module'} @:{'words.generated.orders'}\",\"stripe_payment_intents\":\"@:{'words.generated.stripe'} @:{'words.generated.payment'} intents\",\"subusers\":\"Subusers\",\"xlvask_customers\":\"@:{'words.generated.xlvask_xlvask'} @:{'words.generated.customers'}\",\"xlvask_potential_order_matches\":\"@:{'words.generated.xlvask_xlvask'} potential @:{'words.generated.order'} matches\",\"xlvask_usage_log_wash_items\":\"@:{'words.generated.xlvask_xlvask'} @:{'words.generated.usage'} @:{'words.generated.log'} @:{'words.generated.wash'} @:{'words.generated.items'}\",\"xlvask_usage_logs\":\"@:{'words.generated.xlvask_xlvask'} @:{'words.generated.usage'} @:{'words.generated.logs'}\",\"xlvask_vehicles\":\"@:{'words.generated.xlvask_xlvask'} vehicles\"},\"errors\":{\"enter_query\":\"@.capitalize:{'words.generated.ange'} @:{'words.replication.host_definite_suffix'} sökfråga.\",\"invalid_payload\":\"Ogiltig svarspayload @:{'words.generated.fran'} sökningen.\",\"request_failed\":\"@:{'words.generated.begaran'} @:{'words.generated.misslyckades'}.\"},\"groups\":{\"active\":\"@.capitalize:{'words.generated.aktiv'} @:{'words.generated.grupp'}: {group}\",\"description\":\"@.capitalize:{'words.generated.valj'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.grupp'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.filtrera'} @:{'words.generated.synliga'} @:{'words.generated.resultat'}.\",\"empty_hint\":\"@:{'words.generated.kor'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.sokning'} @:{'words.generated.for'} @:{'words.generated.att'} fylla @:{'words.generated.grupperade'} @:{'words.generated.resultat'}.\",\"summary\":\"@.capitalize:{'words.generated.grupperade'} @:{'words.generated.resultat'} (@:{'words.generated.efter'} objekttyp)\",\"title\":\"Resultatgrupper\"},\"launcher\":{\"last_search\":\"@.capitalize:{'words.generated.senaste'} @:{'words.generated.sokning'}: \\\"{query}\\\", {total} @:{'words.generated.resultat'}\"},\"meta\":{\"allowed_types\":\"Tillåtna @:{'words.generated.typer'}\",\"cache_hit\":\"Cacheträff\",\"hide\":\"@:{'words.generated.dolj'} @:{'words.generated.meta'}\",\"intent\":{\"confidence\":\"Konfidens\",\"entity_hints\":\"Entitetstips\",\"expanded_terms\":\"Utökade termer\",\"fallback_reason\":\"@.capitalize:{'words.generated.orsak'} @:{'words.generated.till'} reservläge\",\"invoked\":\"Anropad\",\"source\":\"@.capitalize:{'words.generated.kalla'}\",\"title\":\"@.capitalize:{'words.generated.diagnostik'} @:{'words.generated.for'} @:{'words.generated.avsiktsparser'}\"},\"limit\":\"Gräns\",\"max_results\":\"Maxresultat\",\"no\":\"@:{'words.generated.nej'}\",\"offset\":\"Offset\",\"returned\":\"Returnerade\",\"show\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.meta'}\",\"truncated\":\"Avkortad\",\"yes\":\"@:{'words.generated.ja'}\"},\"progress\":{\"fetching_known\":\"@.capitalize:{'words.generated.hamtar'} @:{'words.generated.sida'} {pagesDone} @:{'words.generated.av'} {pagesTotal}\",\"fetching_unknown\":\"@.capitalize:{'words.generated.hamtar'} sidor... ({pagesDone} @:{'words.generated.hamtade'})\",\"preparing\":\"Förbereder @:{'words.generated.sokning'}...\",\"results_loaded\":\"{loaded} / {total} @:{'words.generated.resultat'} @:{'words.generated.inlasta'}\"},\"results\":{\"association\":\"@.capitalize:{'words.generated.koppling'}\",\"cap\":\"{returned} av {max}\",\"cap_truncated\":\"{returned} av {max} visas\",\"empty\":\"@:{'words.generated.kor'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.sokning'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.lasa'} @:{'words.generated.in'} @:{'words.generated.resultat'}.\",\"none_for_search\":\"@.capitalize:{'words.generated.inga'} {group}-@:{'words.generated.resultat'} @:{'words.generated.for'} @:{'words.generated.denna'} @:{'words.generated.sokning'}.\",\"payload\":\"Nyttolast\",\"range\":\"@.capitalize:{'words.generated.resultat'} {start}-{end} @:{'words.generated.av'} {total}\"},\"search\":{\"placeholder\":\"@:{'words.generated.sok'} @:{'words.generated.i'} @:{'words.generated.allt'}...\"},\"settings_menu\":{\"object_types\":\"@.capitalize:{'words.generated.filtrera'} objekttyper\",\"open_hint\":\"@.capitalize:{'words.generated.installningar'} öppnas @:{'words.generated.i'} @:{'words.replication.article.host_mention'} högra panelen.\",\"pagination\":\"Paginering\"},\"settings\":{\"exclude_entity_types\":\"@:{'words.generated.exkludera'} @:{'words.generated.entitetstyper'}\",\"include_all\":\"@:{'words.generated.inkludera'} @:{'words.generated.alla'}\",\"include_associations\":\"@:{'words.generated.inkludera'} kopplingar\",\"include_entity_types\":\"@:{'words.generated.inkludera'} @:{'words.generated.entitetstyper'}\",\"include_intent_diagnostics\":\"@:{'words.generated.inkludera'} @:{'words.generated.diagnostik'} @:{'words.generated.for'} @:{'words.generated.avsiktsparser'}\",\"manage_description\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.visning'} @:{'words.generated.och'} @:{'words.generated.diagnostik'}.\",\"methods\":{\"get\":\"@.upper:{'words.generated.get'} (frägeparametrar)\",\"post\":\"@.upper:{'words.generated.post'} (@:{'words.generated.json'}-kropp)\"},\"reset_defaults\":\"@:{'words.generated.aterstall'} @:{'words.generated.standardvarden'}\",\"reset_type_filters\":\"@:{'words.generated.aterstall'} typfilter\",\"search_method\":\"Sökmetod\",\"show_grouped_summary\":\"@.capitalize:{'words.generated.visa'} grupperad @:{'words.generated.sammanfattning'}\",\"show_payload_inspector\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.payload'}-inspektör\",\"show_score_badges\":\"@.capitalize:{'words.generated.visa'} poängbrickor\"},\"title\":\"Avancerad systemsökning\"},\"global\":{\"abnormal\":\"Abnormal\",\"add_desc\":\"Add @:{'words.generated.a'} new note\",\"add_other_product\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.annan'} @:{'words.generated.produkt'}\",\"add\":\"@:{'templates.generated.compat.common.add'}\",\"additional_items\":\"@.capitalize:{'words.generated.ytterligare'} @:{'words.generated.artiklar'}\",\"all_booked\":\"@.capitalize:{'words.generated.all'} booked\",\"attach_to_order\":\"@.capitalize:{'words.generated.koppla'} @:{'words.generated.till'} @:{'words.generated.transaktion'}\",\"auto_start_on_lpr\":\"Auto-@:{'words.generated.start'} @:{'words.generated.on'} LPR\",\"barred\":\"Barred\",\"booked\":\"@.capitalize:{'words.generated.bokford'}\",\"cancelled\":\"@:{'templates.generated.compat.common.cancelled'}\",\"capture\":\"Capture\",\"change_customer\":\"@:{'words.generated.change'} @:{'words.generated.customer'}\",\"clear_all\":\"@:{'words.generated.rensa'} @:{'words.generated.alla'}\",\"closed\":\"Closed\",\"closing_hour\":\"Stängningstid\",\"collapse\":\"Collapse\",\"collection\":\"Samling\",\"compare\":\"Compare\",\"complete_order\":\"Slutför @:{'words.generated.order'}\",\"complete\":\"@:{'templates.generated.compat.common.finish'}\",\"completed\":\"@.capitalize:{'words.generated.slutford'}\",\"configuration\":\"@.capitalize:{'words.generated.configuration'}\",\"confirm_delete_message\":\"@:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.soker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.detta'} objektä\",\"confirm_delete\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.radera'}\",\"confirmation_needed\":\"@.capitalize:{'words.generated.bekraftelse'} @:{'words.generated.kravs'}\",\"copy\":\"@:{'words.generated.copy'}\",\"date_from\":\"@.capitalize:{'words.generated.date'} @:{'words.generated.from'}\",\"date_to\":\"@.capitalize:{'words.generated.date'} @:{'words.generated.to'}\",\"default\":\"@:{'words.generated.standard'}\",\"defaults\":\"@.capitalize:{'words.generated.standardvarden'}\",\"delete_confirm\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} säker @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.losennyckeln'} \\\"{name}\\\"? Detta kan @:{'words.generated.inte'} ångras.\",\"delete_failed\":\"Kunde @:{'words.generated.inte'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.losennyckel'}. @.capitalize:{'words.generated.forsok'} @:{'words.generated.igen'}.\",\"delete_passkey\":\"@.capitalize:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.losennyckel'}\",\"delete\":\"@:{'templates.generated.compat.common.delete'}\",\"deleted_successfully\":\"@.capitalize:{'words.generated.losennyckel'} @:{'words.generated.har'} tagits @:{'words.generated.bort'}.\",\"download_wash_certificate\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.ner'} @:{'words.generated.tvattcertifikat'}\",\"edit\":\"@:{'templates.generated.compat.common.edit'}\",\"emphasis\":\"Betonad\",\"error_loading_transaction\":\"Laddning @:{'words.generated.misslyckades'}\",\"error_messages\":{\"not_array\":\"@.capitalize:{'words.generated.data'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.a'} @:{'words.generated.list'}\",\"not_object\":\"@.capitalize:{'words.generated.data'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.an'} object\",\"not_string\":\"@.capitalize:{'words.generated.data'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.a'} @:{'words.generated.text'} string\"},\"excl_tax\":\"exkl. @:{'words.generated.moms'}\",\"expand\":\"@:{'templates.generated.compat.common.expand'}\",\"failed_to_send\":\"@:{'words.generated.kunne'} ikke @:{'words.generated.sende'} faktura\",\"failed\":\"@:{'templates.generated.compat.common.failed'}\",\"fixed_price_arrangements\":\"@.capitalize:{'words.generated.fastprisavtal'}\",\"found\":\"@.capitalize:{'words.generated.found'}\",\"generate_wash_certificate\":\"@:{'words.generated.generera'} @:{'words.generated.tvattcertifikat'}\",\"generated\":\"Genererad\",\"handheld_pending_order\":\"Handheld\",\"have_not\":\"@.capitalize:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.have'}\",\"have\":\"@.capitalize:{'words.generated.has'}\",\"hide_content\":\"@:{'words.generated.hide'} @:{'words.generated.content'}\",\"history\":\"Historik\",\"home\":\"Home\",\"ignore_customer_arrangements\":\"@:{'words.generated.ignorera'} kundavtal\",\"import_all\":\"@:{'words.generated.import'} @:{'words.generated.all'}\",\"import\":\"@:{'words.generated.import'}\",\"in_progress\":\"@:{'words.generated.in'} @:{'words.generated.progress'}\",\"in\":\"@:{'words.generated.in'}\",\"incl_tax\":\"@:{'words.generated.inkl'}. @:{'words.generated.moms'}\",\"include_all_items_on_invoice\":\"@:{'words.generated.inkludera'} @:{'words.generated.alla'} @:{'words.generated.artiklar'} @:{'words.generated.pa'} @:{'words.generated.fakturan'}\",\"information\":\"@.capitalize:{'words.generated.information'}\",\"invalid\":\"@.capitalize:{'words.generated.invalid'}\",\"invoice_already_created\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.ar'} @:{'words.generated.redan'} @:{'words.generated.skapad'}\",\"invoice_now\":\"Fakturera @:{'words.generated.nu'}\",\"invoice_per_order\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.per'} @:{'words.generated.order'}\",\"lane\":\"@.capitalize:{'words.generated.tvattbana'}\",\"last_wash\":\"@.capitalize:{'words.generated.last_2'} @:{'words.generated.wash'}\",\"link\":\"@.capitalize:{'words.generated.link'}\",\"login_as_customer\":\"@.capitalize:{'words.generated.logga'} @:{'words.generated.in'} @:{'words.generated.som'} @:{'words.generated.kund'}\",\"login_for_products\":\"@.capitalize:{'words.generated.logga'} @:{'words.generated.in'} @:{'words.generated.for'} @:{'words.generated.att'} välja @:{'words.generated.produkter'} @:{'words.generated.for'} @:{'words.generated.din'} @:{'words.generated.bokning'}.\",\"login_with_qr_code\":\"@:{'words.generated.login'} @:{'words.generated.with'} @:{'words.generated.qr'} @:{'words.generated.code'}\",\"login_with\":\"@.capitalize:{'words.generated.logga'} @:{'words.generated.in'} @:{'words.generated.med'}\",\"login\":\"@:{'words.generated.login'}\",\"manage\":\"@.capitalize:{'words.generated.hantera'}\",\"mark_as_completed\":\"Markera @:{'words.generated.som'} @:{'words.generated.slutford'}\",\"mark_as_not_duplicate\":\"Mark @:{'words.generated.as'} @:{'words.generated.not'} @:{'words.generated.duplicate'}\",\"month\":\"@:{'templates.generated.compat.common.month'}\",\"my\":\"@:{'words.generated.my'}\",\"no_additional_items\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.ytterligare'} @:{'words.generated.artiklar'}\",\"no_applicable_booking_types\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.tillampliga'} @:{'words.generated.bokningstyper'}, @:{'words.generated.forsok'} @:{'words.generated.valja'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.annan'} @:{'words.generated.avdelning'}.\",\"no_data\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.data'}\",\"no_slots_available\":\"@.capitalize:{'words.generated.inga'} lediga @:{'words.generated.tider'}\",\"no_transactions_yet\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.transaktioner'} @:{'words.generated.annu'}\",\"non_included_products\":\"@.capitalize:{'words.generated.produkter'} @:{'words.generated.som'} @:{'words.generated.inte'} ingår\",\"not_completed\":\"@.capitalize:{'words.generated.inte'} @:{'words.generated.slutford'}\",\"not_configured\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.configured'}\",\"not_synchronized\":\"@.capitalize:{'words.generated.inte'} @:{'words.generated.synkroniserad'}\",\"note\":\"@:{'templates.generated.compat.common.note'}\",\"nothing_left_to_show\":\"@.capitalize:{'words.generated.inget'} @:{'words.generated.mer'} @:{'words.generated.att'} @:{'words.generated.visa'}\",\"nothing_to_do_all_set\":\"Klart, @:{'words.generated.inget'} @:{'words.generated.mer'} @:{'words.generated.att'} göra @:{'words.generated.har_2'}!\",\"only_tank_cleaning\":\"@.capitalize:{'words.generated.endast'} tankrengäring\",\"open\":\"Öppen\",\"opening_hour\":\"Öppettid\",\"opening_hours\":\"@.capitalize:{'words.generated.oppettider'}\",\"optional\":\"@:{'words.generated.valfri'}\",\"or_scan_plates\":\"@.capitalize:{'words.generated.or'} @:{'words.generated.scan'} @:{'words.generated.plates'}\",\"other_period\":\"@.capitalize:{'words.generated.other'} @:{'words.generated.period'}\",\"other\":\"@.capitalize:{'words.generated.other'}\",\"password\":\"@.capitalize:{'words.generated.losenord'}\",\"past\":\"Past\",\"payment_status\":\"@.capitalize:{'words.generated.payment'} @.capitalize:{'words.generated.status'}\",\"payment\":{\"amount\":\"@.capitalize:{'words.generated.belopp'}\",\"fixed_pricing\":\"@.capitalize:{'words.generated.fast'} @:{'words.generated.pris'}\",\"method\":\"Betalningsmetod\",\"payment_intent\":\"Betalningsavsikt\",\"payment_recieved\":\"@.capitalize:{'words.generated.betalning'} mottagen\",\"receipt\":\"@.capitalize:{'words.generated.kvitto'}\",\"receipt_url\":\"@.capitalize:{'words.generated.kvitto'}-@:{'words.generated.url'}\",\"transaction_id\":\"Transaktions-@.upper:{'words.generated.id'}\",\"type\":{\"bank_transfer\":\"Bank transfer\",\"card\":\"Card\",\"cash\":\"Cash\"}},\"pending\":\"Pending\",\"phone_country_code\":\"Country @:{'words.generated.code'}\",\"phone_number\":\"@.capitalize:{'words.generated.telefonnummer'}\",\"possible_duplicates\":\"@.capitalize:{'words.generated.mojliga'} @:{'words.generated.dubbletter'}\",\"preview\":\"Förhandsgranska\",\"previous\":\"@:{'templates.generated.compat.common.previous'}\",\"price_match\":\"@.capitalize:{'words.generated.price'} @:{'words.generated.match'}\",\"price_unmatch\":\"@.capitalize:{'words.generated.price'} mismatch\",\"prices\":\"@.capitalize:{'words.generated.priser'}\",\"print\":\"@:{'templates.generated.compat.common.print'}\",\"processing\":\"Processing\",\"queue\":\"Queue\",\"ready_to_wash\":\"@:{'words.generated.redo'} @:{'words.generated.for'} @:{'words.generated.tvatt'}\",\"recent\":\"@.capitalize:{'words.generated.recent'}\",\"recommended\":\"Rekommenderad\",\"register\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.anvandare'}\",\"regret\":\"Regret\",\"reject\":\"Avvisa\",\"related_service\":\"Relaterad @:{'words.generated.tjanst'}\",\"required\":\"Obligatorisk\",\"requires_action\":\"@.capitalize:{'words.generated.kraver'} @:{'words.generated.atgard'}\",\"reset\":\"@:{'templates.generated.compat.common.reset'}\",\"rows\":\"Rows\",\"scanning\":\"@.capitalize:{'words.generated.scanning'}\",\"search_cvr\":\"@:{'words.generated.sok'} @:{'words.generated.cvr'}-@:{'words.generated.nummer'}...\",\"search_phone\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.telefonnummer'}\",\"search_subuser\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.underanvandare'}\",\"search_transactions\":\"@:{'words.generated.sok'} @:{'words.generated.i'} @:{'words.generated.transaktioner'}\",\"search_user\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.anvandare'}\",\"selected\":\"@.capitalize:{'words.generated.vald'}\",\"send_as_is\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.as'} @:{'words.generated.is'}\",\"show_content\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.innehall'}\",\"showing_of_separator\":\"@:{'words.generated.of'}\",\"special_arrangements\":\"@.capitalize:{'words.generated.special'} arrangements\",\"split\":\"@.capitalize:{'words.generated.split'}\",\"statistics\":\"@.capitalize:{'words.generated.statistik'}\",\"stop\":\"Stop\",\"submit_test_email_prompt\":\"Enter the @:{'words.generated.email'} @:{'words.generated.address'} @:{'words.generated.to'} @:{'words.generated.send'} @:{'words.generated.a'} @:{'words.generated.test'} @:{'words.generated.email'} @:{'words.generated.to'}\",\"submit_test_email\":\"@.capitalize:{'words.generated.send'} @.capitalize:{'words.generated.test'} @.capitalize:{'words.generated.email'}\",\"submit\":\"@:{'templates.generated.compat.common.submit'}\",\"submiter_identity_desc\":\"Konfigurera @:{'words.generated.avsandaridentitet'} @:{'words.generated.for'} @:{'words.generated.utgaende'} @:{'words.generated.e'}-post\",\"submiter_identity\":\"Sender @:{'words.generated.identity'}\",\"subscriptions\":\"@:{'words.generated.abonnemang'}\",\"succeeded\":\"@.capitalize:{'words.generated.lyckades'}\",\"successful_syncs\":\"Lyckade synkroniseringar\",\"summary\":\"@.capitalize:{'words.generated.oversikt'}\",\"synchronized\":\"@.capitalize:{'words.generated.synkroniserad'}\",\"take_picture\":\"Take picture\",\"tank_cleaning\":\"@.capitalize:{'words.generated.tank'} @:{'words.generated.cleaning'}\",\"text\":{\"all\":\"Alltid\",\"anytime\":\"När som helst\",\"last_7_days\":\"@.capitalize:{'words.generated.last_2'} 7 days\",\"last_month\":\"@.capitalize:{'words.generated.forra'} @:{'words.generated.manaden'}\",\"other_month\":\"@.capitalize:{'words.generated.annan'} @:{'words.generated.manad'}\",\"last_week\":\"@.capitalize:{'words.generated.forra'} veckan\",\"same_month_last_year\":\"@.capitalize:{'words.generated.samma'} @:{'words.generated.manad'} @:{'words.generated.forra'} @:{'words.generated.aret'}\",\"same_week_last_year\":\"@.capitalize:{'words.generated.same'} @:{'words.generated.week'} @:{'words.generated.last_2'} year\",\"search_in\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.in'}\",\"this_month\":\"@.capitalize:{'words.generated.denna'} @:{'words.generated.manad'}\",\"this_week\":\"@.capitalize:{'words.generated.denna'} @:{'words.generated.vecka'}\",\"this_year\":\"@.upper:{'words.generated.i'} @:{'words.generated.ar_2'}\",\"yesterday\":\"@:{'templates.generated.compat.common.yesterday'}\"},\"time\":{\"at_hour\":\"@.capitalize:{'words.generated.at'}\"},\"to_department_and_customer_defaults\":\"@.capitalize:{'words.generated.till'} @:{'words.generated.avdelnings'}- @:{'words.generated.och'} kundstandardvärden\",\"total_amount\":\"Totalt belopp\",\"total_price_for_order\":\"@.capitalize:{'words.generated.total'} @:{'words.generated.price'} @:{'words.generated.for_2'} @:{'words.generated.order'}: {total} @:{'words.generated.dkk'}\",\"total\":\"@:{'templates.generated.compat.common.total'}\",\"unlink\":\"Unlink\",\"unselect\":\"Avmarkera\",\"usage_log\":\"@.capitalize:{'words.generated.usage'} @:{'words.generated.log'}\",\"view_order\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.transaktion'}\",\"warnings\":\"Warnings\",\"wash_multiple\":\"@.capitalize:{'words.generated.tvattar'}\",\"weekday\":\"Veckodag\",\"zoom_out\":\"Zooma @:{'words.generated.ut'}\",\"zoom\":\"Zoom\"},\"guest\":{\"about\":\"@.capitalize:{'words.generated.om'} @:{'words.generated.oss'}\",\"access_code\":\"@.capitalize:{'words.generated.tilgangskode'}\",\"app_store\":\"@.capitalize:{'words.generated.app'} @.capitalize:{'words.generated.store'}\",\"book_wash\":\"@.capitalize:{'words.generated.boka'} @:{'words.generated.tvatt'}\",\"contact\":\"@.capitalize:{'words.generated.kontakta'} @:{'words.generated.oss'}\",\"download_app\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.ner'} @:{'words.generated.app'}\",\"driver\":{\"coming_soon\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.funktionen'} @:{'words.generated.kommer'} snart!\"},\"enter_access_code\":\"@:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.tilgangskode'}\",\"find_wash\":\"@.capitalize:{'words.generated.hitta'} @:{'words.generated.tvatt'}\",\"home\":{\"contact_or_call\":\"@:{'words.generated.or'} call @:{'words.generated.us'} @:{'words.generated.at'}\",\"contact_prefix\":\"@.capitalize:{'words.generated.om'} @:{'words.generated.du'} upplever problem, @:{'words.generated.kontakta'} @:{'words.generated.oss'} @:{'words.generated.pa'}\",\"description\":\"@.capitalize:{'words.generated.detta'} @:{'words.generated.ar'} @:{'words.generated.din'} @:{'words.generated.instrumentpanel'}. @.capitalize:{'words.generated.har_2'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.generated.dina'} @:{'words.generated.ordrar'}, @:{'words.generated.bokningar'} @:{'words.generated.och'} @:{'words.generated.fordon'}.\",\"subtitle\":\"@:{'words.generated.valkommen'} @:{'words.generated.till'} @.upper:{'words.generated.pleno'}\"},\"invalid_code\":\"Ugyldig @:{'words.generated.tilgangskode'}\",\"play_store\":\"@:{'words.generated.google'} Play\",\"pwa\":{\"already_installed\":\"@:{'words.generated.pleno'} @:{'words.generated.ar'} @:{'words.generated.redan'} installerat @:{'words.generated.pa'} @:{'words.generated.din'} @:{'words.generated.enhet'}.\",\"android_instructions\":\"@:{'words.generated.tryck'} @:{'words.generated.pa'} menyknappen @:{'words.generated.och'} @:{'words.generated.valj'} '@.capitalize:{'words.generated.installera'} @:{'words.generated.app'}'\",\"card_title\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.ner'} @:{'words.generated.pleno'}\",\"click_to_install\":\"@.capitalize:{'words.generated.klicka'} @:{'words.generated.pa'} @:{'words.generated.knappen'} @:{'words.generated.nedan'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.installera'} @:{'words.generated.pleno'} @:{'words.generated.pa'} @:{'words.generated.din'} @:{'words.generated.enhet'}.\",\"description\":\"@:{'words.generated.pleno'} @:{'words.generated.ar'} @:{'words.replication.host_definite_suffix'} Progressive Web @.capitalize:{'words.generated.app'} (PWA) @:{'words.generated.som'} @:{'words.generated.kan'} installeras @:{'words.generated.pa'} @:{'words.generated.din'} @:{'words.generated.enhet'} @:{'words.generated.for'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.battre'} upplevelse.\",\"install\":\"@.capitalize:{'words.generated.installera'}\",\"install_label\":\"Install @:{'words.generated.pleno'}\",\"install_via_browser\":\"@.capitalize:{'words.generated.installera'} @:{'words.generated.pleno'} @:{'words.generated.via'} webbläsarens meny\",\"installed_label\":\"@:{'words.generated.pleno'} @:{'words.generated.is'} installed\",\"instructions\":\"Instruktioner\",\"ios_instructions\":\"@:{'words.generated.tryck'} @:{'words.generated.pa'} @:{'words.generated.dela'}-@:{'words.generated.knappen'} @:{'words.generated.och'} @:{'words.generated.valj'} '@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.pa'} @:{'words.generated.hemskarmen'}'\",\"subtitle\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.ner'} @:{'words.generated.appen'} @:{'words.generated.pa'} @:{'words.generated.din'} @:{'words.generated.enhet'}\",\"title\":\"@:{'templates.generated.compat.common.download'}\",\"use_supported_browser\":\"@.capitalize:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.installera'} @:{'words.generated.pleno'}, @:{'words.generated.anvand'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.webblasare'} @:{'words.generated.som'} @:{'words.generated.stods'} @:{'words.generated.och'} @:{'words.generated.folj'} installationsinstruktionerna.\"},\"scan_qr\":\"Skann @:{'words.generated.qr'}-kode\",\"start_wash_subtitle\":\"@:{'words.generated.skriv'} @:{'words.generated.inn'} tilgangskoden @:{'words.generated.for_2'} @:{'words.generated.a_2'} fortsette\",\"start_wash_title\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.vask'} @:{'words.generated.som'} gjest\",\"start_wash\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.vask'}\",\"title\":\"Gjesttilgang\",\"welcome_message\":\"@:{'words.generated.valkommen'} @:{'words.generated.till'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\",\"welcome\":\"@:{'templates.generated.compat.messages.welcome'}\"},\"header\":{\"about_us\":\"@:{'templates.generated.compat.guest.about'}\",\"backoffice\":\"Backoffice\",\"customer_creation_discount\":\"Skapa @:{'words.generated.anvandarrabatt'}\",\"customer_creation\":\"@:{'templates.generated.compat.global.register'}\",\"operator_login\":\"Operator @:{'words.generated.login'}\",\"return_to_account\":\"återgå @:{'words.generated.till'} eget @:{'words.generated.konto'}\"},\"invoice_period\":{\"flags\":{\"automatic\":{\"customer_rule_exempt_from_administration_fees\":\"{product} @:{'words.generated.is'} @:{'words.generated.an'} @:{'words.generated.administration'} @:{'words.generated.fee'} @:{'words.generated.for_2'} @:{'words.generated.an'} @:{'words.generated.exempt'} @:{'words.generated.customer'}.\",\"customer_rule_invoice_all_orders_individually\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.collection'} @:{'words.generated.contains'} @:{'words.generated.multiple'} @:{'words.generated.orders'} @:{'words.generated.for_2'} @:{'words.generated.a'} @:{'words.generated.customer'} requiring individual @:{'words.generated.invoices'}.\",\"customer_rule_only_tank_cleaning\":\"{product} @:{'words.generated.violates'} @:{'words.generated.the'} @:{'words.generated.only'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} @:{'words.generated.rule'}.\",\"customer_rule_requires_po_number\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.is'} @:{'words.generated.missing'} @:{'words.generated.a'} @:{'words.generated.required'} @:{'words.generated.po'} @:{'words.generated.number'}.\",\"customer_rule_requires_reference\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.is'} @:{'words.generated.missing'} @:{'words.generated.a'} @:{'words.generated.required'} @:{'words.generated.reference'}.\",\"customer_rule_restrict_addon_services\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} addon @:{'words.generated.services'}.\",\"customer_rule_restrict_interior_cleaning\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} @:{'words.generated.interior'} @:{'words.generated.wash'}.\",\"customer_rule_restrict_spot_free\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} @.capitalize:{'words.generated.spot'} @.capitalize:{'words.generated.free'}.\",\"customer_rule_restrict_tank_cleaning\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}.\",\"duplicate_vehicle_subscription_charge_same_month\":\"@.capitalize:{'words.generated.duplicate'} @:{'words.generated.vehicle'} @:{'words.generated.subscription'} charges @:{'words.generated.exist'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.same'} @:{'words.generated.month'}.\",\"historical_primary_product_mismatch\":\"{product} @:{'words.generated.differs'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.registration'} @:{'words.generated.number'}'@:{'words.generated.s'} usual @:{'words.generated.product'} {expected_product}.\",\"multiple_fixed_pricing_items_same_month\":\"@.capitalize:{'words.generated.multiple'} @:{'words.generated.fixed'} @:{'words.generated.pricing'} @:{'words.generated.items'} @:{'words.generated.exist'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.same'} @:{'words.generated.month'}.\",\"multiple_identical_primary_vehicle_items\":\"@.capitalize:{'words.generated.ordern'} innehaaller @:{'words.generated.flera'} likadana primaera fordonsprodukter.\",\"price_mismatch\":\"{product} @:{'words.generated.product'} @:{'words.generated.price'} @:{'words.generated.differs'} @:{'words.generated.from'} @:{'words.generated.expected'}.\",\"quantity_exceeds_product_limit\":\"{product} quantity exceeds @:{'words.generated.the'} @:{'words.generated.product'} limit.\",\"vehicle_subscription_type_mismatch\":\"{product} @:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.match'} @:{'words.generated.the'} @:{'words.generated.vehicle'} @:{'words.generated.subscription'} @:{'words.generated.type'} {expected_product}.\",\"wash_certificate_attached_without_item\":\"@.capitalize:{'words.generated.tvattcertifikat_2'} ar bifogat @:{'words.generated.utan'} @:{'words.replication.host_definite_suffix'} tvattcertifikatrad.\",\"wash_certificate_item_without_certificate\":\"@:{'words.generated.tvattcertifikatraden'} @:{'words.generated.finns'} @:{'words.generated.utan'} @:{'words.generated.ett'} @:{'words.generated.tvattcertifikat_2'}.\",\"xlvask_missing_order_link\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'} @:{'words.generated.wash'} @:{'words.generated.is'} neither ignored nor @:{'words.generated.linked'} @:{'words.generated.to'} @:{'words.generated.an'} @:{'words.generated.order'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.selected'} @:{'words.generated.period'}.\"},\"preview\":{\"entities\":{\"order_items\":\"@:{'words.generated.orderrader'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-@:{'words.generated.uppgifter'}\"},\"expected_price\":\"@.capitalize:{'words.generated.forvantat'} @:{'words.generated.pris'}\",\"start_time\":\"Starttid\",\"wash_id\":\"@.capitalize:{'words.generated.tvatt_2'}-@.upper:{'words.generated.id'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-@:{'words.generated.registrering'}\"},\"status\":{\"false_positive\":\"Falskt positiv\",\"ignored\":\"Ignorerad\",\"reason_placeholder\":\"@:{'words.generated.valfri'} @:{'words.generated.orsak'}\",\"resolved\":\"Lost\"},\"tokens\":{\"expected\":\"@:{'words.generated.forvantat'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-registreringen\"},\"tooltip\":{\"created_by\":\"@.capitalize:{'words.generated.av'}\"}}},\"invoice_transfer_monitor\":{\"clear_all_error\":\"@.capitalize:{'words.generated.avslutade'} @:{'words.generated.overforingar'} @:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.rensas'}.\",\"clear_all\":\"@:{'words.generated.rensa'} @:{'words.generated.avslutade'}\",\"clear_error\":\"Overföringen @:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.rensas'}.\",\"clear_one\":\"@:{'words.generated.rensa'} @:{'words.generated.overforing'}\",\"empty\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.synliga'} @:{'words.generated.overforingar'}.\",\"load_error\":\"@.capitalize:{'words.generated.overforingar'} @:{'words.generated.kunde'} @:{'words.generated.inte'} läsas @:{'words.generated.in'}.\",\"loading\":\"@.capitalize:{'words.generated.laser'} @:{'words.generated.in'} @:{'words.generated.overforingar'}\",\"menu_title\":\"@.capitalize:{'words.generated.overforingar'}\",\"no_details\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.detaljer'} @:{'words.generated.annu'}.\",\"refreshing\":\"uppdaterar\",\"short\":{\"queued\":\"@.capitalize:{'words.generated.ko'}\"},\"status\":{\"in_progress\":\"@.capitalize:{'words.generated.pagar'}\"},\"transfer\":\"@.capitalize:{'words.generated.overforing'}\",\"visible\":\"@:{'words.generated.synliga'}\"},\"invoices\":{\"delete_invoice\":\"@:{'words.generated.slett'} @:{'words.generated.faktura'}\",\"download_pdf\":\"@.capitalize:{'words.generated.last_2'} @:{'words.generated.ned'} @:{'words.generated.pdf'}\",\"due_date\":\"Förfallodatum\",\"economic\":{\"check_errors\":\"Check @:{'words.generated.fejl'}\",\"draft\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.kladde'}\",\"load_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.vid'} inläsning @:{'words.generated.av'} @:{'words.generated.data'}.\",\"update_draft_status\":\"@:{'words.generated.opdater'} @:{'words.generated.status'} @:{'words.generated.for_2'} @:{'words.generated.faktura'} kladder\"},\"edit_invoice\":\"@:{'words.generated.rediger'} @:{'words.generated.faktura'}\",\"invoice_number\":\"@.capitalize:{'words.generated.fakturanummer'}\",\"new_invoice\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.faktura'}\",\"no_invoices\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.fakturor'} @:{'words.generated.hittades'}\",\"overdue\":\"Förfallen\",\"paid\":\"@.capitalize:{'words.generated.betald'}\",\"partial\":\"Delvis @:{'words.generated.betald'}\",\"search_placeholder\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.fakturanummer'}, @:{'words.generated.kund'}\",\"search\":\"@:{'words.generated.sok'} @:{'words.generated.fakturor'}...\",\"statuses\":{\"draft\":\"@:{'templates.generated.compat.nav.drafts'}\",\"draft_transaction\":\"@.capitalize:{'words.generated.transaktionsutkast'}\"},\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.fakturaer'}\",\"unpaid\":\"Obetald\"},\"invoicing_period\":{\"invoice_collection_actions\":{\"actions\":{\"merge_collections\":\"Slå ihop\",\"queue_economic\":\"Fakturera valda\",\"remove_customer_rule_violations\":\"Ta bort regelbrott\",\"reset_hidden_item_prices\":\"Återställ dolda priser\",\"split_by_month\":\"Dela efter månad\"},\"error_title\":\"Åtgärden misslyckades\",\"merge_requires_multiple_text\":\"Välj minst två fakturasamlingar för att slå ihop dem.\",\"merge_requires_multiple_title\":\"Välj flera fakturasamlingar\",\"merge_target_title\":\"Välj målfakturasamling\",\"menu\":{\"collapse_all\":\"Fäll ihop alla\",\"expand_all\":\"Expandera alla\",\"label\":\"Fakturasamlingsåtgärder ({count})\",\"modification_section\":\"Ändra valda\",\"select_all\":\"Välj alla\",\"selection_section\":\"Val\",\"unselect_all\":\"Avmarkera alla\"},\"preview\":{\"affected_examples\":\"Exempel på ändringar\",\"blocked_title\":\"Åtgärden är blockerad\",\"blockers\":\"Blockeringar\",\"changed\":\"Ändringar: {count}\",\"collection_status_line\":\"Fakturasamling #{collection}: {status}\",\"collections\":\"Fakturasamlingar: {count}\",\"confirm_button\":\"Utför åtgärd\",\"confirmation_label\":\"Skriv {phrase} för att bekräfta\",\"confirmation_mismatch\":\"Skriv exakt {phrase} för att fortsätta.\",\"merge_target\":\"Mål: fakturasamling #{id}\",\"no_changes_title\":\"Inga ändringar\",\"order_item_line\":\"Fakturasamling #{collection}, order #{order}: {product}\",\"order_move_line\":\"Order #{order}: #{source} till #{target}\",\"requires_confirmation\":\"Granska förhandsvisningen. Inga ändringar görs innan du skriver {phrase}.\",\"skipped\":\"Hoppade över: {count}\",\"title\":\"Förhandsvisa {action}\"},\"success_text\":\"Utförde {count} ändringar.\",\"success_title\":\"Åtgärd slutförd\"},\"monthly_split\":{\"button\":\"@.capitalize:{'words.generated.split'} @:{'words.generated.invoices'} @:{'words.generated.by'} @:{'words.generated.month'}\",\"confirm_text\":\"@.capitalize:{'words.generated.split'} non-invoiced collected @:{'words.generated.invoices'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.selected'} @:{'words.generated.period'} into @:{'words.generated.monthly'} @:{'words.generated.invoice'} @:{'words.generated.collections'}?\",\"confirm_yes\":\"@:{'words.generated.yes'}, @:{'words.generated.split'} @:{'words.generated.by'} @:{'words.generated.month'}\",\"error_title\":\"@.capitalize:{'words.generated.monthly'} @:{'words.generated.split'} @:{'words.generated.failed'}\",\"preview_apply\":\"@.capitalize:{'words.generated.apply'} @:{'words.generated.split'}\",\"preview_create_new\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.collection'}\",\"preview_existing\":\"@:{'words.generated.keep'} original @:{'words.generated.collection'} #{id}\",\"preview_no_changes_text\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.selected'} @:{'words.generated.period'} @:{'words.generated.has'} @:{'words.generated.no'} @:{'words.generated.invoice'} @:{'words.generated.collections'} that @:{'words.generated.will'} @:{'words.generated.be'} @:{'words.generated.changed'}.\",\"preview_no_changes_title\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.invoices'} @:{'words.generated.to'} @:{'words.generated.split'}\",\"preview_orders\":\"{count} @:{'words.generated.orders'}\",\"preview_skipped_title\":\"@.capitalize:{'words.generated.skipped'}\",\"preview_summary\":\"@:{'words.generated.processed'} {processed} @:{'words.generated.invoice'} @:{'words.generated.collections'}. @.capitalize:{'words.generated.will'} @:{'words.generated.split'} {changed}, @:{'words.generated.skipped'} {skipped}.\",\"preview_title\":\"Preview @:{'words.generated.monthly'} @:{'words.generated.split'}\",\"success_text\":\"@:{'words.generated.processed'} {processed} @:{'words.generated.invoice'} @:{'words.generated.collections'}. @.capitalize:{'words.generated.split'} {changed}, @:{'words.generated.skipped'} {skipped}.\",\"success_title\":\"@.capitalize:{'words.generated.monthly'} @:{'words.generated.split'} @:{'words.generated.completed'}\"},\"multi_month_invoice_warning\":{\"invoice_together\":\"Fakturera tillsammans\",\"split_by_month\":\"Dela upp per månad\",\"split_error_title\":\"Månadsuppdelning misslyckades\",\"split_success_text\":\"Bearbetade {processed} fakturasamlingar. Delade upp {changed}, hoppade över {skipped}.\",\"split_success_title\":\"Månadsuppdelning klar\",\"text\":\"Du håller på att fakturera ordrar från flera månader tillsammans ({months}). Ska de delas upp per månad i stället?\",\"title\":\"Ordrar från flera månader\"}},\"invoicing\":{\"progress\":{\"failed_to_send\":\"@:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.sende'} @:{'words.generated.faktura'}\",\"queued\":\"@.upper:{'words.generated.i'} @:{'words.generated.ko'}\",\"sending_invoices\":\"@:{'words.generated.sender'} @:{'words.generated.fakturaer'}...\",\"succeeded\":\"Lyckad\"}},\"login_qr\":{\"camera_error\":\"Kamerafel\",\"login_with_password_instead\":\"@.capitalize:{'words.generated.logga'} @:{'words.generated.in'} @:{'words.generated.med'} @:{'words.generated.losenord'} @:{'words.generated.i'} stället\",\"login_with_password\":\"@:{'words.generated.login'} @:{'words.generated.with'} @:{'words.generated.password'}\",\"mobile_only\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.sidan'} @:{'words.generated.ar'} @:{'words.generated.endast'} @:{'words.generated.tillganglig'} @:{'words.generated.pa'} mobila enheter. @.capitalize:{'words.generated.anvand'} @:{'words.generated.din'} @:{'words.generated.telefon'} @:{'words.generated.eller'} surfplatta @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.skanna'} @:{'words.generated.qr'}-@:{'words.generated.koden'}.\",\"scan_subtitle\":\"Place @:{'words.generated.the'} @:{'words.generated.qr'} @:{'words.generated.code'} @:{'words.generated.within'} @:{'words.generated.the'} frame\",\"scan_title\":\"@.capitalize:{'words.generated.scan'} @:{'words.generated.qr'} @.capitalize:{'words.generated.code'}\",\"unknown_qr_text\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.scanned'} @:{'words.generated.qr'} @:{'words.generated.code'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.valid'} @:{'words.generated.for_2'} @:{'words.generated.this'} @:{'words.generated.page'}.\",\"unknown_qr_title\":\"@:{'words.generated.okand'} @:{'words.generated.qr'}-@:{'words.generated.kod'}\"},\"maintenance_menu\":{\"confirm_clear_local\":\"Rensa all lokal appdata och ladda om nu?\",\"copy_trace_copied\":\"Kopierat\",\"copy_trace_failed\":\"Kopiering misslyckades\",\"copy_trace\":\"Kopiera trace\",\"force_update_clear_hint\":\"Rensar local storage, session storage, service workers och webbläsarcacher.\",\"force_update_clear\":\"Tvinga uppdatering och rensa allt lokalt\",\"title\":\"Underhåll\",\"version\":\"Aktuell {current} / senaste {latest}\"},\"messages\":{\"are_you_sure\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'}?\",\"cannot_undo\":\"@.capitalize:{'words.generated.denna'} @:{'words.generated.atgard'} @:{'words.generated.kan'} @:{'words.generated.inte'} @:{'words.generated.angras'}.\",\"confirm_cancel\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.avbryta'}?\",\"confirm_delete\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.radera'} @:{'words.generated.detta'}?\",\"confirmed\":\"@.capitalize:{'words.generated.bekraftad'} @:{'words.generated.framgangsrikt'}\",\"copied\":\"Kopierad @:{'words.generated.till'} @:{'words.generated.urklipp'}\",\"error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'}. @.capitalize:{'words.generated.forsok'} @:{'words.generated.igen'}.\",\"loading\":\"@:{'templates.generated.compat.common.loading'}\",\"no_results\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.resultat'} @:{'words.generated.hittades'}\",\"please_wait\":\"@:{'words.generated.vanligen'} @:{'words.generated.vanta'}...\",\"saved\":\"@.capitalize:{'words.generated.sparad'} @:{'words.generated.framgangsrikt'}\",\"sent\":\"Skickad @:{'words.generated.framgangsrikt'}\",\"welcome\":\"@:{'words.generated.valkommen'}\"},\"modals\":{\"action\":\"@.capitalize:{'words.generated.atgard'}\",\"active_tasks\":\"@.capitalize:{'words.generated.aktiva'} @:{'words.generated.uppgifter'} / @:{'words.generated.atgarder'}\",\"add_condition_rule\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.condition'} @:{'words.generated.rule'}\",\"add_question_rule\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} frägeregel\",\"add_task_rule\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.task'} @:{'words.generated.rule'}\",\"all_possible_questions\":\"@.capitalize:{'words.generated.alla'} @:{'words.generated.mojliga'} @:{'words.generated.fragor'} (@:{'words.generated.synlighet'})\",\"all_possible_tasks\":\"@.capitalize:{'words.generated.alla'} @:{'words.generated.mojliga'} @:{'words.generated.uppgifter'} (@:{'words.generated.synlighet'})\",\"all_questions_answered\":\"@.capitalize:{'words.generated.alla'} @:{'words.generated.relevanta'} @:{'words.generated.fragor'} @:{'words.generated.har'} besvarats!\",\"answer\":\"Answer\",\"answered_questions\":\"@.capitalize:{'words.generated.besvarade'} @:{'words.generated.fragor'}\",\"are_you_sure\":\"@:{'templates.generated.compat.messages.are_you_sure'}\",\"attached_file\":\"Bifogad @:{'words.generated.fil'}\",\"attachments_for\":\"@:{'words.generated.bilagor'} @:{'words.generated.for'}\",\"cannot_undo\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.kan'} @:{'words.generated.inte'} @:{'words.generated.angra'} @:{'words.generated.detta'}!\",\"choose_file\":\"@:{'words.generated.choose'} @:{'words.generated.a'} @:{'words.generated.file'}...\",\"could_not_read_file\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.lasa'} @:{'words.generated.filen'}. @.capitalize:{'words.generated.se'} @:{'words.generated.till'} @:{'words.generated.att'} @:{'words.generated.det'} @:{'words.generated.ar'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.giltig'} @:{'words.generated.json'}-@:{'words.generated.fil'}.\",\"delete_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.nar'} @:{'words.generated.filen'} togs @:{'words.generated.bort'}.\",\"download_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.nar'} @:{'words.generated.filen'} @:{'words.generated.laddades'} @:{'words.generated.ner'}.\",\"export\":\"@.capitalize:{'words.generated.export'}\",\"fetching_data\":\"@.capitalize:{'words.generated.fetching'} @:{'words.generated.data'}...\",\"fetching_files\":\"@.capitalize:{'words.generated.hamtar'} @:{'words.generated.filer'}...\",\"file_deleted\":\"@.capitalize:{'words.generated.filen'} @:{'words.generated.har'} @:{'words.generated.tagits'} @:{'words.generated.bort'}.\",\"file_uploaded\":\"@.capitalize:{'words.generated.filen'} @:{'words.generated.har'} laddats @:{'words.generated.upp'}.\",\"filename\":\"Filename\",\"if_condition\":\"If\",\"invalid_file_format\":\"@:{'words.generated.ogiltigt'} filformat. @.capitalize:{'words.generated.filen'} @:{'words.generated.maste'} innehålla @:{'words.replication.host_definite_suffix'} \\\"@:{'words.generated.items'}\\\"-array.\",\"lane\":\"@.capitalize:{'words.generated.lane'}\",\"mass_data_warning\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.funktionen'} @:{'words.generated.kan'} @:{'words.generated.endast'} @:{'words.generated.importera'} @:{'words.generated.data'} @:{'words.generated.i'} särskilt format @:{'words.generated.och'} bör @:{'words.generated.darfor'} @:{'words.generated.inte'} användas @:{'words.generated.utan'} korrekt uppsättning.\",\"no_active_tasks\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.aktiva'} @:{'words.generated.uppgifter'}\",\"no_answers_yet\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.svar'} @:{'words.generated.annu'}\",\"no_conditions_found\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.villkor'} @:{'words.generated.hittades'}\",\"no_files_attached\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.filer'} @:{'words.generated.ar'} @:{'words.generated.bifogade'} @:{'words.generated.till'} @:{'words.generated.denna'} uppgift.\",\"no_rules\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.regler'}\",\"no_tasks_found\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.uppgifter'} @:{'words.generated.hittades'}\",\"no\":\"@.upper:{'words.generated.no'}\",\"please_wait\":\"@.capitalize:{'words.generated.vanta'} @:{'words.generated.medan'} @:{'words.generated.vi'} @:{'words.generated.laser'} @:{'words.generated.in'} @:{'words.generated.data'}.\",\"question\":\"@.capitalize:{'words.generated.fraga'}\",\"questions\":\"@.capitalize:{'words.generated.fragor'}\",\"remove_passed\":\"@:{'words.generated.remove'} passed\",\"reset_all\":\"@.capitalize:{'words.generated.reset'} @:{'words.generated.all'}\",\"rule_types\":{\"IS_FALSE\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.false'}\",\"IS_FALSE_OR_ANY_FALSE\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.false'} @:{'words.generated.or'} @.upper:{'words.generated.any'} @:{'words.generated.false'}\",\"IS_FALSE_OR_NOT_SET\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.false'} @:{'words.generated.or'} @:{'words.generated.not'} @:{'words.generated.set'}\",\"IS_NOT_SET\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.set'}\",\"IS_SET\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.set'}\",\"IS_TRUE\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.true'}\",\"IS_TRUE_OR_ANY_TRUE\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.true'} @:{'words.generated.or'} @.upper:{'words.generated.any'} @:{'words.generated.true'}\",\"IS_TRUE_OR_NOT_SET\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.true'} @:{'words.generated.or'} @:{'words.generated.not'} @:{'words.generated.set'}\"},\"rules_for\":\"@.capitalize:{'words.generated.rules'} @:{'words.generated.for_2'}\",\"rules\":\"@.capitalize:{'words.generated.rules'}\",\"run_again\":\"@.capitalize:{'words.generated.run'} @:{'words.generated.again'}\",\"save_changes\":\"@.capitalize:{'words.generated.spara'} @:{'words.generated.andringar'}\",\"select_an_object\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.ett'} @:{'words.generated.objekt'}\",\"start_over\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.over_2'}\",\"test_flow\":\"@.capitalize:{'words.generated.test'} flow\",\"under_development\":\"@.capitalize:{'words.generated.under'} utveckling...\",\"unknown_customer\":\"@:{'words.generated.okand'} @:{'words.generated.kund'}\",\"upload_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.nar'} @:{'words.generated.filen'} @:{'words.generated.laddades'} @:{'words.generated.upp'}.\",\"yes\":\"@.upper:{'words.generated.yes'}\"},\"nav\":{\"create_transaction\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.transaktion'}\",\"daily_report\":\"@.capitalize:{'words.generated.daily'} @:{'words.generated.report'}\",\"drafts\":\"@.capitalize:{'words.generated.utkast'}\",\"drivers\":\"@.capitalize:{'words.generated.forare'}\",\"notifications\":\"@.capitalize:{'words.generated.aviseringar'}\",\"overview\":\"@:{'words.generated.oversikt'}\",\"pos_system\":\"@:{'words.generated.pos'} @.capitalize:{'words.generated.system'}\",\"select_department\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.avdelning'}\",\"self_wash\":\"@.capitalize:{'words.generated.self'} @:{'words.generated.wash'}\",\"wash_log\":\"@.capitalize:{'words.generated.tvattlogg'}\"},\"objects\":{\"bookings\":{\"columns\":{\"economic_customer_number\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.kundnummer'}\",\"pickup\":\"@:{'templates.generated.compat.pagination.pickup'}\",\"wash_certificate_email\":\"@.capitalize:{'words.generated.tvattcertifikat'} @:{'words.generated.e'}-@:{'words.generated.post'}\",\"wash_certificate_pdf\":\"@.capitalize:{'words.generated.tvattcertifikat'} @:{'words.generated.pdf'}\",\"wash_certificate_status\":\"Tvättcertifikatstatus\",\"wash_certificate_url\":\"@.capitalize:{'words.generated.tvattcertifikat'}-@:{'words.generated.url'}\"},\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.bokningar'}\"},\"branding\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} profilering\",\"multiple\":\"brands\",\"single\":\"@:{'words.generated.branding'}\",\"title\":\"@.capitalize:{'words.generated.branding'}\"},\"categories\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} kategorier\",\"single\":\"@:{'words.generated.kategori'}\",\"title\":\"@:{'templates.generated.compat.superuser.nav.categories'}\"},\"collected_order_invoices\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.samlade'} @:{'words.generated.orderfakturor'}\",\"multiple\":\"@:{'words.generated.samlade'} @:{'words.generated.orderfakturor'}\",\"single\":\"@:{'words.generated.samlad'} orderfaktura\",\"title\":\"@.capitalize:{'words.generated.samlade'} @:{'words.generated.orderfakturor'}\"},\"columns\":{\"capacity\":\"Kapacitet\",\"category_id\":\"Category @.upper:{'words.generated.id'}\",\"city\":\"City\",\"color\":\"Color\",\"condition\":\"@:{'templates.generated.compat.common.terms'}\",\"config\":\"@.capitalize:{'words.generated.config'}\",\"content\":\"@.capitalize:{'words.generated.content'}\",\"country\":\"@:{'templates.generated.compat.common.country'}\",\"customer_number\":\"@:{'templates.generated.compat.common.customer_number'}\",\"data\":\"@.capitalize:{'words.generated.data'}\",\"deleted\":\"Raderat\",\"department_id\":\"@:{'templates.generated.compat.common.department_id'}\",\"duration\":\"@.capitalize:{'words.generated.duration'}\",\"dynamic_image_id\":\"Dynamic @:{'words.generated.image'} @.upper:{'words.generated.id'}\",\"email\":\"@.capitalize:{'words.generated.email'}\",\"email_desc\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.e'}-postadress @:{'words.generated.som'} förare.\",\"external_id\":\"External @.upper:{'words.generated.id'}\",\"filled_by\":\"Filled @.capitalize:{'words.generated.by'}\",\"grant\":\"@.capitalize:{'words.generated.grant'}\",\"icon\":\"Icon\",\"image\":\"@:{'words.generated.image'}\",\"is_entrance\":\"@.capitalize:{'words.generated.is'} entrance\",\"is_exit\":\"@.capitalize:{'words.generated.is'} exit\",\"key\":\"@.capitalize:{'words.generated.key'}\",\"max\":\"Maximum\",\"message\":\"@.capitalize:{'words.generated.message'}\",\"module\":\"@.capitalize:{'words.generated.module'}\",\"notes\":\"@.capitalize:{'words.generated.notes'}\",\"order_id\":\"Order ID\",\"permission\":\"@.capitalize:{'words.generated.permission'}\",\"po_number\":\"@:{'words.generated.po'} @.capitalize:{'words.generated.number'}\",\"priority\":\"Prioritet\",\"processor\":\"Fakturaprocessor\",\"relay_id\":\"@.capitalize:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_in_id\":\"Ingångsrelä-@.upper:{'words.generated.id'}\",\"relay_machine_cleaner_id\":\"@.capitalize:{'words.generated.machine'} cleaner @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_machine_id\":\"Maskinrelä-@.upper:{'words.generated.id'}\",\"relay_machine_program_picker_id\":\"@.capitalize:{'words.generated.machine'} program picker @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_out_id\":\"Utgångsrelä-@.upper:{'words.generated.id'}\",\"role_id\":\"@.capitalize:{'words.generated.role'} @.upper:{'words.generated.id'}\",\"rule\":\"@.capitalize:{'words.generated.rule'}\",\"sort_order\":\"Sort @.capitalize:{'words.generated.order'}\",\"suspended\":\"Avstängd\",\"task\":\"@.capitalize:{'words.generated.task'}\",\"title\":\"Title\",\"total_net_amount\":\"@.capitalize:{'words.generated.total'} @.capitalize:{'words.generated.net'} @.capitalize:{'words.generated.amount'}\",\"updated_at\":\"Uppdaterat\",\"url\":\"@:{'words.generated.url'}\",\"user_id\":\"@.capitalize:{'words.generated.user'} @.upper:{'words.generated.id'}\",\"water_usage\":\"@.capitalize:{'words.generated.water'} @.capitalize:{'words.generated.usage'} (m3)\",\"zip\":\"Zip @.capitalize:{'words.generated.code'}\"},\"department_categories\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelningskategorier'}\",\"multiple\":\"@:{'words.generated.avdelningskategorier'}\",\"single\":\"avdelningskategori\",\"title\":\"@.capitalize:{'words.generated.avdelningskategorier'}\"},\"department_daily_reports\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} dagsrapporter\",\"multiple\":\"@:{'words.generated.daily'} @:{'words.generated.reports'}\",\"title\":\"@.capitalize:{'words.generated.daily'} @.capitalize:{'words.generated.reports'}\"},\"department_gates\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelningsgrindar'}\",\"multiple\":\"@:{'words.generated.avdelningsgrindar'}\",\"single\":\"@:{'words.generated.avdelningsgrind'}\"},\"department_lanes\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.tvattbanor'}\",\"multiple\":\"@:{'words.generated.wash'} lanes\",\"single\":\"@:{'words.generated.wash'} @:{'words.generated.lane'}\"},\"department_notification_sms\":{\"country_codes\":{\"denmark\":\"Denmark (+45)\",\"finland\":\"Finland (+358)\",\"norway\":\"Norway (+47)\",\"sweden\":\"Sweden (+46)\"},\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelningens'} @:{'words.generated.sms'}-@:{'words.generated.aviseringar'}\",\"multiple\":\"@:{'words.generated.phone'} @:{'words.generated.numbers'}\",\"title\":\"@.capitalize:{'words.generated.avdelningens'} @:{'words.generated.sms'}-@:{'words.generated.aviseringar'}\"},\"department_relays\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelningsrelaer'}\",\"single\":\"@:{'words.generated.avdelningsrela'}\"},\"department_time_bookings_entries\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.tidsbokningar'}\",\"single\":\"@:{'words.generated.time'} @:{'words.generated.booking'}\"},\"department_time_bookings_opening_hours\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.oppettider'}\",\"single\":\"@:{'words.generated.opening'} hour\"},\"department_time_bookings_types\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.bokningstyper'}\",\"multiple\":\"@:{'words.generated.booking'} @:{'words.generated.types'}\",\"single\":\"@:{'words.generated.booking'} @:{'words.generated.type'}\"},\"department_variables\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelningsvariabler'}\",\"multiple\":\"@:{'words.generated.avdelningsvariabler'}\",\"single\":\"avdelningsvariabel\",\"title\":\"@.capitalize:{'words.generated.avdelningsvariabler'}\"},\"departments\":{\"columns\":{\"archived\":\"Arkiverad\",\"custom_pricing_only\":\"@:{'templates.generated.compat.departments.pricing.custom_pricing_only'}\",\"dimension\":\"Dimension\",\"economic_department\":\"@:{'templates.generated.compat.objects.economic_departments.single'}\",\"latitude\":\"Latitude\",\"longitude\":\"Longitude\",\"slack_webhook\":\"@:{'words.generated.slack'} @.capitalize:{'words.generated.webhook'}\"},\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelningar'}\",\"filters\":{\"active\":\"@.capitalize:{'words.generated.aktiva'} @:{'words.generated.avdelningar'}\",\"archived\":\"Arkiverade @:{'words.generated.avdelningar'}\"}},\"economic_departments\":{\"columns\":{\"department_number\":\"Avdelningsnummer\"},\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.avdelningar'}\",\"multiple\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.avdelningar'}\",\"single\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.avdelning'}\",\"title\":\"@:{'templates.generated.compat.objects.economic_departments.multiple'}\"},\"economic_products\":{\"columns\":{\"product_number\":\"Produktnummer\"},\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.produkter'}\",\"multiple\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.produkter'}\",\"single\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.produkt'}\",\"title\":\"@:{'templates.generated.compat.objects.economic_products.multiple'}\"},\"forms\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.formular'}\",\"multiple\":\"@:{'words.generated.forms'}\",\"single\":\"form\",\"title\":\"@.capitalize:{'words.generated.forms'}\"},\"goals\":{\"columns\":{\"current\":\"@.capitalize:{'words.generated.current'}\",\"period\":\"@.capitalize:{'words.generated.period'}\",\"target\":\"@.capitalize:{'words.generated.target'}\"},\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.mal'}\",\"multiple\":\"@:{'words.generated.goals'}\",\"single\":\"@:{'words.generated.goal'}\"},\"invoices\":{\"columns\":{\"due_date\":\"@:{'templates.generated.compat.invoices.due_date'}\"},\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.fakturor'}\",\"multiple\":\"@:{'words.generated.fakturor'}\",\"single\":\"@:{'words.generated.faktura'}\"},\"module_action_logs\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} modulätgärdsloggar\",\"multiple\":\"@:{'words.generated.module'} @:{'words.generated.actions'}\",\"single\":\"@:{'words.generated.module'} @:{'words.generated.action'}\",\"title\":\"@.capitalize:{'words.generated.module'} @.capitalize:{'words.generated.action'} @.capitalize:{'words.generated.logs'}\"},\"notifications\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.aviseringar'}\",\"single\":\"avisering\"},\"order_bookings\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.orderbokningar'}\",\"multiple\":\"@:{'words.generated.order'} @:{'words.generated.bookings'}\",\"single\":\"@:{'words.generated.order'} @:{'words.generated.booking'}\"},\"orders\":{\"columns\":{\"cashier\":\"Cashier\",\"reg_2\":\"@.capitalize:{'words.generated.reg'}. 2\",\"reg_3\":\"@.capitalize:{'words.generated.reg'}. 3\",\"wash_id\":\"@.capitalize:{'words.generated.tvatt'}-@.upper:{'words.generated.id'}\"},\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.tvattlogg'}\"},\"permissions\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.behorigheter'}\"},\"product_options\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.produktalternativ'}\",\"multiple\":\"@:{'templates.generated.compat.objects.product_options.single'}\",\"single\":\"@:{'words.generated.produktalternativ'}\",\"title\":\"@.capitalize:{'words.generated.produktalternativ'}\"},\"products\":{\"columns\":{\"economic_product\":\"@:{'templates.generated.compat.objects.economic_products.single'}\",\"is_wash\":\"Är tvätt\",\"piktogram\":\"Pictogram\",\"requires_note\":\"@.capitalize:{'words.generated.kraver'} @:{'words.generated.anteckning'}\",\"show_in_booking_form\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.i'} bokningsformulär\",\"sort_priority\":\"Sorteringsprioritet (lägst @:{'words.generated.forst'})\",\"subscription_allowed\":\"@:{'words.generated.abonnemang'} tillåtet\",\"use_category_discount\":\"@.capitalize:{'words.generated.anvand'} kategorirabatt\"},\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.produkter'}\",\"multiple\":\"@:{'words.generated.produkter'}\",\"single\":\"@:{'words.generated.produkt'}\"},\"roles\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.roller'}\"},\"self_serve_condition_rules\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.villkorsregler'}\",\"multiple\":\"@:{'words.generated.villkorsregler'}\",\"single\":\"@:{'words.generated.condition'} @:{'words.generated.rule'}\"},\"self_serve_conditions\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.sjalvbetjaningsvillkor'}\",\"single\":\"@:{'words.generated.villkor'}\",\"title\":\"@.capitalize:{'words.generated.self'}-@.capitalize:{'words.generated.serve'} @.capitalize:{'words.generated.conditions'}\"},\"self_serve_questions\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.sjalvbetjaningsfragor'}\",\"single\":\"@:{'words.generated.fraga'}\",\"title\":\"@.capitalize:{'words.generated.sjalvbetjaningsfragor'}\"},\"self_serve_tasks\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} självbetjäningsuppgifter\",\"multiple\":\"@:{'words.generated.tasks'}\",\"single\":\"@:{'words.generated.task'}\",\"title\":\"@.capitalize:{'words.generated.self'}-@.capitalize:{'words.generated.serve'} @.capitalize:{'words.generated.tasks'}\"},\"self_serve_vehicle_conditions\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.fordonsvillkor'}\",\"multiple\":\"@:{'templates.generated.compat.objects.self_serve_vehicle_conditions.single'}\",\"single\":\"@:{'words.generated.fordonsvillkor'}\"},\"subuser_grants\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} underanvändarbehärigheter\",\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.view'} @:{'words.generated.and'} @:{'words.generated.manage'} @:{'words.generated.your'} @:{'words.generated.drivers'}.\",\"title\":\"@:{'templates.generated.compat.nav.drivers'}\"},\"vehicles\":{\"columns\":{\"reg\":\"@.capitalize:{'words.generated.reg'}. 1.\"},\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.fordon'}\"},\"xlvask_vehicle_types\":{\"description\":\"@:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.fordonstyper'}\",\"title\":\"@:{'templates.generated.compat.statistics.vehicle_types'}\"}},\"order_bookings\":{\"add_service\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.service'}\",\"no_date_selected\":\"@.capitalize:{'words.generated.inget'} @:{'words.generated.datum'} @:{'words.generated.valt'}\",\"no_department_selected\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.avdelning'} @:{'words.generated.vald'}\"},\"outdated\":{\"gateway\":{\"description\":\"@.capitalize:{'words.generated.du'} omdirigeras @:{'words.generated.till'} @:{'words.generated.samma'} sökväg @:{'words.generated.pa'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}.\",\"redirect_now\":\"@:{'words.generated.ga'} @:{'words.generated.nu'}\",\"redirecting_in\":\"Omdirigerar @:{'words.generated.om'} {seconds} @:{'words.generated.sekunder'}...\",\"subtitle\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} länken @:{'words.generated.haller'} @:{'words.generated.pa'} @:{'words.generated.att'} fasas @:{'words.generated.ut'}.\",\"title\":\"@.capitalize:{'words.generated.foraldrad'} @:{'words.generated.gateway'}\"},\"installation\":{\"android_step_1\":\"@.capitalize:{'words.generated.oppna'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.i'} @:{'words.generated.chrome'}.\",\"android_step_2\":\"@.capitalize:{'words.generated.oppna'} webbläsarmenyn @:{'words.generated.och'} @:{'words.generated.valj'} \\\"@.capitalize:{'words.generated.installera'} @:{'words.generated.app'}\\\".\",\"android_step_3\":\"@.capitalize:{'words.generated.anvand'} @:{'words.replication.article.host_mention'} nyinstallerade @:{'words.generated.appen'} @:{'words.generated.och'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.foraldrade'} @:{'words.generated.appen'}.\",\"android_title\":\"Android-@:{'words.generated.migrering'}\",\"description\":\"@:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.har'} flyttats @:{'words.generated.till'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.installation'} @:{'words.generated.pa'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}. @.capitalize:{'words.generated.oppna'} @:{'words.replication.article.host_mention'} @:{'words.generated.nya'} @:{'words.generated.sidan'} @:{'words.generated.och'} @:{'words.generated.installera'} @:{'words.generated.appen'} @:{'words.generated.igen'} @:{'words.generated.pa'} @:{'words.generated.din'} @:{'words.generated.enhet'}.\",\"ios_step_1\":\"@.capitalize:{'words.generated.oppna'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.i'} @:{'words.generated.safari'}.\",\"ios_step_2\":\"@:{'words.generated.tryck'} @:{'words.generated.pa'} @.capitalize:{'words.generated.dela'} @:{'words.generated.och'} @:{'words.generated.valj'} \\\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.pa'} @:{'words.generated.hemskarmen'}\\\".\",\"ios_step_3\":\"@.capitalize:{'words.generated.anvand'} @:{'words.replication.article.host_mention'} @:{'words.generated.nya'} hemskärmsappen @:{'words.generated.och'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.foraldrade'} @:{'words.generated.appen'}.\",\"ios_title\":\"@:{'words.generated.iphone'}-@:{'words.generated.migrering'}\",\"open_now\":\"@.capitalize:{'words.generated.oppna'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.nu'}\",\"subtitle\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.installerade'} @:{'words.generated.appen'} @:{'words.generated.ar'} @:{'words.generated.foraldrad'} @:{'words.generated.och'} @:{'words.generated.maste'} migreras.\",\"title\":\"@.capitalize:{'words.generated.foraldrad'} @:{'words.generated.installation'}\"}},\"pagination\":{\"archive\":\"Archive\",\"clear_all\":\"Rensa alla\",\"ascending\":\"Ascending (Oldest @:{'words.generated.first'})\",\"booking_status\":\"Bokningsstatus\",\"bookings_overview\":\"Bokningsäversikt\",\"descending\":\"Fallande (nyast @:{'words.generated.forst'})\",\"download_excel\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.ner'} @:{'words.generated.excel'}\",\"error_status\":\"Felstatus\",\"from_date\":\"@.capitalize:{'words.generated.from'} @:{'words.generated.date'}\",\"has_special_agreement\":\"@.capitalize:{'words.generated.har'} @:{'words.generated.specialavtal'}\",\"has_wash_subscription\":\"@.capitalize:{'words.generated.har'} @:{'words.generated.tvattabonnemang'}\",\"here\":\"@:{'words.generated.here'}\",\"hide_filters\":\"@:{'words.generated.dolj'} @:{'words.generated.filter'}\",\"in_progress\":\"@.capitalize:{'words.generated.in'} @:{'words.generated.progress'}\",\"invoice_per_month\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.per'} @:{'words.generated.manad'}\",\"invoice_selection\":\"Fakturaval\",\"invoicing_period\":\"@.capitalize:{'words.generated.invoicing'} @:{'words.generated.period'}\",\"loading\":\"@:{'words.generated.laddar'} @:{'words.generated.data'}...\",\"new_booking\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.bokning'}\",\"next\":\"@.capitalize:{'words.generated.nasta'} @:{'words.generated.sida'}\",\"no_special_agreement\":\"@.capitalize:{'words.generated.inget'} @:{'words.generated.specialavtal'}\",\"no_wash_subscription\":\"@.capitalize:{'words.generated.inget'} @:{'words.generated.tvattabonnemang'}\",\"not_booked\":\"@.capitalize:{'words.generated.inte'} @:{'words.generated.bokford'}\",\"not_completed\":\"@:{'templates.generated.compat.global.not_completed'}\",\"not_specified\":\"@.capitalize:{'words.generated.inte'} @:{'words.generated.angivet'}\",\"not_tank_cleaning\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}\",\"old_booking_notice\":\"Obs: @.capitalize:{'words.generated.du'} @:{'words.generated.ar'} @:{'words.generated.i'} @:{'words.replication.article.host_mention'} gamla @:{'words.generated.bokningsportalen'}. @.capitalize:{'words.generated.vi'} @:{'words.generated.haller'} @:{'words.generated.pa'} @:{'words.generated.att'} flytta @:{'words.generated.historiska'} @:{'words.generated.data'} @:{'words.generated.till'} @:{'words.replication.article.host_mention'} @:{'words.generated.nya'}. @.capitalize:{'words.generated.du'} hittar @:{'words.replication.article.host_mention'} @:{'words.generated.nya'} @:{'words.generated.bokningsportalen'}\",\"old\":\"Old\",\"only_tank_cleaning\":\"@:{'templates.generated.compat.global.only_tank_cleaning'}\",\"only_today\":\"@.capitalize:{'words.generated.endast'} @:{'words.generated.i'} @:{'words.generated.dag'}\",\"order_direction\":\"Sorteringsriktning\",\"other_filters\":\"Andra filter\",\"other_no_tracking\":\"övrigt (@:{'words.generated.ingen'} spårning)\",\"page_of\":\"@.capitalize:{'words.generated.page'} {current} @:{'words.generated.of'} {total}\",\"payment_processor\":\"Betalningsleverantär\",\"per_page\":\"@.capitalize:{'words.generated.per'} @:{'words.generated.page'}\",\"pickup\":\"Pickup\",\"previous\":\"@.capitalize:{'words.generated.foregaende'} @:{'words.generated.sida'}\",\"reload\":\"Reload\",\"show_filters\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.filter'}\",\"show_only_pending\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.endast'} @:{'words.generated.vantande'}\",\"show_only_today\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.endast'} @:{'words.generated.i'} @:{'words.generated.dag'}\",\"show_only_todays_pending\":\"@.capitalize:{'words.generated.visa'} @:{'words.generated.endast'} @:{'words.generated.dagens'} @:{'words.generated.vantande'}\",\"special_agreement\":\"@.capitalize:{'words.generated.specialavtal'}\",\"to_date\":\"@.capitalize:{'words.generated.to'} @:{'words.generated.date'}\",\"version\":\"@.capitalize:{'words.generated.version'}\",\"wash_subscription\":\"@.capitalize:{'words.generated.tvattabonnemang'}\"},\"passkeys\":{\"added_successfully\":\"@.capitalize:{'words.generated.losennyckel'} @:{'words.generated.har'} @:{'words.generated.lagts'} @:{'words.generated.till'}.\",\"delete_confirm\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.losennyckeln'} \\\"{name}\\\"? @.capitalize:{'words.generated.detta'} @:{'words.generated.kan'} @:{'words.generated.inte'} @:{'words.generated.angras'}.\",\"description\":\"@.capitalize:{'words.generated.anvand'} @:{'words.generated.losennycklar'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.logga'} @:{'words.generated.in'} @:{'words.generated.sakert'} @:{'words.generated.med'} biometri @:{'words.generated.som'} Face @.upper:{'words.generated.id'}, Touch @.upper:{'words.generated.id'} @:{'words.generated.eller'} enhetens PIN-@:{'words.generated.kod'}.\",\"login_failed\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.logga'} @:{'words.generated.in'} @:{'words.generated.med'} @:{'words.generated.losennyckel'}. @.capitalize:{'words.generated.forsok'} @:{'words.generated.igen'}.\",\"login_with_passkey\":\"@.capitalize:{'words.generated.logga'} @:{'words.generated.in'} @:{'words.generated.med'} @:{'words.generated.losennyckel'}\",\"name_label\":\"Lösennyckelsnamn\",\"name_placeholder\":\"t.ex. Min @:{'words.generated.iphone'}, Jobbdator\",\"name_required\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.ett'} @:{'words.generated.namn'} @:{'words.generated.for'} @:{'words.generated.din'} @:{'words.generated.losennyckel'}\",\"no_passkeys\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.inte'} lagt @:{'words.generated.till'} @:{'words.generated.nagra'} @:{'words.generated.losennycklar'} @:{'words.generated.annu'}. @:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.aktivera'} lösenordsfri @:{'words.generated.inloggning'}.\",\"not_supported_browser\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.webblasare'} stöder @:{'words.generated.inte'} @:{'words.generated.losennycklar'}. @:{'words.generated.prova'} @:{'words.replication.host_definite_suffix'} modern @:{'words.generated.webblasare'} @:{'words.generated.som'} @:{'words.generated.chrome'}, @:{'words.generated.safari'}, Firefox @:{'words.generated.eller'} @.capitalize:{'words.generated.edge'}.\",\"not_supported\":\"@.capitalize:{'words.generated.losennycklar'} @:{'words.generated.stods'} @:{'words.generated.inte'} @:{'words.generated.pa'} @:{'words.generated.denna'} @:{'words.generated.enhet'}.\",\"registration_cancelled\":\"@.capitalize:{'words.generated.registrering'} @:{'words.generated.av'} @:{'words.generated.losennyckel'} avbröts.\",\"registration_failed\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.registrera'} @:{'words.generated.losennyckel'}. @.capitalize:{'words.generated.forsok'} @:{'words.generated.igen'}.\",\"rename_failed\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.byta'} @:{'words.generated.namn'} @:{'words.generated.pa'} @:{'words.generated.losennyckel'}. @.capitalize:{'words.generated.forsok'} @:{'words.generated.igen'}.\",\"rename_passkey\":\"@:{'words.generated.byt'} @:{'words.generated.namn'} @:{'words.generated.pa'} @:{'words.generated.losennyckel'}\",\"rename\":\"@:{'words.generated.byt'} @:{'words.generated.namn'}\",\"renamed_successfully\":\"@.capitalize:{'words.generated.losennyckel'} @:{'words.generated.har'} bytt @:{'words.generated.namn'}.\",\"success\":\"@:{'templates.generated.compat.global.succeeded'}\",\"title\":\"@.capitalize:{'words.generated.losennycklar'}\",\"unnamed\":\"Namnlös @:{'words.generated.losennyckel'}\"},\"password_reset\":{\"new_password\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.password'}\",\"restart\":\"Restart @:{'words.generated.reset'} @:{'words.generated.password'}\",\"submit\":\"@:{'words.generated.aterstall'} @:{'words.generated.losenord'}\"},\"pos\":{\"add_to_cart\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.to'} @:{'words.generated.cart'}\",\"add_to_order\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.i'} @:{'words.generated.order'}\",\"addon\":{\"included\":\"Inkludert\"},\"apply_discount\":\"Tillämpa @:{'words.generated.rabatt'}\",\"bookings\":{\"customer_number\":\"Kundenr.\"},\"camera_permission_denied\":\"Kameratilgang nektet. @:{'words.generated.vennligst'} gi tilgang @:{'words.generated.til'} @:{'words.generated.kamera'} @:{'words.generated.for_2'} @:{'words.generated.a_2'} skanne @:{'words.generated.registreringsnummer'}.\",\"cancel_order\":\"@:{'words.generated.avbryt'} @:{'words.generated.order'}\",\"card\":\"@.capitalize:{'words.generated.kort'}\",\"cash\":\"@.capitalize:{'words.generated.kontant'}\",\"clear_order\":\"@:{'words.generated.tom'} @:{'words.generated.order'}\",\"confirm_clear_order\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} tömma @:{'words.generated.ordern'}?\",\"confirm_complete_order\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.slutfora'} @:{'words.generated.ordern'}?\",\"confirm\":{\"confirm_booking\":\"@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.bekrafta'} @:{'words.generated.och'} behandla @:{'words.generated.denna'} @:{'words.generated.bokning'}?\",\"yes_confirm\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.bekreft'}\"},\"copy_last_wash_hint\":\"@:{'words.generated.kopierar'} @:{'words.generated.tjanst'}, @:{'words.generated.tillval'} @:{'words.generated.och'} @:{'words.generated.extra'} @:{'words.generated.artiklar'} @:{'words.generated.fran'} @:{'words.generated.senaste'} @:{'words.generated.tvatten'}\",\"copying_last_wash\":\"@:{'words.generated.kopierar'} @:{'words.generated.senaste'} @:{'words.generated.tvatten'}\",\"create_new_vehicle\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.nytt'} @:{'words.generated.fordon'}\",\"department_not_found\":\"@.capitalize:{'words.generated.avdeling'} @:{'words.generated.ikke'} @:{'words.generated.funnet'}. @:{'words.generated.vennligst'} @:{'words.generated.logg'} @:{'words.generated.inn'} @:{'words.generated.pa'} @:{'words.generated.nytt'}.\",\"email_receipt\":\"@.upper:{'words.generated.e'}-posta @:{'words.generated.kvitto'}\",\"enter_plate\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.registreringsskylt'}\",\"finish_and_register_new\":\"@:{'words.generated.slutfor'} @:{'words.generated.och'} @:{'words.generated.registrera'} @:{'words.generated.ny'}\",\"finish_and_register\":\"@:{'words.generated.slutfor'} @:{'words.generated.och'} @:{'words.generated.registrera'}\",\"generate_certificate\":\"@:{'words.generated.generera'} certifikat\",\"go_back\":\"@:{'words.generated.ga'} tilbake\",\"go_to_login\":\"@:{'words.generated.ga'} @:{'words.generated.til'} innlogging\",\"hold_to_change_vehicle\":\"@:{'words.generated.hall'} @:{'words.generated.inne'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.byta'} @:{'words.generated.fordon'}\",\"hold_to_choose_additional_items\":\"@:{'words.generated.hall'} @:{'words.generated.inne'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.valja'} @:{'words.generated.ytterligare'} @:{'words.generated.artiklar'}\",\"hold_to_copy_last_wash\":\"@:{'words.generated.hall'} @:{'words.generated.inne'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.kopiera'} @:{'words.generated.senaste'} @:{'words.generated.tvatten'}\",\"images\":\"@.capitalize:{'words.generated.bilder'}\",\"input\":{\"license_plate_manual\":\"@:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.registreringsnummer'} manuelt\"},\"keyboard\":{\"clear\":\"@:{'words.generated.tom'}\"},\"last_wash_matches_current_selection\":\"@.capitalize:{'words.generated.samma'} @:{'words.generated.tjanst'}, @:{'words.generated.tillval'} @:{'words.generated.och'} @:{'words.generated.extra'} @:{'words.generated.artiklar'} @:{'words.generated.som'} @:{'words.generated.senaste'} @:{'words.generated.tvatten'}\",\"manual_entry\":\"Manuell @:{'words.generated.registrering'}\",\"new_order\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.order'}\",\"new_sale\":\"@.capitalize:{'words.generated.nytt'} salg\",\"no_bookings\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.bestillinger'} @:{'words.generated.funnet'}\",\"no_camera_found\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.kamera'} @:{'words.generated.hittades'}. Anslut @:{'words.replication.host_definite_suffix'} @:{'words.generated.kamera'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.skanna'} @:{'words.generated.registreringsnummer'}.\",\"order_summary\":\"Ordersammanfattning\",\"order\":{\"add_more_products\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} fler @:{'words.generated.produkter'}\",\"badges\":{\"amount_due\":\"Utestående @:{'words.generated.belopp'}\",\"amount_received\":\"@.capitalize:{'words.generated.belopp'} @:{'words.generated.mottaget'}\",\"amount_reserved\":\"Reserverat @:{'words.generated.belopp'}\",\"not_invoiced\":\"@:{'words.generated.ej'} fakturerad\",\"saved_for_invoicing\":\"@.capitalize:{'words.generated.sparad'} @:{'words.generated.for'} @:{'words.generated.fakturering'}\",\"tax\":\"@:{'templates.generated.compat.common.tax'}\"},\"click_to_go_to_booking\":\"Click @:{'words.generated.to'} @:{'words.generated.go'} @:{'words.generated.to'} @:{'words.generated.booking'}\",\"complete_order\":\"@.capitalize:{'words.generated.complete'} @:{'words.generated.order'}\",\"delete_order\":\"@:{'words.generated.delete'} @:{'words.generated.order'}\",\"draft_check_exists\":\"@:{'words.generated.kontrollera'} @:{'words.generated.om'} utkastfakturan @:{'words.generated.finns'} @:{'words.generated.i'} @:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"draft_fetch_error\":\"@.capitalize:{'words.generated.fakturautkastet'} @:{'words.generated.kunde'} @:{'words.generated.inte'} hämtas @:{'words.generated.fran'} @:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"draft_transaction_export_blocked\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} transaktionen @:{'words.generated.anvander'} @:{'words.replication.article.host_mention'} @:{'words.generated.konfigurerade'} @:{'words.generated.utkastkunden'} @:{'words.generated.och'} @:{'words.generated.kan'} @:{'words.generated.darfor'} @:{'words.generated.inte'} @:{'words.generated.exporteras'} @:{'words.generated.till'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"edit_note\":\"@:{'words.generated.edit'} @:{'words.generated.note'}\",\"force_edit\":\"@:{'words.generated.tvinga'} @:{'words.generated.redigeringsrattigheter'}\",\"get_invoice\":\"@:{'words.generated.get'} @:{'words.generated.invoice'}\",\"include_in_invoice\":\"Fakturainkludering\",\"invoice_override\":{\"exclude\":\"@:{'words.generated.exkludera'}\",\"force_exclude_help\":\"@.capitalize:{'words.generated.denna'} @:{'words.generated.order'} exkluderas @:{'words.generated.fran'} @:{'words.generated.fakturering'} @:{'words.generated.oavsett'} @:{'words.generated.avdelning'}.\",\"force_include_help\":\"@.capitalize:{'words.generated.denna'} @:{'words.generated.order'} inkluderas @:{'words.generated.i'} @:{'words.generated.fakturering'} @:{'words.generated.oavsett'} @:{'words.generated.avdelning'}.\",\"include\":\"@:{'words.generated.inkludera'}\",\"inherit_exclude_help\":\"@.capitalize:{'words.generated.anvander'} @:{'words.generated.avdelningens'} @:{'words.generated.faktureringsregel'}. @.capitalize:{'words.generated.denna'} @:{'words.generated.order'} @:{'words.generated.ar'} @:{'words.generated.for'} @:{'words.generated.narvarande'} exkluderad @:{'words.generated.fran'} @:{'words.generated.fakturering'}.\",\"inherit_help\":\"@.capitalize:{'words.generated.anvander'} @:{'words.generated.avdelningens'} @:{'words.generated.faktureringsregel'}.\",\"inherit_include_help\":\"@.capitalize:{'words.generated.anvander'} @:{'words.generated.avdelningens'} @:{'words.generated.faktureringsregel'}. @.capitalize:{'words.generated.denna'} @:{'words.generated.order'} @:{'words.generated.ar'} @:{'words.generated.for'} @:{'words.generated.narvarande'} inkluderad @:{'words.generated.i'} @:{'words.generated.fakturering'}.\",\"use_department\":\"@.capitalize:{'words.generated.anvand'} @:{'words.generated.avdelning'}\"},\"linked_booking_id\":\"@.capitalize:{'words.generated.linked'} @:{'words.generated.booking'} @.upper:{'words.generated.id'}\",\"order_note\":\"Orderanteckning (@:{'words.generated.skickas'} @:{'words.generated.till'} @:{'words.generated.kunden'} högst @:{'words.generated.upp'} @:{'words.generated.pa'} @:{'words.generated.fakturan'})\",\"print_receipt\":\"@:{'templates.generated.compat.pos.print_receipt'}\",\"reg\":\"@.capitalize:{'words.generated.reg'}\",\"remove_force_edit\":\"@.capitalize:{'words.generated.ta'} @:{'words.generated.bort'} tvingade @:{'words.generated.redigeringsrattigheter'}\",\"send_to_economic\":\"@.capitalize:{'words.generated.skicka'} @:{'words.generated.till'} @:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"settings_actions_title\":\"@:{'words.generated.admin'} handlingar\",\"settings_description\":\"@.capitalize:{'words.generated.uppdatera'} @:{'words.generated.avdelning'}, @:{'words.generated.skapad'} @:{'words.generated.tid'} @:{'words.generated.och'} faktureringsbeteende @:{'words.generated.for'} @:{'words.generated.denna'} @:{'words.generated.order'}.\",\"settings_save_error\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.spara'} @:{'words.generated.installningarna'}.\",\"settings_saved\":\"@.capitalize:{'words.generated.installningarna'} @:{'words.generated.sparades'}.\",\"status\":{\"not_paid\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.betalt'}\",\"partially_paid\":\"Delvist @:{'words.generated.betalt'}\",\"uncollectible\":\"@.capitalize:{'words.generated.ikke'} inddrivbar\",\"void\":\"Debitering @:{'words.generated.annullerad'} (void)\"}},\"pay\":\"@:{'words.generated.betala'}\",\"payment_by_card\":\"@:{'words.generated.betaling'} @:{'words.generated.med'} @:{'words.generated.kort'}\",\"payment_by_cash\":\"@:{'words.generated.betaling'} @:{'words.generated.med'} @:{'words.generated.kontant'}\",\"payment_by_invoice\":\"@:{'words.generated.betaling'} @:{'words.generated.med'} @:{'words.generated.faktura'}\",\"payment_method\":\"Betalingsmetode\",\"payment\":\"@.capitalize:{'words.generated.betalning'}\",\"print_receipt\":\"@:{'words.generated.skriv'} @:{'words.generated.ut'} @:{'words.generated.kvitto'}\",\"process_booking\":\"Behandle @:{'words.generated.bestilling'}\",\"processing_order\":\"Behandler @:{'words.generated.ordre'}...\",\"restrictions\":{\"addons_not_allowed\":\"Tillval är inte tillåtna för den här kunden\",\"backend_rejected\":\"Produkten avvisades av kundregler och lades inte till\",\"product_not_allowed\":\"Den här produkten är inte tillåten för kunden\",\"restricted_items_removed\":\"Begränsade tillval togs bort från varukorgen\",\"title\":\"Kundregel\"},\"receipt\":\"@:{'templates.generated.compat.global.payment.receipt'}\",\"recent\":{\"title\":\"@:{'templates.generated.compat.common.last'}\"},\"reference\":\"@:{'templates.generated.compat.common.reference'}\",\"register_vehicle\":\"@.capitalize:{'words.generated.registrera'} @:{'words.generated.fordon'}\",\"remove_discount\":\"@.capitalize:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.rabatt'}\",\"remove_from_order\":\"@.capitalize:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.fran'} @:{'words.generated.order'}\",\"remove_image\":\"@:{'words.generated.fjern'} bilde\",\"scan_plate\":\"@.capitalize:{'words.generated.skanna'} @:{'words.generated.registreringsskylt'}\",\"search_license_plate\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.registreringsnummer'}\",\"select_product\":\"@:{'words.generated.velg'} et @:{'words.generated.produkt'}\",\"select_products\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.produkter'}\",\"subtitle\":\"@.capitalize:{'words.generated.registrera'} @:{'words.generated.fordon'} @:{'words.generated.och'} @:{'words.generated.hantera'} @:{'words.generated.betalningar'}\",\"subtotal\":\"@:{'templates.generated.compat.common.subtotal'}\",\"take_photo\":\"@.capitalize:{'words.generated.ta'} foto\",\"title\":\"@.capitalize:{'words.generated.kassasystem'}\",\"total_amount\":\"@:{'words.generated.totalt'} @:{'words.generated.belopp'}\",\"upload_image\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.upp'} bild\",\"vehicle_not_found\":\"@.capitalize:{'words.generated.fordon'} @:{'words.generated.hittades'} @:{'words.generated.inte'}\",\"vehicle_type\":\"@.capitalize:{'words.generated.fordonstyp'}\",\"vehicle_types\":{\"bus\":\"@:{'templates.generated.compat.vehicles.types.bus'}\",\"lastbil\":\"@:{'templates.generated.compat.vehicles.types.truck'}\",\"lift\":\"Lift\",\"mandskabsvogn\":\"@:{'templates.generated.compat.vehicles.vehicle_types.crew'}\",\"motorcykel\":\"Motorsykkel\",\"sættevogn\":\"Semitrailer\",\"trailer\":\"Släp\",\"traktor\":\"@:{'templates.generated.compat.vehicles.types.semi'}\",\"varevogn\":\"@:{'templates.generated.compat.vehicles.types.van'}\"},\"vehicle\":{\"previously_washed\":\"@.capitalize:{'words.generated.tidligere'} vasket\"},\"wash_certificate\":\"@.capitalize:{'words.generated.tvattcertifikat'}\",\"wash_type\":\"Tvättyp\"},\"products\":{\"admin\":{\"subtitle\":\"@:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.handtere'} @:{'words.generated.produkter'}\",\"title\":\"@.capitalize:{'words.generated.produkt'} @:{'words.generated.administration'}\"},\"delete_product\":\"@:{'words.generated.slett'} @:{'words.generated.produkt'}\",\"edit_product\":\"@:{'words.generated.rediger'} @:{'words.generated.produkt'}\",\"form\":{\"exterior\":\"@.capitalize:{'words.generated.utvendig'}\",\"interior\":\"@.capitalize:{'words.generated.innvendig'}\",\"is_exterior\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.utvendig'}\",\"is_interior\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.innvendig'}\",\"product_name\":\"Produktnavn\",\"save\":\"Lagre\",\"vehicle_type\":\"@:{'templates.generated.compat.pos.vehicle_type'}\"},\"new_product\":\"@.capitalize:{'words.generated.nytt'} @:{'words.generated.produkt'}\",\"no_products\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.produkter'} @:{'words.generated.funnet'}\",\"search_placeholder\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} produktnamn\",\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.produkter'}\",\"type\":\"@.capitalize:{'words.generated.typ'}\"},\"profile\":{\"email\":{\"enter_email\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.din'} @:{'words.generated.e'}-@:{'words.generated.postadress'}\",\"enter_password\":\"@:{'words.generated.enter'} @:{'words.generated.your'} @:{'words.generated.password'}\",\"invalid_email\":\"@.capitalize:{'words.generated.ange'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.giltig'} @:{'words.generated.e'}-@:{'words.generated.postadress'}\",\"label\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postadress'}\",\"new_email_prompt\":\"@.capitalize:{'words.generated.vilken'} @:{'words.generated.e'}-@:{'words.generated.postadress'} @:{'words.generated.vill'} @:{'words.generated.du'} användaä\",\"new_email_text\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.din'} @:{'words.generated.nya'} @:{'words.generated.e'}-@:{'words.generated.postadress'}.\",\"password_prompt\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.ditt'} @:{'words.generated.losenord'}\",\"saved\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postadress'} @:{'words.generated.sparad'}\",\"saved_text\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.e'}-@:{'words.generated.postadress'} @:{'words.generated.har'} sparats.\"},\"error\":{\"save_email_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.nar'} @:{'words.generated.e'}-@:{'words.generated.postadressen'} @:{'words.generated.sparades'}.\",\"validation_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.nar'} @:{'words.generated.losenordet'} validerades.\"}},\"replication\":{\"actions\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.host'}\",\"promote\":\"Promote\",\"provision\":\"@.capitalize:{'words.generated.provision'}\",\"remove\":\"@:{'words.generated.remove'}\",\"rename\":\"@.capitalize:{'words.generated.rename'}\",\"save_and_provision\":\"@.capitalize:{'words.generated.save'} @:{'words.generated.and'} @:{'words.generated.provision'}\",\"test\":\"@.capitalize:{'words.generated.test'}\"},\"blockers\":{\"database_engine_match_required\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'} @:{'words.generated.and'} @:{'words.generated.replica'} @:{'words.generated.must'} @:{'words.generated.use'} @:{'words.generated.the'} @:{'words.generated.same'} @:{'words.generated.database'} family.\",\"database_io_thread_stopped\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.database'} @:{'words.generated.replication'} @.upper:{'words.generated.io'} @:{'words.generated.thread'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.running'}. @.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.fetching'} @:{'words.generated.new'} binlog @:{'words.generated.events'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'}.\",\"database_primary_missing\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.database'} @:{'words.generated.primary'} @:{'words.generated.is'} @:{'words.generated.registered'}.\",\"database_replica_missing_table_count\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.seed'} @:{'words.generated.is'} @:{'words.generated.incomplete'}. {count} @:{'words.generated.tables'} @:{'words.generated.are'} @:{'words.generated.missing'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.replica'}. Examples: {tables}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.and'} @:{'words.generated.fill'} @:{'words.generated.the'} @:{'words.generated.schema'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'}.\",\"database_replica_missing_tables\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.seed'} @:{'words.generated.is'} @:{'words.generated.incomplete'}. @.capitalize:{'words.generated.missing'} @:{'words.generated.tables'}: {tables}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.and'} @:{'words.generated.fill'} @:{'words.generated.the'} @:{'words.generated.schema'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'}.\",\"database_replica_not_seeded\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.missing'} @:{'words.generated.tables'} @:{'words.generated.or'} @:{'words.generated.data'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.and'} @:{'words.generated.fill'} @:{'words.generated.the'} @:{'words.generated.schema'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'}. Technical @:{'words.generated.error'}: {error}\",\"database_replica_schema_only_rows\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.contains'} @:{'words.generated.data'} @:{'words.generated.in'} @:{'words.generated.tables'} @:{'words.generated.where'} @:{'words.generated.only'} @:{'words.generated.the'} @:{'words.generated.schema'} @:{'words.generated.should'} @:{'words.generated.be'} @:{'words.generated.copied'}: {tables}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} rebuild @:{'words.generated.the'} @:{'words.generated.replica'} without operational @:{'words.generated.log'} @:{'words.generated.data'}.\",\"database_replica_status_missing\":\"@:{'words.generated.mariadb'} @:{'words.generated.replication'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.configured'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.replica'}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.configure'} @:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.again'}.\",\"database_sql_thread_stopped\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.database'} @:{'words.generated.replication'} @:{'words.generated.sql'} @:{'words.generated.thread'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.running'}. @.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.not'} applying fetched @:{'words.generated.changes'}.\",\"database_threads_required\":\"@.capitalize:{'words.generated.database'} @:{'words.generated.replication'} @.upper:{'words.generated.io'} @:{'words.generated.and'} @:{'words.generated.sql'} threads @:{'words.generated.must'} both @:{'words.generated.be'} @:{'words.generated.running'}.\",\"mariadb_binlog_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.enabled'}.\",\"mariadb_binlog_unavailable\":\"@:{'words.generated.mariadb'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.status'} @:{'words.generated.is'} @:{'words.generated.unavailable'}.\",\"mariadb_gtid_position_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.gtid'} position @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.available'}.\",\"mariadb_gtid_replication_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.replication'} @:{'words.generated.must'} @:{'words.generated.use'} @:{'words.generated.gtid'} @:{'words.generated.mode'}.\",\"mariadb_preseed_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.replicas'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.safely'} @:{'words.generated.seeded'} before @:{'words.generated.managed'} @:{'words.generated.replication'} @:{'words.generated.can'} @:{'words.generated.be'} @:{'words.generated.configured'}.\",\"mariadb_server_id_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.server'}_@:{'words.generated.id'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.configured'}.\",\"mariadb_version_current\":\"@:{'words.generated.mariadb'} 10.6 @:{'words.generated.or'} @:{'words.generated.newer'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for_2'} @:{'words.generated.managed'} @:{'words.generated.replication'}. @.capitalize:{'words.generated.current'} @:{'words.generated.server'} @:{'words.generated.reports'} {version}.\",\"mariadb_version_required\":\"@:{'words.generated.mariadb'} 10.6 @:{'words.generated.or'} @:{'words.generated.newer'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for_2'} @:{'words.generated.managed'} @:{'words.generated.replication'}.\",\"minio_primary_missing\":\"@.capitalize:{'words.generated.no'} @:{'words.replication.services.minio'} @:{'words.generated.primary'} @:{'words.generated.is'} @:{'words.generated.registered'}.\",\"minio_replica_not_caught_up\":\"@:{'words.replication.services.minio'} @:{'words.generated.replica'} @:{'words.generated.has'} @:{'words.generated.not'} caught @:{'words.generated.up'}.\",\"minio_replication_not_configured\":\"@:{'words.replication.services.minio'} @:{'words.generated.bucket'} @:{'words.generated.replication'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.configured'}.\",\"minio_source_bucket_missing\":\"@:{'words.replication.services.minio'} @:{'words.generated.source'} @:{'words.generated.bucket'} {bucket} @:{'words.generated.is'} @:{'words.generated.missing'}.\",\"minio_space_insufficient\":\"@:{'words.replication.services.minio'} @:{'words.generated.target'} @:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.have'} enough @:{'words.generated.free'} @:{'words.generated.space'}. @.capitalize:{'words.generated.required'} {required} @:{'words.generated.bytes'}, @:{'words.generated.available'} {available} @:{'words.generated.bytes'}.\",\"minio_space_unknown\":\"@:{'words.replication.services.minio'} @:{'words.generated.target'} @:{'words.generated.free'} @:{'words.generated.space'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.be'} determined.\",\"minio_target_bucket_missing\":\"@:{'words.replication.services.minio'} @:{'words.generated.target'} @:{'words.generated.bucket'} {bucket} @:{'words.generated.is'} @:{'words.generated.missing'}.\",\"mysql_binlog_required\":\"@:{'words.generated.mysql'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.enabled'}.\",\"mysql_binlog_unavailable\":\"@:{'words.generated.mysql'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.status'} @:{'words.generated.is'} @:{'words.generated.unavailable'}.\",\"mysql_clone_primary_required\":\"@:{'words.generated.mysql'} @:{'words.generated.clone'} @:{'words.generated.plugin'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.active'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.primary'} donor.\",\"mysql_clone_target_required\":\"@:{'words.generated.mysql'} @:{'words.generated.clone'} @:{'words.generated.plugin'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.active'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.target'}. @.capitalize:{'words.generated.use'} @:{'words.generated.a'} preseeded @:{'words.generated.replica'} @:{'words.generated.only'} after @:{'words.generated.the'} @:{'words.generated.target'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.safely'} @:{'words.generated.seeded'}.\",\"mysql_gtid_required\":\"@:{'words.generated.mysql'} @:{'words.generated.gtid'} @:{'words.generated.mode'} @:{'words.generated.must'} @:{'words.generated.be'} @.upper:{'words.generated.on'}.\",\"mysql_gtid_unavailable\":\"@:{'words.generated.mysql'} @:{'words.generated.gtid'} @:{'words.generated.mode'} @:{'words.generated.is'} @:{'words.generated.unavailable'}. @.capitalize:{'words.generated.managed'} @:{'words.generated.replication'} @:{'words.generated.requires'} @:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.with'} @:{'words.generated.gtid'} @:{'words.generated.enabled'}.\",\"mysql_server_id_required\":\"@:{'words.generated.mysql'} @:{'words.generated.server'}_@:{'words.generated.id'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.configured'}.\",\"mysql_server_uuid_required\":\"@:{'words.generated.mysql'} @:{'words.generated.server'}_uuid @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.available'}. @.capitalize:{'words.generated.managed'} @:{'words.generated.replication'} @:{'words.generated.requires'} @:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'}.\",\"mysql_unique_server_id\":\"@.capitalize:{'words.generated.database'} @:{'words.generated.replica'} @:{'words.generated.must'} @:{'words.generated.have'} @:{'words.generated.a'} @:{'words.generated.unique'} @:{'words.generated.server'}_@:{'words.generated.id'}.\",\"mysql8_current\":\"@:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for_2'} @:{'words.generated.managed'} @:{'words.generated.replication'}. @.capitalize:{'words.generated.current'} @:{'words.generated.server'} @:{'words.generated.reports'} {version}.\",\"mysql8_required\":\"@:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for_2'} @:{'words.generated.managed'} @:{'words.generated.replication'}.\",\"redis_acl_config_required\":\"@:{'words.replication.services.redis'} ACL @:{'words.generated.must'} @:{'words.generated.allow'} @.upper:{'words.generated.config'} @.upper:{'words.generated.get'}, @.upper:{'words.generated.set'}, @:{'words.generated.and'} REWRITE @:{'words.generated.for_2'} durable @:{'words.generated.replication'} @:{'words.generated.changes'}.\",\"redis_link_down\":\"@:{'words.replication.services.redis'} @:{'words.generated.replica'} @:{'words.generated.link'} @:{'words.generated.to'} @:{'words.generated.primary'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.up'}.\",\"redis_not_replica\":\"@:{'words.replication.services.redis'} @:{'words.generated.host'} @:{'words.generated.is'} @:{'words.generated.not'} currently @:{'words.generated.a'} @:{'words.generated.replica'}.\",\"redis_ping_failed\":\"@:{'words.replication.services.redis'} PING @:{'words.generated.did'} @:{'words.generated.not'} @:{'words.generated.return'} PONG.\",\"redis_primary_missing\":\"@.capitalize:{'words.generated.no'} @:{'words.replication.services.redis'} @:{'words.generated.primary'} @:{'words.generated.is'} @:{'words.generated.registered'}.\"},\"compose\":{\"compose_file\":\"@:{'words.generated.docker'}-@:{'words.generated.compose'}.yml\",\"env_file\":\".@:{'words.generated.env'}\",\"generate\":\"@:{'words.generated.generate'} @:{'words.generated.compose'}\",\"host_port\":\"@.capitalize:{'words.generated.host'} @:{'words.generated.port'}\",\"next_steps\":\"@:{'words.generated.next'} steps\",\"primary_host\":\"@.capitalize:{'words.generated.primary'} @:{'words.generated.host'}\",\"primary_port\":\"@.capitalize:{'words.generated.primary'} @:{'words.generated.port'}\",\"seed_command\":\"@:{'words.generated.manual'} @:{'words.generated.seed'} command (@:{'words.generated.fallback'})\",\"server_id\":\"@.capitalize:{'words.generated.server'} @.upper:{'words.generated.id'}\",\"service_name\":\"@.capitalize:{'words.generated.service'} @:{'words.generated.name'}\",\"steps\":{\"database_register_replica\":\"@.capitalize:{'words.generated.fill'} @.upper:{'words.generated.mariadb'}_@.upper:{'words.generated.primary'}_@.upper:{'words.generated.admin'}_@.upper:{'words.generated.password'} @:{'words.generated.in'} .@:{'words.generated.env'}, wait @:{'words.generated.for_2'} @:{'words.generated.the'} @:{'words.generated.seed'} @:{'words.generated.service'} @:{'words.generated.to'} @:{'words.generated.complete'}, @:{'words.generated.test'} @:{'words.generated.the'} @:{'words.generated.connection'}, then @:{'words.generated.save'} @:{'words.generated.and'} @:{'words.generated.provision'}.\",\"database_seed\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.generated'} @:{'words.generated.compose'} @:{'words.generated.seed'} @:{'words.generated.service'} imports @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'} automatically.\",\"database_server_id\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.a'} @:{'words.generated.unique'} @:{'words.generated.server'} @.upper:{'words.generated.id'} @:{'words.generated.for_2'} each @:{'words.generated.mariadb'} @:{'words.generated.host'}.\",\"deploy\":\"Deploy @:{'words.generated.this'} @:{'words.generated.configuration'} @:{'words.generated.as'} @:{'words.generated.a'} @.capitalize:{'words.generated.docker'} @.capitalize:{'words.generated.compose'} @:{'words.generated.or'} Coolify @.capitalize:{'words.generated.compose'} @:{'words.generated.service'}.\",\"minio_buckets\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.setup'} @:{'words.generated.service'} creates @:{'words.generated.the'} @:{'words.generated.configured'} @:{'words.generated.buckets'} @:{'words.generated.and'} enables versioning.\",\"minio_primary_credentials\":\"@:{'words.generated.keep'} @:{'words.generated.the'} @:{'words.generated.current'} @:{'words.replication.services.minio'} @:{'words.generated.primary'} @:{'words.generated.endpoint'} @:{'words.generated.and'} @:{'words.generated.credentials'} ready; @:{'words.generated.managed'} @:{'words.generated.bucket'} @:{'words.generated.replication'} @:{'words.generated.is'} @:{'words.generated.configured'} during @:{'words.generated.provisioning'}.\",\"redis_primary_password\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.the'} @:{'words.generated.current'} @:{'words.replication.services.redis'} @:{'words.generated.primary'} @:{'words.generated.password'} @:{'words.generated.as'} @.upper:{'words.replication.services.redis'}_@.upper:{'words.generated.primary'}_@.upper:{'words.generated.password'}.\"},\"test_before_save\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.connection'}\",\"test_failed\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.test'} @:{'words.generated.did'} @:{'words.generated.not'} @:{'words.generated.complete'} @:{'words.generated.successfully'}. Review @:{'words.generated.the'} @:{'words.generated.blockers'} below.\",\"test_ok\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.test'} @:{'words.generated.completed'} @:{'words.generated.successfully'}.\",\"title\":\"@:{'words.generated.generate'} @.capitalize:{'words.generated.docker'} @.capitalize:{'words.generated.compose'}\"},\"fields\":{\"admin_password\":\"@:{'words.generated.admin'} @:{'words.generated.password'}\",\"admin_username\":\"@:{'words.generated.admin'} @:{'words.generated.username'}\",\"allow_preseeded_replica\":\"@.capitalize:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.already'} @:{'words.generated.safely'} @:{'words.generated.seeded'}\",\"buckets\":\"@.capitalize:{'words.generated.buckets'}\",\"console_port\":\"Konsolport\",\"replication_transfer_limit\":\"Overforingsgrans\",\"database_index\":\"@.capitalize:{'words.generated.database'} index\",\"port\":\"@.capitalize:{'words.generated.port'}\",\"replication_password\":\"@.capitalize:{'words.generated.replication'} @:{'words.generated.password'}\",\"replication_username\":\"@.capitalize:{'words.generated.replication'} @:{'words.generated.username'}\",\"scheme\":\"@.capitalize:{'words.generated.schema'}\",\"ssl_mode\":\"SSL @:{'words.generated.mode'}\",\"username\":\"@.capitalize:{'words.generated.username'}\"},\"labels\":{\"blockers\":\"@.capitalize:{'words.generated.blockers'}\",\"last_checked\":\"@.capitalize:{'words.generated.last_2'} @:{'words.generated.checked'}\",\"replicas\":\"@.capitalize:{'words.generated.replicas'}\",\"replication\":\"@.capitalize:{'words.generated.replication'}\"},\"prompts\":{\"rename_host\":\"Enter a new host label\"},\"roles\":{\"inactive\":\"Inactive\",\"primary\":\"@.capitalize:{'words.generated.primary'}\",\"replica\":\"@.capitalize:{'words.generated.replica'}\"},\"states\":{\"coolify_deploying\":\"Coolify deployment is running.\",\"coolify_restarting\":\"Coolify restart is running.\",\"coolify_starting_provisioning\":\"Coolify service is reachable. Starting replication provisioning.\",\"coolify_waiting_for_endpoint\":\"Coolify deployment is running. Waiting for the service port before replication provisioning starts.\",\"deploy_timeout\":\"Coolify deployment is still running. Refresh status to continue.\",\"empty\":\"@.capitalize:{'words.generated.no'} hosts @:{'words.generated.registered'}.\",\"error\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.complete'} @:{'words.generated.replication'} @:{'words.generated.request'}.\",\"loading\":\"@:{'words.generated.loading'} @:{'words.generated.replication'} topology...\",\"provision_timeout\":\"@.capitalize:{'words.generated.provisioning'} @:{'words.generated.is'} still @:{'words.generated.running'}. @.capitalize:{'words.generated.refresh'} @:{'words.generated.status'} @:{'words.generated.to'} continue.\",\"syncing_in_background\":\"Synkroniserar @:{'words.generated.i'} bakgrunden.\",\"waiting_for_redis_primary_link\":\"Väntar @:{'words.generated.pa'} @:{'words.generated.anslutningen'} @:{'words.generated.till'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.redis'}-@:{'words.replication.host'}@:{'words.replication.host_definite_suffix'}.\"},\"status\":{\"degraded\":\"Degraded\",\"down\":\"Down\",\"not_configured\":\"@:{'templates.generated.compat.global.not_configured'}\",\"provisioning\":\"@.capitalize:{'words.generated.provisioning'}\",\"removed\":\"@.capitalize:{'words.generated.removed'}\"},\"subtitle\":\"@.capitalize:{'words.generated.managed'} @:{'words.generated.database'} @:{'words.generated.and'} @:{'words.replication.services.redis'} @:{'words.generated.replication'}\"},\"roles\":{\"permissions\":{\"access_scope\":\"Atkomstomrade\",\"actions\":{\"clear_all\":\"Rensa grupp\",\"reload\":\"Ladda om\",\"retry\":\"Forsok igen\",\"select_all\":\"Valj grupp\"},\"columns\":{\"enabled\":\"Aktiverad\",\"permission\":\"Behorighet\",\"route\":\"Rutt\",\"status\":\"Status\"},\"department_access_description\":\"Ger atkomst till {name}.\",\"empty\":\"Inga behorigheter ar tillgangliga.\",\"empty_group\":\"Den har gruppen har inga behorigheter.\",\"errors\":{\"load\":\"Kunde inte lasa in rollbehorigheter.\",\"update\":\"En eller flera behorigheter kunde inte uppdateras. Rollens aktuella behorigheter laddades om.\"},\"filtered_summary\":\"{count} traffar\",\"groups\":{\"access\":{\"description\":\"Sidtyp- och avdelningsatkomst.\",\"label\":\"Atkomst\"},\"bookings\":{\"description\":\"Behorigheter for bokningar, tidsbokningar och planering.\",\"label\":\"Bokningar\"},\"customers_users\":{\"description\":\"Behorigheter for kunder, anvandare, medarbetare, roller och inloggning.\",\"label\":\"Kunder och anvandare\"},\"departments_operations\":{\"description\":\"Avdelningsdrift, banor, relan, aviseringar, rapporter och mal.\",\"label\":\"Avdelningar och drift\"},\"invoicing_economic\":{\"description\":\"Behorigheter for fakturor, faktureringsperioder, inkasso och e-conomic.\",\"label\":\"Fakturering och e-conomic\"},\"orders_pos\":{\"description\":\"Behorigheter for ordrar, POS, betalningar och orderrader.\",\"label\":\"Ordrar och POS\"},\"other\":{\"description\":\"Behorigheter som inte matchar nagon annan grupp.\",\"label\":\"Ovrigt\"},\"products_pricing\":{\"description\":\"Behorigheter for produkter, priser, rabatter och valuta.\",\"label\":\"Produkter och priser\"},\"selfserve_edge\":{\"description\":\"Behorigheter for sjalvbetjaning, tvatt, skannrar, gateways och edge-utrustning.\",\"label\":\"Sjalvbetjaning och edge\"},\"system_config\":{\"description\":\"System, konfiguration, release, replikering och integrationer.\",\"label\":\"System och konfiguration\"}},\"no_description\":\"Ingen beskrivning ar tillganglig.\",\"no_search_results\":\"Inga behorigheter matchar aktuell sokning.\",\"page_access\":{\"admin\":{\"description\":\"Ger atkomst till administrationssidor.\",\"label\":\"Admin\"},\"superuser\":{\"description\":\"Ger atkomst till superuser-sidor.\",\"label\":\"Superuser\"},\"user\":{\"description\":\"Ger atkomst till anvandarsidor.\",\"label\":\"Anvandare\"}},\"search_label\":\"Sok behorigheter\",\"search_placeholder\":\"Sok pa label, nyckel, beskrivning, rutt eller metod\",\"selected_summary\":\"{selected} av {total} valda\",\"status\":{\"disabled\":\"Inaktiverad\",\"enabled\":\"Aktiverad\"},\"subtitle\":\"Rollbehorigheter\",\"title\":\"Behorigheter for roll {id}\",\"title_with_name\":\"Behorigheter for {name}\"},\"templates\":{\"apply\":\"Anvand mallen {template}\",\"confirm_button\":\"Anvand mall\",\"confirm_text\":\"Lagg till {count} saknade behorigheter fran {template} till {role}?\",\"confirm_title\":\"Anvanda behorighetsmall?\",\"error_text\":\"En eller flera behorigheter fran {template} kunde inte laggas till i {role}. Rolllistan laddades om.\",\"error_title\":\"Kunde inte anvanda mall\",\"load_error\":\"Kunde inte ladda mallar. Forsok igen\",\"loading\":\"Laddar mallar...\",\"section\":\"Begransade backoffice-mallar\",\"success_text\":\"Lade till {count} behorigheter fran {template} i {role}.\",\"success_title\":\"Mall anvand\",\"unavailable\":\"Inga mallar ar tillgangliga.\",\"up_to_date_text\":\"{role} har redan alla behorigheter i {template}.\",\"up_to_date_title\":\"Rollen ar uppdaterad\"},\"subtitle\":\"@.capitalize:{'words.generated.user'} @:{'words.generated.roles'}\"},\"self_wash\":{\"add_as_new_vehicle\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} {plate} @:{'words.generated.som'} @:{'words.generated.nytt'} @:{'words.generated.fordon'}\",\"answer_questions\":\"Svara @:{'words.generated.pa'} @:{'words.generated.fragor'}\",\"assistance\":\"@:{'templates.generated.compat.common.help'}\",\"available\":\"@.capitalize:{'words.generated.tillganglig'}\",\"configure_wash\":\"@.capitalize:{'words.generated.configure'} @:{'words.generated.wash'}\",\"confirm_and_start\":\"@:{'words.generated.confirm'} @:{'words.generated.and'} @:{'words.generated.start'} @:{'words.generated.wash'}\",\"department_no_self_wash_in_staffed_hours\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.avdelningen'} erbjuder @:{'words.generated.inte'} @:{'words.generated.sjalvtvatt'} @:{'words.generated.under'} @:{'words.generated.bemannade'} @:{'words.generated.timmar'}.\",\"department_no_self_wash\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.avdelningen'} stödjer @:{'words.generated.inte'} @:{'words.generated.sjalvtvatt'}.\",\"enter_customer_number\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.kundnummer'}\",\"enter_registration_number\":\"@:{'words.generated.enter'} @:{'words.generated.registration'} @:{'words.generated.number'}\",\"finishing_wash_exit_opening\":\"Avslutar @:{'words.generated.tvatt_2'}, porten oppnas @:{'words.generated.automatiskt'}\",\"follow_steps\":\"@.capitalize:{'words.generated.folj'} @:{'words.generated.de'} 6 stegen @:{'words.generated.for'} bästa @:{'words.generated.resultat'}:\",\"loading_department\":\"@.capitalize:{'words.generated.laser'} @:{'words.generated.in'} @:{'words.generated.avdelning'}...\",\"loading_types\":\"@:{'words.generated.laddar'} @:{'words.generated.typer'}...\",\"loading_vehicle_types\":\"@.capitalize:{'words.generated.laser'} @:{'words.generated.in'} @:{'words.generated.tillgangliga'} @:{'words.generated.fordonstyper'}...\",\"lane_unavailable\":\"Tvattbanan ar inte tillganglig\",\"machine\":\"@.capitalize:{'words.generated.machine'}\",\"no_departments_found\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.avdelningar'} @:{'words.generated.hittades'}\",\"occupied\":\"Upptagen\",\"open_property_access_gate\":\"@:{'words.generated.oeppna'} @:{'words.generated.fastighetens'} ingangsgrind\",\"open_property_exit_gate\":\"@:{'words.generated.oeppna'} @:{'words.generated.fastighetens'} utgangsgrind\",\"perform_wash\":\"Perform @:{'words.generated.wash'}\",\"questions_answered\":\"@.capitalize:{'words.generated.fragor'} @:{'words.generated.besvarade'}\",\"select_from_vehicles\":\"@.capitalize:{'words.generated.valj'} {plate} @:{'words.generated.fran'} @:{'words.generated.dina'} @:{'words.generated.fordon'}\",\"select_vehicle_type\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.fordonstyp'}\",\"select_vehicle\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.fordon'}\",\"select_your_vehicle\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.ditt'} @:{'words.generated.fordon'}\",\"start_machine\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.machine'}\",\"start_wash_desc\":\"Gå direkt @:{'words.generated.till'} avdelningens tvättbanor @:{'words.generated.och'} starta @:{'words.replication.host_definite_suffix'} @:{'words.generated.tvatt'} @:{'words.generated.for'} @:{'words.generated.ditt'} @:{'words.generated.fordon'}. @.capitalize:{'words.generated.valj'} @:{'words.generated.ditt'} @:{'words.generated.fordon'} @:{'words.generated.och'} @:{'words.generated.onskad'} tvätttyp @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.komma'} @:{'words.generated.igang'}.\",\"start_wash\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.wash'}\",\"total_time\":\"@.capitalize:{'words.generated.total'} @:{'words.generated.tid'}: {minutes} minuter @:{'words.generated.och'} {seconds} @:{'words.generated.sekunder'}\",\"unavailable\":\"@:{'templates.generated.compat.common.not_available'}\",\"vehicle_step_missing_customer_number\":\"Ange kundnummer for att fortsatta.\",\"vehicle_step_missing_department\":\"Vanta tills narmaste avdelning har laddats innan du fortsatter.\",\"vehicle_step_missing_registration\":\"Ange registreringsnummer for att fortsatta.\",\"vehicle_step_missing_vehicle_type\":\"Valj en tillganglig fordonstyp for att fortsatta.\",\"wash_completed_contact\":\"@.capitalize:{'words.generated.vi'} hoppas @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.ar'} nöjd @:{'words.generated.med'} resultatet. @.capitalize:{'words.generated.om'} @:{'words.generated.du'} @:{'words.generated.behover'} @:{'words.generated.ytterligare'} @:{'words.generated.hjalp'}, @:{'words.generated.kontakta'} @:{'words.generated.var_2'} personal.\",\"wash_completed_message\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.tvatt'} @:{'words.generated.ar'} @:{'words.generated.nu'} @:{'words.generated.klar'}! @:{'words.generated.tack'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.anvander'} @:{'words.generated.var_2'} självbetjäningstvätt.\",\"wash_completed\":\"@.capitalize:{'words.generated.tvatt'} @:{'words.generated.slutford'}\",\"wash_in_progress\":\"@.capitalize:{'words.generated.tvatt'} @:{'words.generated.pagar'}\"},\"settings\":{\"appearance\":\"Utseende\",\"billing\":\"@.capitalize:{'words.generated.fakturering'}\",\"change_password\":\"@.capitalize:{'words.generated.andra'} @:{'words.generated.losenord'}\",\"confirm_password\":\"@.capitalize:{'words.generated.bekrafta'} @:{'words.generated.losenord'}\",\"current_password\":\"@.capitalize:{'words.generated.nuvarande'} @:{'words.generated.losenord'}\",\"date_format\":\"Datumformat\",\"disable\":\"@.capitalize:{'words.generated.inaktivera'}\",\"discard_changes\":\"@:{'words.generated.ignorera'} @:{'words.generated.andringar'}\",\"email_notifications\":\"@.upper:{'words.generated.e'}-postnotifieringar\",\"enable\":\"@.capitalize:{'words.generated.aktivera'}\",\"general\":\"Allmänt\",\"integrations\":\"@.capitalize:{'words.generated.integrasjoner'}\",\"new_password\":\"@.capitalize:{'words.generated.nytt'} @:{'words.generated.losenord'}\",\"notifications\":\"@.capitalize:{'words.generated.notifieringar'}\",\"password_change\":{\"confirm_password\":\"@.capitalize:{'words.generated.bekreft'} @:{'words.generated.passord'}\",\"current_password\":\"@:{'templates.generated.compat.settings.current_password'}\"},\"push_notifications\":\"Pushnotifieringar\",\"save_changes\":\"@:{'templates.generated.compat.modals.save_changes'}\",\"section\":{\"password\":\"@.capitalize:{'words.generated.passord'}\",\"password_desc\":\"Lösenordet används @:{'words.generated.for'} @:{'words.generated.att'} autentisera @:{'words.generated.api'}-anslutningen.\",\"subscription\":\"@.capitalize:{'words.generated.abonnement'}\"},\"security\":\"@.capitalize:{'words.generated.sakerhet'}\",\"sms_notifications_desc\":\"@.capitalize:{'words.generated.ta'} emot SMS-aviseringar @:{'words.generated.for'} olika @:{'words.generated.handelser'}.\",\"sms_notifications\":\"@:{'words.generated.sms'}-@:{'words.generated.notifieringar'}\",\"subscription\":{\"expires_at\":\"Löper @:{'words.generated.ut'}\"},\"theme\":\"Tema\",\"time_format\":\"Tidsformat\",\"timezone\":\"Tidszon\",\"two_factor\":\"@.capitalize:{'words.generated.tvafaktorsautentisering'}\"},\"statistics\":{\"average\":\"Genomsnitt\",\"avg_revenue_per_wash\":\"@:{'words.generated.gj'}.@:{'words.generated.snitt'} @:{'words.generated.omsetning'} @:{'words.generated.per'} @:{'words.generated.vask'}\",\"avg_wash_time\":\"@:{'words.generated.gj'}.@:{'words.generated.snitt'} vasketid\",\"chart\":{\"revenue_over_time\":\"@.capitalize:{'words.generated.omsetning'} @:{'words.generated.over_2'} @:{'words.generated.tid'}\",\"washes_over_time\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.over_2'} @:{'words.generated.tid'}\"},\"compare\":\"@.capitalize:{'words.generated.jamfor'}\",\"customer_types\":\"Kundetyper\",\"day\":\"@:{'words.generated.dag'}\",\"days\":\"dage\",\"growth\":\"Tillväxt\",\"no_data\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.data'} tilgjengelig\",\"overview\":{\"departments_today\":\"@.capitalize:{'words.generated.avdelningar'} @:{'words.generated.i'} @:{'words.generated.dag'}\",\"departments_today_desc\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.hur'} @:{'words.generated.dina'} @:{'words.generated.avdelningar'} @:{'words.generated.presterar'} @:{'words.generated.i'} @:{'words.generated.dag'}\",\"no_departments\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.avdelningar'}\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.hur'} @:{'words.generated.dina'} @:{'words.generated.avdelningar'} @:{'words.generated.presterar'}\"},\"popular_products\":\"@:{'words.generated.populara'} @:{'words.generated.produkter'}\",\"popular_times\":\"@:{'words.generated.populara'} @:{'words.generated.tider'}\",\"revenue\":\"Intäkter\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.statistikk'}\",\"sum\":\"Sum\",\"table\":\"@.capitalize:{'words.generated.tabell'}\",\"top_customers_by_revenue\":\"@:{'words.generated.topp'} @:{'words.generated.kunder'} @:{'words.generated.etter'} @:{'words.generated.omsetning'}\",\"top_customers_by_washes\":\"@:{'words.generated.topp'} @:{'words.generated.kunder'} @:{'words.generated.etter'} @:{'words.generated.vask'}\",\"vehicle_types\":\"@.capitalize:{'words.generated.fordonstyper'}\",\"washes\":\"@:{'templates.generated.compat.global.wash_multiple'}\"},\"super_user_dashboard\":{\"create_department\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.avdelning'}\",\"create_number_plate_scan\":\"@:{'words.generated.opret'} @:{'words.generated.nummerplade'} @:{'words.generated.scanning'}\",\"create_order_booking\":\"@:{'words.generated.opret'} @:{'words.generated.ordre'} @:{'words.generated.booking'}\",\"create_order\":\"@:{'words.generated.opret'} @:{'words.generated.ordre'}\",\"create_product\":\"@:{'words.generated.opret'} @:{'words.generated.produkt'}\",\"get_department_list\":\"@.capitalize:{'words.generated.hamta'} avdelningslista\",\"get_orders\":\"@:{'words.generated.hent'} ordrer\",\"get_session_data\":\"@:{'words.generated.hent'} @:{'words.generated.session'} @:{'words.generated.data'}\",\"get_user_list\":\"@:{'words.generated.hent'} brugerliste\",\"run_cron\":\"@:{'words.generated.kor'} cron\",\"title\":\"Super @.capitalize:{'words.generated.user'} @.capitalize:{'words.generated.dashboard'}\"},\"superuser_dashboard\":{\"bookings\":{\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.bestillinger'} @:{'words.generated.pa'} @:{'words.generated.tvers'} @:{'words.generated.av'} @:{'words.generated.avdelinger'}\"},\"calendar\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.kalender'} @:{'words.generated.for_2'} alle @:{'words.generated.avdelinger'}\"},\"configuration\":{\"backups\":\"Säkerhetskopior\",\"economic\":\"@:{'templates.generated.compat.system_status.modules.economic'}\",\"fxrates\":\"@:{'templates.generated.compat.configuration.fxrates.conversion_rates'}\",\"limble\":\"@:{'templates.generated.compat.system_status.modules.limble'}\",\"mailersend\":\"@:{'words.generated.mailersend'}\",\"motor_api\":\"@:{'words.generated.motor'} @:{'words.generated.api'}\",\"subtitle\":\"Systemkonfiguration\",\"virkdata\":\"@:{'words.generated.virk'} @.capitalize:{'words.generated.data'}\"},\"customers\":{\"edit_customer_title\":\"@:{'templates.generated.compat.customers.edit_customer'}\",\"new_customer_subtitle\":\"@:{'words.generated.opprett'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.kunde'}\",\"new_customer_title\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.kunde'}\",\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.kunder'} @:{'words.generated.pa'} @:{'words.generated.tvers'} @:{'words.generated.av'} @:{'words.generated.avdelinger'}\"},\"departments\":{\"add\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.avdelning'}\",\"delete\":\"@.capitalize:{'words.generated.radera'} @:{'words.generated.avdelning'}\",\"edit\":\"@:{'words.generated.redigera'} @:{'words.generated.avdelning'}\",\"new_department_subtitle\":\"@:{'words.generated.opprett'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.avdeling'}\",\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.avdelningar'}\"},\"employees\":{\"new_employee_subtitle\":\"@:{'words.generated.opprett'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.ansatt'}\",\"subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.ansatte'} @:{'words.generated.pa'} @:{'words.generated.tvers'} @:{'words.generated.av'} @:{'words.generated.avdelinger'}\"},\"home\":{\"subtitle\":\"@:{'words.generated.valkommen'} @:{'words.generated.till'} administratörspanelen\",\"title\":\"@:{'words.generated.admin'} @.capitalize:{'words.generated.instrumentpanel'}\"},\"invoices\":{\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.fakturor'}\"},\"menu\":{\"calendar\":\"@.capitalize:{'words.generated.kalender'}\",\"pos\":\"@:{'words.generated.pos'}\"},\"products\":{\"add\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.produkt'}\",\"addons_subtitle\":\"@:{'words.generated.administrer'} @:{'words.generated.produkttillegg'} @:{'words.generated.pa'} @:{'words.generated.tvers'} @:{'words.generated.av'} @:{'words.generated.avdelinger'}\",\"addons\":{\"add\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.tillval'}\",\"delete\":\"@.capitalize:{'words.generated.radera'} @:{'words.generated.tillval'}\",\"edit\":\"@:{'words.generated.redigera'} @:{'words.generated.tillval'}\",\"subtitle\":\"@.capitalize:{'words.generated.hantera'} produkttillval\"},\"delete\":\"@.capitalize:{'words.generated.radera'} @:{'words.generated.produkt'}\",\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.produkter'}\"},\"roles\":{\"subtitle\":\"@.capitalize:{'words.generated.hantera'} användarroller\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.hantera'} systeminställningar\"},\"sidebar\":{\"billing_periods\":\"Faktureringsperioder\",\"xlvask\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}\"},\"statistics\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.statistik'}\"},\"users\":{\"add\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.anvandare'}\",\"delete\":\"@.capitalize:{'words.generated.radera'} @:{'words.generated.anvandare'}\",\"edit\":\"@:{'words.generated.redigera'} @:{'words.generated.anvandare'}\",\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.anvandare'}\"},\"vehicles\":{\"subtitle\":\"@:{'templates.generated.compat.vehicles.subtitle'}\"},\"wash_log\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.vaskelogg'} @:{'words.generated.pa'} @:{'words.generated.tvers'} @:{'words.generated.av'} @:{'words.generated.avdelinger'}\"},\"department_pages\":{\"branding\":{\"subtitle\":\"Brand identity, contact details, and department profile\"},\"categories\":{\"subtitle\":\"Browse and maintain the department's category catalogue\"},\"gateways\":{\"subtitle\":\"Gateway coverage, lane bindings, scanners, and relay health\"},\"modules\":{\"subtitle\":\"Toggle department-wide module settings and integration flags\",\"variables\":{\"bookingsystem_enabled\":\"Bookingsystem enabled\",\"bookingsystem_time_based_enabled\":\"Time-based bookingsystem enabled\",\"bookingsystem_time_based_password\":\"Time-based bookingsystem password\",\"exclude_from_invoicing\":\"Excluded from invoicing\",\"workfeed_department_id\":\"Workfeed department\"}},\"pricing\":{\"subtitle\":\"Review the department's explicit price overrides\"},\"stripe\":{\"readers\":{\"subtitle\":\"Payment terminals currently associated with this department\"},\"setup\":{\"subtitle\":\"Assign the Stripe location used by this department\"}}}},\"superuser_invoice_distribution\":{\"actions\":{\"next_month\":\"@:{'words.generated.ga'} @:{'words.generated.till'} @:{'words.generated.nasta'} @:{'words.generated.manad'}\",\"open_month\":\"@:{'words.generated.oppna'} @:{'words.generated.manad'}\",\"previous_month\":\"@:{'words.generated.ga'} @:{'words.generated.till'} @:{'words.generated.foregaende'} @:{'words.generated.manad'}\",\"reset_filters\":\"@:{'words.generated.aterstall'} @:{'words.generated.filter'}\"},\"aria\":{\"compare_table_caption\":\"@.capitalize:{'words.generated.fakturajamfarelser'} @:{'words.generated.sorterade'} @:{'words.generated.efter'} @:{'words.generated.avvikelser'} @:{'words.generated.och'} @:{'words.generated.varningar'}\",\"customer_table_caption\":\"Kundniväns färdelningsrader @:{'words.generated.for'} @:{'words.generated.vald'} @:{'words.generated.manad'}\",\"department_table_caption\":\"Avdelningsniväns färdelningsuppdelning @:{'words.generated.for'} @:{'words.generated.vald'} @:{'words.generated.manad'}\",\"month_comparison_caption\":\"Jämförelsetabell @:{'words.generated.manad'} @:{'words.generated.for'} @:{'words.generated.manad'} @:{'words.generated.for'} @:{'words.generated.nyckeltal'}\",\"month_table_caption\":\"Månadsfärdelningens totaler @:{'words.generated.med'} @:{'words.generated.kallmix'} @:{'words.generated.och'} snabbäppningsätgärder\",\"open_month\":\"@:{'words.generated.oppna'} färdelningsdetaljer @:{'words.generated.for'} {month}\",\"sort_month\":\"@:{'words.generated.sortera'} @:{'words.generated.tabell'} @:{'words.generated.efter'} @:{'words.generated.manad'}\",\"sort_total\":\"@:{'words.generated.sortera'} @:{'words.generated.tabell'} @:{'words.generated.efter'} @:{'words.generated.totalbelopp'}\",\"source_mix_row\":\"Källsammansättning @:{'words.generated.for'} {month}\",\"trend_chart\":\"Färdelningstrenddiagram @:{'words.generated.per'} @:{'words.generated.manad'}\"},\"compare\":{\"compare_month\":\"@.capitalize:{'words.generated.jamfor'} @:{'words.generated.mot'} @:{'words.generated.manad'}\",\"line_mode_disclaimer\":\"@.capitalize:{'words.generated.rad'}-@:{'words.generated.for'}-@:{'words.generated.rad'}-läge @:{'words.generated.anvander'} @:{'words.generated.tillganglig'} jämfärelsemetadata @:{'words.generated.och'} varningsrader @:{'words.generated.fran'} @:{'words.generated.api'}-svaret.\",\"mismatches\":\"@.capitalize:{'words.generated.avvikelser'}\",\"mode\":\"Jämförelseläge\",\"modes\":{\"invoice_total\":\"@.capitalize:{'words.generated.endast'} @:{'words.generated.fakturatotal'}\",\"line_by_line\":\"@.capitalize:{'words.generated.sammanfattning'} @:{'words.generated.rad'} @:{'words.generated.for'} @:{'words.generated.rad'}\"},\"month_to_month\":\"@.capitalize:{'words.generated.jamforelse'} @:{'words.generated.manad'} @:{'words.generated.for'} @:{'words.generated.manad'}\",\"run\":\"@.capitalize:{'words.generated.jamfor'} @:{'words.generated.alla'} lokala @:{'words.generated.fakturor'} @:{'words.generated.med'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"run_short\":\"@:{'words.generated.kor'} @:{'words.generated.jamforelse'}\",\"sorted_hint\":\"Raderna @:{'words.generated.ar'} @:{'words.generated.sorterade'} @:{'words.generated.efter'} @:{'words.generated.avvikelser'} @:{'words.generated.och'} varningsgrad @:{'words.generated.forst'}.\",\"status_label\":\"Jämförelsestatus\",\"status\":{\"mismatch\":\"Avvikelse\",\"ok\":\"@.capitalize:{'words.generated.matchar'}\"},\"total_checked\":\"Kontrollerade @:{'words.generated.fakturor'}\",\"total_difference\":\"@.capitalize:{'words.generated.total'} skillnad\",\"warning_details\":\"@.capitalize:{'words.generated.varningar'} @:{'words.generated.for'} @:{'words.generated.faktura'} #{invoiceId}\"},\"departments\":{\"allocation_hint\":\"@.capitalize:{'words.generated.bokford'} @:{'words.generated.fordelning'} uppskattas utifrån @:{'words.generated.varje'} @:{'words.generated.avdelnings'} @:{'words.generated.andel'} @:{'words.generated.av'} @:{'words.replication.article.host_mention'} gemensamma @:{'words.generated.fordelningen'}.\"},\"empty\":{\"no_compare_results\":\"@.capitalize:{'words.generated.inga'} jämfärelseresultat @:{'words.generated.annu'}\",\"no_comparison_months\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.manad'} @:{'words.generated.tillganglig'}\",\"no_customers\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.kunder'} @:{'words.generated.matchar'} aktuella @:{'words.generated.filter'}\",\"no_departments\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.avdelningar'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.manaden'}\",\"no_month_comparison\":\"@.capitalize:{'words.generated.valj'} @:{'words.replication.host_definite_suffix'} jämfärelsemånad @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.se'} skillnader.\",\"no_months\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.manader'} @:{'words.generated.att'} @:{'words.generated.visa'}\"},\"errors\":{\"compare_failed\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.slutfora'} @:{'words.generated.jamforelsen'}\",\"month_load_failed\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.lasa'} @:{'words.generated.in'} @:{'words.generated.vald'} @:{'words.generated.manad'}\",\"overview_load_failed\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.lasa'} @:{'words.generated.in'} månadsäversikten @:{'words.generated.for'} @:{'words.generated.fordelning'}\"},\"filters\":{\"all_departments\":\"@.capitalize:{'words.generated.alla'} @:{'words.generated.avdelningar'}\",\"all_sources\":\"@.capitalize:{'words.generated.alla'} källor\",\"all_years\":\"@.capitalize:{'words.generated.alla'} @:{'words.generated.ar'}\",\"search\":\"@:{'words.generated.sok'} @:{'words.generated.manad'}\",\"search_customer\":\"@:{'templates.generated.compat.common.search_customer'}\",\"search_customer_placeholder\":\"@.capitalize:{'words.generated.kundnamn'} @:{'words.generated.eller'} @:{'words.generated.kundnummer'}...\",\"search_department\":\"@:{'words.generated.sok'} @:{'words.generated.avdelning'}\",\"search_department_placeholder\":\"@.capitalize:{'words.generated.avdelningsnamn'}...\",\"search_placeholder\":\"@.capitalize:{'words.generated.hitta'} @:{'words.generated.manad'}...\"},\"loading\":{\"loading_months\":\"@.capitalize:{'words.generated.laser'} @:{'words.generated.in'} @:{'words.generated.manader'} ({loaded}/{total})\"},\"metrics\":{\"booked\":\"@.capitalize:{'words.generated.bokforda'} @:{'words.generated.fakturor'}\",\"distribution\":\"Avdelningsfärdelning\",\"months\":\"@.capitalize:{'words.generated.manader'} @:{'words.generated.i'} vyn\",\"other\":\"övrig @:{'words.generated.bokford'} @:{'words.generated.inkomst'}\",\"subscriptions\":\"@.capitalize:{'words.generated.fordonsabonnemang'}\"},\"monthly_page\":{\"subtitle\":\"@:{'words.generated.granska'} @:{'words.generated.avdelningsfardelningar'}, kundfärdelning @:{'words.generated.och'} @:{'words.generated.fakturajamfarelser'}.\",\"title\":\"@.capitalize:{'words.generated.fordelning'} @:{'words.generated.for'} {month}\",\"toolbar_month\":\"Månadsväljare\",\"toolbar_month_picker\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.manad'}\"},\"overview\":{\"loaded_months\":\"{loaded} @:{'words.generated.manader'} @:{'words.generated.inlasta'}\",\"subtitle\":\"Månadsäversikt @:{'words.generated.over'} @:{'words.generated.fordelning'} @:{'words.generated.av'} delad @:{'words.generated.inkomst'} @:{'words.generated.per'} @:{'words.generated.kalla'}.\",\"title\":\"@:{'templates.generated.compat.superuser_invoice_distribution.metrics.distribution'}\"},\"sections\":{\"month_table\":\"Månadssummor\",\"source_blend\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.source_mix'}\",\"top_months\":\"Toppmånader @:{'words.generated.efter'} @:{'words.generated.total'}\",\"trend\":\"Månadstrend\"},\"table\":{\"booked\":\"@:{'templates.generated.compat.global.booked'}\",\"compared\":\"Jämförd @:{'words.generated.manad'}\",\"current\":\"@.capitalize:{'words.generated.nuvarande'}\",\"delta\":\"Förändring\",\"distribution\":\"@.capitalize:{'words.generated.fordelning'}\",\"economic_total\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.totalbelopp'}\",\"estimated_booked_allocation\":\"@:{'words.generated.beraknad'} @:{'words.generated.bokford'} @:{'words.generated.fordelning'}\",\"fixed_pricing\":\"@.capitalize:{'words.generated.fast'} @:{'words.generated.prissattning'}\",\"internal_total\":\"Lokalt @:{'words.generated.totalbelopp'}\",\"invoice_id\":\"@.capitalize:{'words.generated.faktura'}-@.upper:{'words.generated.id'}\",\"metric\":\"@.capitalize:{'words.generated.nyckeltal'}\",\"share\":\"@.capitalize:{'words.generated.andel'}\",\"source_mix\":\"@.capitalize:{'words.generated.kallmix'}\"},\"tooltips\":{\"compare_mode\":\"@.capitalize:{'words.generated.fakturatotal'} @:{'words.generated.jamfor'} aggregerade @:{'words.generated.totalsummor'}. @.capitalize:{'words.generated.rad'}-@:{'words.generated.for'}-@:{'words.generated.rad'} @:{'words.generated.visar'} @:{'words.generated.sammanfattning'} @:{'words.generated.per'} fakturarad @:{'words.generated.fran'} @:{'words.generated.tillgangliga'} jämfärelsedata.\",\"estimated_booked\":\"@:{'words.generated.beraknad'} @:{'words.generated.bokford'} @:{'words.generated.andel'} baserad @:{'words.generated.pa'} @:{'words.generated.varje'} @:{'words.generated.avdelnings'} @:{'words.generated.andel'} @:{'words.generated.av'} @:{'words.replication.article.host_mention'} delade @:{'words.generated.fordelningen'}.\",\"fixed_pricing\":\"@.capitalize:{'words.generated.belopp'} @:{'words.generated.som'} @:{'words.generated.tilldelats'} @:{'words.generated.fran'} @:{'words.generated.fastprisavtal'} @:{'words.generated.for'} @:{'words.generated.vald'} @:{'words.generated.manad'}.\",\"subscriptions\":\"@.capitalize:{'words.generated.belopp'} @:{'words.generated.som'} @:{'words.generated.tilldelats'} @:{'words.generated.fran'} @:{'words.generated.fordonsabonnemang'} @:{'words.generated.for'} @:{'words.generated.vald'} @:{'words.generated.manad'}.\",\"summary\":\"@.capitalize:{'words.generated.varje'} @:{'words.generated.manad'} inkluderar @:{'words.generated.bokforda'} @:{'words.generated.totalsummor'} samt @:{'words.generated.totalsummor'} @:{'words.generated.for'} @:{'words.generated.fast'} @:{'words.generated.prissattning'} @:{'words.generated.och'} abonnemangsfärdelning.\"},\"warnings\":{\"legacy_compare_fallback\":\"@.capitalize:{'words.generated.jamforelsen'} kurs @:{'words.generated.pa'} @:{'words.replication.article.host_mention'} @:{'words.generated.aldre'} endpointen @:{'words.generated.eftersom'} @:{'words.generated.v2'}-bulkjämfärelse @:{'words.generated.inte'} @:{'words.generated.var'} @:{'words.generated.tillganglig'}.\",\"legacy_distribution_fallback\":\"Laddade {count} @:{'words.generated.manad'}(@:{'words.generated.er'}) @:{'words.generated.via'} @:{'words.generated.aldre'} @:{'words.generated.distributionsendpoints'} @:{'words.generated.eftersom'} @:{'words.generated.v2'} @:{'words.generated.inte'} @:{'words.generated.var'} @:{'words.generated.tillganglig'}.\",\"legacy_distribution_month\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} månadens @:{'words.generated.data'} använde @:{'words.generated.aldre'} @:{'words.generated.distributionsendpoints'} @:{'words.generated.eftersom'} @:{'words.generated.v2'} @:{'words.generated.inte'} @:{'words.generated.var'} @:{'words.generated.tillganglig'}.\"}},\"superuser\":{\"collected_order_invoice\":{\"and_booked\":\"@:{'words.generated.and'} @:{'words.generated.posted'}\",\"and_draft\":\"@:{'words.generated.and'} saved @:{'words.generated.as'} @:{'words.generated.draft'}\",\"but_not_booked\":\"@:{'words.generated.but'} @:{'words.generated.not'} @:{'words.generated.posted'}\",\"in_economic\":\"@:{'templates.generated.compat.collected_invoice.stripe.in_economic'}\",\"invoice_booked_economic\":\"@:{'templates.generated.compat.collected_invoice.economic.booked_desc'}\",\"invoice_draft_economic\":\"@.capitalize:{'words.generated.fakturan'} @:{'words.generated.ar'} @:{'words.generated.sparad'} @:{'words.generated.som'} @:{'words.generated.utkast'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.och'} @:{'words.generated.kan'} @:{'words.generated.bokforas'} @:{'words.generated.dar'} @:{'words.generated.direkt'}.\",\"invoice_paid_status\":\"@.capitalize:{'words.generated.fakturan'} @:{'words.generated.ar'} @:{'words.generated.betald'}\",\"no_invoice_found\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.faktura'} @:{'words.generated.hittades'} @:{'words.generated.med'} @:{'words.generated.angivet'} @.upper:{'words.generated.id'}\",\"payment_overview\":\"Betalningsäversikt\"},\"department_lane\":{\"force_disable_machine\":\"@:{'words.generated.tvinga'} avaktivering @:{'words.generated.av'} @:{'words.generated.maskin'}\",\"force_disable_success\":\"@:{'words.generated.maskinen'} tvångsavaktiverades\",\"force_enable_machine\":\"@:{'words.generated.tvinga'} aktivering @:{'words.generated.av'} @:{'words.generated.maskin'}\",\"force_enable_success\":\"@:{'words.generated.maskinen'} tvångsaktiverades\",\"force_error\":\"@.capitalize:{'words.generated.fel'} @:{'words.generated.vid'} tvångsåtgärd\"},\"invoicing_billing_period\":{\"dashboard_right\":\"@.capitalize:{'words.generated.visning'} @:{'words.generated.i'} höger @:{'words.generated.dashboard'}\",\"fetch_period_data\":\"Fetch @.capitalize:{'words.generated.period'} @.capitalize:{'words.generated.data'}\"},\"nav\":{\"categories\":\"@.capitalize:{'words.generated.categories'}\",\"complaints\":\"Klagomål\",\"department_gates\":\"@.capitalize:{'words.generated.avdelningsgrindar'}\",\"department_lanes\":\"@.capitalize:{'words.generated.avdelningsbanor'}\",\"department_relays\":\"@.capitalize:{'words.generated.avdelningsrelaer'}\",\"invoicing\":\"@:{'templates.generated.compat.settings.billing'}\",\"orders\":\"Transaktionshistorik\",\"roles\":\"@.capitalize:{'words.generated.roles'} @:{'words.generated.and'} @.capitalize:{'words.generated.permissions'}\",\"scanners\":\"@.capitalize:{'words.generated.license'} @.capitalize:{'words.generated.plate'} @.capitalize:{'words.generated.scanners'}\",\"xlvask\":\"@:{'words.generated.xlvask'}\",\"error_reports\":\"Error reports\"},\"pages\":{\"categories\":{\"create\":\"@.capitalize:{'words.generated.skapa'}\"},\"complaints\":{\"created_by_column\":\"@:{'words.generated.created'} @:{'words.generated.by'}\",\"delete_message\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.complaint'} @:{'words.generated.will'} @:{'words.generated.be'} permanently @:{'words.generated.removed'}.\",\"delete_title\":\"@:{'words.generated.delete'} @:{'words.generated.complaint'}?\",\"edit_title\":\"@:{'words.generated.edit'} @:{'words.generated.complaint'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.complaints'}\",\"single\":\"@.capitalize:{'words.generated.complaint'}\",\"subtitle\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.and'} @:{'words.generated.manage'} @:{'words.generated.customer'} @:{'words.generated.complaints'} across @:{'words.generated.departments'}.\",\"title\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.complaints'}\"},\"customers\":{\"create\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.ny'} @:{'words.generated.kund'}\",\"subtitle\":\"@.capitalize:{'words.generated.har_2'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.lista'} @:{'words.generated.over'} @:{'words.generated.alla'} @:{'words.generated.kunder'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"department_gates\":{\"create\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.ny'} @:{'words.generated.avdelningsgrind'}\",\"subtitle\":\"@.capitalize:{'words.generated.har_2'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.lista'} @:{'words.generated.over'} @:{'words.generated.alla'} @:{'words.generated.avdelningsgrindar'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"department_lanes\":{\"create\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.ny'} avdelningsbana\",\"subtitle\":\"@.capitalize:{'words.generated.har_2'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.lista'} @:{'words.generated.over'} @:{'words.generated.alla'} @:{'words.generated.avdelningsbanor'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"department_relays\":{\"create\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.nytt'} @:{'words.generated.avdelningsrela'}\",\"subtitle\":\"@.capitalize:{'words.generated.har_2'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.lista'} @:{'words.generated.over'} @:{'words.generated.alla'} @:{'words.generated.avdelningsrelaer'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"department_selector\":{\"subtitle\":\"@.capitalize:{'words.generated.har_2'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.valja'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.avdelning'}\"},\"departments\":{\"create\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.ny'} @:{'words.generated.avdelning'}\",\"subtitle\":\"@.capitalize:{'words.generated.har_2'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.lista'} @:{'words.generated.over'} @:{'words.generated.alla'} @:{'words.generated.avdelningar'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"drivers\":{\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.and'} @:{'words.generated.manage'} @:{'words.generated.your'} @:{'words.generated.drivers'}.\"},\"employees\":{\"create\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.ny'} @:{'words.generated.anstalld'}\",\"migrate_to_limited_backoffice\":\"Migrera till begränsad backoffice\",\"subtitle\":\"@.capitalize:{'words.generated.har_2'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.lista'} @:{'words.generated.over'} @:{'words.generated.alla'} @:{'words.generated.anstallda'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"orders\":{\"subtitle\":\"@.capitalize:{'words.generated.har_2'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.lista'} @:{'words.generated.over'} @:{'words.generated.alla'} @:{'words.generated.transaktioner'}\"},\"products\":{\"create\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.ny'} @:{'words.generated.produkt'}\",\"subtitle\":\"@.capitalize:{'words.generated.har_2'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.lista'} @:{'words.generated.over'} @:{'words.generated.alla'} @:{'words.generated.produkter'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"scanners\":{\"create\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.ny'} registreringsskanner\",\"simulate_scan\":\"Simulate @:{'words.generated.scan'}\",\"subtitle\":\"@.capitalize:{'words.generated.har_2'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.lista'} @:{'words.generated.over'} @:{'words.generated.alla'} @:{'words.generated.registreringsskannrar'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"subusers\":{\"subtitle\":\"@.capitalize:{'words.generated.here'} @:{'words.generated.you'} @:{'words.generated.can'} @:{'words.generated.see'} @:{'words.generated.a'} @:{'words.generated.list'} @:{'words.generated.of'} @:{'words.generated.all'} @:{'words.generated.sub'}-@:{'words.generated.users'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.system'}\",\"title\":\"@.capitalize:{'words.generated.sub'}-@:{'words.generated.users'}\"}},\"statistics\":{\"error_occurred\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'}\"},\"user_detail\":{\"overview_header_help\":\"Använd arbetsområdets genvägar och direkta åtgärder nedan för att hantera detta kundkonto.\",\"workspace_shortcuts_help\":\"Gå direkt till de kundspecifika arbetsområdena för detta konto.\",\"attribute_help\":\"Håll pekaren över ett attribut för att se vad det ändrar för kunden.\",\"subtitles\":{\"overview\":\"Kundöversikt och hanteringsyta\",\"orders\":\"Fakturahantering, öppna utkast och orderhistorik\",\"pricing\":\"Kundspecifika rabatter och fasta produktpriser\",\"other\":\"Särskilda avtal och interna kundanteckningar\",\"security\":\"Behörigheter och åtkomst till kundregler\",\"vehicles\":\"Fordon, abonnemang och massregistrering\",\"xlvask\":\"XLVask-kontodetaljer och importerade fordon\",\"subusers\":\"Drivers and customer access grants\"},\"orders\":{\"summary_title\":\"Översikt över orderfakturering\",\"summary_subtitle\":\"Granska hur denna kund faktureras innan hela orderlistan öppnas.\",\"invoicing_mode\":\"Faktureringssätt\",\"open_draft\":\"Öppna fakturautkast\"},\"pricing\":{\"summary_title\":\"Prisöversikt\",\"summary_subtitle\":\"Granska kundens generella rabattpolicy och produktspecifika undantag.\",\"table_title\":\"Produktspecifika priser\",\"table_subtitle\":\"Justera fasta priser och rabattregler för varje tillgänglig produkt.\",\"global_discount\":\"Global rabatt\",\"product_overrides\":\"Produktundantag\",\"discount_percent\":\"Rabattprocent\",\"fixed_price_label\":\"Fast pris\",\"fixed_price_validation\":\"Ange ett giltigt icke-negativt heltal.\",\"category_discount_disabled\":\"Kategorirabatt inaktiverad\",\"fixed_price_tooltip\":\"Redigera det fasta priset för denna produkt.\",\"item_discount_tooltip\":\"Redigera den kundspecifika rabatten för denna produkt.\",\"category_discount_tooltip\":\"Redigera kategorirabatten som används för denna produkt.\"},\"other\":{\"summary_title\":\"Särskilda avtal\",\"summary_subtitle\":\"Spara kontospecifika anteckningar och faktureringsdetaljer som påverkar den dagliga driften.\"},\"security\":{\"active_rules\":\"Aktiva regler\",\"current_role\":\"Aktuell roll\",\"customer_rules_subtitle\":\"Slå kundspecifika regler av eller på för bokning, fakturering och produkttillgänglighet.\",\"direct_role_tab\":\"Tilldela roll\",\"editable\":\"Redigerbar\",\"limited_employee_departments_label\":\"Avdelningar\",\"limited_employee_load_failed\":\"Begränsade backoffice-val kunde inte läsas in.\",\"limited_employee_migrate_failed\":\"Medarbetaren kunde inte migreras.\",\"limited_employee_migrated\":\"Medarbetaren har migrerats till begränsad backoffice.\",\"limited_employee_role_label\":\"Roll\",\"limited_employee_subtitle\":\"Välj en begränsad backoffice-roll och de avdelningar medarbetaren ska ha åtkomst till.\",\"limited_employee_tab\":\"Begränsad backoffice-medarbetare\",\"limited_employee_unavailable\":\"Endast medarbetarkonton utan kundnummer kan migreras till begränsad backoffice.\",\"limited_employee_validation\":\"Välj en roll och minst en avdelning.\",\"managed_employee\":\"Begränsad backoffice\",\"manage_rules\":\"Hantera regler\",\"migrate_employee\":\"Migrera medarbetare\",\"no_role\":\"Denna användare har ingen tilldelad roll.\",\"permission_editor_notice\":\"Ändringar i behörigheter uppdaterar den tilldelade rollen och påverkar alla användare med den rollen.\",\"permission_toggle_unavailable\":\"Du har inte behörighet att ändra denna rollbehörighet.\",\"permissions_unavailable\":\"Du har inte behörighet att läsa in rollbehörigheter.\",\"readonly\":\"Skrivskyddad\",\"role_assignment_subtitle\":\"Ändra vilken roll som ger användarens effektiva behörigheter.\",\"role_assignment_title\":\"Rolltilldelning\",\"role_edit_unavailable\":\"Du har inte behörighet att redigera användarens roll.\",\"role_fetch_unavailable\":\"Du har inte behörighet att läsa in rollval.\",\"role_locked\":\"Låst\",\"role_locked_limited_backoffice\":\"Användare som hanteras av begränsad backoffice kan inte få rollen ändrad här.\",\"role_permissions_subtitle\":\"Granska och uppdatera behörigheter för den tilldelade rollen.\",\"role_permissions_title\":\"Behörigheter för tilldelad roll\",\"role_save_failed\":\"Användarens roll kunde inte uppdateras.\",\"role_saved\":\"Roll uppdaterad.\",\"role_select_label\":\"Tilldelad roll\",\"review_permissions\":\"Granska behörigheter\",\"save_role\":\"Spara roll\",\"standard_user\":\"Standardanvändare\",\"switch_role\":\"Byt roll\"},\"vehicles\":{\"summary_title\":\"Fordonsyta\",\"summary_subtitle\":\"Granska kundens fordon, abonnemang och importflöden.\",\"subscription_invoicing_subtitle\":\"Hantera aktiva tvättabonnemang och skapa fakturautkast för andra perioder.\",\"table_title\":\"Registrerade fordon\",\"table_subtitle\":\"Hantera registreringsnummer och tvättabonnemang för denna kund.\",\"total\":\"Fordon totalt\",\"wash_subscription\":\"Tvättabonnemang\",\"self_service\":\"Self-service-fordon\",\"add_vehicle\":\"Lägg till fordon\",\"no_customer\":\"Den här användaren har inget kundnummer, så fordon kan inte hanteras här.\",\"summary_load_failed\":\"Fordonsöversikten kunde inte läsas in.\"},\"overview\":{\"customer_actions_title\":\"Kundåtgärder\",\"customer_actions_subtitle\":\"Kör kundspecifika åtgärder utan att lämna översikten.\",\"customer_shortcuts_title\":\"Kundgenvägar\",\"customer_shortcuts_subtitle\":\"Gå till de vanligaste kundarbetsområdena från översikten.\",\"customer_flags_title\":\"Kundflaggor\",\"customer_flags_subtitle\":\"Skapa faktureringsperiodflaggor för denna kund när uppföljning behövs.\",\"fixed_pricing_title\":\"Fast pris\",\"fixed_pricing_subtitle\":\"Hantera kundens fasta prisavtal.\",\"default_department_title\":\"Standardavdelning\",\"default_department_subtitle\":\"Välj vilken avdelning som ska vara förvald för denna kund.\",\"open_orders\":\"Öppna order\",\"open_pricing\":\"Öppna priser\",\"open_security\":\"Öppna säkerhet\",\"open_subscriptions\":\"Öppna abonnemang\",\"special_arrangement_title\":\"Särskilt avtal\",\"special_arrangement_subtitle\":\"Spara driftsanteckningar om kundens särskilda avtal.\",\"view_account\":\"Visa konto\",\"view_economic\":\"Visa e-conomic\",\"wash_subscription_note_title\":\"Anteckning till tvättabonnemang\",\"wash_subscription_note_subtitle\":\"Spara den interna anteckningen som används vid fakturering av tvättabonnemang.\"},\"xlvask\":{\"summary_title\":\"XLVask-kundprofil\",\"summary_subtitle\":\"Granska den kopplade XLVask-kunden innan fordon importeras.\",\"vehicles_title\":\"XLVask-fordon\",\"vehicles_subtitle\":\"Fordon i XLVask för denna kopplade kund.\",\"not_found\":\"Ingen XLVask-kund är kopplad till detta konto ännu.\",\"customer_id\":\"XLVask ID\"},\"subusers\":{\"active\":\"Active\",\"disabled\":\"Disabled\",\"invite\":\"Invite driver\",\"pending_setup\":\"Pending setup\",\"summary_load_failed\":\"Could not load driver summary.\",\"summary_subtitle\":\"Review driver access before changing grants, permissions, or invitations.\",\"summary_title\":\"Driver access overview\",\"table_subtitle\":\"Manage the drivers that are linked to this customer's account.\",\"table_title\":\"Drivers\",\"total\":\"Total drivers\"}},\"user\":{\"fixed_pricing\":{\"not_implemented_desc\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.kan'} @:{'words.generated.nu'} @:{'words.generated.skapa'} @:{'words.generated.fastprisavtal'}, @:{'words.generated.men'} dessa tillämpas @:{'words.generated.annu'} @:{'words.generated.inte'} @:{'words.generated.i'} @:{'words.generated.systemet'}.\",\"not_implemented_title\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.har_2'} @:{'words.generated.funktionen'} @:{'words.generated.ar'} @:{'words.generated.annu'} @:{'words.generated.inte'} implementerad @:{'words.generated.i'} faktureringen\"},\"special_arrangement\":{\"label\":\"@.capitalize:{'words.generated.special'} @:{'words.generated.arrangement'}, internal. (@.capitalize:{'words.generated.note'})\",\"save\":\"@.capitalize:{'words.generated.save'} @:{'words.generated.special'} @:{'words.generated.arrangement'}\",\"title\":\"@.capitalize:{'words.generated.special'} @:{'words.generated.arrangement'}\"},\"vehicles\":{\"placeholder_active_subscriptions\":\"@:{'templates.generated.compat.user_vehicles.subscriptions_placeholder'}\",\"placeholder_self_service\":\"@:{'templates.generated.compat.user_vehicles.self_service_placeholder'}\",\"placeholder_vehicle_count\":\"@:{'templates.generated.compat.user_vehicles.vehicle_count_placeholder'}\"},\"wash_subscription\":{\"save\":\"@.capitalize:{'words.generated.spara'} @:{'words.generated.tvattabonnemang'}\"}},\"vehicle\":{\"xlvask_usage_log\":{\"create_order_all\":\"@:{'templates.generated.compat.tables.xlvask.create_order_all'}\"}},\"xlvask\":{\"fetch_customers\":\"@.capitalize:{'words.generated.hamta'} @:{'words.generated.kunder'}\",\"fetch_objects\":\"@.capitalize:{'words.generated.hamta'} @:{'words.generated.objekt'}\",\"objects\":\"@.capitalize:{'words.generated.objekt'}\"},\"driver_access\":{\"advanced\":\"Advanced\",\"capabilities\":{\"add_bookings\":\"Create bookings\",\"add_vehicles\":\"Add vehicles\",\"delete_bookings\":\"Delete bookings\",\"delete_selfserve\":\"Delete self-service\",\"delete_vehicles\":\"Delete vehicles\",\"disable_driver_access\":\"Disable driver access\",\"edit_bookings\":\"Edit bookings\",\"edit_driver_access\":\"Edit driver access\",\"edit_orders\":\"Edit orders\",\"edit_selfserve\":\"Edit self-service\",\"edit_vehicles\":\"Edit vehicles\",\"invite_drivers\":\"Invite drivers\",\"start_selfserve\":\"Start self-service\",\"view_bookings\":\"View bookings\",\"view_drivers\":\"View drivers\",\"view_orders\":\"View orders\",\"view_selfserve\":\"View self-service\",\"view_vehicles\":\"View vehicles\"},\"custom_description\":\"Choose individual access areas for this driver.\",\"editor_intro\":\"Choose a grouped access profile. Superusers can use custom access for exceptions.\",\"editor_title\":\"Access profile for {name}\",\"empty\":\"No access profiles were found.\",\"groups\":{\"bookings\":\"Bookings\",\"driver_management\":\"Driver management\",\"orders\":\"Orders\",\"selfserve\":\"Self-service\",\"vehicles\":\"Vehicles\"},\"loading\":\"Loading access profiles...\",\"selected\":\"Selected\",\"templates\":{\"booking_coordinator\":{\"description\":\"Can coordinate bookings and see the related vehicles and orders.\",\"label\":\"Booking coordinator\"},\"custom\":{\"description\":\"Choose individual access areas.\",\"label\":\"Custom\"},\"deactivated\":{\"description\":\"Keeps the driver linked to the customer without active access.\",\"label\":\"Deactivated\"},\"driver\":{\"description\":\"Can use self-service, manage own bookings, see vehicles, and view orders.\",\"label\":\"Driver\"},\"fleet_admin\":{\"description\":\"Can manage drivers, vehicles, bookings, self-service, and orders for the customer.\",\"label\":\"Fleet admin\"}},\"form_label\":\"Access profile\",\"form_help\":\"Choose a grouped access profile. It can be changed later.\",\"summary\":{\"no_permissions\":\"No permissions\",\"permission_count\":\"{count} permissions\",\"custom_summary\":\"Custom: {summary}\"}},\"driver_contact\":{\"close\":\"Close\",\"email_missing\":\"E-mail missing\",\"link_not_sent_default\":\"The link could not be sent.\",\"link_not_sent_title\":\"Link could not be sent\",\"link_send_failed\":\"The link could not be sent.\",\"link_sent_default\":\"The link was sent.\",\"link_sent_title\":\"Link sent\",\"login_link_failed_title\":\"Login link could not be sent\",\"login_link_not_sent_title\":\"Login link could not be sent\",\"login_link_sent_title\":\"Login link sent\",\"missing\":\"Missing\",\"password_guide_failed_title\":\"Guide could not be sent\",\"password_guide_not_sent_title\":\"Guide could not be sent\",\"password_guide_sent_title\":\"Guide sent\",\"phone_missing\":\"Phone missing\",\"send_login_link\":\"Send pre-authorized login link\",\"send_password_guide\":\"Send new password guide\",\"status\":\"Status\",\"unverified\":\"Not verified\",\"verification_update_failed\":\"Verification status could not be updated.\",\"verification_update_failed_title\":\"Status could not be updated\",\"verified\":\"Verified\"},\"driver_wheel\":{\"access_section\":\"Access\",\"account_section\":\"Account\",\"contact_section\":\"Contact\",\"details_section\":\"Details\",\"identity_subsection\":\"Identity\",\"system_subsection\":\"System\"}},\"system_status\":{\"actions\":{\"open_config\":\"@:{'words.generated.open'} @:{'words.generated.configuration'}\",\"open_replication\":\"@:{'words.generated.open'} @:{'words.generated.replication'}\"},\"cards\":{\"cpu\":\"@:{'words.generated.cpu'}\",\"database\":\"@.capitalize:{'words.replication.services.database'}\",\"memory\":\"@:{'words.generated.memory'}\"},\"devices\":{\"desktop\":\"Desktop\",\"mobile\":\"Mobile\",\"tablet\":\"Tablet\"},\"gateways\":{\"actions\":{\"open_fleet\":\"@.capitalize:{'words.generated.oppna'} flotta\",\"open_gateway\":\"@.capitalize:{'words.generated.oppna'} @:{'words.generated.gateway'}\"},\"description\":\"Skrivskyddad flottstatus @:{'words.generated.for'} @:{'words.generated.installerade'} @:{'words.generated.edge'} @:{'words.generated.gateways'}.\",\"discovery_status\":{\"ready\":\"@:{'templates.generated.compat.common.done'}\",\"stale\":\"@.capitalize:{'words.generated.foraldrad'}\"},\"empty\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.finns'} @:{'words.generated.inga'} registrerade @:{'words.generated.edge'} @:{'words.generated.gateways'}.\",\"error\":\"@.capitalize:{'words.generated.gatewaystatus'} @:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.laddas'} @:{'words.generated.just'} @:{'words.generated.nu'}.\",\"labels\":{\"active_operation\":\"@.capitalize:{'words.generated.aktiv'} operation\",\"last_heartbeat\":\"@.capitalize:{'words.generated.senaste'} heartbeat\"},\"loading\":\"@:{'words.generated.laddar'} @:{'words.generated.gatewaystatus'}...\",\"status\":{\"degraded\":\"@.capitalize:{'words.generated.kraver'} uppmärksamhet\",\"online\":\"@.capitalize:{'words.generated.online'}\"},\"summary\":{\"total\":\"@.capitalize:{'words.generated.gateways'}\"}},\"labels\":{\"activity_window\":\"@.capitalize:{'words.generated.active'} @:{'words.generated.within'} @:{'words.generated.the'} @:{'words.generated.last_2'} {minutes} @:{'words.generated.minutes'}\",\"buckets_available\":\"{available} @:{'words.generated.of'} {total} @:{'words.generated.buckets'} @:{'words.generated.available'}\",\"checked_at\":\"@.capitalize:{'words.generated.checked'} @:{'words.generated.at'}\",\"configured\":\"@.capitalize:{'words.generated.configured'}\",\"enabled\":\"@.capitalize:{'words.generated.enabled'}\",\"latency\":\"Latency\",\"no_reason\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.additional'} @:{'words.generated.details'}\",\"replication_percent\":\"{percent}% @:{'words.generated.replication'} ({status})\",\"runtime_source\":\"@.capitalize:{'words.generated.runtime'} @:{'words.generated.source'}\",\"server_version\":\"@.capitalize:{'words.generated.server'} @:{'words.generated.version'}\",\"warnings\":\"@:{'templates.generated.compat.global.warnings'}\"},\"modules\":{\"backups\":\"Backups\",\"economic\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"entra\":\"@:{'words.generated.microsoft'} Entra\",\"fxratesapi\":\"@:{'words.generated.fxratesapi'}\",\"licenseplaterecognizer\":\"@.capitalize:{'words.generated.license'} @.capitalize:{'words.generated.plate'} Recognizer\",\"limble\":\"@:{'words.generated.limble'}\",\"motorapi\":\"@:{'words.generated.motorapi'}\",\"ocrspace\":\"OCR.@:{'words.generated.space'}\",\"openai\":\"@:{'words.generated.openai'}\",\"selfserve\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'}\",\"shelly\":\"@:{'words.generated.shelly'}\",\"stripe\":\"@:{'words.generated.stripe'}\",\"virkdata\":\"@:{'words.generated.virkdata_virkdata'}\",\"workfeed\":\"@:{'words.generated.workfeed'}\"},\"reasons\":{\"backup_connectivity_confirmed\":\"@.capitalize:{'words.generated.backup'} @:{'words.generated.store'} @:{'words.generated.connectivity'} @:{'words.generated.confirmed'}.\",\"backup_encryption_key_missing\":\"Backup encryption is not ready: {error}.\",\"backup_latest_verified_stale\":\"Latest verified backup is stale.\",\"backup_no_verified_backup\":\"No verified backup is available for restore.\",\"backup_probe_failed\":\"@.capitalize:{'words.generated.backup'} @:{'words.generated.probe'} @:{'words.generated.failed'}: {error}.\",\"economic_credentials_missing\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.credentials'} @:{'words.generated.are'} @:{'words.generated.missing'} @:{'words.generated.from'} @:{'words.generated.runtime'} environment @:{'words.generated.configuration'}.\",\"email_delivery_not_implemented\":\"@:{'words.generated.mailersend_mailersend'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.enabled'} @:{'words.generated.because'} @:{'words.generated.default'} @:{'words.generated.smtp'} delivery @:{'words.generated.is'} @:{'words.generated.not'} implemented.\",\"http_curl_init_failed\":\"{label} @:{'words.generated.probe'} @:{'words.generated.could'} @:{'words.generated.not'} initialize cURL.\",\"http_endpoint_missing\":\"{label} @:{'words.generated.probe'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.run'} @:{'words.generated.because'} @:{'words.generated.the'} @:{'words.generated.endpoint'} @:{'words.generated.is'} @:{'words.generated.missing'}.\",\"http_no_response\":\"{label} @:{'words.generated.did'} @:{'words.generated.not'} @:{'words.generated.return'} @:{'words.generated.an'} @:{'words.generated.http'} @:{'words.generated.response'}.\",\"http_ok\":\"{label} @:{'words.generated.connectivity'} @:{'words.generated.confirmed'}.\",\"http_probe_failed\":\"{label} @:{'words.generated.probe'} @:{'words.generated.failed'}: {error}.\",\"http_rate_limited\":\"{label} @:{'words.generated.probe'} @:{'words.generated.was'} rate limited (@:{'words.generated.http'} {httpStatus}).\",\"http_status\":\"{label} @:{'words.generated.returned'} @:{'words.generated.http'} {httpStatus}.\",\"http_unexpected_response\":\"{label} @:{'words.generated.returned'} @:{'words.generated.an'} @:{'words.generated.unexpected'} @:{'words.generated.http'} @:{'words.generated.response'}.\",\"invalid_probe_payload\":\"@.capitalize:{'words.generated.probe'} @:{'words.generated.returned'} @:{'words.generated.an'} @:{'words.generated.invalid'} @:{'words.generated.payload'}.\",\"missing_config\":\"@.capitalize:{'words.generated.missing'} @:{'words.generated.required'} @:{'words.generated.configuration'}: {variables}.\",\"module_disabled\":\"@.capitalize:{'words.generated.module'} @:{'words.generated.is'} @:{'words.generated.disabled'}.\",\"recaptcha_credentials_rejected\":\"{label} @:{'words.generated.credentials'} @:{'words.generated.were'} rejected @:{'words.generated.by'} @:{'words.generated.google'}.\",\"recaptcha_unreadable_payload\":\"{label} @:{'words.generated.returned'} @:{'words.generated.an'} unreadable @:{'words.generated.response'} @:{'words.generated.payload'}.\",\"recaptcha_validation_errors\":\"{label} @:{'words.generated.returned'} @:{'words.generated.unexpected'} validation errors: {errors}.\",\"safe_probe_unavailable\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.is'} present, @:{'words.generated.but'} @:{'words.generated.no'} @:{'words.generated.safe'} @:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.probe'} @:{'words.generated.is'} @:{'words.generated.available'}.\",\"selfserve_configuration_confirmed\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.schema'} @:{'words.generated.and'} @:{'words.generated.minute'} @:{'words.generated.product'} @:{'words.generated.configuration'} @:{'words.generated.confirmed'}.\",\"selfserve_minute_product_invalid\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.minute'} @:{'words.generated.product'} @:{'words.generated.configuration'} @:{'words.generated.is'} @:{'words.generated.invalid'}.\",\"selfserve_minute_product_missing\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.minute'} @:{'words.generated.product'} #{productId} @:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.exist'}.\",\"selfserve_minutes_invalid\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.machine'} @:{'words.generated.minutes'} @:{'words.generated.configuration'} @:{'words.generated.is'} @:{'words.generated.invalid'}.\",\"selfserve_probe_failed\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.probe'} @:{'words.generated.failed'}: {error}.\",\"shelly_no_device_id\":\"@:{'words.generated.shelly'} cloud @:{'words.generated.credentials'} @:{'words.generated.are'} @:{'words.generated.configured'}, @:{'words.generated.but'} @:{'words.generated.no'} known @:{'words.generated.device'} @:{'words.generated.id'} @:{'words.generated.is'} @:{'words.generated.available'} @:{'words.generated.for_2'} @:{'words.generated.a'} @:{'words.generated.safe'} @:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.probe'}.\"},\"sections\":{\"gateways\":\"@.capitalize:{'words.generated.edge'} @:{'words.generated.gateways'}\",\"infrastructure\":\"Infrastructure\",\"modules\":\"@.capitalize:{'words.generated.modules'}\",\"sessions\":\"@.capitalize:{'words.generated.recent'} @:{'words.generated.sessions'}\"},\"session_display\":{\"session_with_id\":\"@.capitalize:{'words.generated.session'} #{id}\"},\"session_types\":{\"subuser\":\"@:{'words.generated.subuser'}\"},\"states\":{\"error\":\"@.capitalize:{'words.generated.status'} @:{'words.generated.error'}\",\"error_generic\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.load'} @:{'words.generated.system'} @:{'words.generated.status'}.\",\"loading\":\"@:{'words.generated.loading'} @:{'words.generated.system'} @:{'words.generated.status'}...\",\"no_sessions\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.recent'} @:{'words.generated.sessions'} @:{'words.generated.found'}.\",\"stale\":\"@.capitalize:{'words.generated.this'} snapshot @:{'words.generated.is'} older than @:{'words.generated.expected'}. Automatic @:{'words.generated.refresh'} may @:{'words.generated.be'} delayed.\"},\"status\":{\"degraded\":\"@:{'templates.generated.compat.replication.status.degraded'}\",\"disabled\":\"@.capitalize:{'words.generated.disabled'}\"},\"summary\":{\"active_sessions\":\"@.capitalize:{'words.generated.active'} @:{'words.generated.sessions'}\",\"active_users\":\"@.capitalize:{'words.generated.active'} @:{'words.generated.users'}\",\"last_updated\":\"@.capitalize:{'words.generated.last_2'} updated\",\"overall\":\"Overall @:{'words.generated.status'}\"},\"table\":{\"active\":\"@.capitalize:{'words.generated.active'}\",\"device\":\"@.capitalize:{'words.generated.device'}\",\"first_seen\":\"@.capitalize:{'words.generated.first'} @:{'words.generated.seen'}\",\"last_seen\":\"@.capitalize:{'words.generated.last_2'} @:{'words.generated.seen'}\",\"route\":\"@.capitalize:{'words.generated.last_2'} route\"},\"title\":\"Systemstatus\",\"warnings\":{\"cpu_loadavg_fallback\":\"@:{'words.generated.cpu'} @:{'words.generated.usage'} @:{'words.generated.fell'} @:{'words.generated.back'} @:{'words.generated.to'} @:{'words.generated.load'} average @:{'words.generated.because'} /@:{'words.generated.proc'}/stat sampling @:{'words.generated.was'} @:{'words.generated.unavailable'}.\",\"cpu_unavailable\":\"@:{'words.generated.cpu'} @:{'words.generated.usage'} @:{'words.generated.metrics'} @:{'words.generated.are'} @:{'words.generated.unavailable'} @:{'words.generated.in'} @:{'words.generated.this'} @:{'words.generated.runtime'}.\",\"memory_proc_fallback\":\"@:{'words.generated.memory'} @:{'words.generated.usage'} @:{'words.generated.fell'} @:{'words.generated.back'} @:{'words.generated.to'} /@:{'words.generated.proc'}/meminfo @:{'words.generated.because'} cgroup limits @:{'words.generated.were'} @:{'words.generated.unavailable'}.\",\"memory_unavailable\":\"@:{'words.generated.memory'} @:{'words.generated.metrics'} @:{'words.generated.are'} @:{'words.generated.unavailable'} @:{'words.generated.in'} @:{'words.generated.this'} @:{'words.generated.runtime'}.\",\"minio_missing_buckets\":\"@:{'words.replication.services.minio'} @:{'words.generated.is'} reachable, @:{'words.generated.but'} @:{'words.generated.one'} @:{'words.generated.or'} @:{'words.generated.more'} @:{'words.generated.expected'} @:{'words.generated.buckets'} @:{'words.generated.are'} @:{'words.generated.missing'} @:{'words.generated.or'} inaccessible.\",\"modules_without_probes\":\"Some @:{'words.generated.modules'} expose @:{'words.generated.configuration'}-@:{'words.generated.only'} @:{'words.generated.status'} @:{'words.generated.because'} @:{'words.generated.no'} @:{'words.generated.safe'} @:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.probe'} exists: {modules}.\",\"redis_cache_bypass\":\"@:{'words.replication.services.redis'} @:{'words.generated.is'} @:{'words.generated.unavailable'}; @:{'words.generated.module'} @:{'words.generated.probe'} caching @:{'words.generated.is'} bypassed.\",\"redis_cache_lookup_failed\":\"@:{'words.replication.services.redis'} @:{'words.generated.cache'} @:{'words.generated.lookup'} @:{'words.generated.failed'} @:{'words.generated.for_2'} @:{'words.generated.module'} @:{'words.generated.probe'} {module}: {error}\",\"redis_cache_write_failed\":\"@:{'words.replication.services.redis'} @:{'words.generated.cache'} write @:{'words.generated.failed'} @:{'words.generated.for_2'} @:{'words.generated.module'} @:{'words.generated.probe'} {module}: {error}\"}},\"tables\":{\"actions\":\"@.capitalize:{'words.generated.actions'}\",\"bookings\":{\"booking_id_required\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.maste'} @:{'words.generated.ange'} @:{'words.generated.boknings'}-@.upper:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.slutfora'} @:{'words.generated.tvatten'} @:{'words.generated.utan'} @:{'words.generated.tvattcertifikat'}\",\"complete_wash_without_certificate\":\"@:{'words.generated.slutfor'} @:{'words.generated.tvatt'} @:{'words.generated.utan'} @:{'words.generated.tvattcertifikat'}\",\"complete_wash_without_certificate_prompt\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.boknings'}-@.upper:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.slutfora'} @:{'words.generated.tvatten'} @:{'words.generated.utan'} @:{'words.generated.tvattcertifikat'}\",\"create_order_from_booking\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.order'} @:{'words.generated.fran'} @:{'words.generated.bokning'}\",\"create_order_from_booking_confirm\":\"@:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.soker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.skapa'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.order'} @:{'words.generated.fran'} @:{'words.generated.bokningena'}\",\"customer_name\":\"@:{'templates.generated.compat.common.customer_name'}\",\"error_add_service\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.lagga'} @:{'words.generated.till'} @:{'words.generated.tjanst'}\",\"loading\":\"@:{'words.generated.laddar'} @:{'words.generated.bokning'}...\",\"no_registered\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.registered'}\",\"no_services_added\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.tjanster'} @:{'words.generated.tillagda'} @:{'words.generated.annu'}\",\"pickup_required\":\"Upphämtning @:{'words.generated.kravs'}?\",\"reg_tractor\":\"@.capitalize:{'words.generated.reg'}. Tractor\",\"reg_trailer\":\"@.capitalize:{'words.generated.reg'}. @.capitalize:{'words.generated.trailer'}\",\"vehicle_1\":\"@.capitalize:{'words.generated.fordon'} 1\",\"vehicle_2\":\"@.capitalize:{'words.generated.fordon'} 2\",\"wash\":\"@:{'templates.generated.compat.bookings_table.wash'}\",\"wash_certificate_type\":\"@.capitalize:{'words.generated.tvattcertifikat'} / @.capitalize:{'words.generated.typ'}\",\"wash_completed\":\"@.capitalize:{'words.generated.tvatten'} @:{'words.generated.har'} slutförts\",\"wash_desc\":\"Använd @:{'words.generated.vart'} @:{'words.generated.nationella'} @:{'words.generated.natverk'} @:{'words.generated.av'} tvätthallar @:{'words.generated.till'} @:{'words.generated.konkurrenskraftiga'} priser\",\"wash_performed\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.tvatt'} @:{'words.generated.har'} @:{'words.generated.utforts'} @:{'words.generated.pa'} @:{'words.generated.denna'} @:{'words.generated.bokning'}.\",\"wash_services\":\"@.capitalize:{'words.generated.tvattjanster'}\",\"wash_type\":\"@.capitalize:{'words.generated.tvatttyp'}\",\"wash_without_certificate\":\"@.capitalize:{'words.generated.denna'} @:{'words.generated.tvatt'} saknar @:{'words.generated.tvattcertifikat'}.\",\"yes\":\"@:{'words.generated.yes'}\"},\"categories\":{\"products_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.produkter'}\"},\"common\":{\"category\":\"@.capitalize:{'words.generated.kategori'}\",\"count\":\"@:{'words.generated.count'}\",\"default_price\":\"Standardpris\",\"department_price\":\"Avdelningspris\",\"discount_category\":\"@.capitalize:{'words.generated.rabatt'} (@:{'words.generated.kategori'})\",\"discount_item\":\"Discount (Item)\",\"end_time\":\"@.capitalize:{'words.generated.end'} @.capitalize:{'words.generated.time'}\",\"field\":\"@.capitalize:{'words.generated.field'}\",\"id\":\"@.upper:{'words.generated.id'}\",\"label\":\"Label\",\"last_seen\":\"@.capitalize:{'words.generated.last_2'} @.capitalize:{'words.generated.seen'}\",\"location\":\"@.capitalize:{'words.generated.plats'}\",\"name\":\"@.capitalize:{'words.generated.name'}\",\"phone\":\"@.capitalize:{'words.generated.phone'}\",\"price\":\"@.capitalize:{'words.generated.price'}\",\"price_changed_from\":\"@.capitalize:{'words.generated.price'} changed from {from} @:{'words.generated.dkk'} @:{'words.generated.to'} {to} @:{'words.generated.dkk'} / @:{'words.generated.unit'} ({total} @:{'words.generated.dkk'} @:{'words.generated.total'})\",\"price_dkk\":\"@.capitalize:{'words.generated.price'} (@:{'words.generated.dkk'})\",\"price_per_unit\":\"{price} @:{'words.generated.dkk'} / @:{'words.generated.unit'} ({total} @:{'words.generated.dkk'} @:{'words.generated.total'})\",\"product_id\":\"@.capitalize:{'words.generated.produkt'}-@.upper:{'words.generated.id'}\",\"product_name\":\"@.capitalize:{'words.generated.product'} @.capitalize:{'words.generated.name'}\",\"registration_number\":\"@.capitalize:{'words.generated.registration'} @.capitalize:{'words.generated.number'}\",\"serial_number\":\"Serial @.capitalize:{'words.generated.number'}\",\"start_time\":\"@.capitalize:{'words.generated.start'} @.capitalize:{'words.generated.time'}\",\"value\":\"@.capitalize:{'words.generated.value'}\",\"wash_item\":\"Tvättartikel\",\"website\":\"Website\"},\"economic\":{\"payment_terms\":\"Betalningsvillkor\"},\"in_total\":\"@:{'words.generated.in'} @:{'words.generated.total'}\",\"invoices\":{\"invoice_number\":\"@:{'templates.generated.compat.invoices.invoice_number'}\",\"overdue\":\"Overdue\"},\"notifications\":{\"read\":\"@.capitalize:{'words.generated.read'}\"},\"orders\":{\"historical_washes\":\"@.capitalize:{'words.generated.historiska'} @:{'words.generated.tvattar'}\",\"items\":\"@.capitalize:{'words.generated.items'}\"},\"pos\":{\"order_items\":\"@.capitalize:{'words.generated.order'} @.capitalize:{'words.generated.items'}\",\"possible_duplicates\":\"@:{'templates.generated.compat.global.possible_duplicates'}\",\"scanned_plates\":\"@.capitalize:{'words.generated.scanned'} @.capitalize:{'words.generated.plates'}\",\"sync_orders\":\"Sync @.capitalize:{'words.generated.orders'}\"},\"roles\":{\"permissions\":\"@.capitalize:{'words.generated.permissions'}\",\"users_count\":\"@.capitalize:{'words.generated.users'} @:{'words.generated.count'}\"},\"self_serve\":{\"condition_rules\":\"@.capitalize:{'words.generated.villkorsregler'}\",\"tasks\":\"@.capitalize:{'words.generated.tasks'}\",\"vehicle_conditions\":\"@.capitalize:{'words.generated.fordonsvillkor'}\"},\"showing\":\"@:{'templates.generated.compat.common.view'}\",\"stripe\":{\"terminals\":\"Terminals\"},\"time_bookings\":{\"hours\":\"@.capitalize:{'words.generated.timmar'}\"},\"users\":{\"last_login\":\"@.capitalize:{'words.generated.last_2'} @:{'words.generated.login'}\"},\"xlvask\":{\"create_order\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.order'}\",\"create_order_all\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.order'} @:{'words.generated.for'} @:{'words.generated.alla'} @:{'words.generated.tillampliga'}\",\"order_created\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.skapad'}\",\"usage_log_title\":\"@:{'words.generated.xlvask'} @.capitalize:{'words.generated.usage'} @.capitalize:{'words.generated.log'}\"}},\"time_booking_flow\":{\"all_info_looks_good\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.information'} @:{'words.generated.ser'} bra @:{'words.generated.ut'}! @.capitalize:{'words.generated.du'} @:{'words.generated.kan'} @:{'words.generated.nu'} @:{'words.generated.bekrafta'} @:{'words.generated.din'} @:{'words.generated.bokning'}.\",\"date_and_time\":\"@.capitalize:{'words.generated.date'} @:{'words.generated.and'} @:{'words.generated.time'}\",\"no_notifications_enabled\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.inte'} @:{'words.generated.aktiverat'} @:{'words.generated.aviseringar'} @:{'words.generated.for'} @:{'words.generated.din'} @:{'words.generated.bokning'}. @.capitalize:{'words.generated.du'} @:{'words.generated.kommer'} @:{'words.generated.inte'} @:{'words.generated.att'} @:{'words.generated.fa'} någon @:{'words.generated.bekraftelse'}, påminnelse @:{'words.generated.eller'} uppdatering @:{'words.generated.om'} @:{'words.generated.din'} @:{'words.generated.bokning'}.\",\"no_services_selected\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.tjanster'} @:{'words.generated.valda'}\",\"not_selected\":\"@.capitalize:{'words.generated.inte'} @:{'words.generated.vald'}\",\"not_specified\":\"@:{'templates.generated.compat.pagination.not_specified'}\",\"notifications_incomplete\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.aktiverat'} @:{'words.generated.aviseringar'} @:{'words.generated.men'} @:{'words.generated.inte'} fyllt @:{'words.generated.i'} @:{'words.generated.all'} nödvändig @:{'words.generated.information'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.ta'} @:{'words.generated.emot'} dem.\",\"notifications_will_be_sent_to\":\"@.capitalize:{'words.generated.aviseringar'} @:{'words.generated.skickas'} @:{'words.generated.till'}\",\"progress\":\"@.capitalize:{'words.generated.progress'} {current} / {total}\",\"select_services\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.tjanster'}\",\"selected_services\":\"@.capitalize:{'words.generated.valda'} @:{'words.generated.tjanster'}\",\"sms\":\"@:{'words.generated.sms'}\",\"step_of\":\"@.capitalize:{'words.generated.step'} {current} @:{'words.generated.of'} {total}\",\"step1_subtitle\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.fordonet'} @:{'words.generated.du'} @:{'words.generated.vill'} tidsboka @:{'words.generated.for'}\",\"step2_subtitle\":\"@.capitalize:{'words.generated.valj'} platsen @:{'words.generated.dar'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.fa'} @:{'words.generated.tjansten'} @:{'words.generated.utford'}\",\"step2_title\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.plats'}\",\"step3_subtitle\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.tjansten'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.fa'} @:{'words.generated.utford'}\",\"step3_title\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.tjanst'}\",\"step4_subtitle\":\"@.capitalize:{'words.generated.valj'} @:{'words.replication.article.host_mention'} @:{'words.generated.tid'} @:{'words.generated.som'} @:{'words.generated.passar'} @:{'words.generated.dig'} bäst\",\"step4_title\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.tid'}\",\"step5_subtitle\":\"@:{'words.generated.granska'} @:{'words.generated.och'} @:{'words.generated.bekrafta'} @:{'words.generated.din'} @:{'words.generated.bokning'}\",\"step5_title\":\"@:{'words.generated.confirm'} @:{'words.generated.booking'}\",\"update_notification_settings\":\"@.capitalize:{'words.generated.uppdatera'} @:{'words.generated.dina'} @:{'words.generated.aviseringsinstallningar'} @:{'words.generated.har_2'}.\",\"warning_email_not_set\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.aktiverat'} @:{'words.generated.e'}-@:{'words.generated.postaviseringar'} @:{'words.generated.men'} @:{'words.generated.inte'} @:{'words.generated.angett'} @:{'words.generated.kontakt'}-@:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.eller'} @:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.for'} @:{'words.generated.tvattcertifikat'}.\",\"warning_no_datetime\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.inte'} @:{'words.generated.valt'} @:{'words.generated.datum'} @:{'words.generated.och'} @:{'words.generated.tid'}.\",\"warning_no_location\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.inte'} @:{'words.generated.valt'} @:{'words.generated.plats'}.\",\"warning_no_registration\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.inte'} @:{'words.generated.angett'} @:{'words.generated.ett'} @:{'words.generated.registreringsnummer'}.\",\"warning_no_services\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.inte'} @:{'words.generated.valt'} @:{'words.generated.nagra'} @:{'words.generated.tjanster'}.\",\"warning_sms_not_set\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.aktiverat'} @:{'words.generated.sms'}-@:{'words.generated.aviseringar'} @:{'words.generated.men'} @:{'words.generated.inte'} @:{'words.generated.angett'} @:{'words.generated.ett'} @:{'words.generated.giltigt'} @:{'words.generated.telefonnummer'}.\"},\"time_bookings\":{\"add_reg_number\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.registration'} @:{'words.generated.number'}\",\"exterior_wash_for\":\"@:{'words.generated.exterior'} @:{'words.generated.wash'} @:{'words.generated.for_2'}\",\"insert_reg_numbers\":\"Insert relevant @:{'words.generated.registration'} @:{'words.generated.numbers'}\",\"interior_wash_for\":\"@.capitalize:{'words.generated.interior'} @:{'words.generated.wash'} @:{'words.generated.for_2'}\",\"next_week\":\"@:{'words.generated.next'} @:{'words.generated.week'}\",\"no_wash_services_available\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.tvattjanster'} @:{'words.generated.tillgangliga'} @:{'words.generated.for'} @:{'words.generated.detta'} @:{'words.generated.fordon'}.\",\"previous_week\":\"@.capitalize:{'words.generated.foregaende'} @:{'words.generated.vecka'}\",\"select_vehicle_type_first\":\"@.capitalize:{'words.generated.valj'} först @:{'words.replication.host_definite_suffix'} fordonstyp\",\"select_vehicle_type\":\"@:{'templates.generated.compat.self_wash.select_vehicle_type'}\",\"select_wash_hall\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.tvatthall'}\",\"tank_cleaning\":\"@.capitalize:{'words.generated.tank'} @.capitalize:{'words.generated.cleaning'}\",\"truck_wash\":\"@:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\",\"wash_services_for\":\"@.capitalize:{'words.generated.tvattjanster'} @:{'words.generated.for'}\",\"what_type_of_wash\":\"@.capitalize:{'words.generated.vilken'} @:{'words.generated.typ'} @:{'words.generated.av'} @:{'words.generated.tvatt'} @:{'words.generated.behover'} duo\",\"where_to_wash\":\"@.capitalize:{'words.generated.where'} @:{'words.generated.do'} @:{'words.generated.you'} want @:{'words.generated.to'} washi\"},\"time\":{\"ago\":\"@:{'words.generated.sedan'}\",\"end_date\":\"Sluttdato\",\"from_now\":\"@:{'words.generated.fran'} @:{'words.generated.nu'}\",\"just_now\":\"@:{'words.generated.just'} @:{'words.generated.nu'}\",\"last_month\":\"@:{'templates.generated.compat.global.text.last_month'}\",\"last_year\":\"@.capitalize:{'words.generated.forra'} @:{'words.generated.aret'}\",\"next_month\":\"@.capitalize:{'words.generated.nasta'} @:{'words.generated.manad'}\",\"next_week\":\"@.capitalize:{'words.generated.nasta'} @:{'words.generated.vecka'}\",\"next_year\":\"@.capitalize:{'words.generated.nasta'} @:{'words.generated.ar_2'}\",\"start_date\":\"Startdato\",\"this_year\":\"@.capitalize:{'words.generated.detta'} @:{'words.generated.ar_2'}\",\"today\":\"@:{'templates.generated.compat.common.today'}\",\"tomorrow\":\"@:{'templates.generated.compat.common.tomorrow'}\"},\"user_admin\":{\"currency\":\"Valuta\",\"cvr\":\"@:{'words.generated.cvr'}\",\"economic_data\":\"@:{'words.generated.economic'} @:{'words.generated.data'}\",\"group_id\":\"Gruppe @.upper:{'words.generated.id'}\",\"mass_data_inserter\":\"Massdatainmatare\",\"mobile_phone\":\"Mobiltelefon\",\"orders\":{\"draft_not_found\":\"@.capitalize:{'words.generated.det'} gick @:{'words.generated.inte'} @:{'words.generated.att'} @:{'words.generated.hitta'} @:{'words.generated.fakturautkastet'}. @:{'words.generated.ar'} @:{'words.generated.det'} fakturerat @:{'words.generated.eller'} borttaget @:{'words.generated.utanfor'} systemetä\",\"loading_subtitle\":\"@.capitalize:{'words.generated.vanta'} @:{'words.generated.medan'} @:{'words.generated.vi'} @:{'words.generated.laser'} @:{'words.generated.in'} @:{'words.generated.anvandardata'}\",\"loading_title\":\"@.capitalize:{'words.generated.laser'} @:{'words.generated.in'} @:{'words.generated.anvandardata'}\",\"transaction_history\":\"@:{'templates.generated.compat.superuser.nav.orders'}\"},\"other\":\"Andet\",\"overview\":{\"active_vehicles\":\"Aktiva fordon\",\"attributes\":\"Attribut\",\"connected\":\"Ansluten\",\"customer_management\":\"Kundhantering\",\"customer_number_required\":\"Ett kundnummer krävs innan kundinställningar kan hanteras.\",\"customer_rules\":\"Kundregler\",\"effective_access\":\"Effektiv åtkomst\",\"loaded\":\"Inläst\",\"load_failed\":\"Användardata kunde inte läsas in\",\"loading_user\":\"Läser in användare\",\"management_hub\":\"Administration\",\"missing\":\"Saknas\",\"more_permissions\":\"+{count} fler behörigheter\",\"no_subscription_transactions\":\"Inga tvättabonnemangstransaktioner är registrerade för kunden.\",\"not_invoiced\":\"Ej fakturerat\",\"open_draft\":\"Öppet utkast\",\"open_vehicles\":\"Öppna fordon\",\"price_overrides\":\"Prisöverskrivningar\",\"pricing\":\"Priser\",\"subscription_invoicing\":\"Abonnemangsfakturering\",\"subtitle\":\"Översikt över kunddata, åtkomst, priser, fordon och abonnemangsfakturering.\",\"vehicles_load_failed\":\"Fordon kunde inte läsas in.\",\"workspace_shortcuts\":\"Arbetsyta\"},\"permissions\":\"Tilladelser\",\"user_data\":\"Brugerdata\",\"user_id\":\"Användar-@.upper:{'words.generated.id'}\",\"variables\":\"Variabler\",\"wash_subscriptions\":\"Vaske @:{'words.generated.abonnement'}\"},\"user_bookings\":{\"my_vehicles\":\"@:{'templates.generated.compat.user_menu.my_vehicles'}\",\"select_vehicle_type_for\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.fordonstyp'} @:{'words.generated.for'} {registration}\",\"vehicle_reg_input\":\"@:{'words.generated.fordonets'} @:{'words.generated.registreringsnummer'}\"},\"user_dashboard\":{\"bookings\":{\"book_subtitle\":\"@:{'words.generated.book'} @:{'words.generated.a'} @:{'words.generated.new'} @:{'words.generated.wash'}\",\"book\":{\"basket\":\"Basket\",\"booking_confirmed\":\"@.capitalize:{'words.generated.bokning'} @:{'words.generated.bekraftad'}\",\"booking_confirmed_message\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.bokning'} @:{'words.generated.har'} bekräftats. @.capitalize:{'words.generated.du'} @:{'words.generated.kommer'} @:{'words.generated.att'} @:{'words.generated.fa'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.bekraftelse'} @:{'words.generated.via'} @:{'words.generated.e'}-@:{'words.generated.post'}.\",\"booking_failed\":\"@.capitalize:{'words.generated.bokning'} @:{'words.generated.misslyckades'}\",\"booking_failed_message\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.vid'} @:{'words.generated.bokning'}. @:{'words.generated.vanligen'} @:{'words.generated.forsok'} @:{'words.generated.igen'}.\",\"customer_not_found\":\"@.capitalize:{'words.generated.kundnummer'} @:{'words.generated.hittades'} @:{'words.generated.inte'}.\",\"enter_customer_number\":\"@:{'templates.generated.compat.self_wash.enter_customer_number'}\",\"enter_vehicle\":\"@.capitalize:{'words.generated.ange'} @:{'words.generated.fordon'}\",\"error_copied\":\"Felmeddelande kopierat @:{'words.generated.till'} @:{'words.generated.urklipp'}\",\"expected_date_time\":\"Förväntat @:{'words.generated.datum'} @:{'words.generated.och'} @:{'words.generated.tid'}\",\"exterior_wash\":\"Utvändig @:{'words.generated.tvatt'}\",\"go_to_confirmation\":\"@.capitalize:{'words.generated.go'} @:{'words.generated.to'} confirmation\",\"guest_info_html\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.gast'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.valja'} @:{'words.generated.avdelning'}, @:{'words.generated.registrering'} @:{'words.generated.och'} @:{'words.generated.tid'}. @.capitalize:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.skapa'} @:{'words.generated.bokningen'} @:{'words.generated.maste'} @:{'words.generated.du'} @:{'words.generated.logga'} @:{'words.generated.in'}.\",\"guest_mode_login_prompt\":\"@.capitalize:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.slutfora'} @:{'words.generated.din'} @:{'words.generated.bokning'} @:{'words.generated.maste'} @:{'words.generated.du'} @:{'words.generated.logga'} @:{'words.generated.in'} @:{'words.generated.pa'} @:{'words.generated.ditt'} @:{'words.generated.konto'}.\",\"guest_mode_warning\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.are'} @:{'words.generated.in'} @:{'words.generated.guest'} @:{'words.generated.mode'}.\",\"incl_pickup\":\"Incl. Pick-@.capitalize:{'words.generated.up'}\",\"interior_wash\":\"Invändig @:{'words.generated.tvatt'}\",\"is_this_your_vehicle\":\"@:{'words.generated.ar'} @:{'words.generated.detta'} @:{'words.generated.ett'} @:{'words.generated.av'} @:{'words.generated.dina'} @:{'words.generated.fordona'}\",\"login_for_products\":\"@.capitalize:{'words.generated.logga'} @:{'words.generated.in'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.valja'} @:{'words.generated.produkter'} @:{'words.generated.for'} @:{'words.generated.din'} @:{'words.generated.bokning'}.\",\"missing_fields\":\"Följande @:{'words.generated.falt'} @:{'words.generated.saknas'}:\",\"missing_valid_customer_number\":\"@.capitalize:{'words.generated.valid'} @:{'words.generated.customer'} @:{'words.generated.number'}\",\"missing_wash_hall\":\"@.capitalize:{'words.generated.tvatthall'}\",\"next_step_addons\":\"@.capitalize:{'words.generated.nasta'} @:{'words.generated.steg'}: @.capitalize:{'words.generated.valj'} @:{'words.generated.tillagg'}\",\"no_items_in_basket\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.artiklar'} @:{'words.generated.i'} korgen @:{'words.generated.annu'}\",\"product_selection_unavailable\":\"Produktval @:{'words.generated.ar'} @:{'words.generated.inte'} @:{'words.generated.tillgangligt'} @:{'words.generated.som'} @:{'words.generated.gast'}.\",\"select_a_wash_hall\":\"@.capitalize:{'words.generated.valj'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.tvatthall'}\",\"select_date_time_customer\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.datum'}/@:{'words.generated.tid'} @:{'words.generated.och'} @:{'words.generated.kundnummer'}\",\"select_department\":\"@:{'templates.generated.compat.nav.select_department'}\",\"select_products\":\"@:{'templates.generated.compat.pos.select_products'}\",\"select_vehicle\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.ett'} @:{'words.generated.fordon'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.se'} @:{'words.generated.tillgangliga'} @:{'words.generated.tillagg'}\",\"select_wash_hall\":\"@.capitalize:{'words.generated.valj'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.tvatthall'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.fortsatta'}\"},\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.your'} @:{'words.generated.bookings'}\",\"title\":\"@:{'words.generated.my'} @:{'words.generated.bookings'}\"},\"home\":{\"subtitle\":\"@.capitalize:{'words.generated.har_2'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.generated.dina'} @:{'words.generated.ordrar'}, @:{'words.generated.bokningar'} @:{'words.generated.och'} @:{'words.generated.fordon'}\"},\"invoices\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.dina'} @:{'words.generated.fakturor'}\",\"title\":\"@:{'words.generated.my'} @:{'words.generated.invoices'}\"},\"materials\":{\"subtitle\":\"@.capitalize:{'words.generated.see'} @:{'words.generated.your'} @:{'words.generated.materials'}\",\"title\":\"@:{'words.generated.my'} @:{'words.generated.materials'}\"},\"menu\":{\"statistics\":\"@.capitalize:{'words.generated.statistikk'}\"},\"orders\":{\"single_subtitle\":\"@.capitalize:{'words.generated.se'} transaktionsdetaljer\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.dina'} @:{'words.generated.tvattar'}\",\"title\":\"@:{'words.generated.my'} @:{'words.generated.washes'}\"},\"profile\":{\"default_department\":{\"description\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.standardavdelning'}\",\"title\":\"@.capitalize:{'words.generated.standardavdelning'}\"},\"driver\":{\"contact_description\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.kontaktinformation'} @:{'words.generated.som'} @:{'words.generated.forare'}\",\"contact_subtitle\":\"@.capitalize:{'words.generated.kontaktinformation'}\",\"country_code_desc\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.landskod'} @:{'words.generated.for'} @:{'words.generated.telefonnumret'}.\",\"customer_description\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.vilken'} @:{'words.generated.kund'} @:{'words.generated.du'} @:{'words.generated.vill'} agera @:{'words.generated.for'}.\",\"customer_subtitle\":\"Kundval\",\"customer_switch_help\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.forare'} @:{'words.generated.kan'} @:{'words.generated.du'} växla mellan @:{'words.generated.olika'} @:{'words.generated.kunder'} @:{'words.generated.som'} @:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.atkomst'} @:{'words.generated.till'}.\",\"edit_email\":\"@:{'words.generated.edit'} @:{'words.generated.email'}\",\"edit_name\":\"@:{'words.generated.edit'} @:{'words.generated.name'}\",\"name_desc\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.display'} @:{'words.generated.name'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.driver'}.\",\"phone_desc\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.phone'} @:{'words.generated.number'} @:{'words.generated.as'} @:{'words.generated.a'} @:{'words.generated.driver'}.\",\"profile_description\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.driver'} @:{'words.generated.information'}\",\"profile_subtitle\":\"@.capitalize:{'words.generated.profile'} @.capitalize:{'words.generated.information'}\",\"username_desc\":\"@.capitalize:{'words.generated.ditt'} @:{'words.generated.anvandarnamn'} @:{'words.generated.kan'} @:{'words.generated.inte'} ändras.\"},\"invoicing\":{\"account_name_desc\":\"@:{'words.generated.kundens'} kontonamn\",\"account_number_desc\":\"@:{'words.generated.kundens'} kontonummer\",\"description\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.fakturainformation'}\",\"title\":\"@.capitalize:{'words.generated.fakturainformation'}\"},\"microsoft_auth\":{\"create_event\":\"@.capitalize:{'words.generated.skapa'} händelse\",\"logged_in_as\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.are'} @:{'words.generated.logged'} @:{'words.generated.in'} @:{'words.generated.as'} {name}\",\"login\":\"@.capitalize:{'words.generated.log'} @:{'words.generated.in'} @:{'words.generated.with'} @:{'words.generated.microsoft'}\",\"not_logged_in\":\"@.capitalize:{'words.generated.you'} @:{'words.generated.are'} @:{'words.generated.not'} @:{'words.generated.logged'} @:{'words.generated.in'}\",\"title\":\"@:{'words.generated.microsoft'} @.capitalize:{'words.generated.authentication'}\"},\"microsoft\":{\"description\":\"@.capitalize:{'words.generated.your'} @:{'words.generated.microsoft'} @:{'words.generated.settings'}\",\"title\":\"@:{'words.generated.microsoft'}\"},\"notifications\":{\"booking_email\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.for_2'} @:{'words.generated.bookings'}\",\"booking_email_desc\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postadressen'} @:{'words.generated.som'} @:{'words.generated.for'} @:{'words.generated.bokningsbekraftelser'} @:{'words.generated.och'} @:{'words.generated.tvattcertifikat'}.\",\"description\":\"@.capitalize:{'words.generated.dina'} @:{'words.generated.aviseringsinstallningar'}\",\"email_notifications\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postaviseringar'}\",\"email_notifications_desc\":\"@.capitalize:{'words.generated.ta'} @:{'words.generated.emot'} @:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.med'} @:{'words.generated.bokningsbekraftelser'} @:{'words.generated.och'} @:{'words.generated.tvattcertifikat'}.\",\"sms_notifications_desc\":\"@.capitalize:{'words.generated.ta'} @:{'words.generated.emot'} @:{'words.generated.sms'}-@:{'words.generated.aviseringar'} @:{'words.generated.for'} @:{'words.generated.olika'} @:{'words.generated.handelser'}.\",\"sms_phone\":\"@.capitalize:{'words.generated.telefonnummer'} @:{'words.generated.for'} @:{'words.generated.sms'}-@:{'words.generated.aviseringar'}\",\"sms_phone_desc\":\"@.capitalize:{'words.generated.telefonnumret'} @:{'words.generated.som'} @:{'words.generated.for'} @:{'words.generated.sms'}-@:{'words.generated.aviseringar'}.\",\"superuser_notifications\":\"Superanvändaraviseringar\",\"superuser_notifications_desc\":\"Ta emot e-postaviseringar när en ny kund registrerar sig på sidan.\"},\"security\":{\"description\":\"@.capitalize:{'words.generated.dina'} säkerhetsinställningar\",\"email_desc\":\"@.capitalize:{'words.generated.vi'} @:{'words.generated.anvander'} @:{'words.generated.denna'} @:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.aterstalla'} @:{'words.generated.ditt'} @:{'words.generated.losenord'}, @:{'words.generated.skicka'} @:{'words.generated.tvattcertifikat'} @:{'words.generated.och'} @:{'words.generated.annan'} viktig @:{'words.generated.information'}.\"},\"title\":\"@.capitalize:{'words.generated.user'} @.capitalize:{'words.generated.profile'}\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.dina'} @:{'words.generated.installningar'}\"},\"sidebar\":{\"book\":\"@.capitalize:{'words.generated.boka'}\",\"logout\":\"@:{'templates.generated.compat.common.logout'}\"},\"vehicles\":{\"new_subtitle\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.ett'} @:{'words.generated.nytt'} @:{'words.generated.fordon'}\",\"single_title\":\"Mitt @:{'words.generated.fordon'}\",\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.dina'} @:{'words.generated.fordon'}\"},\"wash\":{\"nearest_department\":\"@.capitalize:{'words.generated.narmaste'} @:{'words.generated.avdelning'} @:{'words.generated.ar'} {name}, @:{'words.generated.som'} ligger cirka {distance} km @:{'words.generated.fran'} @:{'words.generated.din'} @:{'words.generated.nuvarande'} @:{'words.generated.plats'}.\",\"subtitle\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.ett'} @:{'words.generated.av'} @:{'words.generated.dina'} @:{'words.generated.fordon'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.starta'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.tvatt'}\"}},\"user_home\":{\"book_wash_desc\":\"@.capitalize:{'words.generated.boka'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.tvatt'} @:{'words.generated.pa'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.av'} @:{'words.generated.vara'} @:{'words.generated.avdelningar'} - @:{'words.generated.med'} @:{'words.generated.mojlighet'} @:{'words.generated.till'} @:{'words.generated.sakerhetsfarsegling'}.\",\"contact_info_or_email\":\"@:{'words.generated.or'} @:{'words.generated.email'}\",\"contact_info_prefix\":\"@.capitalize:{'words.generated.for_2'} problems contact @:{'words.generated.us'} @:{'words.generated.by'} @:{'words.generated.phone'}\",\"create_vehicle_desc\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.ett'} @:{'words.generated.fordon'} @:{'words.generated.som'} @:{'words.generated.ska'} kunna @:{'words.generated.tvatta'} @:{'words.generated.hos'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}.\",\"create_vehicle\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.fordon'}\",\"download_certificates_desc\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.ner'} @:{'words.generated.tvattcertifikat'} @:{'words.generated.for'} @:{'words.generated.dina'} @:{'words.generated.tidigare'} @:{'words.generated.tvattar'}.\",\"download_certificates\":\"@:{'templates.generated.compat.global.download_wash_certificate'}\",\"download_invoices_desc\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.ner'} @:{'words.generated.dina'} @:{'words.generated.tidigare'} @:{'words.generated.fakturor'}.\",\"download_invoices\":\"@.capitalize:{'words.generated.ladda'} @:{'words.generated.ner'} @:{'words.generated.fakturor'}\",\"empty_state_desc\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.inte'} @:{'words.generated.tillgang'} @:{'words.generated.till'} @:{'words.generated.nagra'} @:{'words.generated.genvagar'}. @.capitalize:{'words.generated.kontakta'} @:{'words.generated.din'} administratör @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.fa'} @:{'words.generated.behorigheter'}.\",\"empty_state_title\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.ser'} @:{'words.generated.tomt'} @:{'words.generated.ut'} @:{'words.generated.har_2'}\",\"select_customer_desc\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.underanvandare'} @:{'words.generated.maste'} @:{'words.generated.du'} @:{'words.generated.valja'} @:{'words.generated.vilken'} @:{'words.generated.kund'} @:{'words.generated.du'} @:{'words.generated.vill'} arbeta @:{'words.generated.for'}.\",\"select_customer\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.kund'}\",\"start_wash_desc\":\"@:{'words.generated.ga'} @:{'words.generated.direkt'} @:{'words.generated.till'} @:{'words.generated.avdelningens'} @:{'words.generated.tvattbanor'} @:{'words.generated.och'} @:{'words.generated.starta'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.tvatt'} @:{'words.generated.for'} @:{'words.generated.ditt'} @:{'words.generated.fordon'}. @.capitalize:{'words.generated.valj'} @:{'words.generated.ditt'} @:{'words.generated.fordon'} @:{'words.generated.och'} @:{'words.generated.onskad'} @:{'words.generated.tvatttyp'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.komma'} @:{'words.generated.igang'}.\"},\"user_menu\":{\"my_bookings\":\"@:{'words.generated.mina'} @:{'words.generated.bokningar'}\",\"my_invoices\":\"@:{'words.generated.my'} @.capitalize:{'words.generated.invoices'}\",\"my_vehicles\":\"@:{'words.generated.mina'} @:{'words.generated.fordon'}\",\"my_washes\":\"@:{'words.generated.my'} @.capitalize:{'words.generated.washes'}\"},\"user_navigation\":{\"back_to_own_user\":\"@.capitalize:{'words.generated.back'} @:{'words.generated.to'} own @:{'words.generated.user'}\",\"guest\":\"@.capitalize:{'words.generated.guest'}\",\"my_customer_page\":\"@:{'words.generated.my'} @:{'words.generated.customer'} @:{'words.generated.page'}\",\"my_profile\":\"@:{'words.generated.my'} @:{'words.generated.profile'}\"},\"user_notifications\":{\"mark_as_read_error\":\"@.capitalize:{'words.generated.ett'} @:{'words.generated.fel'} @:{'words.generated.uppstod'} @:{'words.generated.nar'} meddelandet markerades @:{'words.generated.som'} @:{'words.generated.last'}. @.capitalize:{'words.generated.forsok'} @:{'words.generated.igen'} @:{'words.generated.eller'} @:{'words.generated.kontakta'} @:{'words.generated.support'}.\"},\"user_vehicles\":{\"activate\":\"@:{'templates.generated.compat.settings.enable'}\",\"add_new_vehicle\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.nytt'} @:{'words.generated.fordon'}\",\"deactivate\":\"@:{'templates.generated.compat.settings.disable'}\",\"no_vehicle_type_configured\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.vogntype'} konfigureret\",\"reference_placeholder\":\"@.capitalize:{'words.generated.reference'} / Intern @:{'words.generated.nummer'}\",\"self_service_placeholder\":\"@:{'words.generated.platshallare'} @:{'words.generated.for'} @:{'words.generated.fordon'} @:{'words.generated.med'} @:{'words.generated.sjalvbetjaning'}\",\"self_service\":\"@.capitalize:{'words.generated.selvvask'}\",\"subscriptions_placeholder\":\"@:{'words.generated.platshallare'} @:{'words.generated.for'} @:{'words.generated.fordon'} @:{'words.generated.med'} @:{'words.generated.aktiva'} @:{'words.generated.tvattabonnemang'}\",\"vehicle_count_placeholder\":\"@:{'words.generated.platshallare'} @:{'words.generated.for'} @:{'words.generated.antal'} @:{'words.generated.fordon'}\",\"vehicles_with_self_service\":\"@.capitalize:{'words.generated.fordon'} @:{'words.generated.med'} @:{'words.generated.sjalvbetjaning'}\",\"vehicles_with_subscriptions\":\"@.capitalize:{'words.generated.fordon'} @:{'words.generated.med'} @:{'words.generated.aktiva'} @:{'words.generated.tvattabonnemang'}\",\"view_all_self_service\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.alla'} {count} @:{'words.generated.fordon'} @:{'words.generated.med'} @:{'words.generated.sjalvbetjaning'}\",\"view_all_subscriptions\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.alla'} {count} @:{'words.generated.fordon'} @:{'words.generated.med'} @:{'words.generated.aktiva'} @:{'words.generated.tvattabonnemang'}\",\"view_all_vehicles\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.alla'} {count} @:{'words.generated.fordon'}\",\"with_self_service\":\"@:{'words.generated.med'} @:{'words.generated.selvvask'}\",\"without_self_service\":\"uden @:{'words.generated.selvvask'}\"},\"validation\":{\"email\":\"@:{'words.generated.vanligen'} @:{'words.generated.ange'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.giltig'} @:{'words.generated.e'}-@:{'words.generated.postadress'}\",\"invalid\":\"@:{'words.generated.ogiltigt'} värde\",\"max_length\":\"@.capitalize:{'words.generated.far'} @:{'words.generated.inte'} @:{'words.generated.vara'} @:{'words.generated.mer'} @:{'words.generated.an_2'} {max} @:{'words.generated.tecken'}\",\"max\":\"Maks {max} @:{'words.generated.tegn'} tillatt\",\"min_length\":\"@.capitalize:{'words.generated.maste'} @:{'words.generated.vara'} @:{'words.generated.minst'} {min} @:{'words.generated.tecken'}\",\"min\":\"@.capitalize:{'words.generated.minst'} {min} @:{'words.generated.tegn'} påkrevd\",\"numeric\":\"@.capitalize:{'words.generated.maste'} @:{'words.generated.vara'} @:{'words.generated.ett'} @:{'words.generated.nummer'}\",\"password_confirmation\":\"Passordene stemmer @:{'words.generated.ikke'} overens\",\"password_match\":\"Lösenorden @:{'words.generated.matchar'} @:{'words.generated.inte'}\",\"password\":\"@.capitalize:{'words.generated.losenordet'} @:{'words.generated.maste'} @:{'words.generated.vara'} @:{'words.generated.minst'} 8 @:{'words.generated.tecken'}\",\"phone\":\"@:{'words.generated.vanligen'} @:{'words.generated.ange'} @:{'words.generated.ett'} @:{'words.generated.giltigt'} @:{'words.generated.telefonnummer'}\",\"required\":\"@.capitalize:{'words.generated.detta'} @:{'words.generated.falt'} @:{'words.generated.ar'} @:{'words.generated.obligatoriskt'}\"},\"vehicles\":{\"add\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.fordon'}\",\"add_modal\":{\"customer_label\":\"Kund\",\"customer_placeholder\":\"Sök efter kundnamn eller kundnummer\",\"error\":\"Det gick inte att lägga till fordon.\",\"no_customer_results\":\"Inga kunder hittades\",\"reference_placeholder\":\"Valfri referens\",\"registration_placeholder\":\"Registreringsnummer\",\"selected_customer\":\"Vald kund\",\"submit\":\"Lägg till fordon\",\"title\":\"Lägg till fordon\",\"type_load_error\":\"Det gick inte att läsa in fordonstyper.\",\"type_placeholder\":\"Välj fordonstyp\",\"validation_error\":\"Välj kund, registreringsnummer och fordonstyp.\"},\"brand\":\"Märke\",\"color\":\"Färg\",\"delete_vehicle\":\"@.capitalize:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.fordon'}\",\"delete\":\"@.capitalize:{'words.generated.radera'} @:{'words.generated.fordon'}\",\"edit\":\"@:{'words.generated.redigera'} @:{'words.generated.fordon'}\",\"model\":\"Modell\",\"new_vehicle\":\"@.capitalize:{'words.generated.nytt'} @:{'words.generated.fordon'}\",\"no_previous_washes\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.tidigare'} @:{'words.generated.tvattar'} @:{'words.generated.hittades'}\",\"no_vehicles\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.fordon'} @:{'words.generated.hittades'}\",\"owner\":\"Ägare\",\"previous_wash\":\"Forrige @:{'words.generated.vask'}\",\"previous_washes_count\":\"{count} @:{'words.generated.tidligere'} @:{'words.generated.vask'}\",\"previous_washes\":\"@.capitalize:{'words.generated.tidligere'} @:{'words.generated.vask'}\",\"search_placeholder\":\"@:{'words.generated.sok'} @:{'words.generated.efter'} @:{'words.generated.registreringsnummer'}, @:{'words.generated.typ'}, @:{'words.generated.kund'}\",\"search\":\"@:{'words.generated.sok'} @:{'words.generated.fordon'}...\",\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.fordon'}\",\"type\":\"@:{'templates.generated.compat.products.type'}\",\"types\":{\"bus\":\"Buss\",\"semi\":\"Dragbil\",\"tractor\":\"Traktor\",\"trailer\":\"Släpvagn\",\"truck\":\"Lastbil\",\"van\":\"Skåpbil\"},\"vehicle_types\":{\"box\":\"Kassebil\",\"car\":\"Personbil\",\"crew\":\"Mannskap\",\"semi\":\"@:{'templates.generated.compat.pos.vehicle_types.sættevogn'}\"},\"wash_history\":\"Tvätthistorik\"},\"xlvask\":{\"admin\":{\"customer_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.kunder'}\",\"fetch_customers\":\"@:{'words.generated.hent'} @:{'words.generated.kunder'}\",\"fetch_objects\":\"@:{'words.generated.hent'} @:{'words.generated.objekter'}\",\"object_count\":\"@.capitalize:{'words.generated.antal'} @:{'words.generated.objekter'}\",\"objects\":\"@.capitalize:{'words.generated.objekter'}\",\"subtitle\":\"@:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.handtere'} @:{'words.generated.xlvask'} @:{'words.generated.integrationen'}\",\"title\":\"@:{'words.generated.xlvask'} @:{'words.generated.administration'}\"}},\"limited_backoffice\":{\"title\":\"Backoffice\",\"subtitle\":\"@.capitalize:{'words.generated.hantera'} @:{'words.generated.avdelningspriser'} @:{'words.generated.och'} @:{'words.generated.medarbetaratkomst'}.\",\"department\":\"@.capitalize:{'words.generated.avdelning'}\",\"select_department\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.avdelning'}\",\"loading\":\"Laddar...\",\"no_departments\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.avdelningar'} @:{'words.generated.ar'} tillgängliga @:{'words.generated.for'} detta konto.\",\"cancel\":\"Avbryt\",\"nav\":{\"prices\":\"@.capitalize:{'words.generated.priser'}\",\"customer_pricing\":\"Kundpriser\",\"employees\":\"@.capitalize:{'words.generated.medarbetare'}\"},\"forbidden\":{\"title\":\"@.capitalize:{'words.generated.atkomst'} nekad\",\"department\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.inte'} @:{'words.generated.atkomst'} till @:{'words.generated.denna'} @:{'words.generated.avdelning'}.\"},\"prices\":{\"title\":\"@.capitalize:{'words.generated.avdelningspriser'}\",\"save\":\"@.capitalize:{'words.generated.spara'} @:{'words.generated.priser'}\",\"saved\":\"Priserna @:{'words.generated.har'} @:{'words.generated.sparats'}.\",\"autosave_saving\":\"Sparar priser...\",\"autosave_pending\":\"Prisandringar vantar.\",\"autosave_saved\":\"Alla prisandringar har sparats.\",\"product\":\"Produkt\",\"price\":\"Avdelningspris\",\"price_required\":\"@.capitalize:{'words.generated.alla'} @:{'words.generated.produkter'} @:{'words.generated.maste'} ha ett icke-negativt numeriskt pris.\",\"setup_required_title\":\"Prisinställning @:{'words.generated.kravs'}\",\"setup_required_message\":\"@.capitalize:{'words.replication.host_definite_suffix'} superuser @:{'words.generated.maste'} @:{'words.generated.skapa'} explicita @:{'words.generated.priser'} @:{'words.generated.for'} @:{'words.generated.alla'} @:{'words.generated.produkter'} @:{'words.generated.innan'} avdelningen @:{'words.generated.kan'} hanteras här.\",\"no_products\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.produkter'} @:{'words.generated.ar'} konfigurerade @:{'words.generated.for'} @:{'words.generated.denna'} @:{'words.generated.avdelning'}.\"},\"employees\":{\"title\":\"@.capitalize:{'words.generated.medarbetaratkomst'}\",\"subtitle\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.medarbetare'} @:{'words.generated.och'} tilldela @:{'words.replication.host_definite_suffix'} begränsad @:{'words.generated.roll'} @:{'words.generated.for'} dina @:{'words.generated.avdelningar'}.\",\"create_title\":\"@.capitalize:{'words.generated.skapa'} @:{'words.generated.medarbetare'}\",\"edit_title\":\"@:{'words.generated.redigera'} @:{'words.generated.medarbetare'}\",\"name\":\"Namn\",\"email\":\"E-post\",\"user_id\":\"Användar-ID\",\"phone\":\"Telefon\",\"phone_validation\":\"Telefonnumret måste vara 4-15 siffror.\",\"country_codes\":{\"denmark\":\"Danmark\",\"sweden\":\"Sverige\",\"norway\":\"Norge\",\"finland\":\"Finland\"},\"password\":\"@.capitalize:{'words.generated.losenord'}\",\"password_create_help\":\"@.capitalize:{'words.generated.kravs'} @:{'words.generated.for'} nya @:{'words.generated.medarbetare'}. Använd @:{'words.generated.minst'} 8 tecken.\",\"password_update_help\":\"Lämna tomt @:{'words.generated.for'} att behålla nuvarande @:{'words.generated.losenord'}.\",\"role\":\"@.capitalize:{'words.generated.roll'}\",\"departments\":\"@.capitalize:{'words.generated.avdelningar'}\",\"department_required\":\"@.capitalize:{'words.generated.valj'} @:{'words.generated.minst'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.avdelning'}.\",\"validation\":\"Fyll i de obligatoriska fälten @:{'words.generated.innan'} @:{'words.generated.du'} sparar.\",\"save\":\"@.capitalize:{'words.generated.spara'} @:{'words.generated.medarbetare'}\",\"created\":\"@.capitalize:{'words.generated.medarbetaren'} @:{'words.generated.har'} skapats.\",\"saved\":\"@.capitalize:{'words.generated.medarbetaren'} @:{'words.generated.har'} @:{'words.generated.sparats'}.\",\"deactivated\":\"@.capitalize:{'words.generated.medarbetaren'} @:{'words.generated.har'} inaktiverats.\",\"include_inactive\":\"Visa inaktiva\",\"empty\":\"@.capitalize:{'words.generated.inga'} @:{'words.generated.medarbetare'} hittades.\",\"status\":\"Status\",\"actions\":\"Åtgärder\",\"active\":\"Aktiv\",\"inactive\":\"Inaktiv\",\"edit\":\"@:{'words.generated.redigera'}\",\"deactivate\":\"@.capitalize:{'words.generated.inaktivera'}\",\"login_link\":\"QR-inloggning\",\"login_link_title\":\"Inloggningslänk för medarbetare\",\"login_link_qr_alt\":\"QR-kod för inloggningslänk\",\"login_link_url\":\"Inloggningslänk\",\"copy_login_link\":\"Kopiera länk\",\"login_link_copied\":\"Länken har kopierats.\"},\"roles\":{\"viewer\":{\"label\":\"Inaktiverad\",\"description\":\"Behåller medarbetaren registrerad utan åtkomst till order-, boknings- eller administrationsfunktioner.\"},\"cashier\":{\"label\":\"Kassör\",\"description\":\"@.capitalize:{'words.generated.kan'} arbeta med @:{'words.generated.order'}, orderrader @:{'words.generated.och'} @:{'words.generated.bokningar'} @:{'words.generated.for'} @:{'words.generated.tilldelade'} @:{'words.generated.avdelningar'}.\"},\"booking_coordinator\":{\"label\":\"Bokningskoordinator\",\"description\":\"@.capitalize:{'words.generated.kan'} @:{'words.generated.koordinera'} @:{'words.generated.bokningar'} @:{'words.generated.for'} @:{'words.generated.tilldelade'} @:{'words.generated.avdelningar'}.\"},\"operations_lead\":{\"label\":\"Driftansvarig\",\"description\":\"@.capitalize:{'words.generated.kan'} @:{'words.generated.koordinera'} @:{'words.generated.order'}, @:{'words.generated.bokningar'} @:{'words.generated.och'} driftvyer @:{'words.generated.for'} @:{'words.generated.tilldelade'} @:{'words.generated.avdelningar'}.\"},\"department_admin\":{\"label\":\"Avdelningsadministratör\",\"description\":\"@.capitalize:{'words.generated.kan'} @:{'words.generated.hantera'} begränsade @:{'words.generated.priser'} @:{'words.generated.och'} @:{'words.generated.medarbetaratkomst'} @:{'words.generated.for'} @:{'words.generated.tilldelade'} @:{'words.generated.avdelningar'}.\"}},\"errors\":{\"load_departments\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.ladda'} @:{'words.generated.avdelningar'}.\",\"load_prices\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.ladda'} @:{'words.generated.avdelningspriser'}.\",\"save_prices\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.spara'} @:{'words.generated.avdelningspriser'}.\",\"load_employees\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.ladda'} @:{'words.generated.medarbetare'}.\",\"save_employee\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.spara'} @:{'words.generated.medarbetaren'}.\",\"deactivate_employee\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.inaktivera'} @:{'words.generated.medarbetaren'}.\",\"generate_employee_login_link\":\"Kunde inte skapa inloggningslänk för medarbetaren.\"},\"role_permissions\":{\"title\":\"Rollbehörigheter\",\"tooltip\":\"Visa rollbehörigheter\",\"intro\":\"Roller samlar de exakta funktioner som tilldelas en medarbetare när rollen sparas.\",\"scope\":\"Alla funktioner är begränsade till de avdelningar som väljs för medarbetaren.\",\"selected\":\"Vald\",\"close\":\"Stäng\",\"unavailable\":\"Behörighetsdetaljer är inte tillgängliga för den här rollen förrän rollkatalogen har uppdaterats.\",\"groups\":{\"account\":\"Konto\",\"orders\":\"Order\",\"products\":\"Produkter\",\"customers\":\"Kunder\",\"vehicles\":\"Fordon\",\"attachments\":\"Bilagor\",\"scanner\":\"Skannrar\",\"bookings\":\"Bokningar\",\"time_bookings\":\"Tidsbokningar\",\"reports\":\"Rapporter\",\"limited_backoffice\":\"Backoffice\",\"unknown\":\"Övrigt\"},\"capabilities\":{\"sign_in\":{\"label\":\"Logga in\",\"description\":\"Ger medarbetaren möjlighet att logga in i Pleno.\"},\"view_own_permissions\":{\"label\":\"Se egna behörigheter\",\"description\":\"Visar medarbetaren vilka åtkomsträttigheter kontot har.\"},\"view_orders\":{\"label\":\"Se order\",\"description\":\"Kan öppna orderlistor och orderdetaljer för tilldelade avdelningar.\"},\"create_orders\":{\"label\":\"Skapa order\",\"description\":\"Kan skapa nya order för tilldelade avdelningar.\"},\"edit_orders\":{\"label\":\"Redigera order\",\"description\":\"Kan ändra orderdetaljer för tilldelade avdelningar.\"},\"delete_orders\":{\"label\":\"Ta bort order\",\"description\":\"Kan ta bort order i tilldelade avdelningar.\"},\"view_order_items\":{\"label\":\"Se orderrader\",\"description\":\"Kan se produkter, tjänster och priser på order.\"},\"create_order_items\":{\"label\":\"Skapa orderrader\",\"description\":\"Kan lägga till produkter och tjänster på order.\"},\"update_order_lines\":{\"label\":\"Redigera orderrader\",\"description\":\"Kan ändra produkter, antal och priser på order.\"},\"remove_order_lines\":{\"label\":\"Ta bort orderrader\",\"description\":\"Kan ta bort produkter och tjänster från order.\"},\"charge_orders\":{\"label\":\"Debitera order\",\"description\":\"Kan ta betalt eller debitera en betalningsreservation för en order.\"},\"complete_orders\":{\"label\":\"Slutför ordrar\",\"description\":\"Kan markera ordrar som slutförda.\"},\"view_product_catalog\":{\"label\":\"Visa produktkatalog\",\"description\":\"Kan läsa in POS-kategorier, produkter, priser och tillval.\"},\"view_product_recommendations\":{\"label\":\"Visa produktförslag\",\"description\":\"Kan se produktförslag baserade på ordrar och fordonsdata.\"},\"search_customers\":{\"label\":\"Sök kunder\",\"description\":\"Kan söka och välja kunder för POS-ordrar.\"},\"view_customer_details\":{\"label\":\"Visa kunduppgifter\",\"description\":\"Kan läsa in kunduppgifter från ett kundnummer.\"},\"view_customer_notes\":{\"label\":\"Visa kundanteckningar\",\"description\":\"Kan läsa kundanteckningar i POS.\"},\"add_customer_notes\":{\"label\":\"Lägg till kundanteckningar\",\"description\":\"Kan lägga till kundanteckningar från POS.\"},\"view_customer_flags\":{\"label\":\"Visa kundmarkeringar\",\"description\":\"Kan se kundmarkeringar som påverkar orderkrav och produktregler.\"},\"search_vehicles\":{\"label\":\"Sök fordon\",\"description\":\"Kan söka registreringsnummer och se fordonsstatus.\"},\"view_vehicle_matches\":{\"label\":\"Visa fordonsträffar\",\"description\":\"Kan se kundträffar för fordon och förslag på okända fordon.\"},\"view_vehicle_history\":{\"label\":\"Visa fordonshistorik\",\"description\":\"Kan se senaste orderhistorik för ett registreringsnummer.\"},\"view_order_attachments\":{\"label\":\"Visa orderbilagor\",\"description\":\"Kan lista bilagor på ordrar.\"},\"add_order_attachments\":{\"label\":\"Lägg till orderbilagor\",\"description\":\"Kan ladda upp filer och bifoga tvättcertifikat till ordrar.\"},\"download_order_attachments\":{\"label\":\"Ladda ner orderbilagor\",\"description\":\"Kan öppna och ladda ner orderbilagor.\"},\"view_plate_scans\":{\"label\":\"Visa nummerskyltsavläsningar\",\"description\":\"Kan se senaste nummerskyltsavläsningar och skannrar för tilldelade avdelningar.\"},\"view_department_bookings\":{\"label\":\"Se avdelningsbokningar\",\"description\":\"Kan se bokningar för tilldelade avdelningar.\"},\"view_own_bookings\":{\"label\":\"Se egna bokningar\",\"description\":\"Kan se bokningsantal och bokningar kopplade till medarbetarkontot.\"},\"update_bookings\":{\"label\":\"Redigera bokningar\",\"description\":\"Kan ändra tillåtna bokningsdetaljer.\"},\"create_bookings\":{\"label\":\"Skapa bokningar\",\"description\":\"Kan skapa nya bokningar för tilldelade avdelningar.\"},\"mark_bookings_complete\":{\"label\":\"Slutför bokningar\",\"description\":\"Kan markera bokningar som slutförda.\"},\"send_booking_confirmations\":{\"label\":\"Skicka bokningsbekräftelser igen\",\"description\":\"Kan skicka bokningsbekräftelser och slutförandemejl igen.\"},\"view_time_booking_entries\":{\"label\":\"Se tidsbokningar\",\"description\":\"Kan granska tidsbokningsposter för tilldelade avdelningar.\"},\"create_time_booking_entries\":{\"label\":\"Skapa tidsbokningar\",\"description\":\"Kan lägga till nya tidsbokningsposter.\"},\"edit_time_booking_entries\":{\"label\":\"Redigera tidsbokningar\",\"description\":\"Kan redigera tidsbokningsposter när backend-rutten stöder det.\"},\"view_order_statistics\":{\"label\":\"Se orderstatistik\",\"description\":\"Kan öppna orderstatistik för tilldelade avdelningar.\"},\"view_booking_statistics\":{\"label\":\"Se bokningsstatistik\",\"description\":\"Kan öppna bokningsstatistik för tilldelade avdelningar.\"},\"open_limited_backoffice\":{\"label\":\"Öppna begränsat backoffice\",\"description\":\"Kan öppna det begränsade backofficeområdet.\"},\"manage_department_prices\":{\"label\":\"Hantera avdelningspriser\",\"description\":\"Kan redigera uttryckliga priser för tilldelade avdelningar.\"},\"view_customer_pricing\":{\"label\":\"View customer pricing\",\"description\":\"Can view department-specific customer prices and discounts for assigned departments.\"},\"manage_customer_pricing\":{\"label\":\"Manage customer pricing\",\"description\":\"Can edit department-specific customer prices and discounts for assigned departments.\"},\"manage_employee_access\":{\"label\":\"Hantera medarbetaråtkomst\",\"description\":\"Kan skapa, redigera och inaktivera begränsade backofficemedarbetare.\"},\"unknown\":{\"label\":\"Extra funktion\",\"description\":\"Den här funktionen kommer från rollkatalogen men är ännu inte beskriven i gränssnittet.\"}}}}}}}");
const svV2 = {
  words: words$2,
  templates: templates$2,
};

const words$1 = /* #__PURE__ */ JSON.parse("{\"grammar\":{},\"actions\":{},\"entities\":{},\"statuses\":{},\"domain\":{},\"services\":{},\"units\":{},\"replication\":{\"article\":{\"host_mention\":\"den\"},\"adjective\":{\"primary_host_mention\":\"primären\"},\"host\":\"Host\",\"host_definite_suffix\":\"\",\"services\":{\"database\":\"Datenbank\",\"redis\":\"Redis\",\"minio\":\"MinIO\"}},\"generated\":{\"a\":\"a\",\"ab\":\"ab\",\"abbrechen\":\"abbrechen\",\"aber\":\"aber\",\"abgebrochen\":\"abgebrochen\",\"abgerufen\":\"abgerufen\",\"abgeschlossen\":\"abgeschlossen\",\"abgeschlossene\":\"Abgeschlossene\",\"abholung\":\"Abholung\",\"abonnement\":\"Abonnement\",\"abonnements\":\"Abonnements\",\"abrechnung\":\"Abrechnung\",\"abrufen\":\"abrufen\",\"abschlie\":\"abschlie\",\"absender\":\"Absender\",\"absenderidentit\":\"Absenderidentit\",\"abteilung\":\"Abteilung\",\"abteilungen\":\"Abteilungen\",\"abteilungs\":\"abteilungs\",\"abteilungskategorien\":\"Abteilungskategorien\",\"abteilungsname\":\"Abteilungsname\",\"abteilungsregel\":\"Abteilungsregel\",\"abteilungsrelais\":\"Abteilungsrelais\",\"abteilungsspuren\":\"Abteilungsspuren\",\"abteilungstor\":\"Abteilungstor\",\"abteilungstore\":\"Abteilungstore\",\"abteilungsvariablen\":\"Abteilungsvariablen\",\"abteilungsziele\":\"Abteilungsziele\",\"abteilungszuordnungen\":\"Abteilungszuordnungen\",\"abweichungen\":\"Abweichungen\",\"abzuschlie\":\"abzuschlie\",\"active\":\"active\",\"add\":\"add\",\"additional\":\"additional\",\"admin\":\"Admin\",\"administration\":\"administration\",\"administrator\":\"Administrator\",\"adresse\":\"Adresse\",\"afdelinger\":\"afdelinger\",\"agreement\":\"Agreement\",\"aktion\":\"Aktion\",\"aktionen\":\"Aktionen\",\"aktionsprotokolle\":\"Aktionsprotokolle\",\"aktive\":\"Aktive\",\"aktiven\":\"aktiven\",\"aktivieren\":\"aktivieren\",\"aktiviert\":\"aktiviert\",\"aktualisieren\":\"aktualisieren\",\"aktualisiert\":\"aktualisiert\",\"aktuell\":\"aktuell\",\"aktuellen\":\"aktuellen\",\"alert\":\"alert\",\"all\":\"all\",\"alle\":\"alle\",\"aller\":\"aller\",\"alles\":\"alles\",\"allgemeine\":\"Allgemeine\",\"allow\":\"allow\",\"already\":\"already\",\"als\":\"als\",\"am\":\"am\",\"an\":\"an\",\"and\":\"and\",\"andere\":\"andere\",\"anderen\":\"anderen\",\"anfrage\":\"Anfrage\",\"angeh\":\"angeh\",\"angemeldet\":\"angemeldet\",\"angezeigt\":\"angezeigt\",\"anh\":\"anh\",\"anhang\":\"Anhang\",\"anmelden\":\"anmelden\",\"anmeldung\":\"Anmeldung\",\"ansehen\":\"ansehen\",\"anteil\":\"Anteil\",\"antwort\":\"Antwort\",\"antworten\":\"Antworten\",\"anvandare\":\"användare\",\"anzahl\":\"Anzahl\",\"anzeigen\":\"anzeigen\",\"anzumelden\":\"anzumelden\",\"anzuzeigen\":\"anzuzeigen\",\"api\":\"API\",\"app\":\"App\",\"apply\":\"apply\",\"are\":\"are\",\"as\":\"as\",\"assign\":\"Assign\",\"at\":\"at\",\"attached\":\"attached\",\"au\":\"au\",\"auf\":\"auf\",\"aufbauen\":\"aufbauen\",\"aufgabe\":\"Aufgabe\",\"aufgaben\":\"Aufgaben\",\"aufgeteilt\":\"aufgeteilt\",\"aufgetreten\":\"aufgetreten\",\"aufheben\":\"aufheben\",\"aufnehmen\":\"aufnehmen\",\"aufteilen\":\"aufteilen\",\"auftr\":\"Auftr\",\"auftrag\":\"Auftrag\",\"auftrage\":\"Aufträge\",\"auftrags\":\"Auftrags\",\"auftragsbuchung\":\"Auftragsbuchung\",\"auftragsbuchungen\":\"Auftragsbuchungen\",\"auftragsdetails\":\"Auftragsdetails\",\"auftragserstellung\":\"Auftragserstellung\",\"auftragsnotiz\":\"Auftragsnotiz\",\"auftragsrechnungen\":\"Auftragsrechnungen\",\"auftragsverknupfung\":\"Auftragsverknüpfung\",\"aus\":\"aus\",\"ausblenden\":\"ausblenden\",\"ausf\":\"ausf\",\"ausgeblendet\":\"ausgeblendet\",\"ausgef\":\"ausgef\",\"ausgehende\":\"ausgehende\",\"ausgew\":\"ausgew\",\"ausgewaehlte\":\"ausgewaehlte\",\"ausgewaehlten\":\"Ausgewaehlten\",\"ausgewahlt\":\"ausgewählt\",\"ausgewahlter\":\"Ausgewählter\",\"ausstehende\":\"ausstehende\",\"ausw\":\"ausw\",\"auswahlen\":\"auswählen\",\"auszuw\":\"auszuw\",\"authentifizierung\":\"Authentifizierung\",\"authentifizierungs\":\"Authentifizierungs\",\"automatisch\":\"automatisch\",\"automatische\":\"Automatische\",\"automatischer\":\"automatischer\",\"available\":\"available\",\"avdelning\":\"avdelning\",\"abteilungspreise\":\"abteilungspreise\",\"back\":\"back\",\"backup\":\"Backup\",\"backups\":\"Backups\",\"be\":\"be\",\"beachten\":\"beachten\",\"beantwortet\":\"beantwortet\",\"bearbeiten\":\"bearbeiten\",\"bearbeitena\":\"Bearbeitena\",\"bearbeitung\":\"Bearbeitung\",\"bearbeitungsrechte\":\"Bearbeitungsrechte\",\"because\":\"because\",\"bedingung\":\"Bedingung\",\"bedingungen\":\"Bedingungen\",\"bedingungsregel\":\"Bedingungsregel\",\"bedingungsregeln\":\"Bedingungsregeln\",\"been\":\"been\",\"beendet\":\"beendet\",\"beginnen\":\"beginnen\",\"begrenzte\":\"begrenzte\",\"behalten\":\"behalten\",\"bei\":\"bei\",\"beibehalten\":\"beibehalten\",\"beim\":\"beim\",\"beleg\":\"Beleg\",\"beløp\":\"beløp\",\"ben\":\"ben\",\"benachrichtigungen\":\"Benachrichtigungen\",\"benachrichtigungseinstellungen\":\"Benachrichtigungseinstellungen\",\"benotigt\":\"benötigt\",\"benutzer\":\"Benutzer\",\"benutzerdaten\":\"Benutzerdaten\",\"benutzername\":\"Benutzername\",\"benutzerrabatt\":\"Benutzerrabatt\",\"ber\":\"ber\",\"berechtigungen\":\"Berechtigungen\",\"bereich\":\"Bereich\",\"berein\":\"berein\",\"bereit\":\"Bereit\",\"bereits\":\"bereits\",\"bergreifend\":\"bergreifend\",\"bericht\":\"Bericht\",\"berichte\":\"Berichte\",\"berpr\":\"berpr\",\"bersicht\":\"bersicht\",\"best\":\"best\",\"bestaetigen\":\"bestaetigen\",\"bestatigung\":\"Bestätigung\",\"bestatigungscode\":\"Bestätigungscode\",\"bestellung\":\"Bestellung\",\"beteiligten\":\"Beteiligten\",\"betrag\":\"Betrag\",\"betreuten\":\"betreuten\",\"bevor\":\"bevor\",\"bezahlen\":\"bezahlen\",\"bezahlt\":\"bezahlt\",\"bild\":\"Bild\",\"bilder\":\"Bilder\",\"bildschirm\":\"Bildschirm\",\"binary\":\"binary\",\"bis\":\"bis\",\"bitte\":\"bitte\",\"bleiben\":\"bleiben\",\"block\":\"Block\",\"blockers\":\"blockers\",\"booking\":\"booking\",\"branding\":\"branding\",\"browser\":\"Browser\",\"buchen\":\"buchen\",\"buchung\":\"Buchung\",\"buchungen\":\"Buchungen\",\"buchungs\":\"Buchungs\",\"buchungsarten\":\"Buchungsarten\",\"buchungsbest\":\"Buchungsbest\",\"buchungsinformationen\":\"Buchungsinformationen\",\"buchungsnummer\":\"Buchungsnummer\",\"buchungsportal\":\"Buchungsportal\",\"buchungstypen\":\"Buchungstypen\",\"bucket\":\"bucket\",\"buckets\":\"buckets\",\"but\":\"but\",\"by\":\"by\",\"bytes\":\"bytes\",\"cache\":\"cache\",\"caches\":\"Caches\",\"certificate\":\"certificate\",\"changes\":\"changes\",\"che\":\"che\",\"checked\":\"checked\",\"choose\":\"Choose\",\"chrome\":\"Chrome\",\"chste\":\"chste\",\"chster\":\"chster\",\"chten\":\"chten\",\"ck\":\"ck\",\"ckg\":\"ckg\",\"cksetzen\":\"cksetzen\",\"cleaning\":\"cleaning\",\"client\":\"Client\",\"clone\":\"Clone\",\"code\":\"Code\",\"collection\":\"collection\",\"collections\":\"collections\",\"company\":\"company\",\"complaint\":\"complaint\",\"complaints\":\"complaints\",\"complete\":\"complete\",\"completed\":\"completed\",\"compose\":\"compose\",\"configuration\":\"configuration\",\"configured\":\"configured\",\"confirmed\":\"confirmed\",\"connection\":\"connection\",\"connectivity\":\"connectivity\",\"conomic\":\"conomic\",\"contains\":\"contains\",\"could\":\"could\",\"cpu\":\"CPU\",\"create\":\"create\",\"created\":\"Created\",\"credentials\":\"credentials\",\"current\":\"current\",\"customer\":\"customer\",\"cvr\":\"CVR\",\"d\":\"D\",\"da\":\"da\",\"dadurch\":\"Dadurch\",\"dag\":\"dag\",\"daher\":\"daher\",\"danke\":\"Danke\",\"darf\":\"darf\",\"das\":\"das\",\"dashboard\":\"Dashboard\",\"dass\":\"dass\",\"data\":\"data\",\"database\":\"database\",\"datei\":\"Datei\",\"dateien\":\"Dateien\",\"daten\":\"Daten\",\"datum\":\"Datum\",\"deaktivieren\":\"deaktivieren\",\"deaktiviert\":\"deaktiviert\",\"dem\":\"dem\",\"department\":\"department\",\"departments\":\"departments\",\"der\":\"der\",\"derzeit\":\"derzeit\",\"des\":\"des\",\"destination\":\"destination\",\"details\":\"details\",\"device\":\"device\",\"diagnose\":\"Diagnose\",\"did\":\"did\",\"die\":\"die\",\"dies\":\"dies\",\"diese\":\"diese\",\"diesem\":\"diesem\",\"diesen\":\"diesen\",\"dieser\":\"dieser\",\"dieses\":\"dieses\",\"differs\":\"differs\",\"digitale\":\"digitale\",\"direkt\":\"direkt\",\"disabled\":\"disabled\",\"discounts\":\"discounts\",\"disponenten\":\"Disponenten\",\"dkk\":\"DKK\",\"docker\":\"docker\",\"does\":\"does\",\"draft\":\"draft\",\"drucken\":\"drucken\",\"duplikate\":\"Duplikate\",\"due\":\"Fällig\",\"duration\":\"duration\",\"durchgef\":\"durchgef\",\"durchschn\":\"Durchschn\",\"e\":\"e\",\"economic\":\"Economic\",\"edge\":\"Edge\",\"eigenen\":\"eigenen\",\"ein\":\"ein\",\"eine\":\"eine\",\"einem\":\"einem\",\"einen\":\"einen\",\"einer\":\"einer\",\"eines\":\"eines\",\"eingeben\":\"eingeben\",\"eingegeben\":\"eingegeben\",\"einheit\":\"Einheit\",\"einrichtung\":\"Einrichtung\",\"einschlie\":\"einschlie\",\"einstellungen\":\"Einstellungen\",\"email\":\"Email\",\"employee\":\"employee\",\"employees\":\"employees\",\"en\":\"en\",\"enable\":\"Enable\",\"enabled\":\"enabled\",\"end\":\"end\",\"endpoint\":\"endpoint\",\"enreinigung\":\"enreinigung\",\"enter\":\"Enter\",\"entfernen\":\"entfernen\",\"entfernt\":\"entfernt\",\"entire\":\"entire\",\"entit\":\"Entit\",\"entsprechen\":\"entsprechen\",\"entwurf\":\"Entwurf\",\"entwurfe\":\"Entwürfe\",\"entwurfskunden\":\"Entwurfskunden\",\"env\":\"env\",\"er\":\"er\",\"ereignisse\":\"Ereignisse\",\"erfassen\":\"erfassen\",\"erfasst\":\"erfasst\",\"erfolgreich\":\"erfolgreich\",\"erforderlich\":\"erforderlich\",\"ergebnis\":\"Ergebnis\",\"ergebnisse\":\"Ergebnisse\",\"erh\":\"erh\",\"erhalb\":\"erhalb\",\"erhalten\":\"erhalten\",\"erlaubt\":\"erlaubt\",\"erneut\":\"erneut\",\"erreichbar\":\"erreichbar\",\"error\":\"error\",\"erstellen\":\"erstellen\",\"erstellt\":\"erstellt\",\"erstellung\":\"Erstellung\",\"erwartet\":\"erwartet\",\"erweiterte\":\"Erweiterte\",\"es\":\"es\",\"exempt\":\"exempt\",\"exist\":\"exist\",\"existiert\":\"existiert\",\"expected\":\"expected\",\"export\":\"Export\",\"exportieren\":\"exportieren\",\"exportiert\":\"exportiert\",\"f\":\"f\",\"fahrer\":\"Fahrer\",\"fahrzeug\":\"Fahrzeug\",\"fahrzeugabonnements\":\"Fahrzeugabonnements\",\"fahrzeugbedingung\":\"Fahrzeugbedingung\",\"fahrzeugbedingungen\":\"Fahrzeugbedingungen\",\"fahrzeugdetails\":\"Fahrzeugdetails\",\"fahrzeuge\":\"Fahrzeuge\",\"fahrzeugkennzeichen\":\"Fahrzeugkennzeichen\",\"fahrzeugkunde\":\"Fahrzeugkunde\",\"fahrzeugkunden\":\"Fahrzeugkunden\",\"fahrzeugtyp\":\"Fahrzeugtyp\",\"fahrzeugtypen\":\"Fahrzeugtypen\",\"fahrzeugw\":\"Fahrzeugw\",\"failed\":\"failed\",\"faktor\":\"Faktor\",\"fakturiert\":\"fakturiert\",\"fallback\":\"fallback\",\"falsch\":\"falsch\",\"false\":\"false\",\"fee\":\"fee\",\"fehler\":\"Fehler\",\"fehlermeldung\":\"Fehlermeldung\",\"fehlgeschlagen\":\"fehlgeschlagen\",\"feld\":\"Feld\",\"fell\":\"fell\",\"fen\":\"fen\",\"fest\":\"fest\",\"festpreis\":\"Festpreis\",\"festpreisen\":\"Festpreisen\",\"festpreisvereinbarungen\":\"Festpreisvereinbarungen\",\"ffnen\":\"ffnen\",\"ffnungszeiten\":\"ffnungszeiten\",\"fill\":\"fill\",\"filter\":\"filter\",\"filtern\":\"filtern\",\"finden\":\"finden\",\"flag\":\"Flag\",\"folgen\":\"folgen\",\"for\":\"for\",\"fordon\":\"fordon\",\"formular\":\"Formular\",\"formulare\":\"Formulare\",\"forra\":\"Förra\",\"fortschritt\":\"Fortschritt\",\"fortzufahren\":\"fortzufahren\",\"found\":\"found\",\"fr\":\"fr\",\"frage\":\"Frage\",\"fragen\":\"Fragen\",\"free\":\"free\",\"from\":\"from\",\"fuer\":\"fuer\",\"fuge\":\"Füge\",\"fugen\":\"Fügen\",\"fullfør\":\"Fullfør\",\"funktion\":\"Funktion\",\"fur\":\"für\",\"fx\":\"FX\",\"fxratesapi\":\"FXRatesAPI\",\"g\":\"g\",\"ganzen\":\"ganzen\",\"gast\":\"Gast\",\"gastmodus\":\"Gastmodus\",\"gateway\":\"Gateway\",\"gateways\":\"Gateways\",\"gbar\":\"gbar\",\"gbare\":\"gbare\",\"ge\":\"ge\",\"geben\":\"geben\",\"gebucht\":\"gebucht\",\"gebuchte\":\"gebuchte\",\"gedruckt\":\"Gedrückt\",\"gefunden\":\"gefunden\",\"geheimnis\":\"Geheimnis\",\"gehen\":\"gehen\",\"gehoert\":\"gehoert\",\"gel\":\"gel\",\"geladen\":\"geladen\",\"gelesen\":\"gelesen\",\"geloscht\":\"gelöscht\",\"gemacht\":\"gemacht\",\"gen\":\"gen\",\"general\":\"General\",\"generate\":\"Generate\",\"generated\":\"generated\",\"ger\":\"Ger\",\"gerat\":\"Gerät\",\"gesammelte\":\"gesammelte\",\"gesamt\":\"gesamt\",\"gesamte\":\"Gesamte\",\"gesamtpreis\":\"Gesamtpreis\",\"gesch\":\"gesch\",\"geschlossen\":\"geschlossen\",\"geschutzt\":\"geschützt\",\"gesendet\":\"gesendet\",\"gesetzt\":\"gesetzt\",\"gespeichert\":\"gespeichert\",\"gespeicherten\":\"gespeicherten\",\"gestellt\":\"gestellt\",\"get\":\"Get\",\"getrennt\":\"getrennt\",\"gew\":\"gew\",\"gewechselt\":\"gewechselt\",\"gibt\":\"gibt\",\"gleiche\":\"gleiche\",\"gliche\":\"gliche\",\"glichen\":\"glichen\",\"glicherweise\":\"glicherweise\",\"google\":\"Google\",\"gr\":\"gr\",\"grant\":\"Grant\",\"grund\":\"Grund\",\"gruppe\":\"Gruppe\",\"gruppierte\":\"gruppierte\",\"gt\":\"gt\",\"gtid\":\"GTID\",\"haben\":\"haben\",\"halten\":\"halten\",\"has\":\"has\",\"hat\":\"hat\",\"have\":\"have\",\"heren\":\"heren\",\"herunter\":\"herunter\",\"herunterladen\":\"herunterladen\",\"heute\":\"heute\",\"heutigen\":\"Heutigen\",\"heutiger\":\"Heutiger\",\"hier\":\"hier\",\"higen\":\"higen\",\"hilfe\":\"Hilfe\",\"hinter\":\"hinter\",\"hinweis\":\"Hinweis\",\"hinzu\":\"hinzu\",\"hinzuf\":\"hinzuf\",\"hinzufugen\":\"hinzufügen\",\"hinzugef\":\"hinzugef\",\"hinzugefugt\":\"hinzugefügt\",\"hlen\":\"hlen\",\"hlt\":\"hlt\",\"hlte\":\"hlte\",\"hlten\":\"hlten\",\"hochladen\":\"hochladen\",\"home\":\"Home\",\"hr\":\"hr\",\"hren\":\"hren\",\"hrend\":\"hrend\",\"hrt\":\"hrt\",\"http\":\"HTTP\",\"id\":\"id\",\"ihnen\":\"Ihnen\",\"ihr\":\"Ihr\",\"ihre\":\"ihre\",\"ihrem\":\"Ihrem\",\"ihren\":\"Ihren\",\"ihrer\":\"Ihrer\",\"im\":\"im\",\"importieren\":\"importieren\",\"in\":\"in\",\"incomplete\":\"incomplete\",\"informationen\":\"Informationen\",\"inhalt\":\"Inhalt\",\"inkl\":\"inkl\",\"innvendig\":\"innvendig\",\"installation\":\"Installation\",\"installieren\":\"installieren\",\"installiert\":\"installiert\",\"installierte\":\"installierte\",\"integration\":\"integration\",\"integrationen\":\"Integrationen\",\"intent\":\"Intent\",\"interior\":\"interior\",\"invalid\":\"invalid\",\"invoice\":\"invoice\",\"invoices\":\"invoices\",\"io\":\"io\",\"iphone\":\"iPhone\",\"is\":\"is\",\"iso\":\"ISO\",\"ist\":\"ist\",\"it\":\"IT\",\"items\":\"items\",\"ja\":\"ja\",\"jahr\":\"Jahr\",\"jeder\":\"jeder\",\"jedoch\":\"jedoch\",\"jetzt\":\"jetzt\",\"json\":\"JSON\",\"k\":\"k\",\"kalender\":\"Kalender\",\"kamera\":\"Kamera\",\"kamerazugriff\":\"Kamerazugriff\",\"kann\":\"kann\",\"karte\":\"Karte\",\"kartenzahlung\":\"Kartenzahlung\",\"kategorie\":\"Kategorie\",\"kategorien\":\"Kategorien\",\"keep\":\"Keep\",\"kein\":\"kein\",\"keine\":\"keine\",\"keinen\":\"keinen\",\"kennz\":\"Kennz\",\"kennzeichen\":\"Kennzeichen\",\"kennzeichenscan\":\"Kennzeichenscan\",\"kennzeichenscanner\":\"Kennzeichenscanner\",\"kennzeichenscannern\":\"Kennzeichenscannern\",\"key\":\"key\",\"klick\":\"Klick\",\"klicken\":\"Klicken\",\"konfiguration\":\"Konfiguration\",\"konfigurieren\":\"konfigurieren\",\"konfiguriert\":\"konfiguriert\",\"konfigurierten\":\"konfigurierten\",\"konnte\":\"konnte\",\"konnten\":\"konnten\",\"kontakt\":\"Kontakt\",\"kontaktieren\":\"kontaktieren\",\"kontaktinformationen\":\"Kontaktinformationen\",\"konto\":\"Konto\",\"koordinieren\":\"koordinieren\",\"kopieren\":\"kopieren\",\"kopiert\":\"kopiert\",\"kreditkonto\":\"Kreditkonto\",\"kund\":\"kund\",\"kunde\":\"kunde\",\"kunden\":\"Kunden\",\"kundenname\":\"Kundenname\",\"kundennotizen\":\"Kundennotizen\",\"kundennummer\":\"Kundennummer\",\"kundenportal\":\"Kundenportal\",\"kundenpreise\":\"Kundenpreise\",\"kundenrechnung\":\"Kundenrechnung\",\"kundenwunsche\":\"Kundenwünsche\",\"kvitto\":\"kvitto\",\"l\":\"l\",\"laden\":\"laden\",\"land\":\"Land\",\"lang\":\"lang\",\"last\":\"last\",\"least\":\"least\",\"leer\":\"leer\",\"leeren\":\"leeren\",\"legacy\":\"Legacy\",\"legen\":\"Legen\",\"leistung\":\"Leistung\",\"leistungen\":\"Leistungen\",\"leiter\":\"Leiter\",\"leserzuverl\":\"Leserzuverl\",\"letzte\":\"letzte\",\"letzten\":\"letzten\",\"letzter\":\"Letzter\",\"limble\":\"Limble\",\"limit\":\"limit\",\"link\":\"link\",\"list\":\"List\",\"liste\":\"Liste\",\"lkw\":\"Lkw\",\"llt\":\"llt\",\"load\":\"load\",\"loading\":\"Loading\",\"logging\":\"logging\",\"lookup\":\"lookup\",\"loschen\":\"löschen\",\"lt\":\"lt\",\"ltig\":\"ltig\",\"ltige\":\"ltige\",\"ltiger\":\"ltiger\",\"m\":\"m\",\"machine\":\"machine\",\"mai\":\"Mai\",\"mail\":\"Mail\",\"mailersend\":\"Mailersend\",\"mailersend_mailersend\":\"MailerSend\",\"mails\":\"Mails\",\"managed\":\"managed\",\"manual\":\"Manual\",\"manuell\":\"manuell\",\"mariadb\":\"MariaDB\",\"markieren\":\"markieren\",\"maschine\":\"Maschine\",\"mehr\":\"mehr\",\"mehrere\":\"mehrere\",\"mein\":\"Mein\",\"meine\":\"Meine\",\"melden\":\"melden\",\"memory\":\"Memory\",\"menge\":\"Menge\",\"meta\":\"Meta\",\"metrics\":\"metrics\",\"microsoft\":\"Microsoft\",\"migration\":\"Migration\",\"mindestens\":\"mindestens\",\"minute\":\"minute\",\"minutes\":\"minutes\",\"missing\":\"missing\",\"mit\":\"mit\",\"mitarbeiter\":\"Mitarbeiter\",\"mitarbeiterzugriff\":\"mitarbeiterzugriff\",\"mochten\":\"möchten\",\"mode\":\"mode\",\"modul\":\"Modul\",\"module\":\"module\",\"modules\":\"modules\",\"monat\":\"Monat\",\"monate\":\"Monate\",\"monatlich\":\"monatlich\",\"monatliche\":\"monatliche\",\"month\":\"month\",\"monthly\":\"monthly\",\"months\":\"months\",\"motor\":\"Motor\",\"motorapi\":\"MotorAPI\",\"multiple\":\"multiple\",\"muss\":\"muss\",\"must\":\"must\",\"mwst\":\"MwSt\",\"mysql\":\"MySQL\",\"n\":\"n\",\"nach\":\"nach\",\"nachricht\":\"Nachricht\",\"nachtwaschen\":\"Nachtwäschen\",\"name\":\"name\",\"nasta\":\"Nästa\",\"nationales\":\"nationales\",\"ndern\":\"ndern\",\"ndert\":\"ndert\",\"nderungen\":\"nderungen\",\"ndervorwahl\":\"ndervorwahl\",\"nein\":\"nein\",\"netz\":\"Netz\",\"netzwerkfehler\":\"Netzwerkfehler\",\"neu\":\"neu\",\"neuaufbau\":\"Neuaufbau\",\"neue\":\"neue\",\"neuem\":\"neuem\",\"neuen\":\"neuen\",\"neuer\":\"neuer\",\"neues\":\"neues\",\"new\":\"new\",\"newer\":\"newer\",\"nge\":\"nge\",\"ngen\":\"ngen\",\"nger\":\"nger\",\"ngig\":\"ngig\",\"ngte\":\"ngte\",\"nicht\":\"nicht\",\"nichts\":\"nichts\",\"nnen\":\"nnen\",\"no\":\"no\",\"noch\":\"noch\",\"not\":\"not\",\"notiz\":\"Notiz\",\"nschte\":\"nschte\",\"number\":\"number\",\"numbers\":\"numbers\",\"nummer\":\"nummer\",\"nur\":\"nur\",\"nutzdaten\":\"Nutzdaten\",\"nutzen\":\"nutzen\",\"nutzungsprotokoll\":\"Nutzungsprotokoll\",\"ob\":\"ob\",\"oberflache\":\"Oberfläche\",\"objekt\":\"Objekt\",\"objekte\":\"Objekte\",\"occurred\":\"occurred\",\"oder\":\"oder\",\"oeffnen\":\"oeffnen\",\"of\":\"of\",\"offnen\":\"öffnen\",\"offnungszeiten\":\"Öffnungszeiten\",\"ohne\":\"ohne\",\"on\":\"on\",\"one\":\"one\",\"online\":\"online\",\"only\":\"only\",\"open\":\"Open\",\"openai\":\"OpenAI\",\"optional\":\"optional\",\"or\":\"or\",\"oracle\":\"Oracle\",\"order\":\"order\",\"orders\":\"orders\",\"page\":\"page\",\"passenden\":\"passenden\",\"passkey\":\"Passkey\",\"passkeys\":\"Passkeys\",\"passt\":\"passt\",\"password\":\"password\",\"passwort\":\"Passwort\",\"passworts\":\"Passworts\",\"payload\":\"payload\",\"payment\":\"Payment\",\"pdf\":\"PDF\",\"per\":\"per\",\"performen\":\"performen\",\"period\":\"period\",\"platzhalter\":\"Platzhalter\",\"pleno\":\"Pleno\",\"plugin\":\"plugin\",\"po\":\"PO\",\"populære\":\"Populære\",\"popup\":\"Popup\",\"port\":\"port\",\"portal\":\"Portal\",\"pos\":\"POS\",\"position\":\"position\",\"positionen\":\"Positionen\",\"post\":\"post\",\"pr\":\"pr\",\"preis\":\"Preis\",\"preise\":\"Preise\",\"preisen\":\"Preisen\",\"press\":\"Press\",\"prices\":\"prices\",\"pricing\":\"pricing\",\"primary\":\"primary\",\"pro\":\"pro\",\"probe\":\"probe\",\"proc\":\"proc\",\"processed\":\"Processed\",\"product\":\"product\",\"produkt\":\"produkt\",\"produkte\":\"Produkte\",\"produkten\":\"Produkten\",\"produkter\":\"produkter\",\"produktname\":\"Produktname\",\"produktoptionen\":\"Produktoptionen\",\"produktzus\":\"Produktzus\",\"profil\":\"Profil\",\"protokoll\":\"Protokoll\",\"provide\":\"Provide\",\"provision\":\"provision\",\"provisioning\":\"provisioning\",\"punktzahl\":\"Punktzahl\",\"qr\":\"QR\",\"quelle\":\"Quelle\",\"quellenmix\":\"Quellenmix\",\"r\":\"r\",\"rabatt\":\"rabatt\",\"radera\":\"Radera\",\"rates\":\"Rates\",\"read\":\"read\",\"recent\":\"recent\",\"rechnung\":\"Rechnung\",\"rechnungen\":\"Rechnungen\",\"rechnungs\":\"Rechnungs\",\"rechnungsentwurf\":\"Rechnungsentwurf\",\"rechnungsinformationen\":\"Rechnungsinformationen\",\"rechnungsnummer\":\"Rechnungsnummer\",\"rechnungssammlung\":\"Rechnungssammlung\",\"rechnungsstellung\":\"Rechnungsstellung\",\"rechnungssumme\":\"Rechnungssumme\",\"rechnungsvorlage\":\"Rechnungsvorlage\",\"recipient\":\"recipient\",\"reference\":\"reference\",\"referenz\":\"Referenz\",\"referenznummer\":\"Referenznummer\",\"refresh\":\"refresh\",\"regel\":\"Regel\",\"regeln\":\"Regeln\",\"registered\":\"registered\",\"registration\":\"registration\",\"registrieren\":\"registrieren\",\"registriert\":\"registriert\",\"registrierung\":\"Registrierung\",\"relæ\":\"relæ\",\"relais\":\"Relais\",\"relay\":\"relay\",\"released\":\"released\",\"relevanten\":\"relevanten\",\"removed\":\"removed\",\"rename\":\"umbenennen\",\"replica\":\"replica\",\"replicas\":\"replicas\",\"replication\":\"replication\",\"reports\":\"reports\",\"request\":\"request\",\"requests\":\"requests\",\"require\":\"Require\",\"required\":\"required\",\"requires\":\"requires\",\"response\":\"response\",\"restrict\":\"Restrict\",\"restricted\":\"restricted\",\"result\":\"result\",\"return\":\"return\",\"returned\":\"returned\",\"rinse\":\"rinse\",\"rolle\":\"rolle\",\"rollen\":\"Rollen\",\"ruckgangig\":\"rückgängig\",\"run\":\"run\",\"running\":\"running\",\"runtime\":\"runtime\",\"s\":\"s\",\"safari\":\"Safari\",\"safe\":\"safe\",\"safely\":\"safely\",\"same\":\"same\",\"sammeln\":\"sammeln\",\"save\":\"save\",\"scan\":\"Scan\",\"scannen\":\"scannen\",\"schaltfl\":\"schaltfl\",\"sche\":\"sche\",\"schema\":\"schema\",\"schen\":\"schen\",\"scher\":\"scher\",\"schl\":\"Schl\",\"schlie\":\"schlie\",\"schnell\":\"schnell\",\"schritt\":\"Schritt\",\"scht\":\"scht\",\"se\":\"Se\",\"search\":\"search\",\"secret\":\"Secret\",\"seed\":\"seed\",\"seeded\":\"seeded\",\"seen\":\"seen\",\"sehen\":\"sehen\",\"sein\":\"sein\",\"seite\":\"Seite\",\"sekunden\":\"Sekunden\",\"selbst\":\"selbst\",\"selbstbedienung\":\"Selbstbedienung\",\"selbstw\":\"Selbstw\",\"select\":\"select\",\"selected\":\"selected\",\"self\":\"Self\",\"selfservice\":\"Selfservice\",\"selvvask\":\"Selvvask\",\"send\":\"send\",\"senden\":\"senden\",\"separate\":\"separate\",\"serve\":\"serve\",\"server\":\"server\",\"serverfehler\":\"Serverfehler\",\"servers\":\"Servers\",\"service\":\"service\",\"services\":\"services\",\"sessions\":\"sessions\",\"settings\":\"settings\",\"setup\":\"setup\",\"shelly\":\"Shelly\",\"shift\":\"shift\",\"should\":\"should\",\"sich\":\"sich\",\"sicher\":\"sicher\",\"sichere\":\"sichere\",\"sicherheit\":\"Sicherheit\",\"sicherheitsplombe\":\"Sicherheitsplombe\",\"sichtbarkeit\":\"Sichtbarkeit\",\"sie\":\"sie\",\"sind\":\"sind\",\"skipped\":\"skipped\",\"slack\":\"Slack\",\"sms\":\"SMS\",\"smtp\":\"SMTP\",\"sobald\":\"sobald\",\"sofortige\":\"sofortige\",\"sok\":\"Sök\",\"soll\":\"soll\",\"sollte\":\"sollte\",\"sondervereinbarung\":\"Sondervereinbarung\",\"sondervereinbarungen\":\"Sondervereinbarungen\",\"sonstige\":\"Sonstige\",\"sortieren\":\"sortieren\",\"sortiert\":\"sortiert\",\"source\":\"source\",\"sowie\":\"sowie\",\"space\":\"space\",\"spater\":\"Später\",\"spediteure\":\"Spediteure\",\"speichern\":\"speichern\",\"split\":\"split\",\"spot\":\"spot\",\"spur\":\"Spur\",\"sql\":\"SQL\",\"ssel\":\"ssel\",\"ssen\":\"ssen\",\"standard\":\"Standard\",\"standardabteilung\":\"Standardabteilung\",\"standardwerte\":\"Standardwerte\",\"standort\":\"Standort\",\"start\":\"start\",\"starten\":\"starten\",\"statistik\":\"statistik\",\"statistikk\":\"statistikk\",\"status\":\"status\",\"stelligen\":\"stelligen\",\"stimmen\":\"stimmen\",\"stimmt\":\"stimmt\",\"store\":\"store\",\"stornieren\":\"stornieren\",\"storniert\":\"storniert\",\"stripe\":\"Stripe\",\"studio\":\"Studio\",\"stunden\":\"Stunden\",\"subscription\":\"subscription\",\"subuser\":\"Subuser\",\"successfully\":\"successfully\",\"suche\":\"Suche\",\"suchen\":\"suchen\",\"summe\":\"Summe\",\"summen\":\"Summen\",\"sungen\":\"sungen\",\"superuser\":\"Superuser\",\"support\":\"Support\",\"synchronisieren\":\"synchronisieren\",\"synchronisiert\":\"synchronisiert\",\"synchronisierung\":\"Synchronisierung\",\"system\":\"system\",\"systemkonfiguration\":\"Systemkonfiguration\",\"systems\":\"Systems\",\"systemsuch\":\"Systemsuch\",\"t\":\"t\",\"tab\":\"Tab\",\"tabelle\":\"Tabelle\",\"tables\":\"tables\",\"tablet\":\"Tablet\",\"tag\":\"Tag\",\"tagesbericht\":\"Tagesbericht\",\"tagesberichte\":\"Tagesberichte\",\"tank\":\"tank\",\"tankreinigung\":\"Tankreinigung\",\"target\":\"target\",\"team\":\"Team\",\"teilen\":\"Teilen\",\"telefon\":\"Telefon\",\"telefonnummer\":\"Telefonnummer\",\"telefonnummern\":\"Telefonnummern\",\"terminal\":\"Terminal\",\"terminals\":\"Terminals\",\"test\":\"test\",\"testen\":\"testen\",\"testmodus\":\"Testmodus\",\"the\":\"the\",\"this\":\"this\",\"thread\":\"thread\",\"tigen\":\"tigen\",\"tigt\":\"tigt\",\"tigung\":\"tigung\",\"tigungen\":\"tigungen\",\"tippen\":\"Tippen\",\"to\":\"to\",\"token\":\"Token\",\"top\":\"Top\",\"tor\":\"Tor\",\"tore\":\"Tore\",\"totalt\":\"Totalt\",\"transaktion\":\"Transaktion\",\"transaktionen\":\"Transaktionen\",\"transaktionsentwurf\":\"Transaktionsentwurf\",\"treffer\":\"Treffer\",\"trennen\":\"trennen\",\"treuepunkte\":\"Treuepunkte\",\"truck\":\"Truck\",\"truckwash\":\"truckwash\",\"true\":\"true\",\"tstypen\":\"tstypen\",\"typ\":\"Typ\",\"type\":\"type\",\"typen\":\"typen\",\"tze\":\"tze\",\"tzt\":\"tzt\",\"ubertragung\":\"Ubertragung\",\"ubertragungen\":\"Ubertragungen\",\"ueberein\":\"ueberein\",\"ufe\":\"ufe\",\"uft\":\"uft\",\"uhrzeit\":\"Uhrzeit\",\"um\":\"um\",\"umbenannt\":\"umbenannt\",\"umbenennen\":\"@:{'words.generated.rename'}\",\"umsatz\":\"Umsatz\",\"umweltgeb\":\"Umweltgeb\",\"unabhangig\":\"unabhängig\",\"unable\":\"Unable\",\"unavailable\":\"unavailable\",\"unbekannt\":\"Unbekannt\",\"unbekannter\":\"unbekannter\",\"und\":\"und\",\"unexpected\":\"unexpected\",\"ung\":\"Ung\",\"unique\":\"unique\",\"uns\":\"uns\",\"unser\":\"unser\",\"unsere\":\"unsere\",\"unserer\":\"unserer\",\"unten\":\"unten\",\"unter\":\"unter\",\"unterbenutzer\":\"Unterbenutzer\",\"unternehmen\":\"Unternehmen\",\"unterst\":\"unterst\",\"unterstutzt\":\"unterstützt\",\"up\":\"up\",\"url\":\"URL\",\"usage\":\"usage\",\"use\":\"use\",\"used\":\"used\",\"user\":\"User\",\"username\":\"username\",\"usw\":\"usw\",\"v2\":\"v2\",\"valid\":\"valid\",\"valj\":\"Välj\",\"value\":\"value\",\"vask\":\"Vask\",\"vat\":\"VAT\",\"vehicle\":\"vehicle\",\"veraltet\":\"veraltet\",\"veraltete\":\"veraltete\",\"verarbeiten\":\"verarbeiten\",\"verarbeitung\":\"Verarbeitung\",\"verbindung\":\"Verbindung\",\"verbindungseinstellungen\":\"Verbindungseinstellungen\",\"verf\":\"verf\",\"verfugbar\":\"verfügbar\",\"vergleich\":\"Vergleich\",\"vergleichen\":\"vergleichen\",\"vergleichsmonat\":\"Vergleichsmonat\",\"verk\":\"Verk\",\"verkauft\":\"verkauft\",\"verkaufte\":\"Verkaufte\",\"verkn\":\"Verkn\",\"verschiedene\":\"verschiedene\",\"verschl\":\"Verschl\",\"version\":\"version\",\"versuchen\":\"versuchen\",\"versucht\":\"versucht\",\"verteilung\":\"Verteilung\",\"verteilungsendpunkte\":\"Verteilungsendpunkte\",\"verteilungssummen\":\"Verteilungssummen\",\"verwalten\":\"verwalten\",\"verwaltungs\":\"Verwaltungs\",\"verwaltungsgeb\":\"Verwaltungsgeb\",\"verweigert\":\"verweigert\",\"verwenden\":\"verwenden\",\"verwendet\":\"verwendet\",\"via\":\"via\",\"view\":\"view\",\"violates\":\"violates\",\"virk\":\"Virk\",\"virkdata\":\"VirkData\",\"virkdata_virkdata\":\"Virkdata\",\"vision\":\"Vision\",\"vom\":\"vom\",\"von\":\"von\",\"vorherige\":\"vorherige\",\"vorheriger\":\"Vorheriger\",\"vorjahr\":\"Vorjahr\",\"vorschau\":\"Vorschau\",\"w\":\"w\",\"waehlen\":\"Waehlen\",\"wahlen\":\"wählen\",\"wahr\":\"wahr\",\"war\":\"war\",\"warenkorb\":\"Warenkorb\",\"warnungen\":\"Warnungen\",\"warten\":\"warten\",\"warteschlange\":\"Warteschlange\",\"wartet\":\"Wartet\",\"was\":\"was\",\"waschabonnement\":\"Waschabonnement\",\"waschabonnements\":\"Waschabonnements\",\"waschart\":\"Waschart\",\"wasche\":\"Wäsche\",\"waschen\":\"waschen\",\"waschen_2\":\"Wäschen\",\"waschhalle\":\"Waschhalle\",\"waschhallen\":\"Waschhallen\",\"waschhallenbetreiber\":\"Waschhallenbetreiber\",\"waschleistungen\":\"Waschleistungen\",\"waschprotokoll\":\"Waschprotokoll\",\"waschspuren\":\"Waschspuren\",\"waschzertifikat\":\"Waschzertifikat\",\"waschzertifikate\":\"Waschzertifikate\",\"waschzertifikats\":\"Waschzertifikats\",\"wash\":\"wash\",\"wasserverbrauch\":\"Wasserverbrauch\",\"webhook\":\"webhook\",\"webhooks\":\"Webhooks\",\"wechselkurse\":\"Wechselkurse\",\"weeks\":\"weeks\",\"weiter\":\"weiter\",\"weitere\":\"weitere\",\"weiteren\":\"weiteren\",\"weiterhin\":\"weiterhin\",\"welche\":\"Welche\",\"welchen\":\"welchen\",\"weniger\":\"weniger\",\"wenn\":\"wenn\",\"werden\":\"werden\",\"were\":\"were\",\"wert\":\"Wert\",\"wettbewerbsf\":\"wettbewerbsf\",\"while\":\"while\",\"wie\":\"wie\",\"wiederherzustellen\":\"wiederherzustellen\",\"will\":\"will\",\"willkommen\":\"Willkommen\",\"wir\":\"wir\",\"wird\":\"wird\",\"with\":\"with\",\"woche\":\"Woche\",\"word_00z\":\"00Z\",\"workfeed\":\"Workfeed\",\"wurde\":\"wurde\",\"wurden\":\"wurden\",\"x\":\"x\",\"xl\":\"XL\",\"xlvask\":\"XLVask\",\"xlvask_xlvask\":\"Xlvask\",\"years\":\"years\",\"yes\":\"Yes\",\"zahlung\":\"Zahlung\",\"zahlungen\":\"Zahlungen\",\"zahlungs\":\"Zahlungs\",\"zahlungsart\":\"Zahlungsart\",\"zahlungsbedingungen\":\"Zahlungsbedingungen\",\"zahlungskarte\":\"Zahlungskarte\",\"zahlungslink\":\"Zahlungslink\",\"zahlungsstatus\":\"Zahlungsstatus\",\"zeichen\":\"Zeichen\",\"zeigt\":\"Zeigt\",\"zeilen\":\"Zeilen\",\"zeilenmodus\":\"Zeilenmodus\",\"zeit\":\"zeit\",\"zeitbuchung\":\"Zeitbuchung\",\"zeitbuchungen\":\"Zeitbuchungen\",\"zeitraum\":\"Zeitraum\",\"zeitverlauf\":\"Zeitverlauf\",\"ziel\":\"Ziel\",\"ziele\":\"Ziele\",\"zielfortschritt\":\"Zielfortschritt\",\"zu\":\"zu\",\"zuerst\":\"zuerst\",\"zugang\":\"Zugang\",\"zugangscode\":\"Zugangscode\",\"zugewiesene\":\"zugewiesene\",\"zugmaschine\":\"Zugmaschine\",\"zugriff\":\"Zugriff\",\"zuletzt\":\"Zuletzt\",\"zum\":\"zum\",\"zuordnung\":\"Zuordnung\",\"zur\":\"zur\",\"zuruck\":\"Zurück\",\"zurucksetzen\":\"zurücksetzen\",\"zus\":\"zus\",\"zusammenfassung\":\"Zusammenfassung\",\"zusatz\":\"Zusatz\",\"zusatzartikel\":\"Zusatzartikel\",\"zusatzliche\":\"zusätzliche\",\"zusatzoptionen\":\"Zusatzoptionen\",\"zwangsweise\":\"zwangsweise\",\"zwei\":\"Zwei\",\"zwischenablage\":\"Zwischenablage\"}}");
const templates$1 = /* #__PURE__ */ JSON.parse("{\"support\":{\"title\":\"Support\",\"meta_description\":\"Support- und Kontaktinformationen fuer Truck Wash.\",\"eyebrow\":\"Truck Wash\",\"intro\":\"Kontaktieren Sie uns, wenn Sie Hilfe bei Buchungen, Selbstbedienungswaesche, Zahlungen oder dem Zugang zum Kundenportal benoetigen.\",\"contact_title\":\"Kontakt\",\"email_label\":\"E-Mail\",\"phone_label\":\"Telefon\",\"company_label\":\"Unternehmen\",\"help_title\":\"Wir helfen bei\",\"help_booking\":\"Buchung und Aenderung von Waschzeiten.\",\"help_self_wash\":\"Start und Abschluss von Selbstbedienungswaeschen.\",\"help_payments\":\"Bestellungen, Rechnungen und Kartenzahlungen.\",\"help_account\":\"Login, Zugriff und Fahrzeuge in Ihrem Konto.\",\"privacy_prefix\":\"Lesen Sie auch unsere\",\"privacy_link\":\"Datenschutzerklaerung\",\"privacy_suffix\":\"fuer Informationen zu Daten und Rechten.\"},\"common\":{\"step_of\":\"@:{'words.generated.schritt'} {current} @:{'words.generated.von'} {total}\",\"page_of\":\"@:{'words.generated.seite'} {current} @:{'words.generated.von'} {total}\",\"selected_count\":\"{count} @:{'words.generated.ausgewahlt'}\",\"no_items\":\"@.capitalize:{'words.generated.keine'} {entity}\",\"select_entity\":\"{entity} @:{'words.generated.auswahlen'}\",\"create_entity\":\"{entity} @:{'words.generated.erstellen'}\",\"edit_entity\":\"{entity} @:{'words.generated.bearbeiten'}\",\"delete_entity\":\"{entity} @:{'words.generated.loschen'}\",\"confirm_delete_entity\":\"@.capitalize:{'words.generated.mochten'} @.capitalize:{'words.generated.sie'} {entity} wirklich @:{'words.generated.loschen'}?\",\"field_required\":\"{field} @:{'words.generated.ist'} @:{'words.generated.erforderlich'}\",\"no_entity_available\":\"@.capitalize:{'words.generated.keine'} {entity} @:{'words.generated.verfugbar'}.\"},\"limited_backoffice\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.title'}\",\"subtitle\":\"@:{'templates.generated.compat.limited_backoffice.subtitle'}\",\"department\":\"@:{'templates.generated.compat.limited_backoffice.department'}\",\"select_department\":\"@:{'templates.generated.compat.limited_backoffice.select_department'}\",\"loading\":\"@:{'templates.generated.compat.limited_backoffice.loading'}\",\"no_departments\":\"@:{'templates.generated.compat.limited_backoffice.no_departments'}\",\"cancel\":\"@:{'templates.generated.compat.limited_backoffice.cancel'}\",\"nav\":{\"prices\":\"@:{'templates.generated.compat.limited_backoffice.nav.prices'}\",\"customer_pricing\":\"@:{'templates.generated.compat.limited_backoffice.nav.customer_pricing'}\",\"employees\":\"@:{'templates.generated.compat.limited_backoffice.nav.employees'}\"},\"forbidden\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.forbidden.title'}\",\"department\":\"@:{'templates.generated.compat.limited_backoffice.forbidden.department'}\"},\"prices\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.prices.title'}\",\"save\":\"@:{'templates.generated.compat.limited_backoffice.prices.save'}\",\"saved\":\"@:{'templates.generated.compat.limited_backoffice.prices.saved'}\",\"autosave_saving\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_saving'}\",\"autosave_pending\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_pending'}\",\"autosave_saved\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_saved'}\",\"product\":\"@:{'templates.generated.compat.limited_backoffice.prices.product'}\",\"price\":\"@:{'templates.generated.compat.limited_backoffice.prices.price'}\",\"price_required\":\"@:{'templates.generated.compat.limited_backoffice.prices.price_required'}\",\"setup_required_title\":\"@:{'templates.generated.compat.limited_backoffice.prices.setup_required_title'}\",\"setup_required_message\":\"@:{'templates.generated.compat.limited_backoffice.prices.setup_required_message'}\",\"no_products\":\"@:{'templates.generated.compat.limited_backoffice.prices.no_products'}\"},\"employees\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.employees.title'}\",\"subtitle\":\"@:{'templates.generated.compat.limited_backoffice.employees.subtitle'}\",\"create_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.create_title'}\",\"edit_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.edit_title'}\",\"name\":\"@:{'templates.generated.compat.limited_backoffice.employees.name'}\",\"email\":\"@:{'templates.generated.compat.limited_backoffice.employees.email'}\",\"user_id\":\"@:{'templates.generated.compat.limited_backoffice.employees.user_id'}\",\"phone\":\"@:{'templates.generated.compat.limited_backoffice.employees.phone'}\",\"phone_validation\":\"@:{'templates.generated.compat.limited_backoffice.employees.phone_validation'}\",\"country_codes\":{\"denmark\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.denmark'}\",\"sweden\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.sweden'}\",\"norway\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.norway'}\",\"finland\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.finland'}\"},\"password\":\"@:{'templates.generated.compat.limited_backoffice.employees.password'}\",\"password_create_help\":\"@:{'templates.generated.compat.limited_backoffice.employees.password_create_help'}\",\"password_update_help\":\"@:{'templates.generated.compat.limited_backoffice.employees.password_update_help'}\",\"role\":\"@:{'templates.generated.compat.limited_backoffice.employees.role'}\",\"departments\":\"@:{'templates.generated.compat.limited_backoffice.employees.departments'}\",\"department_required\":\"@:{'templates.generated.compat.limited_backoffice.employees.department_required'}\",\"validation\":\"@:{'templates.generated.compat.limited_backoffice.employees.validation'}\",\"save\":\"@:{'templates.generated.compat.limited_backoffice.employees.save'}\",\"created\":\"@:{'templates.generated.compat.limited_backoffice.employees.created'}\",\"saved\":\"@:{'templates.generated.compat.limited_backoffice.employees.saved'}\",\"deactivated\":\"@:{'templates.generated.compat.limited_backoffice.employees.deactivated'}\",\"include_inactive\":\"@:{'templates.generated.compat.limited_backoffice.employees.include_inactive'}\",\"empty\":\"@:{'templates.generated.compat.limited_backoffice.employees.empty'}\",\"status\":\"@:{'templates.generated.compat.limited_backoffice.employees.status'}\",\"actions\":\"@:{'templates.generated.compat.limited_backoffice.employees.actions'}\",\"active\":\"@:{'templates.generated.compat.limited_backoffice.employees.active'}\",\"inactive\":\"@:{'templates.generated.compat.limited_backoffice.employees.inactive'}\",\"edit\":\"@:{'templates.generated.compat.limited_backoffice.employees.edit'}\",\"deactivate\":\"@:{'templates.generated.compat.limited_backoffice.employees.deactivate'}\",\"login_link\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link'}\",\"login_link_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_title'}\",\"login_link_qr_alt\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_qr_alt'}\",\"login_link_url\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_url'}\",\"copy_login_link\":\"@:{'templates.generated.compat.limited_backoffice.employees.copy_login_link'}\",\"login_link_copied\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_copied'}\"},\"roles\":{\"viewer\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.viewer.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.viewer.description'}\"},\"cashier\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.cashier.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.cashier.description'}\"},\"booking_coordinator\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.booking_coordinator.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.booking_coordinator.description'}\"},\"operations_lead\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.operations_lead.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.operations_lead.description'}\"},\"department_admin\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.department_admin.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.department_admin.description'}\"}},\"errors\":{\"load_departments\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_departments'}\",\"load_prices\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_prices'}\",\"save_prices\":\"@:{'templates.generated.compat.limited_backoffice.errors.save_prices'}\",\"load_employees\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}\",\"save_employee\":\"@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}\",\"deactivate_employee\":\"@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}\",\"generate_employee_login_link\":\"@:{'templates.generated.compat.limited_backoffice.errors.generate_employee_login_link'}\"},\"role_permissions\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.title'}\",\"tooltip\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.tooltip'}\",\"intro\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.intro'}\",\"scope\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.scope'}\",\"selected\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.selected'}\",\"close\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.close'}\",\"unavailable\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.unavailable'}\",\"groups\":{\"account\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.account'}\",\"orders\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.orders'}\",\"products\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.products'}\",\"customers\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.customers'}\",\"vehicles\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.vehicles'}\",\"attachments\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.attachments'}\",\"scanner\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.scanner'}\",\"bookings\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.bookings'}\",\"time_bookings\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.time_bookings'}\",\"reports\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.reports'}\",\"limited_backoffice\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}\",\"unknown\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.unknown'}\"},\"capabilities\":{\"sign_in\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}\"},\"view_own_permissions\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}\"},\"view_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}\"},\"create_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}\"},\"edit_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}\"},\"delete_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}\"},\"view_order_items\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}\"},\"create_order_items\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}\"},\"update_order_lines\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}\"},\"remove_order_lines\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}\"},\"charge_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}\"},\"complete_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.complete_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.complete_orders.description'}\"},\"view_product_catalog\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_catalog.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_catalog.description'}\"},\"view_product_recommendations\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_recommendations.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_recommendations.description'}\"},\"search_customers\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_customers.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_customers.description'}\"},\"view_customer_details\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_details.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_details.description'}\"},\"view_customer_notes\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_notes.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_notes.description'}\"},\"add_customer_notes\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_customer_notes.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_customer_notes.description'}\"},\"view_customer_flags\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_flags.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_flags.description'}\"},\"search_vehicles\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_vehicles.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_vehicles.description'}\"},\"view_vehicle_matches\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_matches.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_matches.description'}\"},\"view_vehicle_history\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_history.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_history.description'}\"},\"view_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_attachments.description'}\"},\"add_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_order_attachments.description'}\"},\"download_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.download_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.download_order_attachments.description'}\"},\"view_plate_scans\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_plate_scans.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_plate_scans.description'}\"},\"view_department_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}\"},\"view_own_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}\"},\"update_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}\"},\"create_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}\"},\"mark_bookings_complete\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}\"},\"send_booking_confirmations\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}\"},\"view_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}\"},\"create_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}\"},\"edit_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}\"},\"view_order_statistics\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}\"},\"view_booking_statistics\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}\"},\"open_limited_backoffice\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}\"},\"manage_department_prices\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}\"},\"view_customer_pricing\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_pricing.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_pricing.description'}\"},\"manage_customer_pricing\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_customer_pricing.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_customer_pricing.description'}\"},\"manage_employee_access\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}\"},\"unknown\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}\"}}}},\"redirect\":{\"mobile_department_auto_select\":{\"manual_button\":\"@:{'words.generated.abteilung'} @:{'words.generated.manuell'} @:{'words.generated.auswahlen'}\",\"manual_title\":\"@.capitalize:{'words.generated.wahlen'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.abteilung'}\",\"manual_loading\":\"@:{'words.generated.abteilungen'} @:{'words.generated.werden'} @:{'words.generated.geladen'}...\",\"use_department\":\"{name} @:{'words.generated.auswahlen'}\"}},\"replication\":{\"host_targets\":{\"database\":\"@:{'words.replication.services.database'}-@:{'words.replication.host'}\",\"redis\":\"@:{'words.replication.services.redis'}-@:{'words.replication.host'}\",\"minio\":\"@:{'words.replication.services.minio'}-@:{'words.replication.host'}\"},\"host_mentions\":{\"primary_database\":\"@:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'templates.replication.host_targets.database'}\",\"redis\":\"@:{'words.replication.article.host_mention'} @:{'templates.replication.host_targets.redis'}\",\"minio\":\"@:{'words.replication.article.host_mention'} @:{'templates.replication.host_targets.minio'}\"},\"add_host\":\"{host} @:{'words.generated.hinzufugen'}\",\"register_host_when_reachable\":\"@:{'words.generated.fuge'} {host} @:{'words.generated.in'} @:{'words.generated.der'} @:{'words.generated.superuser'}-@:{'words.generated.oberflache'} @:{'words.generated.hinzu'}, @:{'words.generated.sobald'} @:{'words.generated.er'} @:{'words.generated.erreichbar'} @:{'words.generated.ist'}.\",\"register_host_when_reachable_with_space_requirement\":\"@:{'words.generated.fuge'} {host} @:{'words.generated.in'} @:{'words.generated.der'} @:{'words.generated.superuser'}-@:{'words.generated.oberflache'} @:{'words.generated.hinzu'}, @:{'words.generated.sobald'} @:{'words.generated.er'} @:{'words.generated.erreichbar'} @:{'words.generated.ist'}. @.capitalize:{'words.generated.die'} Bereitstellung erfordert freien Zielspeicherplatz @:{'words.generated.in'} Höhe @:{'words.generated.der'} Quell-@.capitalize:{'words.generated.bucket'}-Größe plus 20%.\"},\"generated\":{\"compat\":{\"2fa\":{\"back_to_login\":\"@:{'words.generated.zuruck'} @:{'words.generated.zur'} @:{'words.generated.anmeldung'}\",\"code_label\":\"@:{'words.generated.bestatigungscode'}\",\"description\":\"@:{'words.generated.fugen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ihrem'} @:{'words.generated.konto'} @:{'words.generated.eine'} @:{'words.generated.zusatzliche'} Sicherheitsebene @:{'words.generated.hinzu'}, indem @:{'words.generated.beim'} @.capitalize:{'words.generated.anmelden'} @:{'words.generated.ein'} @:{'words.generated.bestatigungscode'} @:{'words.generated.erforderlich'} @:{'words.generated.ist'}.\",\"disable_confirm\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.authentifizierung'} @:{'words.generated.deaktivieren'} @:{'words.generated.mochten'}? @:{'words.generated.dadurch'} @:{'words.generated.wird'} @:{'words.generated.ihr'} @:{'words.generated.konto'} @:{'words.generated.weniger'} @:{'words.generated.sicher'}.\",\"disable_error_title\":\"Deaktivierung @:{'words.generated.fehlgeschlagen'}\",\"disable_title\":\"@:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.authentifizierung'} @:{'words.generated.deaktivieren'}\",\"disabled_message\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.authentifizierung'} @:{'words.generated.wurde'} @:{'words.generated.fur'} @:{'words.generated.ihr'} @:{'words.generated.konto'} @:{'words.generated.deaktiviert'}.\",\"disabled_title\":\"@:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.authentifizierung'} @:{'words.generated.deaktiviert'}\",\"enable_button\":\"@:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.authentifizierung'} @:{'words.generated.aktivieren'}\",\"enabled_message\":\"@:{'words.generated.ihr'} @:{'words.generated.konto'} @:{'words.generated.ist'} @:{'words.generated.jetzt'} @:{'words.generated.mit'} @:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.authentifizierung'} @:{'words.generated.geschutzt'}.\",\"enabled_title\":\"@:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.authentifizierung'} @:{'words.generated.aktiviert'}\",\"enter_code\":\"@.capitalize:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ihren'} @:{'words.generated.bestatigungscode'} @:{'words.generated.ein'}\",\"invalid_code\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.einen'} gültigen 6-@:{'words.generated.stelligen'} @:{'words.generated.code'} @:{'words.generated.ein'}.\",\"setup_error_title\":\"@:{'words.generated.einrichtung'} @:{'words.generated.fehlgeschlagen'}\",\"setup_manual\":\"@.capitalize:{'words.generated.scannen'} @:{'words.generated.nicht'} möglich? @.capitalize:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.diesen'} @:{'words.generated.code'} @:{'words.generated.manuell'} @:{'words.generated.ein'}:\",\"setup_step1\":\"@.capitalize:{'words.generated.scannen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.diesen'} @:{'words.generated.qr'}-@:{'words.generated.code'} @:{'words.generated.mit'} @:{'words.generated.ihrer'} @:{'words.generated.authentifizierungs'}-@:{'words.generated.app'} (@:{'words.generated.google'} Authenticator, Authy @:{'words.generated.usw'}.):\",\"setup_step2\":\"@.capitalize:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.zur'} @:{'words.generated.bestatigung'} @:{'words.replication.article.host_mention'} 6-@:{'words.generated.stelligen'} @:{'words.generated.code'} @:{'words.generated.aus'} @:{'words.generated.ihrer'} @:{'words.generated.authentifizierungs'}-@:{'words.generated.app'} @:{'words.generated.ein'}:\",\"setup_title\":\"@:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.authentifizierung'} einrichten\",\"status_disabled_desc\":\"@.capitalize:{'words.generated.aktivieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.authentifizierung'} @:{'words.generated.fur'} @:{'words.generated.mehr'} @:{'words.generated.sicherheit'}.\",\"status_disabled\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.authentifizierung'} @:{'words.generated.ist'} @:{'words.generated.deaktiviert'}\",\"status_enabled_desc\":\"@:{'words.generated.ihr'} @:{'words.generated.konto'} @:{'words.generated.ist'} @:{'words.generated.mit'} @:{'words.generated.einem'} zusätzlichen Bestätigungsschritt @:{'words.generated.geschutzt'}.\",\"status_enabled\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.authentifizierung'} @:{'words.generated.ist'} @:{'words.generated.aktiviert'}\",\"title\":\"@:{'templates.generated.compat.settings.two_factor'}\",\"verification_success\":\"@:{'words.generated.bestatigung'} @:{'words.generated.erfolgreich'}!\",\"verify_button\":\"@:{'templates.generated.compat.common.confirm'}\",\"verify_description\":\"@.capitalize:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} 6-@:{'words.generated.stelligen'} @:{'words.generated.code'} @:{'words.generated.aus'} @:{'words.generated.ihrer'} @:{'words.generated.authentifizierungs'}-@:{'words.generated.app'} @:{'words.generated.ein'}.\",\"verify_title\":\"@:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.bestatigung'}\"},\"about_us\":{\"solutions\":{\"customer\":{\"app_item1\":\"@.upper:{'words.generated.n'}?@:{'words.generated.chste'} @:{'words.generated.waschhalle'} @:{'words.generated.finden'}\",\"app_item2\":\"@:{'words.generated.selbstw'}?@:{'words.generated.sche'} @:{'words.generated.au'}?@:{'words.generated.erhalb'} @:{'words.generated.der'} @:{'words.generated.betreuten'} ?@:{'words.generated.ffnungszeiten'} @:{'words.generated.nutzen'}\",\"app_item3\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.mit'} @:{'words.generated.referenznummer'} @:{'words.generated.buchen'}\",\"app_item4\":\"@:{'words.generated.treuepunkte'} @:{'words.generated.sammeln'}\",\"app_title\":\"@:{'words.generated.app'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.fahrer'}\",\"portal_item1\":\"@:{'words.generated.fahrzeuge'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'} @:{'words.generated.und'} @:{'words.generated.verwalten'}\",\"portal_item3\":\"@:{'words.generated.daten'} @:{'words.generated.zu'} @:{'words.generated.fr'}?@:{'words.generated.heren'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'} @:{'words.generated.ansehen'}\",\"portal_title\":\"@:{'words.generated.kundenportal'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.disponenten'} @:{'words.generated.und'} @:{'words.generated.spediteure'}:\",\"title\":\"@.capitalize:{'words.generated.digitale'} @.upper:{'words.generated.l'}?@:{'words.generated.sungen'} @:{'words.generated.f'}?@:{'words.generated.r'} Waschhallenkunden\"},\"operator\":{\"book_demo\":\"Demo @:{'words.generated.buchen'}\",\"module_item1\":\"@:{'words.generated.preise'}, @:{'words.generated.produkte'}, ?@:{'words.generated.ffnungszeiten'} @:{'words.generated.und'} @:{'words.generated.mitarbeiter'} festlegen\",\"module_item3\":\"@.capitalize:{'words.generated.neue'} @:{'words.generated.kunden'} @:{'words.generated.mit'} zugeh?rigen @:{'words.generated.kennzeichen'} @:{'words.generated.erstellen'}\",\"module_title\":\"Steuermodul @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.waschhallenbetreiber'}:\",\"pos_item1\":\"@:{'words.generated.fahrzeuge'} durch @:{'words.generated.kennzeichenscan'} @:{'words.generated.schnell'} @:{'words.generated.registrieren'}\",\"pos_item2\":\"@:{'words.generated.bilder'} @:{'words.generated.und'} @:{'words.generated.referenznummer'} @:{'words.generated.zur'} @:{'words.generated.registrierung'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"pos_item3\":\"@:{'words.generated.buchungen'} @:{'words.generated.mit'} @:{'words.generated.einem'} @:{'words.generated.klick'} @:{'words.generated.bearbeiten'} (@:{'words.generated.inkl'}. @:{'words.generated.automatischer'} @:{'words.generated.erstellung'} @:{'words.generated.des'} @:{'words.generated.waschzertifikats'})\",\"pos_item4\":\"@:{'words.generated.waschprotokoll'} @:{'words.generated.und'} @:{'words.generated.buchungen'} @:{'words.generated.verwalten'}\",\"pos_item5\":\"Dashboards @:{'words.generated.zur'} Abteilungsleistung @:{'words.generated.ansehen'}\",\"pos_title\":\"Registrierungs- @:{'words.generated.und'} @:{'words.generated.pos'}-@.capitalize:{'words.generated.system'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.fahrzeugw'}?@:{'words.generated.scher'}\",\"title\":\"@.capitalize:{'words.generated.digitale'} @.upper:{'words.generated.l'}?@:{'words.generated.sungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.waschhallenbetreiber'}\"},\"title\":\"@.capitalize:{'words.generated.unsere'} @.upper:{'words.generated.l'}?@:{'words.generated.sungen'}\"},\"team\":{\"jeppe\":{\"role\":\"@:{'words.generated.it'}-Manager\"},\"mads\":{\"role\":\"@.capitalize:{'words.generated.gesch'}?ftsf?hrer\"},\"mikkel\":{\"role1\":\"@.capitalize:{'words.generated.gr'}?nder\",\"role2\":\"@.capitalize:{'words.generated.gesch'}?ftsentwicklung\"},\"title\":\"@:{'words.generated.team'}\"},\"vision\":{\"developed_title\":\"Deshalb @:{'words.generated.haben'} @:{'words.generated.wir'} entwickelt:\",\"item1\":\"@.capitalize:{'words.generated.ein'} @:{'words.generated.portal'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.spediteure'} @:{'words.generated.und'} @:{'words.generated.disponenten'}, @:{'words.generated.in'} @:{'words.generated.dem'} @:{'words.generated.sie'} @:{'words.generated.alles'} rund @:{'words.generated.um'} @:{'words.generated.ihre'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'} @:{'words.generated.verwalten'} @:{'words.generated.k'}?@:{'words.generated.nnen'}\",\"item2\":\"@.capitalize:{'words.generated.eine'} @:{'words.generated.app'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.fahrer'}, @:{'words.generated.in'} @:{'words.generated.der'} @:{'words.generated.sie'} @:{'words.generated.buchen'}, @:{'words.generated.waschen'} @:{'words.generated.und'} @:{'words.generated.treuepunkte'} @:{'words.generated.sammeln'} @:{'words.generated.k'}?@:{'words.generated.nnen'}\",\"item3\":\"@.capitalize:{'words.generated.ein'} @:{'words.generated.portal'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.waschhallenbetreiber'}, @:{'words.generated.in'} @:{'words.generated.dem'} @:{'words.generated.sie'} @:{'words.generated.alle'} Aspekte @:{'words.generated.des'} Betriebs @:{'words.generated.verwalten'} @:{'words.generated.k'}?@:{'words.generated.nnen'}\",\"item4\":\"@.capitalize:{'words.generated.eine'} @:{'words.generated.app'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.fahrzeugw'}?@:{'words.generated.scher'}, @:{'words.generated.mit'} @:{'words.generated.der'} @:{'words.generated.sie'} @:{'words.generated.fahrzeuge'} @:{'words.generated.registrieren'}, @:{'words.generated.waschzertifikate'} @:{'words.generated.erstellen'}, @:{'words.generated.zahlungen'} annehmen @:{'words.generated.usw'}. @:{'words.generated.k'}?@:{'words.generated.nnen'}\",\"paragraph1\":\"Seit 2023 arbeitet @:{'words.generated.das'} @:{'words.generated.team'} @:{'words.generated.hinter'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.an'} @:{'words.generated.der'} @:{'words.generated.vision'}, @:{'words.generated.ein'} @.capitalize:{'words.generated.system'} @:{'words.generated.zu'} schaffen, @:{'words.generated.in'} @:{'words.generated.dem'} @:{'words.generated.alle'} @:{'words.generated.relevanten'} Abl?@:{'words.generated.ufe'} @:{'words.generated.der'} @:{'words.generated.lkw'}-@.upper:{'words.generated.w'}?@:{'words.generated.sche'} digitalisiert @:{'words.generated.und'} vernetzt @:{'words.generated.sind'}, @:{'words.generated.um'} @:{'words.replication.article.host_mention'} Alltag @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.alle'} @:{'words.generated.beteiligten'} @:{'words.generated.zu'} erleichtern ? @:{'words.generated.spediteure'}, @:{'words.generated.disponenten'}, @:{'words.generated.fahrer'}, @:{'words.generated.waschhallenbetreiber'} @:{'words.generated.und'} @:{'words.generated.fahrzeugw'}?@:{'words.generated.scher'}.\",\"paragraph2\":\"@.capitalize:{'words.generated.wir'} betreiben @:{'words.generated.d'}?nemarks @:{'words.generated.gr'}??te Kette @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.lkw'}-@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.und'} @:{'words.generated.verf'}?@:{'words.generated.gen'} @:{'words.generated.daher'} ?@:{'words.generated.ber'} tiefe Einblicke @:{'words.generated.in'} @:{'words.generated.die'} Branche. @:{'words.generated.dadurch'} @:{'words.generated.k'}?@:{'words.generated.nnen'} @:{'words.generated.wir'} @:{'words.generated.it'}-@.upper:{'words.generated.l'}?@:{'words.generated.sungen'} entwickeln, @:{'words.generated.die'} @:{'words.generated.die'} Bed?rfnisse @:{'words.generated.aller'} @:{'words.generated.beteiligten'} erf?llen.\",\"title\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.vision'} @:{'words.generated.hinter'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}\"}},\"admin\":{\"bookings\":{\"certificate_overview\":{\"subtitle\":\"?@:{'words.generated.bersicht'} @:{'words.generated.der'} @:{'words.generated.waschzertifikate'}\",\"title\":\"@:{'words.generated.waschzertifikat'}-?@:{'words.generated.bersicht'}\"},\"complete\":{\"subtitle\":\"@.capitalize:{'words.generated.eine'} @:{'words.generated.buchung'} @:{'words.generated.abschlie'}?@:{'words.generated.en'}\",\"title\":\"@:{'words.generated.buchung'} @:{'words.generated.abschlie'}?@:{'words.generated.en'}\"},\"legacy\":{\"subtitle\":\"?@:{'words.generated.bersicht'} @:{'words.generated.der'} @:{'words.generated.buchungen'} (@:{'words.generated.legacy'})\",\"title\":\"@:{'words.generated.buchungen'} (@:{'words.generated.legacy'})\"}},\"daily_report\":{\"navigation\":{\"title\":\"Navigation\"},\"object\":{\"subtitle\":\"@.capitalize:{'words.generated.details'} @:{'words.generated.des'} Tagesberichts @:{'words.generated.anzeigen'}\",\"title\":\"@.capitalize:{'words.generated.details'} @:{'words.generated.tagesbericht'}\"},\"product_sales\":{\"subtitle_suffix\":\"Produktverk?@:{'words.generated.ufe'}\",\"title\":\"@:{'templates.generated.compat.admin.daily_report.product_sales.subtitle_suffix'}\"},\"product_targets\":{\"cancel_aria\":\"Ziel abbrechen\",\"edit_aria\":\"Zielprozentsatz bearbeiten\",\"input_label\":\"Zielprozentsatz\",\"save_aria\":\"Ziel speichern\",\"save_error\":\"Das Ziel konnte nicht gespeichert werden.\",\"validation_range\":\"Der Zielprozentsatz muss zwischen 0 und 100 liegen.\"},\"reports\":{\"bookings\":{\"completed_count\":\"@:{'words.generated.abgeschlossene'} @:{'words.generated.anzahl'}\",\"possible_count\":\"@.upper:{'words.generated.m'}?@:{'words.generated.gliche'} @:{'words.generated.anzahl'}\"},\"night_washes\":{\"chart_title\":\"@:{'words.generated.nachtwaschen'} @:{'words.generated.pro'} @:{'words.generated.tag'}\",\"subtitle\":\"@:{'words.generated.waschen_2'} außerhalb @:{'words.generated.der'} @:{'words.generated.offnungszeiten'}\",\"title\":\"@:{'words.generated.nachtwaschen'}\",\"warning_missing_opening_hours\":\"@:{'words.generated.offnungszeiten'} fehlen @:{'words.generated.fur'}: {departments}\"},\"products_sold\":{\"possible_sold\":\"@.upper:{'words.generated.m'}?glich @:{'words.generated.verkauft'}\",\"quantity_sold\":\"@:{'words.generated.verkaufte'} @:{'words.generated.menge'}\",\"sold\":\"@.capitalize:{'words.generated.verkauft'}\",\"subtitle\":\"@:{'templates.generated.compat.admin.daily_report.reports.products_sold.title'}\",\"title\":\"@:{'words.generated.verkaufte'} @:{'words.generated.produkte'}\"},\"revenue\":{\"possible_revenue\":\"@.upper:{'words.generated.m'}?glicher @:{'words.generated.umsatz'}\"},\"transactions\":{\"possible_transactions\":\"@.upper:{'words.generated.m'}?@:{'words.generated.gliche'} @:{'words.generated.transaktionen'}\",\"subtitle\":\"@:{'templates.generated.compat.admin.daily_report.reports.transactions.title'}\",\"title\":\"@:{'words.generated.transaktionen'}\",\"transaction_count\":\"@:{'words.generated.anzahl'} @:{'words.generated.transaktionen'}\"},\"washes\":{\"completed_washes\":\"@:{'words.generated.abgeschlossene'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'}\",\"possible_washes\":\"@.upper:{'words.generated.m'}?@:{'words.generated.gliche'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'}\",\"subtitle\":\"@:{'templates.generated.compat.statistics.washes'}\"},\"water_usage_per_wash\":{\"avg_water_usage\":\"@:{'words.generated.durchschn'}. @:{'words.generated.wasserverbrauch'} @:{'words.generated.pro'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'}\",\"subtitle\":\"@:{'templates.generated.compat.admin.daily_report.reports.water_usage_per_wash.title'}\",\"title\":\"@:{'words.generated.wasserverbrauch'} @:{'words.generated.pro'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'}\"},\"water_usage\":{\"subtitle\":\"@:{'templates.generated.compat.admin.daily_report.reports.water_usage.water_usage'}\",\"water_usage\":\"@:{'words.generated.wasserverbrauch'}\"}},\"subtitle\":\"@:{'words.generated.heutigen'} @:{'words.generated.bericht'} @:{'words.generated.anzeigen'}\",\"tabs\":{\"previous_report\":\"@:{'words.generated.vorheriger'} @:{'words.generated.bericht'}\",\"todays_report\":\"@:{'words.generated.heutiger'} @:{'words.generated.bericht'}\"},\"title\":\"@:{'templates.generated.compat.nav.daily_report'}\",\"titles\":{\"operations\":\"Betrieb\",\"optional_products\":\"Optionale @:{'words.generated.produkte'}\"},\"today_form\":{\"title\":\"Heutiges @:{'words.generated.formular'}\"},\"todays_prefix\":\"@:{'words.generated.heutiger'}\",\"update_report\":\"@:{'words.generated.bericht'} @:{'words.generated.aktualisieren'}\",\"update_todays_report\":\"@:{'words.generated.heutigen'} @:{'words.generated.bericht'} @:{'words.generated.aktualisieren'}\"},\"debug\":{\"reader_test\":{\"subtitle\":\"@:{'words.generated.leserzuverl'}?ssigkeit @:{'words.generated.testen'}\",\"title\":\"@:{'words.generated.leserzuverl'}?ssigkeitstest\"}},\"department_modules\":{\"bookings\":{\"description\":\"@.capitalize:{'words.generated.zu'} @:{'words.generated.buchungen'} @:{'words.generated.gehen'}\"},\"daily_report\":{\"description\":\"@.capitalize:{'words.generated.zum'} @:{'words.generated.tagesbericht'} @:{'words.generated.gehen'}\"},\"goals\":{\"description\":\"@.capitalize:{'words.generated.zu'} Zielen @:{'words.generated.gehen'}\"},\"pos\":{\"description\":\"@.capitalize:{'words.generated.zum'} @:{'words.generated.pos'}-@.capitalize:{'words.generated.system'} @:{'words.generated.gehen'}\"},\"self_wash\":{\"description\":\"@.capitalize:{'words.generated.zu'} @:{'words.generated.selbstw'}?@:{'words.generated.sche'} @:{'words.generated.gehen'}\",\"disabled\":\"@:{'words.generated.selbstw'}?@:{'words.generated.sche'} @:{'words.generated.ist'} @:{'words.generated.jetzt'} @:{'words.generated.deaktiviert'}\",\"enabled\":\"@:{'words.generated.selbstw'}?@:{'words.generated.sche'} @:{'words.generated.ist'} @:{'words.generated.jetzt'} @:{'words.generated.aktiviert'}\",\"update_error\":\"@:{'words.generated.self'}-@.capitalize:{'words.generated.wash'}-@.capitalize:{'words.generated.status'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.aktualisiert'} @:{'words.generated.werden'}\"}},\"errors\":{\"select_department\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.abteilung'} @:{'words.generated.aus'}, @:{'words.generated.auf'} @:{'words.generated.die'} @.capitalize:{'words.generated.sie'} @:{'words.generated.zugriff'} @:{'words.generated.haben'}. @.capitalize:{'words.generated.wenn'} @.capitalize:{'words.generated.sie'} glauben, @:{'words.generated.dass'} @:{'words.generated.dies'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.ist'}, @:{'words.generated.kontaktieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.bitte'} @:{'words.replication.article.host_mention'} @:{'words.generated.support'}.\"},\"goals\":{\"form\":{\"edit_title\":\"@:{'words.generated.ziel'} @:{'words.generated.bearbeiten'}\",\"target_duration_every\":{\"help\":\"@.capitalize:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.weeks'}, @:{'words.generated.months'}, @:{'words.generated.and'} @:{'words.generated.years'}.\",\"label\":\"Every\",\"placeholder\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 1\"},\"target_duration\":{\"help\":\"@:{'words.generated.choose'} how @:{'words.generated.target'} values @:{'words.generated.should'} @:{'words.generated.be'} evaluated.\",\"label\":\"@.capitalize:{'words.generated.target'} @:{'words.generated.duration'}\",\"modes\":{\"entire_duration\":\"@.capitalize:{'words.generated.entire'} @:{'words.generated.duration'}\",\"legacy\":\"Daily based @:{'words.generated.on'} @:{'words.generated.entire'} @:{'words.generated.duration'} (@:{'words.generated.from'} @:{'words.generated.start'} @:{'words.generated.to'} @:{'words.generated.end'})\",\"months\":\"@.capitalize:{'words.generated.months'}\",\"weeks\":\"@.capitalize:{'words.generated.weeks'}\",\"years\":\"@.capitalize:{'words.generated.years'}\"}},\"title\":\"@:{'words.generated.ziel'} @:{'words.generated.erstellen'}\",\"validation\":{\"date_range_invalid\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.and'} @:{'words.generated.end'} dates @:{'words.generated.are'} @:{'words.generated.invalid'}.\",\"departments_required\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.at'} @:{'words.generated.least'} @:{'words.generated.one'} @:{'words.generated.department'}.\",\"target_duration_every_required\":\"@:{'words.generated.enter'} @:{'words.generated.a'} cadence @:{'words.generated.value'} @:{'words.generated.of'} @:{'words.generated.at'} @:{'words.generated.least'} 1.\",\"target_required\":\"@:{'words.generated.enter'} @:{'words.generated.a'} @:{'words.generated.valid'} @:{'words.generated.target'} @:{'words.generated.value'}.\"}},\"subtitle\":\"@:{'words.generated.abteilungsziele'} @:{'words.generated.verwalten'}\",\"test_alert\":{\"department_id\":\"@.capitalize:{'words.generated.department'} @.upper:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.slack'} @:{'words.generated.webhook'}\",\"destination\":\"Override @:{'words.generated.destination'}\",\"email_to\":\"@:{'words.generated.email'} @:{'words.generated.recipient'}\",\"error\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.send'} @:{'words.generated.test'} @:{'words.generated.alert'}.\",\"send\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.test'} @:{'words.generated.alert'}\",\"slack_help\":\"@:{'words.generated.provide'} @:{'words.generated.a'} @:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'} @:{'words.generated.or'} @:{'words.generated.a'} @:{'words.generated.department'} @.upper:{'words.generated.id'}.\",\"slack_webhook\":\"@:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'}\",\"sms_help\":\"@.capitalize:{'words.generated.use'} comma @:{'words.generated.or'} semicolon @:{'words.generated.to'} @:{'words.generated.separate'} phone @:{'words.generated.numbers'}.\",\"sms_to\":\"@:{'words.generated.sms'} recipients\",\"subject\":\"@:{'words.generated.email'} subject (@:{'words.generated.optional'})\",\"success\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.alert'} sent @:{'words.generated.via'} {destination}.\",\"validation\":{\"email_required\":\"@:{'words.generated.email'} @:{'words.generated.recipient'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @.upper:{'words.generated.email'} @:{'words.generated.destination'}.\",\"invalid_destination\":\"Please @:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.valid'} @:{'words.generated.destination'}.\",\"slack_target_required\":\"@:{'words.generated.provide'} @:{'words.generated.a'} @:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'} @:{'words.generated.or'} @:{'words.generated.department'} @.upper:{'words.generated.id'} @:{'words.generated.for'} @.upper:{'words.generated.slack'} @:{'words.generated.destination'}.\",\"sms_required\":\"@.capitalize:{'words.generated.at'} @:{'words.generated.least'} @:{'words.generated.one'} @:{'words.generated.sms'} @:{'words.generated.recipient'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.sms'} @:{'words.generated.destination'}.\"}},\"title\":\"@:{'templates.generated.compat.objects.goals.multiple'}\"},\"intranet\":{\"events\":{\"title\":\"@:{'words.generated.ereignisse'}\"},\"import_events\":{\"title\":\"@:{'words.generated.ereignisse'} @:{'words.generated.importieren'}\"},\"subtitle\":\"Abteilungsintranet\",\"title\":\"Intranet\"},\"notifications\":{\"sms_activated_description\":\"Aktivierte @:{'words.generated.telefonnummern'} @:{'words.generated.erhalten'} @:{'words.generated.sms'}-@:{'words.generated.benachrichtigungen'}, @:{'words.generated.wenn'} @:{'words.generated.ein'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.eine'} @:{'words.generated.buchung'} vornimmt.\",\"sms_overview\":\"?@:{'words.generated.bersicht'} @:{'words.generated.der'} @:{'words.generated.sms'}-Benachrichtigungsnummern @:{'words.generated.der'} @:{'words.generated.abteilung'}.\",\"subtitle\":\"@:{'words.generated.benachrichtigungen'} @:{'words.generated.verwalten'}\"},\"order_bookings\":{\"subtitle\":\"@:{'words.generated.auftragsbuchungen'} @:{'words.generated.verwalten'}\",\"title\":\"@:{'templates.generated.compat.objects.order_bookings.multiple'}\"},\"overview\":{\"reports\":{\"title\":\"@:{'words.generated.berichte'}\"},\"subtitle\":\"@.capitalize:{'words.generated.abteilungs'}?@:{'words.generated.bersicht'}\"},\"pos\":{\"action_buttons\":{\"add_customer_desc\":\"@.capitalize:{'words.generated.neuen'} @:{'words.generated.kunden'} @:{'words.generated.zum'} @.capitalize:{'words.generated.system'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"cancel_desc\":\"@.capitalize:{'words.generated.dieses'} @:{'words.generated.popup'} @:{'words.generated.schlie'}?@:{'words.generated.en'}, @:{'words.generated.ohne'} ?@:{'words.generated.nderungen'} @:{'words.generated.zu'} @:{'words.generated.speichern'}\",\"close_desc\":\"@.capitalize:{'words.generated.dieses'} @:{'words.generated.popup'} @:{'words.generated.schlie'}?@:{'words.generated.en'}\",\"confirm_desc\":\"@.capitalize:{'words.generated.best'}?@:{'words.generated.tigen'} @:{'words.generated.und'} ?@:{'words.generated.nderungen'} @:{'words.generated.speichern'}\",\"edit_reference\":\"@:{'words.generated.referenz'} @:{'words.generated.bearbeiten'}\",\"edit_reference_desc\":\"@:{'words.generated.referenz'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.diese'} @:{'words.generated.transaktion'} @:{'words.generated.bearbeiten'}\",\"select_customer_desc\":\"@.capitalize:{'words.generated.einen'} @:{'words.generated.kunden'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.diese'} @:{'words.generated.transaktion'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\"},\"add_customer\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"add_more_items\":\"@.capitalize:{'words.generated.weitere'} @:{'words.generated.positionen'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"attachment\":\"@:{'words.generated.anhang'}\",\"attachments\":\"@.capitalize:{'words.generated.anh'}?@:{'words.generated.nge'}\",\"attachments_add\":\"@:{'words.generated.anhang'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"attachments_no_preview\":\"@.upper:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.diesen'} Dateityp @:{'words.generated.ist'} @:{'words.generated.keine'} @:{'words.generated.vorschau'} @:{'words.generated.verf'}?@:{'words.generated.gbar'}.\",\"attachments_office_preview_unavailable\":\"@.upper:{'words.generated.f'}?@:{'words.generated.r'} Office-Dokumente @:{'words.generated.ist'} @:{'words.generated.keine'} @:{'words.generated.vorschau'} @:{'words.generated.verf'}?@:{'words.generated.gbar'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.zum'} @.capitalize:{'words.generated.anzeigen'} @:{'words.generated.herunterladen'}.\",\"attachments_upload_action\":\"Upload\",\"attachments_upload_description\":\"@.capitalize:{'words.generated.laden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.neue'} @:{'words.generated.datei'} @:{'words.generated.als'} @:{'words.generated.anhang'} @:{'words.generated.zu'} @:{'words.generated.dieser'} @:{'words.generated.transaktion'} hoch.\",\"attachments_upload_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.hochladen'} @:{'words.generated.der'} angehaengten @:{'words.generated.datei'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\",\"buttons\":{\"delete_all\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"go_back\":\"@:{'templates.generated.compat.pos.go_back'}\",\"please_wait\":\"@:{'templates.generated.compat.messages.please_wait'}\",\"print_invoice\":\"@:{'words.generated.rechnung'} @:{'words.generated.drucken'}\"},\"cancel\":\"@:{'templates.generated.compat.common.cancel'}\",\"cancel_booking_confirm\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.buchung'} @:{'words.generated.stornieren'} @:{'words.generated.m'}?chten?\",\"cart\":\"@:{'words.generated.warenkorb'}\",\"company_phone\":\"Firmentelefon\",\"contact_email\":\"@:{'words.generated.kontakt'}-@.upper:{'words.generated.e'}-@:{'words.generated.mail'}\",\"contact_phone\":\"Kontakttelefonnummer\",\"ean\":\"EAN\",\"created_by\":\"@.capitalize:{'words.generated.erstellt'} @:{'words.generated.von'}\",\"customer_conflict\":{\"help_text\":\"@.capitalize:{'words.generated.dieses'} @:{'words.generated.kennzeichen'} @:{'words.generated.gehoert'} @:{'words.generated.zu'} @:{'words.generated.einem'} @:{'words.generated.anderen'} @:{'words.generated.gespeicherten'} @:{'words.generated.kunden'}. @:{'words.generated.waehlen'} @.capitalize:{'words.generated.sie'}, @:{'words.generated.ob'} @:{'words.generated.der'} @:{'words.generated.ausgewaehlte'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.beibehalten'} @:{'words.generated.oder'} @:{'words.generated.zum'} @:{'words.generated.fahrzeugkunden'} @:{'words.generated.gewechselt'} @:{'words.generated.werden'} @:{'words.generated.soll'}.\",\"warning_text\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.ausgewaehlte'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.und'} @:{'words.generated.der'} @:{'words.generated.fahrzeugkunde'} @:{'words.generated.stimmen'} @:{'words.generated.nicht'} @:{'words.generated.ueberein'}.\"},\"details\":\"@:{'templates.generated.compat.common.details'}\",\"drafts_assignment\":{\"button\":\"@:{'words.generated.assign'} @:{'words.generated.customer'}\",\"create_invoice_collection\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"customer_required\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.a'} @:{'words.generated.customer'} @:{'words.generated.to'} @:{'words.generated.view'} @:{'words.generated.invoice'} @:{'words.generated.collections'}.\",\"error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} assigning @:{'words.generated.the'} @:{'words.generated.customer'}.\",\"invoice_collection_empty\":\"@.capitalize:{'words.generated.no'} unbooked @:{'words.generated.invoice'} @:{'words.generated.collections'} @:{'words.generated.were'} @:{'words.generated.found'} @:{'words.generated.for'} @:{'words.generated.the'} @:{'words.generated.selected'} @:{'words.generated.customer'}.\",\"invoice_collection_label\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"invoice_collection_loading\":\"@:{'words.generated.loading'} @:{'words.generated.invoice'} @:{'words.generated.collections'}...\",\"invoice_collection_total\":\"@:{'templates.generated.compat.objects.columns.total_net_amount'}\",\"new_collection_description\":\"@:{'words.generated.created'} @:{'words.generated.from'} @:{'words.generated.the'} drafts overview\",\"new_collection_name\":\"@:{'words.generated.manual'} @:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"recalculate_prices\":\"Recalculate @:{'words.generated.prices'} @:{'words.generated.with'} @:{'words.generated.customer'} @:{'words.generated.discounts'}\",\"recalculate_prices_help\":\"Applies @:{'words.generated.the'} @:{'words.generated.department'} @:{'words.generated.pricing'} @:{'words.generated.and'} any @:{'words.generated.customer'} @:{'words.generated.discounts'} @:{'words.generated.to'} @:{'words.generated.all'} @:{'words.generated.order'} lines.\",\"search_customer_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.by'} @:{'words.generated.customer'} @:{'words.generated.name'} @:{'words.generated.or'} @:{'words.generated.customer'} @:{'words.generated.number'}\",\"selected_customer\":\"@.capitalize:{'words.generated.selected'} @:{'words.generated.customer'}\",\"subtitle\":\"@:{'words.generated.choose'} @:{'words.generated.the'} @:{'words.generated.customer'} @:{'words.generated.and'} @:{'words.generated.invoice'} @:{'words.generated.collection'} @:{'words.generated.to'} move @:{'words.generated.draft'} #{orderId} out @:{'words.generated.of'} @:{'words.generated.the'} @:{'words.generated.draft'} @:{'words.generated.customer'}.\",\"success\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.draft'} @:{'words.generated.customer'} @:{'words.generated.was'} assigned @:{'words.generated.successfully'}.\",\"title\":\"@:{'words.generated.assign'} @:{'words.generated.customer'} @:{'words.generated.to'} @:{'words.generated.draft'}\"},\"duplicate_order_warning\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @:{'words.generated.dies'} @:{'words.generated.nicht'} @:{'words.generated.bereits'} @:{'words.generated.erfasst'} @:{'words.generated.wurde'}? @.capitalize:{'words.generated.es'} @:{'words.generated.wurden'} @:{'words.generated.m'}?@:{'words.generated.gliche'} @:{'words.generated.duplikate'} @:{'words.generated.dieses'} @:{'words.generated.auftrags'} @:{'words.generated.gefunden'}. @.capitalize:{'words.generated.sie'} @:{'words.generated.k'}?@:{'words.generated.nnen'} @:{'words.replication.article.host_mention'} @:{'words.generated.auftrag'} @:{'words.generated.weiter'} @:{'words.generated.erfassen'} @:{'words.generated.oder'} @:{'words.generated.die'} @:{'words.generated.auftragsdetails'} @:{'words.generated.ansehen'}.\",\"duplicates\":{\"subtitle\":\"@.upper:{'words.generated.m'}?@:{'words.generated.gliche'} @:{'words.generated.duplikate'} @:{'words.generated.bearbeiten'}\"},\"enter_safety_seal_number\":\"Sicherheitsplomben-@.capitalize:{'words.generated.nummer'} @:{'words.generated.eingeben'}\",\"hide_order_details\":\"@:{'words.generated.auftragsdetails'} @:{'words.generated.ausblenden'}\",\"invoice_email\":\"@:{'words.generated.rechnungs'}-@.upper:{'words.generated.e'}-@:{'words.generated.mail'}\",\"make\":\"Marke\",\"model\":\"@:{'templates.generated.compat.vehicles.model'}\",\"no_content_available\":\"@.capitalize:{'words.generated.kein'} @:{'words.generated.inhalt'} @:{'words.generated.verf'}?@:{'words.generated.gbar'}.\",\"no_plates_found\":\"@.capitalize:{'words.generated.es'} @:{'words.generated.wurden'} @:{'words.generated.keine'} @:{'words.generated.kennzeichen'} @:{'words.generated.gefunden'}\",\"no_wash_certificate\":\"@.capitalize:{'words.generated.kein'} @:{'words.generated.waschzertifikat'}\",\"not_found\":\"@.capitalize:{'words.generated.nicht'} @:{'words.generated.gefunden'}\",\"order_booking_selector\":{\"continue_without_booking\":\"@.capitalize:{'words.generated.ohne'} @:{'words.generated.buchung'} fortfahren\",\"help_text\":\"@.capitalize:{'words.generated.mehrere'} offene @:{'words.generated.buchungen'} passen @:{'words.generated.zu'} @:{'words.generated.diesem'} @:{'words.generated.fahrzeug'}. @.capitalize:{'words.generated.wahlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} richtige @:{'words.generated.buchung'} @:{'words.generated.oder'} fahren @.capitalize:{'words.generated.sie'} @:{'words.generated.ohne'} @:{'words.generated.buchung'} fort.\",\"title\":\"@:{'words.generated.buchung'} @:{'words.generated.auswahlen'}\"},\"order_note\":\"@:{'words.generated.auftragsnotiz'}\",\"orders\":{\"subtitle\":\"@:{'templates.generated.compat.objects.orders.description'}\"},\"pay_with_stripe\":\"@.capitalize:{'words.generated.mit'} @:{'words.generated.stripe'} @:{'words.generated.bezahlen'}\",\"po_number\":\"@:{'words.generated.po'}-@.capitalize:{'words.generated.nummer'}\",\"price_changed_from\":\"@:{'words.generated.preis'} @:{'words.generated.ge'}?@:{'words.generated.ndert'} @:{'words.generated.von'} {from} @:{'words.generated.dkk'} @:{'words.generated.auf'} {to} @:{'words.generated.dkk'} / @:{'words.generated.einheit'} ({total} @:{'words.generated.dkk'} @:{'words.generated.gesamt'})\",\"recent_scan_details_empty\":\"@.capitalize:{'words.generated.fur'} @:{'words.generated.diesen'} @:{'words.generated.scan'} @:{'words.generated.sind'} @:{'words.generated.keine'} @:{'words.generated.fahrzeugdetails'} @:{'words.generated.verfugbar'}.\",\"recent_scan_details_error\":\"@:{'words.generated.fahrzeugdetails'} @:{'words.generated.konnten'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}. @.capitalize:{'words.generated.versuchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.einen'} @:{'words.generated.anderen'} @:{'words.generated.scan'}.\",\"recent_scan_details_loading\":\"@:{'words.generated.fahrzeugdetails'} @:{'words.generated.werden'} @:{'words.generated.geladen'}...\",\"recent_scans\":\"@.capitalize:{'words.generated.letzte'} Scans\",\"recent_scans_helper\":\"@.capitalize:{'words.generated.wahlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ein'} @:{'words.generated.kennzeichen'}, @:{'words.generated.um'} @:{'words.generated.fahrzeugdetails'} @:{'words.generated.anzuzeigen'}.\",\"reference_cannot_be_empty\":\"@:{'words.generated.referenz'} @:{'words.generated.darf'} @:{'words.generated.nicht'} @:{'words.generated.leer'} @:{'words.generated.sein'}\",\"reference_required_text\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.ausgew'}?@:{'words.generated.hlte'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.ben'}?@:{'words.generated.tigt'} @:{'words.generated.eine'} @:{'words.generated.referenznummer'}, @:{'words.generated.um'} @:{'words.generated.fortzufahren'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.unten'} @:{'words.generated.eine'} @:{'words.generated.referenznummer'} @:{'words.generated.ein'}:\",\"reference_required_title\":\"@:{'words.generated.referenznummer'} @:{'words.generated.erforderlich'}\",\"reference_required_tooltip\":\"@.capitalize:{'words.generated.der'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.benotigt'} @:{'words.generated.eine'} @:{'words.generated.referenz'}.\",\"safety_seal\":\"@:{'words.generated.sicherheitsplombe'}\",\"scanned\":\"Gescannt\",\"scanner\":\"Scanner\",\"see_note\":\"@:{'words.generated.notiz'} @:{'words.generated.ansehen'}\",\"see_reference\":\"@:{'words.generated.referenz'} @:{'words.generated.ansehen'}\",\"settings\":\"@:{'templates.generated.compat.common.settings'}\",\"settings_wheel\":{\"add_flag\":\"@:{'words.generated.flag'} hinzufugen\",\"add_flag_order\":\"@:{'words.generated.gesamte'} @:{'words.generated.bestellung'}\",\"add_flag_order_customer\":\"Bestellkunde\",\"add_flag_order_item\":\"@:{'words.generated.gesamte'} Bestellposition\",\"add_flag_order_item_notes\":\"Positionsnotizen\",\"add_flag_order_item_price\":\"Positionspreis\",\"add_flag_order_item_quantity\":\"Positionsmenge\",\"add_flag_order_item_reference\":\"Positionsreferenz\",\"add_flag_order_notes\":\"Bestellnotizen\",\"add_flag_order_po\":\"Bestell-@:{'words.generated.po'}-@.capitalize:{'words.generated.nummer'}\",\"add_flag_order_reference\":\"Bestellreferenz\",\"add_flag_reason_placeholder\":\"@:{'words.generated.grund'} fur @:{'words.generated.das'} @:{'words.generated.flag'}\",\"add_flag_reason_required\":\"@.capitalize:{'words.generated.ein'} @:{'words.generated.grund'} @:{'words.generated.ist'} @:{'words.generated.erforderlich'}.\",\"add_flag_target\":\"Ausgewahltes Element\",\"add_gate\":\"@:{'words.generated.tor'} @:{'words.generated.hinzufugen'}\",\"add_relay\":\"@:{'words.generated.relais'} @:{'words.generated.hinzufugen'}\",\"attach_wash_certificate\":\"@:{'words.generated.waschzertifikat'} @:{'words.generated.anh'}?@:{'words.generated.ngen'}\",\"attached_files\":\"@.capitalize:{'words.generated.angeh'}?@:{'words.generated.ngte'} @:{'words.generated.dateien'}\",\"change_association\":\"@:{'words.generated.zuordnung'} ?@:{'words.generated.ndern'}\",\"change_invoice_collection\":\"@:{'words.generated.rechnungssammlung'} ?@:{'words.generated.ndern'}\",\"change_order\":\"{order} ?@:{'words.generated.ndern'}\",\"copy_link\":\"@.capitalize:{'words.generated.link'} @:{'words.generated.kopieren'}\",\"delete_booking\":\"@:{'templates.generated.compat.bookings.delete_booking'}\",\"delete_user\":\"@:{'words.generated.benutzer'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"download_invoice\":\"@:{'words.generated.rechnung'} @:{'words.generated.herunterladen'}\",\"edit_permissions\":\"@:{'words.generated.berechtigungen'} @:{'words.generated.bearbeiten'}\",\"enter_password\":\"@:{'words.generated.passwort'} @:{'words.generated.eingeben'}\",\"error_changing_password\":\"@.capitalize:{'words.generated.beim'} ?@:{'words.generated.ndern'} @:{'words.generated.des'} @:{'words.generated.passworts'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\",\"error_downloading_attachment\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.herunterladen'} @:{'words.generated.der'} @:{'words.generated.angeh'}?ngten @:{'words.generated.datei'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\",\"flags_section\":\"Flags\",\"gates_section\":\"@:{'words.generated.tore'}\",\"link_copied\":\"@.capitalize:{'words.generated.link'} @:{'words.generated.in'} @:{'words.generated.die'} @:{'words.generated.zwischenablage'} @:{'words.generated.kopiert'}\",\"login_as_customer\":\"@:{'templates.generated.compat.global.login_as_customer'}\",\"login_as_user\":\"@.capitalize:{'words.generated.als'} @:{'words.generated.benutzer'} @:{'words.generated.anmelden'}\",\"login_as_user_qr\":\"@.capitalize:{'words.generated.als'} @:{'words.generated.benutzer'} @:{'words.generated.anmelden'} (@:{'words.generated.qr'}-@:{'words.generated.code'})\",\"no_actions_defined\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.aktionen'} definiert\",\"open_attached_file\":\"@.capitalize:{'words.generated.angeh'}?@:{'words.generated.ngte'} @:{'words.generated.datei'} #{id} ?@:{'words.generated.ffnen'}\",\"open_fleet_landing\":\"Fleet Landing @:{'words.generated.offnen'}\",\"open_gates_tab\":\"@:{'words.generated.tore'}-@:{'words.generated.tab'} @:{'words.generated.offnen'}\",\"open_gateways_tab\":\"@:{'words.generated.gateways'}-@:{'words.generated.tab'} @:{'words.generated.offnen'}\",\"open_hardware_workspace_lanes\":\"Hardware-Arbeitsbereich (Spuren) @:{'words.generated.offnen'}\",\"open_legacy_gates\":\"@:{'words.generated.legacy'} Gates @:{'words.generated.offnen'}\",\"open_legacy_relays\":\"@:{'words.generated.legacy'} Relays @:{'words.generated.offnen'}\",\"open_legacy_self_serve\":\"@:{'words.generated.legacy'} @:{'words.generated.self'}-@.capitalize:{'words.generated.serve'} @:{'words.generated.offnen'}\",\"open_primary_gateway\":\"Primäres @:{'words.generated.gateway'} @:{'words.generated.offnen'}\",\"open_relays_tab\":\"@:{'words.generated.relais'}-@:{'words.generated.tab'} @:{'words.generated.offnen'}\",\"open_studio\":\"@:{'words.generated.studio'} @:{'words.generated.offnen'}\",\"password_changed\":\"@:{'words.generated.passwort'} @:{'words.generated.ge'}?@:{'words.generated.ndert'}\",\"password_changed_text\":\"@.capitalize:{'words.generated.das'} @:{'words.generated.passwort'} @:{'words.generated.wurde'} @:{'words.generated.ge'}?@:{'words.generated.ndert'}.\",\"please_enter_password\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ein'} @:{'words.generated.passwort'} @:{'words.generated.ein'}\",\"relays_section\":\"@:{'words.generated.relais'}\",\"rules_section\":\"@:{'templates.generated.compat.modals.rules'}\",\"scan_qr_to_login\":\"@.capitalize:{'words.generated.scannen'} @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} @:{'words.generated.qr'}-@:{'words.generated.code'}, @:{'words.generated.um'} @:{'words.generated.sich'} @:{'words.generated.als'} @:{'words.generated.benutzer'} @:{'words.generated.anzumelden'}\",\"self_serve_studio_section\":\"@:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.studio'}\",\"shortcut_pricing\":\"@:{'templates.generated.compat.global.prices'}\",\"shortcuts_section\":\"Verknüpfungen\",\"show_customer\":\"@:{'words.generated.kunden'} @:{'words.generated.anzeigen'}\",\"show_qr_code\":\"@:{'words.generated.qr'}-@:{'words.generated.code'} @:{'words.generated.anzeigen'}\",\"view_booking_new_tab\":\"@:{'words.generated.buchung'} @:{'words.generated.in'} @:{'words.generated.neuem'} @:{'words.generated.tab'} @:{'words.generated.anzeigen'}\",\"view_customer_new_tab\":\"@:{'words.generated.kunden'} @:{'words.generated.in'} @:{'words.generated.neuem'} @:{'words.generated.tab'} @:{'words.generated.anzeigen'}\",\"view_invoice_collection_new_tab\":\"@:{'words.generated.rechnungssammlung'} @:{'words.generated.in'} @:{'words.generated.neuem'} @:{'words.generated.tab'} @:{'words.generated.anzeigen'}\",\"view_lane_new_tab\":\"@:{'words.generated.spur'} @:{'words.generated.in'} @:{'words.generated.neuem'} @:{'words.generated.tab'} @:{'words.generated.anzeigen'}\",\"view_lane_setup_new_tab\":\"Spurkonfiguration @:{'words.generated.in'} @:{'words.generated.neuem'} @:{'words.generated.tab'} @:{'words.generated.anzeigen'}\",\"view_order_new_tab\":\"@:{'words.generated.auftrag'} @:{'words.generated.in'} @:{'words.generated.neuem'} @:{'words.generated.tab'} @:{'words.generated.anzeigen'}\",\"view_vehicle_new_tab\":\"@:{'words.generated.fahrzeug'} {reg} @:{'words.generated.in'} @:{'words.generated.neuem'} @:{'words.generated.tab'} @:{'words.generated.anzeigen'}\",\"accept_self_serve_wash\":\"Self-Service-Wäsche akzeptieren\",\"accept_self_serve_wash_confirm\":\"Diesen Entwurf mit den Self-Service-Details zu Kunde #{customerNumber} verschieben?\",\"accept_self_serve_wash_success\":\"Die Self-Service-Wäsche wurde akzeptiert.\",\"email_notifications_section\":\"E-Mail-Benachrichtigungen\",\"resend_booking_completion_confirmation\":\"(Re)send booking completion confirmation\",\"resend_booking_completion_confirmation_error\":\"The booking completion confirmation could not be sent\",\"resend_booking_completion_confirmation_success\":\"The booking completion confirmation has been sent\",\"resend_booking_confirmation\":\"(Re)send booking confirmation\",\"resend_booking_confirmation_error\":\"The booking confirmation could not be sent\",\"resend_booking_confirmation_success\":\"The booking confirmation has been sent\",\"resend_wash_certificate\":\"(Re)send wash certificate\",\"resend_wash_certificate_error\":\"The wash certificate could not be sent\",\"resend_wash_certificate_success\":\"The wash certificate has been sent\",\"self_serve_customer\":\"Kunde\",\"self_serve_driver\":\"Fahrer\",\"self_serve_elapsed\":\"Zeit\",\"self_serve_wash_attachment\":\"Self-Service-Wäsche\",\"self_serve_wash_attachment_for_customer\":\"Self-Service-Wäsche für Kunde #{customerNumber}\"},\"show_details\":\"@.capitalize:{'words.generated.details'} @:{'words.generated.anzeigen'}\",\"show_order_details\":\"@:{'words.generated.auftragsdetails'} @:{'words.generated.anzeigen'}\",\"stripe\":{\"actions\":{\"cancel_payment\":\"@:{'words.generated.zahlung'} @:{'words.generated.abbrechen'}\",\"delete_payment_intent\":\"@:{'words.generated.payment'} @:{'words.generated.intent'} @:{'words.generated.loschen'}\",\"open_setup\":\"@:{'words.generated.stripe'}-@:{'words.generated.einrichtung'} @:{'words.generated.offnen'}\",\"refresh_payment_status\":\"@:{'words.generated.zahlungsstatus'} @:{'words.generated.aktualisieren'}\",\"refresh_readers\":\"@:{'words.generated.terminals'} @:{'words.generated.aktualisieren'}\",\"refresh_setup\":\"@:{'words.generated.terminal'}-@:{'words.generated.einrichtung'} @:{'words.generated.aktualisieren'}\",\"retry_payment_state\":\"@:{'words.generated.zahlungsstatus'} @:{'words.generated.erneut'} @:{'words.generated.laden'}\",\"show_payment_details\":\"Zahlungsdetails @:{'words.generated.anzeigen'}\"},\"details\":{\"amount_received\":\"@:{'templates.generated.compat.pos.order.badges.amount_received'}\",\"metadata\":\"Metadaten\",\"payment_intent_id\":\"@:{'words.generated.payment'} @:{'words.generated.intent'} @.upper:{'words.generated.id'}\"},\"email\":{\"action\":\"@:{'words.generated.kartenzahlung'} (@.upper:{'words.generated.e'}-@:{'words.generated.mail'})\",\"address_placeholder\":\"@:{'words.generated.kunde'} [@:{'words.generated.at'}] beispiel.de\",\"errors\":{\"cancel\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.zahlungslink'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.storniert'} @:{'words.generated.werden'}.\",\"complete\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.bestellung'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.abgeschlossen'} @:{'words.generated.werden'}.\",\"load\":\"@.capitalize:{'words.generated.der'} @.capitalize:{'words.generated.status'} @:{'words.generated.des'} Zahlungslinks @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}.\",\"send\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.zahlungslink'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.gesendet'} @:{'words.generated.werden'}.\"},\"eyebrow\":\"@.capitalize:{'words.generated.online'}-@:{'words.generated.zahlung'}\",\"help\":\"@.capitalize:{'words.generated.senden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.dem'} @:{'words.generated.kunden'} @:{'words.generated.eine'} @:{'words.generated.stripe'}-Zahlungsrechnung @:{'words.generated.per'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}.\",\"invoice_link_label\":\"@:{'words.generated.zahlungslink'}\",\"messages\":{\"active\":\"@.capitalize:{'words.generated.fur'} @:{'words.generated.diese'} @:{'words.generated.bestellung'} @:{'words.generated.gibt'} @:{'words.generated.es'} @:{'words.generated.bereits'} @:{'words.generated.einen'} @:{'words.generated.aktiven'} @:{'words.generated.zahlungslink'}.\",\"closed\":\"@.capitalize:{'words.generated.der'} @.capitalize:{'words.generated.online'}-@:{'words.generated.zahlungslink'} @:{'words.generated.wurde'} @:{'words.generated.geschlossen'}.\",\"paid\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.zahlung'} @:{'words.generated.wurde'} empfangen. @.capitalize:{'words.generated.die'} @:{'words.generated.bestellung'} @:{'words.generated.kann'} @:{'words.generated.jetzt'} @:{'words.generated.abgeschlossen'} @:{'words.generated.werden'}.\",\"sent\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.zahlungslink'} @:{'words.generated.wurde'} @:{'words.generated.gesendet'}. @.capitalize:{'words.generated.der'} @.capitalize:{'words.generated.status'} @:{'words.generated.wird'} @:{'words.generated.automatisch'} @:{'words.generated.aktualisiert'}.\"},\"states\":{\"open\":\"@.capitalize:{'words.generated.warten'} @:{'words.generated.auf'} @:{'words.generated.zahlung'}\",\"uncollectible\":\"@:{'templates.generated.compat.pos.order.status.uncollectible'}\"}},\"errors\":{\"capture_payment_intent\":\"@:{'words.generated.payment'} @:{'words.generated.intent'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.erfasst'} @:{'words.generated.werden'}.\",\"create_payment_intent\":\"@:{'words.generated.payment'} @:{'words.generated.intent'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.erstellt'} @:{'words.generated.werden'}.\",\"delete_payment_intent\":\"@:{'words.generated.payment'} @:{'words.generated.intent'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.geloscht'} @:{'words.generated.werden'}.\",\"load_payment_intent_state\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.zahlungsstatus'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}.\",\"load_readers\":\"@:{'words.generated.stripe'}-@:{'words.generated.terminals'} @:{'words.generated.konnten'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}.\",\"select_reader_before_payment\":\"@.capitalize:{'words.generated.wahlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ein'} @:{'words.generated.terminal'}, bevor @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.zahlung'} @:{'words.generated.starten'}.\"},\"headings\":{\"card_payment\":\"@:{'words.generated.kartenzahlung'}\",\"terminal\":\"@:{'words.generated.stripe'} @:{'words.generated.terminal'}\"},\"messages\":{\"contact_superuser\":\"@.capitalize:{'words.generated.kontaktieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.einen'} @:{'words.generated.superuser'}, @:{'words.generated.um'} @:{'words.generated.das'} @:{'words.generated.stripe'}-@.capitalize:{'words.generated.setup'} @:{'words.generated.zu'} @:{'words.generated.offnen'} @:{'words.generated.und'} @:{'words.generated.einen'} Terminalstandort @:{'words.generated.fur'} @:{'words.generated.diese'} @:{'words.generated.abteilung'} auszuwählen.\",\"reader_unavailable\":\"@.capitalize:{'words.generated.derzeit'} @:{'words.generated.ist'} @:{'words.generated.kein'} @:{'words.generated.terminal'} @:{'words.generated.verfugbar'}. @.capitalize:{'words.generated.aktualisieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.liste'} @:{'words.generated.oder'} @:{'words.generated.warten'} @.capitalize:{'words.generated.sie'}, @:{'words.generated.bis'} @:{'words.generated.ein'} @:{'words.generated.terminal'} @:{'words.generated.online'} @:{'words.generated.ist'}.\",\"setup_required_title\":\"Kartenzahlungen @:{'words.generated.sind'} @:{'words.generated.fur'} @:{'words.generated.diese'} @:{'words.generated.abteilung'} @:{'words.generated.nicht'} eingerichtet.\",\"waiting_for_reader\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.zahlung'} läuft @:{'words.generated.auf'} @:{'words.generated.dem'} ausgewählten @:{'words.generated.terminal'}. @.capitalize:{'words.generated.aktualisieren'} @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} @.capitalize:{'words.generated.status'}, @:{'words.generated.wenn'} @:{'words.generated.das'} @:{'words.generated.terminal'} @:{'words.generated.die'} @:{'words.generated.karte'} @:{'words.generated.bereits'} @:{'words.generated.gelesen'} @:{'words.generated.hat'}.\"},\"reader\":{\"label\":\"@:{'words.generated.terminal'}\",\"no_selection\":\"@.capitalize:{'words.generated.kein'} @:{'words.generated.terminal'} @:{'words.generated.ausgewahlt'}\",\"none_available\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.terminals'} @:{'words.generated.verfugbar'}\",\"none_ready\":\"@.capitalize:{'words.generated.keine'} einsatzbereiten @:{'words.generated.terminals'}\",\"select\":\"@.capitalize:{'words.generated.wahlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ein'} @:{'words.generated.terminal'}\",\"status\":{\"busy\":\"@.capitalize:{'words.generated.in'} Verwendung\"},\"unavailable_group\":\"@.capitalize:{'words.generated.nicht'} verfügbare @:{'words.generated.terminals'}\"},\"states\":{\"cancelling\":\"@:{'words.generated.zahlung'} @:{'words.generated.wird'} @:{'words.generated.abgebrochen'}\",\"capturing\":\"@:{'words.generated.zahlung'} @:{'words.generated.wird'} @:{'words.generated.erfasst'}\",\"creating\":\"@:{'words.generated.zahlung'} @:{'words.generated.wird'} @:{'words.generated.erstellt'}\",\"failed\":\"@:{'templates.generated.compat.global.requires_action'}\",\"idle\":\"@:{'words.generated.bereit'} @:{'words.generated.zum'} @.capitalize:{'words.generated.start'}\",\"reader_unavailable\":\"@:{'words.generated.terminal'} @:{'words.generated.nicht'} @:{'words.generated.verfugbar'}\",\"ready_to_capture\":\"@:{'words.generated.bereit'} @:{'words.generated.zur'} Erfassung\",\"setup_required\":\"@:{'words.generated.einrichtung'} @:{'words.generated.erforderlich'}\",\"succeeded\":\"@:{'words.generated.zahlung'} @:{'words.generated.abgeschlossen'}\",\"waiting_for_reader\":\"@:{'words.generated.wartet'} @:{'words.generated.auf'} @:{'words.generated.terminal'}\"},\"tax_profile\":\"Steuerprofil\",\"tax_rates\":{\"danish_customer\":\"Dänischer @.capitalize:{'words.generated.kunde'}\",\"eu_customer\":\"EU-@.capitalize:{'words.generated.kunde'}\"}},\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.k'}?@:{'words.generated.nnen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.verk'}?@:{'words.generated.ufe'} @:{'words.generated.und'} @:{'words.generated.auftr'}?@:{'words.generated.ge'} @:{'words.generated.verwalten'}\",\"sync\":{\"subtitle\":\"@:{'words.generated.auftr'}?@:{'words.generated.ge'} @:{'words.generated.mit'} @:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.synchronisieren'}\",\"title\":\"@:{'words.generated.synchronisierung'}\"},\"transaction\":\"@:{'words.generated.transaktion'}\",\"use\":\"@.capitalize:{'words.generated.verwenden'}\",\"variant\":\"Variante\",\"waiting_for_booking\":\"@.capitalize:{'words.generated.warten'} @:{'words.generated.auf'} Abschluss @:{'words.generated.der'} @:{'words.generated.buchung'}\",\"warning\":\"@:{'templates.generated.compat.common.warning'}\",\"wash_certificate\":\"@:{'templates.generated.compat.pos.wash_certificate'}\",\"wash_certificate_already_attached\":\"@.upper:{'words.generated.a'} @:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.is'} @:{'words.generated.already'} @:{'words.generated.attached'} @:{'words.generated.to'} @:{'words.generated.this'} @:{'words.generated.order'}.\",\"wash_certificate_attached\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.generated'} @:{'words.generated.and'} @:{'words.generated.attached'} @:{'words.generated.to'} @:{'words.generated.the'} @:{'words.generated.order'}.\",\"wash_certificate_generation_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} generating @:{'words.generated.the'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"wash_certificate_item\":\"@:{'words.generated.waschzertifikat'}-Position\"},\"self_serve\":{\"condition_rules\":{\"add_question_rule\":\"@:{'templates.generated.compat.modals.add_question_rule'}\",\"subtitle\":\"@:{'words.generated.bedingungsregeln'} @:{'words.generated.verwalten'}\"},\"conditions\":{\"add\":\"@:{'words.generated.bedingung'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"manage\":\"@:{'words.generated.bedingungen'} @:{'words.generated.verwalten'}\",\"subtitle\":\"@:{'words.generated.self'}-@.capitalize:{'words.generated.serve'}-@:{'words.generated.bedingungen'} @:{'words.generated.verwalten'}\"},\"questions\":{\"add\":\"@:{'words.generated.frage'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"manage\":\"@:{'words.generated.fragen'} @:{'words.generated.verwalten'}\"},\"select_vehicle_type_first\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.zuerst'} @:{'words.generated.einen'} @:{'words.generated.fahrzeugtyp'} @:{'words.generated.aus'}\",\"tasks\":{\"add\":\"@:{'words.generated.aufgabe'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"manage\":\"@:{'words.generated.aufgaben'} @:{'words.generated.verwalten'}\"},\"try\":\"@.capitalize:{'words.generated.testen'}\",\"vehicle_conditions\":{\"add\":\"@:{'words.generated.fahrzeugbedingung'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"filter_by_reg\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.kennzeichen'} @:{'words.generated.filtern'}\",\"subtitle\":\"@:{'words.generated.fahrzeugbedingungen'} @:{'words.generated.verwalten'}\"}},\"time_bookings\":{\"new\":{\"subtitle\":\"@.capitalize:{'words.generated.neue'} @:{'words.generated.zeitbuchung'} @:{'words.generated.erstellen'}\",\"title\":\"@.capitalize:{'words.generated.neue'} @:{'words.generated.zeitbuchung'}\"},\"opening_hours\":{\"subtitle\":\"?@:{'words.generated.ffnungszeiten'} @:{'words.generated.verwalten'}\"},\"subtitle\":\"@:{'words.generated.zeitbuchungen'} @:{'words.generated.verwalten'}\",\"title\":\"@:{'templates.generated.compat.department_dashboard.sidebar.time_bookings'}\",\"types\":{\"subtitle\":\"@:{'words.generated.buchungsarten'} @:{'words.generated.verwalten'}\",\"title\":\"@:{'words.generated.buchungsarten'}\"}},\"wash_lanes\":{\"single\":{\"subtitle\":\"Waschspurdetails\"},\"subtitle\":\"@:{'words.generated.waschspuren'} @:{'words.generated.verwalten'}\",\"title\":\"@:{'templates.generated.compat.objects.department_lanes.multiple'}\"}},\"auth\":{\"country_code\":\"Ländervorwahl\",\"customer_login_title\":\"Kundenanmeldung\",\"driver_login_title\":\"Fahreranmeldung\",\"forgot_password\":\"@:{'words.generated.passwort'} vergessen\",\"operator_tagline\":\"@.capitalize:{'words.generated.truckwash'}.@:{'words.generated.io'} ? @:{'words.generated.digitale'} @.upper:{'words.generated.l'}?@:{'words.generated.sungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.lkw'}-@.upper:{'words.generated.w'}?@:{'words.generated.sche'}\",\"phone_number\":\"@:{'templates.generated.compat.global.phone_number'}\",\"remember_me\":\"@.capitalize:{'words.generated.angemeldet'} @:{'words.generated.bleiben'}\",\"terms_acceptance\":\"@.capitalize:{'words.generated.mit'} @:{'words.generated.klick'} @:{'words.generated.auf'} \\\"@.capitalize:{'words.generated.anmelden'}\\\" akzeptieren @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} Datenschutzrichtlinie @:{'words.generated.und'} @:{'words.generated.die'} Nutzungsbedingungen @:{'words.generated.von'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}\",\"username\":\"@:{'words.generated.benutzername'}\",\"your_username\":\"@:{'words.generated.ihr'} @:{'words.generated.benutzername'}\"},\"book_wash\":{\"title_desc\":\"@.capitalize:{'words.generated.buchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.in'} einer @:{'words.generated.unserer'} @:{'words.generated.abteilungen'} ? optional @:{'words.generated.mit'} Sicherheitsplombe.\",\"title\":\"@:{'templates.generated.compat.guest.book_wash'}\"},\"bookings_table\":{\"and_one_other\":\"{name} @:{'words.generated.und'} 1 weiterer\",\"and_others\":\"{name} @:{'words.generated.und'} {count} @:{'words.generated.weitere'}\",\"no_services\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.leistungen'}\",\"none_registered\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.registriert'}\",\"pcs\":\"Stk.\",\"po\":\"@:{'words.generated.po'}\",\"services\":\"Dienstleistungen\",\"unknown_service\":\"@.capitalize:{'words.generated.unbekannter'} @.capitalize:{'words.generated.service'}\",\"wash\":\"@:{'words.generated.wasche'}\"},\"bookings\":{\"at_time\":\"kl.\",\"booking_number\":\"@:{'words.generated.buchungsnummer'}\",\"cancel_booking\":\"@:{'words.generated.buchung'} @:{'words.generated.stornieren'}\",\"complete_booking\":\"@:{'words.generated.fullfør'} bestilling\",\"confirm_booking\":\"@:{'words.generated.buchung'} @:{'words.generated.best'}?@:{'words.generated.tigen'}\",\"date\":\"@:{'templates.generated.compat.common.date'}\",\"delete_booking\":\"@:{'words.generated.buchung'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"edit_booking\":\"@:{'words.generated.buchung'} @:{'words.generated.bearbeiten'}\",\"expected_at\":\"@.capitalize:{'words.generated.erwartet'}\",\"new_booking\":\"@.capitalize:{'words.generated.neue'} @:{'words.generated.buchung'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.buchungsnummer'}, @.capitalize:{'words.generated.kunde'} @:{'words.generated.suchen'}\",\"statuses\":{\"confirmed\":\"@.capitalize:{'words.generated.best'}?@:{'words.generated.tigt'}\"},\"subtitle\":\"@:{'words.generated.buchungen'} @:{'words.generated.verwalten'}\",\"view_booking\":\"@:{'words.generated.buchung'} @:{'words.generated.anzeigen'}\"},\"calendar\":{\"april\":\"April\",\"august\":\"August\",\"day\":\"@:{'words.generated.tag'}\",\"december\":\"Dezember\",\"february\":\"Februar\",\"fullcalendar\":{\"allDay\":\"Hele dagen\",\"dayHeaderFormat\":\"ddd @:{'words.generated.d'}/@.upper:{'words.generated.m'}\",\"eventTimeFormat\":\"HH:mm\",\"list\":\"@:{'words.generated.liste'}\",\"titleFormat\":\"dddd @:{'words.generated.d'}. MMMM YYYY\"},\"january\":\"Januari\",\"july\":\"Juli\",\"june\":\"Juni\",\"march\":\"@.upper:{'words.generated.m'}?rz\",\"may\":\"@:{'words.generated.mai'}\",\"monday\":\"Måndag\",\"november\":\"November\",\"october\":\"Oktober\",\"saturday\":\"Lördag\",\"september\":\"September\",\"sunday\":\"Söndag\",\"tuesday\":\"Tisdag\",\"week\":\"Uke\"},\"collected_invoice\":{\"move_customer\":{\"card_title\":\"Move to customer\",\"confirm_button\":\"Move\",\"confirm_text\":\"Move invoice collection #{id} and {count} orders to customer #{customer}?\",\"confirm_title\":\"Confirm move\",\"current_customer\":\"Current customer: #{customer}\",\"customer_value\":\"Customer #{customer}\",\"error_title\":\"Could not move invoice collection\",\"invalid_customer\":\"Enter a valid customer number.\",\"locked\":\"Locked\",\"same_customer\":\"Choose another customer than the current one.\",\"success_text\":\"{count} orders were moved to customer #{customer}.\",\"success_title\":\"Invoice collection moved\",\"title\":\"Move invoice collection\"},\"economic\":{\"booked_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.ist'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.gebucht'}, @:{'words.generated.keine'} @:{'words.generated.weiteren'} @:{'words.generated.aktionen'} @:{'words.generated.sind'} @:{'words.generated.erforderlich'}.\",\"booked_with_economic\":\"@:{'words.generated.rechnung'} @:{'words.generated.mit'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.gebucht'}\",\"create_invoice\":\"@:{'words.generated.rechnung'} @:{'words.generated.erstellen'}\",\"draft_customer_blocked_desc\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.rechnungssammlung'} @:{'words.generated.verwendet'} @:{'words.replication.article.host_mention'} @:{'words.generated.konfigurierten'} @:{'words.generated.entwurfskunden'} @:{'words.generated.und'} @:{'words.generated.kann'} @:{'words.generated.daher'} @:{'words.generated.nicht'} @:{'words.generated.nach'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.exportiert'} @:{'words.generated.werden'}.\",\"draft_customer_blocked_title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.export'} @:{'words.generated.ist'} blockiert\",\"fixed_price_added\":\"@:{'words.generated.festpreis'} @:{'words.generated.hinzugef'}?@:{'words.generated.gt'}\",\"fixed_price_added_desc\":\"@:{'words.generated.festpreis'} @:{'words.generated.wurde'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.hinzugef'}?@:{'words.generated.gt'}\",\"invoice_create_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.erstellen'} @:{'words.generated.der'} @:{'words.generated.rechnung'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\",\"invoice_created\":\"@:{'words.generated.rechnung'} @:{'words.generated.erstellt'}\",\"invoice_created_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.wurde'} @:{'words.generated.erfolgreich'} @:{'words.generated.erstellt'}.\",\"invoice_sent\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.wurde'} @:{'words.generated.gesendet'}\",\"invoice_sent_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.wurde'} @:{'words.generated.an'} @:{'words.replication.article.host_mention'} @:{'words.generated.kunden'} @:{'words.generated.gesendet'}\",\"invoice_split\":\"@:{'words.generated.rechnungssammlung'} @:{'words.generated.aufgeteilt'}\",\"invoice_split_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnungssammlung'} @:{'words.generated.wurde'} @:{'words.generated.erfolgreich'} @:{'words.generated.aufgeteilt'}.\",\"invoice_split_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.aufteilen'} @:{'words.generated.der'} @:{'words.generated.rechnungssammlung'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\",\"invoice_unlinked\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.wurde'} @:{'words.generated.getrennt'}\",\"invoice_unlinked_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.wurde'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.getrennt'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.beachten'} @.capitalize:{'words.generated.sie'}, @:{'words.generated.dass'} @:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.m'}?@:{'words.generated.glicherweise'} @:{'words.generated.weiterhin'} @:{'words.generated.existiert'}.\",\"saved_as_draft\":\"@:{'words.generated.rechnung'} @:{'words.generated.als'} @:{'words.generated.entwurf'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.gespeichert'}\",\"saved_as_draft_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.wurde'} @:{'words.generated.als'} @:{'words.generated.entwurf'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.gespeichert'} @:{'words.generated.und'} @:{'words.generated.kann'} dort @:{'words.generated.direkt'} @:{'words.generated.gebucht'} @:{'words.generated.werden'}.\",\"special_removed\":\"@:{'words.generated.sondervereinbarungen'} @:{'words.generated.entfernt'}\",\"special_removed_desc\":\"@:{'words.generated.sondervereinbarungen'} @:{'words.generated.wurden'} @:{'words.generated.aus'} @:{'words.generated.der'} @:{'words.generated.rechnung'} @:{'words.generated.entfernt'}.\",\"split_confirm\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.diese'} @:{'words.generated.rechnungssammlung'} @:{'words.generated.aufteilen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"split_yes\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.aufteilen'}\",\"subscriptions_added\":\"@:{'words.generated.abonnements'} @:{'words.generated.hinzugef'}?@:{'words.generated.gt'}\",\"subscriptions_added_desc\":\"@:{'words.generated.fahrzeugabonnements'} @:{'words.generated.wurden'} @:{'words.generated.erfolgreich'} @:{'words.generated.hinzugef'}?@:{'words.generated.gt'}.\",\"undo_send\":\"@.capitalize:{'words.generated.senden'} @:{'words.generated.r'}?@:{'words.generated.ckg'}?@:{'words.generated.ngig'} machen, @:{'words.generated.zur'}?@:{'words.generated.ck'}\",\"unlink_confirm\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.trennen'} @:{'words.generated.m'}?@:{'words.generated.chten'}? @.capitalize:{'words.generated.bitte'} @:{'words.generated.beachten'} @.capitalize:{'words.generated.sie'}, @:{'words.generated.dass'} @:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.m'}?@:{'words.generated.glicherweise'} @:{'words.generated.weiterhin'} @:{'words.generated.existiert'}. @.capitalize:{'words.generated.sie'} @:{'words.generated.m'}?@:{'words.generated.ssen'} @:{'words.generated.sie'} @:{'words.generated.bei'} Bedarf @:{'words.generated.selbst'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.l'}?@:{'words.generated.schen'}.\",\"unlink_yes\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.rechnung'} @:{'words.generated.trennen'}\",\"use_economic_desc\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.zum'} @.capitalize:{'words.generated.erstellen'} @:{'words.generated.von'} @:{'words.generated.rechnungen'} @:{'words.generated.verwenden'}\"},\"stripe\":{\"and_booked\":\"@:{'words.generated.und'} @:{'words.generated.gebucht'}\",\"and_saved_draft\":\"@:{'words.generated.und'} @:{'words.generated.als'} @:{'words.generated.entwurf'} @:{'words.generated.gespeichert'}\",\"booked_with\":\"@:{'words.generated.gebucht'} @:{'words.generated.mit'}\",\"but_not_booked\":\"@:{'words.generated.aber'} @:{'words.generated.nicht'} @:{'words.generated.gebucht'}\",\"in_economic\":\"@:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"invoice_booked\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.ist'} @:{'words.generated.gebucht'}\",\"invoice_booked_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.ist'} @:{'words.generated.in'} @:{'words.generated.stripe'} @:{'words.generated.gebucht'}\",\"invoice_paid\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.ist'} @:{'words.generated.bezahlt'}\",\"invoice_status\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.ist'} {status}\",\"not_booked\":\"@:{'words.generated.nicht'} @:{'words.generated.gebucht'}\",\"payment_amount\":\"Zahlungsbetrag\",\"payment_id\":\"@:{'words.generated.zahlungs'}-@.upper:{'words.generated.id'}\",\"payment_overview\":\"@:{'words.generated.zahlungs'}?@:{'words.generated.bersicht'}\",\"payment_status\":\"@:{'templates.generated.compat.global.payment_status'}\",\"saved_as_draft\":\"@:{'words.generated.als'} @:{'words.generated.entwurf'} @:{'words.generated.gespeichert'} @:{'words.generated.in'}\",\"stripe_fees\":\"@:{'words.generated.stripe'}-Geb?@:{'words.generated.hren'}\"}},\"common\":{\"about\":\"?@:{'words.generated.ber'}\",\"actions\":\"@:{'words.generated.aktionen'}\",\"active\":\"Aktiv\",\"add\":\"@.capitalize:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"addons\":\"Optionen\",\"address\":\"@:{'words.generated.adresse'}\",\"all\":\"@.capitalize:{'words.generated.alle'}\",\"and\":\"@:{'words.generated.und'}\",\"apply\":\"Anwenden\",\"approved\":\"Genehmigt\",\"approx\":\"ca.\",\"are\":\"@:{'words.generated.sind'}\",\"back\":\"@:{'words.generated.zuruck'}\",\"booking_created\":\"@.capitalize:{'words.generated.ihre'} @:{'words.generated.buchung'} @:{'words.generated.wurde'} @:{'words.generated.erstellt'}.\",\"bookings\":\"@:{'words.generated.buchungen'}\",\"can\":\"@:{'words.generated.kann'}\",\"cancel\":\"@.capitalize:{'words.generated.abbrechen'}\",\"cancelled\":\"@.capitalize:{'words.generated.storniert'}\",\"city\":\"Stadt\",\"clear\":\"@.capitalize:{'words.generated.leeren'}\",\"click_to_copy\":\"@:{'words.generated.klicken'} @:{'words.generated.zum'} @.capitalize:{'words.generated.kopieren'}\",\"close\":\"Schließen\",\"collapse\":\"@:{'templates.generated.compat.common.hide'}\",\"comment\":\"Kommentar\",\"comments\":\"Kommentare\",\"company\":\"@:{'words.generated.unternehmen'}\",\"completed\":\"@.capitalize:{'words.generated.abgeschlossen'}\",\"confirm\":\"Bestätigen\",\"contact\":\"@:{'words.generated.kontakt'}\",\"continue\":\"@:{'templates.generated.compat.common.next'}\",\"copied\":\"@.capitalize:{'words.generated.kopiert'}\",\"copy_error\":\"@:{'words.generated.fehlermeldung'} @:{'words.generated.kopieren'}\",\"copy\":\"@.capitalize:{'words.generated.kopieren'}\",\"could\":\"@:{'words.generated.konnte'}\",\"country\":\"@:{'words.generated.land'}\",\"create\":\"@.capitalize:{'words.generated.erstellen'}\",\"created\":\"@.capitalize:{'words.generated.erstellt'}\",\"customer_conflict\":{\"help_text\":\"Dieses @:{'words.generated.kennzeichen'} @:{'words.generated.gehoert'} @:{'words.generated.zu'} einem anderen @:{'words.generated.gespeicherten'} @:{'words.generated.kunden'}. @:{'words.generated.waehlen'} @.capitalize:{'words.generated.sie'}, ob @:{'words.generated.der'} @:{'words.generated.ausgewaehlte'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.beibehalten'} oder zum @:{'words.generated.fahrzeugkunden'} @:{'words.generated.gewechselt'} @:{'words.generated.werden'} @:{'words.generated.soll'}.\",\"keep_selected_customer\":\"@:{'words.generated.ausgewaehlten'} @:{'words.generated.kunden'} @:{'words.generated.behalten'}\",\"matched_customer_label\":\"@:{'words.generated.fahrzeugkunde'}\",\"title\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.fuer'} @:{'words.generated.kennzeichen'} @:{'words.generated.bestaetigen'}\",\"use_vehicle_customer\":\"@:{'words.generated.fahrzeugkunde'} verwenden\",\"warning_text\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.ausgewaehlte'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.und'} @:{'words.generated.der'} @:{'words.generated.fahrzeugkunde'} stimmen @:{'words.generated.nicht'} @:{'words.generated.ueberein'}.\"},\"customer_creation_error_generic\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.erstellen'} @:{'words.generated.des'} @:{'words.generated.kunden'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.versuchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.es'} @:{'words.generated.erneut'}.\",\"customer_creation_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.erstellen'} @:{'words.generated.des'} @:{'words.generated.kunden'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}: {error}\",\"customer_id\":\"@:{'words.generated.kunden'}-@.upper:{'words.generated.id'}\",\"customer_name\":\"@:{'words.generated.kundenname'}\",\"customer_note\":\"@:{'words.generated.notiz'} vom @:{'words.generated.kunden'}\",\"customer_notes\":\"@:{'words.generated.kundennotizen'}\",\"customer_number\":\"@:{'words.generated.kundennummer'}\",\"customer_picker\":{\"select_card_payment\":\"@:{'words.generated.zahlungskarte'}\",\"select_customer_invoice\":\"@:{'words.generated.kundenrechnung'}\",\"select_draft_customer\":\"@:{'words.generated.spater'}\",\"select_new_customer\":\"Neuer @.capitalize:{'words.generated.kunde'}\",\"select_payment_form\":\"@:{'words.generated.zahlungsart'} wählen\",\"selected_customer\":\"@:{'words.generated.ausgewahlter'} @.capitalize:{'words.generated.kunde'}\"},\"customer_prices\":\"@:{'words.generated.kundenpreise'}\",\"customer_wishes\":\"@:{'words.generated.kundenwunsche'}\",\"customer\":\"@.capitalize:{'words.generated.kunde'}\",\"customers\":\"@:{'words.generated.kunden'}\",\"cut\":\"Ausschneiden\",\"dashboard\":\"@:{'words.generated.dashboard'}\",\"date\":\"@:{'words.generated.datum'}\",\"days\":{\"friday\":\"Freitag\",\"monday\":\"Montag\",\"saturday\":\"Samstag\",\"sunday\":\"Sonntag\",\"thursday\":\"Donnerstag\",\"tuesday\":\"Dienstag\",\"wednesday\":\"Mittwoch\"},\"delete\":\"@.upper:{'words.generated.l'}?@:{'words.generated.schen'}\",\"department_allocations\":\"@:{'words.generated.abteilungszuordnungen'}\",\"department_id\":\"Abteilungs-@.upper:{'words.generated.id'}\",\"department\":\"@:{'words.generated.abteilung'}\",\"departments\":\"@:{'words.generated.abteilungen'}\",\"description\":\"Beschreibung\",\"details\":\"@.capitalize:{'words.generated.details'}\",\"disabled\":\"@.capitalize:{'words.generated.deaktiviert'}\",\"discount\":\"@.capitalize:{'words.generated.rabatt'}\",\"done\":\"Fertig\",\"download\":\"@.capitalize:{'words.generated.herunterladen'}\",\"during_the_day\":\"@:{'words.generated.im'} Laufe @:{'words.generated.des'} Tages\",\"edit\":\"@.capitalize:{'words.generated.bearbeiten'}\",\"email\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'}\",\"enabled\":\"@.capitalize:{'words.generated.aktiviert'}\",\"entries_per_page\":\"Eintr?@:{'words.generated.ge'} @:{'words.generated.pro'} @:{'words.generated.seite'}\",\"error_creating_booking\":\"@:{'words.generated.fehler'} @:{'words.generated.beim'} @.capitalize:{'words.generated.erstellen'} @:{'words.generated.der'} @:{'words.generated.buchung'}\",\"error\":\"@:{'words.generated.fehler'}\",\"expand\":\"Erweitern\",\"expired\":\"Abgelaufen\",\"export\":\"@.capitalize:{'words.generated.exportieren'}\",\"failed\":\"@.capitalize:{'words.generated.fehlgeschlagen'}\",\"filter\":\"@.capitalize:{'words.generated.filter'}\",\"finish\":\"@.capitalize:{'words.generated.abschlie'}?@:{'words.generated.en'}\",\"first\":\"Erste\",\"from\":\"@.capitalize:{'words.generated.von'}\",\"had\":\"hatte\",\"has\":\"@:{'words.generated.hat'}\",\"have\":\"@:{'words.generated.haben'}\",\"help\":\"@:{'words.generated.hilfe'}\",\"hide\":\"@.capitalize:{'words.generated.ausblenden'}\",\"home\":\"Startseite\",\"hour\":\"Stunde\",\"import\":\"@.capitalize:{'words.generated.importieren'}\",\"inactive\":\"Inaktiv\",\"info\":\"Info\",\"invoice\":\"@:{'words.generated.rechnung'}\",\"invoices\":\"@:{'words.generated.rechnungen'}\",\"is_dev_on\":\"Entwicklungsmodus\",\"is\":\"@:{'words.generated.ist'}\",\"language\":\"Sprache\",\"last_wash\":\"@.capitalize:{'words.generated.letzte'} @:{'words.generated.wasche'}\",\"last\":\"@.capitalize:{'words.generated.letzte'}\",\"less\":\"@.capitalize:{'words.generated.weniger'}\",\"loading\":\"@.capitalize:{'words.generated.wird'} @:{'words.generated.geladen'}...\",\"login\":\"@.capitalize:{'words.generated.anmelden'}\",\"logout\":\"Abmelden\",\"may\":\"@:{'templates.generated.compat.common.can'}\",\"might\":\"@:{'words.generated.k'}?nnte\",\"minute\":\"@.capitalize:{'words.generated.minute'}\",\"month\":\"@:{'words.generated.monat'}\",\"more\":\"@.capitalize:{'words.generated.mehr'}\",\"must\":\"@:{'words.generated.muss'}\",\"name\":\"@.capitalize:{'words.generated.name'}\",\"new\":\"@.capitalize:{'words.generated.neu'}\",\"next_step\":\"@.upper:{'words.generated.n'}?@:{'words.generated.chster'} @:{'words.generated.schritt'}\",\"next\":\"@.capitalize:{'words.generated.weiter'}\",\"no\":\"@.capitalize:{'words.generated.nein'}\",\"none_registered\":\"@.capitalize:{'words.generated.keine'} registriert\",\"none_services_added\":\"Noch @:{'words.generated.keine'} Leistungen hinzugef?gt\",\"none\":\"@.capitalize:{'words.generated.keine'}\",\"not_available\":\"@.capitalize:{'words.generated.nicht'} @:{'words.generated.verf'}?@:{'words.generated.gbar'}\",\"not\":\"@:{'words.generated.nicht'}\",\"note\":\"@:{'words.generated.notiz'}\",\"notes\":\"Notizen\",\"of\":\"@:{'words.generated.von'}\",\"ok\":\"OK\",\"open\":\"?@:{'words.generated.ffnen'}\",\"optional\":\"@.capitalize:{'words.generated.optional'}\",\"or\":\"@:{'words.generated.oder'}\",\"order_cancelled\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.buchung'} @:{'words.generated.wurde'} storniert\",\"order_created\":\"@.capitalize:{'words.generated.ihre'} @:{'words.generated.buchung'} @:{'words.generated.wurde'} erstellt.\",\"order_desc\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} im @:{'words.generated.ganzen'} Land @:{'words.generated.buchen'}\",\"order_id_incorrect\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.buchungs'}-@.upper:{'words.generated.id'} @:{'words.generated.ist'} falsch\",\"order_id_required\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.m'}?ssen @:{'words.generated.die'} @:{'words.generated.buchungs'}-@.upper:{'words.generated.id'} @:{'words.generated.eingeben'}, @:{'words.generated.um'} @:{'words.generated.die'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} ohne @:{'words.generated.waschzertifikat'} abzuschlie?@:{'words.generated.en'}\",\"order_info\":\"@:{'words.generated.buchungsinformationen'}\",\"order\":\"@:{'words.generated.auftrag'}\",\"orders\":\"@:{'words.generated.auftr'}?@:{'words.generated.ge'}\",\"page_x_of_y\":\"@:{'words.generated.seite'} {x} @:{'words.generated.von'} {y}\",\"paste\":\"Einf?@:{'words.generated.gen'}\",\"pause\":\"Pausieren\",\"pending\":\"Ausstehend\",\"per_page\":\"@:{'words.generated.pro'} @:{'words.generated.seite'}\",\"phone\":\"@:{'words.generated.telefon'}\",\"preview\":\"@:{'words.generated.vorschau'}\",\"previous_step\":\"@:{'words.generated.vorheriger'} @:{'words.generated.schritt'}\",\"previous\":\"@.capitalize:{'words.generated.vorherige'}\",\"price\":\"@:{'words.generated.preis'}\",\"print\":\"@.capitalize:{'words.generated.drucken'}\",\"privacy\":\"Datenschutz\",\"processing\":\"@:{'words.generated.verarbeitung'}\",\"product\":\"@.capitalize:{'words.generated.produkt'}\",\"products\":\"@:{'words.generated.produkte'}\",\"profile\":\"@:{'words.generated.profil'}\",\"quantity\":\"@:{'words.generated.anzahl'}\",\"redo\":\"Wiederholen\",\"reference\":\"@:{'words.generated.referenz'}\",\"refresh\":\"@:{'templates.generated.compat.common.update'}\",\"register\":\"@.capitalize:{'words.generated.registrieren'}\",\"rejected\":\"Abgelehnt\",\"remove\":\"@.capitalize:{'words.generated.entfernen'}\",\"required\":\"@.capitalize:{'words.generated.erforderlich'}\",\"reset\":\"@.capitalize:{'words.generated.zur'}?@:{'words.generated.cksetzen'}\",\"results\":\"@:{'words.generated.ergebnisse'}\",\"resume\":\"Fortsetzen\",\"retry\":\"@.capitalize:{'words.generated.erneut'} @:{'words.generated.versuchen'}\",\"role\":\"Rolle\",\"roles\":\"@:{'words.generated.rollen'}\",\"roless\":{\"admin\":\"@:{'words.generated.administrator'}\",\"employee\":\"@:{'words.generated.mitarbeiter'}\",\"manager\":\"@:{'words.generated.leiter'}\"},\"save\":\"@.capitalize:{'words.generated.speichern'}\",\"search_booking\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.buchung'} @:{'words.generated.suchen'}\",\"search_customer_by_number\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.kundennummer'} @:{'words.generated.suchen'}\",\"search_customer\":\"@:{'words.generated.sok'} @:{'words.generated.kund'}\",\"search_customers_ellipsis\":\"@:{'words.generated.kunden'} @:{'words.generated.suchen'}...\",\"search_customers\":\"@.capitalize:{'words.generated.in'} @:{'words.generated.kunden'} @:{'words.generated.suchen'}\",\"search_cvr\":\"CVR-Nummer @:{'words.generated.suchen'}...\",\"search_department\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.abteilung'} @:{'words.generated.suchen'}\",\"search_departments\":\"@:{'words.generated.abteilungen'} @:{'words.generated.suchen'}...\",\"search_driver\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.fahrer'} @:{'words.generated.suchen'}\",\"search_for\":\"@.capitalize:{'words.generated.suchen'} @:{'words.generated.nach'}\",\"search_license_plate\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.kennzeichen'} @:{'words.generated.suchen'}\",\"search_order\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.auftrag'} @:{'words.generated.suchen'}\",\"search_phone\":\"@.capitalize:{'words.generated.nach'} Telefonnummer @:{'words.generated.suchen'}\",\"search_products_ellipsis\":\"@:{'words.generated.produkte'} @:{'words.generated.suchen'}...\",\"search_products\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.produkten'} @:{'words.generated.suchen'}\",\"search_scanners\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.kennzeichenscannern'} @:{'words.generated.suchen'}\",\"search_subuser\":\"@.capitalize:{'words.generated.nach'} Unterbenutzer @:{'words.generated.suchen'}\",\"search_transactions\":\"@.capitalize:{'words.generated.in'} Transaktionen @:{'words.generated.suchen'}\",\"search_user\":\"@.capitalize:{'words.generated.nach'} Benutzer @:{'words.generated.suchen'}\",\"search\":\"@.capitalize:{'words.generated.suchen'}\",\"second\":\"Sekunde\",\"see_more\":\"@.capitalize:{'words.generated.mehr'} @:{'words.generated.anzeigen'}\",\"select\":\"@.capitalize:{'words.generated.auswahlen'}\",\"selected\":\"@.capitalize:{'words.generated.ausgew'}?@:{'words.generated.hlt'}\",\"service\":\"@.capitalize:{'words.generated.service'}\",\"services\":\"@:{'words.generated.leistungen'}\",\"settings\":\"@:{'words.generated.einstellungen'}\",\"shall\":\"@:{'words.generated.soll'}\",\"should\":\"@:{'words.generated.sollte'}\",\"show\":\"@.capitalize:{'words.generated.anzeigen'}\",\"sort\":\"@.capitalize:{'words.generated.sortieren'}\",\"start\":\"@.capitalize:{'words.generated.starten'}\",\"status\":\"@.capitalize:{'words.generated.status'}\",\"stop\":\"Stoppen\",\"submit\":\"@.capitalize:{'words.generated.senden'}\",\"subtotal\":\"Zwischensumme\",\"success\":\"Erfolg\",\"support\":\"@:{'words.generated.support'}\",\"tax\":\"@:{'words.generated.mwst'}.\",\"terms\":\"@:{'words.generated.bedingungen'}\",\"thank_you\":\"@:{'words.generated.danke'} @:{'words.generated.fur'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.buchung'}!\",\"time\":\"@.capitalize:{'words.generated.zeit'}\",\"to\":\"@:{'words.generated.bis'}\",\"today\":\"@.capitalize:{'words.generated.heute'}\",\"tomorrow\":\"Morgen\",\"total\":\"@.capitalize:{'words.generated.gesamt'}\",\"unable_to_load\":\"@:{'words.generated.daten'} @:{'words.generated.konnten'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}, @:{'words.generated.es'} @:{'words.generated.wurde'} @:{'words.generated.jedoch'} @:{'words.generated.kein'} @:{'words.generated.fehler'} @:{'words.generated.gefunden'}.\",\"undo\":\"@.upper:{'words.generated.r'}?@:{'words.generated.ckg'}?@:{'words.generated.ngig'}\",\"unknown_error\":\"@.capitalize:{'words.generated.unbekannter'} @:{'words.generated.fehler'}\",\"unknown\":\"@:{'words.generated.unbekannt'}\",\"unselect\":\"Auswahl @:{'words.generated.aufheben'}\",\"update\":\"@.capitalize:{'words.generated.aktualisieren'}\",\"updated\":\"@.capitalize:{'words.generated.aktualisiert'}\",\"upload\":\"@.capitalize:{'words.generated.hochladen'}\",\"user\":\"@:{'words.generated.benutzer'}\",\"vehicle\":\"@:{'words.generated.fahrzeug'}\",\"vehicles\":\"@:{'words.generated.fahrzeuge'}\",\"via\":\"@.capitalize:{'words.generated.via'}\",\"view_booking\":\"@:{'words.generated.buchung'} anzeigen\",\"view\":\"@:{'templates.generated.compat.common.show'}\",\"warning\":\"Warnung\",\"was\":\"@:{'words.generated.war'}\",\"week\":\"@:{'words.generated.woche'}\",\"were\":\"waren\",\"will\":\"@:{'words.generated.wird'}\",\"would\":\"@:{'words.generated.w'}?rde\",\"year\":\"@:{'words.generated.jahr'}\",\"yes\":\"@.capitalize:{'words.generated.ja'}\",\"yesterday\":\"Gestern\",\"zip\":\"Postleitzahl\"},\"configuration\":{\"backups\":{\"active_jobs\":\"Active jobs\",\"actions\":\"Actions\",\"app_data_enabled\":\"Include app data\",\"app_data_enabled_desc\":\"Back up app-owned object buckets together with the database.\",\"backup\":\"Backup\",\"backup_created\":\"@:{'words.generated.backup'} @:{'words.generated.erstellt'}\",\"backup_created_success\":\"@:{'words.generated.backup'} @:{'words.generated.wurde'} @:{'words.generated.erfolgreich'} @:{'words.generated.erstellt'}.\",\"backup_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.erstellen'} @:{'words.generated.des'} @:{'words.generated.backups'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\",\"backup_queued\":\"Backup queued\",\"backup_queued_success\":\"The backup job has been queued.\",\"backup_schedule\":\"@:{'words.generated.backup'}-Zeitplan\",\"backups\":\"Backups\",\"completed_at\":\"Completed\",\"create_backup\":\"@:{'words.generated.backup'} @:{'words.generated.erstellen'}\",\"create_backup_confirm\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ein'} @:{'words.generated.backup'} @:{'words.generated.erstellen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"delete_backup\":\"@:{'words.generated.backup'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"disabled\":\"Disabled\",\"download_backup\":\"@:{'words.generated.backup'} @:{'words.generated.herunterladen'}\",\"enable_system\":\"@:{'words.generated.backup'}-@.capitalize:{'words.generated.system'} @:{'words.generated.aktivieren'}\",\"enable_system_desc\":\"@:{'words.generated.backup'}-@.capitalize:{'words.generated.system'} @:{'words.generated.aktivieren'} @:{'words.generated.oder'} @:{'words.generated.deaktivieren'}.\",\"enabled\":\"Enabled\",\"general_settings_desc\":\"@:{'words.generated.allgemeine'} @:{'words.generated.einstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.das'} @:{'words.generated.backup'}-@.capitalize:{'words.generated.system'}.\",\"last_backup\":\"Letztes @:{'words.generated.backup'}\",\"latest_backup\":\"Latest backup\",\"latest_verified\":\"Latest verified backup\",\"legacy_backups\":\"Legacy backups\",\"name\":\"Name\",\"no_backups\":\"No backups found.\",\"no_restore_audit\":\"No restore audit entries found.\",\"not_available\":\"Not available\",\"objects\":\"Objects\",\"refresh\":\"Refresh\",\"restore_audit\":\"Restore audit\",\"restore_backup\":\"@:{'words.generated.backup'} wiederherstellen\",\"restore_confirm_intro\":\"Restoring a backup will replace the production database and app data. Review the checks and type the exact confirmation phrase before continuing.\",\"restore_confirmation\":\"Confirmation phrase\",\"restore_enabled\":\"Allow production restore\",\"restore_enabled_desc\":\"Allow superusers to queue production restores after preview and typed confirmation.\",\"restore_error\":\"Could not queue the restore job.\",\"restore_queued\":\"Restore queued\",\"restore_queued_success\":\"The restore job has been queued.\",\"restore_reason\":\"Restore reason\",\"restore_state\":\"Restore\",\"restore_state_desc\":\"Production restore requires this setting plus preview confirmation.\",\"restore_validation_error\":\"Enter a reason and the exact confirmation phrase.\",\"retention\":\"Retention\",\"retention_daily_days\":\"Daily retention days\",\"retention_daily_days_desc\":\"Keep one verified backup per day for this many days.\",\"retention_monthly_months\":\"Monthly retention months\",\"retention_monthly_months_desc\":\"Keep one verified backup per month for this many months.\",\"retention_recent_hours\":\"Recent retention hours\",\"retention_recent_hours_desc\":\"Keep all verified backups from this recent hourly window.\",\"retention_weekly_weeks\":\"Weekly retention weeks\",\"retention_weekly_weeks_desc\":\"Keep one verified backup per week for this many weeks.\",\"size\":\"Size\",\"started_at\":\"Started\",\"status\":\"Status\",\"subtitle\":\"@:{'words.generated.konfiguration'} @:{'words.generated.des'} @:{'words.generated.backup'}-@:{'words.generated.systems'}.\",\"title\":\"@:{'words.generated.backup'}-@:{'words.generated.konfiguration'}\",\"verification_required\":\"Require verification\",\"verification_required_desc\":\"Mark backups as available only after verification succeeds.\",\"verified_at\":\"Verified\",\"verify\":\"Verify\"},\"economic\":{\"admin_fee_desc\":\"@:{'words.generated.einstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.verwaltungs'}- @:{'words.generated.und'} @:{'words.generated.umweltgeb'}?@:{'words.generated.hr'} @:{'words.generated.der'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@.capitalize:{'words.generated.integration'}.\",\"admin_fee_monthly\":\"@:{'words.generated.verwaltungsgeb'}?@:{'words.generated.hr'} (@:{'words.generated.monatlich'})\",\"admin_fee_monthly_desc\":\"@:{'words.generated.legen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.monatlich'} berechnete @:{'words.generated.verwaltungs'}- @:{'words.generated.und'} @:{'words.generated.umweltgeb'}?@:{'words.generated.hr'} @:{'words.generated.fest'}.\",\"admin_fee_order\":\"@:{'words.generated.verwaltungsgeb'}?@:{'words.generated.hr'} (@:{'words.generated.pro'} @:{'words.generated.auftrag'})\",\"admin_fee_order_desc\":\"@:{'words.generated.legen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.verwaltungs'}- @:{'words.generated.und'} @:{'words.generated.umweltgeb'}?@:{'words.generated.hr'} @:{'words.generated.fest'}, @:{'words.generated.die'} @:{'words.generated.bei'} @:{'words.generated.abrechnung'} @:{'words.generated.pro'} @:{'words.generated.auftrag'} berechnet @:{'words.generated.wird'}.\",\"admin_fee_title\":\"@:{'words.generated.verwaltungs'}- @:{'words.generated.und'} @:{'words.generated.umweltgeb'}?@:{'words.generated.hr'}\",\"agreement_grant_token\":\"@:{'words.generated.agreement'}-@:{'words.generated.grant'}-@:{'words.generated.token'}\",\"agreement_grant_token_desc\":\"@:{'words.generated.ihr'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.agreement'}-@:{'words.generated.grant'}-@:{'words.generated.token'}\",\"app_secret_token\":\"@:{'words.generated.app'}-@:{'words.generated.secret'}-@:{'words.generated.token'}\",\"app_secret_token_desc\":\"@:{'words.generated.ihr'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.app'}-@:{'words.generated.secret'}-@:{'words.generated.token'}\",\"default_distribution_department_id\":\"@:{'words.generated.standard'}-@.capitalize:{'words.generated.fallback'}-@:{'words.generated.abteilung'}\",\"default_distribution_department_id_desc\":\"@.capitalize:{'words.generated.wird'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.verteilung'} @:{'words.generated.von'} Waschvereinbarungen @:{'words.generated.und'} @:{'words.generated.festpreisen'} @:{'words.generated.verwendet'}, @:{'words.generated.wenn'} @:{'words.generated.der'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.keine'} @:{'words.generated.standardabteilung'} @:{'words.generated.hat'}.\",\"env_fee_product_id\":\"@:{'words.generated.umweltgeb'}?@:{'words.generated.hr'}-@.capitalize:{'words.generated.produkt'}-@.upper:{'words.generated.id'}\",\"env_fee_product_id_desc\":\"@:{'words.generated.legen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @.capitalize:{'words.generated.produkt'}-@.upper:{'words.generated.id'} @:{'words.generated.fest'}, @:{'words.generated.die'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.umweltgeb'}?@:{'words.generated.hr'} @:{'words.generated.verwendet'} @:{'words.generated.wird'}.\",\"invoice_settings\":\"Rechnungseinstellungen\",\"invoice_settings_desc\":\"@.capitalize:{'words.generated.die'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.konfiguration'} erm?glicht @:{'words.generated.die'} @:{'words.generated.einrichtung'} @:{'words.generated.der'} @.capitalize:{'words.generated.integration'} @:{'words.generated.mit'} @:{'words.generated.dem'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-Buchhaltungssystem.\",\"invoice_template\":\"@:{'words.generated.rechnungsvorlage'}\",\"invoice_template_desc\":\"@.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.rechnungsvorlage'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@.capitalize:{'words.generated.integration'}.\",\"show_payment_terms\":\"@:{'words.generated.zahlungsbedingungen'} @:{'words.generated.anzeigen'}\",\"subtitle\":\"@:{'words.generated.konfiguration'} @:{'words.generated.der'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@.capitalize:{'words.generated.integration'}\",\"title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.konfiguration'}\",\"transaction_draft_customer_number\":\"@:{'words.generated.kundennummer'} @:{'words.generated.fur'} Transaktionsentwürfe\",\"transaction_draft_customer_number_desc\":\"@:{'words.generated.legen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.kundennummer'} @:{'words.generated.fest'}, @:{'words.generated.die'} @:{'words.generated.auftrage'} @:{'words.generated.und'} Rechnungssammlungen @:{'words.generated.als'} @:{'words.generated.entwurfe'} markiert. @.capitalize:{'words.generated.leer'} lassen, @:{'words.generated.um'} @:{'words.generated.die'} @:{'words.generated.funktion'} @:{'words.generated.zu'} @:{'words.generated.deaktivieren'}.\",\"transaction_draft_desc\":\"@.capitalize:{'words.generated.verwenden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.einen'} @:{'words.generated.eigenen'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.kunden'} @:{'words.generated.fur'} @:{'words.generated.transaktionen'}, @:{'words.generated.die'} @:{'words.generated.entwurfe'} @:{'words.generated.bleiben'} @:{'words.generated.und'} nie @:{'words.generated.automatisch'} @:{'words.generated.exportiert'} @:{'words.generated.werden'} sollen.\",\"transaction_draft_title\":\"Transaktionsentwurfskunde\"},\"email\":{\"enable_mailersend\":\"@:{'words.generated.mailersend'} @:{'words.generated.aktivieren'}\",\"enable_mailersend_desc\":\"@:{'words.generated.mailersend'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.aktivieren'} @:{'words.generated.oder'} @:{'words.generated.deaktivieren'}\",\"enable_system\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@.capitalize:{'words.generated.system'} @:{'words.generated.aktivieren'}\",\"enable_system_desc\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@.capitalize:{'words.generated.system'} @:{'words.generated.aktivieren'} @:{'words.generated.oder'} @:{'words.generated.deaktivieren'}\",\"from_address\":\"Absenderadresse\",\"from_email\":\"@:{'words.generated.absender'}-@.upper:{'words.generated.e'}-@:{'words.generated.mail'}\",\"from_email_desc\":\"@.capitalize:{'words.generated.die'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'}, @:{'words.generated.von'} @:{'words.generated.der'} @.upper:{'words.generated.e'}-@:{'words.generated.mails'} @:{'words.generated.gesendet'} @:{'words.generated.werden'}\",\"from_name\":\"Absendername\",\"from_name_desc\":\"@.capitalize:{'words.generated.der'} @.capitalize:{'words.generated.name'}, @:{'words.generated.der'} @:{'words.generated.als'} @:{'words.generated.absender'} @:{'words.generated.angezeigt'} @:{'words.generated.wird'}\",\"general_settings\":\"@:{'words.generated.allgemeine'} @:{'words.generated.einstellungen'}\",\"general_settings_desc\":\"@:{'words.generated.allgemeine'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.einstellungen'}\",\"mailersend_api_key\":\"@:{'words.generated.mailersend'} @:{'words.generated.api'}-@:{'words.generated.schl'}?@:{'words.generated.ssel'}\",\"mailersend_api_key_desc\":\"@:{'templates.generated.compat.configuration.mailersend.api_key_desc'}\",\"mailersend_integration\":\"@:{'words.generated.mailersend'}-@.capitalize:{'words.generated.integration'}\",\"mailersend_integration_desc\":\"@:{'words.generated.einstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.mailersend'}-@.capitalize:{'words.generated.integration'}\",\"reply_to_email\":\"@:{'words.generated.antwort'}-@:{'words.generated.an'}-@.upper:{'words.generated.e'}-@:{'words.generated.mail'}\",\"reply_to_email_desc\":\"@.capitalize:{'words.generated.die'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'}, @:{'words.generated.an'} @:{'words.generated.die'} @:{'words.generated.antworten'} @:{'words.generated.gesendet'} @:{'words.generated.werden'}\",\"reply_to_name\":\"@:{'words.generated.antwort'}-@:{'words.generated.an'}-@.capitalize:{'words.generated.name'}\",\"reply_to_name_desc\":\"@.capitalize:{'words.generated.der'} @.capitalize:{'words.generated.name'}, @:{'words.generated.der'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.antworten'} @:{'words.generated.angezeigt'} @:{'words.generated.wird'}\",\"sender_identity_desc\":\"@:{'words.generated.absenderidentit'}?@:{'words.generated.t'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.ausgehende'} @.upper:{'words.generated.e'}-@:{'words.generated.mails'} @:{'words.generated.konfigurieren'}\",\"smtp_encryption\":\"@:{'words.generated.smtp'}-@:{'words.generated.verschl'}?sselung\",\"smtp_encryption_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.verschl'}?sselungsmethode @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.smtp'}\",\"smtp_host\":\"@:{'words.generated.smtp'}-@:{'words.replication.host'}\",\"smtp_host_desc\":\"@.capitalize:{'words.generated.der'} Hostname @:{'words.generated.des'} @:{'words.generated.smtp'}-@:{'words.generated.servers'}\",\"smtp_password\":\"@:{'words.generated.smtp'}-@:{'words.generated.passwort'}\",\"smtp_password_desc\":\"@.capitalize:{'words.generated.das'} @:{'words.generated.smtp'}-Authentifizierungspasswort\",\"smtp_port\":\"@:{'words.generated.smtp'}-@.capitalize:{'words.generated.port'}\",\"smtp_port_desc\":\"@.capitalize:{'words.generated.der'} @.capitalize:{'words.generated.port'} @:{'words.generated.des'} @:{'words.generated.smtp'}-@:{'words.generated.servers'}\",\"smtp_settings\":\"@:{'words.generated.smtp'}-@:{'words.generated.einstellungen'}\",\"smtp_settings_desc\":\"@:{'words.generated.smtp'}-Servereinstellungen @:{'words.generated.konfigurieren'}\",\"smtp_user\":\"@:{'words.generated.smtp'}-@:{'words.generated.benutzer'}\",\"smtp_username\":\"@:{'words.generated.smtp'}-@:{'words.generated.benutzername'}\",\"smtp_username_desc\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.smtp'}-Authentifizierungsbenutzername\",\"subtitle\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.einstellungen'} @:{'words.generated.konfigurieren'}\",\"test_email_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.senden'} @:{'words.generated.der'} @.capitalize:{'words.generated.test'}-@.upper:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}\",\"test_email_sent\":\"@.capitalize:{'words.generated.test'}-@.upper:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.gesendet'}\",\"test_email_sent_success\":\"@.capitalize:{'words.generated.die'} @.capitalize:{'words.generated.test'}-@.upper:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.wurde'} @:{'words.generated.erfolgreich'} @:{'words.generated.gesendet'}\",\"title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.konfiguration'}\"},\"fxrates\":{\"api_key_desc\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.fx'}-@:{'words.generated.api'}-@:{'words.generated.schl'}?@:{'words.generated.ssel'} @:{'words.generated.wird'} @:{'words.generated.zum'} @.capitalize:{'words.generated.abrufen'} @:{'words.generated.von'} Wechselkursen @:{'words.generated.verwendet'}\",\"api_settings_desc\":\"@:{'words.generated.api'}-@:{'words.generated.verbindungseinstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.fx'} @:{'words.generated.rates'}.\",\"conversion_rates\":\"@:{'words.generated.wechselkurse'}\",\"daily_limit\":\"@.upper:{'words.generated.t'}?gliches @:{'words.generated.anfrage'}-@.capitalize:{'words.generated.limit'}\",\"daily_limit_desc\":\"@.capitalize:{'words.generated.das'} @:{'words.generated.t'}?@:{'words.generated.gliche'} @:{'words.generated.anfrage'}-@.capitalize:{'words.generated.limit'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.fx'}-@:{'words.generated.rates'}-@:{'words.generated.api'}-@.capitalize:{'words.generated.integration'}.\",\"enable\":\"@:{'words.generated.fx'}-@:{'words.generated.rates'}-@:{'words.generated.api'} @:{'words.generated.aktivieren'}\",\"enable_desc\":\"@:{'words.generated.fx'}-@:{'words.generated.rates'}-@:{'words.generated.api'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.aktivieren'} @:{'words.generated.oder'} @:{'words.generated.deaktivieren'}.\",\"general_settings_desc\":\"@:{'words.generated.allgemeine'} @:{'words.generated.einstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.fx'}-@:{'words.generated.rates'}-@:{'words.generated.api'}-@.capitalize:{'words.generated.integration'}.\",\"get_rates\":\"@:{'words.generated.wechselkurse'} @:{'words.generated.abrufen'}\",\"getting_rates\":\"@:{'words.generated.wechselkurse'} @:{'words.generated.von'} @:{'words.generated.dkk'} @:{'words.generated.werden'} @:{'words.generated.abgerufen'}\",\"getting_rates_desc\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.warten'} @.capitalize:{'words.generated.sie'}, @:{'words.generated.w'}?@:{'words.generated.hrend'} @:{'words.generated.wir'} @:{'words.generated.die'} @:{'words.generated.wechselkurse'} @:{'words.generated.von'} @:{'words.generated.dkk'} @:{'words.generated.zu'} @:{'words.generated.anderen'} @.upper:{'words.generated.w'}?hrungen @:{'words.generated.abrufen'}.\",\"rates_fetched\":\"@:{'words.generated.wechselkurse'} @:{'words.generated.erfolgreich'} @:{'words.generated.abgerufen'}\",\"rates_fetched_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.wechselkurse'} @:{'words.generated.wurden'} @:{'words.generated.erfolgreich'} @:{'words.generated.abgerufen'}.\",\"show_rates\":\"@:{'words.generated.wechselkurse'} @:{'words.generated.anzeigen'}\",\"subtitle\":\"@:{'words.generated.konfiguration'} @:{'words.generated.der'} @:{'words.generated.fx'}-@:{'words.generated.rates'}-@:{'words.generated.api'}-@.capitalize:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.fx'}-@:{'words.generated.rates'}-@:{'words.generated.api'}-@:{'words.generated.konfiguration'}\",\"update_rates\":\"@:{'words.generated.wechselkurse'} @:{'words.generated.aktualisieren'}\"},\"general\":{\"currency\":\"@.upper:{'words.generated.w'}?hrung\",\"language\":\"@:{'templates.generated.compat.common.language'}\",\"timezone\":\"@:{'templates.generated.compat.settings.timezone'}\",\"title\":\"@:{'templates.generated.compat.settings.general'}\",\"title_desc\":\"Allgemeine Einstellungen @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} FX-Rates-@:{'words.generated.api'}-Integration.\"},\"integrations\":{\"subtitle\":\"@:{'words.generated.integrationen'} @:{'words.generated.verwalten'}\"},\"limble\":{\"api_key\":\"@:{'words.generated.api'}-@:{'words.generated.schl'}?@:{'words.generated.ssel'}\",\"api_key_desc\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.limble'} @:{'words.generated.api'}-@:{'words.generated.schl'}?@:{'words.generated.ssel'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.limble'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.verwendet'}\",\"api_settings\":\"@:{'words.generated.api'}-@:{'words.generated.verbindungseinstellungen'}\",\"api_settings_desc\":\"@:{'words.generated.api'}-@:{'words.generated.verbindungseinstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.limble'}.\",\"client_id\":\"@:{'words.generated.client'}-@.upper:{'words.generated.id'}\",\"client_id_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.client'}-@.upper:{'words.generated.id'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.api'}-@:{'words.generated.verbindung'} @:{'words.generated.verwendet'}.\",\"client_secret\":\"@:{'words.generated.client'}-@:{'words.generated.secret'}\",\"client_secret_desc\":\"@.capitalize:{'words.generated.das'} @:{'words.generated.client'}-@:{'words.generated.secret'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.api'}-@:{'words.generated.verbindung'} @:{'words.generated.verwendet'}.\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.verbindung'} @:{'words.generated.zur'} @:{'words.generated.limble'}-@:{'words.generated.api'} @:{'words.generated.ist'} @:{'words.generated.fehlgeschlagen'}!\",\"connection_success\":\"@:{'words.generated.verbindung'} @:{'words.generated.erfolgreich'}\",\"connection_success_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.verbindung'} @:{'words.generated.zur'} @:{'words.generated.limble'}-@:{'words.generated.api'} @:{'words.generated.war'} @:{'words.generated.erfolgreich'}!\",\"enable\":\"@:{'words.generated.limble'} @:{'words.generated.aktivieren'}\",\"enable_desc\":\"@:{'words.generated.limble'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.aktivieren'} @:{'words.generated.oder'} @:{'words.generated.deaktivieren'}.\",\"enable_webhooks\":\"@:{'words.generated.webhooks'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.sofortige'} @:{'words.generated.synchronisierung'} @:{'words.generated.aktivieren'}\",\"enable_webhooks_desc\":\"@:{'words.generated.limble'}-@:{'words.generated.webhooks'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.sofortige'} @:{'words.generated.synchronisierung'} @:{'words.generated.aktivieren'} @:{'words.generated.oder'} @:{'words.generated.deaktivieren'}.\",\"general_settings_desc\":\"@:{'words.generated.allgemeine'} @:{'words.generated.einstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.limble'}-@.capitalize:{'words.generated.integration'}.\",\"subtitle\":\"@:{'words.generated.konfiguration'} @:{'words.generated.der'} @:{'words.generated.limble'}-@.capitalize:{'words.generated.integration'}\",\"test_connection\":\"@:{'words.generated.verbindung'} @:{'words.generated.testen'}\",\"title\":\"@:{'words.generated.limble'}-@:{'words.generated.konfiguration'}\"},\"mailersend\":{\"api_key_desc\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.mailersend'} @:{'words.generated.api'}-@:{'words.generated.schl'}?@:{'words.generated.ssel'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.mailersend'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.verwendet'}\",\"title\":\"@:{'words.generated.mailersend'}-@:{'words.generated.konfiguration'}\"},\"motor_api\":{\"api_key_desc\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.motor'} @:{'words.generated.api'}-@:{'words.generated.schl'}?@:{'words.generated.ssel'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.motor'}-@:{'words.generated.api'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.verwendet'}\",\"title\":\"@:{'words.generated.motor'}-@:{'words.generated.api'}-@:{'words.generated.konfiguration'}\"},\"motorapi\":{\"api_settings_desc\":\"@:{'words.generated.api'}-@:{'words.generated.verbindungseinstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.motorapi'}.\",\"daily_limit_desc\":\"@.capitalize:{'words.generated.das'} @:{'words.generated.t'}?@:{'words.generated.gliche'} @:{'words.generated.anfrage'}-@.capitalize:{'words.generated.limit'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.motorapi'}-@.capitalize:{'words.generated.integration'}.\",\"enable\":\"@:{'words.generated.motorapi'} @:{'words.generated.aktivieren'}\",\"enable_desc\":\"@:{'words.generated.motorapi'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.aktivieren'} @:{'words.generated.oder'} @:{'words.generated.deaktivieren'}.\",\"general_settings_desc\":\"@:{'words.generated.allgemeine'} @:{'words.generated.einstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.motorapi'}-@.capitalize:{'words.generated.integration'}.\",\"get_license_plate\":\"@:{'words.generated.kennzeichen'} @:{'words.generated.abrufen'}\",\"subtitle\":\"@:{'words.generated.konfiguration'} @:{'words.generated.der'} @:{'words.generated.motorapi'}-@.capitalize:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.motorapi'}-@:{'words.generated.konfiguration'}\"},\"products\":{\"add\":\"@.capitalize:{'words.generated.produkt'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"delete_confirm\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.dieses'} @.capitalize:{'words.generated.produkt'} @:{'words.generated.l'}?@:{'words.generated.schen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"edit\":\"@.capitalize:{'words.generated.produkt'} @:{'words.generated.bearbeiten'}\"},\"slack\":{\"customer_registration_webhook_url\":\"Webhook-URL fuer Kundenregistrierungen\",\"customer_registration_webhook_url_desc\":\"Slack-Webhook, der eine Nachricht erhaelt, wenn eine neue Kundenregistrierung erfolgreich ist. Leer lassen, um dies zu deaktivieren.\",\"internal_department_goal_progress_save_error\":\"Slack-Einstellungen fuer interne Abteilungen konnten nicht gespeichert werden.\",\"internal_department_goal_progress_saved\":\"Slack-Einstellungen fuer interne Abteilungen gespeichert\",\"internal_department_goal_progress_webhook_url\":\"Webhook-URL fuer Zielstatus interner Abteilungen\",\"internal_department_goal_progress_webhook_url_desc\":\"Slack-Webhook, der die zusammengefasste Zielstatusmeldung fuer interne Abteilungen erhaelt. Leer lassen, um die zusammengefasste Benachrichtigung zu deaktivieren.\",\"internal_departments\":\"Interne Abteilungen\",\"internal_departments_desc\":\"Hier ausgewaehlte Abteilungen werden in die interne Slack-Zielstatusuebersicht aufgenommen.\",\"internal_departments_empty\":\"Keine Abteilungen gefunden.\",\"notification_settings\":\"Benachrichtigungseinstellungen\",\"notification_settings_desc\":\"Slack-Webhooks fuer Systemereignisse.\",\"save_internal_departments\":\"Interne Abteilungen speichern\",\"send_test_webhook\":\"Test-Webhook senden\",\"subtitle\":\"Konfiguration von Slack-Benachrichtigungen\",\"test_customer_registration_webhook\":\"Webhook fuer Kundenregistrierungen testen\",\"test_internal_department_goal_progress_webhook\":\"Webhook fuer Zielstatus interner Abteilungen testen\",\"test_internal_department_goal_progress_webhook_not_configured\":\"Speichern Sie zuerst eine Webhook-URL fuer den Zielstatus interner Abteilungen.\",\"test_internal_department_goal_progress_webhook_sent_success\":\"Die Slack-Testnachricht fuer den Zielstatus interner Abteilungen wurde gesendet.\",\"test_webhook_error\":\"Der Slack-Test-Webhook konnte nicht gesendet werden.\",\"test_webhook_not_configured\":\"Speichern Sie zuerst eine Webhook-URL fuer Kundenregistrierungen.\",\"test_webhook_sent\":\"Slack-Test gesendet\",\"test_webhook_sent_success\":\"Die Slack-Testnachricht fuer Kundenregistrierungen wurde gesendet.\",\"title\":\"Slack-Konfiguration\",\"unavailable\":\"Die Slack-Konfiguration ist in dieser API-Version nicht verfuegbar.\"},\"shelly\":{\"api_key_desc\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.shelly'} @:{'words.generated.api'}-@:{'words.generated.schl'}?@:{'words.generated.ssel'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.shelly'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.verwendet'}\",\"api_settings_desc\":\"@:{'words.generated.api'}-@:{'words.generated.verbindungseinstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.shelly'}.\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.verbindung'} @:{'words.generated.zur'} @:{'words.generated.shelly'}-@:{'words.generated.api'} @:{'words.generated.ist'} @:{'words.generated.fehlgeschlagen'}!\",\"connection_success_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.verbindung'} @:{'words.generated.zur'} @:{'words.generated.shelly'}-@:{'words.generated.api'} @:{'words.generated.war'} @:{'words.generated.erfolgreich'}!\",\"enable\":\"@:{'words.generated.shelly'} @:{'words.generated.aktivieren'}\",\"enable_desc\":\"@:{'words.generated.shelly'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.aktivieren'} @:{'words.generated.oder'} @:{'words.generated.deaktivieren'}.\",\"general_settings_desc\":\"@:{'words.generated.allgemeine'} @:{'words.generated.einstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.shelly'}-@.capitalize:{'words.generated.integration'}.\",\"secret_key\":\"Geheimer @:{'words.generated.schl'}?@:{'words.generated.ssel'} (@:{'words.generated.api'}-@:{'words.generated.schl'}?@:{'words.generated.ssel'})\",\"secret_key_desc\":\"@.capitalize:{'words.generated.der'} geheime @:{'words.generated.schl'}?@:{'words.generated.ssel'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.api'}-@:{'words.generated.verbindung'} @:{'words.generated.verwendet'}.\",\"server_url\":\"@.capitalize:{'words.generated.server'}-@:{'words.generated.url'}\",\"server_url_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.url'} @:{'words.generated.des'} @:{'words.generated.shelly'}-@:{'words.generated.servers'}.\",\"subtitle\":\"@:{'words.generated.konfiguration'} @:{'words.generated.der'} @:{'words.generated.shelly'}-@.capitalize:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.shelly'}-@:{'words.generated.konfiguration'}\"},\"stripe\":{\"api_key_desc\":\"@:{'words.generated.ihr'} @:{'words.generated.stripe'} @:{'words.generated.api'}-@:{'words.generated.schl'}?@:{'words.generated.ssel'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} Zahlungsabwicklung\",\"api_settings_desc\":\"@:{'words.generated.api'}-@:{'words.generated.verbindungseinstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.stripe'}.\",\"customers\":\"@:{'words.generated.stripe'}-@:{'words.generated.kunden'}\",\"economic_customer\":\"@:{'words.generated.economic'}-@:{'words.generated.kundennummer'}\",\"economic_customer_desc\":\"@.capitalize:{'words.generated.der'} @.capitalize:{'words.generated.kunde'}, @:{'words.generated.der'} @:{'words.generated.verwendet'} @:{'words.generated.wird'}, @:{'words.generated.um'} @:{'words.generated.stripe'}-@:{'words.generated.zahlungen'} @:{'words.generated.im'} @:{'words.generated.economic'}-@.capitalize:{'words.generated.system'} @:{'words.generated.zu'} @:{'words.generated.speichern'}.\",\"economic_settings\":\"@:{'words.generated.economic'}-Integrationseinstellungen\",\"economic_settings_desc\":\"@:{'words.generated.einstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @.capitalize:{'words.generated.integration'} @:{'words.generated.mit'} @:{'words.generated.dem'} @:{'words.generated.economic'}-@.capitalize:{'words.generated.system'}.\",\"enable\":\"@:{'words.generated.stripe'} @:{'words.generated.aktivieren'}\",\"enable_desc\":\"@:{'words.generated.stripe'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.aktivieren'} @:{'words.generated.oder'} @:{'words.generated.deaktivieren'}.\",\"general_settings_desc\":\"@:{'words.generated.allgemeine'} @:{'words.generated.einstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.stripe'}-@.capitalize:{'words.generated.integration'}.\",\"get_prices\":\"@:{'words.generated.preise'} @:{'words.generated.abrufen'}\",\"get_products\":\"@:{'words.generated.produkte'} @:{'words.generated.abrufen'}\",\"prices\":\"@:{'words.generated.stripe'}-@:{'words.generated.preise'}\",\"products\":\"@:{'words.generated.stripe'}-@:{'words.generated.produkte'}\",\"publishable_key\":\"?ffentlicher @:{'words.generated.schl'}?@:{'words.generated.ssel'}\",\"publishable_key_desc\":\"@.capitalize:{'words.generated.der'} ?ffentliche @:{'words.generated.schl'}?@:{'words.generated.ssel'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.api'}-@:{'words.generated.verbindung'} @:{'words.generated.verwendet'}.\",\"subtitle\":\"@:{'words.generated.konfiguration'} @:{'words.generated.der'} @:{'words.generated.stripe'}-@.capitalize:{'words.generated.integration'}\",\"test_mode\":\"@:{'words.generated.testmodus'}\",\"test_mode_desc\":\"@:{'words.generated.testmodus'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.stripe'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.aktivieren'}\",\"title\":\"@:{'words.generated.stripe'}-@:{'words.generated.konfiguration'}\",\"webhook_secret\":\"@.capitalize:{'words.generated.webhook'}-@:{'words.generated.geheimnis'}\",\"webhook_secret_desc\":\"@:{'words.generated.ihr'} @:{'words.generated.stripe'}-@.capitalize:{'words.generated.webhook'}-@:{'words.generated.geheimnis'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} Ereignisverarbeitung\"},\"subtitle\":\"@:{'words.generated.systemkonfiguration'} @:{'words.generated.verwalten'}\",\"users\":{\"subtitle\":\"@:{'words.generated.benutzer'} @:{'words.generated.verwalten'}\"},\"virkdata\":{\"api_key_desc\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.virk'} @.capitalize:{'words.generated.data'} @:{'words.generated.api'}-@:{'words.generated.schl'}?@:{'words.generated.ssel'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.virk'}-@.capitalize:{'words.generated.data'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.verwendet'}\",\"api_settings_desc\":\"@:{'words.generated.api'}-@:{'words.generated.verbindungseinstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.virkdata'}.\",\"company_selected\":\"@:{'words.generated.unternehmen'} @:{'words.generated.ausgew'}?@:{'words.generated.hlt'}\",\"company_selected_desc\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.haben'} {name} ({cvr}) @:{'words.generated.ausgew'}?@:{'words.generated.hlt'}\",\"enable\":\"@:{'words.generated.virkdata'} @:{'words.generated.aktivieren'}\",\"enable_desc\":\"@:{'words.generated.virkdata'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.aktivieren'} @:{'words.generated.oder'} @:{'words.generated.deaktivieren'}.\",\"general_settings_desc\":\"@:{'words.generated.allgemeine'} @:{'words.generated.einstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.virkdata'}-@.capitalize:{'words.generated.integration'}.\",\"monthly_limit\":\"Monatliches @:{'words.generated.anfrage'}-@.capitalize:{'words.generated.limit'}\",\"monthly_limit_desc\":\"@.capitalize:{'words.generated.das'} @:{'words.generated.monatliche'} @:{'words.generated.anfrage'}-@.capitalize:{'words.generated.limit'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.virkdata'}-@.capitalize:{'words.generated.integration'}.\",\"no_results\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.ergebnisse'}\",\"no_results_desc\":\"@.capitalize:{'words.generated.es'} @:{'words.generated.wurden'} @:{'words.generated.keine'} @:{'words.generated.unternehmen'} @:{'words.generated.gefunden'}, @:{'words.generated.die'} @:{'words.generated.ihrer'} @:{'words.generated.suche'} @:{'words.generated.entsprechen'}.\",\"search_company\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.unternehmen'} @:{'words.generated.suchen'}\",\"search_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.suchen'} @:{'words.generated.nach'} @:{'words.generated.unternehmen'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\",\"select_company\":\"@:{'words.generated.unternehmen'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"select_company_required\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.m'}?@:{'words.generated.ssen'} @:{'words.generated.ein'} @:{'words.generated.unternehmen'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"subtitle\":\"@:{'words.generated.konfiguration'} @:{'words.generated.der'} @:{'words.generated.virkdata'}-@.capitalize:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.virkdata'}-@:{'words.generated.konfiguration'}\"},\"workfeed\":{\"api_key\":\"@:{'words.generated.api'} @:{'words.generated.key'}\",\"api_key_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.used'} @:{'words.generated.to'} authenticate @:{'words.generated.requests'} @:{'words.generated.to'} @:{'words.generated.workfeed'}.\",\"api_settings\":\"@:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}\",\"api_settings_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'} @:{'words.generated.used'} @:{'words.generated.for'} @:{'words.generated.workfeed'} @:{'words.generated.requests'}.\",\"api_url\":\"@:{'words.generated.api'} @:{'words.generated.url'}\",\"api_url_desc\":\"@.capitalize:{'words.generated.the'} base @:{'words.generated.url'} @:{'words.generated.for'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.api'}.\",\"close\":\"Close\",\"company_id\":\"@.capitalize:{'words.generated.company'} @.upper:{'words.generated.id'}\",\"company_id_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.company'} identifier @:{'words.generated.used'} @:{'words.generated.for'} @:{'words.generated.api'} synchronization.\",\"diagnostics\":{\"description\":\"@.capitalize:{'words.generated.run'} @:{'words.generated.test'} lookups against @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'} endpoints.\",\"get_employee\":\"@:{'words.generated.get'} @:{'words.generated.employee'} @:{'words.generated.by'} @.upper:{'words.generated.id'}\",\"get_shift\":\"@:{'words.generated.get'} @:{'words.generated.shift'} @:{'words.generated.by'} @.upper:{'words.generated.id'}\",\"list_departments\":\"@:{'words.generated.list'} @:{'words.generated.departments'}\",\"list_employees\":\"@:{'words.generated.list'} @:{'words.generated.employees'}\",\"list_shifts\":\"@:{'words.generated.list'} shifts\",\"no_params_required\":\"@.capitalize:{'words.generated.no'} query parameters @:{'words.generated.are'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.lookup'}.\",\"placeholder_employee_id\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. emp_01J5P2F2A0CQKBBX4P8M3Y7R5P\",\"placeholder_released\":\"@:{'words.generated.true'} @:{'words.generated.or'} @:{'words.generated.false'}\",\"placeholder_search\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. north facility\",\"placeholder_shift_id\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. shf_01J5P3X9D35R9C6BDZ1S0R4V6Q\",\"placeholder_start_from\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 2026-03-24T00:00:@:{'words.generated.word_00z'}\",\"placeholder_start_to\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 2026-03-25T00:00:@:{'words.generated.word_00z'}\",\"placeholder_status\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. published\",\"prompt_employee_id\":\"@.capitalize:{'words.generated.employee'} @.upper:{'words.generated.id'}\",\"prompt_employee_id_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.employee'} @.upper:{'words.generated.id'}\",\"prompt_released_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.released'} @:{'words.generated.filter'} (@:{'words.generated.true'}/@:{'words.generated.false'})\",\"prompt_search_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.search'} text\",\"prompt_shift_id\":\"@.capitalize:{'words.generated.shift'} @.upper:{'words.generated.id'}\",\"prompt_start_from\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.start'} @:{'words.generated.from'} (@:{'words.generated.iso'} 8601)\",\"prompt_start_to\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.start'} @:{'words.generated.to'} (@:{'words.generated.iso'} 8601)\",\"prompt_status_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.shift'} @:{'words.generated.status'}\",\"result_departments\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"result_employee\":\"@.capitalize:{'words.generated.employee'} @:{'words.generated.result'}\",\"result_employees\":\"@.capitalize:{'words.generated.employee'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"result_shift\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.result'}\",\"result_shifts\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"select_employee_all\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.employees'}\",\"select_released_all\":\"@.capitalize:{'words.generated.all'} release states\",\"select_released_false\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.released'} @:{'words.generated.only'}\",\"select_released_true\":\"@.capitalize:{'words.generated.released'} @:{'words.generated.only'}\",\"title\":\"Diagnostics\",\"validation_datetime_invalid\":\"@.capitalize:{'words.generated.invalid'} date-time @:{'words.generated.value'}.\",\"validation_released_boolean\":\"@.capitalize:{'words.generated.released'} @:{'words.generated.must'} @:{'words.generated.be'} either @:{'words.generated.true'} @:{'words.generated.or'} @:{'words.generated.false'}.\",\"validation_shift_range_required\":\"startFrom @:{'words.generated.and'} startTo @:{'words.generated.are'} @:{'words.generated.required'}.\"},\"enable\":\"@:{'words.generated.enable'} @:{'words.generated.workfeed'}\",\"enable_desc\":\"@:{'words.generated.enable'} @:{'words.generated.or'} disable @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}.\",\"general_settings_desc\":\"@:{'words.generated.general'} @:{'words.generated.settings'} @:{'words.generated.for'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}.\",\"lookup\":\"@.capitalize:{'words.generated.lookup'}\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.workfeed'} @:{'words.generated.configuration'}\",\"validation_required\":\"@.capitalize:{'words.generated.this'} field @:{'words.generated.is'} @:{'words.generated.required'}.\"},\"xlvask\":{\"api_key_desc\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.xl'} @:{'words.generated.vask'} @:{'words.generated.api'}-@:{'words.generated.schl'}?@:{'words.generated.ssel'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.xl'}-@:{'words.generated.vask'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.verwendet'}\",\"api_settings_desc\":\"@:{'words.generated.api'}-@:{'words.generated.verbindungseinstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.xlvask'}.\",\"automation_settings\":\"Automatisierung\",\"automation_settings_desc\":\"@:{'words.generated.automatische'} @:{'words.generated.auftragsverknupfung'} @:{'words.generated.und'} @:{'words.generated.auftragserstellung'} @:{'words.generated.aus'} @:{'words.generated.selvvask'} steuern.\",\"connection_failed\":\"@:{'words.generated.verbindung'} @:{'words.generated.fehlgeschlagen'}\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.verbindung'} @:{'words.generated.zur'} @:{'words.generated.xlvask'}-@:{'words.generated.api'} @:{'words.generated.ist'} @:{'words.generated.fehlgeschlagen'}.\",\"connection_success_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.verbindung'} @:{'words.generated.zur'} @:{'words.generated.xlvask'}-@:{'words.generated.api'} @:{'words.generated.war'} @:{'words.generated.erfolgreich'}.\",\"enable\":\"@:{'words.generated.xlvask'} @:{'words.generated.aktivieren'}\",\"enable_automatic_attachment\":\"@:{'words.generated.automatische'} @:{'words.generated.auftragsverknupfung'}\",\"enable_automatic_attachment_desc\":\"@.capitalize:{'words.generated.sichere'} @:{'words.generated.selvvask'}-@:{'words.generated.treffer'} @:{'words.generated.automatisch'} @:{'words.generated.mit'} vorhandenen Aufträgen verknüpfen.\",\"enable_automatic_creation\":\"@:{'words.generated.automatische'} @:{'words.generated.auftragserstellung'}\",\"enable_automatic_creation_desc\":\"@.capitalize:{'words.generated.sichere'} @:{'words.generated.selvvask'}-@:{'words.generated.auftrage'} @:{'words.generated.automatisch'} @:{'words.generated.erstellen'}, @:{'words.generated.wenn'} @:{'words.generated.die'} @:{'words.generated.wasche'} älter @:{'words.generated.als'} 6 @:{'words.generated.stunden'} @:{'words.generated.ist'}.\",\"enable_desc\":\"@:{'words.generated.xlvask'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.aktivieren'} @:{'words.generated.oder'} @:{'words.generated.deaktivieren'}.\",\"enable_openai_integration\":\"@:{'words.generated.openai'}-Vorschläge\",\"enable_openai_integration_desc\":\"@:{'words.generated.openai'} @:{'words.generated.verwenden'}, @:{'words.generated.um'} Verknüpfung @:{'words.generated.oder'} @:{'words.generated.erstellung'} vorzuschlagen, @:{'words.generated.wenn'} feste @:{'words.generated.regeln'} @:{'words.generated.nicht'} @:{'words.generated.sicher'} genug @:{'words.generated.sind'}.\",\"enable_sync\":\"@:{'words.generated.automatische'} @:{'words.generated.synchronisierung'} @:{'words.generated.aktivieren'}\",\"enable_sync_desc\":\"@:{'words.generated.automatische'} @:{'words.generated.xlvask'}-@:{'words.generated.synchronisierung'} @:{'words.generated.aktivieren'} @:{'words.generated.oder'} @:{'words.generated.deaktivieren'}.\",\"general_settings_desc\":\"@:{'words.generated.allgemeine'} @:{'words.generated.einstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.xlvask'}-@.capitalize:{'words.generated.integration'}.\",\"password_desc\":\"@.capitalize:{'words.generated.das'} @:{'words.generated.passwort'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.api'}-@:{'words.generated.verbindung'} @:{'words.generated.verwendet'}.\",\"subtitle\":\"@:{'words.generated.konfiguration'} @:{'words.generated.der'} @:{'words.generated.xlvask'}-@.capitalize:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.xlvask'}-@:{'words.generated.konfiguration'}\",\"username_desc\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.benutzername'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.api'}-@:{'words.generated.verbindung'} @:{'words.generated.verwendet'}.\"},\"release_manager\":{\"integrations\":{\"title\":\"GitHub und Coolify\",\"subtitle\":\"GitHub-Repositories und Branches kanalspezifischen Coolify-Services zuordnen.\",\"choose_repository\":\"Repository auswählen\",\"add_health_url\":\"Health-URL hinzufügen\",\"github_token_not_configured\":\"GitHub-Token ist nicht konfiguriert; private Repositories können nicht aufgelistet werden.\",\"open_github_token_settings\":\"GitHub-Token-Einstellungen öffnen\",\"channel\":\"Channel\",\"app\":\"App\",\"repository\":\"Repository\",\"repository_message\":\"Example: truckwash/backend-php\",\"repository_placeholder\":\"owner/repo\",\"branch\":\"Branch\",\"branch_message\":\"Example: release/canary\",\"branch_placeholder\":\"branch\",\"latest_prefix\":\"Neueste: {commit}\",\"coolify_instance\":\"Coolify-Instanz\",\"coolify_instance_message\":\"Leer lassen für manuelle Deployment-Einträge.\",\"no_coolify_instance\":\"Keine Coolify-Instanz\",\"coolify_instance_placeholder\":\"Coolify-Instanz-ID\",\"coolify_service_uuid\":\"Coolify service UUID\",\"coolify_service_uuid_message\":\"Bestehenden Service auswählen oder UUID einfügen.\",\"coolify_service_uuid_placeholder\":\"Coolify service UUID\",\"health_url\":\"Health URL\",\"health_url_message\":\"Example: https://api-canary.example.test/ping\",\"health_url_placeholder\":\"Health URL\",\"ssl_domain\":\"Load-Balancer-Domain\",\"ssl_domain_message\":\"Muss eine DNS-Domain sein, die zum Coolify Load Balancer geroutet wird. Beispiel: api-v2.truckwash.io\",\"ssl_domain_placeholder\":\"Load-Balancer-Domain\",\"https_domain_for_coolify\":\"Domain unter Kontrolle des Load Balancers\",\"endpoint_mode\":\"Endpoint mode\",\"endpoint_mode_message\":\"Use automatic gateway routing or manually override the public host and port.\",\"endpoint_mode_auto\":\"Auto\",\"endpoint_mode_manual\":\"Manual\",\"manual_endpoint_host\":\"Manual host\",\"manual_endpoint_host_message\":\"Public host shown in release previews when manual mode is selected.\",\"manual_endpoint_host_placeholder\":\"api-v2.truckwash.io\",\"manual_endpoint_port\":\"Manual public port\",\"manual_endpoint_port_message\":\"Optional public port from 1 to 65535.\",\"app_port\":\"App port\",\"app_port_message\":\"Internal container port exposed to Coolify routing.\",\"auto_gateway_endpoint\":\"Automatic gateway endpoint\",\"pending_automatic_endpoint\":\"Automatic endpoint resolution pending\",\"auto_deploy\":\"Auto-Deploy\",\"auto_deploy_tooltip\":\"Automatisch Deployments erstellen, wenn sich dieses Ziel ändert.\",\"coolify_ssl\":\"Coolify SSL\",\"coolify_ssl_tooltip\":\"Coolify anweisen, HTTPS für die konfigurierte Domain bereitzustellen.\",\"deploy_now\":\"Jetzt deployen\",\"deploy_now_tooltip\":\"Deployment direkt nach dem Speichern des Ziels starten.\",\"create_missing_service\":\"Fehlenden Service erstellen\",\"create_missing_service_tooltip\":\"Release Manager erlauben, einen fehlenden Coolify-Service zu erstellen.\",\"test_access_tooltip\":\"Prüfen, ob der konfigurierte GitHub-Token dieses Repository und den Branch lesen kann.\"},\"title\":\"Release Manager\",\"subtitle\":\"Schrittweise API- und Front-End-Releases\",\"channel_names\":{\"stable\":\"Stabil\",\"canary\":\"Canary\",\"internal\":\"Intern\"},\"channel_descriptions\":{\"stable\":\"Standard-Produktionskanal.\",\"canary\":\"Früher Produktionsvalidierungskanal.\",\"internal\":\"Interner Kanal für Mitarbeitende und Superuser-Validierung.\"},\"control_api\":{\"title\":\"Kontroll-API\",\"tooltip\":\"Release-Manager-Aktionen werden an diese API gesendet. Verwende die Produktions-Kontroll-API, außer du testest ein Staging-Backend.\",\"example\":\"Beispiel: https://api.truckwash.io:4433\",\"endpoint_label\":\"API-Endpunkt\",\"endpoint_message\":\"Ändere dies nur, wenn Release-Manager-Endpunkte auf der Ziel-API verfügbar sind.\",\"endpoint_aria\":\"Release Manager Kontroll-API-URL\",\"use_tooltip\":\"Release-Daten von dieser API laden\",\"use\":\"Verwenden\",\"reset_tooltip\":\"Zur Standard-Kontroll-API zurückkehren\",\"reset\":\"Zurücksetzen\",\"known_endpoints\":\"Bekannte Kontroll-API-Endpunkte\"},\"tabs\":{\"overview\":{\"label\":\"Übersicht\",\"description\":\"Kanalzustand, Einrichtungsfortschritt und aktueller Release-Status.\"},\"channels\":{\"label\":\"Kanäle\",\"description\":\"Stabile, Canary- und Zielkanäle mit Rollout-Grenzen erstellen.\"},\"assignments\":{\"label\":\"Zuweisungen\",\"description\":\"Benutzer, Unterbenutzer oder Kunden einem bestimmten Release-Kanal zuweisen.\"},\"deployments\":{\"label\":\"Bereitstellungen\",\"description\":\"Bereitstellungen starten und erfolgreiche Builds promoten.\"},\"replay\":{\"label\":\"Replay\",\"description\":\"Gezielte Erfassung aktivieren und Release-Timeline-Ereignisse durchsuchen.\"},\"integrations\":{\"label\":\"Integrationen\",\"description\":\"GitHub-Repositories, Branches und Coolify-Dienste verbinden.\"},\"settings\":{\"label\":\"Einstellungen\",\"description\":\"GitHub-Zugriff und Webhook-Einstellungen des Release Managers konfigurieren.\"}},\"loading\":{\"summary\":\"Release Manager-Daten werden geladen...\",\"refreshing_summary\":\"Release Manager-Daten werden aktualisiert...\",\"summary_detail\":\"Release-Status, Kanale, Deployments und Servicezustand werden geladen.\",\"channels\":\"Release-Kanale werden geladen...\",\"channels_detail\":\"Kanalansichten und Release-Abhangigkeiten werden geladen.\",\"assignments\":\"Release-Zuweisungen werden geladen...\",\"deployments\":\"Release-Deployments werden geladen...\",\"operations\":\"Release-Operationen werden geladen...\",\"data_services\":\"Release-Datendienste werden geladen...\",\"integrations\":\"Release-Integrationen werden geladen...\",\"settings\":\"Release Manager-Einstellungen werden geladen...\",\"github_repositories\":\"GitHub-Repositories werden geladen...\",\"timeline_sessions\":\"Release-Timeline-Sessions werden geladen...\",\"timeline_events\":\"Release-Timeline-Ereignisse werden geladen...\",\"refreshing_timeline\":\"Release-Timeline wird aktualisiert...\"},\"setup\":{\"channels\":\"Kanäle\",\"targets\":\"GitHub- und Coolify-Ziele\",\"assignments\":\"Pilot-Zuweisungen\",\"deployments\":\"Erste Bereitstellung\",\"replay\":\"Replay-Erfassung\"},\"stats\":{\"channels\":\"Kanäle\",\"targets\":\"Ziele\",\"deployments\":\"Bereitstellungen\",\"timeline_events\":\"Timeline-Ereignisse\"},\"overview\":{\"title\":\"Übersicht\",\"subtitle\":\"Aktueller Kanalzustand, Release-Aktivität und Modulstatus.\",\"guided_setup\":\"Geführte Einrichtung\",\"next_step\":\"Nächster Schritt: {step}\",\"ready\":\"Release Manager ist für den täglichen Betrieb bereit.\",\"add_suggested_channel\":\"Vorgeschlagenen Kanal hinzufügen\",\"module_health_empty\":\"Modul-Health-Snapshots erscheinen, nachdem Probes aufgezeichnet wurden.\"},\"settings\":{\"title\":\"Release-Manager-Einstellungen\",\"subtitle\":\"GitHub-Token für private Repositories und Branch-Abfragen konfigurieren.\",\"github_token\":\"GitHub-Token\",\"github_api_url\":\"GitHub-API-URL\",\"webhook_secret\":\"Webhook-Secret\",\"github_webhook_secret\":\"GitHub-Webhook-Secret\",\"configured\":\"Konfiguriert\",\"not_configured\":\"Nicht konfiguriert\",\"loaded_from\":\"Geladen aus {variable}\",\"set_below\":\"{variable} unten festlegen\",\"private_repositories_prefix\":\"Private Repositories werden mit der Server-Umgebungsvariable gelesen\",\"private_repositories_or\":\"oder der Modul-Konfigurationsvariable\",\"github_token_message\":\"Beispiel: github_pat_... mit Zugriff auf die privaten Repositories, die Release Manager bereitstellt.\",\"github_token_placeholder\":\"Leer lassen, um das vorhandene Token zu behalten\",\"github_api_url_message\":\"Konfiguriert in ReleaseManager.github_api_url. https://api.github.com verwenden, sofern GitHub Enterprise nicht genutzt wird.\",\"webhook_secret_message\":\"Optional; leer lassen, um das vorhandene Secret zu behalten.\",\"webhook_secret_placeholder\":\"Webhook-HMAC-Secret\",\"save\":\"Einstellungen speichern\",\"back_to_integrations\":\"Zurück zu Integrationen\",\"guide\":{\"steps\":{\"github_token\":\"GitHub-Token\",\"github_api_url\":\"GitHub API-URL\",\"github_webhook_secret\":\"GitHub Webhook Secret\",\"review\":\"Prüfung\"},\"github_token_title\":\"GitHub-Token hinzufügen\",\"github_token_description\":\"Release Manager verwendet diesen Token, um private Repositories, Branches und Commits aufzulisten, bevor ein Deployment-Ziel gespeichert oder getestet wird.\",\"configure_this_in\":\"Dies konfigurieren in\",\"server_environment_variable\":\"Die Server-Umgebungsvariable\",\"takes_precedence\":\"hat Vorrang, wenn sie gesetzt ist.\",\"recommended_access\":\"Empfohlener Zugriff\",\"recommended_access_description\":\"Fine-grained GitHub-Token mit Contents: read-Zugriff für jedes Release-Repository.\",\"github_api_url_title\":\"GitHub API-URL hinzufügen\",\"github_api_url_description\":\"GitHub Cloud standardmäßig verwenden oder auf die REST-API-Basis-URL einer GitHub Enterprise Server-Installation zeigen.\",\"github_api_url_invalid\":\"Vollständige HTTP- oder HTTPS-URL eingeben.\",\"github_cloud\":\"GitHub Cloud\",\"enterprise_example\":\"Enterprise-Beispiel\",\"github_webhook_secret_title\":\"GitHub Webhook Secret hinzufügen\",\"github_webhook_secret_description\":\"Dasselbe Secret in GitHub-Repository-Webhooks verwenden, damit Release Manager Deployment-Events vor der Verarbeitung verifizieren kann.\",\"github_webhook_url\":\"GitHub Webhook-URL:\",\"store_shared_secret_in\":\"Geteiltes Secret speichern in\",\"review_title\":\"GitHub-Konfiguration prüfen\",\"review_description\":\"Werte speichern und dann unter Integrationen ein privates Repository, einen Branch und einen bestimmten Commit oder den neuesten Commit auswählen, bevor der Zugriff getestet wird.\",\"ready\":\"Bereit\",\"needs_value\":\"Wert fehlt\"}},\"channel_unavailable\":{\"kicker\":\"Release Manager\",\"title\":\"Release-Kanal ist nicht bereit\",\"summary_prefix\":\"Dein Konto ist zugewiesen zu\",\"summary_suffix\":\", aber diesem Kanal fehlt erforderliche Release-Konfiguration.\",\"release_bundle\":\"Release-Bundle\",\"frontend_version\":\"Frontend-Version\",\"api_version\":\"API-Version\",\"frontend_base_url\":\"Frontend-URL\",\"api_base_url\":\"API-URL\",\"frontend_entry\":\"Frontend-Einstiegspunkt\",\"release_runtime\":\"Release-Laufzeit\",\"checking_again\":\"Erneute Prüfung in {seconds}s\",\"refresh_error\":\"Release-Status konnte nicht aktualisiert werden. Die nächste automatische Prüfung versucht es erneut.\",\"ignore\":\"Nächste 5 Minuten ignorieren\",\"check_again\":\"Erneut prüfen\",\"logout\":\"Abmelden\",\"base_image\":\"Basis-Image\"},\"channel_switched\":{\"kicker\":\"Release Manager\",\"title\":\"Du bist jetzt auf {channel}\",\"summary_prefix\":\"Dein Konto wurde dem Release-Kanal\",\"summary_suffix\":\"zugewiesen. Dieses Gerät merkt sich, dass du diesen Hinweis gesehen hast.\",\"bundle\":\"Bundle\",\"frontend\":\"Frontend\",\"api\":\"API\",\"frontend_version\":\"Frontend-Version\",\"api_version\":\"API-Version\",\"assigned_channel\":\"Zugewiesener Kanal\",\"current_app_image\":\"Aktuelles App-Image\",\"current_api\":\"Aktuelle API\",\"base_image\":\"Basis-Image\",\"continue\":\"Fortfahren\"},\"channel_selector\":{\"title\":\"Release-Kanal\",\"subtitle\":\"Wählen Sie, welchen zugewiesenen Release-Kanal dieses Gerät verwenden soll.\",\"sidebar_title\":\"Release\",\"default\":\"Standard\",\"ready\":\"Bereit\",\"unavailable\":\"Nicht bereit\",\"release_bundle\":\"Release-Bundle\",\"frontend_version\":\"Frontend-Version\",\"api_version\":\"API-Version\",\"frontend_base_url\":\"Frontend-URL\",\"api_base_url\":\"API-URL\",\"frontend_entry\":\"Frontend-Einstiegspunkt\",\"release_runtime\":\"Release-Laufzeit\",\"bundle\":\"Bundle\",\"frontend\":\"Frontend\",\"api\":\"API\",\"use_local_frontend\":\"Lokales Frontend verwenden\",\"switch_error\":\"Release channel could not be switched. The previous channel is still active.\"},\"common\":{\"yes\":\"ja\",\"no\":\"nein\",\"off\":\"aus\"},\"actions\":{\"edit\":\"Bearbeiten\",\"rollback\":\"Zurückrollen\",\"update\":\"Aktualisieren\",\"create\":\"Erstellen\",\"clear\":\"Leeren\",\"assign\":\"Zuweisen\",\"remove\":\"Entfernen\",\"test_access\":\"Zugriff testen\",\"deploy\":\"Deployen\",\"redeploy\":\"Erneut deployen\",\"promote\":\"Promoten\",\"enable\":\"Aktivieren\",\"search\":\"Suchen\",\"save_target\":\"Ziel speichern\",\"delete\":\"Löschen\",\"back\":\"Zurück\",\"next\":\"Weiter\",\"publish_release\":\"Publish release\"},\"tables\":{\"channel\":\"Kanal\",\"rollout\":\"Rollout\",\"frontend\":\"Frontend\",\"api\":\"API\",\"replay\":\"Replay\",\"actions\":\"Aktionen\",\"module\":\"Module\",\"status\":\"Status\",\"checked\":\"Geprüft\",\"subject\":\"Subjekt\",\"reason\":\"Grund\",\"expires\":\"Läuft ab\",\"deployment\":\"Deployment\",\"source\":\"Quelle\",\"started\":\"Gestartet\",\"target\":\"Ziel\",\"coolify\":\"Coolify\",\"auto\":\"Auto\"},\"values\":{\"app\":{\"frontend\":\"Frontend\",\"api\":\"API\"},\"capture_level\":{\"metadata\":\"Metadaten\",\"full_redacted\":\"vollständig redigiert\"},\"subject_type\":{\"user\":\"Benutzer\",\"subuser\":\"Mitarbeiter\",\"customer\":\"Kunde\",\"channel\":\"Kanal\"},\"severity\":{\"error\":\"Fehler\",\"warning\":\"Warnung\",\"info\":\"Info\"},\"status\":{\"ok\":\"ok\",\"active\":\"aktiv\",\"deployed\":\"deployt\",\"stable\":\"stabil\",\"enabled\":\"aktiviert\",\"queued\":\"in Warteschlange\",\"deploying\":\"deploying\",\"metadata\":\"Metadaten\",\"not_configured\":\"nicht konfiguriert\",\"warning\":\"Warnung\",\"failed\":\"fehlgeschlagen\",\"down\":\"down\",\"error\":\"Fehler\",\"unknown\":\"unbekannt\"}},\"autocomplete\":{\"suggested_value\":\"Vorgeschlagener Wert\",\"suggestion\":\"Vorschlag\",\"use_typed_value\":\"Eingegebenen Wert verwenden\",\"custom\":\"Benutzerdefiniert\",\"api_url\":\"API URL\",\"frontend_url\":\"Frontend URL\",\"known_release_url\":\"Bekannte Release-URL\",\"deploy_here_with_coolify\":\"{app} hier mit Coolify deployen\",\"prepare_coolify_target\":\"Coolify-Ziel mit aktiviertem HTTPS/SSL vorbereiten\",\"coolify_ssl\":\"Coolify SSL\",\"github_repository\":\"GitHub-Repository\",\"owner_repository\":\"owner/repository\",\"git_branch\":\"Git branch\",\"deployment_branch\":\"Deployment branch\",\"github_commit\":\"GitHub commit\",\"git_commit\":\"Git commit\",\"use_specific_commit_sha\":\"Bestimmte Commit-SHA verwenden\",\"custom_commit\":\"Benutzerdefinierter Commit\",\"health_url\":\"Health URL\",\"release_health_check\":\"Release-Health-Check\",\"coolify_service\":\"Coolify service\",\"service_uuid\":\"Service UUID\",\"known_coolify_service_uuid\":\"Known Coolify service UUID\",\"control_api\":\"Kontroll-API\",\"release_manager_api_endpoint\":\"Release Manager API-Endpunkt\",\"module\":\"Module\",\"timeline_module_key\":\"Timeline-Modulschlüssel\"},\"errors\":{\"github_repositories\":\"GitHub-Repositories konnten nicht geladen werden.\",\"github_branches\":\"GitHub-Branches konnten nicht geladen werden.\",\"repository_branch_required\":\"Repository und Branch sind erforderlich, bevor GitHub-Zugriff getestet werden kann.\",\"github_access_failed\":\"GitHub-Repository-Zugriffstest ist fehlgeschlagen.\"},\"channels\":{\"title\":\"Kanäle\",\"subtitle\":\"Graduale Release-Kanäle erstellen und anpassen.\",\"rollout_percent\":\"{percent}% rollout\",\"already_configured\":\"Bereits konfiguriert\",\"slug\":\"Slug\",\"slug_message\":\"Example: canary\",\"slug_placeholder\":\"slug\",\"name\":\"Name\",\"name_message\":\"Wird Operatoren bei der Kanalprüfung angezeigt.\",\"name_placeholder\":\"Name\",\"rollout\":\"Rollout\",\"rollout_message\":\"0-100 Prozent des nicht zugewiesenen Traffics.\",\"frontend_url\":\"Frontend URL\",\"frontend_url_message\":\"Example: https://canary.example.test\",\"frontend_url_placeholder\":\"Frontend URL\",\"no_matching_release_url\":\"Keine passende Release-URL.\",\"api_url\":\"API URL\",\"api_url_message\":\"Example: https://api-canary.example.test\",\"api_url_placeholder\":\"API URL\",\"no_matching_api_url\":\"Keine passende API-URL.\",\"replay_capture\":\"Replay-Erfassung\",\"replay_capture_message\":\"Metadaten sind für breite Kanäle sicherer.\",\"retention_days\":\"Aufbewahrungstage\",\"retention_days_message\":\"1-365 Tage.\",\"enabled\":\"Aktiviert\",\"default_channel\":\"Standardkanal\",\"replay_enabled\":\"Replay aktiviert\",\"frontend_chip\":\"Frontend: {url}\",\"api_chip\":\"API: {url}\"},\"assignments\":{\"title\":\"Zuweisungen\",\"subtitle\":\"Benutzer, Mitarbeiter oder Kunden an Release-Kanäle binden.\",\"subject\":\"Subjekt\",\"subject_message\":\"Benutzer, Subuser oder Kunden suchen oder ein manuelles Subjekt wie user:42 eingeben.\",\"subject_placeholder\":\"Subjekt suchen oder eingeben\",\"subject_empty\":\"Keine Subjekte gefunden\",\"group_users\":\"Benutzer\",\"group_subusers\":\"Subuser\",\"group_customers\":\"Kunden\",\"group_manual\":\"Manuell\",\"manual_user\":\"Benutzer #{id}\",\"manual_subuser\":\"Subuser #{id}\",\"manual_customer\":\"Kunde #{id}\",\"manual_description\":\"Eingegebenen Wert {subject} verwenden\",\"subject_type\":\"Subjekttyp\",\"subject_type_message\":\"Identitätstyp zum Binden auswählen.\",\"customer\":\"Customer\",\"customer_message\":\"Nach Kundennummer oder Name suchen und dann den genauen Kunden auswählen.\",\"customer_placeholder\":\"Kunde suchen\",\"subject_id\":\"Subjekt-ID\",\"subject_id_message\":\"Beispiel: Benutzer-ID 42\",\"subject_id_placeholder\":\"Subjekt-ID\",\"channel\":\"Channel\",\"channel_message\":\"Gebundene Subjekte umgehen den prozentualen Rollout.\",\"reason\":\"Grund\",\"reason_message\":\"Beispiel: Canary-Validierung für Kundensupport.\",\"reason_placeholder\":\"Grund\",\"expires\":\"Läuft ab\",\"expires_message\":\"Leer lassen für kein automatisches Ablaufdatum.\"},\"deployments\":{\"title\":\"Deployments\",\"subtitle\":\"Release-Deployments starten, promoten und prüfen.\",\"manual_deployment_record\":\"Manueller Deployment-Eintrag\",\"target\":\"Ziel\",\"target_message\":\"Gespeichertes Ziel wählen oder manuelle Felder editierbar lassen.\",\"select_target_or_manual\":\"Ziel oder manuell auswählen\",\"channel\":\"Channel\",\"app\":\"App\",\"repository\":\"Repository\",\"repository_message\":\"Example: truckwash/front-end-vue\",\"repository_placeholder\":\"owner/repo\",\"branch\":\"Branch\",\"branch_message\":\"Example: master\",\"branch_placeholder\":\"branch\",\"commit_selection\":\"Commit-Auswahl\",\"commit_selection_message\":\"Neueste Version wird mit dem konfigurierten GitHub-Token als Branch-Head aufgelöst.\",\"latest_from_branch\":\"Neuester vom Branch\",\"specific_commit\":\"Bestimmter Commit\",\"specific_commit_message\":\"Example: feedface1234\",\"commit_sha_placeholder\":\"commit sha\",\"version_label\":\"Versionslabel\",\"version_label_message\":\"Example: api-2026.05.19\",\"version_label_placeholder\":\"Versionslabel\",\"commit_prefix\":\"Commit: {commit}\",\"test_access_tooltip\":\"Token-Zugriff auf das ausgewählte Repository, den Branch und Commit prüfen.\"},\"replay\":{\"title\":\"Replay\",\"subtitle\":\"Gezielte Erfassung aktivieren und Fehler-Timelines Schritt für Schritt prüfen.\",\"capture_channel\":\"{channel} erfassen\",\"target_type\":\"Zieltyp\",\"target\":\"Ziel\",\"target_message\":\"Beispiel: Benutzer-ID 42 oder Kanal-Slug canary.\",\"target_placeholder\":\"Ziel-ID oder Kanal-Slug\",\"channel_scope\":\"Kanalbereich\",\"channel_scope_message\":\"Optional; begrenzt Replay-Erfassung auf einen Kanal.\",\"no_channel_scope\":\"Kein Kanalbereich\",\"capture_level\":\"Erfassungsstufe\",\"expires\":\"Läuft ab\",\"expires_message\":\"Leer lassen für manuelle Deaktivierung.\",\"trace_id\":\"Trace ID\",\"trace_id_message\":\"Example: trace-canary-1\",\"trace_id_placeholder\":\"Trace id\",\"channel\":\"Channel\",\"channel_placeholder\":\"Channel\",\"principal_id\":\"Principal ID\",\"principal_id_placeholder\":\"Principal-ID\",\"module\":\"Module\",\"module_placeholder\":\"Module\",\"severity\":\"Schweregrad\",\"any_severity\":\"Beliebiger Schweregrad\",\"no_timeline_events\":\"Keine Timeline-Events entsprechen den aktuellen Filtern.\"},\"status\":{\"confirm_issue_action\":\"Run this Release Manager action? It can change deployment state and will be audited.\",\"choose_bundle_prompt\":\"Enter the bundle id to set for this channel.\",\"impact\":\"Impact\",\"cause\":\"Cause\",\"automated_fix\":\"Automated fix\",\"manual_fallback\":\"Manual fallback\",\"related_deployment\":\"Related deployment\",\"recent_result\":\"Recent result\",\"no_automated_action\":\"No automated action available.\",\"deployment\":\"Deployment\",\"target\":\"Target\",\"coolify_target\":\"Coolify target\",\"service_set\":\"Service set\"}}},\"connectivity\":{\"description\":\"@.capitalize:{'words.generated.dies'} klärt @:{'words.generated.sich'} @:{'words.generated.in'} @:{'words.generated.der'} @:{'words.generated.regel'} @:{'words.generated.von'} @:{'words.generated.selbst'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.warten'} @.capitalize:{'words.generated.sie'}, während @:{'words.generated.wir'} @:{'words.replication.article.host_mention'} @.capitalize:{'words.generated.server'} überprüfen.\",\"footer\":\"@.capitalize:{'words.generated.wenn'} @:{'words.generated.das'} Problem @:{'words.generated.weiterhin'} besteht, @:{'words.generated.kontaktieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.bitte'} @:{'words.replication.article.host_mention'} @:{'words.generated.support'}.\",\"no_internet\":\"@.capitalize:{'words.generated.keine'} Internetverbindung.\",\"retry_in\":\"@.capitalize:{'words.generated.wird'} @:{'words.generated.erneut'} @:{'words.generated.versucht'} @:{'words.generated.in'} {seconds} @:{'words.generated.sekunden'}...\",\"retry_now\":\"Versuche @:{'words.generated.verbindung'} @:{'words.generated.wiederherzustellen'}...\",\"retry\":\"@:{'templates.generated.compat.common.redo'}\",\"server_down\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.verbindung'} @:{'words.generated.zum'} @.capitalize:{'words.generated.server'}.\",\"subtitle\":\"@.capitalize:{'words.generated.wird'} @:{'words.generated.alle'} paar @:{'words.generated.sekunden'} @:{'words.generated.automatisch'} @:{'words.generated.versucht'}, @:{'words.generated.die'} @:{'words.generated.verbindung'} @:{'words.generated.wiederherzustellen'}.\",\"title\":\"Verbindungsproblem\"},\"customer_creation\":{\"customer\":{\"benefit_credit\":\"@:{'words.generated.kreditkonto'}\",\"benefit_credit_desc\":\"@.capitalize:{'words.generated.erhalten'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ein'} @:{'words.generated.kreditkonto'} @:{'words.generated.mit'} monatlicher @:{'words.generated.abrechnung'}\",\"benefit_portal\":\"@:{'words.generated.kundenportal'}\",\"benefit_portal_desc\":\"@.capitalize:{'words.generated.nutzen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.das'} @:{'words.generated.kundenportal'}, @:{'words.generated.um'} @:{'words.generated.fahrzeuge'} hinzuzuf?@:{'words.generated.gen'}, @.upper:{'words.generated.w'}?@:{'words.generated.schen'} @:{'words.generated.zu'} @:{'words.generated.buchen'}, @:{'words.generated.rechnungen'} @:{'words.generated.und'} @:{'words.generated.waschzertifikate'} herunterzuladen @:{'words.generated.sowie'} @:{'words.generated.informationen'} @:{'words.generated.zu'} @:{'words.generated.fr'}?@:{'words.generated.heren'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'} einzusehen\",\"benefit_wash_desc\":\"@.capitalize:{'words.generated.nutzen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.unser'} @:{'words.generated.nationales'} @:{'words.generated.netz'} @:{'words.generated.von'} @:{'words.generated.waschhallen'} @:{'words.generated.zu'} @:{'words.generated.wettbewerbsf'}?@:{'words.generated.higen'} @:{'words.generated.preisen'}\",\"ean_label\":\"@:{'templates.generated.compat.admin.pos.ean'}\",\"email_label\":\"Firmen-@.upper:{'words.generated.e'}-@:{'words.generated.mail'}\",\"intro\":\"@.capitalize:{'words.generated.als'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.bei'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.erhalten'} @.capitalize:{'words.generated.sie'} @:{'words.generated.zugang'} @:{'words.generated.zu'}:\",\"phone_label\":\"@:{'templates.generated.compat.admin.pos.company_phone'}\",\"success_message\":\"@:{'words.generated.ihr'} @:{'words.generated.konto'} @:{'words.generated.wurde'} @:{'words.generated.erstellt'}. @.capitalize:{'words.generated.wir'} @:{'words.generated.haben'} @:{'words.generated.eine'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.mit'} @:{'words.generated.weiteren'} @:{'words.generated.informationen'} @:{'words.generated.gesendet'}.\",\"title\":\"@.capitalize:{'words.generated.als'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.registrieren'}\"},\"driver\":{\"benefit_24h\":\"24h-@.upper:{'words.generated.w'}?@:{'words.generated.sche'}\",\"benefit_24h_desc\":\"@.capitalize:{'words.generated.waschen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.au'}?@:{'words.generated.erhalb'} @:{'words.generated.der'} @:{'words.generated.betreuten'} ?@:{'words.generated.ffnungszeiten'}, @:{'words.generated.wenn'} @:{'words.generated.es'} @:{'words.generated.ihnen'} @:{'words.generated.passt'}\",\"benefit_booking_desc\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.im'} @:{'words.generated.ganzen'} @:{'words.generated.land'} @:{'words.generated.buchen'}\",\"benefit_find\":\"@:{'words.generated.waschhallen'} @:{'words.generated.finden'}\",\"benefit_find_desc\":\"@.capitalize:{'words.generated.schnell'} @:{'words.generated.und'} einfach @:{'words.generated.zur'} @:{'words.generated.n'}?chstgelegenen @:{'words.generated.waschhalle'} navigieren\",\"benefit_loyalty\":\"@:{'words.generated.treuepunkte'}\",\"benefit_loyalty_desc\":\"@.capitalize:{'words.generated.sammeln'} @:{'words.generated.und'} @:{'words.generated.nutzen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.treuepunkte'} @:{'words.generated.bei'} @:{'words.generated.jeder'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.bei'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} (@:{'words.generated.verf'}?@:{'words.generated.gbar'} @:{'words.generated.ab'} @:{'words.generated.mai'} 2026)\",\"intro\":\"@.capitalize:{'words.generated.als'} @:{'words.generated.fahrer'} @:{'words.generated.bei'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.erhalten'} @.capitalize:{'words.generated.sie'} @:{'words.generated.zugang'} @:{'words.generated.zu'}:\",\"phone_label\":\"Fahrertelefon\",\"submit\":\"@:{'words.generated.konto'} @:{'words.generated.erstellen'}\",\"title\":\"@.capitalize:{'words.generated.als'} @:{'words.generated.fahrer'} @:{'words.generated.registrieren'}\"},\"pre_title\":\"Kundenerstellung\",\"subtitle\":\"Profitieren @.capitalize:{'words.generated.sie'} @:{'words.generated.von'} zahlreichen Vorteilen, @:{'words.generated.wenn'} @.capitalize:{'words.generated.sie'} @:{'words.generated.als'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.oder'} @:{'words.generated.fahrer'} @:{'words.generated.bei'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.registriert'} @:{'words.generated.sind'}\",\"title\":\"@.capitalize:{'words.generated.erstellen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sich'} @:{'words.generated.schnell'} @:{'words.generated.als'} @:{'words.generated.neuer'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.oder'} @:{'words.generated.neuer'} @:{'words.generated.fahrer'} @:{'words.generated.bei'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\"},\"customer_rules\":{\"attributes\":{\"exemptFromAdministrationFee\":{\"description\":\"Do @:{'words.generated.not'} @:{'words.generated.apply'} @:{'words.generated.administration'} fees @:{'words.generated.to'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@.capitalize:{'words.generated.exempt'} @:{'words.generated.from'} @:{'words.generated.administration'} @:{'words.generated.fee'}\"},\"invoiceAllOrdersIndividually\":{\"description\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.separate'} @:{'words.generated.invoices'} instead @:{'words.generated.of'} grouping @:{'words.generated.this'} @:{'words.generated.customer'}'@:{'words.generated.s'} @:{'words.generated.orders'}.\",\"label\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.all'} @:{'words.generated.orders'} individually\"},\"invoiceWithStripe\":{\"description\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.stripe'} invoicing @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.with'} @:{'words.generated.stripe'}\"},\"onlyTankCleaning\":{\"description\":\"@.capitalize:{'words.generated.allow'} @:{'words.generated.only'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} @:{'words.generated.services'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\"},\"requiresReferenceNumber\":{\"description\":\"@:{'words.generated.require'} @:{'words.generated.a'} @:{'words.generated.reference'} @:{'words.generated.number'} @:{'words.generated.on'} bookings @:{'words.generated.and'} @:{'words.generated.orders'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.require'} @:{'words.generated.reference'} @:{'words.generated.number'}\"},\"requiresRegistrationNumbersInvoice\":{\"description\":\"@:{'words.generated.require'} @:{'words.generated.registration'} @:{'words.generated.numbers'} @:{'words.generated.to'} appear @:{'words.generated.on'} @:{'words.generated.invoices'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.require'} @:{'words.generated.registration'} @:{'words.generated.numbers'} @:{'words.generated.on'} @:{'words.generated.invoice'}\"},\"restrictAdditionalServices\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.additional'} @:{'words.generated.services'} @:{'words.generated.and'} @:{'words.generated.add'}-ons @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.additional'} @:{'words.generated.services'}\"},\"restrictInteriorCleaning\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.interior'} @:{'words.generated.cleaning'} @:{'words.generated.services'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.interior'} @:{'words.generated.cleaning'}\"},\"restrictSpotFree\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.spot'}-@:{'words.generated.free'} @:{'words.generated.rinse'} @:{'words.generated.services'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.spot'}-@:{'words.generated.free'} @:{'words.generated.rinse'}\"},\"restrictTankCleaning\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} @:{'words.generated.services'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}\"},\"showPricesOnBookingPage\":{\"description\":\"Display @:{'words.generated.customer'} @:{'words.generated.prices'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.booking'} @:{'words.generated.page'}.\",\"label\":\"Show @:{'words.generated.prices'} @:{'words.generated.on'} @:{'words.generated.booking'} @:{'words.generated.page'}\"},\"usePONumbers\":{\"description\":\"@:{'words.generated.enable'} @:{'words.generated.po'} @:{'words.generated.number'} handling @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.po'} @:{'words.generated.numbers'}\"}},\"manager\":{\"active_count\":\"{count} aktiv\",\"errors\":{\"load\":\"Kundenregeln konnten nicht geladen werden.\",\"update\":\"Die Kundenregel konnte nicht aktualisiert werden.\"},\"no_target\":\"Eine Benutzer-ID oder Kundennummer ist erforderlich, bevor Kundenregeln verwaltet werden können.\",\"toggle_unavailable\":\"Sie haben keine Berechtigung, diese Kundenregel zu ändern.\",\"unavailable\":\"Sie haben keine Berechtigung, Kundenregeln anzuzeigen.\",\"unknown_active\":\"Unbekannte aktive Regeln\"},\"tooltip\":{\"available_if_enabled\":\"Bleibt verfügbar, wenn aktiviert\",\"available_while_enabled\":\"Verfügbar, solange aktiv\",\"blocked_if_enabled\":\"Wird blockiert, wenn aktiviert\",\"blocked_now\":\"Blockiert, solange aktiv\",\"changes\":\"Änderungen\",\"groups\":{\"primary_products\":\"Primäre Produkte\",\"related_addons\":\"Verknüpfte Add-ons\",\"standalone_additional_services\":\"Eigenständige Zusatzleistungen\"},\"load_failed\":\"Betroffene Produkte konnten nicht geladen werden.\",\"loading_products\":\"Betroffene Produkte werden geladen...\",\"no_affected_products\":\"Im aktuellen Produktkatalog wurden keine betroffenen Produkte gefunden.\"}},\"customers\":{\"add_customer\":\"@:{'templates.generated.compat.admin.pos.add_customer'}\",\"add_vehicle_subtitle\":\"Neues @:{'words.generated.fahrzeug'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"add_vehicle_to_customer\":\"@:{'words.generated.fahrzeug'} @:{'words.generated.zum'} @:{'words.generated.kunden'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"add_vehicle\":\"@:{'templates.generated.compat.vehicles.add'}\",\"confirm_delete_vehicle\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.dieses'} @:{'words.generated.fahrzeug'} @:{'words.generated.l'}?@:{'words.generated.schen'} @:{'words.generated.m'}?@:{'words.generated.chten'}? @.capitalize:{'words.generated.dies'} @:{'words.generated.kann'} @:{'words.generated.nicht'} @:{'words.generated.r'}?@:{'words.generated.ckg'}?@:{'words.generated.ngig'} @:{'words.generated.gemacht'} @:{'words.generated.werden'}.\",\"confirm_remove_vehicle\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.dieses'} @:{'words.generated.fahrzeug'} @:{'words.generated.vom'} @:{'words.generated.kunden'} @:{'words.generated.entfernen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"contact\":{\"title\":\"Ansprechpartner\"},\"cvr\":\"@:{'words.generated.cvr'}-@.capitalize:{'words.generated.nummer'}\",\"delete_confirm\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.diesen'} @:{'words.generated.kunden'} @:{'words.generated.l'}?@:{'words.generated.schen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"delete_customer\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"delete_selected_confirm\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} {count} @:{'words.generated.ausgew'}?@:{'words.generated.hlte'} @:{'words.generated.kunden'} @:{'words.generated.l'}?@:{'words.generated.schen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"delete_selected\":\"@.capitalize:{'words.generated.ausgew'}?@:{'words.generated.hlte'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"edit_customer\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.bearbeiten'}\",\"export\":\"@:{'words.generated.kunden'} @:{'words.generated.exportieren'}\",\"form\":{\"billing_type\":\"Abrechnungsart\",\"contact_name\":\"Kontaktname\",\"contact_phone\":\"@:{'templates.generated.compat.admin.pos.contact_phone'}\",\"credit_limit\":\"Kreditlimit\",\"payment_due\":\"Zahlungsfrist\",\"vat_registered\":\"@:{'words.generated.mwst'}.-@:{'words.generated.registriert'}\"},\"import\":\"@:{'words.generated.kunden'} @:{'words.generated.importieren'}\",\"no_customers\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.kunden'} @:{'words.generated.gefunden'}\",\"no_vehicles\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.fahrzeuge'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.kundenname'}, @:{'words.generated.kundennummer'}, @.upper:{'words.generated.e'}-@:{'words.generated.mail'}, @:{'words.generated.telefon'} @:{'words.generated.suchen'}\",\"view_subtitle\":\"Kundendetails @:{'words.generated.anzeigen'}\",\"view_vehicles\":\"@:{'words.generated.fahrzeuge'} @:{'words.generated.anzeigen'}\"},\"department_dashboard\":{\"bookings\":{\"all\":\"@:{'templates.generated.compat.common.all'}\",\"certificate_download_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.herunterladen'} @:{'words.generated.des'} @:{'words.generated.waschzertifikats'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}\",\"certificate_generated\":\"@.upper:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.diese'} @:{'words.generated.buchung'} @:{'words.generated.wurde'} @:{'words.generated.ein'} @:{'words.generated.waschzertifikat'} @:{'words.generated.erstellt'}.\",\"search\":\"@:{'words.generated.buchungen'} @:{'words.generated.suchen'}...\",\"sent_to\":\"@.capitalize:{'words.generated.gesendet'} @:{'words.generated.an'}\",\"services\":{\"exterior_semi_trailer\":\"@.capitalize:{'words.generated.au'}?@:{'words.generated.enreinigung'} Sattelzug (@:{'words.generated.lkw'} / @.capitalize:{'words.generated.anh'}?@:{'words.generated.nger'})\",\"exterior_trailer_wash\":\"@.capitalize:{'words.generated.au'}?@:{'words.generated.enreinigung'} @.capitalize:{'words.generated.anh'}?@:{'words.generated.nger'}\",\"interior_trailer_wash\":\"Innenreinigung @.capitalize:{'words.generated.anh'}?@:{'words.generated.nger'}\"},\"subtitle\":\"@:{'templates.generated.compat.bookings.subtitle'}\",\"upcoming\":\"Kommend\",\"wash_completed\":\"@:{'templates.generated.compat.self_wash.wash_completed'}\"},\"calendar\":{\"subtitle\":\"@:{'words.generated.kalender'} @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.anzeigen'}\"},\"customers\":{\"subtitle\":\"@:{'words.generated.kunden'} @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.verwalten'}\"},\"daily_report\":{\"subtitle\":\"@.upper:{'words.generated.t'}?@:{'words.generated.gliche'} @:{'words.generated.berichte'} @:{'words.generated.anzeigen'}\"},\"employees\":{\"subtitle\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.verwalten'}\"},\"home\":{\"subtitle\":\"@:{'words.generated.willkommen'} @:{'words.generated.im'} @:{'words.generated.dashboard'} @:{'words.generated.der'} @:{'words.generated.abteilung'}\"},\"invoices\":{\"subtitle\":\"@:{'words.generated.rechnungen'} @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.anzeigen'}\"},\"overview\":{\"charts\":\"Diagramme\",\"list\":\"@:{'templates.generated.compat.calendar.fullcalendar.list'}\",\"subtitle\":\"@:{'templates.generated.compat.statistics.overview.subtitle'}\"},\"pos\":{\"subtitle\":\"@:{'words.generated.verk'}?@:{'words.generated.ufe'} @:{'words.generated.registrieren'}\"},\"products\":{\"addons_subtitle\":\"@:{'words.generated.produktzus'}?@:{'words.generated.tze'} @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.verwalten'}\",\"no_addons\":\"@.capitalize:{'words.generated.keine'} Zusatzprodukte @:{'words.generated.gefunden'}.\",\"subtitle\":\"@:{'words.generated.produkte'} @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.verwalten'}\"},\"settings\":{\"subtitle\":\"@:{'words.generated.einstellungen'} @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.verwalten'}\"},\"sidebar\":{\"time_bookings\":\"@:{'words.generated.zeitbuchungen'}\"},\"statistics\":{\"subtitle\":\"Statistiken @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.anzeigen'}\"},\"time_bookings\":{\"subtitle\":\"@:{'templates.generated.compat.admin.time_bookings.subtitle'}\"},\"vehicles\":{\"subtitle\":\"@:{'words.generated.fahrzeuge'} @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.verwalten'}\"},\"wash_log\":{\"add_wash\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"add_wash_title\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.zum'} @:{'words.generated.protokoll'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"created_certificate\":\"@:{'words.generated.waschzertifikat'} @:{'words.generated.erstellt'}. @.capitalize:{'words.generated.es'} @:{'words.generated.wird'} @:{'words.generated.jetzt'} @:{'words.generated.in'} @:{'words.generated.einem'} @:{'words.generated.neuen'} @:{'words.generated.tab'} @:{'words.generated.ge'}?ffnet.\",\"creating_certificate\":\"@:{'words.generated.waschzertifikat'} @:{'words.generated.wird'} @:{'words.generated.erstellt'}...\",\"discount\":\"@:{'templates.generated.compat.common.discount'}\",\"download_csv\":\"CSV @:{'words.generated.herunterladen'}\",\"download_excel\":\"@:{'templates.generated.compat.pagination.download_excel'}\",\"edit_wash\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.bearbeiten'}\",\"ended\":\"@.capitalize:{'words.generated.beendet'}\",\"no_washes\":\"@.capitalize:{'words.generated.keine'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'} @:{'words.generated.gefunden'}\",\"open_wash_certificate\":\"@:{'words.generated.waschzertifikat'} ?@:{'words.generated.ffnen'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.kennzeichen'}, @:{'words.generated.referenz'}, @:{'words.generated.mitarbeiter'}, @.capitalize:{'words.generated.kunde'} @:{'words.generated.suchen'}\",\"showing_x_of_y\":\"@:{'words.generated.zeigt'} {x} @:{'words.generated.von'} {y}\",\"started\":\"Gestartet\",\"subtitle\":\"@:{'words.generated.waschprotokoll'} @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.anzeigen'}\",\"subtitle_expanded\":\"@:{'words.generated.protokoll'} ?@:{'words.generated.ber'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'} @:{'words.generated.in'} @:{'words.generated.der'} @:{'words.generated.abteilung'}\",\"washes_per_page\":\"@.upper:{'words.generated.w'}?@:{'words.generated.schen'} @:{'words.generated.pro'} @:{'words.generated.seite'}\",\"washes_per_page_title\":\"@:{'templates.generated.compat.department_dashboard.wash_log.washes_per_page'}\"}},\"department_reports\":{\"avg_revenue_per_wash\":\"@:{'templates.generated.compat.statistics.avg_revenue_per_wash'}\",\"revenue\":\"@:{'words.generated.umsatz'}\",\"today\":\"@:{'words.generated.heute'}\"},\"departments\":{\"addons\":{\"new_addon\":\"@.capitalize:{'words.generated.neues'} Zusatzprodukt\"},\"confirm_delete\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.diese'} @:{'words.generated.abteilung'} @:{'words.generated.l'}?@:{'words.generated.schen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"dashboard\":\"@:{'templates.generated.compat.common.dashboard'}\",\"delete_department\":\"@:{'words.generated.abteilung'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"edit_department\":\"@:{'words.generated.abteilung'} @:{'words.generated.bearbeiten'}\",\"form\":{\"latitude\":\"Breitengrad\",\"longitude\":\"@.upper:{'words.generated.l'}?ngengrad\"},\"integrations\":{\"mailersend_api_key\":\"@:{'templates.generated.compat.configuration.email.mailersend_api_key'}\",\"subtitle\":\"@:{'words.generated.integrationen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.abteilung'} @:{'words.generated.konfigurieren'}\"},\"new_department\":\"@.capitalize:{'words.generated.neue'} @:{'words.generated.abteilung'}\",\"no_departments\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.abteilungen'} @:{'words.generated.gefunden'}\",\"opening_hours\":{\"closed\":\"@:{'templates.generated.compat.global.closed'}\"},\"pricing\":{\"custom_pricing_disabled\":\"Fallback aktiviert\",\"custom_pricing_enabled\":\"Nur eigene Preise\",\"custom_pricing_missing_price\":\"Fehlende Abteilungspreise werden zu 999999.\",\"custom_pricing_only\":\"Keine Fallback-Preise\",\"effective_department_price\":\"Effektiver Abteilungspreis\"},\"search_placeholder\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.abteilungsname'} @:{'words.generated.suchen'}\",\"select_department\":\"@:{'templates.generated.compat.nav.select_department'}\",\"subtitle\":\"@:{'words.generated.abteilungen'} @:{'words.generated.verwalten'}\",\"tab\":{\"info\":\"@:{'templates.generated.compat.common.info'}\",\"opening_hours\":\"?@:{'words.generated.ffnungszeiten'}\",\"product_addons\":\"@:{'words.generated.produktzus'}?@:{'words.generated.tze'}\",\"wash_products\":\"Waschprodukte\"},\"title\":\"@:{'templates.generated.compat.common.departments'}\"},\"employees\":{\"confirm_delete\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.diesen'} @:{'words.generated.mitarbeiter'} @:{'words.generated.l'}?@:{'words.generated.schen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"delete_employee\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"edit_employee\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.bearbeiten'}\",\"new_employee\":\"@.capitalize:{'words.generated.neuer'} @:{'words.generated.mitarbeiter'}\",\"no_employees\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.mitarbeiter'} @:{'words.generated.gefunden'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.nach'} @.capitalize:{'words.generated.name'}, @.upper:{'words.generated.e'}-@:{'words.generated.mail'}, @:{'words.generated.telefon'} @:{'words.generated.suchen'}\",\"subtitle\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.verwalten'}\"},\"error_report\":{\"button\":\"Fehler melden\",\"title\":\"Fehler melden\",\"subtitle\":\"Sende die letzten Fehlerdetails an den Support. Ein Screenshot wird angehängt, wenn möglich.\",\"before_error\":\"Was haben Sie getan, bevor der Fehler auftrat?\",\"expected\":\"Was hatten Sie erwartet?\",\"actual\":\"Was ist tatsächlich passiert?\",\"before_error_placeholder\":\"Beschreiben Sie die Aktion, zum Beispiel Bestellungen öffnen oder einen Kunden auswählen.\",\"expected_placeholder\":\"Beschreiben Sie das erwartete Ergebnis.\",\"actual_placeholder\":\"Beschreiben Sie, was stattdessen zu sehen war, inklusive Fehlermeldung.\",\"consent\":\"Ich akzeptiere, dass letzte Request-Fehler, Vue-Fehler, Browserdetails, meine Antworten und ein App-Screenshot, wenn möglich, zur Fehlersuche erfasst werden.\",\"submit\":\"Bericht senden\",\"submitted\":\"Fehlerbericht gesendet.\",\"capture_failed\":\"Der Screenshot konnte nicht erstellt werden. Der Bericht wird ohne Screenshot gesendet.\",\"submit_failed\":\"Der Fehlerbericht konnte nicht gesendet werden.\",\"required\":\"Alle Felder und die Zustimmung zur Datenerfassung sind erforderlich.\",\"page_subtitle\":\"Gemeldete Bildschirme, Request-Fehler und Vue-Fehler\",\"screenshot\":\"Screenshot\",\"request_errors\":\"Request-Fehler\",\"vue_errors\":\"Vue-Fehler\",\"runtime_context\":\"Runtime-Kontext\",\"empty\":\"Keine Fehlerberichte gefunden.\",\"resolve\":\"Als gelöst markieren\",\"reopen\":\"Wieder öffnen\",\"resolution_note\":\"Lösungsnotiz\",\"filters\":{\"open\":\"Offen\",\"resolved\":\"Gelöst\",\"all\":\"Alle\"}},\"errors\":{\"forbidden\":\"@:{'words.generated.zugriff'} @:{'words.generated.verweigert'}.\",\"general\":\"@:{'templates.generated.compat.messages.error'}\",\"network_error\":\"@:{'words.generated.netzwerkfehler'}\",\"network\":\"@:{'words.generated.netzwerkfehler'}. @.capitalize:{'words.generated.bitte'} ?@:{'words.generated.berpr'}?@:{'words.generated.fen'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.verbindung'}.\",\"not_found\":\"Ressource @:{'words.generated.nicht'} @:{'words.generated.gefunden'}.\",\"parse_error\":{\"unknown\":\"@.capitalize:{'words.generated.ein'} @:{'words.generated.unbekannter'} @:{'words.generated.fehler'} @:{'words.generated.ist'} @:{'words.generated.aufgetreten'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.versuchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.es'} @:{'words.generated.erneut'}.\"},\"server_error\":\"@:{'words.generated.serverfehler'}\",\"server\":\"@:{'words.generated.serverfehler'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.versuchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.es'} sp?ter @:{'words.generated.erneut'}.\",\"timeout\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.anfrage'} @:{'words.generated.hat'} @:{'words.generated.zu'} lange gedauert. @.capitalize:{'words.generated.bitte'} @:{'words.generated.versuchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.es'} @:{'words.generated.erneut'}.\",\"unauthorized\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.sind'} @:{'words.generated.nicht'} berechtigt, @:{'words.generated.diese'} @:{'words.generated.aktion'} auszuf?@:{'words.generated.hren'}.\",\"validation\":\"Validierungsfehler. @.capitalize:{'words.generated.bitte'} ?@:{'words.generated.berpr'}?@:{'words.generated.fen'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} Eingaben.\"},\"global_search\":{\"actions\":{\"back_to_results\":\"@.capitalize:{'words.generated.zur'}?@:{'words.generated.ck'} @:{'words.generated.zu'} @:{'words.replication.article.host_mention'} Ergebnissen\",\"clear_results\":\"@:{'words.generated.ergebnisse'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"close_settings\":\"@:{'words.generated.einstellungen'} @:{'words.generated.schlie'}?@:{'words.generated.en'}\",\"run_search\":\"@:{'words.generated.suche'} @:{'words.generated.ausf'}?@:{'words.generated.hren'}\"},\"badges\":{\"score\":\"@:{'words.generated.punktzahl'} {score}\"},\"cache\":{\"clear_cache\":\"@.capitalize:{'words.generated.cache'} @:{'words.generated.leeren'}\",\"errors\":{\"types_required\":\"@.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.mindestens'} @:{'words.generated.einen'} @:{'words.generated.typ'} @:{'words.generated.aus'}, @:{'words.generated.wenn'} @:{'words.generated.der'} @:{'words.generated.bereich'} \\\"@:{'words.generated.typen'}\\\" @:{'words.generated.ist'}.\"},\"messages\":{\"cleared\":\"@:{'words.generated.systemsuch'}-@:{'words.generated.caches'} @:{'words.generated.wurden'} geleert.\",\"rebuild_queued\":\"@:{'words.generated.neuaufbau'} @:{'words.generated.des'} @:{'words.generated.systemsuch'}-@:{'words.generated.caches'} @:{'words.generated.wurde'} eingereiht.\"},\"queue_rebuild\":\"@:{'words.generated.neuaufbau'} einreihen\",\"rebuild_scope\":\"@:{'words.generated.bereich'} @:{'words.generated.neu'} @:{'words.generated.aufbauen'}\",\"rebuild_types\":\"@.capitalize:{'words.generated.typen'} @:{'words.generated.neu'} @:{'words.generated.aufbauen'}\",\"scope_all\":\"@:{'words.generated.alle'}\",\"scope_dirty\":\"unsauber\",\"scope_types\":\"@.capitalize:{'words.generated.typen'}\",\"superuser_only\":\"@.capitalize:{'words.generated.cache'}-Tools @:{'words.generated.sind'} @:{'words.generated.nur'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.superuser'} @:{'words.generated.verf'}?@:{'words.generated.gbar'}.\",\"title\":\"@:{'words.generated.superuser'}-Cachewerkzeuge\"},\"department_goals\":{\"loading\":\"@:{'words.generated.zielfortschritt'} @:{'words.generated.wird'} @:{'words.generated.geladen'}...\",\"overview\":\"Zielstatus\",\"period\":\"@:{'templates.generated.compat.objects.goals.columns.period'}\",\"progress_unavailable\":\"@:{'words.generated.zielfortschritt'} @:{'words.generated.ist'} @:{'words.generated.noch'} @:{'words.generated.nicht'} @:{'words.generated.verfugbar'}.\"},\"entity_types\":{\"bookings\":\"@:{'words.generated.legacy'}-@:{'words.generated.buchungen'}\",\"bookings_new\":\"@.capitalize:{'words.generated.neue'} @:{'words.generated.buchungen'}\",\"currency_conversion_rates\":\"Währungsumrechnungskurse\",\"customer_codes\":\"Kundencodes\",\"customer_default_department\":\"@:{'words.generated.standardabteilung'} @:{'words.generated.des'} @:{'words.generated.kunden'}\",\"customer_discounts\":\"Kundenrabatte\",\"customer_fixed_prices\":\"Kundenfestpreise\",\"customer_notes\":\"@:{'templates.generated.compat.common.customer_notes'}\",\"customer_vehicles_addons\":\"Kundenfahrzeug-@:{'words.generated.zusatzoptionen'}\",\"customers\":\"@:{'templates.generated.compat.common.customers'}\",\"department_goals\":\"@:{'words.generated.abteilungsziele'}\",\"department_selfserve_condition_rules\":\"@:{'words.generated.selfservice'}-@:{'words.generated.bedingungsregeln'} @:{'words.generated.der'} @:{'words.generated.abteilung'}\",\"department_selfserve_conditions\":\"@:{'words.generated.selfservice'}-@:{'words.generated.bedingungen'} @:{'words.generated.der'} @:{'words.generated.abteilung'}\",\"department_selfserve_questions\":\"@:{'words.generated.selfservice'}-@:{'words.generated.fragen'} @:{'words.generated.der'} @:{'words.generated.abteilung'}\",\"department_selfserve_tasks\":\"@:{'words.generated.selfservice'}-@:{'words.generated.aufgaben'} @:{'words.generated.der'} @:{'words.generated.abteilung'}\",\"department_selfserve_vehicle_conditions\":\"@:{'words.generated.selfservice'}-@:{'words.generated.fahrzeugbedingungen'} @:{'words.generated.der'} @:{'words.generated.abteilung'}\",\"fxratesapi_conversion_rates\":\"@:{'words.generated.fxratesapi'}-Umrechnungskurse\",\"module_config\":\"Modulkonfiguration\",\"motorapi_lookups\":\"@:{'words.generated.motorapi'}-Abfragen\",\"order_items\":\"@:{'templates.generated.compat.tables.pos.order_items'}\",\"plate_scanners\":\"@:{'templates.generated.compat.superuser.nav.scanners'}\",\"plate_scans\":\"Kennzeichenscans\",\"stripe_module_customers\":\"@:{'words.generated.stripe'}-@:{'words.generated.modul'}-@:{'words.generated.kunden'}\",\"stripe_module_orders\":\"@:{'words.generated.stripe'}-@:{'words.generated.modul'}-@:{'words.generated.auftrage'}\",\"stripe_payment_intents\":\"@:{'words.generated.stripe'}-Zahlungsintents\",\"subusers\":\"@:{'words.generated.unterbenutzer'}\",\"xlvask_customers\":\"@:{'words.generated.xlvask_xlvask'}-@:{'words.generated.kunden'}\",\"xlvask_potential_order_matches\":\"@:{'words.generated.xlvask_xlvask'}-potenzielle Auftragszuordnungen\",\"xlvask_usage_log_wash_items\":\"@:{'words.generated.xlvask_xlvask'}-Nutzungslog-Waschposten\",\"xlvask_usage_logs\":\"@:{'words.generated.xlvask_xlvask'}-Nutzungslogs\",\"xlvask_vehicles\":\"@:{'words.generated.xlvask_xlvask'}-@:{'words.generated.fahrzeuge'}\"},\"errors\":{\"enter_query\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} Suchanfrage @:{'words.generated.ein'}.\",\"invalid_payload\":\"@:{'words.generated.ung'}?@:{'words.generated.ltige'} Antwortdaten @:{'words.generated.der'} @:{'words.generated.suche'}.\",\"request_failed\":\"@:{'words.generated.anfrage'} @:{'words.generated.fehlgeschlagen'}.\"},\"groups\":{\"active\":\"@:{'words.generated.aktive'} @:{'words.generated.gruppe'}: {group}\",\"description\":\"@.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.gruppe'} @:{'words.generated.aus'}, @:{'words.generated.um'} sichtbare @:{'words.generated.ergebnisse'} @:{'words.generated.zu'} @:{'words.generated.filtern'}.\",\"empty_hint\":\"@.upper:{'words.generated.f'}?@:{'words.generated.hren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.suche'} @:{'words.generated.aus'}, @:{'words.generated.um'} @:{'words.generated.gruppierte'} @:{'words.generated.ergebnisse'} @:{'words.generated.zu'} @:{'words.generated.laden'}.\",\"summary\":\"@.capitalize:{'words.generated.gruppierte'} @:{'words.generated.ergebnisse'} (@:{'words.generated.nach'} @:{'words.generated.entit'}?tstyp)\",\"title\":\"Ergebnisgruppen\"},\"launcher\":{\"last_search\":\"@.capitalize:{'words.generated.letzte'} @:{'words.generated.suche'}: \\\"{query}\\\", {total} @:{'words.generated.ergebnisse'}\"},\"meta\":{\"allowed_types\":\"Erlaubte @.capitalize:{'words.generated.typen'}\",\"cache_hit\":\"@.capitalize:{'words.generated.cache'}-@:{'words.generated.treffer'}\",\"hide\":\"@:{'words.generated.meta'} @:{'words.generated.ausblenden'}\",\"intent\":{\"confidence\":\"Konfidenz\",\"entity_hints\":\"@:{'words.generated.entit'}?tshinweise\",\"expanded_terms\":\"@:{'words.generated.erweiterte'} Begriffe\",\"fallback_reason\":\"@.capitalize:{'words.generated.fallback'}-@:{'words.generated.grund'}\",\"invoked\":\"Aufgerufen\",\"source\":\"@:{'words.generated.quelle'}\",\"title\":\"@:{'words.generated.diagnose'} @:{'words.generated.des'} @:{'words.generated.intent'}-Parsers\"},\"limit\":\"@.capitalize:{'words.generated.limit'}\",\"max_results\":\"Max. Ergebnisse\",\"no\":\"@:{'words.generated.nein'}\",\"offset\":\"Versatz\",\"returned\":\"Zurueckgegeben\",\"show\":\"@:{'words.generated.meta'} @:{'words.generated.anzeigen'}\",\"truncated\":\"Gekuerzt\",\"yes\":\"@:{'words.generated.ja'}\"},\"progress\":{\"fetching_known\":\"Lade @:{'words.generated.seite'} {pagesDone} @:{'words.generated.von'} {pagesTotal}\",\"fetching_unknown\":\"Seiten @:{'words.generated.werden'} @:{'words.generated.geladen'}... ({pagesDone} @:{'words.generated.geladen'})\",\"preparing\":\"@:{'words.generated.suche'} @:{'words.generated.wird'} vorbereitet...\",\"results_loaded\":\"{loaded} / {total} @:{'words.generated.ergebnisse'} @:{'words.generated.geladen'}\"},\"results\":{\"association\":\"@:{'words.generated.zuordnung'}\",\"cap\":\"{returned} von {max}\",\"cap_truncated\":\"{returned} von {max} angezeigt\",\"empty\":\"@.upper:{'words.generated.f'}?@:{'words.generated.hren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.suche'} @:{'words.generated.aus'}, @:{'words.generated.um'} @:{'words.generated.ergebnisse'} @:{'words.generated.zu'} @:{'words.generated.laden'}.\",\"none_for_search\":\"@.capitalize:{'words.generated.keine'} {group}-@:{'words.generated.ergebnisse'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.diese'} @:{'words.generated.suche'}.\",\"payload\":\"@:{'words.generated.nutzdaten'}\",\"range\":\"@:{'words.generated.ergebnisse'} {start}-{end} @:{'words.generated.von'} {total}\"},\"search\":{\"placeholder\":\"@.capitalize:{'words.generated.alles'} durchsuchen...\"},\"settings_menu\":{\"object_types\":\"Objekttypen @:{'words.generated.filtern'}\",\"open_hint\":\"@:{'words.generated.einstellungen'} ?@:{'words.generated.ffnen'} @:{'words.generated.sich'} @:{'words.generated.im'} rechten Panel.\",\"pagination\":\"Seitennummerierung\"},\"settings\":{\"exclude_entity_types\":\"@:{'words.generated.entit'}?@:{'words.generated.tstypen'} ausschlie?@:{'words.generated.en'}\",\"include_all\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.einschlie'}?@:{'words.generated.en'}\",\"include_associations\":\"Zuordnungen @:{'words.generated.einschlie'}?@:{'words.generated.en'}\",\"include_entity_types\":\"@:{'words.generated.entit'}?@:{'words.generated.tstypen'} @:{'words.generated.einschlie'}?@:{'words.generated.en'}\",\"include_intent_diagnostics\":\"@:{'words.generated.intent'}-Parser-@:{'words.generated.diagnose'} @:{'words.generated.einschlie'}?@:{'words.generated.en'}\",\"manage_description\":\"Anzeige @:{'words.generated.und'} @:{'words.generated.diagnose'} @:{'words.generated.verwalten'}.\",\"methods\":{\"get\":\"@.upper:{'words.generated.get'} (Abfrageparameter)\",\"post\":\"@.upper:{'words.generated.post'} (@:{'words.generated.json'}-Body)\"},\"reset_defaults\":\"@:{'words.generated.standardwerte'} @:{'words.generated.zur'}?@:{'words.generated.cksetzen'}\",\"reset_type_filters\":\"Typfilter @:{'words.generated.zur'}?@:{'words.generated.cksetzen'}\",\"search_method\":\"Suchmethode\",\"show_grouped_summary\":\"@.capitalize:{'words.generated.gruppierte'} @:{'words.generated.zusammenfassung'} @:{'words.generated.anzeigen'}\",\"show_payload_inspector\":\"@:{'words.generated.nutzdaten'}-Inspektor @:{'words.generated.anzeigen'}\",\"show_score_badges\":\"Score-Badges @:{'words.generated.anzeigen'}\"},\"title\":\"@:{'words.generated.erweiterte'} Systemsuche\"},\"global\":{\"abnormal\":\"Abweichend\",\"add_desc\":\"Neue @:{'words.generated.notiz'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"add_other_product\":\"Weiteres @.capitalize:{'words.generated.produkt'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"add\":\"@.capitalize:{'words.generated.hinzufugen'}\",\"additional_items\":\"@.capitalize:{'words.generated.zus'}?tzliche @:{'words.generated.positionen'}\",\"all_booked\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.gebucht'}\",\"attach_to_order\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.transaktion'} @:{'words.generated.anh'}?@:{'words.generated.ngen'}\",\"auto_start_on_lpr\":\"@.capitalize:{'words.generated.automatischer'} @.capitalize:{'words.generated.start'} @:{'words.generated.bei'} LPR\",\"barred\":\"Gesperrt\",\"booked\":\"@.capitalize:{'words.generated.gebucht'}\",\"cancelled\":\"@:{'templates.generated.compat.common.cancelled'}\",\"capture\":\"@.capitalize:{'words.generated.erfassen'}\",\"change_customer\":\"@.capitalize:{'words.generated.kunde'} ?@:{'words.generated.ndern'}\",\"clear_all\":\"@.capitalize:{'words.generated.alles'} @:{'words.generated.leeren'}\",\"closed\":\"@.capitalize:{'words.generated.geschlossen'}\",\"closing_hour\":\"@.capitalize:{'words.generated.schlie'}?@:{'words.generated.zeit'}\",\"collapse\":\"Einklappen\",\"collection\":\"Sammlung\",\"compare\":\"@.capitalize:{'words.generated.vergleichen'}\",\"complete_order\":\"@:{'words.generated.auftrag'} abschlie?@:{'words.generated.en'}\",\"complete\":\"Abschließen\",\"completed\":\"@:{'templates.generated.compat.common.completed'}\",\"configuration\":\"@:{'words.generated.konfiguration'}\",\"confirm_delete_message\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.dieses'} @:{'words.generated.objekt'} @:{'words.generated.l'}?@:{'words.generated.schen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"confirm_delete\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.loschen'}\",\"confirmation_needed\":\"@.capitalize:{'words.generated.best'}?@:{'words.generated.tigung'} @:{'words.generated.erforderlich'}\",\"copy\":\"@:{'templates.generated.compat.common.copy'}\",\"date_from\":\"@:{'words.generated.datum'} @:{'words.generated.von'}\",\"date_to\":\"@:{'words.generated.datum'} @:{'words.generated.bis'}\",\"default\":\"@:{'words.generated.standard'}\",\"defaults\":\"@:{'words.generated.standardwerte'}\",\"delete_confirm\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} @:{'words.generated.passkey'} „{name}“ @:{'words.generated.loschen'} möchten? Dies kann @:{'words.generated.nicht'} @:{'words.generated.ruckgangig'} gemacht @:{'words.generated.werden'}.\",\"delete_failed\":\"@:{'words.generated.passkey'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.geloscht'} @:{'words.generated.werden'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.versuchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.es'} @:{'words.generated.erneut'}.\",\"delete_passkey\":\"@:{'words.generated.passkey'} @:{'words.generated.loschen'}\",\"delete\":\"@.capitalize:{'words.generated.loschen'}\",\"deleted_successfully\":\"@:{'words.generated.passkey'} @:{'words.generated.wurde'} erfolgreich @:{'words.generated.geloscht'}.\",\"download_wash_certificate\":\"@:{'words.generated.waschzertifikat'} @:{'words.generated.herunterladen'}\",\"edit\":\"@:{'templates.generated.compat.common.edit'}\",\"emphasis\":\"Hervorgehoben\",\"error_loading_transaction\":\"@.capitalize:{'words.generated.laden'} @:{'words.generated.fehlgeschlagen'}\",\"error_messages\":{\"not_array\":\"@:{'words.generated.daten'} @:{'words.generated.sind'} @:{'words.generated.keine'} @:{'words.generated.liste'}\",\"not_object\":\"@:{'words.generated.daten'} @:{'words.generated.sind'} @:{'words.generated.kein'} @:{'words.generated.objekt'}\",\"not_string\":\"@:{'words.generated.daten'} @:{'words.generated.sind'} @:{'words.generated.kein'} Textwert\"},\"excl_tax\":\"exkl. @:{'words.generated.mwst'}.\",\"expand\":\"@:{'templates.generated.compat.common.expand'}\",\"failed_to_send\":\"Rechnung @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.gesendet'} @:{'words.generated.werden'}\",\"failed\":\"@:{'templates.generated.compat.common.failed'}\",\"fixed_price_arrangements\":\"@:{'words.generated.festpreisvereinbarungen'}\",\"found\":\"@.capitalize:{'words.generated.gefunden'}\",\"generate_wash_certificate\":\"@:{'words.generated.waschzertifikat'} @:{'words.generated.erstellen'}\",\"generated\":\"@:{'templates.generated.compat.common.created'}\",\"handheld_pending_order\":\"Handger?@:{'words.generated.t'}\",\"have_not\":\"@.capitalize:{'words.generated.hat'} @:{'words.generated.nicht'}\",\"have\":\"@.capitalize:{'words.generated.hat'}\",\"hide_content\":\"@:{'words.generated.inhalt'} @:{'words.generated.ausblenden'}\",\"history\":\"Verlauf\",\"home\":\"@:{'templates.generated.compat.common.home'}\",\"ignore_customer_arrangements\":\"Kundenvereinbarungen ignorieren\",\"import_all\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.importieren'}\",\"import\":\"Import\",\"in_progress\":\"@:{'words.generated.in'} @:{'words.generated.bearbeitung'}\",\"in\":\"@:{'words.generated.in'}\",\"incl_tax\":\"@:{'words.generated.inkl'}. @:{'words.generated.mwst'}.\",\"include_all_items_on_invoice\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.positionen'} @:{'words.generated.auf'} @:{'words.generated.rechnung'} @:{'words.generated.aufnehmen'}\",\"information\":\"@:{'words.generated.informationen'}\",\"invalid\":\"@:{'words.generated.ung'}?@:{'words.generated.ltig'}\",\"invoice_already_created\":\"@:{'words.generated.rechnung'} @:{'words.generated.bereits'} @:{'words.generated.erstellt'}\",\"invoice_now\":\"@.capitalize:{'words.generated.jetzt'} abrechnen\",\"invoice_per_order\":\"@:{'words.generated.rechnung'} @:{'words.generated.pro'} @:{'words.generated.auftrag'}\",\"lane\":\"Waschspur\",\"last_wash\":\"@.capitalize:{'words.generated.letzte'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'}\",\"link\":\"@.capitalize:{'words.generated.link'}\",\"login_as_customer\":\"@.capitalize:{'words.generated.als'} @.capitalize:{'words.generated.kunde'} @:{'words.generated.anmelden'}\",\"login_for_products\":\"Melden @.capitalize:{'words.generated.sie'} sich @:{'words.generated.an'}, @:{'words.generated.um'} @:{'words.generated.produkte'} @:{'words.generated.f'}?@:{'words.generated.r'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.buchung'} @:{'words.generated.auszuw'}?@:{'words.generated.hlen'}.\",\"login_with_qr_code\":\"@.capitalize:{'words.generated.mit'} @:{'words.generated.qr'}-@:{'words.generated.code'} @:{'words.generated.anmelden'}\",\"login_with\":\"@.capitalize:{'words.generated.anmelden'} @:{'words.generated.mit'}\",\"login\":\"@:{'templates.generated.compat.common.login'}\",\"manage\":\"@.capitalize:{'words.generated.verwalten'}\",\"mark_as_completed\":\"@.capitalize:{'words.generated.als'} @:{'words.generated.abgeschlossen'} @:{'words.generated.markieren'}\",\"mark_as_not_duplicate\":\"@.capitalize:{'words.generated.als'} @:{'words.generated.kein'} Duplikat @:{'words.generated.markieren'}\",\"month\":\"@:{'templates.generated.compat.common.month'}\",\"my\":\"@:{'words.generated.meine'}\",\"no_additional_items\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.zus'}?tzlichen @:{'words.generated.positionen'}\",\"no_applicable_booking_types\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.passenden'} @:{'words.generated.buchungstypen'} @:{'words.generated.verf'}?@:{'words.generated.gbar'}, @:{'words.generated.bitte'} @:{'words.generated.andere'} @:{'words.generated.abteilung'} @:{'words.generated.w'}?@:{'words.generated.hlen'}.\",\"no_data\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.daten'}\",\"no_slots_available\":\"@.capitalize:{'words.generated.keine'} Zeitfenster @:{'words.generated.verf'}?@:{'words.generated.gbar'}\",\"no_transactions_yet\":\"@.capitalize:{'words.generated.noch'} @:{'words.generated.keine'} @:{'words.generated.transaktionen'}\",\"non_included_products\":\"@.capitalize:{'words.generated.nicht'} enthaltene @:{'words.generated.produkte'}\",\"not_completed\":\"@.capitalize:{'words.generated.nicht'} @:{'words.generated.abgeschlossen'}\",\"not_configured\":\"@.capitalize:{'words.generated.nicht'} @:{'words.generated.konfiguriert'}\",\"not_synchronized\":\"@.capitalize:{'words.generated.nicht'} @:{'words.generated.synchronisiert'}\",\"note\":\"@:{'templates.generated.compat.common.note'}\",\"nothing_left_to_show\":\"@.capitalize:{'words.generated.nichts'} @:{'words.generated.mehr'} @:{'words.generated.anzuzeigen'}\",\"nothing_to_do_all_set\":\"@.capitalize:{'words.generated.alles'} erledigt, @:{'words.generated.hier'} @:{'words.generated.gibt'} @:{'words.generated.es'} @:{'words.generated.nichts'} @:{'words.generated.mehr'} @:{'words.generated.zu'} tun!\",\"only_tank_cleaning\":\"@.capitalize:{'words.generated.nur'} @:{'words.generated.tankreinigung'}\",\"open\":\"Offen\",\"opening_hour\":\"Öffnungszeit\",\"opening_hours\":\"@:{'words.generated.offnungszeiten'}\",\"optional\":\"@:{'templates.generated.compat.common.optional'}\",\"or_scan_plates\":\"@.capitalize:{'words.generated.oder'} @:{'words.generated.kennzeichen'} @:{'words.generated.scannen'}\",\"other_period\":\"Anderer @:{'words.generated.zeitraum'}\",\"other\":\"@:{'words.generated.sonstige'}\",\"password\":\"@:{'words.generated.passwort'}\",\"past\":\"Vergangen\",\"payment_status\":\"@:{'words.generated.zahlungsstatus'}\",\"payment\":{\"amount\":\"@:{'words.generated.betrag'}\",\"fixed_pricing\":\"@:{'words.generated.festpreis'}\",\"method\":\"Zahlungsmethode\",\"payment_intent\":\"Zahlungsabsicht\",\"payment_recieved\":\"@:{'words.generated.zahlung'} @:{'words.generated.erhalten'}\",\"receipt\":\"@:{'words.generated.beleg'}\",\"receipt_url\":\"@:{'words.generated.beleg'}-@:{'words.generated.url'}\",\"transaction_id\":\"Transaktions-@.upper:{'words.generated.id'}\",\"type\":{\"bank_transfer\":\"Bank?berweisung\",\"card\":\"@:{'words.generated.karte'}\",\"cash\":\"Bar\"}},\"pending\":\"@:{'templates.generated.compat.common.pending'}\",\"phone_country_code\":\"@.upper:{'words.generated.l'}?@:{'words.generated.ndervorwahl'}\",\"phone_number\":\"@:{'words.generated.telefonnummer'}\",\"possible_duplicates\":\"@.upper:{'words.generated.m'}?@:{'words.generated.gliche'} @:{'words.generated.duplikate'}\",\"preview\":\"@:{'templates.generated.compat.common.preview'}\",\"previous\":\"@:{'templates.generated.compat.common.previous'}\",\"price_match\":\"@:{'words.generated.preis'} @:{'words.generated.stimmt'} ?@:{'words.generated.berein'}\",\"price_unmatch\":\"@:{'words.generated.preis'} @:{'words.generated.stimmt'} @:{'words.generated.nicht'} ?@:{'words.generated.berein'}\",\"prices\":\"@:{'words.generated.preise'}\",\"print\":\"@:{'templates.generated.compat.common.print'}\",\"processing\":\"@:{'templates.generated.compat.common.processing'}\",\"queue\":\"@:{'words.generated.warteschlange'}\",\"ready_to_wash\":\"@:{'words.generated.bereit'} @:{'words.generated.zum'} @.capitalize:{'words.generated.waschen'}\",\"recent\":\"@:{'words.generated.zuletzt'}\",\"recommended\":\"Empfohlen\",\"register\":\"@:{'words.generated.benutzer'} @:{'words.generated.erstellen'}\",\"regret\":\"@:{'templates.generated.compat.common.undo'}\",\"reject\":\"Ablehnen\",\"related_service\":\"@:{'words.generated.verkn'}?pfter @.capitalize:{'words.generated.service'}\",\"required\":\"@:{'templates.generated.compat.common.required'}\",\"requires_action\":\"@:{'words.generated.aktion'} @:{'words.generated.erforderlich'}\",\"reset\":\"@.capitalize:{'words.generated.zurucksetzen'}\",\"rows\":\"@:{'words.generated.zeilen'}\",\"scanning\":\"@.capitalize:{'words.generated.scannen'}\",\"search_cvr\":\"@:{'words.generated.cvr'}-@.capitalize:{'words.generated.nummer'} @:{'words.generated.suchen'}...\",\"search_phone\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.telefonnummer'} @:{'words.generated.suchen'}\",\"search_subuser\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.unterbenutzer'} @:{'words.generated.suchen'}\",\"search_transactions\":\"@.capitalize:{'words.generated.in'} @:{'words.generated.transaktionen'} @:{'words.generated.suchen'}\",\"search_user\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.benutzer'} @:{'words.generated.suchen'}\",\"selected\":\"@:{'templates.generated.compat.common.selected'}\",\"send_as_is\":\"Unver?@:{'words.generated.ndert'} @:{'words.generated.senden'}\",\"show_content\":\"@:{'words.generated.inhalt'} @:{'words.generated.anzeigen'}\",\"showing_of_separator\":\"@:{'templates.generated.compat.common.of'}\",\"special_arrangements\":\"@:{'words.generated.sondervereinbarungen'}\",\"split\":\"@.capitalize:{'words.generated.aufteilen'}\",\"statistics\":\"@.capitalize:{'words.generated.statistik'}\",\"stop\":\"Stopp\",\"submit_test_email_prompt\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'} @:{'words.generated.eingeben'}, @:{'words.generated.an'} @:{'words.generated.die'} @:{'words.generated.eine'} @.capitalize:{'words.generated.test'}-@.upper:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.gesendet'} @:{'words.generated.werden'} @:{'words.generated.soll'}\",\"submit_test_email\":\"@.capitalize:{'words.generated.test'}-@.upper:{'words.generated.e'}-@:{'words.generated.mail'} senden\",\"submit\":\"@:{'templates.generated.compat.common.submit'}\",\"submiter_identity_desc\":\"@:{'words.generated.absenderidentit'}?@:{'words.generated.t'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.ausgehende'} @.upper:{'words.generated.e'}-Mails konfigurieren\",\"submiter_identity\":\"@:{'words.generated.absenderidentit'}?@:{'words.generated.t'}\",\"subscriptions\":\"@:{'words.generated.abonnements'}\",\"succeeded\":\"@.capitalize:{'words.generated.erfolgreich'}\",\"successful_syncs\":\"Erfolgreiche Synchronisierungen\",\"summary\":\"Übersicht\",\"synchronized\":\"@.capitalize:{'words.generated.synchronisiert'}\",\"take_picture\":\"@:{'words.generated.bild'} @:{'words.generated.aufnehmen'}\",\"tank_cleaning\":\"@:{'words.generated.tankreinigung'}\",\"text\":{\"all\":\"Immer\",\"anytime\":\"Jederzeit\",\"last_7_days\":\"@.capitalize:{'words.generated.letzte'} 7 Tage\",\"last_month\":\"@:{'words.generated.letzter'} @:{'words.generated.monat'}\",\"other_month\":\"Anderer @:{'words.generated.monat'}\",\"last_week\":\"@.capitalize:{'words.generated.letzte'} @:{'words.generated.woche'}\",\"same_month_last_year\":\"Gleicher @:{'words.generated.monat'} @:{'words.generated.im'} @:{'words.generated.vorjahr'}\",\"same_week_last_year\":\"@.capitalize:{'words.generated.gleiche'} @:{'words.generated.woche'} @:{'words.generated.im'} @:{'words.generated.vorjahr'}\",\"search_in\":\"@.capitalize:{'words.generated.suchen'} @:{'words.generated.in'}\",\"this_month\":\"@.capitalize:{'words.generated.dieser'} @:{'words.generated.monat'}\",\"this_week\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.woche'}\",\"this_year\":\"@.capitalize:{'words.generated.dieses'} @:{'words.generated.jahr'}\",\"yesterday\":\"@:{'templates.generated.compat.common.yesterday'}\"},\"time\":{\"at_hour\":\"@.capitalize:{'words.generated.um'}\"},\"to_department_and_customer_defaults\":\"@.capitalize:{'words.generated.zu'} @.capitalize:{'words.generated.abteilungs'}- @:{'words.generated.und'} Kundenstandardwerten\",\"total_amount\":\"Totalt @:{'words.generated.beløp'}\",\"total_price_for_order\":\"@:{'words.generated.gesamtpreis'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.auftrag'}: {total} @:{'words.generated.dkk'}\",\"total\":\"@:{'templates.generated.compat.common.total'}\",\"unlink\":\"@:{'words.generated.verkn'}?pfung @:{'words.generated.aufheben'}\",\"unselect\":\"@:{'templates.generated.compat.common.unselect'}\",\"usage_log\":\"@:{'words.generated.nutzungsprotokoll'}\",\"view_order\":\"@:{'words.generated.transaktion'} @:{'words.generated.anzeigen'}\",\"warnings\":\"@:{'words.generated.warnungen'}\",\"wash_multiple\":\"@:{'words.generated.waschen_2'}\",\"weekday\":\"Wochentag\",\"zoom_out\":\"Herauszoomen\",\"zoom\":\"Zoom\"},\"guest\":{\"about\":\"?@:{'words.generated.ber'} @:{'words.generated.uns'}\",\"access_code\":\"@:{'words.generated.zugangscode'}\",\"app_store\":\"@:{'words.generated.app'} @.capitalize:{'words.generated.store'}\",\"book_wash\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.buchen'}\",\"contact\":\"@.capitalize:{'words.generated.kontaktieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.uns'}\",\"download_app\":\"@:{'words.generated.app'} @:{'words.generated.herunterladen'}\",\"driver\":{\"coming_soon\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.funktion'} @:{'words.generated.ist'} bald @:{'words.generated.verf'}?@:{'words.generated.gbar'}!\"},\"enter_access_code\":\"@:{'words.generated.zugangscode'} @:{'words.generated.eingeben'}\",\"find_wash\":\"@:{'words.generated.waschhalle'} @:{'words.generated.finden'}\",\"home\":{\"contact_or_call\":\"@:{'words.generated.oder'} rufen @.capitalize:{'words.generated.sie'} @:{'words.generated.uns'} @:{'words.generated.an'} @:{'words.generated.unter'}\",\"contact_prefix\":\"@.capitalize:{'words.generated.wenn'} @.capitalize:{'words.generated.sie'} Probleme @:{'words.generated.haben'}, @:{'words.generated.kontaktieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.uns'} @:{'words.generated.unter'}\",\"description\":\"@.capitalize:{'words.generated.dies'} @:{'words.generated.ist'} @:{'words.generated.ihr'} @:{'words.generated.dashboard'}. @.capitalize:{'words.generated.hier'} @:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.auftr'}?@:{'words.generated.ge'}, @:{'words.generated.buchungen'} @:{'words.generated.und'} @:{'words.generated.fahrzeuge'}.\",\"subtitle\":\"@:{'words.generated.willkommen'} @:{'words.generated.bei'} @.upper:{'words.generated.pleno'}\"},\"invalid_code\":\"@:{'words.generated.ung'}?@:{'words.generated.ltiger'} @:{'words.generated.zugangscode'}\",\"play_store\":\"@:{'words.generated.google'} Play\",\"pwa\":{\"already_installed\":\"@:{'words.generated.pleno'} @:{'words.generated.ist'} @:{'words.generated.bereits'} @:{'words.generated.auf'} @:{'words.generated.ihrem'} @:{'words.generated.ger'}?@:{'words.generated.t'} @:{'words.generated.installiert'}.\",\"android_instructions\":\"@:{'words.generated.tippen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.auf'} @:{'words.generated.die'} Men?@:{'words.generated.schaltfl'}?@:{'words.generated.che'} @:{'words.generated.und'} @:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} \\\"@:{'words.generated.app'} @:{'words.generated.installieren'}\\\"\",\"card_title\":\"@:{'words.generated.pleno'} @:{'words.generated.herunterladen'}\",\"click_to_install\":\"@:{'words.generated.klicken'} @.capitalize:{'words.generated.sie'} @:{'words.generated.unten'} @:{'words.generated.auf'} @:{'words.generated.die'} @.capitalize:{'words.generated.schaltfl'}?@:{'words.generated.che'}, @:{'words.generated.um'} @:{'words.generated.pleno'} @:{'words.generated.auf'} @:{'words.generated.ihrem'} @:{'words.generated.ger'}?@:{'words.generated.t'} @:{'words.generated.zu'} @:{'words.generated.installieren'}.\",\"description\":\"@:{'words.generated.pleno'} @:{'words.generated.ist'} @:{'words.generated.eine'} Progressive Web @:{'words.generated.app'} (PWA), @:{'words.generated.die'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.ein'} besseres Erlebnis @:{'words.generated.auf'} @:{'words.generated.ihrem'} @:{'words.generated.ger'}?@:{'words.generated.t'} @:{'words.generated.installiert'} @:{'words.generated.werden'} @:{'words.generated.kann'}.\",\"install\":\"@.capitalize:{'words.generated.installieren'}\",\"install_label\":\"@:{'words.generated.pleno'} @:{'words.generated.installieren'}\",\"install_via_browser\":\"@.capitalize:{'words.generated.installieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.pleno'} ?@:{'words.generated.ber'} @:{'words.generated.das'} Browsermen?\",\"installed_label\":\"@:{'words.generated.pleno'} @:{'words.generated.ist'} @:{'words.generated.installiert'}\",\"instructions\":\"Anleitungen\",\"ios_instructions\":\"@:{'words.generated.tippen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.auf'} @:{'words.generated.die'} @:{'words.generated.teilen'}-@.capitalize:{'words.generated.schaltfl'}?@:{'words.generated.che'} @:{'words.generated.und'} @:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} \\\"@.capitalize:{'words.generated.zum'} @:{'words.generated.home'}-@:{'words.generated.bildschirm'}\\\"\",\"subtitle\":\"@.capitalize:{'words.generated.laden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.app'} @:{'words.generated.auf'} @:{'words.generated.ihr'} @:{'words.generated.ger'}?@:{'words.generated.t'} @:{'words.generated.herunter'}\",\"title\":\"@:{'templates.generated.compat.common.download'}\",\"use_supported_browser\":\"@.capitalize:{'words.generated.um'} @:{'words.generated.pleno'} @:{'words.generated.zu'} @:{'words.generated.installieren'}, @:{'words.generated.verwenden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.bitte'} @:{'words.generated.einen'} @:{'words.generated.unterst'}?tzten @:{'words.generated.browser'} @:{'words.generated.und'} @:{'words.generated.folgen'} @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} Installationsanweisungen.\"},\"scan_qr\":\"@:{'words.generated.qr'}-@:{'words.generated.code'} @:{'words.generated.scannen'}\",\"start_wash_subtitle\":\"@.capitalize:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} @:{'words.generated.zugangscode'} @:{'words.generated.ein'}, @:{'words.generated.um'} @:{'words.generated.fortzufahren'}\",\"start_wash_title\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.als'} @:{'words.generated.gast'} @:{'words.generated.starten'}\",\"start_wash\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.starten'}\",\"title\":\"Gastzugang\",\"welcome_message\":\"@:{'words.generated.willkommen'} @:{'words.generated.bei'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\",\"welcome\":\"@:{'templates.generated.compat.messages.welcome'}\"},\"header\":{\"about_us\":\"@:{'templates.generated.compat.guest.about'}\",\"backoffice\":\"Backoffice\",\"customer_creation_discount\":\"@:{'words.generated.benutzerrabatt'} @:{'words.generated.erstellen'}\",\"customer_creation\":\"@:{'templates.generated.compat.global.register'}\",\"operator_login\":\"Betreiberanmeldung\",\"return_to_account\":\"@.capitalize:{'words.generated.zum'} @:{'words.generated.eigenen'} @:{'words.generated.konto'} @:{'words.generated.zur'}?ckkehren\"},\"invoice_period\":{\"flags\":{\"automatic\":{\"customer_rule_exempt_from_administration_fees\":\"{product} @:{'words.generated.is'} @:{'words.generated.an'} @:{'words.generated.administration'} @:{'words.generated.fee'} @:{'words.generated.for'} @:{'words.generated.an'} @:{'words.generated.exempt'} @:{'words.generated.customer'}.\",\"customer_rule_invoice_all_orders_individually\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.collection'} @:{'words.generated.contains'} @:{'words.generated.multiple'} @:{'words.generated.orders'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.customer'} requiring individual @:{'words.generated.invoices'}.\",\"customer_rule_only_tank_cleaning\":\"{product} @:{'words.generated.violates'} @:{'words.generated.the'} @:{'words.generated.only'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} rule.\",\"customer_rule_requires_po_number\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.is'} @:{'words.generated.missing'} @:{'words.generated.a'} @:{'words.generated.required'} @:{'words.generated.po'} @:{'words.generated.number'}.\",\"customer_rule_requires_reference\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.is'} @:{'words.generated.missing'} @:{'words.generated.a'} @:{'words.generated.required'} @:{'words.generated.reference'}.\",\"customer_rule_restrict_addon_services\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} addon @:{'words.generated.services'}.\",\"customer_rule_restrict_interior_cleaning\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} @:{'words.generated.interior'} @:{'words.generated.wash'}.\",\"customer_rule_restrict_spot_free\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} @.capitalize:{'words.generated.spot'} @.capitalize:{'words.generated.free'}.\",\"customer_rule_restrict_tank_cleaning\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}.\",\"duplicate_vehicle_subscription_charge_same_month\":\"Duplicate @:{'words.generated.vehicle'} @:{'words.generated.subscription'} charges @:{'words.generated.exist'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.same'} @:{'words.generated.month'}.\",\"historical_primary_product_mismatch\":\"{product} @:{'words.generated.differs'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.registration'} @:{'words.generated.number'}'@:{'words.generated.s'} usual @:{'words.generated.product'} {expected_product}.\",\"multiple_fixed_pricing_items_same_month\":\"@.capitalize:{'words.generated.multiple'} fixed @:{'words.generated.pricing'} @:{'words.generated.items'} @:{'words.generated.exist'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.same'} @:{'words.generated.month'}.\",\"multiple_identical_primary_vehicle_items\":\"@:{'words.generated.bestellung'} enthaelt @:{'words.generated.mehrere'} @:{'words.generated.gleiche'} primaere Fahrzeugprodukte.\",\"price_mismatch\":\"{product} @:{'words.generated.product'} price @:{'words.generated.differs'} @:{'words.generated.from'} @:{'words.generated.expected'}.\",\"quantity_exceeds_product_limit\":\"{product} quantity exceeds @:{'words.generated.the'} @:{'words.generated.product'} @:{'words.generated.limit'}.\",\"vehicle_subscription_type_mismatch\":\"{product} @:{'words.generated.does'} @:{'words.generated.not'} match @:{'words.generated.the'} @:{'words.generated.vehicle'} @:{'words.generated.subscription'} @:{'words.generated.type'} {expected_product}.\",\"wash_certificate_attached_without_item\":\"@:{'words.generated.waschzertifikat'} @:{'words.generated.ist'} @:{'words.generated.ohne'} @:{'words.generated.waschzertifikat'}-@.capitalize:{'words.generated.position'} angehaengt.\",\"wash_certificate_item_without_certificate\":\"@:{'words.generated.waschzertifikat'}-@.capitalize:{'words.generated.position'} @:{'words.generated.ist'} @:{'words.generated.ohne'} @:{'words.generated.waschzertifikat'} vorhanden.\",\"xlvask_missing_order_link\":\"@:{'words.generated.xl'} @:{'words.generated.vask'} @:{'words.generated.wash'} @:{'words.generated.is'} neither ignored nor linked @:{'words.generated.to'} @:{'words.generated.an'} @:{'words.generated.order'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.selected'} @:{'words.generated.period'}.\"},\"preview\":{\"entities\":{\"order_items\":\"@:{'templates.generated.compat.global_search.entity_types.order_items'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @:{'words.generated.vask'}-@.capitalize:{'words.generated.details'}\"},\"expected_price\":\"Erwarteter @:{'words.generated.preis'}\",\"start_time\":\"@:{'templates.generated.compat.tables.common.start_time'}\",\"wash_id\":\"Wasch-@.upper:{'words.generated.id'}\",\"xlvask_usage_log\":\"@:{'templates.generated.compat.invoice_period.flags.tokens.xlvask_usage_log'}\"},\"status\":{\"false_positive\":\"@.capitalize:{'words.generated.falsch'} positiv\",\"ignored\":\"Ignoriert\",\"reason_placeholder\":\"Optionaler @:{'words.generated.grund'}\",\"resolved\":\"Geloest\"},\"tokens\":{\"expected\":\"@:{'words.generated.erwartet'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @:{'words.generated.vask'}-@:{'words.generated.registrierung'}\"},\"tooltip\":{\"created_by\":\"@:{'templates.generated.compat.common.from'}\"}}},\"invoice_transfer_monitor\":{\"clear_all_error\":\"@:{'words.generated.abgeschlossene'} @:{'words.generated.ubertragungen'} @:{'words.generated.konnten'} @:{'words.generated.nicht'} @:{'words.generated.ausgeblendet'} @:{'words.generated.werden'}.\",\"clear_all\":\"@:{'words.generated.abgeschlossene'} @:{'words.generated.ausblenden'}\",\"clear_error\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.ubertragung'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.ausgeblendet'} @:{'words.generated.werden'}.\",\"clear_one\":\"@:{'words.generated.ubertragung'} @:{'words.generated.ausblenden'}\",\"empty\":\"@.capitalize:{'words.generated.keine'} sichtbaren @:{'words.generated.ubertragungen'}.\",\"load_error\":\"@:{'words.generated.ubertragungen'} @:{'words.generated.konnten'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}.\",\"loading\":\"@:{'words.generated.ubertragungen'} @:{'words.generated.werden'} @:{'words.generated.geladen'}\",\"menu_title\":\"@:{'words.generated.ubertragungen'}\",\"no_details\":\"@.capitalize:{'words.generated.noch'} @:{'words.generated.keine'} @.capitalize:{'words.generated.details'}.\",\"refreshing\":\"@:{'words.generated.aktualisiert'}\",\"short\":{\"queued\":\"@:{'words.generated.wartet'}\"},\"status\":{\"in_progress\":\"@:{'templates.generated.compat.pagination.in_progress'}\"},\"transfer\":\"@:{'words.generated.ubertragung'}\",\"visible\":\"sichtbar\"},\"invoices\":{\"delete_invoice\":\"@:{'words.generated.rechnung'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"download_pdf\":\"@:{'words.generated.pdf'} @:{'words.generated.herunterladen'}\",\"due_date\":\"@.upper:{'words.generated.f'}?lligkeitsdatum\",\"economic\":{\"check_errors\":\"@:{'words.generated.fehler'} @:{'words.generated.pr'}?@:{'words.generated.fen'}\",\"draft\":\"@:{'words.generated.rechnungsentwurf'}\",\"load_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.laden'} @:{'words.generated.der'} @:{'words.generated.daten'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\",\"update_draft_status\":\"@.capitalize:{'words.generated.status'} @:{'words.generated.der'} Rechnungsentw?rfe @:{'words.generated.aktualisieren'}\"},\"edit_invoice\":\"@:{'words.generated.rechnung'} @:{'words.generated.bearbeiten'}\",\"invoice_number\":\"@:{'words.generated.rechnungsnummer'}\",\"new_invoice\":\"@.capitalize:{'words.generated.neue'} @:{'words.generated.rechnung'}\",\"no_invoices\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.rechnungen'} @:{'words.generated.gefunden'}\",\"overdue\":\"?berf?llig\",\"paid\":\"@.capitalize:{'words.generated.bezahlt'}\",\"partial\":\"Teilweise @:{'words.generated.bezahlt'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.rechnungsnummer'}, @.capitalize:{'words.generated.kunde'} @:{'words.generated.suchen'}\",\"search\":\"@:{'words.generated.rechnungen'} @:{'words.generated.suchen'}...\",\"statuses\":{\"draft\":\"@:{'words.generated.entwurf'}\",\"draft_transaction\":\"@:{'words.generated.transaktionsentwurf'}\"},\"subtitle\":\"@:{'words.generated.rechnungen'} @:{'words.generated.verwalten'}\",\"unpaid\":\"Unbezahlt\"},\"invoicing_period\":{\"invoice_collection_actions\":{\"actions\":{\"merge_collections\":\"Zusammenführen\",\"queue_economic\":\"Ausgewählte fakturieren\",\"remove_customer_rule_violations\":\"Regelverstöße entfernen\",\"reset_hidden_item_prices\":\"Ausgeblendete Preise zurücksetzen\",\"split_by_month\":\"Nach Monat teilen\"},\"error_title\":\"Aktion fehlgeschlagen\",\"merge_requires_multiple_text\":\"Wählen Sie mindestens zwei Rechnungssammlungen aus, um sie zusammenzuführen.\",\"merge_requires_multiple_title\":\"Mehrere Rechnungssammlungen auswählen\",\"merge_target_title\":\"Ziel-Rechnungssammlung auswählen\",\"menu\":{\"collapse_all\":\"Alle einklappen\",\"expand_all\":\"Alle erweitern\",\"label\":\"Rechnungssammlungsaktionen ({count})\",\"modification_section\":\"Ausgewählte ändern\",\"select_all\":\"Alle auswählen\",\"selection_section\":\"Auswahl\",\"unselect_all\":\"Alle abwählen\"},\"preview\":{\"affected_examples\":\"Beispieländerungen\",\"blocked_title\":\"Aktion ist blockiert\",\"blockers\":\"Blockierungen\",\"changed\":\"Änderungen: {count}\",\"collection_status_line\":\"Rechnungssammlung #{collection}: {status}\",\"collections\":\"Rechnungssammlungen: {count}\",\"confirm_button\":\"Aktion ausführen\",\"confirmation_label\":\"{phrase} eingeben, um zu bestätigen\",\"confirmation_mismatch\":\"Geben Sie genau {phrase} ein, um fortzufahren.\",\"merge_target\":\"Ziel: Rechnungssammlung #{id}\",\"no_changes_title\":\"Keine Änderungen\",\"order_item_line\":\"Rechnungssammlung #{collection}, Auftrag #{order}: {product}\",\"order_move_line\":\"Auftrag #{order}: #{source} nach #{target}\",\"requires_confirmation\":\"Prüfen Sie die Vorschau. Es werden keine Änderungen ausgeführt, bevor Sie {phrase} eingeben.\",\"skipped\":\"Übersprungen: {count}\",\"title\":\"{action} Vorschau\"},\"success_text\":\"{count} Änderungen ausgeführt.\",\"success_title\":\"Aktion abgeschlossen\"},\"monthly_split\":{\"button\":\"@.capitalize:{'words.generated.split'} @:{'words.generated.invoices'} @:{'words.generated.by'} @:{'words.generated.month'}\",\"confirm_text\":\"@.capitalize:{'words.generated.split'} non-invoiced collected @:{'words.generated.invoices'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.selected'} @:{'words.generated.period'} into @:{'words.generated.monthly'} @:{'words.generated.invoice'} @:{'words.generated.collections'}?\",\"confirm_yes\":\"@:{'words.generated.yes'}, @:{'words.generated.split'} @:{'words.generated.by'} @:{'words.generated.month'}\",\"error_title\":\"@.capitalize:{'words.generated.monthly'} @:{'words.generated.split'} @:{'words.generated.failed'}\",\"preview_apply\":\"@.capitalize:{'words.generated.apply'} @:{'words.generated.split'}\",\"preview_create_new\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.collection'}\",\"preview_existing\":\"@:{'words.generated.keep'} original @:{'words.generated.collection'} #{id}\",\"preview_no_changes_text\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.selected'} @:{'words.generated.period'} @:{'words.generated.has'} @:{'words.generated.no'} @:{'words.generated.invoice'} @:{'words.generated.collections'} that @:{'words.generated.will'} @:{'words.generated.be'} changed.\",\"preview_no_changes_title\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.invoices'} @:{'words.generated.to'} @:{'words.generated.split'}\",\"preview_orders\":\"{count} @:{'words.generated.orders'}\",\"preview_skipped_title\":\"@.capitalize:{'words.generated.skipped'}\",\"preview_summary\":\"@:{'words.generated.processed'} {processed} @:{'words.generated.invoice'} @:{'words.generated.collections'}. @.capitalize:{'words.generated.will'} @:{'words.generated.split'} {changed}, @:{'words.generated.skipped'} {skipped}.\",\"preview_title\":\"Preview @:{'words.generated.monthly'} @:{'words.generated.split'}\",\"success_text\":\"@:{'words.generated.processed'} {processed} @:{'words.generated.invoice'} @:{'words.generated.collections'}. @.capitalize:{'words.generated.split'} {changed}, @:{'words.generated.skipped'} {skipped}.\",\"success_title\":\"@.capitalize:{'words.generated.monthly'} @:{'words.generated.split'} @:{'words.generated.completed'}\"},\"multi_month_invoice_warning\":{\"invoice_together\":\"Zusammen abrechnen\",\"split_by_month\":\"Nach Monat aufteilen\",\"split_error_title\":\"Monatsaufteilung fehlgeschlagen\",\"split_success_text\":\"{processed} Rechnungssammlungen verarbeitet. {changed} aufgeteilt, {skipped} übersprungen.\",\"split_success_title\":\"Monatsaufteilung abgeschlossen\",\"text\":\"Sie sind dabei, Aufträge aus mehreren Monaten gemeinsam abzurechnen ({months}). Sollen sie stattdessen nach Monat aufgeteilt werden?\",\"title\":\"Aufträge aus mehreren Monaten\"}},\"invoicing\":{\"progress\":{\"failed_to_send\":\"@:{'words.generated.rechnung'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.gesendet'} @:{'words.generated.werden'}\",\"queued\":\"@.capitalize:{'words.generated.in'} @:{'words.generated.warteschlange'}\",\"sending_invoices\":\"@:{'words.generated.rechnungen'} @:{'words.generated.werden'} @:{'words.generated.gesendet'}...\",\"succeeded\":\"@:{'templates.generated.compat.global.succeeded'}\"}},\"login_qr\":{\"camera_error\":\"Kamerafehler\",\"login_with_password_instead\":\"Stattdessen @:{'words.generated.mit'} @:{'words.generated.passwort'} @:{'words.generated.anmelden'}\",\"login_with_password\":\"@.capitalize:{'words.generated.mit'} @:{'words.generated.passwort'} @:{'words.generated.anmelden'}\",\"mobile_only\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.seite'} @:{'words.generated.ist'} @:{'words.generated.nur'} @:{'words.generated.auf'} Mobilger?ten @:{'words.generated.verf'}?@:{'words.generated.gbar'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.verwenden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ihr'} @:{'words.generated.telefon'} @:{'words.generated.oder'} @:{'words.generated.tablet'}, @:{'words.generated.um'} @:{'words.replication.article.host_mention'} @:{'words.generated.qr'}-@:{'words.generated.code'} @:{'words.generated.zu'} @:{'words.generated.scannen'}.\",\"scan_subtitle\":\"Platzieren @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} @:{'words.generated.qr'}-@:{'words.generated.code'} innerhalb @:{'words.generated.des'} Rahmens\",\"scan_title\":\"@:{'templates.generated.compat.guest.scan_qr'}\",\"unknown_qr_text\":\"@.capitalize:{'words.generated.der'} gescannte @:{'words.generated.qr'}-@:{'words.generated.code'} @:{'words.generated.ist'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.diese'} @:{'words.generated.seite'} @:{'words.generated.nicht'} @:{'words.generated.g'}?@:{'words.generated.ltig'}.\",\"unknown_qr_title\":\"@.capitalize:{'words.generated.unbekannter'} @:{'words.generated.qr'}-@:{'words.generated.code'}\"},\"maintenance_menu\":{\"confirm_clear_local\":\"Alle lokalen App-Daten löschen und jetzt neu laden?\",\"copy_trace_copied\":\"Kopiert\",\"copy_trace_failed\":\"Kopieren fehlgeschlagen\",\"copy_trace\":\"Trace kopieren\",\"force_update_clear_hint\":\"Löscht Local Storage, Session Storage, Service Worker und Browser-Caches.\",\"force_update_clear\":\"Update erzwingen und alles Lokale löschen\",\"title\":\"Wartung\",\"version\":\"Aktuell {current} / neueste {latest}\"},\"messages\":{\"are_you_sure\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}?\",\"cannot_undo\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.aktion'} @:{'words.generated.kann'} @:{'words.generated.nicht'} @:{'words.generated.r'}?@:{'words.generated.ckg'}?@:{'words.generated.ngig'} @:{'words.generated.gemacht'} @:{'words.generated.werden'}.\",\"confirm_cancel\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.abbrechen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"confirm_delete\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.dies'} @:{'words.generated.l'}?@:{'words.generated.schen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"confirmed\":\"@.capitalize:{'words.generated.erfolgreich'} @:{'words.generated.best'}?@:{'words.generated.tigt'}\",\"copied\":\"@.capitalize:{'words.generated.in'} @:{'words.generated.die'} @:{'words.generated.zwischenablage'} @:{'words.generated.kopiert'}\",\"error\":\"@.capitalize:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.ist'} @:{'words.generated.aufgetreten'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.versuchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.es'} @:{'words.generated.erneut'}.\",\"loading\":\"@:{'templates.generated.compat.common.loading'}\",\"no_results\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.ergebnisse'} @:{'words.generated.gefunden'}\",\"please_wait\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.warten'}...\",\"saved\":\"@.capitalize:{'words.generated.erfolgreich'} @:{'words.generated.gespeichert'}\",\"sent\":\"@.capitalize:{'words.generated.erfolgreich'} @:{'words.generated.gesendet'}\",\"welcome\":\"@:{'words.generated.willkommen'}\"},\"modals\":{\"action\":\"@:{'words.generated.aktion'}\",\"active_tasks\":\"@:{'words.generated.aktive'} @:{'words.generated.aufgaben'} / @:{'words.generated.aktionen'}\",\"add_condition_rule\":\"@:{'words.generated.bedingungsregel'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"add_question_rule\":\"Fragenregel @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"add_task_rule\":\"Aufgabenregel @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"all_possible_questions\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.m'}?@:{'words.generated.glichen'} @:{'words.generated.fragen'} (@:{'words.generated.sichtbarkeit'})\",\"all_possible_tasks\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.m'}?@:{'words.generated.glichen'} @:{'words.generated.aufgaben'} (@:{'words.generated.sichtbarkeit'})\",\"all_questions_answered\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.relevanten'} @:{'words.generated.fragen'} @:{'words.generated.wurden'} @:{'words.generated.beantwortet'}!\",\"answer\":\"@:{'words.generated.antwort'}\",\"answered_questions\":\"Beantwortete @:{'words.generated.fragen'}\",\"are_you_sure\":\"@:{'templates.generated.compat.messages.are_you_sure'}\",\"attached_file\":\"@.capitalize:{'words.generated.angeh'}?@:{'words.generated.ngte'} @:{'words.generated.datei'}\",\"attachments_for\":\"@.capitalize:{'words.generated.anh'}?@:{'words.generated.nge'} @:{'words.generated.f'}?@:{'words.generated.r'}\",\"cannot_undo\":\"@.capitalize:{'words.generated.dies'} @:{'words.generated.kann'} @:{'words.generated.nicht'} @:{'words.generated.r'}?@:{'words.generated.ckg'}?@:{'words.generated.ngig'} @:{'words.generated.gemacht'} @:{'words.generated.werden'}!\",\"choose_file\":\"@:{'words.generated.datei'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}...\",\"could_not_read_file\":\"@:{'words.generated.datei'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.gelesen'} @:{'words.generated.werden'}. Stellen @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @:{'words.generated.es'} @:{'words.generated.sich'} @:{'words.generated.um'} @:{'words.generated.eine'} @:{'words.generated.g'}?@:{'words.generated.ltige'} @:{'words.generated.json'}-@:{'words.generated.datei'} handelt.\",\"delete_error\":\"@.capitalize:{'words.generated.beim'} @.upper:{'words.generated.l'}?@:{'words.generated.schen'} @:{'words.generated.der'} @:{'words.generated.datei'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\",\"download_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.herunterladen'} @:{'words.generated.der'} @:{'words.generated.datei'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\",\"export\":\"@:{'words.generated.export'}\",\"fetching_data\":\"@:{'templates.generated.compat.pagination.loading'}\",\"fetching_files\":\"@:{'words.generated.dateien'} @:{'words.generated.werden'} @:{'words.generated.geladen'}...\",\"file_deleted\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.datei'} @:{'words.generated.wurde'} @:{'words.generated.gel'}?@:{'words.generated.scht'}.\",\"file_uploaded\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.datei'} @:{'words.generated.wurde'} hochgeladen.\",\"filename\":\"Dateiname\",\"if_condition\":\"@.capitalize:{'words.generated.wenn'}\",\"invalid_file_format\":\"@:{'words.generated.ung'}?ltiges Dateiformat. @.capitalize:{'words.generated.die'} @:{'words.generated.datei'} @:{'words.generated.muss'} @:{'words.generated.ein'} \\\"@:{'words.generated.items'}\\\"-Array enthalten.\",\"lane\":\"@:{'words.generated.spur'}\",\"mass_data_warning\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.funktion'} @:{'words.generated.kann'} @:{'words.generated.nur'} @:{'words.generated.daten'} @:{'words.generated.im'} speziellen Importformat ?bernehmen @:{'words.generated.und'} @:{'words.generated.sollte'} @:{'words.generated.daher'} @:{'words.generated.nicht'} @:{'words.generated.ohne'} passende @:{'words.generated.einrichtung'} @:{'words.generated.verwendet'} @:{'words.generated.werden'}.\",\"no_active_tasks\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.aktiven'} @:{'words.generated.aufgaben'}\",\"no_answers_yet\":\"@.capitalize:{'words.generated.noch'} @:{'words.generated.keine'} @:{'words.generated.antworten'}\",\"no_conditions_found\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.bedingungen'} @:{'words.generated.gefunden'}\",\"no_files_attached\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.diese'} @:{'words.generated.aufgabe'} @:{'words.generated.sind'} @:{'words.generated.keine'} @:{'words.generated.dateien'} @:{'words.generated.angeh'}?ngt.\",\"no_rules\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.regeln'}\",\"no_tasks_found\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.aufgaben'} @:{'words.generated.gefunden'}\",\"no\":\"@.upper:{'words.generated.nein'}\",\"please_wait\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.warten'}, @:{'words.generated.w'}?@:{'words.generated.hrend'} @:{'words.generated.wir'} @:{'words.generated.die'} @:{'words.generated.daten'} @:{'words.generated.laden'}.\",\"question\":\"@:{'words.generated.frage'}\",\"questions\":\"@:{'words.generated.fragen'}\",\"remove_passed\":\"@:{'words.generated.abgeschlossene'} @:{'words.generated.entfernen'}\",\"reset_all\":\"@.capitalize:{'words.generated.alles'} @:{'words.generated.zur'}?@:{'words.generated.cksetzen'}\",\"rule_types\":{\"IS_FALSE\":\"@.capitalize:{'words.generated.ist'} @:{'words.generated.falsch'}\",\"IS_FALSE_OR_ANY_FALSE\":\"@.capitalize:{'words.generated.ist'} @:{'words.generated.falsch'} @:{'words.generated.oder'} @.upper:{'words.generated.einer'} @:{'words.generated.ist'} @:{'words.generated.falsch'}\",\"IS_FALSE_OR_NOT_SET\":\"@.capitalize:{'words.generated.ist'} @:{'words.generated.falsch'} @:{'words.generated.oder'} @:{'words.generated.nicht'} @:{'words.generated.gesetzt'}\",\"IS_NOT_SET\":\"@.capitalize:{'words.generated.ist'} @:{'words.generated.nicht'} @:{'words.generated.gesetzt'}\",\"IS_SET\":\"@.capitalize:{'words.generated.ist'} @:{'words.generated.gesetzt'}\",\"IS_TRUE\":\"@.capitalize:{'words.generated.ist'} @:{'words.generated.wahr'}\",\"IS_TRUE_OR_ANY_TRUE\":\"@.capitalize:{'words.generated.ist'} @:{'words.generated.wahr'} @:{'words.generated.oder'} @.upper:{'words.generated.einer'} @:{'words.generated.ist'} @:{'words.generated.wahr'}\",\"IS_TRUE_OR_NOT_SET\":\"@.capitalize:{'words.generated.ist'} @:{'words.generated.wahr'} @:{'words.generated.oder'} @:{'words.generated.nicht'} @:{'words.generated.gesetzt'}\"},\"rules_for\":\"@:{'words.generated.regeln'} @:{'words.generated.f'}?@:{'words.generated.r'}\",\"rules\":\"@:{'words.generated.regeln'}\",\"run_again\":\"@.capitalize:{'words.generated.erneut'} @:{'words.generated.ausf'}?@:{'words.generated.hren'}\",\"save_changes\":\"Änderungen @:{'words.generated.speichern'}\",\"select_an_object\":\"@:{'words.generated.objekt'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"start_over\":\"@.capitalize:{'words.generated.neu'} @:{'words.generated.starten'}\",\"test_flow\":\"Ablauf @:{'words.generated.testen'}\",\"under_development\":\"@.capitalize:{'words.generated.in'} Entwicklung...\",\"unknown_customer\":\"@.capitalize:{'words.generated.unbekannter'} @.capitalize:{'words.generated.kunde'}\",\"upload_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.hochladen'} @:{'words.generated.der'} @:{'words.generated.datei'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\",\"yes\":\"@.upper:{'words.generated.ja'}\"},\"nav\":{\"create_transaction\":\"@:{'words.generated.transaktion'} @:{'words.generated.erstellen'}\",\"daily_report\":\"@:{'words.generated.tagesbericht'}\",\"drafts\":\"@:{'words.generated.entwurfe'}\",\"drivers\":\"@:{'words.generated.fahrer'}\",\"notifications\":\"@:{'words.generated.benachrichtigungen'}\",\"overview\":\"?@:{'words.generated.bersicht'}\",\"pos_system\":\"@:{'words.generated.pos'}-@.capitalize:{'words.generated.system'}\",\"select_department\":\"@:{'words.generated.abteilung'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"self_wash\":\"@:{'words.generated.selbstw'}?@:{'words.generated.sche'}\",\"wash_log\":\"@:{'words.generated.waschprotokoll'}\"},\"objects\":{\"bookings\":{\"columns\":{\"economic_customer_number\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.kundennummer'}\",\"pickup\":\"@:{'templates.generated.compat.pagination.pickup'}\",\"wash_certificate_email\":\"@:{'words.generated.waschzertifikat'}-@.upper:{'words.generated.e'}-@:{'words.generated.mail'}\",\"wash_certificate_pdf\":\"@:{'words.generated.waschzertifikat'}-@:{'words.generated.pdf'}\",\"wash_certificate_status\":\"@:{'words.generated.waschzertifikat'}-@.capitalize:{'words.generated.status'}\",\"wash_certificate_url\":\"@:{'words.generated.waschzertifikat'}-@:{'words.generated.url'}\"},\"description\":\"?@:{'words.generated.bersicht'} @:{'words.generated.der'} @:{'words.generated.buchungen'}\"},\"branding\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @.capitalize:{'words.generated.branding'}\",\"multiple\":\"Marken\",\"single\":\"@:{'words.generated.branding'}\",\"title\":\"@.capitalize:{'words.generated.branding'}\"},\"categories\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.kategorien'}\",\"single\":\"@:{'templates.generated.compat.tables.common.category'}\",\"title\":\"@:{'templates.generated.compat.superuser.nav.categories'}\"},\"collected_order_invoices\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.gesammelte'} @:{'words.generated.auftragsrechnungen'}\",\"multiple\":\"@:{'words.generated.gesammelte'} @:{'words.generated.auftragsrechnungen'}\",\"single\":\"@:{'words.generated.gesammelte'} Auftragsrechnung\",\"title\":\"@.capitalize:{'words.generated.gesammelte'} @:{'words.generated.auftragsrechnungen'}\"},\"columns\":{\"capacity\":\"Kapazit?@:{'words.generated.t'}\",\"category_id\":\"@:{'words.generated.kategorie'}-@.upper:{'words.generated.id'}\",\"city\":\"@:{'templates.generated.compat.common.city'}\",\"color\":\"@:{'templates.generated.compat.vehicles.color'}\",\"condition\":\"@:{'words.generated.bedingung'}\",\"config\":\"@:{'templates.generated.compat.global.configuration'}\",\"content\":\"@:{'words.generated.inhalt'}\",\"country\":\"@:{'templates.generated.compat.common.country'}\",\"customer_number\":\"@:{'templates.generated.compat.common.customer_number'}\",\"data\":\"@:{'words.generated.daten'}\",\"deleted\":\"@.capitalize:{'words.generated.geloscht'}\",\"department_id\":\"@:{'templates.generated.compat.common.department_id'}\",\"duration\":\"Dauer\",\"dynamic_image_id\":\"Dynamische @:{'words.generated.bild'}-@.upper:{'words.generated.id'}\",\"email\":\"@:{'templates.generated.compat.common.email'}\",\"email_desc\":\"@.capitalize:{'words.generated.ihre'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'} @:{'words.generated.als'} @:{'words.generated.fahrer'}.\",\"external_id\":\"Externe @.upper:{'words.generated.id'}\",\"filled_by\":\"@.capitalize:{'words.generated.ausgef'}?@:{'words.generated.llt'} @:{'words.generated.von'}\",\"grant\":\"Berechtigung\",\"icon\":\"Symbol\",\"image\":\"@:{'words.generated.bild'}\",\"is_entrance\":\"@.capitalize:{'words.generated.ist'} Einfahrt\",\"is_exit\":\"@.capitalize:{'words.generated.ist'} Ausfahrt\",\"key\":\"@:{'words.generated.schl'}?@:{'words.generated.ssel'}\",\"max\":\"Maximum\",\"message\":\"@:{'words.generated.nachricht'}\",\"module\":\"@:{'words.generated.modul'}\",\"notes\":\"@:{'templates.generated.compat.common.notes'}\",\"order_id\":\"Auftrags-ID\",\"permission\":\"@:{'templates.generated.compat.objects.columns.grant'}\",\"po_number\":\"Bestellnummer\",\"priority\":\"Priorit?@:{'words.generated.t'}\",\"processor\":\"Rechnungsprozessor\",\"relay_id\":\"@.capitalize:{'words.generated.relay'}-@.upper:{'words.generated.id'}\",\"relay_in_id\":\"Indgangs @:{'words.generated.relæ'} @.upper:{'words.generated.id'}\",\"relay_machine_cleaner_id\":\"@.capitalize:{'words.generated.machine'} cleaner @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_machine_id\":\"Maskine @:{'words.generated.relæ'} @.upper:{'words.generated.id'}\",\"relay_machine_program_picker_id\":\"@.capitalize:{'words.generated.machine'} program picker @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_out_id\":\"Udgangs @:{'words.generated.relæ'} @.upper:{'words.generated.id'}\",\"role_id\":\"@:{'words.generated.rollen'}-@.upper:{'words.generated.id'}\",\"rule\":\"@:{'words.generated.regel'}\",\"sort_order\":\"Sortierreihenfolge\",\"suspended\":\"@:{'templates.generated.compat.global.barred'}\",\"task\":\"@:{'words.generated.aufgabe'}\",\"title\":\"Titel\",\"total_net_amount\":\"@.capitalize:{'words.generated.gesamt'}-Nettobetrag\",\"updated_at\":\"@:{'templates.generated.compat.common.updated'}\",\"url\":\"@:{'words.generated.url'}\",\"user_id\":\"@:{'templates.generated.compat.user_admin.user_id'}\",\"water_usage\":\"@:{'words.generated.wasserverbrauch'} (m3)\",\"zip\":\"@:{'templates.generated.compat.common.zip'}\"},\"department_categories\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.abteilungskategorien'}\",\"multiple\":\"@:{'words.generated.abteilungskategorien'}\",\"single\":\"Abteilungskategorie\",\"title\":\"@:{'templates.generated.compat.objects.department_categories.multiple'}\"},\"department_daily_reports\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.tagesberichte'}\",\"multiple\":\"@:{'words.generated.tagesberichte'}\",\"title\":\"@:{'templates.generated.compat.objects.department_daily_reports.multiple'}\"},\"department_gates\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.abteilungstore'}\",\"multiple\":\"@:{'templates.generated.compat.superuser.nav.department_gates'}\",\"single\":\"@:{'words.generated.abteilungstor'}\"},\"department_lanes\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.waschspuren'}\",\"multiple\":\"@:{'words.generated.waschspuren'}\",\"single\":\"@:{'templates.generated.compat.global.lane'}\"},\"department_notification_sms\":{\"country_codes\":{\"denmark\":\"@:{'words.generated.d'}?nemark (+45)\",\"finland\":\"Finnland (+358)\",\"norway\":\"Norwegen (+47)\",\"sweden\":\"Schweden (+46)\"},\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.sms'}-@:{'words.generated.benachrichtigungen'} @:{'words.generated.der'} @:{'words.generated.abteilung'}\",\"multiple\":\"@:{'words.generated.telefonnummern'}\",\"title\":\"@.capitalize:{'words.generated.abteilungs'}-@:{'words.generated.sms'}-@:{'words.generated.benachrichtigungen'}\"},\"department_relays\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.abteilungsrelais'}\",\"single\":\"@:{'templates.generated.compat.superuser.nav.department_relays'}\"},\"department_time_bookings_entries\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.zeitbuchungen'}\",\"single\":\"@:{'words.generated.zeitbuchung'}\"},\"department_time_bookings_opening_hours\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} ?@:{'words.generated.ffnungszeiten'}\",\"single\":\"?ffnungszeit\"},\"department_time_bookings_types\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.buchungstypen'}\",\"multiple\":\"@:{'words.generated.buchungstypen'}\",\"single\":\"Buchungstyp\"},\"department_variables\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.abteilungsvariablen'}\",\"multiple\":\"@:{'words.generated.abteilungsvariablen'}\",\"single\":\"Abteilungsvariable\",\"title\":\"@:{'templates.generated.compat.objects.department_variables.multiple'}\"},\"departments\":{\"columns\":{\"archived\":\"Archiviert\",\"custom_pricing_only\":\"@:{'templates.generated.compat.departments.pricing.custom_pricing_only'}\",\"dimension\":\"Abmessung\",\"economic_department\":\"@:{'templates.generated.compat.objects.economic_departments.single'}\",\"latitude\":\"@:{'templates.generated.compat.departments.form.latitude'}\",\"longitude\":\"@:{'templates.generated.compat.departments.form.longitude'}\",\"slack_webhook\":\"@:{'words.generated.slack'} @.capitalize:{'words.generated.webhook'}\"},\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.abteilungen'}\",\"filters\":{\"active\":\"@:{'words.generated.aktive'} @:{'words.generated.abteilungen'}\",\"archived\":\"Archivierte @:{'words.generated.abteilungen'}\"}},\"economic_departments\":{\"columns\":{\"department_number\":\"Abteilungsnummer\"},\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.abteilungen'}\",\"multiple\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.abteilungen'}\",\"single\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.abteilung'}\",\"title\":\"@:{'templates.generated.compat.objects.economic_departments.multiple'}\"},\"economic_products\":{\"columns\":{\"product_number\":\"Produktnummer\"},\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.produkte'}\",\"multiple\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.produkte'}\",\"single\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'}-@.capitalize:{'words.generated.produkt'}\",\"title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.produkte'}\"},\"forms\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.formulare'}\",\"multiple\":\"@:{'words.generated.formulare'}\",\"single\":\"@:{'words.generated.formular'}\",\"title\":\"@:{'templates.generated.compat.objects.forms.multiple'}\"},\"goals\":{\"columns\":{\"current\":\"@.capitalize:{'words.generated.aktuell'}\",\"period\":\"@:{'words.generated.zeitraum'}\",\"target\":\"@:{'templates.generated.compat.objects.goals.single'}\"},\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.ziele'}\",\"multiple\":\"@:{'words.generated.ziele'}\",\"single\":\"@:{'words.generated.ziel'}\"},\"invoices\":{\"columns\":{\"due_date\":\"Fälligkeitsdatum\"},\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.rechnungen'}\",\"multiple\":\"@:{'templates.generated.compat.common.invoices'}\",\"single\":\"@:{'templates.generated.compat.common.invoice'}\"},\"module_action_logs\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.modul'}-@:{'words.generated.aktionsprotokolle'}\",\"multiple\":\"Modulaktionen\",\"single\":\"Modulaktion\",\"title\":\"@:{'words.generated.modul'}-@:{'words.generated.aktionsprotokolle'}\"},\"notifications\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.benachrichtigungen'}\",\"single\":\"Benachrichtigung\"},\"order_bookings\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.auftragsbuchungen'}\",\"multiple\":\"@:{'words.generated.auftragsbuchungen'}\",\"single\":\"@:{'words.generated.auftragsbuchung'}\"},\"orders\":{\"columns\":{\"cashier\":\"Kassierer\",\"reg_2\":\"@:{'words.generated.kennz'}. 2\",\"reg_3\":\"@:{'words.generated.kennz'}. 3\",\"wash_id\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'}-@.upper:{'words.generated.id'}\"},\"description\":\"?@:{'words.generated.bersicht'} @:{'words.generated.des'} Waschprotokolls\"},\"permissions\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.berechtigungen'}\"},\"product_options\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.produktoptionen'}\",\"multiple\":\"@:{'words.generated.produktoptionen'}\",\"single\":\"Produktoption\",\"title\":\"@:{'templates.generated.compat.objects.product_options.multiple'}\"},\"products\":{\"columns\":{\"economic_product\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@.capitalize:{'words.generated.produkt'}\",\"is_wash\":\"Ist Wäsche\",\"piktogram\":\"Piktogramm\",\"requires_note\":\"@:{'words.generated.notiz'} @:{'words.generated.erforderlich'}\",\"show_in_booking_form\":\"@.capitalize:{'words.generated.im'} Buchungsformular @:{'words.generated.anzeigen'}\",\"sort_priority\":\"Sortierpriorit?@:{'words.generated.t'} (niedrigste @:{'words.generated.zuerst'})\",\"subscription_allowed\":\"@:{'words.generated.abonnement'} @:{'words.generated.erlaubt'}\",\"use_category_discount\":\"@:{'words.generated.kategorie'}-@.capitalize:{'words.generated.rabatt'} @:{'words.generated.verwenden'}\"},\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.produkte'}\",\"multiple\":\"@:{'templates.generated.compat.common.products'}\",\"single\":\"@:{'templates.generated.compat.common.product'}\"},\"roles\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.rollen'}\"},\"self_serve_condition_rules\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.bedingungsregeln'}\",\"multiple\":\"@:{'templates.generated.compat.tables.self_serve.condition_rules'}\",\"single\":\"@:{'words.generated.bedingungsregel'}\"},\"self_serve_conditions\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.self'}-@.capitalize:{'words.generated.serve'}-@:{'words.generated.bedingungen'}\",\"single\":\"@:{'templates.generated.compat.objects.columns.condition'}\",\"title\":\"@:{'words.generated.self'}-@.capitalize:{'words.generated.serve'}-@:{'words.generated.bedingungen'}\"},\"self_serve_questions\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.self'}-@.capitalize:{'words.generated.serve'}-@:{'words.generated.fragen'}\",\"single\":\"@:{'templates.generated.compat.modals.question'}\",\"title\":\"@:{'words.generated.self'}-@.capitalize:{'words.generated.serve'}-@:{'words.generated.fragen'}\"},\"self_serve_tasks\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.self'}-@.capitalize:{'words.generated.serve'}-@:{'words.generated.aufgaben'}\",\"multiple\":\"@:{'templates.generated.compat.tables.self_serve.tasks'}\",\"single\":\"@:{'templates.generated.compat.objects.columns.task'}\",\"title\":\"@:{'words.generated.self'}-@.capitalize:{'words.generated.serve'}-@:{'words.generated.aufgaben'}\"},\"self_serve_vehicle_conditions\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.fahrzeugbedingungen'}\",\"multiple\":\"@:{'templates.generated.compat.tables.self_serve.vehicle_conditions'}\",\"single\":\"@:{'words.generated.fahrzeugbedingung'}\"},\"subuser_grants\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.unterbenutzer'}-Freigaben\",\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.k'}?@:{'words.generated.nnen'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.fahrer'} @:{'words.generated.anzeigen'} @:{'words.generated.und'} @:{'words.generated.verwalten'}.\",\"title\":\"@:{'templates.generated.compat.nav.drivers'}\"},\"vehicles\":{\"columns\":{\"reg\":\"@:{'words.generated.kennz'}. 1.\"},\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.fahrzeuge'}\"},\"xlvask_vehicle_types\":{\"description\":\"?@:{'words.generated.bersicht'} ?@:{'words.generated.ber'} @:{'words.generated.fahrzeugtypen'}\",\"title\":\"@:{'templates.generated.compat.statistics.vehicle_types'}\"}},\"order_bookings\":{\"add_service\":\"@.capitalize:{'words.generated.service'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"no_date_selected\":\"@.capitalize:{'words.generated.kein'} @:{'words.generated.datum'} @:{'words.generated.ausgew'}?@:{'words.generated.hlt'}\",\"no_department_selected\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.abteilung'} @:{'words.generated.ausgew'}?@:{'words.generated.hlt'}\"},\"outdated\":{\"gateway\":{\"description\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.werden'} @:{'words.generated.auf'} denselben Pfad @:{'words.generated.bei'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} weitergeleitet.\",\"redirect_now\":\"@.capitalize:{'words.generated.jetzt'} @:{'words.generated.weiter'}\",\"redirecting_in\":\"Weiterleitung @:{'words.generated.in'} {seconds} @:{'words.generated.sekunden'}...\",\"subtitle\":\"@.capitalize:{'words.generated.dieser'} @.capitalize:{'words.generated.link'} @:{'words.generated.wird'} schrittweise eingestellt.\",\"title\":\"Veraltetes @:{'words.generated.gateway'}\"},\"installation\":{\"android_step_1\":\"@.capitalize:{'words.generated.offnen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.in'} @:{'words.generated.chrome'}.\",\"android_step_2\":\"@.capitalize:{'words.generated.offnen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.das'} Browsermenü @:{'words.generated.und'} @:{'words.generated.wahlen'} @.capitalize:{'words.generated.sie'} \\\"@:{'words.generated.app'} @:{'words.generated.installieren'}\\\".\",\"android_step_3\":\"@.capitalize:{'words.generated.verwenden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.neu'} @:{'words.generated.installierte'} @:{'words.generated.app'} @:{'words.generated.und'} @:{'words.generated.entfernen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.diese'} @:{'words.generated.veraltete'} @:{'words.generated.app'}.\",\"android_title\":\"Android-@:{'words.generated.migration'}\",\"description\":\"@:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.wurde'} @:{'words.generated.auf'} @:{'words.generated.eine'} @:{'words.generated.neue'} @:{'words.generated.installation'} @:{'words.generated.unter'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} umgestellt. @.capitalize:{'words.generated.offnen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.neue'} @:{'words.generated.seite'} @:{'words.generated.und'} @:{'words.generated.installieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.app'} @:{'words.generated.erneut'} @:{'words.generated.auf'} @:{'words.generated.ihrem'} @:{'words.generated.gerat'}.\",\"ios_step_1\":\"@.capitalize:{'words.generated.offnen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.in'} @:{'words.generated.safari'}.\",\"ios_step_2\":\"@:{'words.generated.tippen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.auf'} \\\"@:{'words.generated.teilen'}\\\" @:{'words.generated.und'} dann @:{'words.generated.auf'} \\\"@.capitalize:{'words.generated.zum'} @:{'words.generated.home'}-@:{'words.generated.bildschirm'}\\\".\",\"ios_step_3\":\"@.capitalize:{'words.generated.verwenden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.neue'} @:{'words.generated.home'}-@:{'words.generated.bildschirm'}-@:{'words.generated.app'} @:{'words.generated.und'} @:{'words.generated.entfernen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.diese'} @:{'words.generated.veraltete'} @:{'words.generated.app'}.\",\"ios_title\":\"@:{'words.generated.iphone'}-@:{'words.generated.migration'}\",\"open_now\":\"@:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.jetzt'} @:{'words.generated.offnen'}\",\"subtitle\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.installierte'} @:{'words.generated.app'} @:{'words.generated.ist'} @:{'words.generated.veraltet'} @:{'words.generated.und'} @:{'words.generated.muss'} migriert @:{'words.generated.werden'}.\",\"title\":\"@.capitalize:{'words.generated.veraltete'} @:{'words.generated.installation'}\"}},\"pagination\":{\"archive\":\"Archiv\",\"clear_all\":\"Alle leeren\",\"ascending\":\"Aufsteigend (?lteste @:{'words.generated.zuerst'})\",\"booking_status\":\"Buchungsstatus\",\"bookings_overview\":\"@:{'words.generated.buchungs'}?@:{'words.generated.bersicht'}\",\"descending\":\"Absteigend (Neueste @:{'words.generated.zuerst'})\",\"download_excel\":\"Excel @:{'words.generated.herunterladen'}\",\"error_status\":\"Fehlerstatus\",\"from_date\":\"@.capitalize:{'words.generated.von'} @:{'words.generated.datum'}\",\"has_special_agreement\":\"@.capitalize:{'words.generated.hat'} @:{'words.generated.sondervereinbarung'}\",\"has_wash_subscription\":\"@.capitalize:{'words.generated.hat'} @:{'words.generated.waschabonnement'}\",\"here\":\"@:{'words.generated.hier'}\",\"hide_filters\":\"@.capitalize:{'words.generated.filter'} @:{'words.generated.ausblenden'}\",\"in_progress\":\"@.capitalize:{'words.generated.in'} @:{'words.generated.bearbeitung'}\",\"invoice_per_month\":\"@:{'words.generated.rechnung'} @:{'words.generated.pro'} @:{'words.generated.monat'}\",\"invoice_selection\":\"Rechnungsauswahl\",\"invoicing_period\":\"Abrechnungszeitraum\",\"loading\":\"@:{'words.generated.daten'} @:{'words.generated.werden'} @:{'words.generated.geladen'}...\",\"new_booking\":\"@:{'templates.generated.compat.bookings.new_booking'}\",\"next\":\"Nächste @:{'words.generated.seite'}\",\"no_special_agreement\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.sondervereinbarung'}\",\"no_wash_subscription\":\"@.capitalize:{'words.generated.kein'} @:{'words.generated.waschabonnement'}\",\"not_booked\":\"@.capitalize:{'words.generated.nicht'} @:{'words.generated.gebucht'}\",\"not_completed\":\"@:{'templates.generated.compat.global.not_completed'}\",\"not_specified\":\"@.capitalize:{'words.generated.nicht'} angegeben\",\"not_tank_cleaning\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.tankreinigung'}\",\"old_booking_notice\":\"@:{'words.generated.hinweis'}: @.capitalize:{'words.generated.sie'} befinden @:{'words.generated.sich'} @:{'words.generated.im'} alten @:{'words.generated.buchungsportal'}. @.capitalize:{'words.generated.wir'} ?bertragen historische @:{'words.generated.daten'} @:{'words.generated.derzeit'} @:{'words.generated.in'} @:{'words.generated.das'} @:{'words.generated.neue'} @:{'words.generated.portal'}. @.capitalize:{'words.generated.das'} @:{'words.generated.neue'} @:{'words.generated.buchungsportal'} @:{'words.generated.finden'} @.capitalize:{'words.generated.sie'}\",\"old\":\"Alt\",\"only_tank_cleaning\":\"@:{'templates.generated.compat.global.only_tank_cleaning'}\",\"only_today\":\"@.capitalize:{'words.generated.nur'} @:{'words.generated.heute'}\",\"order_direction\":\"@:{'templates.generated.compat.objects.columns.sort_order'}\",\"other_filters\":\"Andere Filter\",\"other_no_tracking\":\"Other (@.capitalize:{'words.generated.keine'} tracking)\",\"page_of\":\"@:{'templates.common.page_of'}\",\"payment_processor\":\"Zahlungsabwickler\",\"per_page\":\"@.capitalize:{'words.generated.pro'} @:{'words.generated.seite'}\",\"pickup\":\"@:{'words.generated.abholung'}\",\"previous\":\"@.capitalize:{'words.generated.vorherige'} @:{'words.generated.seite'}\",\"reload\":\"@.capitalize:{'words.generated.neu'} @:{'words.generated.laden'}\",\"show_filters\":\"@.capitalize:{'words.generated.filter'} @:{'words.generated.anzeigen'}\",\"show_only_pending\":\"@.capitalize:{'words.generated.nur'} @:{'words.generated.ausstehende'} @:{'words.generated.anzeigen'}\",\"show_only_today\":\"@.capitalize:{'words.generated.nur'} @:{'words.generated.heute'} @:{'words.generated.anzeigen'}\",\"show_only_todays_pending\":\"@.capitalize:{'words.generated.nur'} heutige @:{'words.generated.ausstehende'} @:{'words.generated.anzeigen'}\",\"special_agreement\":\"@:{'words.generated.sondervereinbarung'}\",\"to_date\":\"@.capitalize:{'words.generated.bis'} @:{'words.generated.datum'}\",\"version\":\"@.capitalize:{'words.generated.version'}\",\"wash_subscription\":\"@:{'words.generated.waschabonnement'}\"},\"passkeys\":{\"added_successfully\":\"@:{'words.generated.passkey'} @:{'words.generated.wurde'} @:{'words.generated.erfolgreich'} @:{'words.generated.hinzugefugt'}.\",\"delete_confirm\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} @:{'words.generated.passkey'} „{name}“ @:{'words.generated.loschen'} @:{'words.generated.mochten'}? @.capitalize:{'words.generated.dies'} @:{'words.generated.kann'} @:{'words.generated.nicht'} @:{'words.generated.ruckgangig'} @:{'words.generated.gemacht'} @:{'words.generated.werden'}.\",\"description\":\"@.capitalize:{'words.generated.verwenden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.passkeys'} @:{'words.generated.fur'} @:{'words.generated.eine'} @:{'words.generated.sichere'} @:{'words.generated.anmeldung'} @:{'words.generated.mit'} Biometrie @:{'words.generated.wie'} Face @.upper:{'words.generated.id'}, Touch @.upper:{'words.generated.id'} @:{'words.generated.oder'} @:{'words.generated.der'} PIN Ihres Geräts.\",\"login_failed\":\"@:{'words.generated.anmeldung'} @:{'words.generated.mit'} @:{'words.generated.passkey'} @:{'words.generated.fehlgeschlagen'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.versuchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.es'} @:{'words.generated.erneut'}.\",\"login_with_passkey\":\"@.capitalize:{'words.generated.mit'} @:{'words.generated.passkey'} @:{'words.generated.anmelden'}\",\"name_label\":\"@:{'words.generated.passkey'}-@.capitalize:{'words.generated.name'}\",\"name_placeholder\":\"z. B. @:{'words.generated.mein'} @:{'words.generated.iphone'}, Arbeitslaptop\",\"name_required\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.einen'} Namen @:{'words.generated.fur'} @:{'words.generated.ihren'} @:{'words.generated.passkey'} @:{'words.generated.ein'}.\",\"no_passkeys\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.haben'} @:{'words.generated.noch'} @:{'words.generated.keine'} @:{'words.generated.passkeys'} @:{'words.generated.hinzugefugt'}. @:{'words.generated.fugen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.einen'} @:{'words.generated.hinzu'}, @:{'words.generated.um'} @:{'words.generated.sich'} @:{'words.generated.ohne'} @:{'words.generated.passwort'} @:{'words.generated.anzumelden'}.\",\"not_supported_browser\":\"@:{'words.generated.ihr'} @:{'words.generated.browser'} @:{'words.generated.unterstutzt'} @:{'words.generated.keine'} @:{'words.generated.passkeys'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.verwenden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.einen'} modernen @:{'words.generated.browser'} @:{'words.generated.wie'} @:{'words.generated.chrome'}, @:{'words.generated.safari'}, Firefox @:{'words.generated.oder'} @:{'words.generated.edge'}.\",\"not_supported\":\"@:{'words.generated.passkeys'} @:{'words.generated.werden'} @:{'words.generated.auf'} @:{'words.generated.diesem'} @:{'words.generated.gerat'} @:{'words.generated.nicht'} @:{'words.generated.unterstutzt'}.\",\"registration_cancelled\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.passkey'}-@:{'words.generated.registrierung'} @:{'words.generated.wurde'} @:{'words.generated.abgebrochen'}.\",\"registration_failed\":\"@:{'words.generated.passkey'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.registriert'} @:{'words.generated.werden'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.versuchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.es'} @:{'words.generated.erneut'}.\",\"rename_failed\":\"@:{'words.generated.passkey'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.umbenannt'} @:{'words.generated.werden'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.versuchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.es'} @:{'words.generated.erneut'}.\",\"rename_passkey\":\"@:{'words.generated.passkey'} @:{'words.generated.umbenennen'}\",\"rename\":\"@.capitalize:{'words.generated.umbenennen'}\",\"renamed_successfully\":\"@:{'words.generated.passkey'} @:{'words.generated.wurde'} @:{'words.generated.erfolgreich'} @:{'words.generated.umbenannt'}.\",\"success\":\"@:{'templates.generated.compat.common.success'}\",\"title\":\"@:{'words.generated.passkeys'}\",\"unnamed\":\"Unbenannter @:{'words.generated.passkey'}\"},\"password_reset\":{\"new_password\":\"@:{'templates.generated.compat.settings.new_password'}\",\"restart\":\"@:{'words.generated.passwort'}-Reset @:{'words.generated.neu'} @:{'words.generated.starten'}\",\"submit\":\"@:{'words.generated.passwort'} @:{'words.generated.zurucksetzen'}\"},\"pos\":{\"add_to_cart\":\"@.capitalize:{'words.generated.in'} @:{'words.replication.article.host_mention'} @:{'words.generated.warenkorb'}\",\"add_to_order\":\"@.capitalize:{'words.generated.zum'} @:{'words.generated.auftrag'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"addon\":{\"included\":\"Inkludert\"},\"apply_discount\":\"Tillämpa @:{'words.generated.rabatt'}\",\"bookings\":{\"customer_number\":\"Kundenr.\"},\"camera_permission_denied\":\"@:{'words.generated.kamerazugriff'} @:{'words.generated.verweigert'}. @.capitalize:{'words.generated.bitte'} erlauben @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} @:{'words.generated.kamerazugriff'}, @:{'words.generated.um'} @:{'words.generated.kennzeichen'} @:{'words.generated.zu'} @:{'words.generated.scannen'}.\",\"cancel_order\":\"@:{'words.generated.auftrag'} @:{'words.generated.abbrechen'}\",\"card\":\"Kort\",\"cash\":\"Kontant\",\"clear_order\":\"@:{'words.generated.auftrag'} @:{'words.generated.leeren'}\",\"confirm_clear_order\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} @:{'words.generated.auftrag'} @:{'words.generated.leeren'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"confirm_complete_order\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} @:{'words.generated.auftrag'} @:{'words.generated.abschlie'}?@:{'words.generated.en'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"confirm\":{\"confirm_booking\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.diese'} @:{'words.generated.buchung'} @:{'words.generated.best'}?@:{'words.generated.tigen'} @:{'words.generated.und'} @:{'words.generated.verarbeiten'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"yes_confirm\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.best'}?@:{'words.generated.tigen'}\"},\"copy_last_wash_hint\":\"Übernimmt @:{'words.generated.leistung'}, @:{'words.generated.zusatzoptionen'} @:{'words.generated.und'} @:{'words.generated.zusatzartikel'} @:{'words.generated.aus'} @:{'words.generated.der'} @:{'words.generated.letzten'} @:{'words.generated.wasche'}\",\"copying_last_wash\":\"@.capitalize:{'words.generated.letzte'} @:{'words.generated.wasche'} @:{'words.generated.wird'} @:{'words.generated.kopiert'}\",\"create_new_vehicle\":\"@.capitalize:{'words.generated.neues'} @:{'words.generated.fahrzeug'} @:{'words.generated.erstellen'}\",\"department_not_found\":\"@:{'words.generated.abteilung'} @:{'words.generated.nicht'} @:{'words.generated.gefunden'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.melden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sich'} @:{'words.generated.erneut'} @:{'words.generated.an'}.\",\"email_receipt\":\"@.upper:{'words.generated.e'}-posta @:{'words.generated.kvitto'}\",\"enter_plate\":\"@:{'words.generated.kennzeichen'} @:{'words.generated.eingeben'}\",\"finish_and_register_new\":\"@.capitalize:{'words.generated.abschlie'}?@:{'words.generated.en'} @:{'words.generated.und'} @:{'words.generated.neu'} @:{'words.generated.registrieren'}\",\"finish_and_register\":\"@.capitalize:{'words.generated.abschlie'}?@:{'words.generated.en'} @:{'words.generated.und'} @:{'words.generated.registrieren'}\",\"generate_certificate\":\"Zertifikat @:{'words.generated.erstellen'}\",\"go_back\":\"@.capitalize:{'words.generated.zur'}?@:{'words.generated.ck'}\",\"go_to_login\":\"@.capitalize:{'words.generated.zur'} @:{'words.generated.anmeldung'}\",\"hold_to_change_vehicle\":\"@:{'words.generated.gedruckt'} @:{'words.generated.halten'}, @:{'words.generated.um'} @:{'words.generated.das'} @:{'words.generated.fahrzeug'} @:{'words.generated.zu'} ändern\",\"hold_to_choose_additional_items\":\"@:{'words.generated.gedruckt'} @:{'words.generated.halten'}, @:{'words.generated.um'} @:{'words.generated.zusatzliche'} @:{'words.generated.positionen'} @:{'words.generated.zu'} @:{'words.generated.wahlen'}\",\"hold_to_copy_last_wash\":\"@:{'words.generated.gedruckt'} @:{'words.generated.halten'}, @:{'words.generated.um'} @:{'words.generated.die'} @:{'words.generated.letzte'} @:{'words.generated.wasche'} @:{'words.generated.zu'} @:{'words.generated.kopieren'}\",\"images\":\"@:{'words.generated.bilder'}\",\"input\":{\"license_plate_manual\":\"@:{'words.generated.kennzeichen'} @:{'words.generated.manuell'} @:{'words.generated.eingeben'}\"},\"keyboard\":{\"clear\":\"Tøm\"},\"last_wash_matches_current_selection\":\"@.capitalize:{'words.generated.gleiche'} @:{'words.generated.leistung'}, @:{'words.generated.zusatzoptionen'} @:{'words.generated.und'} @:{'words.generated.zusatzartikel'} @:{'words.generated.wie'} @:{'words.generated.bei'} @:{'words.generated.der'} @:{'words.generated.letzten'} @:{'words.generated.wasche'}\",\"manual_entry\":\"@.capitalize:{'words.generated.manuell'} registrering\",\"new_order\":\"@.capitalize:{'words.generated.neuer'} @:{'words.generated.auftrag'}\",\"new_sale\":\"Nytt salg\",\"no_bookings\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.buchungen'} @:{'words.generated.gefunden'}\",\"no_camera_found\":\"@.capitalize:{'words.generated.kein'} @:{'words.generated.kamera'}-@:{'words.generated.ger'}?@:{'words.generated.t'} @:{'words.generated.gefunden'}. @.capitalize:{'words.generated.bitte'} verbinden @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.kamera'}, @:{'words.generated.um'} @:{'words.generated.kennzeichen'} @:{'words.generated.zu'} @:{'words.generated.scannen'}.\",\"order_summary\":\"@:{'words.generated.auftrags'}?@:{'words.generated.bersicht'}\",\"order\":{\"add_more_products\":\"@.capitalize:{'words.generated.weitere'} @:{'words.generated.produkte'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"badges\":{\"amount_due\":\"Offener @:{'words.generated.betrag'}\",\"amount_received\":\"Erhaltener @:{'words.generated.betrag'}\",\"amount_reserved\":\"Reservierter @:{'words.generated.betrag'}\",\"not_invoiced\":\"@.capitalize:{'words.generated.nicht'} @:{'words.generated.fakturiert'}\",\"saved_for_invoicing\":\"@.capitalize:{'words.generated.zur'} @:{'words.generated.rechnungsstellung'} @:{'words.generated.gespeichert'}\",\"tax\":\"@:{'templates.generated.compat.common.tax'}\"},\"click_to_go_to_booking\":\"@:{'words.generated.klicken'}, @:{'words.generated.um'} @:{'words.generated.zur'} @:{'words.generated.buchung'} @:{'words.generated.zu'} @:{'words.generated.gehen'}\",\"complete_order\":\"@:{'templates.generated.compat.global.complete_order'}\",\"delete_order\":\"@:{'words.generated.auftrag'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"draft_check_exists\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.pr'}?@:{'words.generated.fen'} @.capitalize:{'words.generated.sie'}, @:{'words.generated.ob'} @:{'words.generated.der'} @:{'words.generated.rechnungsentwurf'} @:{'words.generated.in'} @:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.existiert'}.\",\"draft_fetch_error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.rechnungsentwurf'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.aus'} @:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.geladen'} @:{'words.generated.werden'}.\",\"draft_transaction_export_blocked\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.transaktion'} @:{'words.generated.verwendet'} @:{'words.replication.article.host_mention'} @:{'words.generated.konfigurierten'} @:{'words.generated.entwurfskunden'} @:{'words.generated.und'} @:{'words.generated.kann'} @:{'words.generated.daher'} @:{'words.generated.nicht'} @:{'words.generated.nach'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.exportiert'} @:{'words.generated.werden'}.\",\"edit_note\":\"@:{'words.generated.notiz'} @:{'words.generated.bearbeiten'}\",\"force_edit\":\"@:{'words.generated.bearbeitungsrechte'} erzwingen\",\"get_invoice\":\"@:{'words.generated.rechnung'} @:{'words.generated.abrufen'}\",\"include_in_invoice\":\"Rechnungsaufnahme\",\"invoice_override\":{\"exclude\":\"Ausschließen\",\"force_exclude_help\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.bestellung'} @:{'words.generated.wird'} @:{'words.generated.unabhangig'} @:{'words.generated.von'} @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.nicht'} @:{'words.generated.in'} @:{'words.generated.rechnung'} @:{'words.generated.gestellt'}.\",\"force_include_help\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.bestellung'} @:{'words.generated.wird'} @:{'words.generated.unabhangig'} @:{'words.generated.von'} @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.in'} @:{'words.generated.rechnung'} @:{'words.generated.gestellt'}.\",\"include\":\"Einschließen\",\"inherit_exclude_help\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.abteilungsregel'} @:{'words.generated.wird'} @:{'words.generated.verwendet'}. @.capitalize:{'words.generated.diese'} @:{'words.generated.bestellung'} @:{'words.generated.ist'} @:{'words.generated.aktuell'} @:{'words.generated.von'} @:{'words.generated.der'} @:{'words.generated.rechnungsstellung'} ausgeschlossen.\",\"inherit_help\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.abteilungsregel'} @:{'words.generated.wird'} @:{'words.generated.verwendet'}.\",\"inherit_include_help\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.abteilungsregel'} @:{'words.generated.wird'} @:{'words.generated.verwendet'}. @.capitalize:{'words.generated.diese'} @:{'words.generated.bestellung'} @:{'words.generated.wird'} @:{'words.generated.aktuell'} @:{'words.generated.in'} @:{'words.generated.rechnung'} @:{'words.generated.gestellt'}.\",\"use_department\":\"@:{'words.generated.abteilung'} @:{'words.generated.verwenden'}\"},\"linked_booking_id\":\"@:{'words.generated.verkn'}?pfte @:{'words.generated.buchungs'}-@.upper:{'words.generated.id'}\",\"order_note\":\"@:{'words.generated.auftragsnotiz'} (@:{'words.generated.wird'} oben @:{'words.generated.auf'} @:{'words.generated.der'} @:{'words.generated.rechnung'} @:{'words.generated.an'} @:{'words.replication.article.host_mention'} @:{'words.generated.kunden'} @:{'words.generated.gesendet'})\",\"print_receipt\":\"@:{'words.generated.beleg'} @:{'words.generated.drucken'}\",\"reg\":\"@:{'words.generated.kennz'}.\",\"remove_force_edit\":\"Erzwungene @:{'words.generated.bearbeitungsrechte'} @:{'words.generated.entfernen'}\",\"send_to_economic\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.senden'}\",\"settings_actions_title\":\"@:{'words.generated.admin'}-@:{'words.generated.aktionen'}\",\"settings_description\":\"@:{'words.generated.abteilung'}, Erstellungszeit @:{'words.generated.und'} Rechnungslogik @:{'words.generated.fur'} @:{'words.generated.diese'} @:{'words.generated.bestellung'} @:{'words.generated.aktualisieren'}.\",\"settings_save_error\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.einstellungen'} @:{'words.generated.konnten'} @:{'words.generated.nicht'} @:{'words.generated.gespeichert'} @:{'words.generated.werden'}.\",\"settings_saved\":\"@:{'words.generated.einstellungen'} @:{'words.generated.gespeichert'}.\",\"status\":{\"not_paid\":\"@.capitalize:{'words.generated.nicht'} @:{'words.generated.bezahlt'}\",\"partially_paid\":\"@:{'templates.generated.compat.invoices.partial'}\",\"uncollectible\":\"Uneinbringlich\",\"void\":\"@:{'words.generated.rechnung'} @:{'words.generated.storniert'} (void)\"}},\"pay\":\"@.capitalize:{'words.generated.bezahlen'}\",\"payment_by_card\":\"@:{'words.generated.zahlung'} @:{'words.generated.per'} @:{'words.generated.karte'}\",\"payment_by_cash\":\"Barzahlung\",\"payment_by_invoice\":\"@:{'words.generated.zahlung'} @:{'words.generated.per'} @:{'words.generated.rechnung'}\",\"payment_method\":\"@:{'templates.generated.compat.global.payment.method'}\",\"payment\":\"@:{'words.generated.zahlung'}\",\"print_receipt\":\"@.capitalize:{'words.generated.drucken'} @:{'words.generated.kvitto'}\",\"process_booking\":\"@:{'words.generated.buchung'} @:{'words.generated.verarbeiten'}\",\"processing_order\":\"@:{'words.generated.auftrag'} @:{'words.generated.wird'} verarbeitet...\",\"restrictions\":{\"addons_not_allowed\":\"Zusatzoptionen sind für diesen Kunden nicht erlaubt\",\"backend_rejected\":\"Das Produkt wurde durch Kundenregeln abgelehnt und nicht hinzugefügt\",\"product_not_allowed\":\"Dieses Produkt ist für diesen Kunden nicht erlaubt\",\"restricted_items_removed\":\"Eingeschränkte Zusatzoptionen wurden aus dem Warenkorb entfernt\",\"title\":\"Kundenregel\"},\"receipt\":\"@.capitalize:{'words.generated.kvitto'}\",\"recent\":{\"title\":\"Siste\"},\"reference\":\"Referens\",\"register_vehicle\":\"@:{'words.generated.fahrzeug'} @:{'words.generated.registrieren'}\",\"remove_discount\":\"@.capitalize:{'words.generated.rabatt'} @:{'words.generated.entfernen'}\",\"remove_from_order\":\"@.capitalize:{'words.generated.aus'} @:{'words.generated.auftrag'} @:{'words.generated.entfernen'}\",\"remove_image\":\"@:{'words.generated.bild'} @:{'words.generated.entfernen'}\",\"scan_plate\":\"@:{'words.generated.kennzeichen'} @:{'words.generated.scannen'}\",\"search_license_plate\":\"@:{'templates.generated.compat.common.search_license_plate'}\",\"select_product\":\"@.capitalize:{'words.generated.produkt'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"select_products\":\"@:{'words.generated.valj'} @:{'words.generated.produkter'}\",\"subtitle\":\"@:{'words.generated.fahrzeuge'} @:{'words.generated.registrieren'} @:{'words.generated.und'} @:{'words.generated.zahlungen'} @:{'words.generated.verarbeiten'}\",\"subtotal\":\"Delsumma\",\"take_photo\":\"Foto @:{'words.generated.aufnehmen'}\",\"title\":\"Kassasystem\",\"total_amount\":\"@:{'words.generated.totalt'} @:{'words.generated.beløp'}\",\"upload_image\":\"@:{'words.generated.bild'} @:{'words.generated.hochladen'}\",\"vehicle_not_found\":\"@:{'words.generated.fahrzeug'} @:{'words.generated.nicht'} @:{'words.generated.gefunden'}\",\"vehicle_type\":\"@:{'words.generated.fahrzeugtyp'}\",\"vehicle_types\":{\"bus\":\"@:{'templates.generated.compat.vehicles.types.bus'}\",\"lastbil\":\"Lastbil\",\"lift\":\"Lift\",\"mandskabsvogn\":\"Mannschaftswagen\",\"motorcykel\":\"Motorrad\",\"sættevogn\":\"Sattelauflieger\",\"trailer\":\"Tilhenger\",\"traktor\":\"@:{'words.generated.zugmaschine'}\",\"varevogn\":\"Lieferwagen\"},\"vehicle\":{\"previously_washed\":\"@.capitalize:{'words.generated.fr'}?her gewaschen\"},\"wash_certificate\":\"@:{'words.generated.waschzertifikat'}\",\"wash_type\":\"Tvättyp\"},\"products\":{\"admin\":{\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.k'}?@:{'words.generated.nnen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.produkte'} @:{'words.generated.verwalten'}\",\"title\":\"@.capitalize:{'words.generated.produkt'} @:{'words.generated.administration'}\"},\"delete_product\":\"@.capitalize:{'words.generated.produkt'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"edit_product\":\"@.capitalize:{'words.generated.bearbeiten'} @:{'words.generated.produkt'}\",\"form\":{\"exterior\":\"Utvendig\",\"interior\":\"@.capitalize:{'words.generated.innvendig'}\",\"is_exterior\":\"@.capitalize:{'words.generated.ist'} @:{'words.generated.au'}?@:{'words.generated.en'}\",\"is_interior\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.innvendig'}\",\"product_name\":\"Produktnavn\",\"save\":\"Lagre\",\"vehicle_type\":\"@:{'templates.generated.compat.pos.vehicle_type'}\"},\"new_product\":\"@.capitalize:{'words.generated.neues'} @.capitalize:{'words.generated.produkt'}\",\"no_products\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.produkte'} @:{'words.generated.gefunden'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.produktname'} @:{'words.generated.suchen'}\",\"subtitle\":\"@:{'words.generated.produkte'} @:{'words.generated.verwalten'}\",\"type\":\"@:{'words.generated.typ'}\"},\"profile\":{\"email\":{\"enter_email\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'} @:{'words.generated.ein'}\",\"enter_password\":\"@.capitalize:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ihr'} @:{'words.generated.passwort'} @:{'words.generated.ein'}\",\"invalid_email\":\"@:{'templates.generated.compat.validation.email'}\",\"label\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'}\",\"new_email_prompt\":\"@:{'words.generated.welche'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'} @:{'words.generated.m'}?@:{'words.generated.chten'} @.capitalize:{'words.generated.sie'} @:{'words.generated.verwenden'}?\",\"new_email_text\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.neue'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'} @:{'words.generated.ein'}.\",\"password_prompt\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ihr'} @:{'words.generated.passwort'} @:{'words.generated.ein'}\",\"saved\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'} @:{'words.generated.gespeichert'}\",\"saved_text\":\"@.capitalize:{'words.generated.ihre'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'} @:{'words.generated.wurde'} @:{'words.generated.gespeichert'}.\"},\"error\":{\"save_email_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.speichern'} @:{'words.generated.der'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\",\"validation_error\":\"@.capitalize:{'words.generated.beim'} Validieren @:{'words.generated.des'} @:{'words.generated.passworts'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}.\"}},\"replication\":{\"actions\":{\"add\":\"@.capitalize:{'words.generated.add'} @.lower:{'words.replication.host'}\",\"promote\":\"Promote\",\"provision\":\"@.capitalize:{'words.generated.provision'}\",\"remove\":\"Remove\",\"rename\":\"@.capitalize:{'words.generated.rename'}\",\"save_and_provision\":\"@.capitalize:{'words.generated.save'} @:{'words.generated.and'} @:{'words.generated.provision'}\",\"test\":\"@.capitalize:{'words.generated.test'}\"},\"blockers\":{\"database_engine_match_required\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'} @:{'words.generated.and'} @:{'words.generated.replica'} @:{'words.generated.must'} @:{'words.generated.use'} @:{'words.generated.the'} @:{'words.generated.same'} @:{'words.generated.database'} family.\",\"database_io_thread_stopped\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.database'} @:{'words.generated.replication'} @.upper:{'words.generated.io'} @:{'words.generated.thread'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.running'}. @.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.not'} fetching @:{'words.generated.new'} binlog events @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'}.\",\"database_primary_missing\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.database'} @:{'words.generated.primary'} @:{'words.generated.is'} @:{'words.generated.registered'}.\",\"database_replica_missing_table_count\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.seed'} @:{'words.generated.is'} @:{'words.generated.incomplete'}. {count} @:{'words.generated.tables'} @:{'words.generated.are'} @:{'words.generated.missing'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.replica'}. Examples: {tables}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.and'} @:{'words.generated.fill'} @:{'words.generated.the'} @:{'words.generated.schema'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'}.\",\"database_replica_missing_tables\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.seed'} @:{'words.generated.is'} @:{'words.generated.incomplete'}. @.capitalize:{'words.generated.missing'} @:{'words.generated.tables'}: {tables}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.and'} @:{'words.generated.fill'} @:{'words.generated.the'} @:{'words.generated.schema'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'}.\",\"database_replica_not_seeded\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.missing'} @:{'words.generated.tables'} @:{'words.generated.or'} @:{'words.generated.data'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.and'} @:{'words.generated.fill'} @:{'words.generated.the'} @:{'words.generated.schema'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'}. Technical @:{'words.generated.error'}: {error}\",\"database_replica_schema_only_rows\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.contains'} @:{'words.generated.data'} @:{'words.generated.in'} @:{'words.generated.tables'} where @:{'words.generated.only'} @:{'words.generated.the'} @:{'words.generated.schema'} @:{'words.generated.should'} @:{'words.generated.be'} copied: {tables}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} rebuild @:{'words.generated.the'} @:{'words.generated.replica'} without operational log @:{'words.generated.data'}.\",\"database_replica_status_missing\":\"@:{'words.generated.mariadb'} @:{'words.generated.replication'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.configured'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.replica'}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} configure @:{'words.generated.the'} @:{'words.generated.replica'} again.\",\"database_sql_thread_stopped\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.database'} @:{'words.generated.replication'} @:{'words.generated.sql'} @:{'words.generated.thread'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.running'}. @.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.not'} applying fetched @:{'words.generated.changes'}.\",\"database_threads_required\":\"@.capitalize:{'words.generated.database'} @:{'words.generated.replication'} @.upper:{'words.generated.io'} @:{'words.generated.and'} @:{'words.generated.sql'} threads @:{'words.generated.must'} both @:{'words.generated.be'} @:{'words.generated.running'}.\",\"mariadb_binlog_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.enabled'}.\",\"mariadb_binlog_unavailable\":\"@:{'words.generated.mariadb'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.status'} @:{'words.generated.is'} @:{'words.generated.unavailable'}.\",\"mariadb_gtid_position_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.gtid'} @:{'words.generated.position'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.available'}.\",\"mariadb_gtid_replication_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.replication'} @:{'words.generated.must'} @:{'words.generated.use'} @:{'words.generated.gtid'} @:{'words.generated.mode'}.\",\"mariadb_preseed_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.replicas'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.safely'} @:{'words.generated.seeded'} before @:{'words.generated.managed'} @:{'words.generated.replication'} can @:{'words.generated.be'} @:{'words.generated.configured'}.\",\"mariadb_server_id_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.server'}_@:{'words.generated.id'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.configured'}.\",\"mariadb_version_current\":\"@:{'words.generated.mariadb'} 10.6 @:{'words.generated.or'} @:{'words.generated.newer'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.managed'} @:{'words.generated.replication'}. @.capitalize:{'words.generated.current'} @:{'words.generated.server'} @:{'words.generated.reports'} {version}.\",\"mariadb_version_required\":\"@:{'words.generated.mariadb'} 10.6 @:{'words.generated.or'} @:{'words.generated.newer'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.managed'} @:{'words.generated.replication'}.\",\"minio_primary_missing\":\"@.capitalize:{'words.generated.no'} @:{'words.replication.services.minio'} @:{'words.generated.primary'} @:{'words.generated.is'} @:{'words.generated.registered'}.\",\"minio_replica_not_caught_up\":\"@:{'words.replication.services.minio'} @:{'words.generated.replica'} @:{'words.generated.has'} @:{'words.generated.not'} caught @:{'words.generated.up'}.\",\"minio_replication_not_configured\":\"@:{'words.replication.services.minio'} @:{'words.generated.bucket'} @:{'words.generated.replication'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.configured'}.\",\"minio_source_bucket_missing\":\"@:{'words.replication.services.minio'} @:{'words.generated.source'} @:{'words.generated.bucket'} {bucket} @:{'words.generated.is'} @:{'words.generated.missing'}.\",\"minio_space_insufficient\":\"@:{'words.replication.services.minio'} @:{'words.generated.target'} @:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.have'} enough @:{'words.generated.free'} @:{'words.generated.space'}. @.capitalize:{'words.generated.required'} {required} @:{'words.generated.bytes'}, @:{'words.generated.available'} {available} @:{'words.generated.bytes'}.\",\"minio_space_unknown\":\"@:{'words.replication.services.minio'} @:{'words.generated.target'} @:{'words.generated.free'} @:{'words.generated.space'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.be'} determined.\",\"minio_target_bucket_missing\":\"@:{'words.replication.services.minio'} @:{'words.generated.target'} @:{'words.generated.bucket'} {bucket} @:{'words.generated.is'} @:{'words.generated.missing'}.\",\"mysql_binlog_required\":\"@:{'words.generated.mysql'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.enabled'}.\",\"mysql_binlog_unavailable\":\"@:{'words.generated.mysql'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.status'} @:{'words.generated.is'} @:{'words.generated.unavailable'}.\",\"mysql_clone_primary_required\":\"@:{'words.generated.mysql'} @:{'words.generated.clone'} @:{'words.generated.plugin'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.active'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.primary'} donor.\",\"mysql_clone_target_required\":\"@:{'words.generated.mysql'} @:{'words.generated.clone'} @:{'words.generated.plugin'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.active'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.target'}. @.capitalize:{'words.generated.use'} @:{'words.generated.a'} preseeded @:{'words.generated.replica'} @:{'words.generated.only'} after @:{'words.generated.the'} @:{'words.generated.target'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.safely'} @:{'words.generated.seeded'}.\",\"mysql_gtid_required\":\"@:{'words.generated.mysql'} @:{'words.generated.gtid'} @:{'words.generated.mode'} @:{'words.generated.must'} @:{'words.generated.be'} @.upper:{'words.generated.on'}.\",\"mysql_gtid_unavailable\":\"@:{'words.generated.mysql'} @:{'words.generated.gtid'} @:{'words.generated.mode'} @:{'words.generated.is'} @:{'words.generated.unavailable'}. @.capitalize:{'words.generated.managed'} @:{'words.generated.replication'} @:{'words.generated.requires'} @:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.with'} @:{'words.generated.gtid'} @:{'words.generated.enabled'}.\",\"mysql_server_id_required\":\"@:{'words.generated.mysql'} @:{'words.generated.server'}_@:{'words.generated.id'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.configured'}.\",\"mysql_server_uuid_required\":\"@:{'words.generated.mysql'} @:{'words.generated.server'}_uuid @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.available'}. @.capitalize:{'words.generated.managed'} @:{'words.generated.replication'} @:{'words.generated.requires'} @:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'}.\",\"mysql_unique_server_id\":\"@.capitalize:{'words.generated.database'} @:{'words.generated.replica'} @:{'words.generated.must'} @:{'words.generated.have'} @:{'words.generated.a'} @:{'words.generated.unique'} @:{'words.generated.server'}_@:{'words.generated.id'}.\",\"mysql8_current\":\"@:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.managed'} @:{'words.generated.replication'}. @.capitalize:{'words.generated.current'} @:{'words.generated.server'} @:{'words.generated.reports'} {version}.\",\"mysql8_required\":\"@:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.managed'} @:{'words.generated.replication'}.\",\"redis_acl_config_required\":\"@:{'words.replication.services.redis'} ACL @:{'words.generated.must'} @:{'words.generated.allow'} CONFIG @.upper:{'words.generated.get'}, SET, @:{'words.generated.and'} REWRITE @:{'words.generated.for'} durable @:{'words.generated.replication'} @:{'words.generated.changes'}.\",\"redis_link_down\":\"@:{'words.replication.services.redis'} @:{'words.generated.replica'} @:{'words.generated.link'} @:{'words.generated.to'} @:{'words.generated.primary'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.up'}.\",\"redis_not_replica\":\"@:{'words.replication.services.redis'} @.lower:{'words.replication.host'} @:{'words.generated.is'} @:{'words.generated.not'} currently @:{'words.generated.a'} @:{'words.generated.replica'}.\",\"redis_ping_failed\":\"@:{'words.replication.services.redis'} PING @:{'words.generated.did'} @:{'words.generated.not'} @:{'words.generated.return'} PONG.\",\"redis_primary_missing\":\"@.capitalize:{'words.generated.no'} @:{'words.replication.services.redis'} @:{'words.generated.primary'} @:{'words.generated.is'} @:{'words.generated.registered'}.\"},\"compose\":{\"compose_file\":\"@:{'words.generated.docker'}-@:{'words.generated.compose'}.yml\",\"env_file\":\".@:{'words.generated.env'}\",\"generate\":\"@:{'words.generated.generate'} @:{'words.generated.compose'}\",\"host_port\":\"@:{'words.replication.host'} @:{'words.generated.port'}\",\"next_steps\":\"Next steps\",\"primary_host\":\"@.capitalize:{'words.generated.primary'} @.lower:{'words.replication.host'}\",\"primary_port\":\"@.capitalize:{'words.generated.primary'} @:{'words.generated.port'}\",\"seed_command\":\"@:{'words.generated.manual'} @:{'words.generated.seed'} command (@:{'words.generated.fallback'})\",\"server_id\":\"@.capitalize:{'words.generated.server'} @.upper:{'words.generated.id'}\",\"service_name\":\"@.capitalize:{'words.generated.service'} @:{'words.generated.name'}\",\"steps\":{\"database_register_replica\":\"@.capitalize:{'words.generated.fill'} @.upper:{'words.generated.mariadb'}_@.upper:{'words.generated.primary'}_@.upper:{'words.generated.admin'}_@.upper:{'words.generated.password'} @:{'words.generated.in'} .@:{'words.generated.env'}, wait @:{'words.generated.for'} @:{'words.generated.the'} @:{'words.generated.seed'} @:{'words.generated.service'} @:{'words.generated.to'} @:{'words.generated.complete'}, @:{'words.generated.test'} @:{'words.generated.the'} @:{'words.generated.connection'}, then @:{'words.generated.save'} @:{'words.generated.and'} @:{'words.generated.provision'}.\",\"database_seed\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.generated'} @:{'words.generated.compose'} @:{'words.generated.seed'} @:{'words.generated.service'} imports @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.generated.database'} automatically.\",\"database_server_id\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.a'} @:{'words.generated.unique'} @:{'words.generated.server'} @.upper:{'words.generated.id'} @:{'words.generated.for'} each @:{'words.generated.mariadb'} @.lower:{'words.replication.host'}.\",\"deploy\":\"Deploy @:{'words.generated.this'} @:{'words.generated.configuration'} @:{'words.generated.as'} @:{'words.generated.a'} @.capitalize:{'words.generated.docker'} @.capitalize:{'words.generated.compose'} @:{'words.generated.or'} Coolify @.capitalize:{'words.generated.compose'} @:{'words.generated.service'}.\",\"minio_buckets\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.setup'} @:{'words.generated.service'} creates @:{'words.generated.the'} @:{'words.generated.configured'} @:{'words.generated.buckets'} @:{'words.generated.and'} enables versioning.\",\"minio_primary_credentials\":\"@:{'words.generated.keep'} @:{'words.generated.the'} @:{'words.generated.current'} @:{'words.replication.services.minio'} @:{'words.generated.primary'} @:{'words.generated.endpoint'} @:{'words.generated.and'} @:{'words.generated.credentials'} ready; @:{'words.generated.managed'} @:{'words.generated.bucket'} @:{'words.generated.replication'} @:{'words.generated.is'} @:{'words.generated.configured'} during @:{'words.generated.provisioning'}.\",\"redis_primary_password\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.the'} @:{'words.generated.current'} @:{'words.replication.services.redis'} @:{'words.generated.primary'} @:{'words.generated.password'} @:{'words.generated.as'} @.upper:{'words.replication.services.redis'}_@.upper:{'words.generated.primary'}_@.upper:{'words.generated.password'}.\"},\"test_before_save\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.connection'}\",\"test_failed\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.test'} @:{'words.generated.did'} @:{'words.generated.not'} @:{'words.generated.complete'} @:{'words.generated.successfully'}. Review @:{'words.generated.the'} @:{'words.generated.blockers'} below.\",\"test_ok\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.test'} @:{'words.generated.completed'} @:{'words.generated.successfully'}.\",\"title\":\"@:{'words.generated.generate'} @.capitalize:{'words.generated.docker'} @.capitalize:{'words.generated.compose'}\"},\"fields\":{\"admin_password\":\"@:{'words.generated.admin'} @:{'words.generated.password'}\",\"admin_username\":\"@:{'words.generated.admin'} @:{'words.generated.username'}\",\"allow_preseeded_replica\":\"@.capitalize:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.already'} @:{'words.generated.safely'} @:{'words.generated.seeded'}\",\"buckets\":\"@.capitalize:{'words.generated.buckets'}\",\"console_port\":\"Konsolenport\",\"replication_transfer_limit\":\"Transferlimit\",\"database_index\":\"@.capitalize:{'words.generated.database'} index\",\"port\":\"@.capitalize:{'words.generated.port'}\",\"replication_password\":\"@.capitalize:{'words.generated.replication'} @:{'words.generated.password'}\",\"replication_username\":\"@.capitalize:{'words.generated.replication'} @:{'words.generated.username'}\",\"scheme\":\"@.capitalize:{'words.generated.schema'}\",\"ssl_mode\":\"SSL @:{'words.generated.mode'}\",\"username\":\"@.capitalize:{'words.generated.username'}\"},\"labels\":{\"blockers\":\"@.capitalize:{'words.generated.blockers'}\",\"last_checked\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.checked'}\",\"replicas\":\"@.capitalize:{'words.generated.replicas'}\",\"replication\":\"@.capitalize:{'words.generated.replication'}\"},\"prompts\":{\"rename_host\":\"Enter a new host label\"},\"roles\":{\"inactive\":\"Inactive\",\"primary\":\"@.capitalize:{'words.generated.primary'}\",\"replica\":\"@.capitalize:{'words.generated.replica'}\"},\"states\":{\"coolify_deploying\":\"Coolify deployment is running.\",\"coolify_restarting\":\"Coolify restart is running.\",\"coolify_starting_provisioning\":\"Coolify service is reachable. Starting replication provisioning.\",\"coolify_waiting_for_endpoint\":\"Coolify deployment is running. Waiting for the service port before replication provisioning starts.\",\"deploy_timeout\":\"Coolify deployment is still running. Refresh status to continue.\",\"empty\":\"@.capitalize:{'words.generated.no'} hosts @:{'words.generated.registered'}.\",\"error\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.complete'} @:{'words.generated.replication'} @:{'words.generated.request'}.\",\"loading\":\"@:{'words.generated.loading'} @:{'words.generated.replication'} topology...\",\"provision_timeout\":\"@.capitalize:{'words.generated.provisioning'} @:{'words.generated.is'} still @:{'words.generated.running'}. @.capitalize:{'words.generated.refresh'} @:{'words.generated.status'} @:{'words.generated.to'} continue.\",\"syncing_in_background\":\"@:{'words.generated.synchronisierung'} @:{'words.generated.im'} Hintergrund.\",\"waiting_for_redis_primary_link\":\"Warten @:{'words.generated.auf'} @:{'words.generated.die'} @:{'words.generated.verbindung'} @:{'words.generated.zum'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.redis'}-@:{'words.replication.host'}.\"},\"status\":{\"degraded\":\"Degraded\",\"down\":\"Down\",\"not_configured\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.configured'}\",\"provisioning\":\"@.capitalize:{'words.generated.provisioning'}\",\"removed\":\"@.capitalize:{'words.generated.removed'}\"},\"subtitle\":\"@.capitalize:{'words.generated.managed'} @:{'words.generated.database'} @:{'words.generated.and'} @:{'words.replication.services.redis'} @:{'words.generated.replication'}\"},\"roles\":{\"permissions\":{\"access_scope\":\"Zugriffsbereich\",\"actions\":{\"clear_all\":\"Gruppe leeren\",\"reload\":\"Neu laden\",\"retry\":\"Erneut versuchen\",\"select_all\":\"Gruppe auswaehlen\"},\"columns\":{\"enabled\":\"Aktiviert\",\"permission\":\"Berechtigung\",\"route\":\"Route\",\"status\":\"Status\"},\"department_access_description\":\"Erlaubt Zugriff auf {name}.\",\"empty\":\"Es sind keine Berechtigungen verfuegbar.\",\"empty_group\":\"Diese Gruppe hat keine Berechtigungen.\",\"errors\":{\"load\":\"Rollenberechtigungen konnten nicht geladen werden.\",\"update\":\"Eine oder mehrere Berechtigungen konnten nicht aktualisiert werden. Die aktuellen Rollenberechtigungen wurden neu geladen.\"},\"filtered_summary\":\"{count} Treffer\",\"groups\":{\"access\":{\"description\":\"Seitentyp- und Abteilungszugriff.\",\"label\":\"Zugriff\"},\"bookings\":{\"description\":\"Berechtigungen fuer Buchungen, Zeitbuchungen und Planung.\",\"label\":\"Buchungen\"},\"customers_users\":{\"description\":\"Berechtigungen fuer Kunden, Benutzer, Mitarbeiter, Rollen und Anmeldung.\",\"label\":\"Kunden und Benutzer\"},\"departments_operations\":{\"description\":\"Abteilungsbetrieb, Spuren, Relais, Benachrichtigungen, Berichte und Ziele.\",\"label\":\"Abteilungen und Betrieb\"},\"invoicing_economic\":{\"description\":\"Berechtigungen fuer Rechnungen, Abrechnungsperioden, Inkasso und e-conomic.\",\"label\":\"Rechnungen und e-conomic\"},\"orders_pos\":{\"description\":\"Berechtigungen fuer Auftraege, POS, Zahlungen und Auftragszeilen.\",\"label\":\"Auftraege und POS\"},\"other\":{\"description\":\"Berechtigungen, die keiner anderen Gruppe entsprechen.\",\"label\":\"Sonstige\"},\"products_pricing\":{\"description\":\"Berechtigungen fuer Produkte, Preise, Rabatte und Waehrungen.\",\"label\":\"Produkte und Preise\"},\"selfserve_edge\":{\"description\":\"Berechtigungen fuer Self-Service, Waschen, Scanner, Gateways und Edge-Hardware.\",\"label\":\"Self-Service und Edge\"},\"system_config\":{\"description\":\"System, Konfiguration, Release, Replikation und Integrationen.\",\"label\":\"System und Konfiguration\"}},\"no_description\":\"Keine Beschreibung verfuegbar.\",\"no_search_results\":\"Keine Berechtigungen entsprechen der Suche.\",\"page_access\":{\"admin\":{\"description\":\"Erlaubt Zugriff auf Admin-Dashboardseiten.\",\"label\":\"Admin\"},\"superuser\":{\"description\":\"Erlaubt Zugriff auf Superuser-Dashboardseiten.\",\"label\":\"Superuser\"},\"user\":{\"description\":\"Erlaubt Zugriff auf Benutzer-Dashboardseiten.\",\"label\":\"Benutzer\"}},\"search_label\":\"Berechtigungen suchen\",\"search_placeholder\":\"Nach Label, Schluessel, Beschreibung, Route oder Methode suchen\",\"selected_summary\":\"{selected} von {total} ausgewaehlt\",\"status\":{\"disabled\":\"Deaktiviert\",\"enabled\":\"Aktiviert\"},\"subtitle\":\"Rollenberechtigungen\",\"title\":\"Berechtigungen fuer Rolle {id}\",\"title_with_name\":\"Berechtigungen fuer {name}\"},\"templates\":{\"apply\":\"{template}-Vorlage anwenden\",\"confirm_button\":\"Vorlage anwenden\",\"confirm_text\":\"{count} fehlende Berechtigungen aus {template} zu {role} hinzufuegen?\",\"confirm_title\":\"Berechtigungsvorlage anwenden?\",\"error_text\":\"Eine oder mehrere Berechtigungen aus {template} konnten {role} nicht hinzugefuegt werden. Die Rollenliste wurde neu geladen.\",\"error_title\":\"Vorlage konnte nicht angewendet werden\",\"load_error\":\"Vorlagen konnten nicht geladen werden. Erneut versuchen\",\"loading\":\"Vorlagen werden geladen...\",\"section\":\"Limited-Backoffice-Vorlagen\",\"success_text\":\"{count} Berechtigungen aus {template} zu {role} hinzugefuegt.\",\"success_title\":\"Vorlage angewendet\",\"unavailable\":\"Keine Vorlagen verfuegbar.\",\"up_to_date_text\":\"{role} hat bereits alle Berechtigungen in {template}.\",\"up_to_date_title\":\"Rolle ist aktuell\"},\"subtitle\":\"Benutzerrollen\"},\"self_wash\":{\"add_as_new_vehicle\":\"{plate} @:{'words.generated.als'} @:{'words.generated.neues'} @:{'words.generated.fahrzeug'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"answer_questions\":\"@:{'words.generated.fragen'} beantworten\",\"assistance\":\"@:{'templates.generated.compat.common.help'}\",\"available\":\"@.capitalize:{'words.generated.verfugbar'}\",\"configure_wash\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.konfigurieren'}\",\"confirm_and_start\":\"@.capitalize:{'words.generated.best'}?@:{'words.generated.tigen'} @:{'words.generated.und'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.starten'}\",\"department_no_self_wash_in_staffed_hours\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.abteilung'} bietet waehrend @:{'words.generated.der'} bemannten Oeffnungszeiten @:{'words.generated.keine'} Selbstwaesche @:{'words.generated.an'}.\",\"department_no_self_wash\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.abteilung'} @:{'words.generated.unterst'}?@:{'words.generated.tzt'} @:{'words.generated.keine'} @:{'words.generated.selbstw'}?@:{'words.generated.sche'}.\",\"enter_customer_number\":\"@:{'words.generated.kundennummer'} @:{'words.generated.eingeben'}\",\"enter_registration_number\":\"@:{'templates.generated.compat.pos.enter_plate'}\",\"finishing_wash_exit_opening\":\"Waesche @:{'words.generated.wird'} @:{'words.generated.beendet'}, @:{'words.generated.das'} @:{'words.generated.tor'} oeffnet @:{'words.generated.automatisch'}\",\"follow_steps\":\"@.capitalize:{'words.generated.folgen'} @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} 6 Schritten @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.das'} beste @:{'words.generated.ergebnis'}:\",\"loading_department\":\"@:{'words.generated.abteilung'} @:{'words.generated.wird'} @:{'words.generated.geladen'}...\",\"loading_types\":\"@.capitalize:{'words.generated.typen'} @:{'words.generated.werden'} @:{'words.generated.geladen'}...\",\"loading_vehicle_types\":\"@.capitalize:{'words.generated.verf'}?@:{'words.generated.gbare'} @:{'words.generated.fahrzeugtypen'} @:{'words.generated.werden'} @:{'words.generated.geladen'}...\",\"lane_unavailable\":\"Waschspur nicht verfugbar\",\"machine\":\"@:{'words.generated.maschine'}\",\"no_departments_found\":\"@:{'templates.generated.compat.departments.no_departments'}\",\"occupied\":\"Belegt\",\"open_property_access_gate\":\"Grundstueckszugangstor @:{'words.generated.oeffnen'}\",\"open_property_exit_gate\":\"Grundstuecksausgangstor @:{'words.generated.oeffnen'}\",\"perform_wash\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} durchf?@:{'words.generated.hren'}\",\"questions_answered\":\"@:{'words.generated.fragen'} @:{'words.generated.beantwortet'}\",\"select_from_vehicles\":\"@.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} {plate} @:{'words.generated.aus'} @:{'words.generated.ihren'} Fahrzeugen\",\"select_vehicle_type\":\"@:{'words.generated.fahrzeugtyp'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"select_vehicle\":\"@:{'words.generated.fahrzeug'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"select_your_vehicle\":\"@.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ihr'} @:{'words.generated.fahrzeug'}\",\"start_machine\":\"@:{'words.generated.maschine'} @:{'words.generated.starten'}\",\"start_wash_desc\":\"Gehen @.capitalize:{'words.generated.sie'} direkt @:{'words.generated.zu'} @:{'words.replication.article.host_mention'} Waschspuren @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.und'} starten @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.ihr'} @:{'words.generated.fahrzeug'}. @.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ihr'} @:{'words.generated.fahrzeug'} @:{'words.generated.und'} @:{'words.generated.die'} gew?nschte Waschart, @:{'words.generated.um'} @:{'words.generated.zu'} @:{'words.generated.beginnen'}.\",\"start_wash\":\"@:{'templates.generated.compat.guest.start_wash'}\",\"total_time\":\"Gesamtzeit: {minutes} Minuten @:{'words.generated.und'} {seconds} @:{'words.generated.sekunden'}\",\"unavailable\":\"@.capitalize:{'words.generated.nicht'} @:{'words.generated.verfugbar'}\",\"vehicle_step_missing_customer_number\":\"Geben Sie Ihre Kundennummer ein, um fortzufahren.\",\"vehicle_step_missing_department\":\"Warten Sie, bis die nachste Abteilung geladen ist, bevor Sie fortfahren.\",\"vehicle_step_missing_registration\":\"Geben Sie das Kennzeichen ein, um fortzufahren.\",\"vehicle_step_missing_vehicle_type\":\"Wahlen Sie einen verfugbaren Fahrzeugtyp, um fortzufahren.\",\"wash_completed_contact\":\"@.capitalize:{'words.generated.wir'} hoffen, @.capitalize:{'words.generated.sie'} @:{'words.generated.sind'} @:{'words.generated.mit'} @:{'words.generated.dem'} @:{'words.generated.ergebnis'} zufrieden. @.capitalize:{'words.generated.wenn'} @.capitalize:{'words.generated.sie'} @:{'words.generated.weitere'} @:{'words.generated.hilfe'} @:{'words.generated.ben'}?@:{'words.generated.tigen'}, @:{'words.generated.kontaktieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.bitte'} @:{'words.generated.unser'} Personal.\",\"wash_completed_message\":\"@.capitalize:{'words.generated.ihre'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.ist'} @:{'words.generated.jetzt'} @:{'words.generated.abgeschlossen'}! @:{'words.generated.danke'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.unsere'} Selbstbedienungsw?@:{'words.generated.sche'} genutzt @:{'words.generated.haben'}.\",\"wash_completed\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.abgeschlossen'}\",\"wash_in_progress\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.l'}?@:{'words.generated.uft'}\"},\"settings\":{\"appearance\":\"Darstellung\",\"billing\":\"@:{'words.generated.abrechnung'}\",\"change_password\":\"@:{'words.generated.passwort'} ?@:{'words.generated.ndern'}\",\"confirm_password\":\"@:{'words.generated.passwort'} @:{'words.generated.best'}?@:{'words.generated.tigen'}\",\"current_password\":\"Aktuelles @:{'words.generated.passwort'}\",\"date_format\":\"Datumsformat\",\"disable\":\"@.capitalize:{'words.generated.deaktivieren'}\",\"discard_changes\":\"?@:{'words.generated.nderungen'} verwerfen\",\"email_notifications\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.benachrichtigungen'}\",\"enable\":\"@.capitalize:{'words.generated.aktivieren'}\",\"general\":\"Allgemein\",\"integrations\":\"@:{'words.generated.integrationen'}\",\"new_password\":\"@.capitalize:{'words.generated.neues'} @:{'words.generated.passwort'}\",\"notifications\":\"@:{'templates.generated.compat.nav.notifications'}\",\"password_change\":{\"confirm_password\":\"@:{'templates.generated.compat.settings.confirm_password'}\",\"current_password\":\"@:{'templates.generated.compat.settings.current_password'}\"},\"push_notifications\":\"Push-@:{'words.generated.benachrichtigungen'}\",\"save_changes\":\"?@:{'words.generated.nderungen'} @:{'words.generated.speichern'}\",\"section\":{\"password\":\"@:{'templates.generated.compat.global.password'}\",\"password_desc\":\"Das Passwort wird zur Authentifizierung @:{'words.generated.der'} @:{'words.generated.api'}-Verbindung verwendet.\",\"subscription\":\"@:{'words.generated.abonnement'}\"},\"security\":\"@:{'words.generated.sicherheit'}\",\"sms_notifications_desc\":\"SMS-Benachrichtigungen @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.verschiedene'} Ereignisse erhalten.\",\"sms_notifications\":\"@:{'words.generated.sms'}-@:{'words.generated.benachrichtigungen'}\",\"subscription\":{\"expires_at\":\"@.upper:{'words.generated.l'}?@:{'words.generated.uft'} @:{'words.generated.ab'}\"},\"theme\":\"Thema\",\"time_format\":\"Zeitformat\",\"timezone\":\"Zeitzone\",\"two_factor\":\"@:{'words.generated.zwei'}-@:{'words.generated.faktor'}-@:{'words.generated.authentifizierung'}\"},\"statistics\":{\"average\":\"Durchschnitt\",\"avg_revenue_per_wash\":\"@:{'words.generated.durchschn'}. @:{'words.generated.umsatz'} @:{'words.generated.pro'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'}\",\"avg_wash_time\":\"@:{'words.generated.durchschn'}. Waschzeit\",\"chart\":{\"revenue_over_time\":\"@:{'words.generated.umsatz'} @:{'words.generated.im'} @:{'words.generated.zeitverlauf'}\",\"washes_over_time\":\"@.upper:{'words.generated.w'}?@:{'words.generated.schen'} @:{'words.generated.im'} @:{'words.generated.zeitverlauf'}\"},\"compare\":\"@:{'templates.generated.compat.global.compare'}\",\"customer_types\":\"Kundentypen\",\"day\":\"@:{'words.generated.dag'}\",\"days\":\"dage\",\"growth\":\"Wachstum\",\"no_data\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.daten'} @:{'words.generated.verf'}?@:{'words.generated.gbar'}\",\"overview\":{\"departments_today\":\"@.capitalize:{'words.generated.afdelinger'} i @:{'words.generated.dag'}\",\"departments_today_desc\":\"@.capitalize:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'}, @:{'words.generated.wie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.abteilungen'} @:{'words.generated.heute'} @:{'words.generated.performen'}\",\"no_departments\":\"Ingen @:{'words.generated.afdelinger'}\",\"subtitle\":\"@.capitalize:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'}, @:{'words.generated.wie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.abteilungen'} @:{'words.generated.performen'}\"},\"popular_products\":\"@:{'words.generated.populære'} @:{'words.generated.produkter'}\",\"popular_times\":\"@:{'words.generated.populære'} tider\",\"revenue\":\"Intäkter\",\"subtitle\":\"@:{'words.generated.se'} @:{'words.generated.statistikk'}\",\"sum\":\"@:{'words.generated.summe'}\",\"table\":\"@:{'words.generated.tabelle'}\",\"top_customers_by_revenue\":\"@:{'words.generated.top'}-@:{'words.generated.kunden'} @:{'words.generated.nach'} @:{'words.generated.umsatz'}\",\"top_customers_by_washes\":\"@:{'words.generated.top'}-@:{'words.generated.kunden'} @:{'words.generated.nach'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'}\",\"vehicle_types\":\"@:{'words.generated.fahrzeugtypen'}\",\"washes\":\"Tvättar\"},\"super_user_dashboard\":{\"create_department\":\"@:{'words.generated.abteilung'} @:{'words.generated.erstellen'}\",\"create_number_plate_scan\":\"@:{'words.generated.kennzeichenscan'} @:{'words.generated.erstellen'}\",\"create_order_booking\":\"@:{'words.generated.auftragsbuchung'} @:{'words.generated.erstellen'}\",\"create_order\":\"@:{'templates.generated.compat.tables.xlvask.create_order'}\",\"create_product\":\"@.capitalize:{'words.generated.produkt'} @:{'words.generated.erstellen'}\",\"get_department_list\":\"Abteilungsliste @:{'words.generated.abrufen'}\",\"get_orders\":\"@:{'words.generated.auftr'}?@:{'words.generated.ge'} @:{'words.generated.abrufen'}\",\"get_session_data\":\"Sitzungsdaten @:{'words.generated.abrufen'}\",\"get_user_list\":\"Benutzerliste @:{'words.generated.abrufen'}\",\"run_cron\":\"Cron @:{'words.generated.ausf'}?@:{'words.generated.hren'}\",\"title\":\"@:{'words.generated.superuser'}-@:{'words.generated.dashboard'}\"},\"superuser_dashboard\":{\"bookings\":{\"subtitle\":\"@:{'words.generated.buchungen'} @:{'words.generated.abteilungs'}?@:{'words.generated.bergreifend'} @:{'words.generated.verwalten'}\"},\"calendar\":{\"subtitle\":\"@:{'words.generated.kalender'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.alle'} @:{'words.generated.abteilungen'} @:{'words.generated.anzeigen'}\"},\"configuration\":{\"backups\":\"Säkerhetskopior\",\"economic\":\"@:{'templates.generated.compat.system_status.modules.economic'}\",\"fxrates\":\"Valutakurser\",\"limble\":\"@:{'templates.generated.compat.system_status.modules.limble'}\",\"mailersend\":\"@:{'words.generated.mailersend'}\",\"motor_api\":\"@:{'words.generated.motor'}-@:{'words.generated.api'}\",\"subtitle\":\"@:{'words.generated.systemkonfiguration'}\",\"virkdata\":\"@:{'words.generated.virk'} @.capitalize:{'words.generated.data'}\"},\"customers\":{\"edit_customer_title\":\"@.capitalize:{'words.generated.bearbeiten'} @:{'words.generated.kunde'}\",\"new_customer_subtitle\":\"@:{'templates.generated.compat.superuser.pages.customers.create'}\",\"new_customer_title\":\"Ny @:{'words.generated.kunde'}\",\"subtitle\":\"@:{'words.generated.kunden'} @:{'words.generated.abteilungs'}?@:{'words.generated.bergreifend'} @:{'words.generated.verwalten'}\"},\"departments\":{\"add\":\"@:{'words.generated.abteilung'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"delete\":\"@:{'templates.generated.compat.departments.delete_department'}\",\"edit\":\"@:{'words.generated.bearbeitena'} @:{'words.generated.avdelning'}\",\"new_department_subtitle\":\"@:{'templates.generated.compat.superuser.pages.departments.create'}\",\"subtitle\":\"@.capitalize:{'words.generated.verwalten'} avdelningar\"},\"employees\":{\"new_employee_subtitle\":\"@:{'templates.generated.compat.superuser.pages.employees.create'}\",\"subtitle\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.abteilungs'}?@:{'words.generated.bergreifend'} @:{'words.generated.verwalten'}\"},\"home\":{\"subtitle\":\"@:{'words.generated.willkommen'} @:{'words.generated.im'} Administrationsbereich\",\"title\":\"@:{'words.generated.admin'} Instrumentpanel\"},\"invoices\":{\"subtitle\":\"@:{'templates.generated.compat.invoices.subtitle'}\"},\"menu\":{\"calendar\":\"@:{'words.generated.kalender'}\",\"pos\":\"@:{'words.generated.pos'}\"},\"products\":{\"add\":\"@:{'templates.generated.compat.configuration.products.add'}\",\"addons_subtitle\":\"@:{'words.generated.produktzus'}?@:{'words.generated.tze'} @:{'words.generated.abteilungs'}?@:{'words.generated.bergreifend'} @:{'words.generated.verwalten'}\",\"addons\":{\"add\":\"@:{'words.generated.zusatz'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"delete\":\"@:{'words.generated.zusatz'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"edit\":\"@:{'words.generated.zusatz'} @:{'words.generated.bearbeiten'}\",\"subtitle\":\"@.capitalize:{'words.generated.verwalten'} produkttillval\"},\"delete\":\"@:{'words.generated.radera'} @:{'words.generated.produkt'}\",\"subtitle\":\"@.capitalize:{'words.generated.verwalten'} @:{'words.generated.produkter'}\"},\"roles\":{\"subtitle\":\"@.capitalize:{'words.generated.verwalten'} användarroller\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.verwalten'} systeminställningar\"},\"sidebar\":{\"billing_periods\":\"Faktureringsperioder\",\"xlvask\":\"@:{'words.generated.xl'} @:{'words.generated.vask'}\"},\"statistics\":{\"subtitle\":\"@:{'words.generated.se'} @:{'words.generated.statistik'}\"},\"users\":{\"add\":\"@:{'words.generated.benutzer'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"delete\":\"@:{'words.generated.radera'} @:{'words.generated.anvandare'}\",\"edit\":\"@:{'words.generated.bearbeitena'} @:{'words.generated.anvandare'}\",\"subtitle\":\"@.capitalize:{'words.generated.verwalten'} @:{'words.generated.anvandare'}\"},\"vehicles\":{\"subtitle\":\"@.capitalize:{'words.generated.verwalten'} @:{'words.generated.fordon'}\"},\"wash_log\":{\"subtitle\":\"@:{'words.generated.waschprotokoll'} @:{'words.generated.abteilungs'}?@:{'words.generated.bergreifend'} @:{'words.generated.anzeigen'}\"},\"department_pages\":{\"branding\":{\"subtitle\":\"Brand identity, contact details, and department profile\"},\"categories\":{\"subtitle\":\"Browse and maintain the department's category catalogue\"},\"gateways\":{\"subtitle\":\"Gateway coverage, lane bindings, scanners, and relay health\"},\"modules\":{\"subtitle\":\"Toggle department-wide module settings and integration flags\",\"variables\":{\"bookingsystem_enabled\":\"Bookingsystem enabled\",\"bookingsystem_time_based_enabled\":\"Time-based bookingsystem enabled\",\"bookingsystem_time_based_password\":\"Time-based bookingsystem password\",\"exclude_from_invoicing\":\"Excluded from invoicing\",\"workfeed_department_id\":\"Workfeed department\"}},\"pricing\":{\"subtitle\":\"Review the department's explicit price overrides\"},\"stripe\":{\"readers\":{\"subtitle\":\"Payment terminals currently associated with this department\"},\"setup\":{\"subtitle\":\"Assign the Stripe location used by this department\"}}}},\"superuser_invoice_distribution\":{\"actions\":{\"next_month\":\"@.capitalize:{'words.generated.zum'} @:{'words.generated.n'}?chsten @:{'words.generated.monat'}\",\"open_month\":\"@:{'words.generated.monat'} ?@:{'words.generated.ffnen'}\",\"previous_month\":\"@.capitalize:{'words.generated.zum'} vorherigen @:{'words.generated.monat'}\",\"reset_filters\":\"@.capitalize:{'words.generated.filter'} @:{'words.generated.zur'}?@:{'words.generated.cksetzen'}\"},\"aria\":{\"compare_table_caption\":\"Rechnungsvergleichsergebnisse @:{'words.generated.nach'} @:{'words.generated.abweichungen'} @:{'words.generated.und'} @:{'words.generated.warnungen'} @:{'words.generated.sortiert'}\",\"customer_table_caption\":\"Kundenbezogene Zuordnungszeilen @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.replication.article.host_mention'} @:{'words.generated.ausgew'}?@:{'words.generated.hlten'} @:{'words.generated.monat'}\",\"department_table_caption\":\"Abteilungsbezogene Aufteilung @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.replication.article.host_mention'} @:{'words.generated.ausgew'}?@:{'words.generated.hlten'} @:{'words.generated.monat'}\",\"month_comparison_caption\":\"Monatsvergleichstabelle @:{'words.generated.f'}?@:{'words.generated.r'} zentrale Kennzahlen\",\"month_table_caption\":\"@.capitalize:{'words.generated.monatliche'} @:{'words.generated.verteilungssummen'} @:{'words.generated.mit'} @:{'words.generated.quellenmix'} @:{'words.generated.und'} @.capitalize:{'words.generated.schnell'}?@:{'words.generated.ffnen'}-@:{'words.generated.aktionen'}\",\"open_month\":\"Verteilungsdetails @:{'words.generated.f'}?@:{'words.generated.r'} {month} ?@:{'words.generated.ffnen'}\",\"sort_month\":\"@:{'words.generated.tabelle'} @:{'words.generated.nach'} @:{'words.generated.monat'} @:{'words.generated.sortieren'}\",\"sort_total\":\"@:{'words.generated.tabelle'} @:{'words.generated.nach'} Gesamtbetrag @:{'words.generated.sortieren'}\",\"source_mix_row\":\"Quellenzusammensetzung @:{'words.generated.f'}?@:{'words.generated.r'} {month}\",\"trend_chart\":\"Verteilungstrenddiagramm @:{'words.generated.nach'} @:{'words.generated.monat'}\"},\"compare\":{\"compare_month\":\"@.capitalize:{'words.generated.mit'} @:{'words.generated.monat'} @:{'words.generated.vergleichen'}\",\"line_mode_disclaimer\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.zeilenmodus'} nutzt @:{'words.generated.verf'}?@:{'words.generated.gbare'} Vergleichsmetadaten @:{'words.generated.und'} Warnzeilen @:{'words.generated.aus'} @:{'words.generated.der'} @:{'words.generated.api'}-@:{'words.generated.antwort'}.\",\"mismatches\":\"@:{'words.generated.abweichungen'}\",\"mode\":\"Vergleichsmodus\",\"modes\":{\"invoice_total\":\"@.capitalize:{'words.generated.nur'} @:{'words.generated.rechnungssumme'}\",\"line_by_line\":\"Zeilenweise @:{'words.generated.zusammenfassung'}\"},\"month_to_month\":\"Monatsvergleich\",\"run\":\"@.capitalize:{'words.generated.alle'} lokalen @:{'words.generated.rechnungen'} @:{'words.generated.mit'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.vergleichen'}\",\"run_short\":\"@:{'words.generated.vergleich'} @:{'words.generated.starten'}\",\"sorted_hint\":\"@:{'words.generated.zeilen'} @:{'words.generated.werden'} @:{'words.generated.zuerst'} @:{'words.generated.nach'} @:{'words.generated.abweichungen'} @:{'words.generated.und'} Warnschwere @:{'words.generated.sortiert'}.\",\"status_label\":\"Vergleichsstatus\",\"status\":{\"mismatch\":\"Abweichung\",\"ok\":\"?bereinstimmung\"},\"total_checked\":\"Gepr?fte @:{'words.generated.rechnungen'}\",\"total_difference\":\"Gesamtdifferenz\",\"warning_details\":\"@:{'words.generated.warnungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.rechnung'} #{invoiceId}\"},\"departments\":{\"allocation_hint\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.gebuchte'} @:{'words.generated.zuordnung'} @:{'words.generated.wird'} anhand @:{'words.generated.des'} Verteilungsanteils @:{'words.generated.jeder'} @:{'words.generated.abteilung'} @:{'words.generated.gesch'}?@:{'words.generated.tzt'}.\"},\"empty\":{\"no_compare_results\":\"@.capitalize:{'words.generated.noch'} @:{'words.generated.keine'} Vergleichsergebnisse\",\"no_comparison_months\":\"@.capitalize:{'words.generated.kein'} @:{'words.generated.monat'} @:{'words.generated.verf'}?@:{'words.generated.gbar'}\",\"no_customers\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.kunden'} @:{'words.generated.entsprechen'} @:{'words.replication.article.host_mention'} @:{'words.generated.aktuellen'} @.capitalize:{'words.generated.filtern'}\",\"no_departments\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.abteilungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.diesen'} @:{'words.generated.monat'}\",\"no_month_comparison\":\"@.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.einen'} @:{'words.generated.vergleichsmonat'}, @:{'words.generated.um'} Differenzen @:{'words.generated.anzuzeigen'}.\",\"no_months\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.monate'} @:{'words.generated.zum'} @.capitalize:{'words.generated.anzeigen'}\"},\"errors\":{\"compare_failed\":\"@:{'words.generated.vergleich'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.abgeschlossen'} @:{'words.generated.werden'}\",\"month_load_failed\":\"@.capitalize:{'words.generated.ausgew'}?hlter @:{'words.generated.monat'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}\",\"overview_load_failed\":\"Monats?@:{'words.generated.bersicht'} @:{'words.generated.der'} @:{'words.generated.verteilung'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}\"},\"filters\":{\"all_departments\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.abteilungen'}\",\"all_sources\":\"@.capitalize:{'words.generated.alle'} Quellen\",\"all_years\":\"@.capitalize:{'words.generated.alle'} Jahre\",\"search\":\"@:{'words.generated.monat'} @:{'words.generated.suchen'}\",\"search_customer\":\"@.capitalize:{'words.generated.kunde'} @:{'words.generated.suchen'}\",\"search_customer_placeholder\":\"@:{'words.generated.kundenname'} @:{'words.generated.oder'} -@:{'words.generated.nummer'}...\",\"search_department\":\"@:{'words.generated.abteilung'} @:{'words.generated.suchen'}\",\"search_department_placeholder\":\"@:{'words.generated.abteilungsname'}...\",\"search_placeholder\":\"@:{'words.generated.monat'} @:{'words.generated.finden'}...\"},\"loading\":{\"loading_months\":\"@:{'words.generated.monate'} @:{'words.generated.werden'} @:{'words.generated.geladen'} ({loaded}/{total})\"},\"metrics\":{\"booked\":\"@.capitalize:{'words.generated.gebuchte'} @:{'words.generated.rechnungen'}\",\"distribution\":\"Abteilungsverteilung\",\"months\":\"@:{'words.generated.monate'} @:{'words.generated.in'} Ansicht\",\"other\":\"@:{'words.generated.sonstige'} @:{'words.generated.gebuchte'} Einnahmen\",\"subscriptions\":\"@:{'words.generated.fahrzeugabonnements'}\"},\"monthly_page\":{\"subtitle\":\"@.capitalize:{'words.generated.pr'}?@:{'words.generated.fen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.abteilungszuordnungen'}, Kundenaufteilung @:{'words.generated.und'} Rechnungsvergleiche.\",\"title\":\"@:{'words.generated.verteilung'} @:{'words.generated.f'}?@:{'words.generated.r'} {month}\",\"toolbar_month\":\"Monatsauswahl\",\"toolbar_month_picker\":\"@:{'words.generated.monat'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\"},\"overview\":{\"loaded_months\":\"{loaded} @:{'words.generated.monate'} @:{'words.generated.geladen'}\",\"subtitle\":\"@.capitalize:{'words.generated.monatliche'} ?@:{'words.generated.bersicht'} @:{'words.generated.der'} anteiligen Einkommensverteilung @:{'words.generated.nach'} @:{'words.generated.quelle'}.\",\"title\":\"@:{'templates.generated.compat.superuser_invoice_distribution.metrics.distribution'}\"},\"sections\":{\"month_table\":\"Monatssummen\",\"source_blend\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.source_mix'}\",\"top_months\":\"@:{'words.generated.top'}-@:{'words.generated.monate'} @:{'words.generated.nach'} Gesamtwert\",\"trend\":\"Monatstrend\"},\"table\":{\"booked\":\"@:{'templates.generated.compat.global.booked'}\",\"compared\":\"@:{'words.generated.vergleichsmonat'}\",\"current\":\"@:{'templates.generated.compat.objects.goals.columns.current'}\",\"delta\":\"Differenz\",\"distribution\":\"@:{'words.generated.verteilung'}\",\"economic_total\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.summe'}\",\"estimated_booked_allocation\":\"@.capitalize:{'words.generated.gesch'}?tzte @:{'words.generated.gebuchte'} @:{'words.generated.zuordnung'}\",\"fixed_pricing\":\"Festpreise\",\"internal_total\":\"Lokale @:{'words.generated.summe'}\",\"invoice_id\":\"@:{'words.generated.rechnungs'}-@.upper:{'words.generated.id'}\",\"metric\":\"Kennzahl\",\"share\":\"@:{'words.generated.anteil'}\",\"source_mix\":\"@:{'words.generated.quellenmix'}\"},\"tooltips\":{\"compare_mode\":\"@:{'words.generated.rechnungssumme'} vergleicht aggregierte @:{'words.generated.summen'}. @:{'words.generated.zeilenmodus'} liefert je @:{'words.generated.rechnung'} @:{'words.generated.eine'} @:{'words.generated.zusammenfassung'} @:{'words.generated.verf'}?gbarer Vergleichsdaten.\",\"estimated_booked\":\"@.capitalize:{'words.generated.gesch'}?tzter gebuchter @:{'words.generated.anteil'} basierend @:{'words.generated.auf'} @:{'words.generated.dem'} Verteilungsanteil @:{'words.generated.jeder'} @:{'words.generated.abteilung'}.\",\"fixed_pricing\":\"@:{'words.generated.betrag'} @:{'words.generated.aus'} @:{'words.generated.festpreisvereinbarungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.replication.article.host_mention'} @:{'words.generated.ausgew'}?@:{'words.generated.hlten'} @:{'words.generated.monat'}.\",\"subscriptions\":\"@:{'words.generated.betrag'} @:{'words.generated.aus'} @:{'words.generated.fahrzeugabonnements'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.replication.article.host_mention'} @:{'words.generated.ausgew'}?@:{'words.generated.hlten'} @:{'words.generated.monat'}.\",\"summary\":\"@.capitalize:{'words.generated.jeder'} @:{'words.generated.monat'} enth?@:{'words.generated.lt'} @:{'words.generated.gebuchte'} @:{'words.generated.summen'} @:{'words.generated.sowie'} @:{'words.generated.verteilungssummen'} @:{'words.generated.aus'} @:{'words.generated.festpreisen'} @:{'words.generated.und'} @:{'words.generated.abonnements'}.\"},\"warnings\":{\"legacy_compare_fallback\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.vergleich'} @:{'words.generated.l'}?@:{'words.generated.uft'} ?@:{'words.generated.ber'} @:{'words.replication.article.host_mention'} @:{'words.generated.legacy'}-Endpunkt, @:{'words.generated.da'} @:{'words.generated.der'} @:{'words.generated.v2'}-Bulkvergleich @:{'words.generated.nicht'} @:{'words.generated.verf'}?@:{'words.generated.gbar'} @:{'words.generated.war'}.\",\"legacy_distribution_fallback\":\"@.capitalize:{'words.generated.es'} @:{'words.generated.wurden'} {count} @:{'words.generated.monat'}(@:{'words.generated.e'}) ?@:{'words.generated.ber'} @:{'words.generated.legacy'}-@:{'words.generated.verteilungsendpunkte'} @:{'words.generated.geladen'}, @:{'words.generated.da'} @:{'words.generated.v2'} @:{'words.generated.nicht'} @:{'words.generated.verf'}?@:{'words.generated.gbar'} @:{'words.generated.war'}.\",\"legacy_distribution_month\":\"@.capitalize:{'words.generated.die'} Monatsdaten @:{'words.generated.verwenden'} @:{'words.generated.legacy'}-@:{'words.generated.verteilungsendpunkte'}, @:{'words.generated.da'} @:{'words.generated.v2'} @:{'words.generated.nicht'} @:{'words.generated.verf'}?@:{'words.generated.gbar'} @:{'words.generated.war'}.\"}},\"superuser\":{\"collected_order_invoice\":{\"and_booked\":\"@:{'templates.generated.compat.collected_invoice.stripe.and_booked'}\",\"and_draft\":\"@:{'templates.generated.compat.collected_invoice.stripe.and_saved_draft'}\",\"but_not_booked\":\"@:{'templates.generated.compat.collected_invoice.stripe.but_not_booked'}\",\"in_economic\":\"@:{'templates.generated.compat.collected_invoice.stripe.in_economic'}\",\"invoice_booked_economic\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.rechnung'} @:{'words.generated.ist'} @:{'words.generated.in'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.gebucht'}, @:{'words.generated.es'} @:{'words.generated.sind'} @:{'words.generated.keine'} @:{'words.generated.weiteren'} @:{'words.generated.aktionen'} @:{'words.generated.erforderlich'}.\",\"invoice_draft_economic\":\"@:{'templates.generated.compat.collected_invoice.economic.saved_as_draft_desc'}\",\"invoice_paid_status\":\"@:{'templates.generated.compat.collected_invoice.stripe.invoice_paid'}\",\"no_invoice_found\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.rechnung'} @:{'words.generated.mit'} @:{'words.generated.der'} angegebenen @.upper:{'words.generated.id'} @:{'words.generated.gefunden'}\",\"payment_overview\":\"@:{'templates.generated.compat.collected_invoice.stripe.payment_overview'}\"},\"department_lane\":{\"force_disable_machine\":\"@:{'words.generated.maschine'} @:{'words.generated.zwangsweise'} @:{'words.generated.deaktivieren'}\",\"force_disable_success\":\"@:{'words.generated.maschine'} @:{'words.generated.wurde'} @:{'words.generated.zwangsweise'} @:{'words.generated.deaktiviert'}\",\"force_enable_machine\":\"@:{'words.generated.maschine'} @:{'words.generated.zwangsweise'} @:{'words.generated.aktivieren'}\",\"force_enable_success\":\"@:{'words.generated.maschine'} @:{'words.generated.wurde'} @:{'words.generated.zwangsweise'} @:{'words.generated.aktiviert'}\",\"force_error\":\"@:{'words.generated.fehler'} @:{'words.generated.bei'} @:{'words.generated.der'} Zwangsaktion\"},\"invoicing_billing_period\":{\"dashboard_right\":\"@:{'words.generated.dashboard'}-Rechtsanzeige\",\"fetch_period_data\":\"Periodendaten @:{'words.generated.abrufen'}\"},\"nav\":{\"categories\":\"@:{'words.generated.kategorien'}\",\"complaints\":\"Beschwerden\",\"department_gates\":\"@:{'words.generated.abteilungstore'}\",\"department_lanes\":\"@:{'words.generated.abteilungsspuren'}\",\"department_relays\":\"@:{'words.generated.abteilungsrelais'}\",\"invoicing\":\"@:{'words.generated.rechnungsstellung'}\",\"orders\":\"Transaktionsverlauf\",\"roles\":\"@:{'words.generated.rollen'} @:{'words.generated.und'} @:{'words.generated.berechtigungen'}\",\"scanners\":\"@:{'words.generated.kennzeichenscanner'}\",\"xlvask\":\"@:{'words.generated.xlvask'}\",\"error_reports\":\"Error reports\"},\"pages\":{\"categories\":{\"create\":\"@:{'templates.generated.compat.common.create'}\"},\"complaints\":{\"created_by_column\":\"@:{'words.generated.created'} @:{'words.generated.by'}\",\"delete_message\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.complaint'} @:{'words.generated.will'} @:{'words.generated.be'} permanently @:{'words.generated.removed'}.\",\"delete_title\":\"Delete @:{'words.generated.complaint'}?\",\"edit_title\":\"Edit @:{'words.generated.complaint'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.complaints'}\",\"single\":\"@.capitalize:{'words.generated.complaint'}\",\"subtitle\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.and'} manage @:{'words.generated.customer'} @:{'words.generated.complaints'} across @:{'words.generated.departments'}.\",\"title\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.complaints'}\"},\"customers\":{\"create\":\"@.capitalize:{'words.generated.neuen'} @:{'words.generated.kunden'} @:{'words.generated.erstellen'}\",\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.liste'} @:{'words.generated.aller'} @:{'words.generated.kunden'} @:{'words.generated.im'} @.capitalize:{'words.generated.system'}\"},\"department_gates\":{\"create\":\"@.capitalize:{'words.generated.neues'} @:{'words.generated.abteilungstor'} @:{'words.generated.erstellen'}\",\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.liste'} @:{'words.generated.aller'} @:{'words.generated.abteilungstore'} @:{'words.generated.im'} @.capitalize:{'words.generated.system'}\"},\"department_lanes\":{\"create\":\"@.capitalize:{'words.generated.neue'} Abteilungsspur @:{'words.generated.erstellen'}\",\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.liste'} @:{'words.generated.aller'} @:{'words.generated.abteilungsspuren'} @:{'words.generated.im'} @.capitalize:{'words.generated.system'}\"},\"department_relays\":{\"create\":\"@.capitalize:{'words.generated.neues'} @:{'words.generated.abteilungsrelais'} @:{'words.generated.erstellen'}\",\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.liste'} @:{'words.generated.aller'} @:{'words.generated.abteilungsrelais'} @:{'words.generated.im'} @.capitalize:{'words.generated.system'}\"},\"department_selector\":{\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.k'}?@:{'words.generated.nnen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.abteilung'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\"},\"departments\":{\"create\":\"@.capitalize:{'words.generated.neue'} @:{'words.generated.abteilung'} @:{'words.generated.erstellen'}\",\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.liste'} @:{'words.generated.aller'} @:{'words.generated.abteilungen'} @:{'words.generated.im'} @.capitalize:{'words.generated.system'}\"},\"drivers\":{\"subtitle\":\"@:{'templates.generated.compat.objects.subuser_grants.subtitle'}\"},\"employees\":{\"create\":\"@.capitalize:{'words.generated.neuen'} @:{'words.generated.mitarbeiter'} @:{'words.generated.erstellen'}\",\"migrate_to_limited_backoffice\":\"Zu eingeschränktem Backoffice migrieren\",\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.liste'} @:{'words.generated.aller'} @:{'words.generated.mitarbeiter'} @:{'words.generated.im'} @.capitalize:{'words.generated.system'}\"},\"orders\":{\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.liste'} @:{'words.generated.aller'} @:{'words.generated.transaktionen'}\"},\"products\":{\"create\":\"@.capitalize:{'words.generated.neues'} @.capitalize:{'words.generated.produkt'} @:{'words.generated.erstellen'}\",\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.liste'} @:{'words.generated.aller'} @:{'words.generated.produkte'} @:{'words.generated.im'} @.capitalize:{'words.generated.system'}\"},\"scanners\":{\"create\":\"@.capitalize:{'words.generated.neuen'} @:{'words.generated.kennzeichenscanner'} @:{'words.generated.erstellen'}\",\"simulate_scan\":\"@:{'words.generated.scan'} simulieren\",\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.liste'} @:{'words.generated.aller'} @:{'words.generated.kennzeichenscanner'} @:{'words.generated.im'} @.capitalize:{'words.generated.system'}\"},\"subusers\":{\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.liste'} @:{'words.generated.aller'} @:{'words.generated.unterbenutzer'} @:{'words.generated.im'} @.capitalize:{'words.generated.system'}\",\"title\":\"@:{'templates.generated.compat.global_search.entity_types.subusers'}\"}},\"statistics\":{\"error_occurred\":\"@.capitalize:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.ist'} @:{'words.generated.aufgetreten'}\"},\"user_detail\":{\"overview_header_help\":\"Verwenden Sie die Arbeitsbereich-Verknüpfungen und direkten Aktionen unten, um dieses Kundenkonto zu verwalten.\",\"workspace_shortcuts_help\":\"Direkt zu den kundenspezifischen Arbeitsbereichen dieses Kontos wechseln.\",\"attribute_help\":\"Bewegen Sie den Mauszeiger über ein Attribut, um zu sehen, was es für den Kunden ändert.\",\"subtitles\":{\"overview\":\"Kundenübersicht und Verwaltungsbereich\",\"orders\":\"Rechnungsverarbeitung, offene Entwürfe und Bestellhistorie\",\"pricing\":\"Kundenspezifische Rabatte und feste Produktpreise\",\"other\":\"Sondervereinbarungen und interne Kundennotizen\",\"security\":\"Berechtigungen und Zugriff auf Kundenregeln\",\"vehicles\":\"Fahrzeuge, Abonnements und Massenregistrierung\",\"xlvask\":\"XLVask-Kontodetails und importierte Fahrzeuge\",\"subusers\":\"Drivers and customer access grants\"},\"orders\":{\"summary_title\":\"Überblick zur Bestellabrechnung\",\"summary_subtitle\":\"Prüfen Sie, wie dieser Kunde abgerechnet wird, bevor die vollständige Bestellliste geöffnet wird.\",\"invoicing_mode\":\"Abrechnungsart\",\"open_draft\":\"Rechnungsentwurf öffnen\"},\"pricing\":{\"summary_title\":\"Preisüberblick\",\"summary_subtitle\":\"Prüfen Sie die kundenweite Rabattregelung und produktspezifische Ausnahmen.\",\"table_title\":\"Produktspezifische Preise\",\"table_subtitle\":\"Passen Sie feste Preise und Rabattregeln für jedes verfügbare Produkt an.\",\"global_discount\":\"Globaler Rabatt\",\"product_overrides\":\"Produktausnahmen\",\"discount_percent\":\"Rabattprozent\",\"fixed_price_label\":\"Fester Preis\",\"fixed_price_validation\":\"Bitte geben Sie eine gültige nicht-negative Ganzzahl ein.\",\"category_discount_disabled\":\"Kategorierabatt deaktiviert\",\"fixed_price_tooltip\":\"Den festen Preis für dieses Produkt bearbeiten.\",\"item_discount_tooltip\":\"Den kundenspezifischen Rabatt für dieses Produkt bearbeiten.\",\"category_discount_tooltip\":\"Den Kategorierabatt für dieses Produkt bearbeiten.\"},\"other\":{\"summary_title\":\"Sondervereinbarungen\",\"summary_subtitle\":\"Kontospezifische Notizen und Abrechnungsdetails speichern, die den täglichen Betrieb beeinflussen.\"},\"security\":{\"active_rules\":\"Aktive Regeln\",\"current_role\":\"Aktuelle Rolle\",\"customer_rules_subtitle\":\"Kundenspezifische Regeln für Buchungen, Abrechnung und Produktverfügbarkeit umschalten.\",\"direct_role_tab\":\"Rolle zuweisen\",\"editable\":\"Bearbeitbar\",\"limited_employee_departments_label\":\"Abteilungen\",\"limited_employee_load_failed\":\"Limited-Backoffice-Optionen konnten nicht geladen werden.\",\"limited_employee_migrate_failed\":\"Mitarbeiter konnte nicht migriert werden.\",\"limited_employee_migrated\":\"Mitarbeiter wurde zum Limited Backoffice migriert.\",\"limited_employee_role_label\":\"Rolle\",\"limited_employee_subtitle\":\"Wählen Sie eine Limited-Backoffice-Rolle und die Abteilungen, auf die dieser Mitarbeiter zugreifen kann.\",\"limited_employee_tab\":\"Limited-Backoffice-Mitarbeiter\",\"limited_employee_unavailable\":\"Nur Mitarbeiterkonten ohne Kundennummer können zum Limited Backoffice migriert werden.\",\"limited_employee_validation\":\"Wählen Sie eine Rolle und mindestens eine Abteilung.\",\"managed_employee\":\"Limited Backoffice\",\"manage_rules\":\"Regeln verwalten\",\"migrate_employee\":\"Mitarbeiter migrieren\",\"no_role\":\"Diesem Benutzer ist derzeit keine Rolle zugewiesen.\",\"permission_editor_notice\":\"Berechtigungsänderungen aktualisieren die zugewiesene Rolle und betreffen alle Benutzer mit dieser Rolle.\",\"permission_toggle_unavailable\":\"Sie haben keine Berechtigung, diese Rollenberechtigung zu ändern.\",\"permissions_unavailable\":\"Sie haben keine Berechtigung, Rollenberechtigungen zu laden.\",\"readonly\":\"Schreibgeschützt\",\"role_assignment_subtitle\":\"Ändern Sie, welche Rolle die effektiven Berechtigungen dieses Benutzers liefert.\",\"role_assignment_title\":\"Rollenzuweisung\",\"role_edit_unavailable\":\"Sie haben keine Berechtigung, die Rolle dieses Benutzers zu bearbeiten.\",\"role_fetch_unavailable\":\"Sie haben keine Berechtigung, Rollenoptionen zu laden.\",\"role_locked\":\"Gesperrt\",\"role_locked_limited_backoffice\":\"Durch Limited Backoffice verwaltete Benutzer können hier keine andere Rolle erhalten.\",\"role_permissions_subtitle\":\"Berechtigungen der zugewiesenen Rolle prüfen und aktualisieren.\",\"role_permissions_title\":\"Berechtigungen der zugewiesenen Rolle\",\"role_save_failed\":\"Die Benutzerrolle konnte nicht aktualisiert werden.\",\"role_saved\":\"Rolle aktualisiert.\",\"role_select_label\":\"Zugewiesene Rolle\",\"review_permissions\":\"Berechtigungen prüfen\",\"save_role\":\"Rolle speichern\",\"standard_user\":\"Standardbenutzer\",\"switch_role\":\"Rolle wechseln\"},\"vehicles\":{\"summary_title\":\"Fahrzeugbereich\",\"summary_subtitle\":\"Fahrzeuge, Abonnements und Importabläufe des Kunden prüfen.\",\"subscription_invoicing_subtitle\":\"Aktive Waschabonnements verwalten und Rechnungsentwürfe für andere Zeiträume erstellen.\",\"table_title\":\"Registrierte Fahrzeuge\",\"table_subtitle\":\"Kennzeichen und Waschabonnements für diesen Kunden verwalten.\",\"total\":\"Fahrzeuge gesamt\",\"wash_subscription\":\"Waschabonnements\",\"self_service\":\"Self-Service-Fahrzeuge\",\"add_vehicle\":\"Fahrzeug hinzufügen\",\"no_customer\":\"Dieser Benutzer hat keine Kundennummer, daher können hier keine Fahrzeuge verwaltet werden.\",\"summary_load_failed\":\"Die Fahrzeugübersicht konnte nicht geladen werden.\"},\"overview\":{\"customer_actions_title\":\"Kundenaktionen\",\"customer_actions_subtitle\":\"Kundenspezifische Aktionen ausführen, ohne die Übersicht zu verlassen.\",\"customer_shortcuts_title\":\"Kundenverknüpfungen\",\"customer_shortcuts_subtitle\":\"Von der Übersicht zu den häufigsten Kundenarbeitsbereichen wechseln.\",\"customer_flags_title\":\"Kundenflags\",\"customer_flags_subtitle\":\"Abrechnungsperioden-Flags für diesen Kunden erstellen, wenn Nachverfolgung nötig ist.\",\"fixed_pricing_title\":\"Fester Preis\",\"fixed_pricing_subtitle\":\"Die feste Preisvereinbarung des Kunden verwalten.\",\"default_department_title\":\"Standardabteilung\",\"default_department_subtitle\":\"Wählen Sie, welche Abteilung für diesen Kunden vorausgewählt werden soll.\",\"open_orders\":\"Aufträge öffnen\",\"open_pricing\":\"Preise öffnen\",\"open_security\":\"Sicherheit öffnen\",\"open_subscriptions\":\"Abonnements öffnen\",\"special_arrangement_title\":\"Sondervereinbarung\",\"special_arrangement_subtitle\":\"Betriebsnotizen zur Sondervereinbarung des Kunden speichern.\",\"view_account\":\"Konto anzeigen\",\"view_economic\":\"e-conomic anzeigen\",\"wash_subscription_note_title\":\"Notiz zum Waschabonnement\",\"wash_subscription_note_subtitle\":\"Die interne Notiz speichern, die für die Abrechnung von Waschabonnements verwendet wird.\"},\"xlvask\":{\"summary_title\":\"XLVask-Kundenprofil\",\"summary_subtitle\":\"Den verknüpften XLVask-Kundendatensatz vor dem Import von Fahrzeugen prüfen.\",\"vehicles_title\":\"XLVask-Fahrzeuge\",\"vehicles_subtitle\":\"In XLVask verfügbare Fahrzeuge für diesen verknüpften Kunden.\",\"not_found\":\"Mit diesem Konto ist noch kein XLVask-Kundendatensatz verknüpft.\",\"customer_id\":\"XLVask ID\"},\"subusers\":{\"active\":\"Active\",\"disabled\":\"Disabled\",\"invite\":\"Invite driver\",\"pending_setup\":\"Pending setup\",\"summary_load_failed\":\"Could not load driver summary.\",\"summary_subtitle\":\"Review driver access before changing grants, permissions, or invitations.\",\"summary_title\":\"Driver access overview\",\"table_subtitle\":\"Manage the drivers that are linked to this customer's account.\",\"table_title\":\"Drivers\",\"total\":\"Total drivers\"}},\"user\":{\"fixed_pricing\":{\"not_implemented_desc\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.k'}?@:{'words.generated.nnen'} @:{'words.generated.jetzt'} @:{'words.generated.festpreisvereinbarungen'} @:{'words.generated.erstellen'}, @:{'words.generated.diese'} @:{'words.generated.werden'} @:{'words.generated.jedoch'} @:{'words.generated.noch'} @:{'words.generated.nicht'} @:{'words.generated.im'} @.capitalize:{'words.generated.system'} angewendet.\",\"not_implemented_title\":\"@.capitalize:{'words.generated.diese'} @:{'words.generated.funktion'} @:{'words.generated.ist'} @:{'words.generated.in'} @:{'words.generated.der'} @:{'words.generated.abrechnung'} @:{'words.generated.noch'} @:{'words.generated.nicht'} implementiert\"},\"special_arrangement\":{\"label\":\"@:{'words.generated.sondervereinbarung'}, intern. (@:{'words.generated.hinweis'})\",\"save\":\"@:{'words.generated.sondervereinbarung'} @:{'words.generated.speichern'}\",\"title\":\"@:{'templates.generated.compat.pagination.special_agreement'}\"},\"vehicles\":{\"placeholder_active_subscriptions\":\"@:{'templates.generated.compat.user_vehicles.subscriptions_placeholder'}\",\"placeholder_self_service\":\"@:{'templates.generated.compat.user_vehicles.self_service_placeholder'}\",\"placeholder_vehicle_count\":\"@:{'templates.generated.compat.user_vehicles.vehicle_count_placeholder'}\"},\"wash_subscription\":{\"save\":\"@:{'words.generated.waschabonnement'} @:{'words.generated.speichern'}\"}},\"vehicle\":{\"xlvask_usage_log\":{\"create_order_all\":\"@:{'templates.generated.compat.tables.xlvask.create_order_all'}\"}},\"xlvask\":{\"fetch_customers\":\"@:{'templates.generated.compat.xlvask.admin.fetch_customers'}\",\"fetch_objects\":\"@:{'templates.generated.compat.xlvask.admin.fetch_objects'}\",\"objects\":\"@:{'templates.generated.compat.xlvask.admin.objects'}\"},\"driver_access\":{\"advanced\":\"Advanced\",\"capabilities\":{\"add_bookings\":\"Create bookings\",\"add_vehicles\":\"Add vehicles\",\"delete_bookings\":\"Delete bookings\",\"delete_selfserve\":\"Delete self-service\",\"delete_vehicles\":\"Delete vehicles\",\"disable_driver_access\":\"Disable driver access\",\"edit_bookings\":\"Edit bookings\",\"edit_driver_access\":\"Edit driver access\",\"edit_orders\":\"Edit orders\",\"edit_selfserve\":\"Edit self-service\",\"edit_vehicles\":\"Edit vehicles\",\"invite_drivers\":\"Invite drivers\",\"start_selfserve\":\"Start self-service\",\"view_bookings\":\"View bookings\",\"view_drivers\":\"View drivers\",\"view_orders\":\"View orders\",\"view_selfserve\":\"View self-service\",\"view_vehicles\":\"View vehicles\"},\"custom_description\":\"Choose individual access areas for this driver.\",\"editor_intro\":\"Choose a grouped access profile. Superusers can use custom access for exceptions.\",\"editor_title\":\"Access profile for {name}\",\"empty\":\"No access profiles were found.\",\"groups\":{\"bookings\":\"Bookings\",\"driver_management\":\"Driver management\",\"orders\":\"Orders\",\"selfserve\":\"Self-service\",\"vehicles\":\"Vehicles\"},\"loading\":\"Loading access profiles...\",\"selected\":\"Selected\",\"templates\":{\"booking_coordinator\":{\"description\":\"Can coordinate bookings and see the related vehicles and orders.\",\"label\":\"Booking coordinator\"},\"custom\":{\"description\":\"Choose individual access areas.\",\"label\":\"Custom\"},\"deactivated\":{\"description\":\"Keeps the driver linked to the customer without active access.\",\"label\":\"Deactivated\"},\"driver\":{\"description\":\"Can use self-service, manage own bookings, see vehicles, and view orders.\",\"label\":\"Driver\"},\"fleet_admin\":{\"description\":\"Can manage drivers, vehicles, bookings, self-service, and orders for the customer.\",\"label\":\"Fleet admin\"}},\"form_label\":\"Access profile\",\"form_help\":\"Choose a grouped access profile. It can be changed later.\",\"summary\":{\"no_permissions\":\"No permissions\",\"permission_count\":\"{count} permissions\",\"custom_summary\":\"Custom: {summary}\"}},\"driver_contact\":{\"close\":\"Close\",\"email_missing\":\"E-mail missing\",\"link_not_sent_default\":\"The link could not be sent.\",\"link_not_sent_title\":\"Link could not be sent\",\"link_send_failed\":\"The link could not be sent.\",\"link_sent_default\":\"The link was sent.\",\"link_sent_title\":\"Link sent\",\"login_link_failed_title\":\"Login link could not be sent\",\"login_link_not_sent_title\":\"Login link could not be sent\",\"login_link_sent_title\":\"Login link sent\",\"missing\":\"Missing\",\"password_guide_failed_title\":\"Guide could not be sent\",\"password_guide_not_sent_title\":\"Guide could not be sent\",\"password_guide_sent_title\":\"Guide sent\",\"phone_missing\":\"Phone missing\",\"send_login_link\":\"Send pre-authorized login link\",\"send_password_guide\":\"Send new password guide\",\"status\":\"Status\",\"unverified\":\"Not verified\",\"verification_update_failed\":\"Verification status could not be updated.\",\"verification_update_failed_title\":\"Status could not be updated\",\"verified\":\"Verified\"},\"driver_wheel\":{\"access_section\":\"Access\",\"account_section\":\"Account\",\"contact_section\":\"Contact\",\"details_section\":\"Details\",\"identity_subsection\":\"Identity\",\"system_subsection\":\"System\"}},\"system_status\":{\"actions\":{\"open_config\":\"@:{'words.generated.open'} @:{'words.generated.configuration'}\",\"open_replication\":\"@:{'words.generated.open'} @:{'words.generated.replication'}\"},\"cards\":{\"cpu\":\"@:{'words.generated.cpu'}\",\"database\":\"@.capitalize:{'words.replication.services.database'}\",\"memory\":\"@:{'words.generated.memory'}\"},\"devices\":{\"desktop\":\"Desktop\",\"mobile\":\"Mobile\",\"tablet\":\"@:{'words.generated.tablet'}\"},\"gateways\":{\"actions\":{\"open_fleet\":\"Flotte @:{'words.generated.offnen'}\",\"open_gateway\":\"@:{'words.generated.gateway'} @:{'words.generated.offnen'}\"},\"description\":\"Schreibgeschützter Flottenstatus @:{'words.generated.fur'} @:{'words.generated.installierte'} @:{'words.generated.edge'}-@:{'words.generated.gateways'}.\",\"discovery_status\":{\"ready\":\"@:{'words.generated.bereit'}\",\"stale\":\"@.capitalize:{'words.generated.veraltet'}\"},\"empty\":\"@.capitalize:{'words.generated.es'} @:{'words.generated.sind'} @:{'words.generated.keine'} @:{'words.generated.edge'}-@:{'words.generated.gateways'} @:{'words.generated.registriert'}.\",\"error\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.gateway'}-@.capitalize:{'words.generated.status'} @:{'words.generated.konnte'} @:{'words.generated.derzeit'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}.\",\"labels\":{\"active_operation\":\"@:{'words.generated.aktive'} Operation\",\"last_heartbeat\":\"@:{'words.generated.letzter'} Heartbeat\"},\"loading\":\"@:{'words.generated.gateway'}-@.capitalize:{'words.generated.status'} @:{'words.generated.wird'} @:{'words.generated.geladen'}...\",\"status\":{\"degraded\":\"@.capitalize:{'words.generated.benotigt'} Aufmerksamkeit\",\"online\":\"@.capitalize:{'words.generated.online'}\"},\"summary\":{\"total\":\"@:{'words.generated.gateways'}\"}},\"labels\":{\"activity_window\":\"@.capitalize:{'words.generated.active'} within @:{'words.generated.the'} @:{'words.generated.last'} {minutes} @:{'words.generated.minutes'}\",\"buckets_available\":\"{available} @:{'words.generated.of'} {total} @:{'words.generated.buckets'} @:{'words.generated.available'}\",\"checked_at\":\"@.capitalize:{'words.generated.checked'} @:{'words.generated.at'}\",\"configured\":\"@.capitalize:{'words.generated.configured'}\",\"enabled\":\"@.capitalize:{'words.generated.enabled'}\",\"latency\":\"Latency\",\"no_reason\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.additional'} @:{'words.generated.details'}\",\"replication_percent\":\"{percent}% @:{'words.generated.replication'} ({status})\",\"runtime_source\":\"@.capitalize:{'words.generated.runtime'} @:{'words.generated.source'}\",\"server_version\":\"@.capitalize:{'words.generated.server'} @:{'words.generated.version'}\",\"warnings\":\"Warnings\"},\"modules\":{\"backups\":\"@:{'words.generated.backups'}\",\"economic\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"entra\":\"@:{'words.generated.microsoft'} Entra\",\"fxratesapi\":\"@:{'words.generated.fxratesapi'}\",\"licenseplaterecognizer\":\"License Plate Recognizer\",\"limble\":\"@:{'words.generated.limble'}\",\"motorapi\":\"@:{'words.generated.motorapi'}\",\"ocrspace\":\"OCR.@:{'words.generated.space'}\",\"openai\":\"@:{'words.generated.openai'}\",\"selfserve\":\"@:{'words.generated.self'}-@:{'words.generated.serve'}\",\"shelly\":\"@:{'words.generated.shelly'}\",\"stripe\":\"@:{'words.generated.stripe'}\",\"virkdata\":\"@:{'words.generated.virkdata_virkdata'}\",\"workfeed\":\"@:{'words.generated.workfeed'}\"},\"reasons\":{\"backup_connectivity_confirmed\":\"@:{'words.generated.backup'} @:{'words.generated.store'} @:{'words.generated.connectivity'} @:{'words.generated.confirmed'}.\",\"backup_encryption_key_missing\":\"Backup encryption is not ready: {error}.\",\"backup_latest_verified_stale\":\"Latest verified backup is stale.\",\"backup_no_verified_backup\":\"No verified backup is available for restore.\",\"backup_probe_failed\":\"@:{'words.generated.backup'} @:{'words.generated.probe'} @:{'words.generated.failed'}: {error}.\",\"economic_credentials_missing\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.credentials'} @:{'words.generated.are'} @:{'words.generated.missing'} @:{'words.generated.from'} @:{'words.generated.runtime'} environment @:{'words.generated.configuration'}.\",\"email_delivery_not_implemented\":\"@:{'words.generated.mailersend_mailersend'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.enabled'} @:{'words.generated.because'} default @:{'words.generated.smtp'} delivery @:{'words.generated.is'} @:{'words.generated.not'} implemented.\",\"http_curl_init_failed\":\"{label} @:{'words.generated.probe'} @:{'words.generated.could'} @:{'words.generated.not'} initialize cURL.\",\"http_endpoint_missing\":\"{label} @:{'words.generated.probe'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.run'} @:{'words.generated.because'} @:{'words.generated.the'} @:{'words.generated.endpoint'} @:{'words.generated.is'} @:{'words.generated.missing'}.\",\"http_no_response\":\"{label} @:{'words.generated.did'} @:{'words.generated.not'} @:{'words.generated.return'} @:{'words.generated.an'} @:{'words.generated.http'} @:{'words.generated.response'}.\",\"http_ok\":\"{label} @:{'words.generated.connectivity'} @:{'words.generated.confirmed'}.\",\"http_probe_failed\":\"{label} @:{'words.generated.probe'} @:{'words.generated.failed'}: {error}.\",\"http_rate_limited\":\"{label} @:{'words.generated.probe'} @:{'words.generated.was'} rate limited (@:{'words.generated.http'} {httpStatus}).\",\"http_status\":\"{label} @:{'words.generated.returned'} @:{'words.generated.http'} {httpStatus}.\",\"http_unexpected_response\":\"{label} @:{'words.generated.returned'} @:{'words.generated.an'} @:{'words.generated.unexpected'} @:{'words.generated.http'} @:{'words.generated.response'}.\",\"invalid_probe_payload\":\"@.capitalize:{'words.generated.probe'} @:{'words.generated.returned'} @:{'words.generated.an'} @:{'words.generated.invalid'} @:{'words.generated.payload'}.\",\"missing_config\":\"@.capitalize:{'words.generated.missing'} @:{'words.generated.required'} @:{'words.generated.configuration'}: {variables}.\",\"module_disabled\":\"@.capitalize:{'words.generated.module'} @:{'words.generated.is'} @:{'words.generated.disabled'}.\",\"recaptcha_credentials_rejected\":\"{label} @:{'words.generated.credentials'} @:{'words.generated.were'} rejected @:{'words.generated.by'} @:{'words.generated.google'}.\",\"recaptcha_unreadable_payload\":\"{label} @:{'words.generated.returned'} @:{'words.generated.an'} unreadable @:{'words.generated.response'} @:{'words.generated.payload'}.\",\"recaptcha_validation_errors\":\"{label} @:{'words.generated.returned'} @:{'words.generated.unexpected'} validation errors: {errors}.\",\"safe_probe_unavailable\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.is'} present, @:{'words.generated.but'} @:{'words.generated.no'} @:{'words.generated.safe'} @:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.probe'} @:{'words.generated.is'} @:{'words.generated.available'}.\",\"selfserve_configuration_confirmed\":\"@:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.schema'} @:{'words.generated.and'} @:{'words.generated.minute'} @:{'words.generated.product'} @:{'words.generated.configuration'} @:{'words.generated.confirmed'}.\",\"selfserve_minute_product_invalid\":\"@:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.minute'} @:{'words.generated.product'} @:{'words.generated.configuration'} @:{'words.generated.is'} @:{'words.generated.invalid'}.\",\"selfserve_minute_product_missing\":\"@:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.minute'} @:{'words.generated.product'} #{productId} @:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.exist'}.\",\"selfserve_minutes_invalid\":\"@:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.machine'} @:{'words.generated.minutes'} @:{'words.generated.configuration'} @:{'words.generated.is'} @:{'words.generated.invalid'}.\",\"selfserve_probe_failed\":\"@:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.probe'} @:{'words.generated.failed'}: {error}.\",\"shelly_no_device_id\":\"@:{'words.generated.shelly'} cloud @:{'words.generated.credentials'} @:{'words.generated.are'} @:{'words.generated.configured'}, @:{'words.generated.but'} @:{'words.generated.no'} known @:{'words.generated.device'} @:{'words.generated.id'} @:{'words.generated.is'} @:{'words.generated.available'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.safe'} @:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.probe'}.\"},\"sections\":{\"gateways\":\"@:{'words.generated.edge'}-@:{'words.generated.gateways'}\",\"infrastructure\":\"Infrastructure\",\"modules\":\"@.capitalize:{'words.generated.modules'}\",\"sessions\":\"@.capitalize:{'words.generated.recent'} @:{'words.generated.sessions'}\"},\"session_display\":{\"session_with_id\":\"Session #{id}\"},\"session_types\":{\"subuser\":\"@:{'words.generated.subuser'}\"},\"states\":{\"error\":\"@.capitalize:{'words.generated.status'} @:{'words.generated.error'}\",\"error_generic\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.load'} @:{'words.generated.system'} @:{'words.generated.status'}.\",\"loading\":\"@:{'words.generated.loading'} @:{'words.generated.system'} @:{'words.generated.status'}...\",\"no_sessions\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.recent'} @:{'words.generated.sessions'} @:{'words.generated.found'}.\",\"stale\":\"@.capitalize:{'words.generated.this'} snapshot @:{'words.generated.is'} older than @:{'words.generated.expected'}. Automatic @:{'words.generated.refresh'} may @:{'words.generated.be'} delayed.\"},\"status\":{\"degraded\":\"@:{'templates.generated.compat.replication.status.degraded'}\",\"disabled\":\"@.capitalize:{'words.generated.disabled'}\"},\"summary\":{\"active_sessions\":\"@.capitalize:{'words.generated.active'} @:{'words.generated.sessions'}\",\"active_users\":\"@.capitalize:{'words.generated.active'} users\",\"last_updated\":\"@.capitalize:{'words.generated.last'} updated\",\"overall\":\"Overall @:{'words.generated.status'}\"},\"table\":{\"active\":\"@.capitalize:{'words.generated.active'}\",\"device\":\"@.capitalize:{'words.generated.device'}\",\"first_seen\":\"First @:{'words.generated.seen'}\",\"last_seen\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.seen'}\",\"route\":\"@.capitalize:{'words.generated.last'} route\"},\"title\":\"Systemstatus\",\"warnings\":{\"cpu_loadavg_fallback\":\"@:{'words.generated.cpu'} @:{'words.generated.usage'} @:{'words.generated.fell'} @:{'words.generated.back'} @:{'words.generated.to'} @:{'words.generated.load'} average @:{'words.generated.because'} /@:{'words.generated.proc'}/stat sampling @:{'words.generated.was'} @:{'words.generated.unavailable'}.\",\"cpu_unavailable\":\"@:{'words.generated.cpu'} @:{'words.generated.usage'} @:{'words.generated.metrics'} @:{'words.generated.are'} @:{'words.generated.unavailable'} @:{'words.generated.in'} @:{'words.generated.this'} @:{'words.generated.runtime'}.\",\"memory_proc_fallback\":\"@:{'words.generated.memory'} @:{'words.generated.usage'} @:{'words.generated.fell'} @:{'words.generated.back'} @:{'words.generated.to'} /@:{'words.generated.proc'}/meminfo @:{'words.generated.because'} cgroup limits @:{'words.generated.were'} @:{'words.generated.unavailable'}.\",\"memory_unavailable\":\"@:{'words.generated.memory'} @:{'words.generated.metrics'} @:{'words.generated.are'} @:{'words.generated.unavailable'} @:{'words.generated.in'} @:{'words.generated.this'} @:{'words.generated.runtime'}.\",\"minio_missing_buckets\":\"@:{'words.replication.services.minio'} @:{'words.generated.is'} reachable, @:{'words.generated.but'} @:{'words.generated.one'} @:{'words.generated.or'} more @:{'words.generated.expected'} @:{'words.generated.buckets'} @:{'words.generated.are'} @:{'words.generated.missing'} @:{'words.generated.or'} inaccessible.\",\"modules_without_probes\":\"Some @:{'words.generated.modules'} expose @:{'words.generated.configuration'}-@:{'words.generated.only'} @:{'words.generated.status'} @:{'words.generated.because'} @:{'words.generated.no'} @:{'words.generated.safe'} @:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.probe'} exists: {modules}.\",\"redis_cache_bypass\":\"@:{'words.replication.services.redis'} @:{'words.generated.is'} @:{'words.generated.unavailable'}; @:{'words.generated.module'} @:{'words.generated.probe'} caching @:{'words.generated.is'} bypassed.\",\"redis_cache_lookup_failed\":\"@:{'words.replication.services.redis'} @:{'words.generated.cache'} @:{'words.generated.lookup'} @:{'words.generated.failed'} @:{'words.generated.for'} @:{'words.generated.module'} @:{'words.generated.probe'} {module}: {error}\",\"redis_cache_write_failed\":\"@:{'words.replication.services.redis'} @:{'words.generated.cache'} write @:{'words.generated.failed'} @:{'words.generated.for'} @:{'words.generated.module'} @:{'words.generated.probe'} {module}: {error}\"}},\"tables\":{\"actions\":\"@:{'templates.generated.compat.common.actions'}\",\"bookings\":{\"booking_id_required\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.m'}?@:{'words.generated.ssen'} @:{'words.generated.die'} @:{'words.generated.buchungs'}-@.upper:{'words.generated.id'} @:{'words.generated.eingeben'}, @:{'words.generated.um'} @:{'words.generated.die'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.ohne'} @:{'words.generated.waschzertifikat'} @:{'words.generated.abzuschlie'}?@:{'words.generated.en'}\",\"complete_wash_without_certificate\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.ohne'} @:{'words.generated.waschzertifikat'} @:{'words.generated.abschlie'}?@:{'words.generated.en'}\",\"complete_wash_without_certificate_prompt\":\"@.capitalize:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.buchungs'}-@.upper:{'words.generated.id'} @:{'words.generated.ein'}, @:{'words.generated.um'} @:{'words.generated.die'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.ohne'} @:{'words.generated.waschzertifikat'} @:{'words.generated.abzuschlie'}?@:{'words.generated.en'}\",\"create_order_from_booking\":\"@:{'words.generated.auftrag'} @:{'words.generated.aus'} @:{'words.generated.buchung'} @:{'words.generated.erstellen'}\",\"create_order_from_booking_confirm\":\"@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.aus'} @:{'words.generated.der'} @:{'words.generated.buchung'} @:{'words.generated.einen'} @:{'words.generated.auftrag'} @:{'words.generated.erstellen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?\",\"customer_name\":\"@:{'templates.generated.compat.common.customer_name'}\",\"error_add_service\":\"@.capitalize:{'words.generated.service'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.hinzugef'}?@:{'words.generated.gt'} @:{'words.generated.werden'}\",\"loading\":\"@:{'words.generated.buchung'} @:{'words.generated.wird'} @:{'words.generated.geladen'}...\",\"no_registered\":\"@.capitalize:{'words.generated.nicht'} @:{'words.generated.registriert'}\",\"no_services_added\":\"@.capitalize:{'words.generated.noch'} @:{'words.generated.keine'} @:{'words.generated.leistungen'} @:{'words.generated.hinzugef'}?@:{'words.generated.gt'}\",\"pickup_required\":\"@:{'words.generated.abholung'} @:{'words.generated.erforderlich'}?\",\"reg_tractor\":\"@:{'words.generated.kennz'}. @:{'words.generated.zugmaschine'}\",\"reg_trailer\":\"@:{'words.generated.kennz'}. @.capitalize:{'words.generated.anh'}?@:{'words.generated.nger'}\",\"vehicle_1\":\"@:{'words.generated.fahrzeug'} 1\",\"vehicle_2\":\"@:{'words.generated.fahrzeug'} 2\",\"wash\":\"@.upper:{'words.generated.w'}?@:{'words.generated.sche'}\",\"wash_certificate_type\":\"@:{'words.generated.waschzertifikat'} / @:{'words.generated.typ'}\",\"wash_completed\":\"@.capitalize:{'words.generated.die'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.wurde'} @:{'words.generated.abgeschlossen'}\",\"wash_desc\":\"Nutzen @.capitalize:{'words.generated.sie'} unser @:{'words.generated.nationales'} @:{'words.generated.netz'} @:{'words.generated.von'} Waschhallen @:{'words.generated.zu'} @:{'words.generated.wettbewerbsf'}?@:{'words.generated.higen'} @:{'words.generated.preisen'}\",\"wash_performed\":\"@.upper:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.diese'} @:{'words.generated.buchung'} @:{'words.generated.wurde'} @:{'words.generated.eine'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} durchgef?hrt.\",\"wash_services\":\"@:{'words.generated.waschleistungen'}\",\"wash_type\":\"@:{'words.generated.waschart'}\",\"wash_without_certificate\":\"@.capitalize:{'words.generated.diese'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} hat kein @:{'words.generated.waschzertifikat'}.\",\"yes\":\"@:{'templates.generated.compat.common.yes'}\"},\"categories\":{\"products_count\":\"Produktanzahl\"},\"common\":{\"category\":\"@:{'words.generated.kategorie'}\",\"count\":\"@:{'templates.generated.compat.common.quantity'}\",\"default_price\":\"Standardpreis\",\"department_price\":\"Abteilungspreis\",\"discount_category\":\"@.capitalize:{'words.generated.rabatt'} (@:{'words.generated.kategorie'})\",\"discount_item\":\"@.capitalize:{'words.generated.rabatt'} (@.capitalize:{'words.generated.position'})\",\"end_time\":\"Endzeit\",\"field\":\"@:{'words.generated.feld'}\",\"id\":\"@.upper:{'words.generated.id'}\",\"label\":\"Bezeichnung\",\"last_seen\":\"@:{'words.generated.zuletzt'} gesehen\",\"location\":\"@:{'words.generated.standort'}\",\"name\":\"@:{'templates.generated.compat.common.name'}\",\"phone\":\"@:{'templates.generated.compat.common.phone'}\",\"price\":\"@:{'templates.generated.compat.common.price'}\",\"price_changed_from\":\"@:{'words.generated.preis'} ge?ndert @:{'words.generated.von'} {from} @:{'words.generated.dkk'} auf {to} @:{'words.generated.dkk'} / @:{'words.generated.einheit'} ({total} @:{'words.generated.dkk'} @:{'words.generated.gesamt'})\",\"price_dkk\":\"@:{'words.generated.preis'} (@:{'words.generated.dkk'})\",\"price_per_unit\":\"{price} @:{'words.generated.dkk'} / @:{'words.generated.einheit'} ({total} @:{'words.generated.dkk'} @:{'words.generated.gesamt'})\",\"product_id\":\"@.capitalize:{'words.generated.produkt'}-@.upper:{'words.generated.id'}\",\"product_name\":\"@:{'words.generated.produktname'}\",\"registration_number\":\"@:{'words.generated.kennzeichen'}\",\"serial_number\":\"Seriennummer\",\"start_time\":\"Startzeit\",\"value\":\"@:{'words.generated.wert'}\",\"wash_item\":\"Waschposition\",\"website\":\"Webseite\"},\"economic\":{\"payment_terms\":\"@:{'words.generated.zahlungsbedingungen'}\"},\"in_total\":\"insgesamt\",\"invoices\":{\"invoice_number\":\"@:{'templates.generated.compat.invoices.invoice_number'}\",\"overdue\":\"@:{'templates.generated.compat.invoices.overdue'}\"},\"notifications\":{\"read\":\"@.capitalize:{'words.generated.gelesen'}\"},\"orders\":{\"historical_washes\":\"@.capitalize:{'words.generated.fr'}?here @.upper:{'words.generated.w'}?@:{'words.generated.schen'}\",\"items\":\"@:{'words.generated.positionen'}\"},\"pos\":{\"order_items\":\"Auftragspositionen\",\"possible_duplicates\":\"@:{'templates.generated.compat.global.possible_duplicates'}\",\"scanned_plates\":\"Gescanntes @:{'words.generated.kennzeichen'}\",\"sync_orders\":\"@:{'words.generated.auftr'}?@:{'words.generated.ge'} @:{'words.generated.synchronisieren'}\"},\"roles\":{\"permissions\":\"@:{'words.generated.berechtigungen'}\",\"users_count\":\"Benutzeranzahl\"},\"self_serve\":{\"condition_rules\":\"@:{'words.generated.bedingungsregeln'}\",\"tasks\":\"@:{'words.generated.aufgaben'}\",\"vehicle_conditions\":\"@:{'words.generated.fahrzeugbedingungen'}\"},\"showing\":\"Zeige\",\"stripe\":{\"terminals\":\"@:{'words.generated.terminals'}\"},\"time_bookings\":{\"hours\":\"@:{'words.generated.stunden'}\"},\"users\":{\"last_login\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.anmeldung'}\"},\"xlvask\":{\"create_order\":\"@:{'words.generated.auftrag'} @:{'words.generated.erstellen'}\",\"create_order_all\":\"@:{'words.generated.auftrag'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.alle'} @:{'words.generated.passenden'} @:{'words.generated.erstellen'}\",\"order_created\":\"@:{'words.generated.auftrag'} @:{'words.generated.erstellt'}\",\"usage_log_title\":\"@:{'words.generated.xlvask'}-@:{'words.generated.nutzungsprotokoll'}\"}},\"time_booking_flow\":{\"all_info_looks_good\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.informationen'} @:{'words.generated.sehen'} gut @:{'words.generated.aus'}! @.capitalize:{'words.generated.sie'} @:{'words.generated.k'}?@:{'words.generated.nnen'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.buchung'} @:{'words.generated.jetzt'} @:{'words.generated.best'}?@:{'words.generated.tigen'}.\",\"date_and_time\":\"@:{'words.generated.datum'} @:{'words.generated.und'} @:{'words.generated.uhrzeit'}\",\"no_notifications_enabled\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.haben'} @:{'words.generated.keine'} @:{'words.generated.benachrichtigungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.buchung'} @:{'words.generated.aktiviert'}. @.capitalize:{'words.generated.sie'} @:{'words.generated.erhalten'} @:{'words.generated.keine'} @.capitalize:{'words.generated.best'}?@:{'words.generated.tigung'}, Erinnerung @:{'words.generated.oder'} Updates @:{'words.generated.zu'} @:{'words.generated.ihrer'} @:{'words.generated.buchung'}.\",\"no_services_selected\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.leistungen'} @:{'words.generated.ausgew'}?@:{'words.generated.hlt'}\",\"not_selected\":\"@.capitalize:{'words.generated.nicht'} @:{'words.generated.ausgew'}?@:{'words.generated.hlt'}\",\"not_specified\":\"@:{'templates.generated.compat.pagination.not_specified'}\",\"notifications_incomplete\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.haben'} @:{'words.generated.benachrichtigungen'} @:{'words.generated.aktiviert'}, @:{'words.generated.aber'} @:{'words.generated.nicht'} @:{'words.generated.alle'} erforderlichen @:{'words.generated.informationen'} @:{'words.generated.ausgef'}?@:{'words.generated.llt'}.\",\"notifications_will_be_sent_to\":\"@:{'words.generated.benachrichtigungen'} @:{'words.generated.werden'} @:{'words.generated.gesendet'} @:{'words.generated.an'}\",\"progress\":\"@:{'words.generated.fortschritt'} {current} / {total}\",\"select_services\":\"@:{'words.generated.leistungen'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"selected_services\":\"@.capitalize:{'words.generated.ausgew'}?@:{'words.generated.hlte'} @:{'words.generated.leistungen'}\",\"sms\":\"@:{'words.generated.sms'}\",\"step_of\":\"@:{'templates.common.step_of'}\",\"step1_subtitle\":\"@.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.das'} @:{'words.generated.fahrzeug'}, @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.das'} @.capitalize:{'words.generated.sie'} @:{'words.generated.einen'} Termin @:{'words.generated.buchen'} @:{'words.generated.m'}?@:{'words.generated.chten'}\",\"step2_subtitle\":\"@.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} @:{'words.generated.standort'}, @:{'words.generated.an'} @:{'words.generated.dem'} @:{'words.generated.die'} @:{'words.generated.leistung'} @:{'words.generated.durchgef'}?@:{'words.generated.hrt'} @:{'words.generated.werden'} @:{'words.generated.soll'}\",\"step2_title\":\"@:{'words.generated.standort'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"step3_subtitle\":\"@.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.gew'}?@:{'words.generated.nschte'} @:{'words.generated.leistung'} @:{'words.generated.aus'}\",\"step3_title\":\"@:{'words.generated.leistung'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"step4_subtitle\":\"@.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @.capitalize:{'words.generated.zeit'}, @:{'words.generated.die'} @:{'words.generated.ihnen'} @:{'words.generated.am'} besten @:{'words.generated.passt'}\",\"step4_title\":\"@.capitalize:{'words.generated.zeit'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"step5_subtitle\":\"?@:{'words.generated.berpr'}?@:{'words.generated.fen'} @:{'words.generated.und'} @:{'words.generated.best'}?@:{'words.generated.tigen'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.buchung'}\",\"step5_title\":\"@:{'templates.generated.compat.bookings.confirm_booking'}\",\"update_notification_settings\":\"@.capitalize:{'words.generated.aktualisieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.hier'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.benachrichtigungseinstellungen'}.\",\"warning_email_not_set\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.haben'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.benachrichtigungen'} @:{'words.generated.aktiviert'}, @:{'words.generated.aber'} @:{'words.generated.keine'} @:{'words.generated.kontakt'}-@.upper:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.oder'} @:{'words.generated.waschzertifikat'}-@.upper:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.eingegeben'}.\",\"warning_no_datetime\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.haben'} @:{'words.generated.kein'} @:{'words.generated.datum'} @:{'words.generated.und'} @:{'words.generated.keine'} @:{'words.generated.uhrzeit'} @:{'words.generated.ausgew'}?@:{'words.generated.hlt'}.\",\"warning_no_location\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.haben'} @:{'words.generated.keinen'} @:{'words.generated.standort'} @:{'words.generated.ausgew'}?@:{'words.generated.hlt'}.\",\"warning_no_registration\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.haben'} @:{'words.generated.kein'} @:{'words.generated.kennzeichen'} @:{'words.generated.eingegeben'}.\",\"warning_no_services\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.haben'} @:{'words.generated.keine'} @:{'words.generated.leistungen'} @:{'words.generated.ausgew'}?@:{'words.generated.hlt'}.\",\"warning_sms_not_set\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.haben'} @:{'words.generated.sms'}-@:{'words.generated.benachrichtigungen'} @:{'words.generated.aktiviert'}, @:{'words.generated.aber'} @:{'words.generated.keine'} @:{'words.generated.g'}?@:{'words.generated.ltige'} @:{'words.generated.telefonnummer'} @:{'words.generated.eingegeben'}.\"},\"time_bookings\":{\"add_reg_number\":\"@:{'words.generated.kennzeichen'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"exterior_wash_for\":\"@.capitalize:{'words.generated.au'}?enw?@:{'words.generated.sche'} @:{'words.generated.f'}?@:{'words.generated.r'}\",\"insert_reg_numbers\":\"Relevante @:{'words.generated.kennzeichen'} eintragen\",\"interior_wash_for\":\"Innenw?@:{'words.generated.sche'} @:{'words.generated.f'}?@:{'words.generated.r'}\",\"next_week\":\"@.upper:{'words.generated.n'}?@:{'words.generated.chste'} @:{'words.generated.woche'}\",\"no_wash_services_available\":\"@.upper:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.dieses'} @:{'words.generated.fahrzeug'} @:{'words.generated.sind'} @:{'words.generated.keine'} @:{'words.generated.waschleistungen'} @:{'words.generated.verf'}?@:{'words.generated.gbar'}.\",\"previous_week\":\"@.capitalize:{'words.generated.vorherige'} @:{'words.generated.woche'}\",\"select_vehicle_type_first\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} zuerst einen Fahrzeugtyp aus\",\"select_vehicle_type\":\"@:{'templates.generated.compat.self_wash.select_vehicle_type'}\",\"select_wash_hall\":\"@:{'words.generated.waschhalle'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"tank_cleaning\":\"@:{'templates.generated.compat.global.tank_cleaning'}\",\"truck_wash\":\"@:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\",\"wash_services_for\":\"@:{'words.generated.waschleistungen'} @:{'words.generated.f'}?@:{'words.generated.r'}\",\"what_type_of_wash\":\"@:{'words.generated.welche'} Art @:{'words.generated.von'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.ben'}?@:{'words.generated.tigen'} @.capitalize:{'words.generated.sie'}?\",\"where_to_wash\":\"Wo @:{'words.generated.m'}?@:{'words.generated.chten'} @.capitalize:{'words.generated.sie'} @:{'words.generated.waschen'}?\"},\"time\":{\"ago\":\"sedan\",\"end_date\":\"Sluttdato\",\"from_now\":\"@:{'words.generated.ab'} @:{'words.generated.jetzt'}\",\"just_now\":\"just nu\",\"last_month\":\"@:{'words.generated.forra'} månaden\",\"last_year\":\"@:{'words.generated.forra'} året\",\"next_month\":\"@:{'words.generated.nasta'} månad\",\"next_week\":\"@:{'words.generated.nasta'} vecka\",\"next_year\":\"@:{'words.generated.nasta'} år\",\"start_date\":\"Startdato\",\"this_year\":\"@:{'templates.generated.compat.global.text.this_year'}\",\"today\":\"Idag\",\"tomorrow\":\"Imorgon\"},\"user_admin\":{\"currency\":\"Währung\",\"cvr\":\"@:{'words.generated.cvr'}\",\"economic_data\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.daten'}\",\"group_id\":\"@:{'words.generated.gruppe'} @.upper:{'words.generated.id'}\",\"mass_data_inserter\":\"Masse @:{'words.generated.data'} indsætter\",\"mobile_phone\":\"Mobiltelefon\",\"orders\":{\"draft_not_found\":\"@.capitalize:{'words.generated.der'} @:{'words.generated.rechnungsentwurf'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.gefunden'} @:{'words.generated.werden'}. @.capitalize:{'words.generated.wurde'} @:{'words.generated.er'} @:{'words.generated.fakturiert'} @:{'words.generated.oder'} @:{'words.generated.au'}?@:{'words.generated.erhalb'} @:{'words.generated.des'} @:{'words.generated.systems'} @:{'words.generated.gel'}?@:{'words.generated.scht'}?\",\"loading_subtitle\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.warten'} @.capitalize:{'words.generated.sie'}, @:{'words.generated.w'}?@:{'words.generated.hrend'} @:{'words.generated.wir'} @:{'words.generated.benutzerdaten'} @:{'words.generated.laden'}\",\"loading_title\":\"@:{'words.generated.benutzerdaten'} @:{'words.generated.werden'} @:{'words.generated.geladen'}\",\"transaction_history\":\"@:{'templates.generated.compat.superuser.nav.orders'}\"},\"other\":\"@.capitalize:{'words.generated.andere'}\",\"overview\":{\"active_vehicles\":\"Aktive Fahrzeuge\",\"attributes\":\"Attribute\",\"connected\":\"Verbunden\",\"customer_management\":\"Kundenverwaltung\",\"customer_number_required\":\"Eine Kundennummer ist erforderlich, bevor Kundeneinstellungen verwaltet werden können.\",\"customer_rules\":\"Kundenregeln\",\"effective_access\":\"Effektiver Zugriff\",\"loaded\":\"Geladen\",\"load_failed\":\"Benutzerdaten konnten nicht geladen werden\",\"loading_user\":\"Benutzer wird geladen\",\"management_hub\":\"Verwaltung\",\"missing\":\"Fehlt\",\"more_permissions\":\"+{count} weitere Berechtigungen\",\"no_subscription_transactions\":\"Für diesen Kunden sind keine Waschabonnement-Transaktionen registriert.\",\"not_invoiced\":\"Nicht fakturiert\",\"open_draft\":\"Offener Entwurf\",\"open_vehicles\":\"Fahrzeuge öffnen\",\"price_overrides\":\"Preisüberschreibungen\",\"pricing\":\"Preise\",\"subscription_invoicing\":\"Abonnementabrechnung\",\"subtitle\":\"Überblick über Kundendaten, Zugriff, Preise, Fahrzeuge und Abonnementabrechnung.\",\"vehicles_load_failed\":\"Fahrzeuge konnten nicht geladen werden.\",\"workspace_shortcuts\":\"Arbeitsbereich\"},\"permissions\":\"Tilladelser\",\"user_data\":\"Brugerdata\",\"user_id\":\"@:{'words.generated.benutzer'}-@.upper:{'words.generated.id'}\",\"variables\":\"Variabler\",\"wash_subscriptions\":\"@:{'words.generated.waschabonnements'}\"},\"user_bookings\":{\"my_vehicles\":\"@:{'templates.generated.compat.user_menu.my_vehicles'}\",\"select_vehicle_type_for\":\"@:{'words.generated.fahrzeugtyp'} @:{'words.generated.f'}?@:{'words.generated.r'} {registration} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"vehicle_reg_input\":\"@:{'words.generated.fahrzeugkennzeichen'}\"},\"user_dashboard\":{\"bookings\":{\"book_subtitle\":\"@.capitalize:{'words.generated.neue'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.buchen'}\",\"book\":{\"basket\":\"@:{'templates.generated.compat.admin.pos.cart'}\",\"booking_confirmed\":\"@:{'words.generated.buchung'} @:{'words.generated.best'}?@:{'words.generated.tigt'}\",\"booking_confirmed_message\":\"@.capitalize:{'words.generated.ihre'} @:{'words.generated.buchung'} @:{'words.generated.wurde'} @:{'words.generated.best'}?@:{'words.generated.tigt'}. @.capitalize:{'words.generated.sie'} @:{'words.generated.erhalten'} @:{'words.generated.eine'} @.capitalize:{'words.generated.best'}?@:{'words.generated.tigung'} @:{'words.generated.per'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}.\",\"booking_failed\":\"@:{'words.generated.buchung'} @:{'words.generated.fehlgeschlagen'}\",\"booking_failed_message\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.buchen'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.versuchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.es'} @:{'words.generated.erneut'}.\",\"customer_not_found\":\"@:{'words.generated.kundennummer'} @:{'words.generated.nicht'} @:{'words.generated.gefunden'}.\",\"enter_customer_number\":\"@:{'templates.generated.compat.self_wash.enter_customer_number'}\",\"enter_vehicle\":\"@:{'words.generated.fahrzeug'} @:{'words.generated.eingeben'}\",\"error_copied\":\"@:{'words.generated.fehlermeldung'} @:{'words.generated.in'} @:{'words.generated.die'} @:{'words.generated.zwischenablage'} @:{'words.generated.kopiert'}\",\"expected_date_time\":\"Erwartetes @:{'words.generated.datum'} @:{'words.generated.und'} @:{'words.generated.uhrzeit'}\",\"exterior_wash\":\"Außenwäsche\",\"go_to_confirmation\":\"@.capitalize:{'words.generated.zur'} @.capitalize:{'words.generated.best'}?@:{'words.generated.tigung'}\",\"guest_info_html\":\"@.capitalize:{'words.generated.als'} @:{'words.generated.gast'} @:{'words.generated.k'}?@:{'words.generated.nnen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.abteilung'}, @:{'words.generated.kennzeichen'} @:{'words.generated.und'} @.capitalize:{'words.generated.zeit'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}. @.capitalize:{'words.generated.um'} @:{'words.generated.die'} @:{'words.generated.buchung'} @:{'words.generated.zu'} @:{'words.generated.erstellen'}, @:{'words.generated.m'}?@:{'words.generated.ssen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sich'} @:{'words.generated.anmelden'}.\",\"guest_mode_login_prompt\":\"@.capitalize:{'words.generated.um'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.buchung'} @:{'words.generated.abzuschlie'}?@:{'words.generated.en'}, @:{'words.generated.m'}?@:{'words.generated.ssen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sich'} @:{'words.generated.in'} @:{'words.generated.ihrem'} @:{'words.generated.konto'} @:{'words.generated.anmelden'}.\",\"guest_mode_warning\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.sind'} @:{'words.generated.im'} @:{'words.generated.gastmodus'}.\",\"incl_pickup\":\"@.capitalize:{'words.generated.inkl'}. @:{'words.generated.abholung'}\",\"interior_wash\":\"Innenwäsche\",\"is_this_your_vehicle\":\"@.capitalize:{'words.generated.ist'} @:{'words.generated.dies'} @:{'words.generated.eines'} @:{'words.generated.ihrer'} @:{'words.generated.fahrzeuge'}?\",\"login_for_products\":\"@.capitalize:{'words.generated.melden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sich'} @:{'words.generated.an'}, @:{'words.generated.um'} @:{'words.generated.produkte'} @:{'words.generated.f'}?@:{'words.generated.r'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.buchung'} @:{'words.generated.auszuw'}?@:{'words.generated.hlen'}.\",\"missing_fields\":\"Följande fält saknas:\",\"missing_valid_customer_number\":\"@.upper:{'words.generated.g'}?@:{'words.generated.ltige'} @:{'words.generated.kundennummer'}\",\"missing_wash_hall\":\"@:{'words.generated.waschhalle'}\",\"next_step_addons\":\"@.upper:{'words.generated.n'}?@:{'words.generated.chster'} @:{'words.generated.schritt'}: @:{'words.generated.zusatzoptionen'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"no_items_in_basket\":\"@.capitalize:{'words.generated.noch'} @:{'words.generated.keine'} Elemente @:{'words.generated.im'} @:{'words.generated.warenkorb'}\",\"product_selection_unavailable\":\"Produktauswahl @:{'words.generated.ist'} @:{'words.generated.im'} @:{'words.generated.gastmodus'} @:{'words.generated.nicht'} @:{'words.generated.verf'}?@:{'words.generated.gbar'}.\",\"select_a_wash_hall\":\"@:{'templates.generated.compat.time_bookings.select_wash_hall'}\",\"select_date_time_customer\":\"@:{'words.generated.datum'}/@:{'words.generated.uhrzeit'} @:{'words.generated.und'} @:{'words.generated.kundennummer'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"select_department\":\"@:{'words.generated.valj'} @:{'words.generated.avdelning'}\",\"select_products\":\"@:{'words.generated.produkte'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"select_vehicle\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ein'} @:{'words.generated.fahrzeug'} @:{'words.generated.aus'}, @:{'words.generated.um'} @:{'words.generated.verf'}?@:{'words.generated.gbare'} @:{'words.generated.zusatzoptionen'} @:{'words.generated.zu'} @:{'words.generated.sehen'}\",\"select_wash_hall\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.waschhalle'} @:{'words.generated.aus'}, @:{'words.generated.um'} @:{'words.generated.fortzufahren'}\"},\"subtitle\":\"@.capitalize:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.buchungen'}\",\"title\":\"@:{'templates.generated.compat.user_menu.my_bookings'}\"},\"home\":{\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.auftr'}?@:{'words.generated.ge'}, @:{'words.generated.buchungen'} @:{'words.generated.und'} @:{'words.generated.fahrzeuge'}\"},\"invoices\":{\"subtitle\":\"@.capitalize:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.rechnungen'}\",\"title\":\"@:{'templates.generated.compat.user_menu.my_invoices'}\"},\"materials\":{\"subtitle\":\"@.capitalize:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} Materialien\",\"title\":\"@:{'words.generated.meine'} materials\"},\"menu\":{\"statistics\":\"@.capitalize:{'words.generated.statistikk'}\"},\"orders\":{\"single_subtitle\":\"Transaktionsdetails @:{'words.generated.anzeigen'}\",\"subtitle\":\"@.capitalize:{'words.generated.sehen'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'}\",\"title\":\"@:{'templates.generated.compat.user_menu.my_washes'}\"},\"profile\":{\"default_department\":{\"description\":\"@.capitalize:{'words.generated.ihre'} @:{'words.generated.standardabteilung'}\",\"title\":\"@:{'words.generated.standardabteilung'}\"},\"driver\":{\"contact_description\":\"@.capitalize:{'words.generated.ihre'} @:{'words.generated.kontaktinformationen'} @:{'words.generated.als'} @:{'words.generated.fahrer'}\",\"contact_subtitle\":\"@:{'words.generated.kontaktinformationen'}\",\"country_code_desc\":\"@.capitalize:{'words.generated.ihre'} @.upper:{'words.generated.l'}?@:{'words.generated.ndervorwahl'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.die'} @:{'words.generated.telefonnummer'}.\",\"customer_description\":\"@.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.aus'}, @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.welchen'} @:{'words.generated.kunden'} @.capitalize:{'words.generated.sie'} handeln @:{'words.generated.m'}?@:{'words.generated.chten'}.\",\"customer_subtitle\":\"Kundenauswahl\",\"customer_switch_help\":\"@.capitalize:{'words.generated.als'} @:{'words.generated.fahrer'} @:{'words.generated.k'}?@:{'words.generated.nnen'} @.capitalize:{'words.generated.sie'} zwischen verschiedenen @:{'words.generated.kunden'} wechseln, @:{'words.generated.auf'} @:{'words.generated.die'} @.capitalize:{'words.generated.sie'} @:{'words.generated.zugriff'} @:{'words.generated.haben'}.\",\"edit_email\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.bearbeiten'}\",\"edit_name\":\"@.capitalize:{'words.generated.name'} @:{'words.generated.bearbeiten'}\",\"name_desc\":\"@:{'words.generated.ihr'} Anzeigename @:{'words.generated.als'} @:{'words.generated.fahrer'}.\",\"phone_desc\":\"@.capitalize:{'words.generated.ihre'} @:{'words.generated.telefonnummer'} @:{'words.generated.als'} @:{'words.generated.fahrer'}.\",\"profile_description\":\"@.capitalize:{'words.generated.ihre'} Fahrerinformationen\",\"profile_subtitle\":\"Profilinformationen\",\"username_desc\":\"@:{'words.generated.ihr'} @:{'words.generated.benutzername'} @:{'words.generated.kann'} @:{'words.generated.nicht'} @:{'words.generated.ge'}?@:{'words.generated.ndert'} @:{'words.generated.werden'}.\"},\"invoicing\":{\"account_name_desc\":\"Kundenkontoname\",\"account_number_desc\":\"Kundenkontonummer\",\"description\":\"@.capitalize:{'words.generated.ihre'} @:{'words.generated.rechnungsinformationen'}\",\"title\":\"@:{'words.generated.rechnungsinformationen'}\"},\"microsoft_auth\":{\"create_event\":\"Ereignis @:{'words.generated.erstellen'}\",\"logged_in_as\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.sind'} @:{'words.generated.angemeldet'} @:{'words.generated.als'} {name}\",\"login\":\"@.capitalize:{'words.generated.mit'} @:{'words.generated.microsoft'} @:{'words.generated.anmelden'}\",\"not_logged_in\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.sind'} @:{'words.generated.nicht'} @:{'words.generated.angemeldet'}\",\"title\":\"@:{'words.generated.microsoft'}-@:{'words.generated.authentifizierung'}\"},\"microsoft\":{\"description\":\"@.capitalize:{'words.generated.ihre'} @:{'words.generated.microsoft'}-@:{'words.generated.einstellungen'}\",\"title\":\"@:{'words.generated.microsoft'}\"},\"notifications\":{\"booking_email\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mail'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.buchungen'}\",\"booking_email_desc\":\"@.capitalize:{'words.generated.die'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'}, @:{'words.generated.die'} @:{'words.generated.buchungsbest'}?@:{'words.generated.tigungen'} @:{'words.generated.und'} @:{'words.generated.waschzertifikate'} @:{'words.generated.erh'}?@:{'words.generated.lt'}.\",\"description\":\"@.capitalize:{'words.generated.ihre'} @:{'words.generated.benachrichtigungseinstellungen'}\",\"email_notifications\":\"@:{'templates.generated.compat.settings.email_notifications'}\",\"email_notifications_desc\":\"@.upper:{'words.generated.e'}-@:{'words.generated.mails'} @:{'words.generated.mit'} @:{'words.generated.buchungsbest'}?@:{'words.generated.tigungen'} @:{'words.generated.und'} Waschzertifikaten @:{'words.generated.erhalten'}.\",\"sms_notifications_desc\":\"@:{'words.generated.sms'}-@:{'words.generated.benachrichtigungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.verschiedene'} @:{'words.generated.ereignisse'} @:{'words.generated.erhalten'}.\",\"sms_phone\":\"@:{'words.generated.telefonnummer'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.sms'}-@:{'words.generated.benachrichtigungen'}\",\"sms_phone_desc\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.telefonnummer'}, @:{'words.generated.die'} @:{'words.generated.sms'}-@:{'words.generated.benachrichtigungen'} @:{'words.generated.erh'}?@:{'words.generated.lt'}.\",\"superuser_notifications\":\"Superuser-Benachrichtigungen\",\"superuser_notifications_desc\":\"E-Mail-Benachrichtigungen erhalten, wenn sich ein neuer Kunde auf der Seite registriert.\"},\"security\":{\"description\":\"@.capitalize:{'words.generated.ihre'} Sicherheitseinstellungen\",\"email_desc\":\"@.capitalize:{'words.generated.wir'} @:{'words.generated.verwenden'} @:{'words.generated.diese'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}, @:{'words.generated.um'} @:{'words.generated.ihr'} @:{'words.generated.passwort'} @:{'words.generated.zur'}?ckzusetzen, @:{'words.generated.waschzertifikate'} @:{'words.generated.und'} @:{'words.generated.weitere'} wichtige @:{'words.generated.informationen'} @:{'words.generated.zu'} @:{'words.generated.senden'}.\"},\"title\":\"Benutzerprofil\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.verwalten'} dina inställningar\"},\"sidebar\":{\"book\":\"@.capitalize:{'words.generated.buchen'}\",\"logout\":\"@:{'templates.generated.compat.common.logout'}\"},\"vehicles\":{\"new_subtitle\":\"@:{'templates.generated.compat.pos.create_new_vehicle'}\",\"single_title\":\"@:{'words.generated.mein'} @:{'words.generated.fahrzeug'}\",\"subtitle\":\"@.capitalize:{'words.generated.verwalten'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.fahrzeuge'}\"},\"wash\":{\"nearest_department\":\"@.capitalize:{'words.generated.die'} @:{'words.generated.n'}?chstgelegene @:{'words.generated.abteilung'} @:{'words.generated.ist'} {name}, etwa {distance} km @:{'words.generated.von'} @:{'words.generated.ihrem'} @:{'words.generated.aktuellen'} @:{'words.generated.standort'} @:{'words.generated.entfernt'}.\",\"subtitle\":\"@.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eines'} @:{'words.generated.ihrer'} @:{'words.generated.fahrzeuge'} @:{'words.generated.aus'}, @:{'words.generated.um'} @:{'words.generated.eine'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.zu'} @:{'words.generated.starten'}\"}},\"user_home\":{\"book_wash_desc\":\"@.capitalize:{'words.generated.buchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.in'} @:{'words.generated.einer'} @:{'words.generated.unserer'} @:{'words.generated.abteilungen'} ? @:{'words.generated.optional'} @:{'words.generated.mit'} @:{'words.generated.sicherheitsplombe'}.\",\"contact_info_or_email\":\"@:{'words.generated.oder'} @:{'words.generated.per'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}\",\"contact_info_prefix\":\"@.capitalize:{'words.generated.bei'} Problemen @:{'words.generated.kontaktieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.uns'} telefonisch\",\"create_vehicle_desc\":\"@.upper:{'words.generated.f'}?@:{'words.generated.gen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ein'} @:{'words.generated.fahrzeug'} @:{'words.generated.hinzu'}, @:{'words.generated.das'} @:{'words.generated.bei'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.waschen'} @:{'words.generated.k'}?@:{'words.generated.nnen'} @:{'words.generated.soll'}.\",\"create_vehicle\":\"@:{'words.generated.fahrzeug'} @:{'words.generated.erstellen'}\",\"download_certificates_desc\":\"@.capitalize:{'words.generated.laden'} @.capitalize:{'words.generated.sie'} @:{'words.generated.waschzertifikate'} @:{'words.generated.f'}?@:{'words.generated.r'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.fr'}?@:{'words.generated.heren'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'} @:{'words.generated.herunter'}.\",\"download_certificates\":\"@:{'words.generated.waschzertifikate'} @:{'words.generated.herunterladen'}\",\"download_invoices_desc\":\"@.capitalize:{'words.generated.laden'} @.capitalize:{'words.generated.sie'} @.capitalize:{'words.generated.ihre'} @:{'words.generated.fr'}?@:{'words.generated.heren'} @:{'words.generated.rechnungen'} @:{'words.generated.herunter'}.\",\"download_invoices\":\"@:{'words.generated.rechnungen'} @:{'words.generated.herunterladen'}\",\"empty_state_desc\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.haben'} @:{'words.generated.keinen'} @:{'words.generated.zugriff'} @:{'words.generated.auf'} Schnellzugriffe. @.capitalize:{'words.generated.kontaktieren'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ihren'} @:{'words.generated.administrator'}, @:{'words.generated.um'} @:{'words.generated.berechtigungen'} @:{'words.generated.zu'} @:{'words.generated.erhalten'}.\",\"empty_state_title\":\"@.capitalize:{'words.generated.hier'} sieht @:{'words.generated.es'} @:{'words.generated.leer'} @:{'words.generated.aus'}\",\"select_customer_desc\":\"@.capitalize:{'words.generated.als'} @:{'words.generated.unterbenutzer'} @:{'words.generated.m'}?@:{'words.generated.ssen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}, @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.welchen'} @:{'words.generated.kunden'} @.capitalize:{'words.generated.sie'} arbeiten @:{'words.generated.m'}?@:{'words.generated.chten'}.\",\"select_customer\":\"@:{'words.generated.kunden'} @:{'words.generated.ausw'}?@:{'words.generated.hlen'}\",\"start_wash_desc\":\"@.capitalize:{'words.generated.gehen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.direkt'} @:{'words.generated.zu'} @:{'words.replication.article.host_mention'} @:{'words.generated.waschspuren'} @:{'words.generated.der'} @:{'words.generated.abteilung'} @:{'words.generated.und'} @:{'words.generated.starten'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.ihr'} @:{'words.generated.fahrzeug'}. @.upper:{'words.generated.w'}?@:{'words.generated.hlen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.ihr'} @:{'words.generated.fahrzeug'} @:{'words.generated.und'} @:{'words.generated.die'} @:{'words.generated.gew'}?@:{'words.generated.nschte'} @:{'words.generated.waschart'}, @:{'words.generated.um'} @:{'words.generated.zu'} @:{'words.generated.beginnen'}.\"},\"user_menu\":{\"my_bookings\":\"@:{'words.generated.meine'} @:{'words.generated.buchungen'}\",\"my_invoices\":\"@:{'words.generated.meine'} @:{'words.generated.rechnungen'}\",\"my_vehicles\":\"@:{'words.generated.meine'} @:{'words.generated.fahrzeuge'}\",\"my_washes\":\"@:{'words.generated.meine'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'}\"},\"user_navigation\":{\"back_to_own_user\":\"@.capitalize:{'words.generated.zur'}?@:{'words.generated.ck'} @:{'words.generated.zum'} @:{'words.generated.eigenen'} @:{'words.generated.benutzer'}\",\"guest\":\"@:{'words.generated.gast'}\",\"my_customer_page\":\"@:{'words.generated.meine'} Kundenseite\",\"my_profile\":\"@:{'words.generated.mein'} @:{'words.generated.profil'}\"},\"user_notifications\":{\"mark_as_read_error\":\"@.capitalize:{'words.generated.beim'} @.capitalize:{'words.generated.markieren'} @:{'words.generated.der'} @:{'words.generated.nachricht'} @:{'words.generated.als'} @:{'words.generated.gelesen'} @:{'words.generated.ist'} @:{'words.generated.ein'} @:{'words.generated.fehler'} @:{'words.generated.aufgetreten'}. @.capitalize:{'words.generated.bitte'} @:{'words.generated.versuchen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.es'} @:{'words.generated.erneut'} @:{'words.generated.oder'} @:{'words.generated.kontaktieren'} @.capitalize:{'words.generated.sie'} @:{'words.replication.article.host_mention'} @:{'words.generated.support'}.\"},\"user_vehicles\":{\"activate\":\"@:{'templates.generated.compat.settings.enable'}\",\"add_new_vehicle\":\"@.capitalize:{'words.generated.neues'} @:{'words.generated.fahrzeug'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"deactivate\":\"@:{'templates.generated.compat.settings.disable'}\",\"no_vehicle_type_configured\":\"@.capitalize:{'words.generated.kein'} @:{'words.generated.fahrzeugtyp'} @:{'words.generated.konfiguriert'}\",\"reference_placeholder\":\"@:{'words.generated.referenz'} / Interne @.capitalize:{'words.generated.nummer'}\",\"self_service_placeholder\":\"@:{'words.generated.platzhalter'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.fahrzeuge'} @:{'words.generated.mit'} @:{'words.generated.selbstbedienung'}\",\"self_service\":\"@:{'words.generated.selvvask'}\",\"subscriptions_placeholder\":\"@:{'words.generated.platzhalter'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.fahrzeuge'} @:{'words.generated.mit'} @:{'words.generated.aktiven'} @:{'words.generated.waschabonnements'}\",\"vehicle_count_placeholder\":\"@:{'words.generated.platzhalter'} @:{'words.generated.f'}?@:{'words.generated.r'} Fahrzeuganzahl\",\"vehicles_with_self_service\":\"@:{'words.generated.fahrzeuge'} @:{'words.generated.mit'} @:{'words.generated.selbstbedienung'}\",\"vehicles_with_subscriptions\":\"@:{'words.generated.fahrzeuge'} @:{'words.generated.mit'} @:{'words.generated.aktiven'} @:{'words.generated.waschabonnements'}\",\"view_all_self_service\":\"@.capitalize:{'words.generated.alle'} {count} @:{'words.generated.fahrzeuge'} @:{'words.generated.mit'} @:{'words.generated.selbstbedienung'} @:{'words.generated.anzeigen'}\",\"view_all_subscriptions\":\"@.capitalize:{'words.generated.alle'} {count} @:{'words.generated.fahrzeuge'} @:{'words.generated.mit'} @:{'words.generated.aktiven'} @:{'words.generated.waschabonnements'} @:{'words.generated.anzeigen'}\",\"view_all_vehicles\":\"@.capitalize:{'words.generated.alle'} {count} @:{'words.generated.fahrzeuge'} @:{'words.generated.anzeigen'}\",\"with_self_service\":\"@:{'words.generated.mit'} @:{'words.generated.selbstbedienung'}\",\"without_self_service\":\"@:{'words.generated.ohne'} @:{'words.generated.selbstbedienung'}\"},\"validation\":{\"email\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.g'}?@:{'words.generated.ltige'} @.upper:{'words.generated.e'}-@:{'words.generated.mail'}-@:{'words.generated.adresse'} @:{'words.generated.ein'}\",\"invalid\":\"@:{'words.generated.ung'}?@:{'words.generated.ltiger'} @:{'words.generated.wert'}\",\"max_length\":\"@.capitalize:{'words.generated.darf'} @:{'words.generated.nicht'} @:{'words.generated.l'}?@:{'words.generated.nger'} @:{'words.generated.als'} {max} @:{'words.generated.zeichen'} @:{'words.generated.sein'}\",\"max\":\"Maximal {max} @:{'words.generated.zeichen'} @:{'words.generated.erlaubt'}\",\"min_length\":\"@.capitalize:{'words.generated.muss'} @:{'words.generated.mindestens'} {min} @:{'words.generated.zeichen'} @:{'words.generated.lang'} @:{'words.generated.sein'}\",\"min\":\"@.capitalize:{'words.generated.mindestens'} {min} @:{'words.generated.zeichen'} @:{'words.generated.erforderlich'}\",\"numeric\":\"@.capitalize:{'words.generated.muss'} @:{'words.generated.eine'} Zahl @:{'words.generated.sein'}\",\"password_confirmation\":\"@:{'templates.generated.compat.validation.password_match'}\",\"password_match\":\"@.capitalize:{'words.generated.die'} Passw?rter @:{'words.generated.stimmen'} @:{'words.generated.nicht'} ?@:{'words.generated.berein'}\",\"password\":\"@.capitalize:{'words.generated.das'} @:{'words.generated.passwort'} @:{'words.generated.muss'} @:{'words.generated.mindestens'} 8 @:{'words.generated.zeichen'} @:{'words.generated.lang'} @:{'words.generated.sein'}\",\"phone\":\"@.capitalize:{'words.generated.bitte'} @:{'words.generated.geben'} @.capitalize:{'words.generated.sie'} @:{'words.generated.eine'} @:{'words.generated.g'}?@:{'words.generated.ltige'} @:{'words.generated.telefonnummer'} @:{'words.generated.ein'}\",\"required\":\"@.capitalize:{'words.generated.dieses'} @:{'words.generated.feld'} @:{'words.generated.ist'} @:{'words.generated.erforderlich'}\"},\"vehicles\":{\"add\":\"@:{'words.generated.fahrzeug'} @:{'words.generated.hinzuf'}?@:{'words.generated.gen'}\",\"add_modal\":{\"customer_label\":\"Kunde\",\"customer_placeholder\":\"Nach Kundenname oder Kundennummer suchen\",\"error\":\"Fahrzeug konnte nicht hinzugefuegt werden.\",\"no_customer_results\":\"Keine Kunden gefunden\",\"reference_placeholder\":\"Optionale Referenz\",\"registration_placeholder\":\"Kennzeichen\",\"selected_customer\":\"Ausgewaehlter Kunde\",\"submit\":\"Fahrzeug hinzufuegen\",\"title\":\"Fahrzeug hinzufuegen\",\"type_load_error\":\"Fahrzeugtypen konnten nicht geladen werden.\",\"type_placeholder\":\"Fahrzeugtyp auswaehlen\",\"validation_error\":\"Kunde, Kennzeichen und Fahrzeugtyp auswaehlen.\"},\"brand\":\"@:{'templates.generated.compat.admin.pos.make'}\",\"color\":\"Farbe\",\"delete_vehicle\":\"@:{'templates.generated.compat.vehicles.delete'}\",\"delete\":\"@:{'words.generated.fahrzeug'} @:{'words.generated.l'}?@:{'words.generated.schen'}\",\"edit\":\"@:{'words.generated.fahrzeug'} @:{'words.generated.bearbeiten'}\",\"model\":\"Modell\",\"new_vehicle\":\"@.capitalize:{'words.generated.neues'} @:{'words.generated.fahrzeug'}\",\"no_previous_washes\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.fr'}?@:{'words.generated.heren'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'} @:{'words.generated.gefunden'}\",\"no_vehicles\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.fahrzeuge'} @:{'words.generated.gefunden'}\",\"owner\":\"Eigent?mer\",\"previous_wash\":\"@.capitalize:{'words.generated.vorherige'} @.upper:{'words.generated.w'}?@:{'words.generated.sche'}\",\"previous_washes_count\":\"{count} @:{'words.generated.vorherige'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'}\",\"previous_washes\":\"@.capitalize:{'words.generated.vorherige'} @.upper:{'words.generated.w'}?@:{'words.generated.schen'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.nach'} @:{'words.generated.kennzeichen'}, @:{'words.generated.typ'}, @.capitalize:{'words.generated.kunde'} @:{'words.generated.suchen'}\",\"search\":\"@:{'words.generated.fahrzeuge'} @:{'words.generated.suchen'}...\",\"subtitle\":\"@:{'words.generated.fahrzeuge'} @:{'words.generated.verwalten'}\",\"type\":\"@:{'templates.generated.compat.products.type'}\",\"types\":{\"bus\":\"Bus\",\"semi\":\"Sattelzugmaschine\",\"tractor\":\"Traktor\",\"trailer\":\"Släpvagn\",\"truck\":\"@.upper:{'words.generated.lkw'}\",\"van\":\"Skåpbil\"},\"vehicle_types\":{\"box\":\"Kassebil\",\"car\":\"PKW\",\"crew\":\"Mannschaft\",\"semi\":\"@:{'templates.generated.compat.pos.vehicle_types.sættevogn'}\"},\"wash_history\":\"Waschhistorie\"},\"xlvask\":{\"admin\":{\"customer_count\":\"@:{'words.generated.anzahl'} @:{'words.generated.kunden'}\",\"fetch_customers\":\"@:{'words.generated.kunden'} @:{'words.generated.abrufen'}\",\"fetch_objects\":\"@:{'words.generated.objekte'} @:{'words.generated.abrufen'}\",\"object_count\":\"@:{'words.generated.anzahl'} @:{'words.generated.objekte'}\",\"objects\":\"@:{'words.generated.objekte'}\",\"subtitle\":\"@.capitalize:{'words.generated.hier'} @:{'words.generated.k'}?@:{'words.generated.nnen'} @.capitalize:{'words.generated.sie'} @:{'words.generated.die'} @:{'words.generated.xlvask'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.verwalten'}\",\"title\":\"@:{'words.generated.xlvask'}-@.capitalize:{'words.generated.administration'}\"}},\"limited_backoffice\":{\"title\":\"Backoffice\",\"subtitle\":\"@.capitalize:{'words.generated.abteilungspreise'} @:{'words.generated.und'} @.capitalize:{'words.generated.mitarbeiterzugriff'} @:{'words.generated.verwalten'}.\",\"department\":\"@:{'words.generated.abteilung'}\",\"select_department\":\"@:{'words.generated.abteilung'} auswählen\",\"loading\":\"Wird @:{'words.generated.geladen'}...\",\"no_departments\":\"@.capitalize:{'words.generated.fur'} dieses Konto @:{'words.generated.sind'} @:{'words.generated.keine'} @:{'words.generated.abteilungen'} verfügbar.\",\"cancel\":\"Abbrechen\",\"nav\":{\"prices\":\"@:{'words.generated.preise'}\",\"customer_pricing\":\"Kundenpreise\",\"employees\":\"@:{'words.generated.mitarbeiter'}\"},\"forbidden\":{\"title\":\"@:{'words.generated.zugriff'} verweigert\",\"department\":\"@.capitalize:{'words.generated.sie'} @:{'words.generated.haben'} keinen @:{'words.generated.zugriff'} auf @:{'words.generated.diese'} @:{'words.generated.abteilung'}.\"},\"prices\":{\"title\":\"@.capitalize:{'words.generated.abteilungspreise'}\",\"save\":\"@:{'words.generated.preise'} @:{'words.generated.speichern'}\",\"saved\":\"@:{'words.generated.preise'} @:{'words.generated.gespeichert'}.\",\"autosave_saving\":\"Preise werden gespeichert...\",\"autosave_pending\":\"Preisaenderungen ausstehend.\",\"autosave_saved\":\"Alle Preisaenderungen gespeichert.\",\"product\":\"@.capitalize:{'words.generated.produkt'}\",\"price\":\"Abteilungspreis\",\"price_required\":\"Jedes @.capitalize:{'words.generated.produkt'} @:{'words.generated.muss'} einen @:{'words.generated.nicht'}-negativen numerischen Preis @:{'words.generated.haben'}.\",\"setup_required_title\":\"Preiseinrichtung @:{'words.generated.erforderlich'}\",\"setup_required_message\":\"Ein Superuser @:{'words.generated.muss'} explizite @:{'words.generated.preise'} @:{'words.generated.fur'} alle @:{'words.generated.produkte'} @:{'words.generated.erstellen'}, @:{'words.generated.bevor'} @:{'words.generated.diese'} @:{'words.generated.abteilung'} hier verwaltet @:{'words.generated.werden'} @:{'words.generated.kann'}.\",\"no_products\":\"@.capitalize:{'words.generated.fur'} @:{'words.generated.diese'} @:{'words.generated.abteilung'} @:{'words.generated.sind'} @:{'words.generated.keine'} @:{'words.generated.produkte'} konfiguriert.\"},\"employees\":{\"title\":\"@.capitalize:{'words.generated.mitarbeiterzugriff'}\",\"subtitle\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.erstellen'} @:{'words.generated.und'} @:{'words.generated.eine'} @:{'words.generated.begrenzte'} @.capitalize:{'words.generated.rolle'} @:{'words.generated.fur'} Ihre @:{'words.generated.abteilungen'} zuweisen.\",\"create_title\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.erstellen'}\",\"edit_title\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.bearbeiten'}\",\"name\":\"Name\",\"email\":\"E-Mail\",\"user_id\":\"Benutzer-ID\",\"phone\":\"Telefon\",\"phone_validation\":\"Die Telefonnummer muss 4-15 Ziffern enthalten.\",\"country_codes\":{\"denmark\":\"Dänemark\",\"sweden\":\"Schweden\",\"norway\":\"Norwegen\",\"finland\":\"Finnland\"},\"password\":\"@:{'words.generated.passwort'}\",\"password_create_help\":\"@.capitalize:{'words.generated.fur'} neue @:{'words.generated.mitarbeiter'} @:{'words.generated.erforderlich'}. Verwenden @.capitalize:{'words.generated.sie'} @:{'words.generated.mindestens'} 8 Zeichen.\",\"password_update_help\":\"Leer lassen, um das vorhandene @:{'words.generated.passwort'} beizubehalten.\",\"role\":\"@.capitalize:{'words.generated.rolle'}\",\"departments\":\"@:{'words.generated.abteilungen'}\",\"department_required\":\"Wählen @.capitalize:{'words.generated.sie'} @:{'words.generated.mindestens'} @:{'words.generated.eine'} @:{'words.generated.abteilung'} @:{'words.generated.aus'}.\",\"validation\":\"Füllen @.capitalize:{'words.generated.sie'} die erforderlichen Felder @:{'words.generated.aus'}, @:{'words.generated.bevor'} @.capitalize:{'words.generated.sie'} @:{'words.generated.speichern'}.\",\"save\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.speichern'}\",\"created\":\"@:{'words.generated.mitarbeiter'} erstellt.\",\"saved\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.gespeichert'}.\",\"deactivated\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.deaktiviert'}.\",\"include_inactive\":\"Inaktive @:{'words.generated.anzeigen'}\",\"empty\":\"@.capitalize:{'words.generated.keine'} @:{'words.generated.mitarbeiter'} gefunden.\",\"status\":\"Status\",\"actions\":\"Aktionen\",\"active\":\"Aktiv\",\"inactive\":\"Inaktiv\",\"edit\":\"@.capitalize:{'words.generated.bearbeiten'}\",\"deactivate\":\"Deaktivieren\",\"login_link\":\"QR-Login\",\"login_link_title\":\"Mitarbeiter-Loginlink\",\"login_link_qr_alt\":\"QR-Code-Loginlink\",\"login_link_url\":\"Loginlink\",\"copy_login_link\":\"Link kopieren\",\"login_link_copied\":\"Link kopiert.\"},\"roles\":{\"viewer\":{\"label\":\"Deaktiviert\",\"description\":\"Hält den Mitarbeiter registriert, ohne Zugriff auf Auftrags-, Buchungs- oder Verwaltungsfunktionen.\"},\"cashier\":{\"label\":\"Kassierer\",\"description\":\"@.capitalize:{'words.generated.kann'} mit Aufträgen, Auftragszeilen @:{'words.generated.und'} @:{'words.generated.buchungen'} @:{'words.generated.fur'} @:{'words.generated.zugewiesene'} @:{'words.generated.abteilungen'} arbeiten.\"},\"booking_coordinator\":{\"label\":\"Buchungskoordinator\",\"description\":\"@.capitalize:{'words.generated.kann'} @:{'words.generated.buchungen'} @:{'words.generated.fur'} @:{'words.generated.zugewiesene'} @:{'words.generated.abteilungen'} @:{'words.generated.koordinieren'}.\"},\"operations_lead\":{\"label\":\"Betriebsleitung\",\"description\":\"@.capitalize:{'words.generated.kann'} Aufträge, @:{'words.generated.buchungen'} @:{'words.generated.und'} Betriebsansichten @:{'words.generated.fur'} @:{'words.generated.zugewiesene'} @:{'words.generated.abteilungen'} @:{'words.generated.koordinieren'}.\"},\"department_admin\":{\"label\":\"Abteilungsadministrator\",\"description\":\"@.capitalize:{'words.generated.kann'} @:{'words.generated.begrenzte'} @:{'words.generated.preise'} @:{'words.generated.und'} @.capitalize:{'words.generated.mitarbeiterzugriff'} @:{'words.generated.fur'} @:{'words.generated.zugewiesene'} @:{'words.generated.abteilungen'} @:{'words.generated.verwalten'}.\"}},\"errors\":{\"load_departments\":\"@:{'words.generated.abteilungen'} @:{'words.generated.konnten'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}.\",\"load_prices\":\"@.capitalize:{'words.generated.abteilungspreise'} @:{'words.generated.konnten'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}.\",\"save_prices\":\"@.capitalize:{'words.generated.abteilungspreise'} @:{'words.generated.konnten'} @:{'words.generated.nicht'} @:{'words.generated.gespeichert'} @:{'words.generated.werden'}.\",\"load_employees\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.konnten'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}.\",\"save_employee\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.gespeichert'} @:{'words.generated.werden'}.\",\"deactivate_employee\":\"@:{'words.generated.mitarbeiter'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.deaktiviert'} @:{'words.generated.werden'}.\",\"generate_employee_login_link\":\"Mitarbeiter-Loginlink konnte nicht erstellt werden.\"},\"role_permissions\":{\"title\":\"Rollenberechtigungen\",\"tooltip\":\"Rollenberechtigungen anzeigen\",\"intro\":\"Rollen bündeln die genauen Funktionen, die einem Mitarbeiter beim Speichern der Rolle zugewiesen werden.\",\"scope\":\"Jede Funktion ist auf die Abteilungen begrenzt, die für den Mitarbeiter ausgewählt sind.\",\"selected\":\"Ausgewählt\",\"close\":\"Schließen\",\"unavailable\":\"Berechtigungsdetails sind für diese Rolle erst verfügbar, wenn der Rollenkatalog aktualisiert wurde.\",\"groups\":{\"account\":\"Konto\",\"orders\":\"Aufträge\",\"products\":\"Produkte\",\"customers\":\"Kunden\",\"vehicles\":\"Fahrzeuge\",\"attachments\":\"Anhänge\",\"scanner\":\"Scanner\",\"bookings\":\"Buchungen\",\"time_bookings\":\"Zeitbuchungen\",\"reports\":\"Berichte\",\"limited_backoffice\":\"Backoffice\",\"unknown\":\"Sonstiges\"},\"capabilities\":{\"sign_in\":{\"label\":\"Anmelden\",\"description\":\"Erlaubt dem Mitarbeiter, sich bei Pleno anzumelden.\"},\"view_own_permissions\":{\"label\":\"Eigene Berechtigungen anzeigen\",\"description\":\"Zeigt dem Mitarbeiter, welche Zugriffsrechte das Konto hat.\"},\"view_orders\":{\"label\":\"Aufträge anzeigen\",\"description\":\"Kann Auftragslisten und Auftragsdetails für zugewiesene Abteilungen öffnen.\"},\"create_orders\":{\"label\":\"Aufträge erstellen\",\"description\":\"Kann neue Aufträge für zugewiesene Abteilungen erstellen.\"},\"edit_orders\":{\"label\":\"Aufträge bearbeiten\",\"description\":\"Kann Auftragsdetails für zugewiesene Abteilungen ändern.\"},\"delete_orders\":{\"label\":\"Aufträge löschen\",\"description\":\"Kann Aufträge in zugewiesenen Abteilungen löschen.\"},\"view_order_items\":{\"label\":\"Auftragspositionen anzeigen\",\"description\":\"Kann Produkte, Leistungen und Preise auf Aufträgen sehen.\"},\"create_order_items\":{\"label\":\"Auftragspositionen erstellen\",\"description\":\"Kann Produkte und Leistungen zu Aufträgen hinzufügen.\"},\"update_order_lines\":{\"label\":\"Auftragspositionen bearbeiten\",\"description\":\"Kann Produkte, Mengen und Preise auf Aufträgen ändern.\"},\"remove_order_lines\":{\"label\":\"Auftragspositionen löschen\",\"description\":\"Kann Produkte und Leistungen aus Aufträgen entfernen.\"},\"charge_orders\":{\"label\":\"Aufträge abrechnen\",\"description\":\"Kann Zahlungen annehmen oder eine Zahlungsreservierung für einen Auftrag belasten.\"},\"complete_orders\":{\"label\":\"Aufträge abschließen\",\"description\":\"Kann Aufträge als abgeschlossen markieren.\"},\"view_product_catalog\":{\"label\":\"Produktkatalog anzeigen\",\"description\":\"Kann POS-Kategorien, Produkte, Preise und Zusatzoptionen laden.\"},\"view_product_recommendations\":{\"label\":\"Produktempfehlungen anzeigen\",\"description\":\"Kann Produktempfehlungen auf Basis von Aufträgen und Fahrzeugdaten sehen.\"},\"search_customers\":{\"label\":\"Kunden suchen\",\"description\":\"Kann Kunden für POS-Aufträge suchen und auswählen.\"},\"view_customer_details\":{\"label\":\"Kundendetails anzeigen\",\"description\":\"Kann Kundendetails anhand einer Kundennummer laden.\"},\"view_customer_notes\":{\"label\":\"Kundennotizen anzeigen\",\"description\":\"Kann Kundennotizen im POS lesen.\"},\"add_customer_notes\":{\"label\":\"Kundennotizen hinzufügen\",\"description\":\"Kann Kundennotizen im POS hinzufügen.\"},\"view_customer_flags\":{\"label\":\"Kundenmarkierungen anzeigen\",\"description\":\"Kann Kundenmarkierungen sehen, die Auftragsanforderungen und Produktregeln beeinflussen.\"},\"search_vehicles\":{\"label\":\"Fahrzeuge suchen\",\"description\":\"Kann Kennzeichen suchen und den Fahrzeugstatus sehen.\"},\"view_vehicle_matches\":{\"label\":\"Fahrzeugtreffer anzeigen\",\"description\":\"Kann Kundentreffer für Fahrzeuge und Vorschläge zu unbekannten Fahrzeugen sehen.\"},\"view_vehicle_history\":{\"label\":\"Fahrzeughistorie anzeigen\",\"description\":\"Kann die letzte Auftragshistorie für ein Kennzeichen sehen.\"},\"view_order_attachments\":{\"label\":\"Auftragsanhänge anzeigen\",\"description\":\"Kann Anhänge auf Aufträgen auflisten.\"},\"add_order_attachments\":{\"label\":\"Auftragsanhänge hinzufügen\",\"description\":\"Kann Dateien hochladen und Waschzertifikate an Aufträge anhängen.\"},\"download_order_attachments\":{\"label\":\"Auftragsanhänge herunterladen\",\"description\":\"Kann Auftragsanhänge öffnen und herunterladen.\"},\"view_plate_scans\":{\"label\":\"Kennzeichenscans anzeigen\",\"description\":\"Kann aktuelle Kennzeichenscans und Scanner für zugewiesene Abteilungen sehen.\"},\"view_department_bookings\":{\"label\":\"Abteilungsbuchungen anzeigen\",\"description\":\"Kann Buchungen für zugewiesene Abteilungen sehen.\"},\"view_own_bookings\":{\"label\":\"Eigene Buchungen anzeigen\",\"description\":\"Kann Buchungszahlen und Buchungen sehen, die mit dem Mitarbeiterkonto verbunden sind.\"},\"update_bookings\":{\"label\":\"Buchungen bearbeiten\",\"description\":\"Kann erlaubte Buchungsdetails ändern.\"},\"create_bookings\":{\"label\":\"Buchungen erstellen\",\"description\":\"Kann neue Buchungen für zugewiesene Abteilungen erstellen.\"},\"mark_bookings_complete\":{\"label\":\"Buchungen abschließen\",\"description\":\"Kann Buchungen als abgeschlossen markieren.\"},\"send_booking_confirmations\":{\"label\":\"Buchungsbestätigungen erneut senden\",\"description\":\"Kann Buchungsbestätigungen und Abschluss-E-Mails erneut senden.\"},\"view_time_booking_entries\":{\"label\":\"Zeitbuchungen anzeigen\",\"description\":\"Kann Zeitbuchungseinträge für zugewiesene Abteilungen prüfen.\"},\"create_time_booking_entries\":{\"label\":\"Zeitbuchungen erstellen\",\"description\":\"Kann neue Zeitbuchungseinträge hinzufügen.\"},\"edit_time_booking_entries\":{\"label\":\"Zeitbuchungen bearbeiten\",\"description\":\"Kann Zeitbuchungseinträge bearbeiten, wenn die Backend-Route dies unterstützt.\"},\"view_order_statistics\":{\"label\":\"Auftragsstatistik anzeigen\",\"description\":\"Kann Auftragsstatistiken für zugewiesene Abteilungen öffnen.\"},\"view_booking_statistics\":{\"label\":\"Buchungsstatistik anzeigen\",\"description\":\"Kann Buchungsstatistiken für zugewiesene Abteilungen öffnen.\"},\"open_limited_backoffice\":{\"label\":\"Begrenztes Backoffice öffnen\",\"description\":\"Kann den begrenzten Backofficebereich öffnen.\"},\"manage_department_prices\":{\"label\":\"Abteilungspreise verwalten\",\"description\":\"Kann explizite Preise für zugewiesene Abteilungen bearbeiten.\"},\"view_customer_pricing\":{\"label\":\"View customer pricing\",\"description\":\"Can view department-specific customer prices and discounts for assigned departments.\"},\"manage_customer_pricing\":{\"label\":\"Manage customer pricing\",\"description\":\"Can edit department-specific customer prices and discounts for assigned departments.\"},\"manage_employee_access\":{\"label\":\"Mitarbeiterzugang verwalten\",\"description\":\"Kann begrenzte Backoffice-Mitarbeiter erstellen, bearbeiten und deaktivieren.\"},\"unknown\":{\"label\":\"Zusätzliche Funktion\",\"description\":\"Diese Funktion kommt aus dem Rollenkatalog, ist aber in der Oberfläche noch nicht beschrieben.\"}}}}}}}");
const deV2 = {
  words: words$1,
  templates: templates$1,
};

const words = /* #__PURE__ */ JSON.parse("{\"grammar\":{},\"actions\":{},\"entities\":{},\"statuses\":{},\"domain\":{},\"services\":{},\"units\":{},\"replication\":{\"article\":{\"host_mention\":\"den\"},\"adjective\":{\"primary_host_mention\":\"primære\"},\"host\":\"vert\",\"host_definite_suffix\":\"en\",\"services\":{\"database\":\"database\",\"redis\":\"Redis\",\"minio\":\"MinIO\"}},\"generated\":{\"økonomisk\":\"økonomisk\",\"økonomiske\":\"økonomiske\",\"ønsker\":\"ønsker\",\"ønsket\":\"ønsket\",\"øyeblikket\":\"øyeblikket\",\"a\":\"å\",\"a_2\":\"a\",\"aapne\":\"Aapne\",\"abonnement\":\"abonnement\",\"abonnementer\":\"abonnementer\",\"active\":\"active\",\"add\":\"add\",\"additional\":\"additional\",\"admin\":\"Admin\",\"administrasjons\":\"administrasjons\",\"administrasjonsgebyr\":\"Administrasjonsgebyr\",\"administration\":\"administration\",\"administrator\":\"Administrator\",\"administrer\":\"administrer\",\"administrere\":\"administrere\",\"advarsler\":\"advarsler\",\"again\":\"again\",\"akkurat\":\"akkurat\",\"aktiv\":\"aktiv\",\"aktive\":\"aktive\",\"aktiver\":\"Aktiver\",\"aktivert\":\"aktivert\",\"aktuelle\":\"aktuelle\",\"alert\":\"alert\",\"all\":\"all\",\"alle\":\"alle\",\"allerede\":\"allerede\",\"allow\":\"allow\",\"already\":\"already\",\"alt\":\"alt\",\"alternativer\":\"alternativer\",\"an\":\"an\",\"and\":\"and\",\"andel\":\"andel\",\"andre\":\"andre\",\"angi\":\"Angi\",\"angre\":\"angre\",\"angres\":\"angres\",\"annen\":\"annen\",\"annet\":\"annet\",\"ansatt\":\"ansatt\",\"ansatte\":\"ansatte\",\"antall\":\"antall\",\"apen\":\"Åpen\",\"api\":\"API\",\"apne\":\"åpne\",\"apnes\":\"åpnes\",\"apningstid\":\"åpningstid\",\"apningstider\":\"åpningstider\",\"app\":\"app\",\"appen\":\"appen\",\"apply\":\"apply\",\"ar\":\"år\",\"are\":\"are\",\"arrangementer\":\"arrangementer\",\"arsak\":\"arsak\",\"as\":\"as\",\"assign\":\"Assign\",\"at\":\"at\",\"aterstall\":\"Återställ\",\"attached\":\"attached\",\"autentisere\":\"autentisere\",\"autentisering\":\"autentisering\",\"autentiseringsappen\":\"autentiseringsappen\",\"automatisk\":\"automatisk\",\"av\":\"av\",\"available\":\"available\",\"avbrutt\":\"avbrutt\",\"avbryt\":\"Avbryt\",\"avbryter\":\"Avbryter\",\"avdeling\":\"avdeling\",\"avdelingen\":\"avdelingen\",\"avdelingene\":\"avdelingene\",\"avdelingens\":\"avdelingens\",\"avdelinger\":\"avdelinger\",\"avdelings\":\"avdelings\",\"avdelingsbaner\":\"avdelingsbaner\",\"avdelingsbevilgninger\":\"Avdelingsbevilgninger\",\"avdelingskategorier\":\"avdelingskategorier\",\"avdelingsnavn\":\"avdelingsnavn\",\"avdelingsport\":\"avdelingsport\",\"avdelingsporter\":\"avdelingsporter\",\"avdelingspriser\":\"avdelingspriser\",\"avdelingsreleer\":\"avdelingsreleer\",\"avdelingsstafett\":\"avdelingsstafett\",\"avdelingsstafetter\":\"avdelingsstafetter\",\"avdelingsvariabler\":\"avdelingsvariabler\",\"avgift\":\"avgift\",\"avsenderidentitet\":\"Avsenderidentitet\",\"avsenderidentiteten\":\"avsenderidentiteten\",\"avsluttede\":\"avsluttede\",\"avtale\":\"avtale\",\"avtaler\":\"avtaler\",\"back\":\"back\",\"backup\":\"backup\",\"bak\":\"bak\",\"bare\":\"bare\",\"basket\":\"basket\",\"be\":\"be\",\"because\":\"because\",\"bedre\":\"bedre\",\"been\":\"been\",\"behandle\":\"behandle\",\"behandler\":\"Behandler\",\"behold\":\"Behold\",\"beholdes\":\"beholdes\",\"bekreft\":\"bekreft\",\"bekrefte\":\"bekrefte\",\"bekreftelse\":\"bekreftelse\",\"bekreftet\":\"bekreftet\",\"belastes\":\"belastes\",\"beløp\":\"beløp\",\"bemannet\":\"bemannet\",\"beskyttet\":\"beskyttet\",\"best\":\"best\",\"bestill\":\"Bestill\",\"bestille\":\"bestille\",\"bestilles\":\"bestilles\",\"bestilling\":\"bestilling\",\"bestillingen\":\"bestillingen\",\"bestillinger\":\"bestillinger\",\"bestillings\":\"bestillings\",\"bestillingsbekreftelser\":\"bestillingsbekreftelser\",\"bestillingsdetaljer\":\"bestillingsdetaljer\",\"bestillingsinformasjon\":\"Bestillingsinformasjon\",\"bestillingsnummer\":\"bestillingsnummer\",\"bestillingstyper\":\"bestillingstyper\",\"besvart\":\"besvart\",\"betaling\":\"betaling\",\"betalingen\":\"betalingen\",\"betalinger\":\"betalinger\",\"betalingsbetingelser\":\"betalingsbetingelser\",\"betalingsform\":\"betalingsform\",\"betalingskort\":\"Betalingskort\",\"betalingslenke\":\"betalingslenke\",\"betalingslenken\":\"betalingslenken\",\"betalingsstatus\":\"betalingsstatus\",\"betalt\":\"betalt\",\"betingelse\":\"betingelse\",\"bilde\":\"bilde\",\"bilder\":\"bilder\",\"bilskilt\":\"bilskilt\",\"binary\":\"binary\",\"ble\":\"ble\",\"bli\":\"bli\",\"blir\":\"blir\",\"block\":\"Block\",\"blockers\":\"blockers\",\"bogført\":\"bogført\",\"bokført\":\"bokført\",\"bokvask\":\"bokvask\",\"booket\":\"booket\",\"booking\":\"booking\",\"bookinger\":\"bookinger\",\"bookingportalen\":\"bookingportalen\",\"bookings\":\"bookings\",\"bruk\":\"bruk\",\"bruker\":\"bruker\",\"brukerdata\":\"brukerdata\",\"brukere\":\"brukere\",\"brukernavn\":\"brukernavn\",\"brukernavnet\":\"Brukernavnet\",\"brukerrabatt\":\"brukerrabatt\",\"brukes\":\"brukes\",\"bucket\":\"bucket\",\"buckets\":\"buckets\",\"but\":\"but\",\"by\":\"by\",\"bytes\":\"bytes\",\"bytt\":\"Bytt\",\"byttes\":\"byttes\",\"ca\":\"ca\",\"cache\":\"cache\",\"certificate\":\"certificate\",\"changes\":\"changes\",\"checked\":\"checked\",\"choose\":\"Choose\",\"chrome\":\"Chrome\",\"cleaning\":\"cleaning\",\"clone\":\"Clone\",\"close\":\"Close\",\"collection\":\"collection\",\"collections\":\"collections\",\"company\":\"company\",\"complaint\":\"complaint\",\"complaints\":\"complaints\",\"complete\":\"complete\",\"completed\":\"completed\",\"compose\":\"compose\",\"conditions\":\"conditions\",\"config\":\"config\",\"configuration\":\"configuration\",\"configure\":\"configure\",\"configured\":\"configured\",\"confirmed\":\"confirmed\",\"connection\":\"connection\",\"connectivity\":\"connectivity\",\"conomic\":\"conomic\",\"contains\":\"contains\",\"conversion\":\"conversion\",\"could\":\"could\",\"cpu\":\"CPU\",\"create\":\"create\",\"created\":\"Created\",\"credentials\":\"credentials\",\"current\":\"current\",\"customer\":\"customer\",\"customers\":\"customers\",\"cvr\":\"CVR\",\"d\":\"D\",\"dag\":\"dag\",\"dagen\":\"dagen\",\"dagens\":\"dagens\",\"dager\":\"dager\",\"daglig\":\"daglig\",\"daglige\":\"daglige\",\"dashboard\":\"Dashboard\",\"dashbord\":\"dashbord\",\"data\":\"data\",\"date\":\"date\",\"dato\":\"dato\",\"de\":\"de\",\"deaktiver\":\"deaktiver\",\"deaktivere\":\"deaktivere\",\"deaktivert\":\"deaktivert\",\"default\":\"default\",\"deg\":\"deg\",\"del\":\"Del\",\"dele\":\"dele\",\"delete\":\"Delete\",\"delt\":\"delt\",\"denne\":\"denne\",\"department\":\"department\",\"departments\":\"departments\",\"der\":\"der\",\"derfor\":\"derfor\",\"destination\":\"destination\",\"det\":\"det\",\"detaljer\":\"detaljer\",\"dette\":\"dette\",\"device\":\"device\",\"diagnostikk\":\"diagnostikk\",\"did\":\"did\",\"differs\":\"differs\",\"digitale\":\"digitale\",\"din\":\"din\",\"dine\":\"dine\",\"direkte\":\"direkte\",\"disabled\":\"disabled\",\"discounts\":\"discounts\",\"distribusjon\":\"Distribusjon\",\"ditt\":\"ditt\",\"dkk\":\"DKK\",\"docker\":\"docker\",\"does\":\"does\",\"døgnvask\":\"Døgnvask\",\"draft\":\"draft\",\"driver\":\"driver\",\"du\":\"du\",\"duplikater\":\"duplikater\",\"due\":\"Forfalt\",\"duration\":\"duration\",\"e\":\"e\",\"edge\":\"edge\",\"egen\":\"egen\",\"eiendommens\":\"eiendommens\",\"ekskluder\":\"Ekskluder\",\"ekskludert\":\"ekskludert\",\"ekspeditører\":\"ekspeditører\",\"eksport\":\"eksport\",\"eksporteres\":\"eksporteres\",\"ekstra\":\"ekstra\",\"eldre\":\"eldre\",\"element\":\"element\",\"elementer\":\"elementer\",\"eller\":\"eller\",\"email\":\"email\",\"employee\":\"employee\",\"employees\":\"employees\",\"enable\":\"Enable\",\"enabled\":\"enabled\",\"end\":\"end\",\"endpoint\":\"endpoint\",\"endre\":\"endre\",\"endret\":\"endret\",\"endringer\":\"endringer\",\"enhet\":\"enhet\",\"enheten\":\"enheten\",\"enhetstyper\":\"enhetstyper\",\"enna\":\"ennå\",\"enter\":\"Enter\",\"entire\":\"entire\",\"env\":\"env\",\"er\":\"er\",\"error\":\"error\",\"estimert\":\"Estimert\",\"et\":\"et\",\"ett\":\"ett\",\"etter\":\"etter\",\"exempt\":\"exempt\",\"exist\":\"exist\",\"expected\":\"expected\",\"fa\":\"få\",\"failed\":\"failed\",\"faktura\":\"faktura\",\"fakturaen\":\"fakturaen\",\"fakturaer\":\"fakturaer\",\"fakturainformasjon\":\"fakturainformasjon\",\"fakturainnkreving\":\"fakturainnkreving\",\"fakturamal\":\"fakturamal\",\"fakturanummer\":\"fakturanummer\",\"fakturasamlingen\":\"fakturasamlingen\",\"fakturering\":\"fakturering\",\"faktureringsregel\":\"faktureringsregel\",\"fakturert\":\"fakturert\",\"fallback\":\"fallback\",\"false\":\"false\",\"falsk\":\"falsk\",\"fane\":\"fane\",\"far\":\"får\",\"fast\":\"Fast\",\"fastpris\":\"fastpris\",\"fastprisavtaler\":\"fastprisavtaler\",\"fee\":\"fee\",\"feil\":\"feil\",\"feilmelding\":\"feilmelding\",\"fell\":\"fell\",\"felt\":\"felt\",\"feltet\":\"feltet\",\"ferdig\":\"ferdig\",\"fil\":\"fil\",\"filen\":\"filen\",\"filer\":\"filer\",\"fill\":\"fill\",\"filter\":\"filter\",\"filters\":\"filters\",\"filtre\":\"filtre\",\"filtrer\":\"Filtrer\",\"finn\":\"Finn\",\"finner\":\"finner\",\"finnes\":\"finnes\",\"fixed\":\"fixed\",\"fjern\":\"fjern\",\"fjernes\":\"fjernes\",\"fjernet\":\"fjernet\",\"fjor\":\"fjor\",\"flagg\":\"flagg\",\"flere\":\"flere\",\"følg\":\"følg\",\"for\":\"for\",\"før\":\"før\",\"forbindelsen\":\"forbindelsen\",\"fordeling\":\"fordeling\",\"fordelingsendepunkter\":\"fordelingsendepunkter\",\"fordi\":\"fordi\",\"fordon\":\"fordon\",\"forening\":\"forening\",\"forespørselsgrensen\":\"forespørselsgrensen\",\"forhandsvisning\":\"forhåndsvisning\",\"forhold\":\"forhold\",\"forrige\":\"forrige\",\"først\":\"først\",\"fortsett\":\"fortsett\",\"fortsette\":\"fortsette\",\"forventet\":\"forventet\",\"found\":\"found\",\"fra\":\"fra\",\"frakoblet\":\"frakoblet\",\"free\":\"free\",\"from\":\"from\",\"fullfør\":\"Fullfør\",\"fullføre\":\"fullføre\",\"fullfører\":\"Fullfører\",\"fullføres\":\"fullføres\",\"fullført\":\"fullført\",\"funksjonen\":\"funksjonen\",\"funnet\":\"funnet\",\"fx\":\"FX\",\"fxratesapi\":\"FXRatesAPI\",\"fylt\":\"fylt\",\"g\":\"g\",\"ga\":\"gå\",\"gammel\":\"gammel\",\"gang\":\"gang\",\"gar\":\"går\",\"gateway\":\"gateway\",\"gateways\":\"gateways\",\"gatewaystatus\":\"gatewaystatus\",\"general\":\"General\",\"generate\":\"Generate\",\"generated\":\"generated\",\"generelle\":\"generelle\",\"generer\":\"Generer\",\"generert\":\"generert\",\"get\":\"Get\",\"gi\":\"gi\",\"gj\":\"gj\",\"gjeldende\":\"gjeldende\",\"gjenoppbygging\":\"Gjenoppbygging\",\"gjest\":\"gjest\",\"gjøre\":\"gjøre\",\"goal\":\"goal\",\"google\":\"Google\",\"gruppe\":\"gruppe\",\"grupperte\":\"grupperte\",\"gtid\":\"GTID\",\"gyldig\":\"gyldig\",\"handling\":\"handling\",\"handlinger\":\"handlinger\",\"handtere\":\"håndtere\",\"hantera\":\"Hantera\",\"har\":\"har\",\"has\":\"has\",\"have\":\"have\",\"hele\":\"hele\",\"hemmelig\":\"hemmelig\",\"hemmelighet\":\"hemmelighet\",\"hendelser\":\"hendelser\",\"hent\":\"Hent\",\"henter\":\"henter\",\"hentet\":\"hentet\",\"henting\":\"Henting\",\"her\":\"her\",\"historiske\":\"historiske\",\"hjelp\":\"hjelp\",\"hold\":\"Hold\",\"hos\":\"hos\",\"host\":\"host\",\"høyre\":\"høyre\",\"http\":\"HTTP\",\"hver\":\"hver\",\"hvilken\":\"hvilken\",\"hvis\":\"hvis\",\"hvordan\":\"hvordan\",\"i\":\"i\",\"id\":\"id\",\"igjen\":\"igjen\",\"ignorer\":\"Ignorer\",\"ikke\":\"ikke\",\"import\":\"import\",\"importer\":\"Importer\",\"in\":\"in\",\"incomplete\":\"incomplete\",\"informasjon\":\"informasjon\",\"ingen\":\"ingen\",\"inkl\":\"inkl\",\"inkluder\":\"Inkluder\",\"inkludert\":\"inkludert\",\"inn\":\"inn\",\"inne\":\"inne\",\"innhold\":\"innhold\",\"innlasting\":\"innlasting\",\"innlogging\":\"innlogging\",\"innsamlede\":\"innsamlede\",\"innskrevne\":\"innskrevne\",\"innstillingene\":\"innstillingene\",\"innstillinger\":\"innstillinger\",\"inntekt\":\"inntekt\",\"innvendig\":\"innvendig\",\"installasjon\":\"installasjon\",\"installer\":\"installer\",\"installere\":\"installere\",\"installerte\":\"installerte\",\"integrasjon\":\"integrasjon\",\"integrasjonen\":\"integrasjonen\",\"integrasjoner\":\"integrasjoner\",\"integration\":\"integration\",\"intent\":\"intent\",\"interessenter\":\"interessenter\",\"interior\":\"interior\",\"internettforbindelse\":\"internettforbindelse\",\"internt\":\"internt\",\"intranett\":\"intranett\",\"invalid\":\"invalid\",\"invoice\":\"invoice\",\"invoices\":\"invoices\",\"io\":\"io\",\"iphone\":\"iPhone\",\"is\":\"is\",\"iso\":\"ISO\",\"it\":\"IT\",\"items\":\"items\",\"ja\":\"ja\",\"jeg\":\"jeg\",\"json\":\"JSON\",\"kalender\":\"kalender\",\"kamera\":\"kamera\",\"kan\":\"kan\",\"kanseller\":\"Kanseller\",\"kansellere\":\"kansellere\",\"kansellert\":\"kansellert\",\"kategori\":\"kategori\",\"kategorier\":\"kategorier\",\"keep\":\"Keep\",\"key\":\"key\",\"kilde\":\"kilde\",\"kjør\":\"Kjør\",\"kjøretøy\":\"kjøretøy\",\"kjøretøyabonnementer\":\"kjøretøyabonnementer\",\"kjøretøydetaljer\":\"kjøretøydetaljer\",\"kjøretøyene\":\"kjøretøyene\",\"kjøretøyet\":\"kjøretøyet\",\"kjøretøyets\":\"kjøretøyets\",\"kjoretoykunde\":\"kjoretoykunde\",\"kjoretoykunden\":\"kjoretoykunden\",\"kjøretøytype\":\"kjøretøytype\",\"kjøretøytyper\":\"kjøretøytyper\",\"kjøretøyvaskere\":\"kjøretøyvaskere\",\"kladder\":\"kladder\",\"klar\":\"klar\",\"klare\":\"klare\",\"klesvask\":\"klesvask\",\"klient\":\"Klient\",\"klikk\":\"klikk\",\"klokkeslett\":\"klokkeslett\",\"kø\":\"kø\",\"koble\":\"koble\",\"kode\":\"kode\",\"koden\":\"koden\",\"komme\":\"komme\",\"kommer\":\"kommer\",\"konfigurasjon\":\"konfigurasjon\",\"konfigurer\":\"Konfigurer\",\"konfigurerte\":\"konfigurerte\",\"konkurransedyktige\":\"konkurransedyktige\",\"kontakt\":\"kontakt\",\"kontaktinformasjon\":\"kontaktinformasjon\",\"kontanter\":\"kontanter\",\"konto\":\"konto\",\"kontoen\":\"kontoen\",\"koordinere\":\"koordinere\",\"kopier\":\"Kopier\",\"kopiere\":\"kopiere\",\"kopierer\":\"Kopierer\",\"kopiert\":\"kopiert\",\"køretøjer\":\"køretøjer\",\"kort\":\"kort\",\"kortbetaling\":\"Kortbetaling\",\"kredittkonto\":\"kredittkonto\",\"krever\":\"krever\",\"kreves\":\"kreves\",\"kun\":\"kun\",\"kund\":\"kund\",\"kunde\":\"kunde\",\"kundefaktura\":\"Kundefaktura\",\"kunden\":\"kunden\",\"kundens\":\"Kundens\",\"kundenummer\":\"kundenummer\",\"kundeønsker\":\"Kundeønsker\",\"kundeportal\":\"Kundeportal\",\"kundepriser\":\"Kundepriser\",\"kunder\":\"kunder\",\"kunne\":\"kunne\",\"kvittering\":\"kvittering\",\"lag\":\"Lag\",\"lage\":\"lage\",\"lagg\":\"Lägg\",\"lagre\":\"lagre\",\"lagres\":\"lagres\",\"lagret\":\"lagret\",\"lagt\":\"lagt\",\"landet\":\"landet\",\"lane\":\"Lane\",\"last\":\"last\",\"laste\":\"laste\",\"lastebil\":\"lastebil\",\"lastebilvask\":\"lastebilvask\",\"laster\":\"laster\",\"lastes\":\"lastes\",\"lastet\":\"lastet\",\"least\":\"least\",\"leder\":\"Leder\",\"legacy\":\"legacy\",\"legg\":\"Legg\",\"legge\":\"legge\",\"lenken\":\"lenken\",\"lese\":\"lese\",\"lest\":\"lest\",\"limble\":\"Limble\",\"linje\":\"linje\",\"linjen\":\"linjen\",\"link\":\"link\",\"list\":\"List\",\"liste\":\"liste\",\"load\":\"load\",\"loading\":\"Loading\",\"log\":\"log\",\"logg\":\"logg\",\"logge\":\"logge\",\"logget\":\"logget\",\"logging\":\"logging\",\"lojalitetspoeng\":\"lojalitetspoeng\",\"lookup\":\"lookup\",\"lookups\":\"lookups\",\"losenord\":\"lösenord\",\"løsninger\":\"løsninger\",\"lukk\":\"Lukk\",\"lukket\":\"lukket\",\"ma\":\"må\",\"machine\":\"machine\",\"mai\":\"mai\",\"mailersend\":\"Mailersend\",\"mailersend_mailersend\":\"MailerSend\",\"mal\":\"mål\",\"managed\":\"managed\",\"maned\":\"måned\",\"maneden\":\"måneden\",\"maneder\":\"måneder\",\"manedlig\":\"månedlig\",\"manedlige\":\"månedlige\",\"mangler\":\"mangler\",\"manual\":\"Manual\",\"manuelt\":\"manuelt\",\"mariadb\":\"MariaDB\",\"maskin\":\"maskin\",\"matcher\":\"matcher\",\"materialene\":\"materialene\",\"med\":\"med\",\"medarbeider\":\"medarbeider\",\"medarbeidere\":\"medarbeidere\",\"medarbeideren\":\"medarbeideren\",\"medarbeidertilgang\":\"medarbeidertilgang\",\"memory\":\"Memory\",\"men\":\"men\",\"mens\":\"mens\",\"mer\":\"mer\",\"merk\":\"Merk\",\"merkevarebygging\":\"merkevarebygging\",\"merknad\":\"merknad\",\"meta\":\"meta\",\"metrics\":\"metrics\",\"microsoft\":\"Microsoft\",\"migrering\":\"migrering\",\"miljøgebyr\":\"miljøgebyr\",\"miljøgebyret\":\"miljøgebyret\",\"min\":\"Min\",\"mindre\":\"mindre\",\"mine\":\"mine\",\"minst\":\"minst\",\"minute\":\"minute\",\"minutes\":\"minutes\",\"mislyktes\":\"mislyktes\",\"missing\":\"missing\",\"mm\":\"mm\",\"mobile\":\"mobile\",\"mode\":\"mode\",\"module\":\"module\",\"modules\":\"modules\",\"modulhandlingslogger\":\"modulhandlingslogger\",\"month\":\"month\",\"monthly\":\"monthly\",\"months\":\"months\",\"motor\":\"Motor\",\"motorapi\":\"MotorAPI\",\"motta\":\"motta\",\"mottar\":\"mottar\",\"mottatt\":\"mottatt\",\"mulig\":\"mulig\",\"mulige\":\"mulige\",\"mulighet\":\"mulighet\",\"multiple\":\"multiple\",\"must\":\"must\",\"mva\":\"MVA\",\"mva_mva\":\"Mva\",\"mysql\":\"MySQL\",\"na\":\"nå\",\"nærmeste\":\"nærmeste\",\"name\":\"name\",\"nar\":\"når\",\"nas\":\"nås\",\"nasjonale\":\"nasjonale\",\"naværende\":\"nåværende\",\"navn\":\"navn\",\"navnet\":\"Navnet\",\"ned\":\"ned\",\"nedenfor\":\"nedenfor\",\"nedlasting\":\"nedlasting\",\"nei\":\"nei\",\"neste\":\"neste\",\"nettleser\":\"nettleser\",\"nettlesermenyen\":\"nettlesermenyen\",\"nettverk\":\"nettverk\",\"new\":\"new\",\"newer\":\"newer\",\"no\":\"no\",\"nødvendig\":\"nødvendig\",\"noen\":\"noen\",\"nøgle\":\"nøgle\",\"nøkkel\":\"nøkkel\",\"nøkkelen\":\"nøkkelen\",\"none\":\"None\",\"not\":\"not\",\"notat\":\"notat\",\"notater\":\"notater\",\"note\":\"Note\",\"nullstill\":\"Nullstill\",\"number\":\"number\",\"numbers\":\"numbers\",\"nummer\":\"nummer\",\"nummerskilt\":\"nummerskilt\",\"nummerskiltskannere\":\"nummerskiltskannere\",\"ny\":\"ny\",\"nye\":\"nye\",\"nytt\":\"nytt\",\"nyttelast\":\"nyttelast\",\"objekt\":\"objekt\",\"objekter\":\"objekter\",\"occurred\":\"occurred\",\"of\":\"of\",\"office\":\"office\",\"og\":\"og\",\"ok\":\"OK\",\"ok_ok\":\"Ok\",\"om\":\"om\",\"omfanget\":\"omfanget\",\"omsetning\":\"omsetning\",\"on\":\"on\",\"one\":\"one\",\"only\":\"only\",\"ons\":\"ons\",\"open\":\"Open\",\"openai\":\"OpenAI\",\"opp\":\"opp\",\"oppdater\":\"Oppdater\",\"oppdatert\":\"Oppdatert\",\"oppgave\":\"oppgave\",\"oppgaver\":\"oppgaver\",\"oppgi\":\"oppgi\",\"oppgitt\":\"oppgitt\",\"opplasting\":\"opplasting\",\"opprett\":\"Opprett\",\"opprette\":\"opprette\",\"opprettelsen\":\"opprettelsen\",\"oppretter\":\"Oppretter\",\"opprettet\":\"opprettet\",\"oppretting\":\"oppretting\",\"oppsett\":\"oppsett\",\"oppsto\":\"oppsto\",\"oppstod\":\"oppstod\",\"opret\":\"Opret\",\"optional\":\"optional\",\"or\":\"or\",\"oracle\":\"Oracle\",\"order\":\"order\",\"orders\":\"orders\",\"ordre\":\"ordre\",\"ordrebestillinger\":\"ordrebestillinger\",\"ordrefakturaer\":\"ordrefakturaer\",\"ordrelinjer\":\"ordrelinjer\",\"ordren\":\"ordren\",\"ordreoppretting\":\"ordreoppretting\",\"ordrer\":\"ordrer\",\"ordretilknytning\":\"ordretilknytning\",\"oss\":\"oss\",\"over\":\"over\",\"overføring\":\"overføring\",\"overføringer\":\"overføringer\",\"oversikt\":\"oversikt\",\"pa\":\"på\",\"pagar\":\"pågår\",\"page\":\"page\",\"pakrevd\":\"påkrevd\",\"palogging\":\"pålogging\",\"parser\":\"parser\",\"passer\":\"passer\",\"passnøkkel\":\"passnøkkel\",\"passnøkkelen\":\"passnøkkelen\",\"passnøkler\":\"passnøkler\",\"passord\":\"passord\",\"passordene\":\"Passordene\",\"passordet\":\"passordet\",\"password\":\"password\",\"payload\":\"payload\",\"payment\":\"payment\",\"pdf\":\"PDF\",\"per\":\"per\",\"period\":\"period\",\"periode\":\"periode\",\"plassholder\":\"Plassholder\",\"plate\":\"Plate\",\"plater\":\"plater\",\"please\":\"Please\",\"pleno\":\"Pleno\",\"plugin\":\"plugin\",\"pluss\":\"pluss\",\"po\":\"PO\",\"populære\":\"Populære\",\"popupen\":\"popupen\",\"port\":\"port\",\"portal\":\"portal\",\"porter\":\"porter\",\"pos\":\"POS\",\"post\":\"post\",\"postadresse\":\"postadresse\",\"postadressen\":\"postadressen\",\"posten\":\"posten\",\"poster\":\"poster\",\"postnummer\":\"postnummer\",\"postvarsler\":\"postvarsler\",\"press\":\"Press\",\"prices\":\"prices\",\"pricing\":\"pricing\",\"primary\":\"primary\",\"pris\":\"pris\",\"priser\":\"priser\",\"probe\":\"probe\",\"problemer\":\"problemer\",\"proc\":\"proc\",\"processed\":\"Processed\",\"product\":\"product\",\"produkt\":\"produkt\",\"produktalternativer\":\"produktalternativer\",\"produkter\":\"produkter\",\"produktnavn\":\"produktnavn\",\"produktsalg\":\"produktsalg\",\"produkttillegg\":\"produkttillegg\",\"profil\":\"profil\",\"progress\":\"progress\",\"prøv\":\"prøv\",\"prøver\":\"Prøver\",\"provide\":\"Provide\",\"provision\":\"provision\",\"provisioning\":\"provisioning\",\"qr\":\"QR\",\"rabatt\":\"rabatt\",\"rader\":\"Rader\",\"rapport\":\"rapport\",\"rapportdetaljer\":\"rapportdetaljer\",\"rapporter\":\"rapporter\",\"raskt\":\"raskt\",\"rates\":\"rates\",\"read\":\"read\",\"recent\":\"recent\",\"recipient\":\"recipient\",\"rediger\":\"Rediger\",\"redigeringsrettigheter\":\"redigeringsrettigheter\",\"referanse\":\"referanse\",\"referansenummer\":\"referansenummer\",\"reference\":\"reference\",\"refresh\":\"refresh\",\"reg\":\"reg\",\"registered\":\"registered\",\"registration\":\"registration\",\"registrer\":\"registrer\",\"registrere\":\"registrere\",\"registrering\":\"registrering\",\"registreringsnummer\":\"registreringsnummer\",\"registreringsskylt\":\"registreringsskylt\",\"registrert\":\"registrert\",\"regler\":\"regler\",\"rekkefølge\":\"rekkefølge\",\"relay\":\"relay\",\"rele\":\"relé\",\"released\":\"released\",\"releer\":\"reléer\",\"relevante\":\"relevante\",\"removed\":\"removed\",\"rename\":\"gi nytt navn\",\"replica\":\"replica\",\"replicas\":\"replicas\",\"replication\":\"replication\",\"reports\":\"reports\",\"request\":\"request\",\"requests\":\"requests\",\"require\":\"Require\",\"required\":\"required\",\"requires\":\"requires\",\"reset\":\"Reset\",\"response\":\"response\",\"restrict\":\"Restrict\",\"restricted\":\"restricted\",\"result\":\"result\",\"resultater\":\"resultater\",\"return\":\"return\",\"returned\":\"returned\",\"rinse\":\"rinse\",\"rolle\":\"rolle\",\"roller\":\"roller\",\"run\":\"run\",\"running\":\"running\",\"runtime\":\"runtime\",\"s\":\"s\",\"safari\":\"Safari\",\"safe\":\"safe\",\"safely\":\"safely\",\"sakerhetskopia\":\"säkerhetskopia\",\"salg\":\"salg\",\"same\":\"same\",\"samme\":\"samme\",\"sammen\":\"sammen\",\"sammenlign\":\"Sammenlign\",\"sammenligne\":\"sammenligne\",\"sammenligning\":\"sammenligning\",\"sammenligningen\":\"sammenligningen\",\"samsvarer\":\"samsvarer\",\"sant\":\"sant\",\"satt\":\"satt\",\"save\":\"save\",\"schema\":\"schema\",\"se\":\"se\",\"search\":\"search\",\"seed\":\"seed\",\"seeded\":\"seeded\",\"seen\":\"seen\",\"seg\":\"seg\",\"sekunder\":\"sekunder\",\"select\":\"select\",\"selected\":\"selected\",\"self\":\"self\",\"selskap\":\"selskap\",\"selskaper\":\"selskaper\",\"selv\":\"selv\",\"selvbetjening\":\"selvbetjening\",\"selvbetjeningsforhold\":\"selvbetjeningsforhold\",\"selvbetjente\":\"selvbetjente\",\"selvvask\":\"selvvask\",\"semitrailer\":\"semitrailer\",\"send\":\"send\",\"sende\":\"sende\",\"sending\":\"sending\",\"sendt\":\"sendt\",\"separate\":\"separate\",\"ser\":\"ser\",\"sertifikat\":\"sertifikat\",\"serve\":\"serve\",\"server\":\"server\",\"serveren\":\"serveren\",\"service\":\"service\",\"services\":\"services\",\"sessions\":\"sessions\",\"set\":\"set\",\"sett\":\"sett\",\"settings\":\"settings\",\"shelly\":\"Shelly\",\"shift\":\"shift\",\"should\":\"should\",\"side\":\"side\",\"siden\":\"siden\",\"sifrede\":\"sifrede\",\"sikker\":\"sikker\",\"sikkerhet\":\"sikkerhet\",\"sikkerhetskopi\":\"sikkerhetskopi\",\"sikkerhetskopien\":\"sikkerhetskopien\",\"sikkerhetsplombering\":\"sikkerhetsplombering\",\"sikre\":\"sikre\",\"siste\":\"Siste\",\"sjafør\":\"sjåfør\",\"sjafører\":\"sjåfører\",\"sjekk\":\"sjekk\",\"skal\":\"skal\",\"skann\":\"skann\",\"skanne\":\"skanne\",\"skannede\":\"skannede\",\"skanning\":\"skanning\",\"skilt\":\"skilt\",\"skiltet\":\"skiltet\",\"skipped\":\"skipped\",\"skjema\":\"skjema\",\"skjemaer\":\"skjemaer\",\"skjul\":\"Skjul\",\"skriv\":\"skriv\",\"slack\":\"Slack\",\"slett\":\"slett\",\"slette\":\"slette\",\"slettet\":\"slettet\",\"sluttfor\":\"Sluttför\",\"sms\":\"SMS\",\"smtp\":\"SMTP\",\"sn\":\"sn\",\"snarveier\":\"snarveier\",\"snitt\":\"snitt\",\"søk\":\"søk\",\"sok\":\"Sök\",\"søket\":\"søket\",\"solgt\":\"solgt\",\"som\":\"som\",\"sorter\":\"Sorter\",\"source\":\"source\",\"space\":\"space\",\"spesialarrangement\":\"spesialarrangement\",\"spesiell\":\"spesiell\",\"spesielle\":\"Spesielle\",\"spesifisert\":\"spesifisert\",\"split\":\"split\",\"spørsmal\":\"spørsmål\",\"spot\":\"spot\",\"sql\":\"SQL\",\"standard\":\"standard\",\"standardavdeling\":\"standardavdeling\",\"start\":\"start\",\"starte\":\"starte\",\"statistikk\":\"statistikk\",\"status\":\"status\",\"sted\":\"sted\",\"stedet\":\"stedet\",\"stemmer\":\"stemmer\",\"stipend\":\"stipend\",\"store\":\"store\",\"støtter\":\"støtter\",\"stripe\":\"Stripe\",\"studio\":\"Studio\",\"subscription\":\"subscription\",\"subuser\":\"Subuser\",\"successfully\":\"successfully\",\"superbruker\":\"superbruker\",\"superbrukergrensesnittet\":\"superbrukergrensesnittet\",\"support\":\"support\",\"svar\":\"svar\",\"synkroniser\":\"Synkroniser\",\"synkronisering\":\"synkronisering\",\"synkronisert\":\"synkronisert\",\"synlige\":\"synlige\",\"synlighet\":\"synlighet\",\"system\":\"system\",\"systemet\":\"systemet\",\"systemsøk\":\"systemsøk\",\"ta\":\"ta\",\"tabell\":\"tabell\",\"tables\":\"tables\",\"takk\":\"Takk\",\"tank\":\"tank\",\"tankrengjøring\":\"tankrengjøring\",\"target\":\"target\",\"tegn\":\"tegn\",\"telefon\":\"telefon\",\"telefonnummer\":\"telefonnummer\",\"telefonnummeret\":\"telefonnummeret\",\"telefonnumre\":\"telefonnumre\",\"telling\":\"telling\",\"terminal\":\"terminal\",\"terminaler\":\"terminaler\",\"test\":\"test\",\"that\":\"that\",\"the\":\"the\",\"this\":\"this\",\"thread\":\"thread\",\"tid\":\"tid\",\"tidligere\":\"tidligere\",\"tidsbestilling\":\"tidsbestilling\",\"tidsbestillinger\":\"tidsbestillinger\",\"tidspunkt\":\"tidspunkt\",\"til\":\"til\",\"tilbake\":\"tilbake\",\"tilbakestill\":\"tilbakestill\",\"tildeling\":\"tildeling\",\"tildelt\":\"tildelt\",\"tildelte\":\"tildelte\",\"tilgang\":\"tilgang\",\"tilgangskode\":\"tilgangskode\",\"tilgjengelig\":\"tilgjengelig\",\"tilgjengelige\":\"tilgjengelige\",\"tilhenger\":\"tilhenger\",\"tilhengervask\":\"tilhengervask\",\"tilhoerer\":\"tilhoerer\",\"tilkobling\":\"tilkobling\",\"tilkoblingen\":\"tilkoblingen\",\"tilkoblingsinnstillingene\":\"tilkoblingsinnstillingene\",\"till\":\"till\",\"tillatelse\":\"tillatelse\",\"tillatelser\":\"tillatelser\",\"tillatt\":\"tillatt\",\"tillegg\":\"tillegg\",\"tilstand\":\"tilstand\",\"tilstandsregler\":\"tilstandsregler\",\"time\":\"time\",\"timebestillinger\":\"timebestillinger\",\"timer\":\"timer\",\"tirsdag\":\"tirsdag\",\"tjen\":\"tjen\",\"tjeneste\":\"tjeneste\",\"tjenesten\":\"tjenesten\",\"tjenester\":\"tjenester\",\"to\":\"to\",\"tofaktorautentisering\":\"tofaktorautentisering\",\"token\":\"token\",\"tøm\":\"Tøm\",\"tomt\":\"tomt\",\"topp\":\"Topp\",\"total\":\"Total\",\"totaler\":\"totaler\",\"totalpris\":\"Totalpris\",\"totalt\":\"totalt\",\"traktor\":\"Traktor\",\"transaksjon\":\"transaksjon\",\"transaksjonen\":\"transaksjonen\",\"transaksjoner\":\"transaksjoner\",\"transaksjonsutkast\":\"transaksjonsutkast\",\"transportører\":\"transportører\",\"treff\":\"treff\",\"trenger\":\"trenger\",\"trinn\":\"trinn\",\"truck\":\"Truck\",\"truckwash\":\"truckwash\",\"true\":\"true\",\"trykk\":\"Trykk\",\"tvers\":\"tvers\",\"tving\":\"Tving\",\"type\":\"type\",\"typer\":\"typer\",\"uavhengig\":\"uavhengig\",\"ugyldig\":\"Ugyldig\",\"uke\":\"uke\",\"ukjent\":\"ukjent\",\"ulike\":\"ulike\",\"umiddelbar\":\"umiddelbar\",\"unable\":\"Unable\",\"unavailable\":\"unavailable\",\"under\":\"under\",\"underbruker\":\"underbruker\",\"underbrukere\":\"underbrukere\",\"unexpected\":\"unexpected\",\"unique\":\"unique\",\"uoverensstemmelser\":\"uoverensstemmelser\",\"up\":\"up\",\"url\":\"URL\",\"usage\":\"usage\",\"use\":\"use\",\"used\":\"used\",\"user\":\"user\",\"username\":\"username\",\"users\":\"users\",\"ut\":\"ut\",\"utdatert\":\"utdatert\",\"utdaterte\":\"utdaterte\",\"uten\":\"uten\",\"utenfor\":\"utenfor\",\"utenom\":\"utenom\",\"utført\":\"utført\",\"utgaende\":\"utgående\",\"utilgjengelig\":\"utilgjengelig\",\"utkast\":\"utkast\",\"utkastet\":\"utkastet\",\"utkastkunden\":\"utkastkunden\",\"utklippstavlen\":\"utklippstavlen\",\"utsett\":\"Utsett\",\"utvendig\":\"utvendig\",\"v2\":\"v2\",\"vær\":\"vær\",\"være\":\"være\",\"valg\":\"valg\",\"valgfri\":\"Valgfri\",\"valgt\":\"valgt\",\"valgte\":\"valgte\",\"valid\":\"valid\",\"valkommen\":\"Välkommen\",\"value\":\"value\",\"valutakurser\":\"valutakurser\",\"vanligen\":\"Vänligen\",\"vannbruk\":\"vannbruk\",\"vannforbruk\":\"vannforbruk\",\"var\":\"var\",\"var_2\":\"vår\",\"vare\":\"våre\",\"varer\":\"varer\",\"varsler\":\"varsler\",\"varslingsinnstillingene\":\"varslingsinnstillingene\",\"vart\":\"vårt\",\"vask\":\"vask\",\"vaske\":\"vaske\",\"vaskeabonnement\":\"vaskeabonnement\",\"vaskebane\":\"vaskebane\",\"vaskebaner\":\"vaskebaner\",\"vaskebevis\":\"vaskebevis\",\"vaskehall\":\"vaskehall\",\"vaskehaller\":\"vaskehaller\",\"vaskehalloperatører\":\"vaskehalloperatører\",\"vaskelogg\":\"vaskelogg\",\"vasken\":\"vasken\",\"vaskene\":\"vaskene\",\"vasker\":\"vasker\",\"vaskesertifikat\":\"vaskesertifikat\",\"vaskesertifikater\":\"vaskesertifikater\",\"vasketjenester\":\"vasketjenester\",\"vasketype\":\"vasketype\",\"vasking\":\"Vasking\",\"vat\":\"VAT\",\"ved\":\"ved\",\"vedlagt\":\"vedlagt\",\"vedlagte\":\"vedlagte\",\"vedlegg\":\"vedlegg\",\"vegne\":\"vegne\",\"vehicle\":\"vehicle\",\"velg\":\"velg\",\"velge\":\"velge\",\"velkommen\":\"Velkommen\",\"vellykket\":\"vellykket\",\"vennligst\":\"vennligst\",\"vent\":\"vent\",\"ventende\":\"ventende\",\"venter\":\"venter\",\"verdi\":\"verdi\",\"verifiseringskode\":\"verifiseringskode\",\"vi\":\"vi\",\"via\":\"via\",\"view\":\"view\",\"vil\":\"vil\",\"vilkar\":\"vilkår\",\"violates\":\"violates\",\"virk\":\"Virk\",\"virkdata\":\"VirkData\",\"virkdata_virkdata\":\"Virkdata\",\"vis\":\"Vis\",\"vise\":\"vise\",\"viser\":\"Viser\",\"vises\":\"vises\",\"visjonen\":\"visjonen\",\"vogntype\":\"vogntype\",\"was\":\"was\",\"wash\":\"wash\",\"webhook\":\"webhook\",\"webhooks\":\"webhooks\",\"weeks\":\"weeks\",\"were\":\"were\",\"while\":\"while\",\"will\":\"will\",\"with\":\"with\",\"word_00z\":\"00Z\",\"workfeed\":\"Workfeed\",\"x\":\"x\",\"xl\":\"XL\",\"xlvask\":\"XLVask\",\"xlvask_xlvask\":\"Xlvask\",\"years\":\"years\",\"yes\":\"Yes\",\"yet\":\"yet\",\"ytterligere\":\"ytterligere\",\"zoom\":\"Zoom\"}}");
const templates = /* #__PURE__ */ JSON.parse("{\"support\":{\"title\":\"Support\",\"meta_description\":\"Support og kontaktinformasjon for Truck Wash.\",\"eyebrow\":\"Truck Wash\",\"intro\":\"Kontakt oss hvis du trenger hjelp med booking, selvvask, betalinger eller tilgang til kundeportalen.\",\"contact_title\":\"Kontakt\",\"email_label\":\"E-post\",\"phone_label\":\"Telefon\",\"company_label\":\"Selskap\",\"help_title\":\"Vi kan hjelpe med\",\"help_booking\":\"Booking og endring av vasketider.\",\"help_self_wash\":\"Start og avslutning av selvvask.\",\"help_payments\":\"Ordrer, fakturaer og kortbetalinger.\",\"help_account\":\"Innlogging, tilgang og kjoretoy paa kontoen din.\",\"privacy_prefix\":\"Les ogsaa vaar\",\"privacy_link\":\"personvernerklaering\",\"privacy_suffix\":\"for informasjon om data og rettigheter.\"},\"common\":{\"step_of\":\"@.capitalize:{'words.generated.trinn'} {current} @:{'words.generated.av'} {total}\",\"page_of\":\"@.capitalize:{'words.generated.side'} {current} @:{'words.generated.av'} {total}\",\"selected_count\":\"{count} @:{'words.generated.valgt'}\",\"no_items\":\"@.capitalize:{'words.generated.ingen'} {entity}\",\"select_entity\":\"@.capitalize:{'words.generated.velg'} {entity}\",\"create_entity\":\"@:{'words.generated.opprett'} {entity}\",\"edit_entity\":\"@:{'words.generated.rediger'} {entity}\",\"delete_entity\":\"@.capitalize:{'words.generated.slett'} {entity}\",\"confirm_delete_entity\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} {entity}?\",\"field_required\":\"{field} @:{'words.generated.er'} @:{'words.generated.pakrevd'}\",\"no_entity_available\":\"@.capitalize:{'words.generated.ingen'} {entity} @:{'words.generated.tilgjengelige'}.\"},\"limited_backoffice\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.title'}\",\"subtitle\":\"@:{'templates.generated.compat.limited_backoffice.subtitle'}\",\"department\":\"@:{'templates.generated.compat.limited_backoffice.department'}\",\"select_department\":\"@:{'templates.generated.compat.limited_backoffice.select_department'}\",\"loading\":\"@:{'templates.generated.compat.limited_backoffice.loading'}\",\"no_departments\":\"@:{'templates.generated.compat.limited_backoffice.no_departments'}\",\"cancel\":\"@:{'templates.generated.compat.limited_backoffice.cancel'}\",\"nav\":{\"prices\":\"@:{'templates.generated.compat.limited_backoffice.nav.prices'}\",\"customer_pricing\":\"@:{'templates.generated.compat.limited_backoffice.nav.customer_pricing'}\",\"employees\":\"@:{'templates.generated.compat.limited_backoffice.nav.employees'}\"},\"forbidden\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.forbidden.title'}\",\"department\":\"@:{'templates.generated.compat.limited_backoffice.forbidden.department'}\"},\"prices\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.prices.title'}\",\"save\":\"@:{'templates.generated.compat.limited_backoffice.prices.save'}\",\"saved\":\"@:{'templates.generated.compat.limited_backoffice.prices.saved'}\",\"autosave_saving\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_saving'}\",\"autosave_pending\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_pending'}\",\"autosave_saved\":\"@:{'templates.generated.compat.limited_backoffice.prices.autosave_saved'}\",\"product\":\"@:{'templates.generated.compat.limited_backoffice.prices.product'}\",\"price\":\"@:{'templates.generated.compat.limited_backoffice.prices.price'}\",\"price_required\":\"@:{'templates.generated.compat.limited_backoffice.prices.price_required'}\",\"setup_required_title\":\"@:{'templates.generated.compat.limited_backoffice.prices.setup_required_title'}\",\"setup_required_message\":\"@:{'templates.generated.compat.limited_backoffice.prices.setup_required_message'}\",\"no_products\":\"@:{'templates.generated.compat.limited_backoffice.prices.no_products'}\"},\"employees\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.employees.title'}\",\"subtitle\":\"@:{'templates.generated.compat.limited_backoffice.employees.subtitle'}\",\"create_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.create_title'}\",\"edit_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.edit_title'}\",\"name\":\"@:{'templates.generated.compat.limited_backoffice.employees.name'}\",\"email\":\"@:{'templates.generated.compat.limited_backoffice.employees.email'}\",\"user_id\":\"@:{'templates.generated.compat.limited_backoffice.employees.user_id'}\",\"phone\":\"@:{'templates.generated.compat.limited_backoffice.employees.phone'}\",\"phone_validation\":\"@:{'templates.generated.compat.limited_backoffice.employees.phone_validation'}\",\"country_codes\":{\"denmark\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.denmark'}\",\"sweden\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.sweden'}\",\"norway\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.norway'}\",\"finland\":\"@:{'templates.generated.compat.limited_backoffice.employees.country_codes.finland'}\"},\"password\":\"@:{'templates.generated.compat.limited_backoffice.employees.password'}\",\"password_create_help\":\"@:{'templates.generated.compat.limited_backoffice.employees.password_create_help'}\",\"password_update_help\":\"@:{'templates.generated.compat.limited_backoffice.employees.password_update_help'}\",\"role\":\"@:{'templates.generated.compat.limited_backoffice.employees.role'}\",\"departments\":\"@:{'templates.generated.compat.limited_backoffice.employees.departments'}\",\"department_required\":\"@:{'templates.generated.compat.limited_backoffice.employees.department_required'}\",\"validation\":\"@:{'templates.generated.compat.limited_backoffice.employees.validation'}\",\"save\":\"@:{'templates.generated.compat.limited_backoffice.employees.save'}\",\"created\":\"@:{'templates.generated.compat.limited_backoffice.employees.created'}\",\"saved\":\"@:{'templates.generated.compat.limited_backoffice.employees.saved'}\",\"deactivated\":\"@:{'templates.generated.compat.limited_backoffice.employees.deactivated'}\",\"include_inactive\":\"@:{'templates.generated.compat.limited_backoffice.employees.include_inactive'}\",\"empty\":\"@:{'templates.generated.compat.limited_backoffice.employees.empty'}\",\"status\":\"@:{'templates.generated.compat.limited_backoffice.employees.status'}\",\"actions\":\"@:{'templates.generated.compat.limited_backoffice.employees.actions'}\",\"active\":\"@:{'templates.generated.compat.limited_backoffice.employees.active'}\",\"inactive\":\"@:{'templates.generated.compat.limited_backoffice.employees.inactive'}\",\"edit\":\"@:{'templates.generated.compat.limited_backoffice.employees.edit'}\",\"deactivate\":\"@:{'templates.generated.compat.limited_backoffice.employees.deactivate'}\",\"login_link\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link'}\",\"login_link_title\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_title'}\",\"login_link_qr_alt\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_qr_alt'}\",\"login_link_url\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_url'}\",\"copy_login_link\":\"@:{'templates.generated.compat.limited_backoffice.employees.copy_login_link'}\",\"login_link_copied\":\"@:{'templates.generated.compat.limited_backoffice.employees.login_link_copied'}\"},\"roles\":{\"viewer\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.viewer.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.viewer.description'}\"},\"cashier\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.cashier.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.cashier.description'}\"},\"booking_coordinator\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.booking_coordinator.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.booking_coordinator.description'}\"},\"operations_lead\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.operations_lead.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.operations_lead.description'}\"},\"department_admin\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.roles.department_admin.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.roles.department_admin.description'}\"}},\"errors\":{\"load_departments\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_departments'}\",\"load_prices\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_prices'}\",\"save_prices\":\"@:{'templates.generated.compat.limited_backoffice.errors.save_prices'}\",\"load_employees\":\"@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}\",\"save_employee\":\"@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}\",\"deactivate_employee\":\"@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}\",\"generate_employee_login_link\":\"@:{'templates.generated.compat.limited_backoffice.errors.generate_employee_login_link'}\"},\"role_permissions\":{\"title\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.title'}\",\"tooltip\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.tooltip'}\",\"intro\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.intro'}\",\"scope\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.scope'}\",\"selected\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.selected'}\",\"close\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.close'}\",\"unavailable\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.unavailable'}\",\"groups\":{\"account\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.account'}\",\"orders\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.orders'}\",\"products\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.products'}\",\"customers\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.customers'}\",\"vehicles\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.vehicles'}\",\"attachments\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.attachments'}\",\"scanner\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.scanner'}\",\"bookings\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.bookings'}\",\"time_bookings\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.time_bookings'}\",\"reports\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.reports'}\",\"limited_backoffice\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}\",\"unknown\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.unknown'}\"},\"capabilities\":{\"sign_in\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}\"},\"view_own_permissions\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}\"},\"view_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}\"},\"create_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}\"},\"edit_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}\"},\"delete_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}\"},\"view_order_items\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}\"},\"create_order_items\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}\"},\"update_order_lines\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}\"},\"remove_order_lines\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}\"},\"charge_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}\"},\"complete_orders\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.complete_orders.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.complete_orders.description'}\"},\"view_product_catalog\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_catalog.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_catalog.description'}\"},\"view_product_recommendations\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_recommendations.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_product_recommendations.description'}\"},\"search_customers\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_customers.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_customers.description'}\"},\"view_customer_details\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_details.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_details.description'}\"},\"view_customer_notes\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_notes.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_notes.description'}\"},\"add_customer_notes\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_customer_notes.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_customer_notes.description'}\"},\"view_customer_flags\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_flags.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_flags.description'}\"},\"search_vehicles\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_vehicles.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.search_vehicles.description'}\"},\"view_vehicle_matches\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_matches.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_matches.description'}\"},\"view_vehicle_history\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_history.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_vehicle_history.description'}\"},\"view_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_attachments.description'}\"},\"add_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.add_order_attachments.description'}\"},\"download_order_attachments\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.download_order_attachments.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.download_order_attachments.description'}\"},\"view_plate_scans\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_plate_scans.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_plate_scans.description'}\"},\"view_department_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}\"},\"view_own_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}\"},\"update_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}\"},\"create_bookings\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}\"},\"mark_bookings_complete\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}\"},\"send_booking_confirmations\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}\"},\"view_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}\"},\"create_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}\"},\"edit_time_booking_entries\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}\"},\"view_order_statistics\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}\"},\"view_booking_statistics\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}\"},\"open_limited_backoffice\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}\"},\"manage_department_prices\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}\"},\"view_customer_pricing\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_pricing.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_customer_pricing.description'}\"},\"manage_customer_pricing\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_customer_pricing.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_customer_pricing.description'}\"},\"manage_employee_access\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}\"},\"unknown\":{\"label\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}\",\"description\":\"@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}\"}}}},\"redirect\":{\"mobile_department_auto_select\":{\"manual_button\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.avdeling'} @:{'words.generated.manuelt'}\",\"manual_title\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.din'} @:{'words.generated.avdeling'}\",\"manual_loading\":\"@.capitalize:{'words.generated.laster'} @:{'words.generated.avdelinger'}...\",\"use_department\":\"@.capitalize:{'words.generated.velg'} {name}\"}},\"replication\":{\"host_targets\":{\"database\":\"@:{'words.replication.services.database'}-@:{'words.replication.host'}\",\"redis\":\"@:{'words.replication.services.redis'}-@:{'words.replication.host'}\",\"minio\":\"@:{'words.replication.services.minio'}-@:{'words.replication.host'}\"},\"host_mentions\":{\"primary_database\":\"@:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.database'}-@:{'words.replication.host'}@:{'words.replication.host_definite_suffix'}\",\"redis\":\"@:{'words.replication.services.redis'}-@:{'words.replication.host'}@:{'words.replication.host_definite_suffix'}\",\"minio\":\"@:{'words.replication.services.minio'}-@:{'words.replication.host'}@:{'words.replication.host_definite_suffix'}\"},\"add_host\":\"@:{'words.generated.legg'} @:{'words.generated.til'} {host}\",\"register_host_when_reachable\":\"@:{'words.generated.legg'} @:{'words.generated.til'} {host} @:{'words.generated.i'} @:{'words.generated.superbrukergrensesnittet'} @:{'words.generated.nar'} @:{'words.replication.article.host_mention'} @:{'words.generated.kan'} @:{'words.generated.nas'}.\",\"register_host_when_reachable_with_space_requirement\":\"@:{'words.generated.legg'} @:{'words.generated.til'} {host} @:{'words.generated.i'} @:{'words.generated.superbrukergrensesnittet'} @:{'words.generated.nar'} @:{'words.replication.article.host_mention'} @:{'words.generated.kan'} @:{'words.generated.nas'}. Klargjøring @:{'words.generated.krever'} ledig plass tilsvarende kildebuckets @:{'words.generated.pluss'} 20%.\"},\"generated\":{\"compat\":{\"2fa\":{\"back_to_login\":\"@.capitalize:{'words.generated.tilbake'} @:{'words.generated.til'} @:{'words.generated.innlogging'}\",\"code_label\":\"@.capitalize:{'words.generated.verifiseringskode'}\",\"description\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.et'} @:{'words.generated.ekstra'} sikkerhetslag @:{'words.generated.pa'} @:{'words.generated.kontoen'} @:{'words.generated.din'} @:{'words.generated.ved'} @:{'words.generated.a'} kreve @:{'words.replication.host_definite_suffix'} @:{'words.generated.verifiseringskode'} @:{'words.generated.ved'} @:{'words.generated.innlogging'}.\",\"disable_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.deaktivere'} @:{'words.generated.tofaktorautentisering'}? @.capitalize:{'words.generated.dette'} @:{'words.generated.vil'} @:{'words.generated.gjøre'} @:{'words.generated.kontoen'} @:{'words.generated.din'} @:{'words.generated.mindre'} @:{'words.generated.sikker'}.\",\"disable_error_title\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.deaktivere'}\",\"disable_title\":\"@.capitalize:{'words.generated.deaktiver'} @:{'words.generated.tofaktorautentisering'}\",\"disabled_message\":\"@.capitalize:{'words.generated.tofaktorautentisering'} @:{'words.generated.er'} @:{'words.generated.deaktivert'} @:{'words.generated.for'} @:{'words.generated.kontoen'} @:{'words.generated.din'}.\",\"disabled_title\":\"@.capitalize:{'words.generated.tofaktorautentisering'} @:{'words.generated.deaktivert'}\",\"enable_button\":\"@:{'words.generated.aktiver'} @:{'words.generated.tofaktorautentisering'}\",\"enabled_message\":\"@.capitalize:{'words.generated.kontoen'} @:{'words.generated.din'} @:{'words.generated.er'} @:{'words.generated.na'} @:{'words.generated.beskyttet'} @:{'words.generated.med'} @:{'words.generated.tofaktorautentisering'}.\",\"enabled_title\":\"@.capitalize:{'words.generated.tofaktorautentisering'} @:{'words.generated.aktivert'}\",\"enter_code\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} verifiseringskoden @:{'words.generated.din'}\",\"invalid_code\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.gyldig'} 6-sifret @:{'words.generated.kode'}.\",\"setup_error_title\":\"@.capitalize:{'words.generated.oppsett'} @:{'words.generated.mislyktes'}\",\"setup_manual\":\"@.capitalize:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.ikke'} @:{'words.generated.skanne'}? @.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.denne'} @:{'words.generated.koden'} @:{'words.generated.manuelt'}:\",\"setup_step1\":\"@.capitalize:{'words.generated.skann'} @:{'words.generated.denne'} @:{'words.generated.qr'}-@:{'words.generated.koden'} @:{'words.generated.med'} @:{'words.generated.autentiseringsappen'} @:{'words.generated.din'} (@:{'words.generated.google'} Authenticator, Authy osv.):\",\"setup_step2\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.replication.article.host_mention'} 6-@:{'words.generated.sifrede'} @:{'words.generated.koden'} @:{'words.generated.fra'} @:{'words.generated.autentiseringsappen'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.bekrefte'}:\",\"setup_title\":\"@.capitalize:{'words.generated.sett'} @:{'words.generated.opp'} @:{'words.generated.tofaktorautentisering'}\",\"status_disabled_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.tofaktorautentisering'} @:{'words.generated.for'} @:{'words.generated.bedre'} @:{'words.generated.sikkerhet'}.\",\"status_disabled\":\"@.capitalize:{'words.generated.tofaktorautentisering'} @:{'words.generated.er'} @:{'words.generated.deaktivert'}\",\"status_enabled_desc\":\"@.capitalize:{'words.generated.kontoen'} @:{'words.generated.din'} @:{'words.generated.er'} @:{'words.generated.beskyttet'} @:{'words.generated.med'} @:{'words.generated.et'} @:{'words.generated.ekstra'} verifiseringstrinn.\",\"status_enabled\":\"@.capitalize:{'words.generated.tofaktorautentisering'} @:{'words.generated.er'} @:{'words.generated.aktivert'}\",\"title\":\"@.capitalize:{'words.generated.tofaktorautentisering'}\",\"verification_success\":\"Verifisering @:{'words.generated.vellykket'}!\",\"verify_button\":\"@:{'templates.generated.compat.common.confirm'}\",\"verify_description\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.replication.article.host_mention'} 6-@:{'words.generated.sifrede'} @:{'words.generated.koden'} @:{'words.generated.fra'} @:{'words.generated.autentiseringsappen'} @:{'words.generated.din'}.\",\"verify_title\":\"Tofaktorverifisering\"},\"about_us\":{\"solutions\":{\"customer\":{\"app_item1\":\"@:{'words.generated.finn'} @:{'words.generated.nærmeste'} @:{'words.generated.vaskehall'}\",\"app_item2\":\"@.capitalize:{'words.generated.bruk'} @.capitalize:{'words.generated.self'} @.capitalize:{'words.generated.wash'} @:{'words.generated.utenom'} @:{'words.generated.bemannet'} @:{'words.generated.apningstid'}\",\"app_item3\":\"@.capitalize:{'words.generated.bokvask'} @:{'words.generated.med'} @:{'words.generated.referansenummer'}\",\"app_item4\":\"@.capitalize:{'words.generated.tjen'} @:{'words.generated.lojalitetspoeng'}\",\"app_title\":\"@.capitalize:{'words.generated.app'} @:{'words.generated.for'} drivers\",\"portal_item1\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.og'} @:{'words.generated.administrer'} @:{'words.generated.kjøretøy'}\",\"portal_item3\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.data'} @:{'words.generated.for'} @:{'words.generated.historiske'} @:{'words.generated.vask'}\",\"portal_title\":\"@:{'words.generated.kundeportal'} @:{'words.generated.for'} @:{'words.generated.ekspeditører'} @:{'words.generated.og'} @:{'words.generated.transportører'}:\",\"title\":\"@.capitalize:{'words.generated.digitale'} @:{'words.generated.løsninger'} @:{'words.generated.for'} vaskehallskunder\"},\"operator\":{\"book_demo\":\"Bokdemo\",\"module_item1\":\"Fastsette @:{'words.generated.priser'}, @:{'words.generated.produkter'}, @:{'words.generated.apningstider'}, @:{'words.generated.ansatte'}\",\"module_item3\":\"@:{'words.generated.opprett'} @:{'words.generated.nye'} @:{'words.generated.kunder'} @:{'words.generated.med'} tilhørende @:{'words.generated.skilt'}\",\"module_title\":\"Kontrollmodul @:{'words.generated.for'} @:{'words.generated.vaskehalloperatører'}:\",\"pos_item1\":\"@.capitalize:{'words.generated.registrer'} @:{'words.generated.kjøretøy'} @:{'words.generated.raskt'} @:{'words.generated.ved'} @:{'words.generated.a'} @:{'words.generated.skanne'} @:{'words.generated.skilt'}\",\"pos_item2\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.bilder'} @:{'words.generated.og'} @:{'words.generated.referansenummer'} @:{'words.generated.til'} @:{'words.generated.registrering'}\",\"pos_item3\":\"Håndter @:{'words.generated.bestillinger'} @:{'words.generated.med'} @:{'words.generated.ett'} @:{'words.generated.klikk'} (@:{'words.generated.inkl'}. @:{'words.generated.automatisk'} generering @:{'words.generated.av'} @:{'words.generated.vaskesertifikat'})\",\"pos_item4\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.vaskelogg'} @:{'words.generated.og'} @:{'words.generated.bestillinger'}\",\"pos_item5\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.dashbord'} @:{'words.generated.for'} @:{'words.generated.avdelingens'} ytelse\",\"pos_title\":\"@.capitalize:{'words.generated.registrering'} @:{'words.generated.og'} @:{'words.generated.pos'}-@:{'words.generated.system'} @:{'words.generated.for'} @:{'words.generated.kjøretøyvaskere'}\",\"title\":\"@.capitalize:{'words.generated.digitale'} @:{'words.generated.løsninger'} @:{'words.generated.for'} vaskehallsoperatører\"},\"title\":\"@.capitalize:{'words.generated.vare'} @:{'words.generated.løsninger'}\"},\"team\":{\"jeppe\":{\"role\":\"@:{'words.generated.it'}-sjef\"},\"mads\":{\"role\":\"administrerende direktør\"},\"mikkel\":{\"role1\":\"Grunnlegger\",\"role2\":\"Forretningsutvikling\"},\"title\":\"Team\"},\"vision\":{\"developed_title\":\"@.capitalize:{'words.generated.derfor'} @:{'words.generated.har'} @:{'words.generated.vi'} utviklet:\",\"item1\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.portal'} @:{'words.generated.for'} @:{'words.generated.transportører'} @:{'words.generated.og'} @:{'words.generated.ekspeditører'} @:{'words.generated.der'} @:{'words.generated.de'} @:{'words.generated.kan'} @:{'words.generated.administrere'} @:{'words.generated.alt'} @:{'words.generated.om'} @:{'words.generated.vaskene'} sine\",\"item2\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.app'} @:{'words.generated.for'} @:{'words.generated.sjafører'} @:{'words.generated.der'} @:{'words.generated.de'} @:{'words.generated.kan'} @:{'words.generated.bestille'}, @:{'words.generated.vaske'} @:{'words.generated.og'} tjene @:{'words.generated.lojalitetspoeng'}\",\"item3\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.portal'} @:{'words.generated.for'} vaskeoperatører @:{'words.generated.der'} @:{'words.generated.de'} @:{'words.generated.kan'} @:{'words.generated.administrere'} @:{'words.generated.alle'} aspekter @:{'words.generated.ved'} driften @:{'words.generated.av'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vaskehall'}\",\"item4\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.app'} @:{'words.generated.for'} bilvaskere @:{'words.generated.der'} @:{'words.generated.de'} @:{'words.generated.kan'} @:{'words.generated.registrere'} @:{'words.generated.kjøretøy'}, @:{'words.generated.lage'} @:{'words.generated.vaskesertifikater'}, @:{'words.generated.ta'} imot @:{'words.generated.betalinger'} @:{'words.generated.mm'}.\",\"paragraph1\":\"@.capitalize:{'words.generated.siden'} 2023 @:{'words.generated.har'} teamet @:{'words.generated.bak'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} jobbet mot @:{'words.generated.visjonen'} @:{'words.generated.om'} @:{'words.generated.a'} skape @:{'words.generated.ett'} @:{'words.generated.system'} @:{'words.generated.der'} @:{'words.generated.alle'} @:{'words.generated.relevante'} arbeidsflyter @:{'words.generated.for'} @:{'words.generated.lastebilvask'} digitaliseres @:{'words.generated.og'} kobles @:{'words.generated.sammen'} @:{'words.generated.for'} @:{'words.generated.a'} lette hverdagen @:{'words.generated.for'} @:{'words.generated.alle'} @:{'words.generated.interessenter'} – @:{'words.generated.transportører'}, @:{'words.generated.ekspeditører'}, @:{'words.generated.sjafører'}, @:{'words.generated.vaskehalloperatører'} @:{'words.generated.og'} @:{'words.generated.kjøretøyvaskere'}.\",\"paragraph2\":\"@.capitalize:{'words.generated.vi'} @:{'words.generated.driver'} Danmarks største kjede @:{'words.generated.for'} @:{'words.generated.lastebilvask'} @:{'words.generated.og'} @:{'words.generated.har'} @:{'words.generated.derfor'} dyp innsikt @:{'words.generated.i'} bransjen. @.capitalize:{'words.generated.dette'} betyr @:{'words.generated.at'} @:{'words.generated.vi'} @:{'words.generated.kan'} utvikle @:{'words.generated.it'}-@:{'words.generated.løsninger'} @:{'words.generated.som'} tilfredsstiller behovene @:{'words.generated.til'} @:{'words.generated.alle'} @:{'words.generated.interessenter'}\",\"title\":\"@.capitalize:{'words.generated.visjonen'} @:{'words.generated.bak'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}\"}},\"admin\":{\"bookings\":{\"certificate_overview\":{\"subtitle\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.vaskesertifikater'}\",\"title\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.vaskesertifikat'}\"},\"complete\":{\"subtitle\":\"@:{'words.generated.fullfør'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.bestilling'}\",\"title\":\"@:{'words.generated.fullfør'} @:{'words.generated.booking'}\"},\"legacy\":{\"subtitle\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.bestillinger'} (@:{'words.generated.legacy'})\",\"title\":\"@.capitalize:{'words.generated.bestillinger'} (@:{'words.generated.legacy'})\"}},\"daily_report\":{\"navigation\":{\"title\":\"Navigasjon\"},\"object\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.daglig'} @:{'words.generated.rapportdetaljer'}\",\"title\":\"@.capitalize:{'words.generated.daglig'} @:{'words.generated.rapportdetaljer'}\"},\"product_sales\":{\"subtitle_suffix\":\"@:{'words.generated.produktsalg'}\",\"title\":\"@.capitalize:{'words.generated.produktsalg'}\"},\"product_targets\":{\"cancel_aria\":\"Avbryt mål\",\"edit_aria\":\"Rediger målprosent\",\"input_label\":\"Målprosent\",\"save_aria\":\"Lagre mål\",\"save_error\":\"Målet kunne ikke lagres.\",\"validation_range\":\"Målprosenten må være mellom 0 og 100.\"},\"reports\":{\"bookings\":{\"completed_count\":\"@.capitalize:{'words.generated.fullført'} @:{'words.generated.telling'}\",\"possible_count\":\"@.capitalize:{'words.generated.mulig'} @:{'words.generated.telling'}\"},\"night_washes\":{\"chart_title\":\"@:{'words.generated.døgnvask'} @:{'words.generated.per'} @:{'words.generated.dag'}\",\"subtitle\":\"@.capitalize:{'words.generated.antall'} @:{'words.generated.vask'} @:{'words.generated.utenfor'} @:{'words.generated.apningstid'}\",\"title\":\"@:{'templates.generated.compat.user_vehicles.self_service'}\",\"warning_missing_opening_hours\":\"@.capitalize:{'words.generated.apningstider'} @:{'words.generated.mangler'} @:{'words.generated.for'}: {departments}\"},\"products_sold\":{\"possible_sold\":\"@.capitalize:{'words.generated.mulig'} @:{'words.generated.solgt'}\",\"quantity_sold\":\"@.capitalize:{'words.generated.antall'} @:{'words.generated.solgt'}\",\"sold\":\"@.capitalize:{'words.generated.solgt'}\",\"subtitle\":\"solgte @:{'words.generated.produkter'}\",\"title\":\"@.capitalize:{'words.generated.produkter'} @:{'words.generated.solgt'}\"},\"revenue\":{\"possible_revenue\":\"@.capitalize:{'words.generated.mulig'} @:{'words.generated.inntekt'}\"},\"transactions\":{\"possible_transactions\":\"@.capitalize:{'words.generated.mulige'} @:{'words.generated.transaksjoner'}\",\"subtitle\":\"@:{'words.generated.transaksjoner'}\",\"title\":\"@.capitalize:{'words.generated.transaksjoner'}\",\"transaction_count\":\"@.capitalize:{'words.generated.antall'} @:{'words.generated.transaksjoner'}\"},\"washes\":{\"completed_washes\":\"Fullførte @:{'words.generated.vask'}\",\"possible_washes\":\"@.capitalize:{'words.generated.mulige'} @:{'words.generated.vask'}\",\"subtitle\":\"@:{'words.generated.vasker'}\"},\"water_usage_per_wash\":{\"avg_water_usage\":\"@.capitalize:{'words.generated.gj'}.@:{'words.generated.sn'}. @:{'words.generated.vannforbruk'} @:{'words.generated.per'} @:{'words.generated.vask'}\",\"subtitle\":\"@:{'words.generated.vannforbruk'} @:{'words.generated.per'} @:{'words.generated.vask'}\",\"title\":\"@.capitalize:{'words.generated.vannforbruk'} @:{'words.generated.per'} @:{'words.generated.vask'}\"},\"water_usage\":{\"subtitle\":\"@:{'words.generated.vannbruk'}\",\"water_usage\":\"@.capitalize:{'words.generated.vannbruk'}\"}},\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.dagens'} @:{'words.generated.rapport'}\",\"tabs\":{\"previous_report\":\"@.capitalize:{'words.generated.forrige'} @:{'words.generated.rapport'}\",\"todays_report\":\"@.capitalize:{'words.generated.dagens'} @:{'words.generated.rapport'}\"},\"title\":\"@:{'templates.generated.compat.nav.daily_report'}\",\"titles\":{\"operations\":\"Drift\",\"optional_products\":\"Tilleggsprodukter\"},\"today_form\":{\"title\":\"@.capitalize:{'words.generated.dagens'} @:{'words.generated.skjema'}\"},\"todays_prefix\":\"@.capitalize:{'words.generated.dagens'}\",\"update_report\":\"@:{'words.generated.oppdater'} @:{'words.generated.rapport'}\",\"update_todays_report\":\"@:{'words.generated.oppdater'} @:{'words.generated.dagens'} @:{'words.generated.rapport'}\"},\"debug\":{\"reader_test\":{\"subtitle\":\"@.capitalize:{'words.generated.test'} leserens pålitelighet\",\"title\":\"Leserpålitelighetstest\"}},\"department_modules\":{\"bookings\":{\"description\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.bestillinger'}\"},\"daily_report\":{\"description\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.daglig'} @:{'words.generated.rapport'}\"},\"goals\":{\"description\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.mal'}\"},\"pos\":{\"description\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.pos'}-@:{'words.generated.systemet'}\"},\"self_wash\":{\"description\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.døgnvask'}\",\"disabled\":\"@.capitalize:{'words.generated.selvvask'} @:{'words.generated.er'} @:{'words.generated.na'} @:{'words.generated.deaktivert'}\",\"enabled\":\"@.capitalize:{'words.generated.selvvask'} @:{'words.generated.er'} @:{'words.generated.na'} @:{'words.generated.aktivert'}\",\"update_error\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} oppdatere @:{'words.generated.status'} @:{'words.generated.for'} @:{'words.generated.selvvask'}\"}},\"errors\":{\"select_department\":\"@.capitalize:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.avdeling'} @:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.tilgang'} @:{'words.generated.til'}. @.capitalize:{'words.generated.hvis'} @:{'words.generated.du'} mener @:{'words.generated.dette'} @:{'words.generated.er'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'}, @:{'words.generated.vennligst'} @:{'words.generated.kontakt'} @:{'words.generated.support'}.\"},\"goals\":{\"form\":{\"edit_title\":\"@:{'words.generated.rediger'} @:{'words.generated.mal'}\",\"target_duration_every\":{\"help\":\"@.capitalize:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.weeks'}, @:{'words.generated.months'}, @:{'words.generated.and'} @:{'words.generated.years'}.\",\"label\":\"Every\",\"placeholder\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 1\"},\"target_duration\":{\"help\":\"@:{'words.generated.choose'} how @:{'words.generated.target'} values @:{'words.generated.should'} @:{'words.generated.be'} evaluated.\",\"label\":\"@.capitalize:{'words.generated.target'} @:{'words.generated.duration'}\",\"modes\":{\"entire_duration\":\"@.capitalize:{'words.generated.entire'} @:{'words.generated.duration'}\",\"legacy\":\"Daily based @:{'words.generated.on'} @:{'words.generated.entire'} @:{'words.generated.duration'} (@:{'words.generated.from'} @:{'words.generated.start'} @:{'words.generated.to'} @:{'words.generated.end'})\",\"months\":\"@.capitalize:{'words.generated.months'}\",\"weeks\":\"@.capitalize:{'words.generated.weeks'}\",\"years\":\"@.capitalize:{'words.generated.years'}\"}},\"title\":\"@:{'words.generated.lag'} @:{'words.generated.mal'}\",\"validation\":{\"date_range_invalid\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.and'} @:{'words.generated.end'} dates @:{'words.generated.are'} @:{'words.generated.invalid'}.\",\"departments_required\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.at'} @:{'words.generated.least'} @:{'words.generated.one'} @:{'words.generated.department'}.\",\"target_duration_every_required\":\"@:{'words.generated.enter'} @:{'words.generated.a_2'} cadence @:{'words.generated.value'} @:{'words.generated.of'} @:{'words.generated.at'} @:{'words.generated.least'} 1.\",\"target_required\":\"@:{'words.generated.enter'} @:{'words.generated.a_2'} @:{'words.generated.valid'} @:{'words.generated.target'} @:{'words.generated.value'}.\"}},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.avdelingens'} @:{'words.generated.mal'}\",\"test_alert\":{\"department_id\":\"@.capitalize:{'words.generated.department'} @.upper:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.slack'} @:{'words.generated.webhook'}\",\"destination\":\"Override @:{'words.generated.destination'}\",\"email_to\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.recipient'}\",\"error\":\"@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.send'} @:{'words.generated.test'} @:{'words.generated.alert'}.\",\"send\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.test'} @:{'words.generated.alert'}\",\"slack_help\":\"@:{'words.generated.provide'} @:{'words.generated.a_2'} @:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'} @:{'words.generated.or'} @:{'words.generated.a_2'} @:{'words.generated.department'} @.upper:{'words.generated.id'}.\",\"slack_webhook\":\"@:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'}\",\"sms_help\":\"@.capitalize:{'words.generated.use'} comma @:{'words.generated.or'} semicolon @:{'words.generated.to'} @:{'words.generated.separate'} phone @:{'words.generated.numbers'}.\",\"sms_to\":\"@:{'words.generated.sms'} recipients\",\"subject\":\"@.capitalize:{'words.generated.email'} subject (@:{'words.generated.optional'})\",\"success\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.alert'} sent @:{'words.generated.via'} {destination}.\",\"validation\":{\"email_required\":\"@.capitalize:{'words.generated.email'} @:{'words.generated.recipient'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @.upper:{'words.generated.email'} @:{'words.generated.destination'}.\",\"invalid_destination\":\"@:{'words.generated.please'} @:{'words.generated.select'} @:{'words.generated.a_2'} @:{'words.generated.valid'} @:{'words.generated.destination'}.\",\"slack_target_required\":\"@:{'words.generated.provide'} @:{'words.generated.a_2'} @:{'words.generated.slack'} @:{'words.generated.webhook'} @:{'words.generated.url'} @:{'words.generated.or'} @:{'words.generated.department'} @.upper:{'words.generated.id'} @:{'words.generated.for'} @.upper:{'words.generated.slack'} @:{'words.generated.destination'}.\",\"sms_required\":\"@.capitalize:{'words.generated.at'} @:{'words.generated.least'} @:{'words.generated.one'} @:{'words.generated.sms'} @:{'words.generated.recipient'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.sms'} @:{'words.generated.destination'}.\"}},\"title\":\"@:{'templates.generated.compat.objects.goals.columns.target'}\"},\"intranet\":{\"events\":{\"title\":\"@.capitalize:{'words.generated.hendelser'}\"},\"import_events\":{\"title\":\"@:{'words.generated.importer'} @:{'words.generated.hendelser'}\"},\"subtitle\":\"@.capitalize:{'words.generated.avdelingens'} @:{'words.generated.intranett'}\",\"title\":\"@.capitalize:{'words.generated.intranett'}\"},\"notifications\":{\"sms_activated_description\":\"Aktiverte @:{'words.generated.telefonnumre'} @:{'words.generated.vil'} @:{'words.generated.motta'} @:{'words.generated.sms'}-@:{'words.generated.varsler'} @:{'words.generated.nar'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kunde'} foretar @:{'words.replication.host_definite_suffix'} @:{'words.generated.bestilling'}.\",\"sms_overview\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelingens'} @:{'words.generated.sms'}-varslingstelefonnumre.\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.varsler'}\"},\"order_bookings\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.ordrebestillinger'}\",\"title\":\"@:{'words.generated.bestill'} @:{'words.generated.bestilling'}\"},\"overview\":{\"reports\":{\"title\":\"@.capitalize:{'words.generated.rapporter'}\"},\"subtitle\":\"Avdelingsoversikt\"},\"pos\":{\"action_buttons\":{\"add_customer_desc\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.kunde'} @:{'words.generated.i'} @:{'words.generated.systemet'}\",\"cancel_desc\":\"@:{'words.generated.lukk'} @:{'words.generated.denne'} @:{'words.generated.popupen'} @:{'words.generated.uten'} @:{'words.generated.a'} @:{'words.generated.lagre'} @:{'words.generated.endringer'}\",\"close_desc\":\"@:{'words.generated.lukk'} @:{'words.generated.denne'} @:{'words.generated.popupen'}\",\"confirm_desc\":\"@.capitalize:{'words.generated.bekreft'} @:{'words.generated.og'} @:{'words.generated.lagre'} @:{'words.generated.endringer'}\",\"edit_reference\":\"@:{'words.generated.rediger'} @:{'words.generated.referanse'}\",\"edit_reference_desc\":\"@:{'words.generated.rediger'} @:{'words.generated.referanse'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.transaksjonen'}\",\"select_customer_desc\":\"@.capitalize:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kunde'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.transaksjonen'}\"},\"add_customer\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.kunde'}\",\"add_more_items\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.flere'} @:{'words.generated.elementer'}\",\"attachment\":\"@.capitalize:{'words.generated.vedlegg'}\",\"attachments\":\"@:{'templates.generated.compat.admin.pos.attachment'}\",\"attachments_add\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.vedlegg'}\",\"attachments_no_preview\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.forhandsvisning'} @:{'words.generated.tilgjengelig'} @:{'words.generated.for'} @:{'words.generated.denne'} filtypen.\",\"attachments_office_preview_unavailable\":\"@.capitalize:{'words.generated.forhandsvisning'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.tilgjengelig'} @:{'words.generated.for'} @.capitalize:{'words.generated.office'}-dokumenter. @.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.se'}.\",\"attachments_upload_action\":\"Upload\",\"attachments_upload_description\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.opp'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.fil'} @:{'words.generated.som'} @:{'words.generated.et'} @:{'words.generated.vedlegg'} @:{'words.generated.til'} @:{'words.generated.denne'} @:{'words.generated.transaksjonen'}.\",\"attachments_upload_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppsto'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.opplasting'} @:{'words.generated.av'} @:{'words.replication.article.host_mention'} @:{'words.generated.vedlagte'} @:{'words.generated.filen'}.\",\"buttons\":{\"delete_all\":\"@:{'words.generated.delete'} @:{'words.generated.all'}\",\"go_back\":\"@:{'templates.generated.compat.pos.go_back'}\",\"please_wait\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.vent'}...\",\"print_invoice\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.ut'} @:{'words.generated.faktura'}\"},\"cancel\":\"@.capitalize:{'words.generated.kansellere'}\",\"cancel_booking_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} kansellere @:{'words.generated.bestillingen'}?\",\"cart\":\"Handlevogn\",\"company_phone\":\"Firmatelefon\",\"contact_email\":\"@.capitalize:{'words.generated.kontakt'} @:{'words.generated.e'}-@:{'words.generated.post'}\",\"contact_phone\":\"@.capitalize:{'words.generated.kontakt'} @:{'words.generated.telefon'}\",\"ean\":\"EAN\",\"created_by\":\"Laget @:{'words.generated.av'}\",\"customer_conflict\":{\"help_text\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.innskrevne'} @:{'words.generated.skiltet'} @:{'words.generated.tilhoerer'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.annen'} @:{'words.generated.lagret'} @:{'words.generated.kunde'}. @.capitalize:{'words.generated.velg'} @:{'words.generated.om'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.kunden'} @:{'words.generated.skal'} @:{'words.generated.beholdes'} @:{'words.generated.eller'} @:{'words.generated.om'} @:{'words.generated.det'} @:{'words.generated.skal'} @:{'words.generated.byttes'} @:{'words.generated.til'} @:{'words.generated.kjoretoykunden'}.\",\"warning_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.kunden'} @:{'words.generated.og'} @:{'words.generated.kjoretoykunden'} @:{'words.generated.matcher'} @:{'words.generated.ikke'}.\"},\"details\":\"@:{'templates.generated.compat.common.details'}\",\"drafts_assignment\":{\"button\":\"@:{'words.generated.assign'} @:{'words.generated.customer'}\",\"create_invoice_collection\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"customer_required\":\"@.capitalize:{'words.generated.select'} @:{'words.generated.a_2'} @:{'words.generated.customer'} @:{'words.generated.to'} @:{'words.generated.view'} @:{'words.generated.invoice'} @:{'words.generated.collections'}.\",\"error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} assigning @:{'words.generated.the'} @:{'words.generated.customer'}.\",\"invoice_collection_empty\":\"@.capitalize:{'words.generated.no'} unbooked @:{'words.generated.invoice'} @:{'words.generated.collections'} @:{'words.generated.were'} @:{'words.generated.found'} @:{'words.generated.for'} @:{'words.generated.the'} @:{'words.generated.selected'} @:{'words.generated.customer'}.\",\"invoice_collection_label\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"invoice_collection_loading\":\"@:{'words.generated.loading'} @:{'words.generated.invoice'} @:{'words.generated.collections'}...\",\"invoice_collection_total\":\"@:{'templates.generated.compat.objects.columns.total_net_amount'}\",\"new_collection_description\":\"@:{'words.generated.created'} @:{'words.generated.from'} @:{'words.generated.the'} drafts overview\",\"new_collection_name\":\"@:{'words.generated.manual'} @:{'words.generated.invoice'} @:{'words.generated.collection'}\",\"recalculate_prices\":\"Recalculate @:{'words.generated.prices'} @:{'words.generated.with'} @:{'words.generated.customer'} @:{'words.generated.discounts'}\",\"recalculate_prices_help\":\"Applies @:{'words.generated.the'} @:{'words.generated.department'} @:{'words.generated.pricing'} @:{'words.generated.and'} any @:{'words.generated.customer'} @:{'words.generated.discounts'} @:{'words.generated.to'} @:{'words.generated.all'} @:{'words.generated.order'} lines.\",\"search_customer_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.by'} @:{'words.generated.customer'} @:{'words.generated.name'} @:{'words.generated.or'} @:{'words.generated.customer'} @:{'words.generated.number'}\",\"selected_customer\":\"@.capitalize:{'words.generated.selected'} @:{'words.generated.customer'}\",\"subtitle\":\"@:{'words.generated.choose'} @:{'words.generated.the'} @:{'words.generated.customer'} @:{'words.generated.and'} @:{'words.generated.invoice'} @:{'words.generated.collection'} @:{'words.generated.to'} move @:{'words.generated.draft'} #{orderId} out @:{'words.generated.of'} @:{'words.generated.the'} @:{'words.generated.draft'} @:{'words.generated.customer'}.\",\"success\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.draft'} @:{'words.generated.customer'} @:{'words.generated.was'} assigned @:{'words.generated.successfully'}.\",\"title\":\"@:{'words.generated.assign'} @:{'words.generated.customer'} @:{'words.generated.to'} @:{'words.generated.draft'}\"},\"duplicate_order_warning\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.dette'} @:{'words.generated.ikke'} @:{'words.generated.allerede'} @:{'words.generated.er'} skrevet? Potensielle @:{'words.generated.duplikater'} @:{'words.generated.av'} @:{'words.generated.denne'} @:{'words.generated.bestillingen'} @:{'words.generated.er'} @:{'words.generated.funnet'}. @.capitalize:{'words.generated.du'} @:{'words.generated.kan'} @:{'words.generated.fortsette'} @:{'words.generated.a'} skrive @:{'words.generated.bestillingen'}, @:{'words.generated.eller'} @:{'words.generated.se'} @:{'words.generated.bestillingsdetaljer'}.\",\"duplicates\":{\"subtitle\":\"@.capitalize:{'words.generated.handtere'} @:{'words.generated.mulige'} @:{'words.generated.duplikater'}\"},\"enter_safety_seal_number\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} sikkerhetsforseglingsnummeret\",\"hide_order_details\":\"@:{'words.generated.skjul'} @:{'words.generated.bestillingsdetaljer'}\",\"invoice_email\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.e'}-@:{'words.generated.post'}\",\"make\":\"@.capitalize:{'words.generated.lage'}\",\"model\":\"@:{'templates.generated.compat.vehicles.model'}\",\"no_content_available\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.innhold'} @:{'words.generated.tilgjengelig'}.\",\"no_plates_found\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.bilskilt'} @:{'words.generated.ble'} @:{'words.generated.funnet'}\",\"no_wash_certificate\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.vaskesertifikat'}\",\"not_found\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.funnet'}\",\"order_booking_selector\":{\"continue_without_booking\":\"@.capitalize:{'words.generated.fortsett'} @:{'words.generated.uten'} @:{'words.generated.booking'}\",\"help_text\":\"@.capitalize:{'words.generated.flere'} @:{'words.generated.ventende'} bookinger @:{'words.generated.matcher'} @:{'words.generated.dette'} @:{'words.generated.kjøretøyet'}. @.capitalize:{'words.generated.velg'} riktig @:{'words.generated.booking'} @:{'words.generated.eller'} @:{'words.generated.fortsett'} @:{'words.generated.uten'} @:{'words.generated.booking'}.\",\"title\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.booking'}\"},\"order_note\":\"Bestillingsnotat\",\"orders\":{\"subtitle\":\"@:{'templates.generated.compat.objects.orders.description'}\"},\"pay_with_stripe\":\"Betal @:{'words.generated.med'} @:{'words.generated.stripe'}\",\"po_number\":\"@:{'words.generated.po'}-@:{'words.generated.nummer'}\",\"price_changed_from\":\"@.capitalize:{'words.generated.pris'} @:{'words.generated.endret'} @:{'words.generated.fra'} {from} @:{'words.generated.dkk'} @:{'words.generated.til'} {to} @:{'words.generated.dkk'} / @:{'words.generated.enhet'} ({total} @:{'words.generated.dkk'} @:{'words.generated.totalt'})\",\"recent_scan_details_empty\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.finnes'} @:{'words.generated.ingen'} @:{'words.generated.kjøretøydetaljer'} @:{'words.generated.for'} @:{'words.generated.denne'} skanningen.\",\"recent_scan_details_error\":\"@.capitalize:{'words.generated.kjøretøydetaljer'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.lastes'} @:{'words.generated.inn'}. @.capitalize:{'words.generated.prøv'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.annen'} @:{'words.generated.skanning'}.\",\"recent_scan_details_loading\":\"@.capitalize:{'words.generated.laster'} @:{'words.generated.inn'} @:{'words.generated.kjøretøydetaljer'}...\",\"recent_scans\":\"Nylige skanninger\",\"recent_scans_helper\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.et'} @:{'words.generated.registreringsnummer'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.se'} @:{'words.generated.kjøretøydetaljer'}.\",\"reference_cannot_be_empty\":\"Referansen @:{'words.generated.kan'} @:{'words.generated.ikke'} @:{'words.generated.være'} tom\",\"reference_required_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.kunden'} @:{'words.generated.krever'} @:{'words.generated.et'} @:{'words.generated.referansenummer'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.fortsette'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.et'} @:{'words.generated.referansenummer'} @:{'words.generated.nedenfor'}:\",\"reference_required_title\":\"@.capitalize:{'words.generated.referansenummer'} @:{'words.generated.kreves'}\",\"reference_required_tooltip\":\"@.capitalize:{'words.generated.kunden'} @:{'words.generated.krever'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.referanse'}.\",\"safety_seal\":\"Sikkerhetsforsegling\",\"scanned\":\"Skannet\",\"scanner\":\"Skanner\",\"see_note\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.notat'}\",\"see_reference\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.referanse'}\",\"settings\":\"@:{'templates.generated.compat.common.settings'}\",\"settings_wheel\":{\"add_flag\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.flagg'}\",\"add_flag_order\":\"@.capitalize:{'words.generated.hele'} @:{'words.generated.ordren'}\",\"add_flag_order_customer\":\"Ordrekunde\",\"add_flag_order_item\":\"@.capitalize:{'words.generated.hele'} ordrelinjen\",\"add_flag_order_item_notes\":\"Ordrelinjenotater\",\"add_flag_order_item_price\":\"Ordrelinjepris\",\"add_flag_order_item_quantity\":\"Ordrelinjeantall\",\"add_flag_order_item_reference\":\"Ordrelinjereferanse\",\"add_flag_order_notes\":\"Ordrenotater\",\"add_flag_order_po\":\"@.capitalize:{'words.generated.ordre'}-@:{'words.generated.po'}-@:{'words.generated.nummer'}\",\"add_flag_order_reference\":\"Ordrereferanse\",\"add_flag_reason_placeholder\":\"@.capitalize:{'words.generated.arsak'} @:{'words.generated.til'} flagget\",\"add_flag_reason_required\":\"@.capitalize:{'words.replication.host_definite_suffix'} arsag @:{'words.generated.er'} pakrevd.\",\"add_flag_target\":\"@.capitalize:{'words.generated.valgt'} @:{'words.generated.element'}\",\"add_gate\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.port'}\",\"add_relay\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.rele'}\",\"attach_wash_certificate\":\"@:{'words.generated.legg'} @:{'words.generated.ved'} @:{'words.generated.vaskesertifikat'}\",\"attached_files\":\"@.capitalize:{'words.generated.vedlagte'} @:{'words.generated.filer'}\",\"change_association\":\"@:{'words.generated.bytt'} @:{'words.generated.forening'}\",\"change_invoice_collection\":\"@.capitalize:{'words.generated.endre'} @:{'words.generated.fakturainnkreving'}\",\"change_order\":\"@.capitalize:{'words.generated.endre'} {order}\",\"copy_link\":\"@:{'words.generated.kopier'} @:{'words.generated.lenken'}\",\"delete_booking\":\"@.capitalize:{'words.generated.slett'} @:{'words.generated.bestillingen'}\",\"delete_user\":\"@:{'words.generated.delete'} @:{'words.generated.user'}\",\"download_invoice\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.faktura'}\",\"edit_permissions\":\"@:{'words.generated.rediger'} @:{'words.generated.tillatelser'}\",\"enter_password\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.passord'}\",\"error_changing_password\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} endring @:{'words.generated.av'} @:{'words.generated.passord'}.\",\"error_downloading_attachment\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppsto'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.nedlasting'} @:{'words.generated.av'} @:{'words.replication.article.host_mention'} @:{'words.generated.vedlagte'} @:{'words.generated.filen'}.\",\"flags_section\":\"@.capitalize:{'words.generated.flagg'}\",\"gates_section\":\"@.capitalize:{'words.generated.porter'}\",\"link_copied\":\"Linken @:{'words.generated.er'} @:{'words.generated.kopiert'} @:{'words.generated.til'} @:{'words.generated.utklippstavlen'}\",\"login_as_customer\":\"@:{'templates.generated.compat.global.login_as_customer'}\",\"login_as_user\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.inn'} @:{'words.generated.som'} @:{'words.generated.bruker'}\",\"login_as_user_qr\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.inn'} @:{'words.generated.som'} @:{'words.generated.bruker'} (@:{'words.generated.qr'}-@:{'words.generated.kode'})\",\"no_actions_defined\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.handlinger'} definert\",\"open_attached_file\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.vedlagt'} @:{'words.generated.fil'} #{id}\",\"open_fleet_landing\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.gateway'}-@:{'words.generated.oversikt'}\",\"open_gates_tab\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.porter'}-@:{'words.generated.fane'}\",\"open_gateways_tab\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.gateways'}-@:{'words.generated.fane'}\",\"open_hardware_workspace_lanes\":\"@.capitalize:{'words.generated.apne'} hardware-arbeidsområde (@:{'words.generated.felt'})\",\"open_legacy_gates\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.eldre'} @:{'words.generated.porter'}\",\"open_legacy_relays\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.eldre'} @:{'words.generated.releer'}\",\"open_legacy_self_serve\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.eldre'} @:{'words.generated.selvvask'}\",\"open_primary_gateway\":\"@.capitalize:{'words.generated.apne'} primær @:{'words.generated.gateway'}\",\"open_relays_tab\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.rele'}-@:{'words.generated.fane'}\",\"open_studio\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.studio'}\",\"password_changed\":\"@.capitalize:{'words.generated.passord'} @:{'words.generated.endret'}\",\"password_changed_text\":\"@.capitalize:{'words.generated.passordet'} @:{'words.generated.er'} @:{'words.generated.endret'}.\",\"please_enter_password\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.et'} @:{'words.generated.passord'}\",\"relays_section\":\"@.capitalize:{'words.generated.releer'}\",\"rules_section\":\"@:{'templates.generated.compat.modals.rules'}\",\"scan_qr_to_login\":\"@.capitalize:{'words.generated.skann'} @:{'words.generated.qr'}-@:{'words.generated.koden'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.logge'} @:{'words.generated.inn'} @:{'words.generated.som'} @:{'words.generated.bruker'}\",\"self_serve_studio_section\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.studio'}\",\"shortcut_pricing\":\"@:{'templates.generated.compat.global.prices'}\",\"shortcuts_section\":\"@.capitalize:{'words.generated.snarveier'}\",\"show_customer\":\"@:{'words.generated.vis'} @:{'words.generated.kunde'}\",\"show_qr_code\":\"@:{'words.generated.vis'} @:{'words.generated.qr'}-@:{'words.generated.kode'}\",\"view_booking_new_tab\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.booking'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"view_customer_new_tab\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.kunde'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"view_invoice_collection_new_tab\":\"@.capitalize:{'words.generated.se'} fakturainnsamling @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"view_lane_new_tab\":\"@.capitalize:{'words.generated.se'} kjørefelt @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"view_lane_setup_new_tab\":\"@.capitalize:{'words.generated.se'} kjørefeltoppsett @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"view_order_new_tab\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.ordre'} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"view_vehicle_new_tab\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.kjøretøy'} {reg} @:{'words.generated.i'} @:{'words.generated.ny'} @:{'words.generated.fane'}\",\"accept_self_serve_wash\":\"Godta selvbetjent vask\",\"accept_self_serve_wash_confirm\":\"Flytt denne kladden til kunde #{customerNumber} med selvbetjeningsdetaljene?\",\"accept_self_serve_wash_success\":\"Den selvbetjente vasken ble godtatt.\",\"email_notifications_section\":\"E-postvarsler\",\"resend_booking_completion_confirmation\":\"(Re)send booking completion confirmation\",\"resend_booking_completion_confirmation_error\":\"The booking completion confirmation could not be sent\",\"resend_booking_completion_confirmation_success\":\"The booking completion confirmation has been sent\",\"resend_booking_confirmation\":\"(Re)send booking confirmation\",\"resend_booking_confirmation_error\":\"The booking confirmation could not be sent\",\"resend_booking_confirmation_success\":\"The booking confirmation has been sent\",\"resend_wash_certificate\":\"(Re)send wash certificate\",\"resend_wash_certificate_error\":\"The wash certificate could not be sent\",\"resend_wash_certificate_success\":\"The wash certificate has been sent\",\"self_serve_customer\":\"Kunde\",\"self_serve_driver\":\"Sjåfør\",\"self_serve_elapsed\":\"Tid\",\"self_serve_wash_attachment\":\"Selvbetjent vask\",\"self_serve_wash_attachment_for_customer\":\"Selvbetjent vask for kunde #{customerNumber}\"},\"show_details\":\"@:{'words.generated.vis'} @:{'words.generated.detaljer'}\",\"show_order_details\":\"@:{'words.generated.vis'} @:{'words.generated.bestillingsdetaljer'}\",\"stripe\":{\"actions\":{\"cancel_payment\":\"@:{'words.generated.avbryt'} @:{'words.generated.betaling'}\",\"delete_payment_intent\":\"@.capitalize:{'words.generated.slett'} @.capitalize:{'words.generated.payment'} @.capitalize:{'words.generated.intent'}\",\"open_setup\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.stripe'}-@:{'words.generated.oppsett'}\",\"refresh_payment_status\":\"@:{'words.generated.oppdater'} @:{'words.generated.betalingsstatus'}\",\"refresh_readers\":\"@:{'words.generated.oppdater'} @:{'words.generated.terminaler'}\",\"refresh_setup\":\"@:{'words.generated.oppdater'} terminaloppsett\",\"retry_payment_state\":\"@.capitalize:{'words.generated.prøv'} @:{'words.generated.betalingsstatus'} @:{'words.generated.pa'} @:{'words.generated.nytt'}\",\"show_payment_details\":\"@:{'words.generated.vis'} betalingsdetaljer\"},\"details\":{\"amount_received\":\"@.capitalize:{'words.generated.mottatt'} @:{'words.generated.beløp'}\",\"metadata\":\"Metadata\",\"payment_intent_id\":\"@.capitalize:{'words.generated.payment'} @.capitalize:{'words.generated.intent'} @.upper:{'words.generated.id'}\"},\"email\":{\"action\":\"@:{'words.generated.kortbetaling'} (@:{'words.generated.e'}-@:{'words.generated.post'})\",\"address_placeholder\":\"@:{'words.generated.kunde'} [@:{'words.generated.at'}] eksempel.@:{'words.generated.no'}\",\"errors\":{\"cancel\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} annullere @:{'words.generated.betalingslenken'}.\",\"complete\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.fullføre'} @:{'words.generated.ordren'}.\",\"load\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.laste'} @:{'words.generated.status'} @:{'words.generated.for'} @:{'words.generated.betalingslenken'}.\",\"send\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.sende'} @:{'words.generated.betalingslenken'}.\"},\"eyebrow\":\"Nettbetaling\",\"help\":\"@.capitalize:{'words.generated.send'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.stripe'}-betalingsfaktura @:{'words.generated.til'} @:{'words.generated.kunden'} @:{'words.generated.via'} @:{'words.generated.e'}-@:{'words.generated.post'}.\",\"invoice_link_label\":\"@.capitalize:{'words.generated.betalingslenke'}\",\"messages\":{\"active\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.finnes'} @:{'words.generated.allerede'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.aktiv'} @:{'words.generated.betalingslenke'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.ordren'}.\",\"closed\":\"@.capitalize:{'words.replication.article.host_mention'} elektroniske @:{'words.generated.betalingslenken'} @:{'words.generated.er'} @:{'words.generated.lukket'}.\",\"paid\":\"@.capitalize:{'words.generated.betalingen'} @:{'words.generated.er'} @:{'words.generated.mottatt'}. @.capitalize:{'words.generated.ordren'} @:{'words.generated.kan'} @:{'words.generated.na'} @:{'words.generated.fullføres'}.\",\"sent\":\"@.capitalize:{'words.generated.betalingslenken'} @:{'words.generated.er'} @:{'words.generated.sendt'}. @.capitalize:{'words.generated.status'} oppdateres @:{'words.generated.automatisk'}.\"},\"states\":{\"open\":\"@.capitalize:{'words.generated.venter'} @:{'words.generated.pa'} @:{'words.generated.betaling'}\",\"uncollectible\":\"@.capitalize:{'words.generated.kan'} @:{'words.generated.ikke'} innkreves\"}},\"errors\":{\"capture_payment_intent\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.fullføre'} @.capitalize:{'words.generated.payment'} @.capitalize:{'words.generated.intent'}.\",\"create_payment_intent\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.opprette'} @.capitalize:{'words.generated.payment'} @.capitalize:{'words.generated.intent'}.\",\"delete_payment_intent\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.slette'} @.capitalize:{'words.generated.payment'} @.capitalize:{'words.generated.intent'}.\",\"load_payment_intent_state\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.laste'} @:{'words.generated.betalingsstatus'}.\",\"load_readers\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.laste'} @:{'words.generated.stripe'}-@:{'words.generated.terminaler'}.\",\"select_reader_before_payment\":\"@.capitalize:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.terminal'} før @:{'words.generated.betalingen'} startes.\"},\"headings\":{\"card_payment\":\"@:{'words.generated.kortbetaling'}\",\"terminal\":\"@:{'words.generated.stripe'} @.capitalize:{'words.generated.terminal'}\"},\"messages\":{\"contact_superuser\":\"@.capitalize:{'words.generated.kontakt'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.superbruker'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.apne'} @:{'words.generated.stripe'}-oppsettet @:{'words.generated.og'} @:{'words.generated.velge'} @:{'words.replication.host_definite_suffix'} terminalplassering @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.avdelingen'}.\",\"reader_unavailable\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.terminal'} @:{'words.generated.er'} @:{'words.generated.tilgjengelig'} @:{'words.generated.akkurat'} @:{'words.generated.na'}. @:{'words.generated.oppdater'} listen @:{'words.generated.eller'} @:{'words.generated.vent'} @:{'words.generated.til'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.terminal'} @:{'words.generated.kommer'} @:{'words.generated.pa'} nett.\",\"setup_required_title\":\"@:{'words.generated.kortbetaling'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.klar'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.avdelingen'}.\",\"waiting_for_reader\":\"@.capitalize:{'words.generated.betalingen'} @:{'words.generated.pagar'} @:{'words.generated.pa'} @:{'words.generated.valgt'} @:{'words.generated.terminal'}. @:{'words.generated.oppdater'} statusen @:{'words.generated.hvis'} terminalen @:{'words.generated.allerede'} @:{'words.generated.har'} @:{'words.generated.lest'} kortet.\"},\"reader\":{\"label\":\"@.capitalize:{'words.generated.terminal'}\",\"no_selection\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.terminal'} @:{'words.generated.valgt'}\",\"none_available\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.terminaler'} @:{'words.generated.tilgjengelige'}\",\"none_ready\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.klare'} @:{'words.generated.terminaler'}\",\"select\":\"@.capitalize:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.terminal'}\",\"status\":{\"busy\":\"@.upper:{'words.generated.i'} @:{'words.generated.bruk'}\"},\"unavailable_group\":\"Utilgjengelige @:{'words.generated.terminaler'}\"},\"states\":{\"cancelling\":\"@:{'words.generated.avbryter'} @:{'words.generated.betaling'}\",\"capturing\":\"@:{'words.generated.fullfører'} @:{'words.generated.betaling'}\",\"creating\":\"@:{'words.generated.oppretter'} @:{'words.generated.betaling'}\",\"failed\":\"@.capitalize:{'words.generated.handling'} @:{'words.generated.kreves'}\",\"idle\":\"@.capitalize:{'words.generated.klar'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.starte'}\",\"reader_unavailable\":\"@.capitalize:{'words.generated.terminal'} @:{'words.generated.utilgjengelig'}\",\"ready_to_capture\":\"@.capitalize:{'words.generated.klar'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.fullføre'}\",\"setup_required\":\"@.capitalize:{'words.generated.oppsett'} @:{'words.generated.kreves'}\",\"succeeded\":\"@.capitalize:{'words.generated.betaling'} @:{'words.generated.fullført'}\",\"waiting_for_reader\":\"@.capitalize:{'words.generated.venter'} @:{'words.generated.pa'} @:{'words.generated.terminal'}\"},\"tax_profile\":\"@:{'words.generated.mva'}-@:{'words.generated.profil'}\",\"tax_rates\":{\"danish_customer\":\"Dansk @:{'words.generated.kunde'}\",\"eu_customer\":\"EU-@:{'words.generated.kunde'}\"}},\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.administrere'} @:{'words.generated.salg'} @:{'words.generated.og'} @:{'words.generated.bestillinger'}\",\"sync\":{\"subtitle\":\"@:{'words.generated.synkroniser'} @:{'words.generated.bestillinger'} @:{'words.generated.med'} @:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"title\":\"@.capitalize:{'words.generated.synkronisering'}\"},\"transaction\":\"@.capitalize:{'words.generated.transaksjon'}\",\"use\":\"@:{'templates.generated.compat.common.apply'}\",\"variant\":\"Variant\",\"waiting_for_booking\":\"@.capitalize:{'words.generated.venter'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.bestillingen'} @:{'words.generated.skal'} @:{'words.generated.fullføres'}\",\"warning\":\"@:{'templates.generated.compat.common.warning'}\",\"wash_certificate\":\"@.capitalize:{'words.generated.vaskesertifikat'}\",\"wash_certificate_already_attached\":\"@.upper:{'words.generated.a_2'} @:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.is'} @:{'words.generated.already'} @:{'words.generated.attached'} @:{'words.generated.to'} @:{'words.generated.this'} @:{'words.generated.order'}.\",\"wash_certificate_attached\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.wash'} @:{'words.generated.certificate'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.generated'} @:{'words.generated.and'} @:{'words.generated.attached'} @:{'words.generated.to'} @:{'words.generated.the'} @:{'words.generated.order'}.\",\"wash_certificate_generation_error\":\"@.capitalize:{'words.generated.an'} @:{'words.generated.error'} @:{'words.generated.occurred'} @:{'words.generated.while'} generating @:{'words.generated.the'} @:{'words.generated.wash'} @:{'words.generated.certificate'}\",\"wash_certificate_item\":\"@.capitalize:{'words.generated.vaskesertifikat'}-linjen\"},\"self_serve\":{\"condition_rules\":{\"add_question_rule\":\"@:{'templates.generated.compat.modals.add_question_rule'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.tilstandsregler'}\"},\"conditions\":{\"add\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.betingelse'}\",\"manage\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.forhold'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.selvbetjeningsforhold'}\"},\"questions\":{\"add\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.spørsmal'}\",\"manage\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.spørsmal'}\"},\"select_vehicle_type_first\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kjøretøytype'} @:{'words.generated.først'}\",\"tasks\":{\"add\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.oppgave'}\",\"manage\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.oppgaver'}\"},\"try\":\"Prøve\",\"vehicle_conditions\":{\"add\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.kjøretøyets'} @:{'words.generated.tilstand'}\",\"filter_by_reg\":\"@:{'words.generated.filtrer'} @:{'words.generated.etter'} @:{'words.generated.registreringsnummer'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.kjøretøyets'} @:{'words.generated.forhold'}\"}},\"time_bookings\":{\"new\":{\"subtitle\":\"@:{'words.generated.opprett'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.tidsbestilling'}\",\"title\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.tidsbestilling'}\"},\"opening_hours\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.apningstider'}\"},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.timebestillinger'}\",\"title\":\"@.capitalize:{'words.generated.tidsbestillinger'}\",\"types\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.bestillingstyper'}\",\"title\":\"@.capitalize:{'words.generated.bestillingstyper'}\"}},\"wash_lanes\":{\"single\":{\"subtitle\":\"Vaskebanedetaljer\"},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.vaskebaner'}\",\"title\":\"@.capitalize:{'words.generated.vaskebaner'}\"}},\"auth\":{\"country_code\":\"@:{'templates.generated.compat.global.phone_country_code'}\",\"customer_login_title\":\"Kundepålogging\",\"driver_login_title\":\"@.capitalize:{'words.generated.driver'} Login\",\"forgot_password\":\"Glemt @:{'words.generated.passord'}\",\"operator_tagline\":\"@.capitalize:{'words.generated.truckwash'}.@:{'words.generated.io'} – @:{'words.generated.digitale'} @:{'words.generated.løsninger'} @:{'words.generated.for'} @:{'words.generated.lastebilvask'}\",\"phone_number\":\"@:{'templates.generated.compat.global.phone_number'}\",\"remember_me\":\"Husk meg\",\"terms_acceptance\":\"@.capitalize:{'words.generated.ved'} @:{'words.generated.a'} klikke \\\"@.capitalize:{'words.generated.logg'} @:{'words.generated.inn'}\\\" godtar @:{'words.generated.du'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} personvernerklæring @:{'words.generated.og'} @:{'words.generated.vilkar'}\",\"username\":\"@.capitalize:{'words.generated.brukernavn'}\",\"your_username\":\"@.capitalize:{'words.generated.ditt'} @:{'words.generated.brukernavn'}\"},\"book_wash\":{\"title_desc\":\"Bestill @:{'words.generated.vask'} @:{'words.generated.pa'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.av'} våre @:{'words.generated.avdelinger'} - @:{'words.generated.med'} @:{'words.generated.mulighet'} @:{'words.generated.for'} @:{'words.generated.sikkerhetsplombering'}.\",\"title\":\"@.capitalize:{'words.generated.bokvask'}\"},\"bookings_table\":{\"and_one_other\":\"{name} @:{'words.generated.og'} 1 @:{'words.generated.annen'}\",\"and_others\":\"{name} @:{'words.generated.og'} {count} @:{'words.generated.andre'}\",\"no_services\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.tjenester'}\",\"none_registered\":\"@:{'words.generated.none'} @:{'words.generated.registered'}\",\"pcs\":\"stk\",\"po\":\"@:{'words.generated.po'}\",\"services\":\"@:{'templates.generated.compat.common.services'}\",\"unknown_service\":\"@.capitalize:{'words.generated.ukjent'} @:{'words.generated.tjeneste'}\",\"wash\":\"@.capitalize:{'words.generated.vask'}\"},\"bookings\":{\"at_time\":\"kl.\",\"booking_number\":\"@.capitalize:{'words.generated.bestillingsnummer'}\",\"cancel_booking\":\"@:{'words.generated.avbryt'} @:{'words.generated.bestilling'}\",\"complete_booking\":\"@:{'templates.generated.compat.pos.order.complete_order'}\",\"confirm_booking\":\"@.capitalize:{'words.generated.bekreft'} @:{'words.generated.bestilling'}\",\"date\":\"Gitt\",\"delete_booking\":\"@.capitalize:{'words.generated.slett'} @:{'words.generated.bestilling'}\",\"edit_booking\":\"@:{'words.generated.rediger'} @:{'words.generated.bestilling'}\",\"expected_at\":\"@.capitalize:{'words.generated.forventet'}\",\"new_booking\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.bestilling'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.bestillingsnummer'}, @:{'words.generated.kunde'}\",\"statuses\":{\"confirmed\":\"@.capitalize:{'words.generated.bekreftet'}\"},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.bestillinger'}\",\"view_booking\":\"@:{'words.generated.vis'} @:{'words.generated.rekkefølge'}\"},\"calendar\":{\"april\":\"april\",\"august\":\"august\",\"day\":\"@.capitalize:{'words.generated.dag'}\",\"december\":\"Desember\",\"february\":\"februar\",\"fullcalendar\":{\"allDay\":\"@.capitalize:{'words.generated.hele'} @:{'words.generated.dagen'}\",\"dayHeaderFormat\":\"ddd @:{'words.generated.d'}/M\",\"eventTimeFormat\":\"HH:@:{'words.generated.mm'}\",\"list\":\"@.capitalize:{'words.generated.liste'}\",\"titleFormat\":\"dddd @:{'words.generated.d'}. MMMM ÅÅÅÅ\"},\"january\":\"januar\",\"july\":\"Juli\",\"june\":\"Juni\",\"march\":\"Mars\",\"may\":\"@.capitalize:{'words.generated.mai'}\",\"monday\":\"kvadrat\",\"november\":\"november\",\"october\":\"Oktober\",\"saturday\":\"Lördag\",\"september\":\"september\",\"sunday\":\"@:{'templates.generated.compat.common.days.sunday'}\",\"tuesday\":\"@:{'words.generated.tirsdag'}\",\"week\":\"@:{'templates.generated.compat.common.week'}\"},\"collected_invoice\":{\"move_customer\":{\"card_title\":\"Move to customer\",\"confirm_button\":\"Move\",\"confirm_text\":\"Move invoice collection #{id} and {count} orders to customer #{customer}?\",\"confirm_title\":\"Confirm move\",\"current_customer\":\"Current customer: #{customer}\",\"customer_value\":\"Customer #{customer}\",\"error_title\":\"Could not move invoice collection\",\"invalid_customer\":\"Enter a valid customer number.\",\"locked\":\"Locked\",\"same_customer\":\"Choose another customer than the current one.\",\"success_text\":\"{count} orders were moved to customer #{customer}.\",\"success_title\":\"Invoice collection moved\",\"title\":\"Move invoice collection\"},\"economic\":{\"booked_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.bokført'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}, @:{'words.generated.ingen'} @:{'words.generated.ytterligere'} @:{'words.generated.handlinger'} @:{'words.generated.er'} @:{'words.generated.nødvendig'}.\",\"booked_with_economic\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.bestilles'} @:{'words.generated.hos'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"create_invoice\":\"@:{'words.generated.opprett'} @:{'words.generated.faktura'}\",\"draft_customer_blocked_desc\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.fakturasamlingen'} @:{'words.generated.bruker'} @:{'words.replication.article.host_mention'} @:{'words.generated.konfigurerte'} @:{'words.generated.utkastkunden'} @:{'words.generated.og'} @:{'words.generated.kan'} @:{'words.generated.derfor'} @:{'words.generated.ikke'} @:{'words.generated.eksporteres'} @:{'words.generated.til'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"draft_customer_blocked_title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.eksport'} @:{'words.generated.er'} blokkert\",\"fixed_price_added\":\"@:{'words.generated.fast'} @:{'words.generated.pris'} @:{'words.generated.i'} @:{'words.generated.tillegg'}\",\"fixed_price_added_desc\":\"@:{'words.generated.fast'} @:{'words.generated.pris'} @:{'words.generated.er'} @:{'words.generated.lagt'} @:{'words.generated.til'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"invoice_create_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.opprettelsen'} @:{'words.generated.av'} @:{'words.generated.fakturaen'}.\",\"invoice_created\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.opprettet'}\",\"invoice_created_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.opprettet'}.\",\"invoice_sent\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.sendt'}\",\"invoice_sent_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.sendt'} @:{'words.generated.til'} @:{'words.generated.kunden'}\",\"invoice_split\":\"@.capitalize:{'words.generated.fakturainnkreving'} splitt\",\"invoice_split_desc\":\"Fakturainnsamlingen @:{'words.generated.er'} @:{'words.generated.delt'} @:{'words.generated.opp'}.\",\"invoice_split_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppsto'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} deling @:{'words.generated.av'} fakturainnkrevingen.\",\"invoice_unlinked\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.frakoblet'}\",\"invoice_unlinked_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.frakoblet'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}, @:{'words.generated.vær'} opmærksom @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.fakturaen'} muligvis stadig eksisterer @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"saved_as_draft\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.lagret'} @:{'words.generated.som'} @:{'words.generated.utkast'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"saved_as_draft_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.lagres'} @:{'words.generated.som'} @:{'words.generated.utkast'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.og'} @:{'words.generated.kan'} @:{'words.generated.bestilles'} @:{'words.generated.direkte'} @:{'words.generated.der'}.\",\"special_removed\":\"@:{'words.generated.spesielle'} @:{'words.generated.avtaler'} @:{'words.generated.fjernet'}\",\"special_removed_desc\":\"@:{'words.generated.spesielle'} @:{'words.generated.avtaler'} @:{'words.generated.er'} @:{'words.generated.fjernet'} @:{'words.generated.fra'} @:{'words.generated.fakturaen'}.\",\"split_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.dele'} @:{'words.generated.denne'} @:{'words.generated.fakturasamlingen'}?\",\"split_yes\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.delt'}\",\"subscriptions_added\":\"@.capitalize:{'words.generated.abonnementer'} @:{'words.generated.lagt'} @:{'words.generated.til'}\",\"subscriptions_added_desc\":\"@.capitalize:{'words.generated.kjøretøyabonnementer'} @:{'words.generated.er'} @:{'words.generated.lagt'} @:{'words.generated.til'}.\",\"undo_send\":\"@.capitalize:{'words.generated.angre'} @:{'words.generated.sending'}, @:{'words.generated.ga'} @:{'words.generated.tilbake'}\",\"unlink_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.koble'} @:{'words.generated.fra'} @:{'words.generated.fakturaen'}? @.capitalize:{'words.generated.vær'} oppmerksom @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.fakturaen'} fortsatt @:{'words.generated.kan'} eksistere @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}. @.capitalize:{'words.generated.du'} @:{'words.generated.ma'} @:{'words.generated.slette'} @:{'words.replication.article.host_mention'} @:{'words.generated.selv'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.om'} @:{'words.generated.nødvendig'}.\",\"unlink_yes\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.koble'} @:{'words.generated.fra'} @:{'words.generated.fakturaen'}\",\"use_economic_desc\":\"@.capitalize:{'words.generated.bruk'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.lage'} @:{'words.generated.fakturaer'}\"},\"stripe\":{\"and_booked\":\"@:{'words.generated.og'} buet\",\"and_saved_draft\":\"@:{'words.generated.og'} @:{'words.generated.lagret'} @:{'words.generated.som'} @:{'words.generated.utkast'}\",\"booked_with\":\"@:{'words.generated.registrert'} @:{'words.generated.hos'}\",\"but_not_booked\":\"@:{'words.generated.men'} @:{'words.generated.ikke'} @:{'words.generated.registrert'}\",\"in_economic\":\"@:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"invoice_booked\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.bogført'}\",\"invoice_booked_desc\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.bogført'} @:{'words.generated.i'} @:{'words.generated.stripe'}\",\"invoice_paid\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} @:{'words.generated.betalt'}\",\"invoice_status\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.er'} {status}\",\"not_booked\":\"@:{'words.generated.ikke'} @:{'words.generated.registrert'}\",\"payment_amount\":\"Betalingsbeløb\",\"payment_id\":\"Betalings-@.upper:{'words.generated.id'}\",\"payment_overview\":\"Betalingssammendrag\",\"payment_status\":\"@:{'templates.generated.compat.global.payment_status'}\",\"saved_as_draft\":\"@:{'words.generated.lagret'} @:{'words.generated.som'} @:{'words.generated.utkast'} @:{'words.generated.i'}\",\"stripe_fees\":\"Stripeavgifter\"}},\"common\":{\"about\":\"@.capitalize:{'words.generated.om'}\",\"actions\":\"@.capitalize:{'words.generated.handlinger'}\",\"active\":\"@.capitalize:{'words.generated.aktiv'}\",\"add\":\"@:{'words.generated.legg'} @:{'words.generated.til'}\",\"addons\":\"@.capitalize:{'words.generated.alternativer'}\",\"address\":\"Adresse\",\"all\":\"@.capitalize:{'words.generated.alle'}\",\"and\":\"@:{'words.generated.og'}\",\"apply\":\"@.capitalize:{'words.generated.bruk'}\",\"approved\":\"Godkjent\",\"approx\":\"@:{'words.generated.ca'}.\",\"are\":\"@:{'templates.generated.compat.common.is'}\",\"back\":\"@.capitalize:{'words.generated.tilbake'}\",\"booking_created\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.bestilling'} @:{'words.generated.er'} @:{'words.generated.opprettet'}.\",\"bookings\":\"Reservasjoner\",\"can\":\"@:{'words.generated.kan'}\",\"cancel\":\"@:{'words.generated.avbryt'}\",\"cancelled\":\"@.capitalize:{'words.generated.avbrutt'}\",\"city\":\"@.capitalize:{'words.generated.by'}\",\"clear\":\"@.capitalize:{'words.generated.klar'}\",\"click_to_copy\":\"@.capitalize:{'words.generated.klikk'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.kopiere'}\",\"close\":\"@:{'words.generated.lukk'}\",\"collapse\":\"@:{'templates.generated.compat.common.hide'}\",\"comment\":\"Kommentar\",\"comments\":\"Kommentarer\",\"company\":\"Foretag\",\"completed\":\"@.capitalize:{'words.generated.fullført'}\",\"confirm\":\"@.capitalize:{'words.generated.bekreft'}\",\"contact\":\"@.capitalize:{'words.generated.kontakt'}\",\"continue\":\"Fortsätt\",\"copied\":\"@.capitalize:{'words.generated.kopiert'}\",\"copy_error\":\"@:{'words.generated.kopier'} @:{'words.generated.feilmelding'}\",\"copy\":\"@.capitalize:{'words.generated.kopiere'}\",\"could\":\"@:{'words.generated.kunne'}\",\"country\":\"Jord\",\"create\":\"@:{'words.generated.opprett'}\",\"created\":\"@.capitalize:{'words.generated.opprettet'}\",\"customer_conflict\":{\"help_text\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.innskrevne'} @:{'words.generated.skiltet'} @:{'words.generated.tilhoerer'} @:{'words.replication.host_definite_suffix'} annen lagret @:{'words.generated.kunde'}. @.capitalize:{'words.generated.velg'} @:{'words.generated.om'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.kunden'} @:{'words.generated.skal'} @:{'words.generated.beholdes'} eller @:{'words.generated.om'} @:{'words.generated.det'} @:{'words.generated.skal'} @:{'words.generated.byttes'} @:{'words.generated.til'} @:{'words.generated.kjoretoykunden'}.\",\"keep_selected_customer\":\"@:{'words.generated.behold'} @:{'words.generated.valgt'} @:{'words.generated.kunde'}\",\"matched_customer_label\":\"@.capitalize:{'words.generated.kjoretoykunde'}\",\"title\":\"Bekreft @:{'words.generated.kunde'} @:{'words.generated.for'} skilt\",\"use_vehicle_customer\":\"@.capitalize:{'words.generated.bruk'} @:{'words.generated.kjoretoykunde'}\",\"warning_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.kunden'} @:{'words.generated.og'} @:{'words.generated.kjoretoykunden'} matcher @:{'words.generated.ikke'}.\"},\"customer_creation_error_generic\":\"@.capitalize:{'words.generated.det'} oppsto @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.opprettelsen'} @:{'words.generated.av'} @:{'words.generated.kunden'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.prøv'} @:{'words.generated.igjen'}.\",\"customer_creation_error\":\"@.capitalize:{'words.generated.det'} oppstod @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.opprettelsen'} @:{'words.generated.av'} @:{'words.generated.kunden'}: {error}\",\"customer_id\":\"@.capitalize:{'words.generated.kunde'}-@.upper:{'words.generated.id'}\",\"customer_name\":\"@:{'words.generated.kundens'} navn\",\"customer_note\":\"Merknad @:{'words.generated.fra'} @:{'words.generated.kunde'}\",\"customer_notes\":\"@:{'words.generated.kundens'} notater\",\"customer_number\":\"@.capitalize:{'words.generated.kundenummer'}\",\"customer_picker\":{\"select_card_payment\":\"@:{'words.generated.betalingskort'}\",\"select_customer_invoice\":\"@:{'words.generated.kundefaktura'}\",\"select_draft_customer\":\"@:{'words.generated.utsett'}\",\"select_new_customer\":\"Ny @:{'words.generated.kunde'}\",\"select_payment_form\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.betalingsform'}\",\"selected_customer\":\"@.capitalize:{'words.generated.valgt'} @:{'words.generated.kunde'}\"},\"customer_prices\":\"@:{'words.generated.kundepriser'}\",\"customer_wishes\":\"@:{'words.generated.kundeønsker'}\",\"customer\":\"@.capitalize:{'words.generated.kund'}\",\"customers\":\"@.capitalize:{'words.generated.kunder'}\",\"cut\":\"Klipp @:{'words.generated.ut'}\",\"dashboard\":\"Instrumentpanel\",\"date\":\"@.capitalize:{'words.generated.dato'}\",\"days\":{\"friday\":\"Fredag\",\"monday\":\"Mandag\",\"saturday\":\"Lørdag\",\"sunday\":\"Søndag\",\"thursday\":\"Torsdag\",\"tuesday\":\"@.capitalize:{'words.generated.tirsdag'}\",\"wednesday\":\"Onsdag\"},\"delete\":\"@.capitalize:{'words.generated.slett'}\",\"department_allocations\":\"@:{'words.generated.avdelingsbevilgninger'}\",\"department_id\":\"Avdelings-@.upper:{'words.generated.id'}\",\"department\":\"@:{'words.generated.del'}\",\"departments\":\"@.capitalize:{'words.generated.avdelinger'}\",\"description\":\"Beskrivelse\",\"details\":\"@.capitalize:{'words.generated.detaljer'}\",\"disabled\":\"Funksjonshemmet\",\"discount\":\"@.capitalize:{'words.generated.rabatt'}\",\"done\":\"@.capitalize:{'words.generated.ferdig'}\",\"download\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'}\",\"during_the_day\":\"@:{'words.generated.i'} løpet @:{'words.generated.av'} @:{'words.generated.dagen'}\",\"edit\":\"Redigere\",\"email\":\"@.upper:{'words.generated.e'}-@:{'words.generated.post'}\",\"enabled\":\"@.capitalize:{'words.generated.aktivert'}\",\"entries_per_page\":\"oppføringer @:{'words.generated.per'} @:{'words.generated.side'}\",\"error_creating_booking\":\"@.capitalize:{'words.generated.feil'} @:{'words.generated.ved'} opprettelse @:{'words.generated.av'} @:{'words.generated.bestilling'}\",\"error\":\"@.capitalize:{'words.generated.feil'}\",\"expand\":\"Utvide\",\"expired\":\"Utgången\",\"export\":\"@.capitalize:{'words.generated.eksport'}\",\"failed\":\"Mislykket\",\"filter\":\"@.capitalize:{'words.generated.filter'}\",\"finish\":\"@:{'words.generated.sluttfor'}\",\"first\":\"Forste\",\"from\":\"Fr\",\"had\":\"hadde\",\"has\":\"@:{'words.generated.har'}\",\"have\":\"@:{'templates.generated.compat.common.has'}\",\"help\":\"@.capitalize:{'words.generated.hjelp'}\",\"hide\":\"@:{'words.generated.skjul'}\",\"home\":\"Hem\",\"hour\":\"@.capitalize:{'words.generated.time'}\",\"import\":\"@.capitalize:{'words.generated.import'}\",\"inactive\":\"Inaktiv\",\"info\":\"Info\",\"invoice\":\"@.capitalize:{'words.generated.faktura'}\",\"invoices\":\"@.capitalize:{'words.generated.fakturaer'}\",\"is_dev_on\":\"Utviklingsmodus\",\"is\":\"@:{'words.generated.ar'}\",\"language\":\"Språk\",\"last_wash\":\"@:{'words.generated.siste'} @:{'words.generated.vask'}\",\"last\":\"@:{'words.generated.siste'}\",\"less\":\"@.capitalize:{'words.generated.mindre'}\",\"loading\":\"@.capitalize:{'words.generated.laster'}...\",\"login\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.pa'}\",\"logout\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.ut'}\",\"may\":\"@:{'templates.generated.compat.common.can'}\",\"might\":\"kanskje\",\"minute\":\"Minutt\",\"month\":\"Månad\",\"more\":\"@.capitalize:{'words.generated.mer'}\",\"must\":\"maske\",\"name\":\"@.capitalize:{'words.generated.navn'}\",\"new\":\"@.capitalize:{'words.generated.ny'}\",\"next_step\":\"@.capitalize:{'words.generated.neste'} @:{'words.generated.trinn'}\",\"next\":\"@.capitalize:{'words.generated.neste'}\",\"no\":\"@.capitalize:{'words.generated.nei'}\",\"none_registered\":\"@:{'words.generated.none'} registered\",\"none_services_added\":\"Ingen tjenester lagt @:{'words.generated.til'} ennå\",\"none\":\"@.capitalize:{'words.generated.ingen'}\",\"not_available\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.tilgjengelig'}\",\"not\":\"@:{'words.generated.ikke'}\",\"note\":\"@:{'words.generated.note'}\",\"notes\":\"@.capitalize:{'words.generated.notater'}\",\"of\":\"@:{'words.generated.av'}\",\"ok\":\"@:{'words.generated.ok'}\",\"open\":\"@.capitalize:{'words.generated.apne'}\",\"optional\":\"Eventuelt\",\"or\":\"@:{'words.generated.eller'}\",\"order_cancelled\":\"@.capitalize:{'words.generated.bestillingen'} @:{'words.generated.er'} @:{'words.generated.kansellert'}\",\"order_created\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.bestilling'} @:{'words.generated.er'} opprettet.\",\"order_desc\":\"@:{'words.generated.bokvask'} over hele @:{'words.generated.landet'}\",\"order_id_incorrect\":\"@.capitalize:{'words.generated.bestillings'}-@.upper:{'words.generated.id'} @:{'words.generated.er'} @:{'words.generated.feil'}\",\"order_id_required\":\"@.capitalize:{'words.generated.du'} må @:{'words.generated.oppgi'} @:{'words.generated.bestillings'}-@.upper:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.a'} fullføre @:{'words.generated.vask'} @:{'words.generated.uten'} vaskebevis\",\"order_info\":\"@:{'words.generated.bestillingsinformasjon'}\",\"order\":\"@.capitalize:{'words.generated.bestille'}\",\"orders\":\"@.capitalize:{'words.generated.bestillinger'}\",\"page_x_of_y\":\"@.capitalize:{'words.generated.side'} {x} @:{'words.generated.av'} {y}\",\"paste\":\"Lim @:{'words.generated.inn'}\",\"pause\":\"Brudd\",\"pending\":\"@.capitalize:{'words.generated.salg'}\",\"per_page\":\"@:{'words.generated.per'} @:{'words.generated.side'}\",\"phone\":\"@.capitalize:{'words.generated.telefon'}\",\"preview\":\"@.capitalize:{'words.generated.forhandsvisning'}\",\"previous_step\":\"@.capitalize:{'words.generated.forrige'} @:{'words.generated.trinn'}\",\"previous\":\"@.capitalize:{'words.generated.forrige'}\",\"price\":\"@.capitalize:{'words.generated.pris'}\",\"print\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.ut'}\",\"privacy\":\"Integritet\",\"processing\":\"Behandling\",\"product\":\"@.capitalize:{'words.generated.produkt'}\",\"products\":\"@.capitalize:{'words.generated.produkter'}\",\"profile\":\"@.capitalize:{'words.generated.profil'}\",\"quantity\":\"@.capitalize:{'words.generated.antall'}\",\"redo\":\"Gör @:{'words.generated.om'}\",\"reference\":\"@.capitalize:{'words.generated.referanse'}\",\"refresh\":\"@:{'templates.generated.compat.common.update'}\",\"register\":\"Register\",\"rejected\":\"Avvist\",\"remove\":\"@.capitalize:{'words.generated.fjern'}\",\"required\":\"Påbudt\",\"reset\":\"@:{'words.generated.aterstall'}\",\"results\":\"@:{'words.generated.resultater'}\",\"resume\":\"Gjenta\",\"retry\":\"@.capitalize:{'words.generated.prøv'} @:{'words.generated.igjen'}\",\"role\":\"Rulle\",\"roles\":\"@:{'templates.generated.compat.common.role'}\",\"roless\":{\"admin\":\"@:{'words.generated.administrator'}\",\"employee\":\"@.capitalize:{'words.generated.ansatt'}\",\"manager\":\"@:{'words.generated.leder'}\"},\"save\":\"@.capitalize:{'words.generated.lagre'}\",\"search_booking\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} booking\",\"search_customer_by_number\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.kundenummer'}\",\"search_customer\":\"Sök kund\",\"search_customers_ellipsis\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.kunder'}...\",\"search_customers\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.inn'} @:{'words.generated.kunder'}\",\"search_cvr\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.i'} CVR-nummer...\",\"search_department\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} avdeling\",\"search_departments\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.avdelinger'}...\",\"search_driver\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} driver\",\"search_for\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'}\",\"search_license_plate\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} nummerskilt\",\"search_order\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.ordre'}\",\"search_phone\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} telefonnummer\",\"search_products_ellipsis\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.produkter'}...\",\"search_products\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.produkter'}\",\"search_scanners\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} nummerskiltskannere\",\"search_subuser\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} underbruker\",\"search_transactions\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.i'} transaksjoner\",\"search_user\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} bruker\",\"search\":\"@:{'words.generated.sok'}\",\"second\":\"Sekund\",\"see_more\":\"Sjø\",\"select\":\"@.capitalize:{'words.generated.velg'}\",\"selected\":\"@.capitalize:{'words.generated.valgt'}\",\"service\":\"Tjänst\",\"services\":\"@.capitalize:{'words.generated.tjenester'}\",\"settings\":\"@.capitalize:{'words.generated.innstillinger'}\",\"shall\":\"vilje\",\"should\":\"burde\",\"show\":\"@:{'words.generated.vis'}\",\"sort\":\"@:{'words.generated.sorter'}\",\"start\":\"@.capitalize:{'words.generated.start'}\",\"status\":\"@.capitalize:{'words.generated.status'}\",\"stop\":\"Stoppe\",\"submit\":\"@.capitalize:{'words.generated.sende'}\",\"subtotal\":\"Delsumma\",\"success\":\"Suksess\",\"support\":\"Støtte\",\"tax\":\"@:{'words.generated.mva'}\",\"terms\":\"@.capitalize:{'words.generated.vilkar'}\",\"thank_you\":\"@:{'words.generated.takk'} @:{'words.generated.for'} @:{'words.generated.din'} @:{'words.generated.bestilling'}!\",\"time\":\"@.capitalize:{'words.generated.tid'}\",\"to\":\"@.capitalize:{'words.generated.till'}\",\"today\":\"@.upper:{'words.generated.i'} @:{'words.generated.dag'}\",\"tomorrow\":\"@.upper:{'words.generated.i'} morgen\",\"total\":\"Helt\",\"unable_to_load\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.laste'} @:{'words.generated.inn'} @:{'words.generated.data'}, @:{'words.generated.men'} @:{'words.generated.ingen'} @:{'words.generated.feil'} @:{'words.generated.ble'} @:{'words.generated.funnet'}.\",\"undo\":\"Ångra\",\"unknown_error\":\"@.capitalize:{'words.generated.ukjent'} @:{'words.generated.feil'}\",\"unknown\":\"@:{'words.generated.ok_ok'}\",\"unselect\":\"@.capitalize:{'words.generated.fjern'} @:{'words.generated.valg'}\",\"update\":\"@:{'words.generated.oppdater'}\",\"updated\":\"@:{'words.generated.oppdatert'}\",\"upload\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.opp'}\",\"user\":\"@.capitalize:{'words.generated.brukere'}\",\"vehicle\":\"@.capitalize:{'words.generated.kjøretøy'}\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicle'}\",\"via\":\"@.capitalize:{'words.generated.via'}\",\"view_booking\":\"Vis @:{'words.generated.rekkefølge'}\",\"view\":\"Visum\",\"warning\":\"Advarsel\",\"was\":\"@:{'words.generated.var'}\",\"week\":\"@.capitalize:{'words.generated.uke'}\",\"were\":\"@:{'templates.generated.compat.common.was'}\",\"will\":\"@:{'words.generated.kommer'}\",\"would\":\"skulle\",\"year\":\"@.capitalize:{'words.generated.ar'}\",\"yes\":\"@.capitalize:{'words.generated.ja'}\",\"yesterday\":\"Igår\",\"zip\":\"@:{'words.generated.postnummer'}\"},\"configuration\":{\"backups\":{\"backup_created\":\"Sikkerhetskopiering @:{'words.generated.opprettet'}\",\"backup_created_success\":\"@.capitalize:{'words.generated.sikkerhetskopien'} @:{'words.generated.ble'} @:{'words.generated.opprettet'}.\",\"backup_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.oppretting'} @:{'words.generated.av'} @:{'words.generated.sikkerhetskopien'}.\",\"backup_schedule\":\"Sikkerhetskopieringsplan\",\"create_backup\":\"@:{'words.generated.lag'} @:{'words.generated.sikkerhetskopi'}\",\"create_backup_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.lage'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.sikkerhetskopi'}?\",\"delete_backup\":\"@.capitalize:{'words.generated.slett'} @:{'words.generated.sikkerhetskopi'}\",\"download_backup\":\"Ladda ner @:{'words.generated.sakerhetskopia'}\",\"enable_system\":\"@:{'words.generated.aktiver'} @:{'words.generated.backup'}-@:{'words.generated.systemet'}\",\"enable_system_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.backup'}-@:{'words.generated.systemet'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.innstillingene'} @:{'words.generated.for'} sikkerhetskopieringssystemet.\",\"last_backup\":\"@:{'words.generated.siste'} @:{'words.generated.sikkerhetskopi'}\",\"restore_backup\":\"@:{'words.generated.aterstall'} @:{'words.generated.sakerhetskopia'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfigurasjon'} @:{'words.generated.av'} @:{'words.generated.backup'}-@:{'words.generated.systemet'}.\",\"title\":\"Sikkerhetskopieringskonfigurasjon\"},\"economic\":{\"admin_fee_desc\":\"@.capitalize:{'words.generated.administrasjons'}- @:{'words.generated.og'} miljøgebyrinnstillinger @:{'words.generated.for'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.integrasjonen'}.\",\"admin_fee_monthly\":\"@:{'words.generated.administrasjonsgebyr'} (@:{'words.generated.manedlig'})\",\"admin_fee_monthly_desc\":\"@:{'words.generated.angi'} @:{'words.generated.administrasjons'}- @:{'words.generated.og'} @:{'words.generated.miljøgebyret'} @:{'words.generated.som'} @:{'words.generated.belastes'} @:{'words.generated.manedlig'}.\",\"admin_fee_order\":\"@:{'words.generated.administrasjonsgebyr'} (@:{'words.generated.per'} @:{'words.generated.bestilling'})\",\"admin_fee_order_desc\":\"@:{'words.generated.angi'} @:{'words.generated.administrasjons'}- @:{'words.generated.og'} @:{'words.generated.miljøgebyret'} @:{'words.generated.som'} @:{'words.generated.belastes'} @:{'words.generated.manedlig'} @:{'words.generated.ved'} @:{'words.generated.fakturering'} @:{'words.generated.per'} @:{'words.generated.ordre'}.\",\"admin_fee_title\":\"@.capitalize:{'words.generated.administrasjons'}- @:{'words.generated.og'} @:{'words.generated.miljøgebyr'}\",\"agreement_grant_token\":\"@.capitalize:{'words.generated.avtale'} Grant @.capitalize:{'words.generated.token'}\",\"agreement_grant_token_desc\":\"@.capitalize:{'words.generated.fra'} @:{'words.replication.article.host_mention'} @:{'words.generated.e'}-@:{'words.generated.økonomiske'} avtalen @:{'words.generated.stipend'} @:{'words.generated.token'}\",\"app_secret_token\":\"@.capitalize:{'words.generated.app'} Secret @.capitalize:{'words.generated.token'}\",\"app_secret_token_desc\":\"@.capitalize:{'words.generated.fra'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.app'} @:{'words.generated.hemmelig'} @:{'words.generated.token'}\",\"default_distribution_department_id\":\"@.capitalize:{'words.generated.standard'} @:{'words.generated.fallback'}-@:{'words.generated.avdeling'}\",\"default_distribution_department_id_desc\":\"@.capitalize:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.fordeling'} @:{'words.generated.av'} vaskeavtaler @:{'words.generated.og'} @:{'words.generated.fastpris'} @:{'words.generated.nar'} @:{'words.generated.kunden'} @:{'words.generated.mangler'} @:{'words.generated.standardavdeling'}.\",\"env_fee_product_id\":\"@.capitalize:{'words.generated.miljøgebyr'} @:{'words.generated.produkt'} @.upper:{'words.generated.id'}\",\"env_fee_product_id_desc\":\"@:{'words.generated.angi'} @:{'words.generated.produkt'}-@.upper:{'words.generated.id'} @:{'words.generated.som'} @:{'words.generated.brukes'} @:{'words.generated.for'} @:{'words.generated.miljøgebyret'}.\",\"invoice_settings\":\"Fakturainnstillinger\",\"invoice_settings_desc\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-konfigurasjonen lar @:{'words.generated.deg'} konfigurere @:{'words.generated.integrasjonen'} @:{'words.generated.med'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-regnskapssystemet.\",\"invoice_template\":\"@.capitalize:{'words.generated.fakturamal'}\",\"invoice_template_desc\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.fakturamal'} @:{'words.generated.for'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.integrasjonen'}.\",\"show_payment_terms\":\"@:{'words.generated.vis'} @:{'words.generated.betalingsbetingelser'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfigurasjon'} @:{'words.generated.av'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.integrasjonen'}\",\"title\":\"@.upper:{'words.generated.e'}-konomisk @:{'words.generated.konfigurasjon'}\",\"transaction_draft_customer_number\":\"@.capitalize:{'words.generated.kundenummer'} @:{'words.generated.for'} @:{'words.generated.transaksjonsutkast'}\",\"transaction_draft_customer_number_desc\":\"@:{'words.generated.angi'} kundenummeret @:{'words.generated.som'} markerer @:{'words.generated.ordre'} @:{'words.generated.og'} fakturasamlinger @:{'words.generated.som'} @:{'words.generated.utkast'}. La @:{'words.generated.feltet'} stå @:{'words.generated.tomt'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.deaktivere'} @:{'words.generated.funksjonen'}.\",\"transaction_draft_desc\":\"@.capitalize:{'words.generated.bruk'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.egen'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}-@:{'words.generated.kunde'} @:{'words.generated.for'} @:{'words.generated.transaksjoner'} @:{'words.generated.som'} @:{'words.generated.skal'} forbli @:{'words.generated.utkast'} @:{'words.generated.og'} aldri @:{'words.generated.eksporteres'} @:{'words.generated.automatisk'}.\",\"transaction_draft_title\":\"@.capitalize:{'words.generated.transaksjonsutkast'}-@:{'words.generated.kunde'}\"},\"email\":{\"enable_mailersend\":\"@:{'words.generated.aktiver'} @:{'words.generated.mailersend'}\",\"enable_mailersend_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.mailersend'}-@:{'words.generated.integrasjonen'}\",\"enable_system\":\"@:{'words.generated.aktiver'} @:{'words.generated.e'}-postsystem\",\"enable_system_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.e'}-postsystemet\",\"from_address\":\"Avsändaradress\",\"from_email\":\"@.capitalize:{'words.generated.fra'} @:{'words.generated.e'}-@:{'words.generated.post'}\",\"from_email_desc\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postadressen'} @:{'words.generated.som'} @:{'words.generated.e'}-@:{'words.generated.poster'} sendes @:{'words.generated.fra'}\",\"from_name\":\"@.capitalize:{'words.generated.fra'} @.capitalize:{'words.generated.navn'}\",\"from_name_desc\":\"@:{'words.generated.navnet'} @:{'words.generated.som'} @:{'words.generated.vises'} @:{'words.generated.som'} avsender\",\"general_settings\":\"@.capitalize:{'words.generated.generelle'} @:{'words.generated.innstillinger'}\",\"general_settings_desc\":\"@:{'words.generated.general'} @:{'words.generated.email'} @:{'words.generated.settings'}\",\"mailersend_api_key\":\"@:{'words.generated.mailersend'} @:{'words.generated.api'}-@:{'words.generated.nøkkel'}\",\"mailersend_api_key_desc\":\"@:{'templates.generated.compat.configuration.mailersend.api_key_desc'}\",\"mailersend_integration\":\"@:{'words.generated.mailersend'}-@:{'words.generated.integrasjon'}\",\"mailersend_integration_desc\":\"@:{'words.generated.mailersend'}-integrasjonsinnstillingene\",\"reply_to_email\":\"@.capitalize:{'words.generated.svar'} @:{'words.generated.pa'} @:{'words.generated.e'}-@:{'words.generated.post'}\",\"reply_to_email_desc\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postadressen'} @:{'words.generated.som'} svarer @:{'words.generated.vil'} @:{'words.generated.bli'} @:{'words.generated.sendt'} @:{'words.generated.til'}\",\"reply_to_name\":\"@.capitalize:{'words.generated.svar'}-@:{'words.generated.til'}-@:{'words.generated.navn'}\",\"reply_to_name_desc\":\"@:{'words.generated.navnet'} @:{'words.generated.som'} @:{'words.generated.vises'} @:{'words.generated.for'} @:{'words.generated.svar'}\",\"sender_identity_desc\":\"@:{'words.generated.konfigurer'} @:{'words.generated.avsenderidentiteten'} @:{'words.generated.for'} @:{'words.generated.utgaende'} @:{'words.generated.e'}-@:{'words.generated.poster'}\",\"smtp_encryption\":\"@:{'words.generated.smtp'}-kryptering\",\"smtp_encryption_desc\":\"Krypteringsmetoden @:{'words.generated.for'} @:{'words.generated.smtp'}\",\"smtp_host\":\"@:{'words.generated.smtp'}-vert\",\"smtp_host_desc\":\"@:{'words.generated.smtp'}-serverens vertsnavn\",\"smtp_password\":\"@:{'words.generated.smtp'}-@:{'words.generated.passord'}\",\"smtp_password_desc\":\"@:{'words.generated.smtp'}-autentiseringspassordet\",\"smtp_port\":\"@:{'words.generated.smtp'}-@:{'words.generated.port'}\",\"smtp_port_desc\":\"@:{'words.generated.smtp'}-serverporten\",\"smtp_settings\":\"@:{'words.generated.smtp'}-@:{'words.generated.innstillinger'}\",\"smtp_settings_desc\":\"@.capitalize:{'words.generated.configure'} @:{'words.generated.smtp'} @:{'words.generated.server'} @:{'words.generated.settings'}\",\"smtp_user\":\"@:{'words.generated.smtp'}-@:{'words.generated.bruker'}\",\"smtp_username\":\"@:{'words.generated.smtp'}-@:{'words.generated.brukernavn'}\",\"smtp_username_desc\":\"@:{'words.generated.brukernavnet'} @:{'words.generated.for'} @:{'words.generated.smtp'}-@:{'words.generated.autentisering'}\",\"subtitle\":\"@:{'words.generated.konfigurer'} @:{'words.generated.e'}-postinnstillinger\",\"test_email_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppsto'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.sending'} @:{'words.generated.av'} @:{'words.generated.test'}-@:{'words.generated.e'}-@:{'words.generated.posten'}\",\"test_email_sent\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.sendt'}\",\"test_email_sent_success\":\"@.capitalize:{'words.generated.test'}-@:{'words.generated.e'}-@:{'words.generated.posten'} @:{'words.generated.ble'} @:{'words.generated.sendt'}\",\"title\":\"@.upper:{'words.generated.e'}-postkonfigurasjon\"},\"fxrates\":{\"api_key_desc\":\"@.capitalize:{'words.generated.valutakurser'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} hente @:{'words.generated.ut'} @:{'words.generated.valutakurser'}\",\"api_settings_desc\":\"@:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingsinnstillingene'}.\",\"conversion_rates\":\"@.capitalize:{'words.generated.valutakurser'}\",\"daily_limit\":\"@.capitalize:{'words.generated.daglig'} anmodningsgrænse\",\"daily_limit_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.daglige'} @:{'words.generated.forespørselsgrensen'} @:{'words.generated.for'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'}-@:{'words.generated.integrasjonen'}.\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'}-@:{'words.generated.integrasjon'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.innstillingene'} @:{'words.generated.for'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'}-@:{'words.generated.integrasjon'}.\",\"get_rates\":\"@:{'words.generated.hent'} @:{'words.generated.valutakurser'}\",\"getting_rates\":\"@.capitalize:{'words.generated.henter'} @:{'words.generated.valutakurser'} @:{'words.generated.fra'} @:{'words.generated.dkk'}\",\"getting_rates_desc\":\"@.capitalize:{'words.generated.vent'} venligst @:{'words.generated.mens'} @:{'words.generated.vi'} @:{'words.generated.henter'} valutakurserne @:{'words.generated.fra'} @:{'words.generated.dkk'} @:{'words.generated.til'} @:{'words.generated.andre'} valutaer.\",\"rates_fetched\":\"@.capitalize:{'words.generated.valutakurser'} @:{'words.generated.ble'} @:{'words.generated.hentet'}\",\"rates_fetched_desc\":\"Valutakursene @:{'words.generated.er'} @:{'words.generated.hentet'} frem.\",\"show_rates\":\"@:{'words.generated.vis'} @:{'words.generated.valutakurser'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfigurasjon'} @:{'words.generated.av'} @:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'}-@:{'words.generated.integrasjonen'}\",\"title\":\"@:{'words.generated.fx'} @.capitalize:{'words.generated.rates'} @:{'words.generated.api'} @:{'words.generated.konfigurasjon'}\",\"update_rates\":\"@:{'words.generated.oppdater'} @:{'words.generated.valutakurser'}\"},\"general\":{\"currency\":\"@:{'templates.generated.compat.user_admin.currency'}\",\"language\":\"@:{'templates.generated.compat.common.language'}\",\"timezone\":\"@:{'templates.generated.compat.settings.timezone'}\",\"title\":\"Generelt\",\"title_desc\":\"De generelle innstillingene @:{'words.generated.for'} FX Rates @:{'words.generated.api'}-integrasjon.\"},\"integrations\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.integrasjoner'}\"},\"limble\":{\"api_key\":\"@:{'words.generated.api'}-@:{'words.generated.nøkkel'}\",\"api_key_desc\":\"@:{'words.generated.limble'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.limble'}-@:{'words.generated.integrasjonen'}\",\"api_settings\":\"@:{'words.generated.api'}-tilkoblingsinnstillinger\",\"api_settings_desc\":\"@:{'words.generated.limble'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingsinnstillingene'}.\",\"client_id\":\"@:{'words.generated.klient'}-@.upper:{'words.generated.id'}\",\"client_id_desc\":\"@:{'words.generated.klient'}-@.upper:{'words.generated.id'}-@:{'words.replication.host_definite_suffix'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingen'}.\",\"client_secret\":\"Klienthemmelighet\",\"client_secret_desc\":\"Klienthemmeligheten @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingen'}.\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.tilkobling'} @:{'words.generated.til'} @:{'words.generated.limble'} @:{'words.generated.api'} @:{'words.generated.mislyktes'}!\",\"connection_success\":\"@.capitalize:{'words.generated.tilkoblingen'} @:{'words.generated.var'} @:{'words.generated.vellykket'}\",\"connection_success_desc\":\"@.capitalize:{'words.generated.tilkobling'} @:{'words.generated.til'} @:{'words.generated.limble'} @:{'words.generated.api'} @:{'words.generated.var'} @:{'words.generated.vellykket'}!\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.limble'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.limble'}-@:{'words.generated.integrasjonen'}.\",\"enable_webhooks\":\"@:{'words.generated.aktiver'} @:{'words.generated.webhooks'} @:{'words.generated.for'} @:{'words.generated.umiddelbar'} @:{'words.generated.synkronisering'}\",\"enable_webhooks_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.limble'} @:{'words.generated.webhooks'} @:{'words.generated.for'} @:{'words.generated.umiddelbar'} @:{'words.generated.synkronisering'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.innstillingene'} @:{'words.generated.for'} @:{'words.generated.limble'}-@:{'words.generated.integrasjonen'}.\",\"subtitle\":\"@.capitalize:{'words.generated.konfigurasjon'} @:{'words.generated.av'} @:{'words.generated.limble'}-@:{'words.generated.integrasjonen'}\",\"test_connection\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.tilkobling'}\",\"title\":\"Lemmekonfigurasjon\"},\"mailersend\":{\"api_key_desc\":\"@:{'words.generated.mailersend'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.mailersend'}-@:{'words.generated.integrasjonen'}\",\"title\":\"@:{'words.generated.mailersend'} @:{'words.generated.konfigurasjon'}\"},\"motor_api\":{\"api_key_desc\":\"@:{'words.generated.motor'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.motor'} @:{'words.generated.api'}-@:{'words.generated.integrasjonen'}\",\"title\":\"@:{'words.generated.motor'} @:{'words.generated.api'}-@:{'words.generated.konfigurasjon'}\"},\"motorapi\":{\"api_settings_desc\":\"@:{'words.generated.motorapi'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingsinnstillingene'}.\",\"daily_limit_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.daglige'} @:{'words.generated.forespørselsgrensen'} @:{'words.generated.for'} @:{'words.generated.motorapi'}-@:{'words.generated.integrasjonen'}.\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.motorapi'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.motorapi'}-@:{'words.generated.integrasjonen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.innstillingene'} @:{'words.generated.for'} @:{'words.generated.motorapi'}-@:{'words.generated.integrasjonen'}.\",\"get_license_plate\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.nummerskilt'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfigurasjon'} @:{'words.generated.av'} @:{'words.generated.motorapi'}-@:{'words.generated.integrasjonen'}\",\"title\":\"Engine @:{'words.generated.api'}-@:{'words.generated.konfigurasjon'}\"},\"products\":{\"add\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.produkt'}\",\"delete_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.dette'} produktet?\",\"edit\":\"@:{'templates.generated.compat.products.edit_product'}\"},\"slack\":{\"customer_registration_webhook_url\":\"Webhook-URL for kunderegistreringer\",\"customer_registration_webhook_url_desc\":\"Slack-webhook som mottar en melding når en ny kunderegistrering lykkes. La feltet stå tomt for å deaktivere.\",\"internal_department_goal_progress_save_error\":\"Kunne ikke lagre Slack-innstillinger for interne avdelinger.\",\"internal_department_goal_progress_saved\":\"Slack-innstillinger for interne avdelinger ble lagret\",\"internal_department_goal_progress_webhook_url\":\"Webhook-URL for målprogresjon for interne avdelinger\",\"internal_department_goal_progress_webhook_url_desc\":\"Slack-webhook som mottar den samlede målprogresjonsoversikten for interne avdelinger. La feltet stå tomt for å deaktivere den samlede varslingen.\",\"internal_departments\":\"Interne avdelinger\",\"internal_departments_desc\":\"Avdelinger valgt her tas med i den interne Slack-oversikten for målprogresjon.\",\"internal_departments_empty\":\"Ingen avdelinger funnet.\",\"notification_settings\":\"Varslingsinnstillinger\",\"notification_settings_desc\":\"Slack-webhooks for systemhendelser.\",\"save_internal_departments\":\"Lagre interne avdelinger\",\"send_test_webhook\":\"Send test-webhook\",\"subtitle\":\"Konfigurasjon av Slack-varsler\",\"test_customer_registration_webhook\":\"Test webhook for kunderegistreringer\",\"test_internal_department_goal_progress_webhook\":\"Test webhook for målprogresjon for interne avdelinger\",\"test_internal_department_goal_progress_webhook_not_configured\":\"Lagre en webhook-URL for målprogresjon for interne avdelinger før du sender en test.\",\"test_internal_department_goal_progress_webhook_sent_success\":\"Slack-testmeldingen for målprogresjon for interne avdelinger ble sendt.\",\"test_webhook_error\":\"Kunne ikke sende Slack-testwebhooken.\",\"test_webhook_not_configured\":\"Lagre en webhook-URL for kunderegistreringer før du sender en test.\",\"test_webhook_sent\":\"Slack-test sendt\",\"test_webhook_sent_success\":\"Slack-testmeldingen for kunderegistrering ble sendt.\",\"title\":\"Slack-konfigurasjon\",\"unavailable\":\"Slack-konfigurasjonen er ikke tilgjengelig i denne API-utgivelsen.\"},\"shelly\":{\"api_key_desc\":\"@:{'words.generated.shelly'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.shelly'}-@:{'words.generated.integrasjonen'}\",\"api_settings_desc\":\"@:{'words.generated.shelly'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingsinnstillingene'}.\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.tilkobling'} @:{'words.generated.til'} @:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.mislyktes'}!\",\"connection_success_desc\":\"@.capitalize:{'words.generated.tilkobling'} @:{'words.generated.til'} @:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.var'} @:{'words.generated.vellykket'}!\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.shelly'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.shelly'}-@:{'words.generated.integrasjonen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.innstillingene'} @:{'words.generated.for'} @:{'words.generated.shelly'}-@:{'words.generated.integrasjonen'}.\",\"secret_key\":\"@.capitalize:{'words.generated.hemmelig'} @:{'words.generated.nøgle'} (@:{'words.generated.api'} @:{'words.generated.nøgle'})\",\"secret_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} hemmelige @:{'words.generated.nøkkelen'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingen'}.\",\"server_url\":\"@.capitalize:{'words.generated.server'} @:{'words.generated.url'}\",\"server_url_desc\":\"@:{'words.generated.url'}'@:{'words.replication.host_definite_suffix'} @:{'words.generated.til'} @:{'words.generated.shelly'} @:{'words.generated.serveren'}.\",\"subtitle\":\"@.capitalize:{'words.generated.konfigurasjon'} @:{'words.generated.av'} @:{'words.generated.shelly'}-@:{'words.generated.integrasjonen'}\",\"title\":\"@:{'words.generated.shelly'} konfigurering\"},\"stripe\":{\"api_key_desc\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.stripe'} @:{'words.generated.api'}-@:{'words.generated.nøkkel'} @:{'words.generated.for'} betalingsbehandling\",\"api_settings_desc\":\"@:{'words.generated.stripe'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingsinnstillingene'}.\",\"customers\":\"@:{'words.generated.stripe'} @:{'words.generated.kunder'}\",\"economic_customer\":\"@.capitalize:{'words.generated.økonomisk'} @:{'words.generated.kundenummer'}\",\"economic_customer_desc\":\"@.capitalize:{'words.generated.kunden'} pleide @:{'words.generated.a'} @:{'words.generated.lagre'} @:{'words.generated.stripe'}-@:{'words.generated.betalinger'} @:{'words.generated.i'} økonomisystemet.\",\"economic_settings\":\"@.capitalize:{'words.generated.økonomiske'} integrasjonsinnstillinger\",\"economic_settings_desc\":\"@.capitalize:{'words.generated.innstillingene'} @:{'words.generated.for'} @:{'words.generated.integrasjonen'} @:{'words.generated.med'} @:{'words.generated.det'} @:{'words.generated.økonomiske'} @:{'words.generated.systemet'}.\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.stripe'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.stripe'}-@:{'words.generated.integrasjonen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.innstillingene'} @:{'words.generated.for'} @:{'words.generated.stripe'}-@:{'words.generated.integrasjonen'}.\",\"get_prices\":\"@:{'words.generated.hent'} @:{'words.generated.priser'}\",\"get_products\":\"@:{'words.generated.hent'} @:{'words.generated.produkter'}\",\"prices\":\"@:{'words.generated.stripe'} @:{'words.generated.priser'}\",\"products\":\"@:{'words.generated.stripe'} @:{'words.generated.produkter'}\",\"publishable_key\":\"Offentlig @:{'words.generated.nøgle'}\",\"publishable_key_desc\":\"@.capitalize:{'words.replication.article.host_mention'} offentlige @:{'words.generated.nøkkelen'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingen'}.\",\"subtitle\":\"@.capitalize:{'words.generated.konfigurasjon'} @:{'words.generated.av'} @:{'words.generated.stripe'}-@:{'words.generated.integrasjonen'}\",\"test_mode\":\"Testläge\",\"test_mode_desc\":\"@:{'words.generated.aktiver'} testmodus @:{'words.generated.for'} @:{'words.generated.stripe'}-@:{'words.generated.integrasjonen'}\",\"title\":\"@:{'words.generated.stripe'}-@:{'words.generated.konfigurasjon'}\",\"webhook_secret\":\"@.capitalize:{'words.generated.webhook'}-@:{'words.generated.hemmelighet'}\",\"webhook_secret_desc\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.stripe'} @:{'words.generated.webhook'}-@:{'words.generated.hemmelighet'} @:{'words.generated.for'} hendelseshåndtering\"},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} systemkonfigurasjon\",\"users\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.brukere'}\"},\"virkdata\":{\"api_key_desc\":\"@:{'words.generated.virk'} @.capitalize:{'words.generated.data'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.virk'} @.capitalize:{'words.generated.data'}-@:{'words.generated.integrasjonen'}\",\"api_settings_desc\":\"@:{'words.generated.virkdata'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingsinnstillingene'}.\",\"company_selected\":\"@.capitalize:{'words.generated.selskap'} @:{'words.generated.valgt'}\",\"company_selected_desc\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.valgt'} {name} ({cvr})\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.virkdata'}\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.virkdata'}-@:{'words.generated.integrasjonen'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.innstillingene'} @:{'words.generated.for'} @:{'words.generated.virkdata'}-@:{'words.generated.integrasjonen'}.\",\"monthly_limit\":\"@.capitalize:{'words.generated.manedlig'} anmodningsgrense\",\"monthly_limit_desc\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.manedlige'} @:{'words.generated.forespørselsgrensen'} @:{'words.generated.for'} @:{'words.generated.virkdata'}-@:{'words.generated.integrasjonen'}.\",\"no_results\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.resultater'}\",\"no_results_desc\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.selskaper'} @:{'words.generated.ble'} @:{'words.generated.funnet'} @:{'words.generated.som'} @:{'words.generated.samsvarer'} @:{'words.generated.med'} @:{'words.generated.søket'} @:{'words.generated.ditt'}.\",\"search_company\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.selskap'}\",\"search_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppsto'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.selskaper'}.\",\"select_company\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.et'} @:{'words.generated.selskap'}\",\"select_company_required\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.ma'} @:{'words.generated.velge'} @:{'words.generated.et'} @:{'words.generated.selskap'}\",\"subtitle\":\"@.capitalize:{'words.generated.konfigurasjon'} @:{'words.generated.av'} @:{'words.generated.virkdata'}-@:{'words.generated.integrasjonen'}\",\"title\":\"@:{'words.generated.virkdata'} @:{'words.generated.konfigurasjon'}\"},\"workfeed\":{\"api_key\":\"@:{'words.generated.api'} @:{'words.generated.key'}\",\"api_key_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.used'} @:{'words.generated.to'} authenticate @:{'words.generated.requests'} @:{'words.generated.to'} @:{'words.generated.workfeed'}.\",\"api_settings\":\"@:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}\",\"api_settings_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'} @:{'words.generated.used'} @:{'words.generated.for'} @:{'words.generated.workfeed'} @:{'words.generated.requests'}.\",\"api_url\":\"@:{'words.generated.api'} @:{'words.generated.url'}\",\"api_url_desc\":\"@.capitalize:{'words.generated.the'} base @:{'words.generated.url'} @:{'words.generated.for'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.api'}.\",\"close\":\"@:{'words.generated.close'}\",\"company_id\":\"@.capitalize:{'words.generated.company'} @.upper:{'words.generated.id'}\",\"company_id_desc\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.company'} identifier @:{'words.generated.used'} @:{'words.generated.for'} @:{'words.generated.api'} synchronization.\",\"diagnostics\":{\"description\":\"@.capitalize:{'words.generated.run'} @:{'words.generated.test'} @:{'words.generated.lookups'} against @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'} endpoints.\",\"get_employee\":\"@:{'words.generated.get'} @:{'words.generated.employee'} @:{'words.generated.by'} @.upper:{'words.generated.id'}\",\"get_shift\":\"@:{'words.generated.get'} @:{'words.generated.shift'} @:{'words.generated.by'} @.upper:{'words.generated.id'}\",\"list_departments\":\"@:{'words.generated.list'} @:{'words.generated.departments'}\",\"list_employees\":\"@:{'words.generated.list'} @:{'words.generated.employees'}\",\"list_shifts\":\"@:{'words.generated.list'} shifts\",\"no_params_required\":\"@.capitalize:{'words.generated.no'} query parameters @:{'words.generated.are'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.lookup'}.\",\"placeholder_employee_id\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. emp_01J5P2F2A0CQKBBX4P8M3Y7R5P\",\"placeholder_released\":\"@:{'words.generated.true'} @:{'words.generated.or'} @:{'words.generated.false'}\",\"placeholder_search\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. north facility\",\"placeholder_shift_id\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. shf_01J5P3X9D35R9C6BDZ1S0R4V6Q\",\"placeholder_start_from\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 2026-03-24T00:00:@:{'words.generated.word_00z'}\",\"placeholder_start_to\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. 2026-03-25T00:00:@:{'words.generated.word_00z'}\",\"placeholder_status\":\"@:{'words.generated.e'}.@:{'words.generated.g'}. published\",\"prompt_employee_id\":\"@.capitalize:{'words.generated.employee'} @.upper:{'words.generated.id'}\",\"prompt_employee_id_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.employee'} @.upper:{'words.generated.id'}\",\"prompt_released_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.released'} @:{'words.generated.filter'} (@:{'words.generated.true'}/@:{'words.generated.false'})\",\"prompt_search_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.search'} text\",\"prompt_shift_id\":\"@.capitalize:{'words.generated.shift'} @.upper:{'words.generated.id'}\",\"prompt_start_from\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.start'} @:{'words.generated.from'} (@:{'words.generated.iso'} 8601)\",\"prompt_start_to\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.start'} @:{'words.generated.to'} (@:{'words.generated.iso'} 8601)\",\"prompt_status_optional\":\"@.capitalize:{'words.generated.optional'} @:{'words.generated.shift'} @:{'words.generated.status'}\",\"result_departments\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"result_employee\":\"@.capitalize:{'words.generated.employee'} @:{'words.generated.result'}\",\"result_employees\":\"@.capitalize:{'words.generated.employee'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"result_shift\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.result'}\",\"result_shifts\":\"@.capitalize:{'words.generated.shift'} @:{'words.generated.lookup'} @:{'words.generated.result'}\",\"select_employee_all\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.employees'}\",\"select_released_all\":\"@.capitalize:{'words.generated.all'} release states\",\"select_released_false\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.released'} @:{'words.generated.only'}\",\"select_released_true\":\"@.capitalize:{'words.generated.released'} @:{'words.generated.only'}\",\"title\":\"Diagnostics\",\"validation_datetime_invalid\":\"@.capitalize:{'words.generated.invalid'} @:{'words.generated.date'}-@:{'words.generated.time'} @:{'words.generated.value'}.\",\"validation_released_boolean\":\"@.capitalize:{'words.generated.released'} @:{'words.generated.must'} @:{'words.generated.be'} either @:{'words.generated.true'} @:{'words.generated.or'} @:{'words.generated.false'}.\",\"validation_shift_range_required\":\"startFrom @:{'words.generated.and'} startTo @:{'words.generated.are'} @:{'words.generated.required'}.\"},\"enable\":\"@:{'words.generated.enable'} @:{'words.generated.workfeed'}\",\"enable_desc\":\"@:{'words.generated.enable'} @:{'words.generated.or'} disable @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}.\",\"general_settings_desc\":\"@:{'words.generated.general'} @:{'words.generated.settings'} @:{'words.generated.for'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}.\",\"lookup\":\"@.capitalize:{'words.generated.lookup'}\",\"subtitle\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.of'} @:{'words.generated.the'} @:{'words.generated.workfeed'} @:{'words.generated.integration'}\",\"title\":\"@:{'words.generated.workfeed'} @:{'words.generated.configuration'}\",\"validation_required\":\"@.capitalize:{'words.generated.this'} field @:{'words.generated.is'} @:{'words.generated.required'}.\"},\"xlvask\":{\"api_key_desc\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-@:{'words.generated.integrasjonen'}\",\"api_settings_desc\":\"@:{'words.generated.xlvask'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingsinnstillingene'}.\",\"automation_settings\":\"Automatisering\",\"automation_settings_desc\":\"Styr @:{'words.generated.automatisk'} @:{'words.generated.ordretilknytning'} @:{'words.generated.og'} @:{'words.generated.ordreoppretting'} @:{'words.generated.fra'} @.capitalize:{'words.generated.selvvask'}.\",\"connection_failed\":\"@.capitalize:{'words.generated.tilkobling'} @:{'words.generated.mislyktes'}\",\"connection_failed_desc\":\"@.capitalize:{'words.generated.tilkoblingen'} @:{'words.generated.til'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.mislyktes'}.\",\"connection_success_desc\":\"@.capitalize:{'words.generated.tilkoblingen'} @:{'words.generated.til'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.var'} @:{'words.generated.vellykket'}.\",\"enable\":\"@:{'words.generated.aktiver'} @:{'words.generated.xlvask'}\",\"enable_automatic_attachment\":\"@.capitalize:{'words.generated.automatisk'} @:{'words.generated.ordretilknytning'}\",\"enable_automatic_attachment_desc\":\"Knytt @:{'words.generated.sikre'} @.capitalize:{'words.generated.selvvask'}-@:{'words.generated.treff'} @:{'words.generated.automatisk'} @:{'words.generated.til'} eksisterende @:{'words.generated.ordrer'}.\",\"enable_automatic_creation\":\"@.capitalize:{'words.generated.automatisk'} @:{'words.generated.ordreoppretting'}\",\"enable_automatic_creation_desc\":\"@:{'words.generated.opprett'} @:{'words.generated.sikre'} @.capitalize:{'words.generated.selvvask'}-@:{'words.generated.ordrer'} @:{'words.generated.automatisk'} @:{'words.generated.nar'} @:{'words.generated.vasken'} @:{'words.generated.er'} @:{'words.generated.over'} 6 @:{'words.generated.timer'} @:{'words.generated.gammel'}.\",\"enable_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.xlvask'}-@:{'words.generated.integrasjonen'}.\",\"enable_openai_integration\":\"@:{'words.generated.openai'}-forslag\",\"enable_openai_integration_desc\":\"@.capitalize:{'words.generated.bruk'} @:{'words.generated.openai'} @:{'words.generated.til'} @:{'words.generated.a'} foreslå tilknytning @:{'words.generated.eller'} @:{'words.generated.oppretting'} @:{'words.generated.nar'} faste @:{'words.generated.regler'} @:{'words.generated.ikke'} @:{'words.generated.er'} @:{'words.generated.sikre'} nok.\",\"enable_sync\":\"@:{'words.generated.aktiver'} @:{'words.generated.automatisk'} @:{'words.generated.synkronisering'}\",\"enable_sync_desc\":\"@:{'words.generated.aktiver'} @:{'words.generated.eller'} @:{'words.generated.deaktiver'} @:{'words.generated.xlvask'} @:{'words.generated.automatisk'} @:{'words.generated.synkronisering'}.\",\"general_settings_desc\":\"@.capitalize:{'words.generated.de'} @:{'words.generated.generelle'} @:{'words.generated.innstillingene'} @:{'words.generated.for'} @:{'words.generated.xlvask'}-@:{'words.generated.integrasjonen'}.\",\"password_desc\":\"@.capitalize:{'words.generated.passordet'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingen'}.\",\"subtitle\":\"@.capitalize:{'words.generated.konfigurasjon'} @:{'words.generated.av'} @:{'words.generated.xlvask'}-@:{'words.generated.integrasjonen'}\",\"title\":\"@:{'words.generated.xlvask'}-@:{'words.generated.konfigurasjon'}\",\"username_desc\":\"@:{'words.generated.brukernavnet'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingen'}.\"},\"release_manager\":{\"integrations\":{\"title\":\"GitHub og Coolify\",\"subtitle\":\"Knyt GitHub-repositories og branches til kanalspecifikke Coolify-services.\",\"choose_repository\":\"Velg repository\",\"add_health_url\":\"legg til health-URL\",\"github_token_not_configured\":\"GitHub-token er ikke konfigurert; private repositories kan ikke vises.\",\"open_github_token_settings\":\"Åpne GitHub token-innstillinger\",\"channel\":\"Kanal\",\"app\":\"App\",\"repository\":\"Repository\",\"repository_message\":\"Eksempel: truckwash/backend-php\",\"repository_placeholder\":\"ejer/repo\",\"branch\":\"Branch\",\"branch_message\":\"Eksempel: release/canary\",\"branch_placeholder\":\"branch\",\"latest_prefix\":\"Seneste: {commit}\",\"coolify_instance\":\"Coolify-instans\",\"coolify_instance_message\":\"Lad feltet være tomt for manuelle deployment-poster.\",\"no_coolify_instance\":\"Ingen Coolify-instans\",\"coolify_instance_placeholder\":\"Coolify-instans-id\",\"coolify_service_uuid\":\"Coolify service-UUID\",\"coolify_service_uuid_message\":\"Vælg en eksisterende service eller indsæt en UUID.\",\"coolify_service_uuid_placeholder\":\"Coolify service-UUID\",\"health_url\":\"Health-URL\",\"health_url_message\":\"Eksempel: https://api-canary.example.test/ping\",\"health_url_placeholder\":\"Health-URL\",\"ssl_domain\":\"Load balancer-domene\",\"ssl_domain_message\":\"Må være et DNS-domene som routes til Coolify load balanceren. Eksempel: api-v2.truckwash.io\",\"ssl_domain_placeholder\":\"Load balancer-domene\",\"https_domain_for_coolify\":\"Domene kontrollert av load balanceren\",\"endpoint_mode\":\"Endpoint mode\",\"endpoint_mode_message\":\"Use automatic gateway routing or manually override the public host and port.\",\"endpoint_mode_auto\":\"Auto\",\"endpoint_mode_manual\":\"Manual\",\"manual_endpoint_host\":\"Manual host\",\"manual_endpoint_host_message\":\"Public host shown in release previews when manual mode is selected.\",\"manual_endpoint_host_placeholder\":\"api-v2.truckwash.io\",\"manual_endpoint_port\":\"Manual public port\",\"manual_endpoint_port_message\":\"Optional public port from 1 to 65535.\",\"app_port\":\"App port\",\"app_port_message\":\"Internal container port exposed to Coolify routing.\",\"auto_gateway_endpoint\":\"Automatic gateway endpoint\",\"pending_automatic_endpoint\":\"Automatic endpoint resolution pending\",\"auto_deploy\":\"Auto deploy\",\"auto_deploy_tooltip\":\"Opret automatisk deployments, når dette mål ændres.\",\"coolify_ssl\":\"Coolify SSL\",\"coolify_ssl_tooltip\":\"Bed Coolify om at oprette HTTPS for det konfigurerede domæne.\",\"deploy_now\":\"Deploy nå\",\"deploy_now_tooltip\":\"Start en deployment straks efter målet gemmes.\",\"create_missing_service\":\"Opprett manglende service\",\"create_missing_service_tooltip\":\"Tillad Release Manager at oprette en manglende Coolify-service.\",\"test_access_tooltip\":\"Bekræft, at den konfigurerede GitHub-token kan læse dette repository og branch.\"},\"title\":\"Release Manager\",\"subtitle\":\"Gradvise API- og Front-End-utgivelser\",\"channel_names\":{\"stable\":\"Stabil\",\"canary\":\"Canary\",\"internal\":\"Intern\"},\"channel_descriptions\":{\"stable\":\"Standard produksjonskanal.\",\"canary\":\"Tidlig produksjonsvalideringskanal.\",\"internal\":\"Intern kanal for ansatte og superbrukervalidering.\"},\"control_api\":{\"title\":\"Kontroll-API\",\"tooltip\":\"Release Manager-handlinger sendes til denne API-en. Bruk produksjons-API-en med mindre du tester en staging-backend.\",\"example\":\"Eksempel: https://api.truckwash.io:4433\",\"endpoint_label\":\"API-endepunkt\",\"endpoint_message\":\"Endre dette bare når Release Manager-endepunkter er tilgjengelige på mål-API-en.\",\"endpoint_aria\":\"Release Manager kontroll-API URL\",\"use_tooltip\":\"Last release-data fra denne API-en\",\"use\":\"Bruk\",\"reset_tooltip\":\"Gå tilbake til standard kontroll-API\",\"reset\":\"Tilbakestill\",\"known_endpoints\":\"Kjente kontroll-API-endepunkter\"},\"tabs\":{\"overview\":{\"label\":\"Oversikt\",\"description\":\"Kanalhelse, oppsettsfremdrift og siste release-status.\"},\"channels\":{\"label\":\"Kanaler\",\"description\":\"Opprett stabile, canary- og målrettede kanaler med rollout-grenser.\"},\"assignments\":{\"label\":\"Tildelinger\",\"description\":\"Knytt brukere, underbrukere eller kunder til en bestemt release-kanal.\"},\"deployments\":{\"label\":\"Utrullinger\",\"description\":\"Start utrullinger og promoter vellykkede bygg.\"},\"replay\":{\"label\":\"Replay\",\"description\":\"Aktiver målrettet innsamling og søk i release-tidslinjehendelser.\"},\"integrations\":{\"label\":\"Integrasjoner\",\"description\":\"Koble GitHub-repositories, branches og Coolify-tjenester.\"},\"settings\":{\"label\":\"Innstillinger\",\"description\":\"Konfigurer Release Managers GitHub-tilgang og webhook-innstillinger.\"}},\"loading\":{\"summary\":\"Laster Release Manager-data...\",\"refreshing_summary\":\"Oppdaterer Release Manager-data...\",\"summary_detail\":\"Release-status, kanaler, deployments og servicehelse lastes.\",\"channels\":\"Laster release-kanaler...\",\"channels_detail\":\"Kanalvisninger og release-avhengigheter lastes.\",\"assignments\":\"Laster release-tildelinger...\",\"deployments\":\"Laster release-deployments...\",\"operations\":\"Laster release-operasjoner...\",\"data_services\":\"Laster release-datatjenester...\",\"integrations\":\"Laster release-integrasjoner...\",\"settings\":\"Laster Release Manager-innstillinger...\",\"github_repositories\":\"Laster GitHub-repositories...\",\"timeline_sessions\":\"Laster release-tidslinje-sesjoner...\",\"timeline_events\":\"Laster release-tidslinjehendelser...\",\"refreshing_timeline\":\"Oppdaterer release-tidslinje...\"},\"setup\":{\"channels\":\"Kanaler\",\"targets\":\"GitHub- og Coolify-mål\",\"assignments\":\"Pilottildelinger\",\"deployments\":\"Første utrulling\",\"replay\":\"Replay-innsamling\"},\"stats\":{\"channels\":\"Kanaler\",\"targets\":\"Mål\",\"deployments\":\"Utrullinger\",\"timeline_events\":\"Tidslinjehendelser\"},\"overview\":{\"title\":\"Oversikt\",\"subtitle\":\"Aktuell kanalhelse, release-aktivitet og modulstatus.\",\"guided_setup\":\"Veiledet oppsett\",\"next_step\":\"Neste: {step}\",\"ready\":\"Release Manager er klar for daglig drift.\",\"add_suggested_channel\":\"Legg til foreslått kanal\",\"module_health_empty\":\"Modul-health snapshots vises når probes er registrert.\"},\"settings\":{\"title\":\"Release Manager-innstillinger\",\"subtitle\":\"Konfigurer GitHub-tokenet som brukes for private repositories og branch-oppslag.\",\"github_token\":\"GitHub-token\",\"github_api_url\":\"GitHub API-URL\",\"webhook_secret\":\"Webhook-hemmelighet\",\"github_webhook_secret\":\"GitHub webhook-hemmelighet\",\"configured\":\"Konfigurert\",\"not_configured\":\"Ikke konfigurert\",\"loaded_from\":\"Lastet fra {variable}\",\"set_below\":\"Angi {variable} nedenfor\",\"private_repositories_prefix\":\"Private repositories leses med serverens miljøvariabel\",\"private_repositories_or\":\"eller modulens konfigurasjonsvariabel\",\"github_token_message\":\"Eksempel: github_pat_... med tilgang til de private repositories Release Manager ruller ut.\",\"github_token_placeholder\":\"La stå tomt for å beholde eksisterende token\",\"github_api_url_message\":\"Konfigurert i ReleaseManager.github_api_url. Bruk https://api.github.com med mindre GitHub Enterprise brukes.\",\"webhook_secret_message\":\"Valgfritt; la stå tomt for å beholde eksisterende hemmelighet.\",\"webhook_secret_placeholder\":\"Webhook HMAC-hemmelighet\",\"save\":\"Lagre innstillinger\",\"back_to_integrations\":\"Tilbake til integrasjoner\",\"guide\":{\"steps\":{\"github_token\":\"GitHub-token\",\"github_api_url\":\"GitHub API-URL\",\"github_webhook_secret\":\"GitHub webhook secret\",\"review\":\"Gennemgang\"},\"github_token_title\":\"Legg til GitHub-token\",\"github_token_description\":\"Release Manager bruger denne token til at vise private repositories, branches og commits, før et deployment-mål gemmes eller testes.\",\"configure_this_in\":\"Konfigurer dette i\",\"server_environment_variable\":\"Serverens miljøvariabel\",\"takes_precedence\":\"har forrang når den er satt.\",\"recommended_access\":\"Anbefalt tilgang\",\"recommended_access_description\":\"Fine-grained GitHub-token med Contents: read-adgang til hvert release-repository.\",\"github_api_url_title\":\"Legg til GitHub API-URL\",\"github_api_url_description\":\"Brug GitHub Cloud som standard, eller peg på REST API-base-URLen for en GitHub Enterprise Server-installation.\",\"github_api_url_invalid\":\"Skriv inn en full HTTP- eller HTTPS-URL.\",\"github_cloud\":\"GitHub Cloud\",\"enterprise_example\":\"Enterprise-eksempel\",\"github_webhook_secret_title\":\"Legg til GitHub webhook secret\",\"github_webhook_secret_description\":\"Brug samme secret i GitHub repository-webhooks, så Release Manager kan verificere deployment-events, før de håndteres.\",\"github_webhook_url\":\"GitHub webhook-URL:\",\"store_shared_secret_in\":\"Lagre den delte secreten i\",\"review_title\":\"Gå gjennom GitHub-oppsett\",\"review_description\":\"Gem værdierne, og brug derefter Integrationer til at vælge et privat repository, branch og specifik commit eller seneste commit før adgang testes.\",\"ready\":\"Klar\",\"needs_value\":\"Mangler værdi\"}},\"channel_unavailable\":{\"kicker\":\"Release Manager\",\"title\":\"Release-kanalen er ikke klar\",\"summary_prefix\":\"Kontoen din er tildelt\",\"summary_suffix\":\", men kanalen mangler påkrevd release-konfigurasjon.\",\"release_bundle\":\"Release-bundle\",\"frontend_version\":\"Frontend-versjon\",\"api_version\":\"API-versjon\",\"frontend_base_url\":\"Frontend-URL\",\"api_base_url\":\"API-URL\",\"frontend_entry\":\"Frontend-entry\",\"release_runtime\":\"Release-runtime\",\"checking_again\":\"Sjekker igjen om {seconds}s\",\"refresh_error\":\"Release-status kunne ikke oppdateres. Neste automatiske sjekk prøver igjen.\",\"ignore\":\"Ignorer de neste 5 minuttene\",\"check_again\":\"Sjekk igjen\",\"logout\":\"Logg ut\",\"base_image\":\"Basis-image\"},\"channel_switched\":{\"kicker\":\"Release Manager\",\"title\":\"Du er nå på {channel}\",\"summary_prefix\":\"Kontoen din er tildelt release-kanalen\",\"summary_suffix\":\"Denne enheten husker at du har sett denne meldingen.\",\"bundle\":\"Bundle\",\"frontend\":\"Frontend\",\"api\":\"API\",\"frontend_version\":\"Frontend-versjon\",\"api_version\":\"API-versjon\",\"assigned_channel\":\"Tildelt kanal\",\"current_app_image\":\"Nåværende app-image\",\"current_api\":\"Nåværende API\",\"base_image\":\"Basis-image\",\"continue\":\"Fortsett\"},\"channel_selector\":{\"title\":\"Release-kanal\",\"subtitle\":\"Velg hvilken tildelt release-kanal denne enheten skal bruke.\",\"sidebar_title\":\"Release\",\"default\":\"Standard\",\"ready\":\"Klar\",\"unavailable\":\"Ikke klar\",\"release_bundle\":\"Release-bundle\",\"frontend_version\":\"Frontend-versjon\",\"api_version\":\"API-versjon\",\"frontend_base_url\":\"Frontend-URL\",\"api_base_url\":\"API-URL\",\"frontend_entry\":\"Frontend-entry\",\"release_runtime\":\"Release-runtime\",\"bundle\":\"Bundle\",\"frontend\":\"Frontend\",\"api\":\"API\",\"use_local_frontend\":\"Bruk lokal frontend\",\"switch_error\":\"Release channel could not be switched. The previous channel is still active.\"},\"common\":{\"yes\":\"ja\",\"no\":\"nei\",\"off\":\"av\"},\"actions\":{\"edit\":\"Rediger\",\"rollback\":\"Rull tilbake\",\"update\":\"Opdater\",\"create\":\"Opprett\",\"clear\":\"Tøm\",\"assign\":\"Tildel\",\"remove\":\"Fjern\",\"test_access\":\"Test tilgang\",\"deploy\":\"Deploy\",\"redeploy\":\"Redeploy\",\"promote\":\"Promoter\",\"enable\":\"Aktiver\",\"search\":\"Søk\",\"save_target\":\"Lagre mål\",\"delete\":\"Slett\",\"back\":\"Tilbake\",\"next\":\"Neste\",\"publish_release\":\"Publish release\"},\"tables\":{\"channel\":\"Kanal\",\"rollout\":\"Udrulning\",\"frontend\":\"Frontend\",\"api\":\"API\",\"replay\":\"Replay\",\"actions\":\"Handlinger\",\"module\":\"Modul\",\"status\":\"Status\",\"checked\":\"Kontrollert\",\"subject\":\"Emne\",\"reason\":\"Årsag\",\"expires\":\"Utløper\",\"deployment\":\"Deployment\",\"source\":\"Kilde\",\"started\":\"Startet\",\"target\":\"Mål\",\"coolify\":\"Coolify\",\"auto\":\"Auto\"},\"values\":{\"app\":{\"frontend\":\"frontend\",\"api\":\"api\"},\"capture_level\":{\"metadata\":\"metadata\",\"full_redacted\":\"fullt redigert\"},\"subject_type\":{\"user\":\"bruker\",\"subuser\":\"medarbeider\",\"customer\":\"kunde\",\"channel\":\"kanal\"},\"severity\":{\"error\":\"feil\",\"warning\":\"advarsel\",\"info\":\"info\"},\"status\":{\"ok\":\"ok\",\"active\":\"aktiv\",\"deployed\":\"deployet\",\"stable\":\"stabil\",\"enabled\":\"aktivert\",\"queued\":\"i kø\",\"deploying\":\"deploying\",\"metadata\":\"metadata\",\"not_configured\":\"ikke konfigurert\",\"warning\":\"advarsel\",\"failed\":\"feilet\",\"down\":\"nede\",\"error\":\"feil\",\"unknown\":\"ukjent\"}},\"autocomplete\":{\"suggested_value\":\"Foreslået værdi\",\"suggestion\":\"Forslag\",\"use_typed_value\":\"Brug indtastet værdi\",\"custom\":\"Tilpasset\",\"api_url\":\"API-URL\",\"frontend_url\":\"Frontend-URL\",\"known_release_url\":\"Kendt release-URL\",\"deploy_here_with_coolify\":\"Deploy {app} her med Coolify\",\"prepare_coolify_target\":\"Forbered et Coolify-mål med HTTPS/SSL aktiveret\",\"coolify_ssl\":\"Coolify SSL\",\"github_repository\":\"GitHub-repository\",\"owner_repository\":\"ejer/repository\",\"git_branch\":\"Git-branch\",\"deployment_branch\":\"Deployment-branch\",\"github_commit\":\"GitHub-commit\",\"git_commit\":\"Git-commit\",\"use_specific_commit_sha\":\"Brug specifik commit-SHA\",\"custom_commit\":\"Tilpasset commit\",\"health_url\":\"Health-URL\",\"release_health_check\":\"Release health check\",\"coolify_service\":\"Coolify-service\",\"service_uuid\":\"Service-UUID\",\"known_coolify_service_uuid\":\"Kendt Coolify service-UUID\",\"control_api\":\"Kontrol-API\",\"release_manager_api_endpoint\":\"Release Manager API-endpoint\",\"module\":\"Modul\",\"timeline_module_key\":\"Timeline-modulnøgle\"},\"errors\":{\"github_repositories\":\"Kunne ikke indlæse GitHub-repositories.\",\"github_branches\":\"Kunne ikke indlæse GitHub-branches.\",\"repository_branch_required\":\"Repository og branch er påkrævet før GitHub-adgang kan testes.\",\"github_access_failed\":\"Test af GitHub repository-adgang fejlede.\"},\"channels\":{\"title\":\"Kanaler\",\"subtitle\":\"Opprett og juster gradvise release-kanaler.\",\"rollout_percent\":\"{percent}% udrulning\",\"already_configured\":\"Allerede konfigurert\",\"slug\":\"Slug\",\"slug_message\":\"Eksempel: canary\",\"slug_placeholder\":\"slug\",\"name\":\"Navn\",\"name_message\":\"Vises til operatører når de gjennomgår en kanal.\",\"name_placeholder\":\"Navn\",\"rollout\":\"Udrulning\",\"rollout_message\":\"0-100 prosent av ikke-tildelt trafikk.\",\"frontend_url\":\"Frontend-URL\",\"frontend_url_message\":\"Eksempel: https://canary.example.test\",\"frontend_url_placeholder\":\"Frontend-URL\",\"no_matching_release_url\":\"Ingen matchende release-URL.\",\"api_url\":\"API-URL\",\"api_url_message\":\"Eksempel: https://api-canary.example.test\",\"api_url_placeholder\":\"API-URL\",\"no_matching_api_url\":\"Ingen matchende API-URL.\",\"replay_capture\":\"Replay capture\",\"replay_capture_message\":\"Metadata er sikrere til brede kanaler.\",\"retention_days\":\"Oppbevaringsdager\",\"retention_days_message\":\"1-365 dage.\",\"enabled\":\"Aktivert\",\"default_channel\":\"Standardkanal\",\"replay_enabled\":\"Replay aktivert\",\"frontend_chip\":\"Frontend: {url}\",\"api_chip\":\"API: {url}\"},\"assignments\":{\"title\":\"Tildelinger\",\"subtitle\":\"Fest brukere, medarbeidere eller kunder til release-kanaler.\",\"subject\":\"Emne\",\"subject_message\":\"Søk etter brukere, medarbeidere eller kunder, eller skriv et manuelt emne som user:42.\",\"subject_placeholder\":\"Søk eller skriv emne\",\"subject_empty\":\"Ingen emner funnet\",\"group_users\":\"Brukere\",\"group_subusers\":\"Medarbeidere\",\"group_customers\":\"Kunder\",\"group_manual\":\"Manuell\",\"manual_user\":\"Bruker #{id}\",\"manual_subuser\":\"Medarbeider #{id}\",\"manual_customer\":\"Kunde #{id}\",\"manual_description\":\"Bruk inntastet verdi {subject}\",\"subject_type\":\"Emnetype\",\"subject_type_message\":\"Vælg identitetstypen, der skal fastgøres.\",\"customer\":\"Kunde\",\"customer_message\":\"Søk på kundenummer eller navn, og velg deretter nøyaktig kunde.\",\"customer_placeholder\":\"Søk kunde\",\"subject_id\":\"Emne-ID\",\"subject_id_message\":\"Eksempel: bruker-id 42\",\"subject_id_placeholder\":\"Emne-id\",\"channel\":\"Kanal\",\"channel_message\":\"Festede emner hopper over prosentutrullingen.\",\"reason\":\"Årsag\",\"reason_message\":\"Eksempel: canary-validering for kundesupport.\",\"reason_placeholder\":\"Årsag\",\"expires\":\"Utløper\",\"expires_message\":\"Lad feltet være tomt for ingen automatisk udløb.\"},\"deployments\":{\"title\":\"Deployments\",\"subtitle\":\"Start, promoter og inspiser release-deployments.\",\"manual_deployment_record\":\"Manuel deployment-post\",\"target\":\"Mål\",\"target_message\":\"Vælg et gemt mål, eller behold manuelle felter redigerbare.\",\"select_target_or_manual\":\"Velg mål eller manuelt\",\"channel\":\"Kanal\",\"app\":\"App\",\"repository\":\"Repository\",\"repository_message\":\"Eksempel: truckwash/front-end-vue\",\"repository_placeholder\":\"ejer/repo\",\"branch\":\"Branch\",\"branch_message\":\"Eksempel: master\",\"branch_placeholder\":\"branch\",\"commit_selection\":\"Commit-valg\",\"commit_selection_message\":\"Seneste slås op som branchens head med den konfigurerede GitHub-token.\",\"latest_from_branch\":\"Siste fra branch\",\"specific_commit\":\"Spesifikk commit\",\"specific_commit_message\":\"Eksempel: feedface1234\",\"commit_sha_placeholder\":\"commit sha\",\"version_label\":\"Versjonsetikett\",\"version_label_message\":\"Eksempel: api-2026.05.19\",\"version_label_placeholder\":\"versionslabel\",\"commit_prefix\":\"Commit: {commit}\",\"test_access_tooltip\":\"Bekræft token-adgang til det valgte repository, branch og commit.\"},\"replay\":{\"title\":\"Replay\",\"subtitle\":\"Aktiver målrettet capture og gennemgå fejltimelines trin for trin.\",\"capture_channel\":\"Capture {channel}\",\"target_type\":\"Måltype\",\"target\":\"Mål\",\"target_message\":\"Eksempel: bruker-id 42 eller kanal-slug canary.\",\"target_placeholder\":\"Mål-id eller kanal-slug\",\"channel_scope\":\"Kanalavgrensning\",\"channel_scope_message\":\"Valgfrit; begrænser replay capture til en kanal.\",\"no_channel_scope\":\"Ingen kanalavgrensning\",\"capture_level\":\"Capture-niveau\",\"expires\":\"Utløper\",\"expires_message\":\"Lad feltet være tomt for manuel deaktivering.\",\"trace_id\":\"Trace-ID\",\"trace_id_message\":\"Eksempel: trace-canary-1\",\"trace_id_placeholder\":\"Trace-id\",\"channel\":\"Kanal\",\"channel_placeholder\":\"Kanal\",\"principal_id\":\"Principal-ID\",\"principal_id_placeholder\":\"Principal-id\",\"module\":\"Modul\",\"module_placeholder\":\"Modul\",\"severity\":\"Alvorlighet\",\"any_severity\":\"Alle alvorligheder\",\"no_timeline_events\":\"Ingen timeline-events matcher de aktuelle filtre.\"},\"status\":{\"confirm_issue_action\":\"Run this Release Manager action? It can change deployment state and will be audited.\",\"choose_bundle_prompt\":\"Enter the bundle id to set for this channel.\",\"impact\":\"Impact\",\"cause\":\"Cause\",\"automated_fix\":\"Automated fix\",\"manual_fallback\":\"Manual fallback\",\"related_deployment\":\"Related deployment\",\"recent_result\":\"Recent result\",\"no_automated_action\":\"No automated action available.\",\"deployment\":\"Deployment\",\"target\":\"Target\",\"coolify_target\":\"Coolify target\",\"service_set\":\"Service set\"}}},\"connectivity\":{\"description\":\"@.capitalize:{'words.generated.dette'} løser @:{'words.generated.seg'} vanligvis @:{'words.generated.av'} @:{'words.generated.seg'} @:{'words.generated.selv'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.vent'} @:{'words.generated.mens'} @:{'words.generated.vi'} sjekker @:{'words.generated.serveren'}.\",\"footer\":\"@.capitalize:{'words.generated.hvis'} problemet vedvarer, @:{'words.generated.kontakt'} @:{'words.generated.support'}.\",\"no_internet\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.internettforbindelse'}.\",\"retry_in\":\"@:{'words.generated.prøver'} @:{'words.generated.pa'} @:{'words.generated.nytt'} @:{'words.generated.om'} {seconds} @:{'words.generated.sekunder'}...\",\"retry_now\":\"@:{'words.generated.prøver'} @:{'words.generated.a'} gjenopprette @:{'words.generated.forbindelsen'}...\",\"retry\":\"@.capitalize:{'words.generated.prøv'} @:{'words.generated.pa'} @:{'words.generated.nytt'}\",\"server_down\":\"@.capitalize:{'words.generated.ingen'} forbindelse @:{'words.generated.til'} @:{'words.generated.serveren'}.\",\"subtitle\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.ser'} @:{'words.generated.ut'} @:{'words.generated.til'} @:{'words.generated.at'} @:{'words.generated.det'} @:{'words.generated.er'} @:{'words.generated.et'} problem @:{'words.generated.med'} @:{'words.generated.din'} @:{'words.generated.internettforbindelse'} @:{'words.generated.eller'} @:{'words.generated.var_2'} @:{'words.generated.server'}.\",\"title\":\"Forbindelsesproblem\"},\"customer_creation\":{\"customer\":{\"benefit_credit\":\"@.capitalize:{'words.generated.kredittkonto'}\",\"benefit_credit_desc\":\"Skaff @:{'words.generated.deg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kredittkonto'} @:{'words.generated.med'} @:{'words.generated.manedlig'} @:{'words.generated.fakturering'}\",\"benefit_portal\":\"@:{'words.generated.kundeportal'}\",\"benefit_portal_desc\":\"@.capitalize:{'words.generated.bruk'} kundeportalen @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.legge'} @:{'words.generated.til'} @:{'words.generated.kjøretøy'}, bokvaske, @:{'words.generated.laste'} @:{'words.generated.ned'} @:{'words.generated.fakturaer'}, @:{'words.generated.vaskesertifikater'} @:{'words.generated.og'} @:{'words.generated.informasjon'} @:{'words.generated.for'} @:{'words.generated.historiske'} @:{'words.generated.vask'}.\",\"benefit_wash_desc\":\"@.capitalize:{'words.generated.bruk'} @:{'words.generated.vart'} @:{'words.generated.nasjonale'} @:{'words.generated.nettverk'} @:{'words.generated.av'} @:{'words.generated.vaskehaller'} @:{'words.generated.til'} @:{'words.generated.konkurransedyktige'} @:{'words.generated.priser'}\",\"ean_label\":\"@:{'templates.generated.compat.admin.pos.ean'}\",\"email_label\":\"Firmaets @:{'words.generated.e'}-@:{'words.generated.post'}\",\"intro\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.kunde'} @:{'words.generated.hos'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.far'} @:{'words.generated.du'} @:{'words.generated.tilgang'} @:{'words.generated.til'}:\",\"phone_label\":\"@:{'templates.generated.compat.admin.pos.company_phone'}\",\"success_message\":\"@.capitalize:{'words.generated.kontoen'} @:{'words.generated.din'} @:{'words.generated.er'} @:{'words.generated.opprettet'}. @.capitalize:{'words.generated.vi'} @:{'words.generated.har'} @:{'words.generated.sendt'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.med'} @:{'words.generated.mer'} @:{'words.generated.informasjon'}.\",\"title\":\"@.capitalize:{'words.generated.registrer'} @:{'words.generated.deg'} @:{'words.generated.som'} @:{'words.generated.kunde'}\"},\"driver\":{\"benefit_24h\":\"24 timers @:{'words.generated.vask'}\",\"benefit_24h_desc\":\"@:{'words.generated.vask'} @:{'words.generated.nar'} @:{'words.generated.det'} @:{'words.generated.passer'} @:{'words.generated.deg'} @:{'words.generated.utenom'} @:{'words.generated.bemannet'} @:{'words.generated.apningstid'}\",\"benefit_booking_desc\":\"@:{'words.generated.bokvask'} @:{'words.generated.over'} @:{'words.generated.hele'} @:{'words.generated.landet'}\",\"benefit_find\":\"@:{'words.generated.finn'} @:{'words.generated.vaskehaller'}\",\"benefit_find_desc\":\"naviger @:{'words.generated.raskt'} @:{'words.generated.og'} enkelt @:{'words.generated.til'} @:{'words.generated.nærmeste'} @:{'words.generated.vaskehall'} nær @:{'words.generated.deg'}\",\"benefit_loyalty\":\"@.capitalize:{'words.generated.lojalitetspoeng'}\",\"benefit_loyalty_desc\":\"@:{'words.generated.tjen'} @:{'words.generated.og'} @:{'words.generated.bruk'} @:{'words.generated.lojalitetspoeng'} @:{'words.generated.hver'} @:{'words.generated.gang'} @:{'words.generated.du'} @:{'words.generated.vasker'} @:{'words.generated.pa'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} (@:{'words.generated.tilgjengelig'} @:{'words.generated.fra'} @:{'words.generated.mai'} 2026)\",\"intro\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.sjafør'} @:{'words.generated.hos'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.far'} @:{'words.generated.du'} @:{'words.generated.tilgang'} @:{'words.generated.til'}:\",\"phone_label\":\"@.capitalize:{'words.generated.driver'} @:{'words.generated.telefon'}\",\"submit\":\"@:{'words.generated.opprett'} @:{'words.generated.konto'}\",\"title\":\"@.capitalize:{'words.generated.registrer'} @:{'words.generated.deg'} @:{'words.generated.som'} @:{'words.generated.sjafør'}\"},\"pre_title\":\"Kundeoppretting\",\"subtitle\":\"@.capitalize:{'words.generated.fa'} @:{'words.replication.host_definite_suffix'} rekke fordeler @:{'words.generated.ved'} @:{'words.generated.a'} @:{'words.generated.være'} @:{'words.generated.registrert'} @:{'words.generated.som'} @:{'words.generated.kunde'} @:{'words.generated.eller'} @:{'words.generated.sjafør'} @:{'words.generated.hos'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\",\"title\":\"Skap @:{'words.generated.deg'} @:{'words.generated.raskt'} @:{'words.generated.som'} @:{'words.generated.ny'} @:{'words.generated.kunde'} @:{'words.generated.eller'} @:{'words.generated.ny'} @:{'words.generated.sjafør'} @:{'words.generated.hos'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\"},\"customer_rules\":{\"attributes\":{\"exemptFromAdministrationFee\":{\"description\":\"Do @:{'words.generated.not'} @:{'words.generated.apply'} @:{'words.generated.administration'} fees @:{'words.generated.to'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@.capitalize:{'words.generated.exempt'} @:{'words.generated.from'} @:{'words.generated.administration'} @:{'words.generated.fee'}\"},\"invoiceAllOrdersIndividually\":{\"description\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.separate'} @:{'words.generated.invoices'} instead @:{'words.generated.of'} grouping @:{'words.generated.this'} @:{'words.generated.customer'}'@:{'words.generated.s'} @:{'words.generated.orders'}.\",\"label\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.all'} @:{'words.generated.orders'} individually\"},\"invoiceWithStripe\":{\"description\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.stripe'} invoicing @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.with'} @:{'words.generated.stripe'}\"},\"onlyTankCleaning\":{\"description\":\"@.capitalize:{'words.generated.allow'} @:{'words.generated.only'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} @:{'words.generated.services'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\"},\"requiresReferenceNumber\":{\"description\":\"@:{'words.generated.require'} @:{'words.generated.a_2'} @:{'words.generated.reference'} @:{'words.generated.number'} @:{'words.generated.on'} @:{'words.generated.bookings'} @:{'words.generated.and'} @:{'words.generated.orders'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.require'} @:{'words.generated.reference'} @:{'words.generated.number'}\"},\"requiresRegistrationNumbersInvoice\":{\"description\":\"@:{'words.generated.require'} @:{'words.generated.registration'} @:{'words.generated.numbers'} @:{'words.generated.to'} appear @:{'words.generated.on'} @:{'words.generated.invoices'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.require'} @:{'words.generated.registration'} @:{'words.generated.numbers'} @:{'words.generated.on'} @:{'words.generated.invoice'}\"},\"restrictAdditionalServices\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.additional'} @:{'words.generated.services'} @:{'words.generated.and'} @:{'words.generated.add'}-@:{'words.generated.ons'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.additional'} @:{'words.generated.services'}\"},\"restrictInteriorCleaning\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.interior'} @:{'words.generated.cleaning'} @:{'words.generated.services'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.interior'} @:{'words.generated.cleaning'}\"},\"restrictSpotFree\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.spot'}-@:{'words.generated.free'} @:{'words.generated.rinse'} @:{'words.generated.services'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.spot'}-@:{'words.generated.free'} @:{'words.generated.rinse'}\"},\"restrictTankCleaning\":{\"description\":\"@:{'words.generated.block'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} @:{'words.generated.services'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@:{'words.generated.restrict'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}\"},\"showPricesOnBookingPage\":{\"description\":\"Display @:{'words.generated.customer'} @:{'words.generated.prices'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.booking'} @:{'words.generated.page'}.\",\"label\":\"Show @:{'words.generated.prices'} @:{'words.generated.on'} @:{'words.generated.booking'} @:{'words.generated.page'}\"},\"usePONumbers\":{\"description\":\"@:{'words.generated.enable'} @:{'words.generated.po'} @:{'words.generated.number'} @:{'words.generated.handling'} @:{'words.generated.for'} @:{'words.generated.this'} @:{'words.generated.customer'}.\",\"label\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.po'} @:{'words.generated.numbers'}\"}},\"manager\":{\"active_count\":\"{count} aktive\",\"errors\":{\"load\":\"Kunderegler kunne ikke lastes.\",\"update\":\"Kunderegelen kunne ikke oppdateres.\"},\"no_target\":\"Bruker-ID eller kundenummer kreves før kunderegler kan administreres.\",\"toggle_unavailable\":\"Du har ikke tillatelse til å endre denne kunderegelen.\",\"unavailable\":\"Du har ikke tillatelse til å se kunderegler.\",\"unknown_active\":\"Ukjente aktive regler\"},\"tooltip\":{\"available_if_enabled\":\"Forblir tilgjengelige hvis aktivert\",\"available_while_enabled\":\"Tilgjengelige mens aktiv\",\"blocked_if_enabled\":\"Blokkeres hvis aktivert\",\"blocked_now\":\"Blokkert mens aktiv\",\"changes\":\"Endringer\",\"groups\":{\"primary_products\":\"Primære produkter\",\"related_addons\":\"Tilknyttede add-ons\",\"standalone_additional_services\":\"Selvstendige tilleggstjenester\"},\"load_failed\":\"Berørte produkter kunne ikke lastes.\",\"loading_products\":\"Laster berørte produkter...\",\"no_affected_products\":\"Ingen berørte produkter funnet i den gjeldende produktkatalogen.\"}},\"customers\":{\"add_customer\":\"@:{'templates.generated.compat.admin.pos.add_customer'}\",\"add_vehicle_subtitle\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.et'} @:{'words.generated.nytt'} @:{'words.generated.kjøretøy'}\",\"add_vehicle_to_customer\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.kjøretøy'} @:{'words.generated.til'} @:{'words.generated.kunde'}\",\"add_vehicle\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.kjøretøy'}\",\"confirm_delete_vehicle\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.dette'} @:{'words.generated.kjøretøyet'}? @.capitalize:{'words.generated.dette'} @:{'words.generated.kan'} @:{'words.generated.ikke'} @:{'words.generated.angres'}.\",\"confirm_remove_vehicle\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} fjerne @:{'words.generated.dette'} @:{'words.generated.kjøretøyet'} @:{'words.generated.fra'} @:{'words.generated.kunden'}?\",\"contact\":{\"title\":\"Kontaktperson\"},\"cvr\":\"Organisasjonsnummer\",\"delete_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.denne'} @:{'words.generated.kunden'}?\",\"delete_customer\":\"@.capitalize:{'words.generated.slett'} @:{'words.generated.kunde'}\",\"delete_selected_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} {count} @:{'words.generated.valgte'} @:{'words.generated.kunder'}?\",\"delete_selected\":\"@.capitalize:{'words.generated.slett'} @:{'words.generated.valgte'}\",\"edit_customer\":\"@:{'words.generated.rediger'} @:{'words.generated.kunde'}\",\"export\":\"Eksporter @:{'words.generated.kunder'}\",\"form\":{\"billing_type\":\"Faktureringstype\",\"contact_name\":\"Kontaktnavn\",\"contact_phone\":\"Kontakttelefon\",\"credit_limit\":\"Kredittgrense\",\"payment_due\":\"Betalingsfrist\",\"vat_registered\":\"@:{'words.generated.mva'}-@:{'words.generated.registrert'}\"},\"import\":\"@:{'words.generated.importer'} @:{'words.generated.kunder'}\",\"no_customers\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.kunder'} @:{'words.generated.funnet'}\",\"no_vehicles\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.kjøretøy'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} kundenavn, @:{'words.generated.kundenummer'}, @:{'words.generated.e'}-@:{'words.generated.post'}, @:{'words.generated.telefon'}\",\"view_subtitle\":\"@.capitalize:{'words.generated.se'} kundedetaljer\",\"view_vehicles\":\"@:{'words.generated.vis'} @:{'words.generated.kjøretøy'}\"},\"department_dashboard\":{\"bookings\":{\"all\":\"@.capitalize:{'words.generated.pa'}\",\"certificate_download_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.nedlasting'} @:{'words.generated.av'} vaskesertifikatet\",\"certificate_generated\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.er'} @:{'words.generated.generert'} @:{'words.generated.vaskesertifikat'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.bestillingen'}.\",\"search\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.bestillinger'}...\",\"sent_to\":\"@.capitalize:{'words.generated.sendt'} @:{'words.generated.til'}\",\"services\":{\"exterior_semi_trailer\":\"@.capitalize:{'words.generated.utvendig'} @:{'words.generated.semitrailer'} (@:{'words.generated.lastebil'} / @:{'words.generated.tilhenger'})\",\"exterior_trailer_wash\":\"@.capitalize:{'words.generated.utvendig'} @:{'words.generated.tilhengervask'}\",\"interior_trailer_wash\":\"@.capitalize:{'words.generated.innvendig'} @:{'words.generated.tilhengervask'}\"},\"subtitle\":\"@:{'templates.generated.compat.bookings.subtitle'}\",\"upcoming\":\"@.capitalize:{'words.generated.kommer'}\",\"wash_completed\":\"@:{'templates.generated.compat.self_wash.wash_completed'}\"},\"calendar\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.kalender'} @:{'words.generated.for'} @:{'words.generated.avdelingen'}\"},\"customers\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.kunder'} @:{'words.generated.i'} @:{'words.generated.avdelingen'}\"},\"daily_report\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.daglige'} @:{'words.generated.rapporter'}\"},\"employees\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.ansatte'} @:{'words.generated.i'} @:{'words.generated.avdelingen'}\"},\"home\":{\"subtitle\":\"@:{'words.generated.velkommen'} @:{'words.generated.til'} @:{'words.generated.avdelingens'} @:{'words.generated.dashbord'}\"},\"invoices\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.fakturaer'} @:{'words.generated.for'} @:{'words.generated.avdelingen'}\"},\"overview\":{\"charts\":\"Diagrammer\",\"list\":\"@:{'templates.generated.compat.calendar.fullcalendar.list'}\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.hvordan'} @:{'words.generated.avdelingene'} @:{'words.generated.dine'} presterer\"},\"pos\":{\"subtitle\":\"Rekordsalg\"},\"products\":{\"addons_subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.produkttillegg'} @:{'words.generated.i'} @:{'words.generated.avdelingen'}\",\"no_addons\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.tillegg'} @:{'words.generated.funnet'}.\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.produkter'} @:{'words.generated.i'} @:{'words.generated.avdelingen'}\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.innstillinger'} @:{'words.generated.for'} @:{'words.generated.avdelingen'}\"},\"sidebar\":{\"time_bookings\":\"@.capitalize:{'words.generated.avtaler'}\"},\"statistics\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.statistikk'} @:{'words.generated.for'} @:{'words.generated.avdelingen'}\"},\"time_bookings\":{\"subtitle\":\"@.capitalize:{'words.generated.administrere'} @:{'words.generated.avtaler'}\"},\"vehicles\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.kjøretøy'} @:{'words.generated.i'} @:{'words.generated.avdelingen'}\"},\"wash_log\":{\"add_wash\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.vask'}\",\"add_wash_title\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.vask'} @:{'words.generated.i'} @:{'words.generated.logg'}\",\"created_certificate\":\"@.capitalize:{'words.generated.vaskesertifikat'} @:{'words.generated.opprettet'}. @.capitalize:{'words.generated.det'} @:{'words.generated.apnes'} @:{'words.generated.na'} @:{'words.generated.i'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.fane'}.\",\"creating_certificate\":\"@:{'words.generated.oppretter'} @:{'words.generated.vaskesertifikat'}...\",\"discount\":\"@:{'templates.generated.compat.common.discount'}\",\"download_csv\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} CSV\",\"download_excel\":\"@:{'templates.generated.compat.pagination.download_excel'}\",\"edit_wash\":\"@:{'words.generated.rediger'} @:{'words.generated.vask'}\",\"ended\":\"Avsluttet\",\"no_washes\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.vask'} @:{'words.generated.funnet'}\",\"open_wash_certificate\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.vaskesertifikat'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.registreringsnummer'}, @:{'words.generated.referanse'}, @:{'words.generated.ansatt'}, @:{'words.generated.kunde'}\",\"showing_x_of_y\":\"@:{'words.generated.viser'} {x} @:{'words.generated.av'} {y}\",\"started\":\"Startet\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.vaskelogg'} @:{'words.generated.for'} @:{'words.generated.avdelingen'}\",\"subtitle_expanded\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.over'} @:{'words.generated.vask'} @:{'words.generated.i'} @:{'words.generated.avdelingen'}\",\"washes_per_page\":\"@:{'words.generated.vask'} @:{'words.generated.per'} @:{'words.generated.side'}\",\"washes_per_page_title\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.per'} @:{'words.generated.side'}\"}},\"department_reports\":{\"avg_revenue_per_wash\":\"@.capitalize:{'words.generated.gj'}.@:{'words.generated.sn'}. @:{'words.generated.inntekt'} @:{'words.generated.per'} @:{'words.generated.vask'}\",\"revenue\":\"@.capitalize:{'words.generated.omsetning'}\",\"today\":\"@:{'words.generated.i'} @:{'words.generated.dag'}\"},\"departments\":{\"addons\":{\"new_addon\":\"@.capitalize:{'words.generated.nytt'} @:{'words.generated.tillegg'}\"},\"confirm_delete\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.denne'} @:{'words.generated.avdelingen'}?\",\"dashboard\":\"@.capitalize:{'words.generated.dashbord'}\",\"delete_department\":\"@.capitalize:{'words.generated.slett'} @:{'words.generated.avdeling'}\",\"edit_department\":\"@:{'words.generated.rediger'} @:{'words.generated.avdeling'}\",\"form\":{\"latitude\":\"Breddegrad\",\"longitude\":\"Lengdegrad\"},\"integrations\":{\"mailersend_api_key\":\"@:{'templates.generated.compat.configuration.email.mailersend_api_key'}\",\"subtitle\":\"@:{'words.generated.konfigurer'} @:{'words.generated.integrasjoner'} @:{'words.generated.for'} @:{'words.generated.avdelingen'}\"},\"new_department\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.avdeling'}\",\"no_departments\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.avdelinger'} @:{'words.generated.funnet'}\",\"opening_hours\":{\"closed\":\"Stengt\"},\"pricing\":{\"custom_pricing_disabled\":\"Fallback aktiv\",\"custom_pricing_enabled\":\"Kun egendefinerte priser\",\"custom_pricing_missing_price\":\"Manglende avdelingspriser blir 999999.\",\"custom_pricing_only\":\"Ingen fallback-priser\",\"effective_department_price\":\"Effektiv avdelingspris\"},\"search_placeholder\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.avdelingsnavn'}\",\"select_department\":\"@.capitalize:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.avdeling'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.avdelinger'}\",\"tab\":{\"info\":\"@:{'templates.generated.compat.common.info'}\",\"opening_hours\":\"@:{'templates.generated.compat.global.opening_hours'}\",\"product_addons\":\"@.capitalize:{'words.generated.produkttillegg'}\",\"wash_products\":\"Vaskeprodukter\"},\"title\":\"@:{'templates.generated.compat.common.departments'}\"},\"employees\":{\"confirm_delete\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.denne'} @:{'words.generated.ansatte'}?\",\"delete_employee\":\"@.capitalize:{'words.generated.slett'} @:{'words.generated.ansatt'}\",\"edit_employee\":\"@:{'words.generated.rediger'} @:{'words.generated.ansatt'}\",\"new_employee\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.ansatt'}\",\"no_employees\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.ansatte'} @:{'words.generated.funnet'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.navn'}, @:{'words.generated.e'}-@:{'words.generated.post'}, @:{'words.generated.telefon'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.ansatte'}\"},\"error_report\":{\"button\":\"Rapporter feil\",\"title\":\"Rapporter feil\",\"subtitle\":\"Send de siste feildetaljene til support. Et skjermbilde legges ved når det er mulig.\",\"before_error\":\"Hva gjorde du før feilen oppstod?\",\"expected\":\"Hva forventet du at skulle skje?\",\"actual\":\"Hva skjedde faktisk?\",\"before_error_placeholder\":\"Beskriv handlingen du utførte, for eksempel å åpne ordre eller velge en kunde.\",\"expected_placeholder\":\"Beskriv resultatet du forventet å se.\",\"actual_placeholder\":\"Beskriv hva du så i stedet, inkludert eventuell feiltekst.\",\"consent\":\"Jeg godtar at siste request-feil, Vue-feil, nettleserdetaljer, svarene mine og et app-skjermbilde når det er mulig, samles inn for feilsøking.\",\"submit\":\"Send rapport\",\"submitted\":\"Feilrapport sendt.\",\"capture_failed\":\"Skjermbildet kunne ikke tas. Rapporten sendes uten skjermbilde.\",\"submit_failed\":\"Feilrapporten kunne ikke sendes.\",\"required\":\"Alle felter og godkjenning av datainnsamling er påkrevd.\",\"page_subtitle\":\"Rapporterte skjermer, request-feil og Vue-feil\",\"screenshot\":\"Skjermbilde\",\"request_errors\":\"Request-feil\",\"vue_errors\":\"Vue-feil\",\"runtime_context\":\"Runtime-kontekst\",\"empty\":\"Ingen feilrapporter funnet.\",\"resolve\":\"Marker som løst\",\"reopen\":\"Åpne igjen\",\"resolution_note\":\"Løsningsnotat\",\"filters\":{\"open\":\"Åpen\",\"resolved\":\"Løst\",\"all\":\"Alle\"}},\"errors\":{\"forbidden\":\"…@:{'words.generated.kommer'} nekad.\",\"general\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.prøv'} @:{'words.generated.igjen'}.\",\"network_error\":\"Nettverksfeil\",\"network\":\"Nätverksfel. Kontrollera @:{'words.generated.din'} anslutning.\",\"not_found\":\"Ressursen @:{'words.generated.ble'} @:{'words.generated.ikke'} @:{'words.generated.funnet'}.\",\"parse_error\":{\"unknown\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ukjent'} @:{'words.generated.feil'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.prøv'} @:{'words.generated.igjen'}.\"},\"server_error\":\"Serverfil\",\"server\":\"Serverfel. @:{'words.generated.vanligen'} försök igen senare.\",\"timeout\":\"Begäran @:{'words.generated.sammen'} @:{'words.generated.i'} lang @:{'words.generated.tid'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.prøv'} @:{'words.generated.igjen'}.\",\"unauthorized\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.er'} @:{'words.generated.ikke'} autorisert @:{'words.generated.til'} @:{'words.generated.a'} utføre @:{'words.generated.denne'} handlingen.\",\"validation\":\"Valideringsfeil. @.capitalize:{'words.generated.sjekk'} innspillet @:{'words.generated.ditt'}.\"},\"global_search\":{\"actions\":{\"back_to_results\":\"@.capitalize:{'words.generated.tilbake'} @:{'words.generated.til'} @:{'words.generated.resultater'}\",\"clear_results\":\"@.capitalize:{'words.generated.klare'} @:{'words.generated.resultater'}\",\"close_settings\":\"@:{'words.generated.close'} @:{'words.generated.settings'}\",\"run_search\":\"@:{'words.generated.kjør'} @:{'words.generated.søk'}\"},\"badges\":{\"score\":\"Poeng {score}\"},\"cache\":{\"clear_cache\":\"@:{'words.generated.tøm'} hurtigbufferen\",\"errors\":{\"types_required\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.minst'} én @:{'words.generated.type'} @:{'words.generated.nar'} @:{'words.generated.omfanget'} @:{'words.generated.er'} \\\"@:{'words.generated.typer'}\\\".\"},\"messages\":{\"cleared\":\"@.capitalize:{'words.generated.systemsøk'}-cacher tømt.\",\"rebuild_queued\":\"@:{'words.generated.gjenoppbygging'} @:{'words.generated.av'} buffer @:{'words.generated.for'} @:{'words.generated.systemsøk'} @:{'words.generated.i'} @:{'words.generated.kø'}.\"},\"queue_rebuild\":\"@:{'words.generated.gjenoppbygging'} @:{'words.generated.av'} @:{'words.generated.kø'}\",\"rebuild_scope\":\"Gjenoppbygg @:{'words.generated.omfanget'}\",\"rebuild_types\":\"Gjenoppbyggingstyper\",\"scope_all\":\"@:{'words.generated.alle'}\",\"scope_dirty\":\"skitten\",\"scope_types\":\"types\",\"superuser_only\":\"Bufferverktøy @:{'words.generated.er'} @:{'words.generated.tilgjengelig'} @:{'words.generated.for'} superbrukere.\",\"title\":\"@.capitalize:{'words.generated.superbruker'} hurtigbufferverktøy\"},\"department_goals\":{\"loading\":\"@:{'words.generated.loading'} @:{'words.generated.goal'} @:{'words.generated.progress'}...\",\"overview\":\"@.capitalize:{'words.generated.goal'} @:{'words.generated.progress'}\",\"period\":\"@.capitalize:{'words.generated.period'}\",\"progress_unavailable\":\"@.capitalize:{'words.generated.goal'} @:{'words.generated.progress'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.available'} @:{'words.generated.yet'}.\"},\"entity_types\":{\"bookings\":\"@.capitalize:{'words.generated.legacy'} @:{'words.generated.bookings'}\",\"bookings_new\":\"@.capitalize:{'words.generated.new'} @:{'words.generated.bookings'}\",\"currency_conversion_rates\":\"Currency @:{'words.generated.conversion'} @:{'words.generated.rates'}\",\"customer_codes\":\"@.capitalize:{'words.generated.customer'} codes\",\"customer_default_department\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.default'} @:{'words.generated.department'}\",\"customer_discounts\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.discounts'}\",\"customer_fixed_prices\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.fixed'} @:{'words.generated.prices'}\",\"customer_notes\":\"@.capitalize:{'words.generated.customer'} notes\",\"customer_vehicles_addons\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.vehicle'} @:{'words.generated.add'}-@:{'words.generated.ons'}\",\"customers\":\"@.capitalize:{'words.generated.customers'}\",\"department_goals\":\"@.capitalize:{'words.generated.department'} goals\",\"department_selfserve_condition_rules\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} condition rules\",\"department_selfserve_conditions\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.conditions'}\",\"department_selfserve_questions\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} questions\",\"department_selfserve_tasks\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} tasks\",\"department_selfserve_vehicle_conditions\":\"@.capitalize:{'words.generated.department'} @:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.vehicle'} @:{'words.generated.conditions'}\",\"fxratesapi_conversion_rates\":\"@:{'words.generated.fxratesapi'} @:{'words.generated.conversion'} @:{'words.generated.rates'}\",\"module_config\":\"@.capitalize:{'words.generated.module'} @:{'words.generated.config'}\",\"motorapi_lookups\":\"@:{'words.generated.motorapi'} @:{'words.generated.lookups'}\",\"order_items\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.items'}\",\"plate_scanners\":\"@:{'words.generated.plate'} scanners\",\"plate_scans\":\"@:{'words.generated.plate'} scans\",\"stripe_module_customers\":\"@:{'words.generated.stripe'} @:{'words.generated.module'} @:{'words.generated.customers'}\",\"stripe_module_orders\":\"@:{'words.generated.stripe'} @:{'words.generated.module'} @:{'words.generated.orders'}\",\"stripe_payment_intents\":\"@:{'words.generated.stripe'} @:{'words.generated.payment'} intents\",\"subusers\":\"Subusers\",\"xlvask_customers\":\"@:{'words.generated.xlvask_xlvask'} @:{'words.generated.customers'}\",\"xlvask_potential_order_matches\":\"@:{'words.generated.xlvask_xlvask'} potential @:{'words.generated.order'} matches\",\"xlvask_usage_log_wash_items\":\"@:{'words.generated.xlvask_xlvask'} @:{'words.generated.usage'} @:{'words.generated.log'} @:{'words.generated.wash'} @:{'words.generated.items'}\",\"xlvask_usage_logs\":\"@:{'words.generated.xlvask_xlvask'} @:{'words.generated.usage'} logs\",\"xlvask_vehicles\":\"@:{'words.generated.xlvask_xlvask'} vehicles\"},\"errors\":{\"enter_query\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.et'} @:{'words.generated.søk'}.\",\"invalid_payload\":\"@:{'words.generated.ugyldig'} @:{'words.generated.nyttelast'} @:{'words.generated.for'} søkesvar.\",\"request_failed\":\"Forespørselen @:{'words.generated.mislyktes'}.\"},\"groups\":{\"active\":\"@.capitalize:{'words.generated.aktiv'} @:{'words.generated.gruppe'}: {group}\",\"description\":\"@.capitalize:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.gruppe'} @:{'words.generated.for'} @:{'words.generated.a'} filtrere @:{'words.generated.synlige'} @:{'words.generated.resultater'}.\",\"empty_hint\":\"@:{'words.generated.kjør'} @:{'words.generated.et'} @:{'words.generated.søk'} @:{'words.generated.for'} @:{'words.generated.a'} fylle @:{'words.generated.ut'} @:{'words.generated.grupperte'} @:{'words.generated.resultater'}.\",\"summary\":\"@.capitalize:{'words.generated.grupperte'} @:{'words.generated.resultater'} (@:{'words.generated.etter'} enhetstype)\",\"title\":\"Resultatgrupper\"},\"launcher\":{\"last_search\":\"@:{'words.generated.siste'} @:{'words.generated.søk'}: \\\"{query}\\\", {total} @:{'words.generated.resultater'}\"},\"meta\":{\"allowed_types\":\"Tillatte @:{'words.generated.typer'}\",\"cache_hit\":\"@.capitalize:{'words.generated.cache'}-@:{'words.generated.treff'}\",\"hide\":\"@:{'words.generated.skjul'} @:{'words.generated.meta'}\",\"intent\":{\"confidence\":\"Selvtillit\",\"entity_hints\":\"Entitets hint\",\"expanded_terms\":\"Utvidede @:{'words.generated.vilkar'}\",\"fallback_reason\":\"Reserveårsak\",\"invoked\":\"Påkalt\",\"source\":\"@.capitalize:{'words.generated.kilde'}\",\"title\":\"@.capitalize:{'words.generated.intent'} @:{'words.generated.parser'} @:{'words.generated.diagnostikk'}\"},\"limit\":\"Begrense\",\"max_results\":\"Maks. resultater\",\"no\":\"@:{'words.generated.no'}\",\"offset\":\"Offset\",\"returned\":\"Returnert\",\"show\":\"@:{'words.generated.vis'} @:{'words.generated.meta'}\",\"truncated\":\"Avkortet\",\"yes\":\"@:{'words.generated.ja'}\"},\"progress\":{\"fetching_known\":\"@.capitalize:{'words.generated.henter'} @:{'words.generated.side'} {pagesDone} @:{'words.generated.av'} {pagesTotal}\",\"fetching_unknown\":\"@.capitalize:{'words.generated.henter'} sider ... ({pagesDone} @:{'words.generated.hentet'})\",\"preparing\":\"Forbereder @:{'words.generated.søk'}...\",\"results_loaded\":\"{loaded} / {total} @:{'words.generated.resultater'} @:{'words.generated.lastet'} @:{'words.generated.inn'}\"},\"results\":{\"association\":\"@.capitalize:{'words.generated.forening'}\",\"cap\":\"{returned} av {max}\",\"cap_truncated\":\"{returned} av {max} vist\",\"empty\":\"@:{'words.generated.kjør'} @:{'words.generated.et'} @:{'words.generated.søk'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.laste'} @:{'words.generated.inn'} @:{'words.generated.resultater'}.\",\"none_for_search\":\"@.capitalize:{'words.generated.ingen'} {group} @:{'words.generated.resultater'} @:{'words.generated.for'} @:{'words.generated.dette'} @:{'words.generated.søket'}.\",\"payload\":\"@.capitalize:{'words.generated.nyttelast'}\",\"range\":\"@.capitalize:{'words.generated.resultater'} {start}-{end} @:{'words.generated.av'} {total}\"},\"search\":{\"placeholder\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.i'} @:{'words.generated.alt'}...\"},\"settings_menu\":{\"object_types\":\"@:{'words.generated.filtrer'} objekttyper\",\"open_hint\":\"@.capitalize:{'words.generated.innstillinger'} @:{'words.generated.apnes'} @:{'words.generated.i'} @:{'words.generated.høyre'} panel.\",\"pagination\":\"Paginering\"},\"settings\":{\"exclude_entity_types\":\"@:{'words.generated.ekskluder'} @:{'words.generated.enhetstyper'}\",\"include_all\":\"@:{'words.generated.inkluder'} @:{'words.generated.alle'}\",\"include_associations\":\"@:{'words.generated.inkluder'} assosiasjoner\",\"include_entity_types\":\"@:{'words.generated.inkluder'} @:{'words.generated.enhetstyper'}\",\"include_intent_diagnostics\":\"@:{'words.generated.inkluder'} @:{'words.generated.intent'}-@:{'words.generated.parser'}-@:{'words.generated.diagnostikk'}\",\"manage_description\":\"@.capitalize:{'words.generated.administrer'} visning @:{'words.generated.og'} @:{'words.generated.diagnostikk'}.\",\"methods\":{\"get\":\"@.upper:{'words.generated.get'} (søkeparametere)\",\"post\":\"@.upper:{'words.generated.post'} (@:{'words.generated.json'} body)\"},\"reset_defaults\":\"@.capitalize:{'words.generated.tilbakestill'} @:{'words.generated.standard'}\",\"reset_type_filters\":\"@:{'words.generated.reset'} @:{'words.generated.type'} @:{'words.generated.filters'}\",\"search_method\":\"Søkemetode\",\"show_grouped_summary\":\"@:{'words.generated.vis'} gruppert sammendrag\",\"show_payload_inspector\":\"@:{'words.generated.vis'} nyttelastinspektør\",\"show_score_badges\":\"@:{'words.generated.vis'} poengmerker\"},\"title\":\"Avansert @:{'words.generated.systemsøk'}\"},\"global\":{\"abnormal\":\"Unormal\",\"add_desc\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.et'} @:{'words.generated.nytt'} notat\",\"add_other_product\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.et'} @:{'words.generated.annet'} @:{'words.generated.produkt'}\",\"add\":\"@:{'templates.generated.compat.common.add'}\",\"additional_items\":\"@.capitalize:{'words.generated.ytterligere'} @:{'words.generated.elementer'}\",\"all_booked\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.booket'}\",\"attach_to_order\":\"@:{'words.generated.legg'} @:{'words.generated.ved'} @:{'words.generated.transaksjon'}\",\"auto_start_on_lpr\":\"Autostart @:{'words.generated.pa'} LPR\",\"barred\":\"Sperret\",\"booked\":\"@.capitalize:{'words.generated.bokført'}\",\"cancelled\":\"@.capitalize:{'words.generated.kansellert'}\",\"capture\":\"Capture\",\"change_customer\":\"@:{'words.generated.bytt'} @:{'words.generated.kunde'}\",\"clear_all\":\"@.capitalize:{'words.generated.fjern'} @:{'words.generated.alle'}\",\"closed\":\"@.capitalize:{'words.generated.lukket'}\",\"closing_hour\":\"Stengetid\",\"collapse\":\"Kollapse\",\"collection\":\"Samling\",\"compare\":\"@.capitalize:{'words.generated.sammenligne'}\",\"complete_order\":\"Sluttför @:{'words.generated.ordre'}\",\"complete\":\"@:{'words.generated.fullfør'}\",\"completed\":\"@:{'templates.generated.compat.common.completed'}\",\"configuration\":\"@.capitalize:{'words.generated.konfigurasjon'}\",\"confirm_delete_message\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.dette'} objektet?\",\"confirm_delete\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.slett'}\",\"confirmation_needed\":\"@.capitalize:{'words.generated.bekreftelse'} @:{'words.generated.nødvendig'}\",\"copy\":\"@:{'templates.generated.compat.common.copy'}\",\"date_from\":\"@.capitalize:{'words.generated.dato'} @:{'words.generated.fra'}\",\"date_to\":\"@.capitalize:{'words.generated.date'} @:{'words.generated.til'}\",\"default\":\"@.capitalize:{'words.generated.standard'}\",\"defaults\":\"Standarder\",\"delete_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} passnøkkelen \\\"{name}\\\"? Dette kan @:{'words.generated.ikke'} angres.\",\"delete_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.slette'} @:{'words.generated.passnøkkel'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.prøv'} @:{'words.generated.igjen'}.\",\"delete_passkey\":\"Slett @:{'words.generated.passnøkkel'}\",\"delete\":\"@:{'templates.generated.compat.common.delete'}\",\"deleted_successfully\":\"@.capitalize:{'words.generated.passnøkkel'} @:{'words.generated.er'} slettet.\",\"download_wash_certificate\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.vaskesertifikat'}\",\"edit\":\"@:{'words.generated.rediger'}\",\"emphasis\":\"Understreka\",\"error_loading_transaction\":\"@.capitalize:{'words.generated.innlasting'} @:{'words.generated.mislyktes'}\",\"error_messages\":{\"not_array\":\"@.capitalize:{'words.generated.data'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'}\",\"not_object\":\"@.capitalize:{'words.generated.data'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.et'} @:{'words.generated.objekt'}\",\"not_string\":\"@.capitalize:{'words.generated.data'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.replication.host_definite_suffix'} tekststreng\"},\"excl_tax\":\"ekskl. @:{'words.generated.avgift'}\",\"expand\":\"@:{'templates.generated.compat.common.expand'}\",\"failed_to_send\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.sende'} faktura\",\"failed\":\"@.capitalize:{'words.generated.mislyktes'}\",\"fixed_price_arrangements\":\"Fastprisordninger\",\"found\":\"@.capitalize:{'words.generated.funnet'}\",\"generate_wash_certificate\":\"@:{'words.generated.generer'} @:{'words.generated.vaskesertifikat'}\",\"generated\":\"@.capitalize:{'words.generated.generert'}\",\"handheld_pending_order\":\"Håndholdt\",\"have_not\":\"@.capitalize:{'words.generated.har'} @:{'words.generated.ikke'}\",\"have\":\"@.capitalize:{'words.generated.har'}\",\"hide_content\":\"@:{'words.generated.skjul'} @:{'words.generated.innhold'}\",\"history\":\"Historikk\",\"home\":\"Hjem\",\"ignore_customer_arrangements\":\"@:{'words.generated.ignorer'} kundeordninger\",\"import_all\":\"@:{'words.generated.importer'} @:{'words.generated.alle'}\",\"import\":\"@:{'templates.generated.compat.common.import'}\",\"in_progress\":\"@:{'words.generated.pagar'}\",\"in\":\"@:{'words.generated.in'}\",\"incl_tax\":\"@:{'words.generated.inkl'}. @:{'words.generated.avgift'}\",\"include_all_items_on_invoice\":\"@:{'words.generated.inkluder'} @:{'words.generated.alle'} @:{'words.generated.varer'} @:{'words.generated.pa'} @:{'words.generated.faktura'}\",\"information\":\"@.capitalize:{'words.generated.informasjon'}\",\"invalid\":\"@:{'words.generated.ugyldig'}\",\"invoice_already_created\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.allerede'} @:{'words.generated.opprettet'}\",\"invoice_now\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.na'}\",\"invoice_per_order\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.per'} @:{'words.generated.ordre'}\",\"lane\":\"@.capitalize:{'words.generated.vaskebane'}\",\"last_wash\":\"@:{'templates.generated.compat.common.last_wash'}\",\"link\":\"@.capitalize:{'words.generated.link'}\",\"login_as_customer\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.inn'} @:{'words.generated.som'} @:{'words.generated.kunde'}\",\"login_for_products\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.inn'} @:{'words.generated.for'} @:{'words.generated.a'} velge @:{'words.generated.produkter'} @:{'words.generated.for'} @:{'words.generated.din'} @:{'words.generated.bestilling'}.\",\"login_with_qr_code\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.inn'} @:{'words.generated.med'} @:{'words.generated.qr'}-@:{'words.generated.kode'}\",\"login_with\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.inn'} @:{'words.generated.med'}\",\"login\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.inn'}\",\"manage\":\"@.capitalize:{'words.generated.administrer'}\",\"mark_as_completed\":\"@:{'words.generated.merk'} @:{'words.generated.som'} @:{'words.generated.fullført'}\",\"mark_as_not_duplicate\":\"@:{'words.generated.merk'} @:{'words.generated.som'} @:{'words.generated.ikke'} duplikat\",\"month\":\"@.capitalize:{'words.generated.maned'}\",\"my\":\"My\",\"no_additional_items\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.ekstra'} @:{'words.generated.elementer'}\",\"no_applicable_booking_types\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.aktuelle'} bookingtyper, @:{'words.generated.prøv'} @:{'words.generated.a'} @:{'words.generated.velge'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.annen'} @:{'words.generated.avdeling'}.\",\"no_data\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.data'}\",\"no_slots_available\":\"@.capitalize:{'words.generated.ingen'} ledige spilleautomater\",\"no_transactions_yet\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.transaksjoner'} @:{'words.generated.enna'}\",\"non_included_products\":\"@.capitalize:{'words.generated.ikke'}-inkluderte @:{'words.generated.produkter'}\",\"not_completed\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.fullført'}\",\"not_configured\":\"@.capitalize:{'words.generated.ikke'} konfigurert\",\"not_synchronized\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.synkronisert'}\",\"note\":\"@.capitalize:{'words.generated.notat'}\",\"nothing_left_to_show\":\"Ingenting @:{'words.generated.igjen'} @:{'words.generated.a'} @:{'words.generated.vise'}\",\"nothing_to_do_all_set\":\"@.capitalize:{'words.generated.alt'} @:{'words.generated.ferdig'}, @:{'words.generated.ikke'} noe @:{'words.generated.mer'} @:{'words.generated.a'} @:{'words.generated.gjøre'} @:{'words.generated.her'}!\",\"only_tank_cleaning\":\"@.capitalize:{'words.generated.kun'} @:{'words.generated.tankrengjøring'}\",\"open\":\"@:{'words.generated.apen'}\",\"opening_hour\":\"@.capitalize:{'words.generated.apningstid'}\",\"opening_hours\":\"@.capitalize:{'words.generated.apningstider'}\",\"optional\":\"@:{'words.generated.valgfri'}\",\"or_scan_plates\":\"@.capitalize:{'words.generated.eller'} @:{'words.generated.skann'} @:{'words.generated.plater'}\",\"other_period\":\"@.capitalize:{'words.generated.annen'} @:{'words.generated.periode'}\",\"other\":\"@.capitalize:{'words.generated.annen'}\",\"password\":\"@.capitalize:{'words.generated.passord'}\",\"past\":\"Forbi\",\"payment_status\":\"@.capitalize:{'words.generated.betalingsstatus'}\",\"payment\":{\"amount\":\"@.capitalize:{'words.generated.beløp'}\",\"fixed_pricing\":\"@:{'words.generated.fast'} @:{'words.generated.pris'}\",\"method\":\"Betalingsmåte\",\"payment_intent\":\"Betalingshensikt\",\"payment_recieved\":\"@.capitalize:{'words.generated.betaling'} @:{'words.generated.mottatt'}\",\"receipt\":\"@.capitalize:{'words.generated.kvittering'}\",\"receipt_url\":\"Nettadresse @:{'words.generated.for'} @:{'words.generated.kvittering'}\",\"transaction_id\":\"Transaksjons-@.upper:{'words.generated.id'}\",\"type\":{\"bank_transfer\":\"Bankoverføring\",\"card\":\"@.capitalize:{'words.generated.kort'}\",\"cash\":\"@.capitalize:{'words.generated.kontanter'}\"}},\"pending\":\"@.upper:{'words.generated.i'} påvente @:{'words.generated.av'}\",\"phone_country_code\":\"Landskode\",\"phone_number\":\"@.capitalize:{'words.generated.telefonnummer'}\",\"possible_duplicates\":\"@.capitalize:{'words.generated.mulige'} @:{'words.generated.duplikater'}\",\"preview\":\"Forhåndsvis\",\"previous\":\"@.capitalize:{'words.generated.tidligere'}\",\"price_match\":\"Prismatch\",\"price_unmatch\":\"Prismisforhold\",\"prices\":\"@.capitalize:{'words.generated.priser'}\",\"print\":\"@:{'templates.generated.compat.common.print'}\",\"processing\":\"@:{'templates.generated.compat.common.processing'}\",\"queue\":\"@.capitalize:{'words.generated.kø'}\",\"ready_to_wash\":\"@.capitalize:{'words.generated.klar'} @:{'words.generated.til'} @:{'words.generated.vask'}\",\"recent\":\"Nylig\",\"recommended\":\"Anbefalt\",\"register\":\"@:{'words.generated.opprett'} @:{'words.generated.bruker'}\",\"regret\":\"@.capitalize:{'words.generated.angre'}\",\"reject\":\"Avvis\",\"related_service\":\"Relatert @:{'words.generated.tjeneste'}\",\"required\":\"@.capitalize:{'words.generated.pakrevd'}\",\"requires_action\":\"@.capitalize:{'words.generated.krever'} @:{'words.generated.handling'}\",\"reset\":\"@:{'words.generated.nullstill'}\",\"rows\":\"@:{'words.generated.rader'}\",\"scanning\":\"@.capitalize:{'words.generated.skanning'}\",\"search_cvr\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.i'} @:{'words.generated.cvr'}-@:{'words.generated.nummer'}...\",\"search_phone\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.telefonnummer'}\",\"search_subuser\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.underbruker'}\",\"search_transactions\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.i'} @:{'words.generated.transaksjoner'}\",\"search_user\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.bruker'}\",\"selected\":\"@:{'templates.generated.compat.common.selected'}\",\"send_as_is\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.som'} @:{'words.replication.article.host_mention'} @:{'words.generated.er'}\",\"show_content\":\"@:{'words.generated.vis'} @:{'words.generated.innhold'}\",\"showing_of_separator\":\"@:{'words.generated.of'}\",\"special_arrangements\":\"@:{'words.generated.spesielle'} @:{'words.generated.arrangementer'}\",\"split\":\"@.capitalize:{'words.generated.dele'}\",\"statistics\":\"@.capitalize:{'words.generated.statistikk'}\",\"stop\":\"@:{'templates.generated.compat.common.stop'}\",\"submit_test_email_prompt\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.e'}-postadressen @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.sende'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.test'}-@:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.til'}\",\"submit_test_email\":\"Send @:{'words.generated.test'}-@:{'words.generated.e'}-@:{'words.generated.post'}\",\"submit\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.inn'}\",\"submiter_identity_desc\":\"Konfigurer @:{'words.generated.avsenderidentiteten'} @:{'words.generated.for'} @:{'words.generated.utgaende'} @:{'words.generated.e'}-poster\",\"submiter_identity\":\"@:{'words.generated.avsenderidentitet'}\",\"subscriptions\":\"@.capitalize:{'words.generated.abonnementer'}\",\"succeeded\":\"Lykkes\",\"successful_syncs\":\"Vellykkede synkroniseringer\",\"summary\":\"@.capitalize:{'words.generated.oversikt'}\",\"synchronized\":\"@.capitalize:{'words.generated.synkronisert'}\",\"take_picture\":\"@.capitalize:{'words.generated.ta'} @:{'words.generated.bilde'}\",\"tank_cleaning\":\"@.capitalize:{'words.generated.tankrengjøring'}\",\"text\":{\"all\":\"Alltid\",\"anytime\":\"Når som helst\",\"last_7_days\":\"@:{'words.generated.siste'} 7 @:{'words.generated.dager'}\",\"last_month\":\"@.capitalize:{'words.generated.forrige'} @:{'words.generated.maned'}\",\"other_month\":\"@.capitalize:{'words.generated.annen'} @:{'words.generated.maned'}\",\"last_week\":\"@.capitalize:{'words.generated.forrige'} @:{'words.generated.uke'}\",\"same_month_last_year\":\"@.capitalize:{'words.generated.samme'} @:{'words.generated.maned'} @:{'words.generated.i'} @:{'words.generated.fjor'}\",\"same_week_last_year\":\"@.capitalize:{'words.generated.samme'} @:{'words.generated.uke'} @:{'words.generated.i'} @:{'words.generated.fjor'}\",\"search_in\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.inn'}\",\"this_month\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.maneden'}\",\"this_week\":\"@.capitalize:{'words.generated.denne'} uken\",\"this_year\":\"@.upper:{'words.generated.i'} @:{'words.generated.ar'}\",\"yesterday\":\"@.upper:{'words.generated.i'} @:{'words.generated.gar'}\"},\"time\":{\"at_hour\":\"@.capitalize:{'words.generated.at'}\"},\"to_department_and_customer_defaults\":\"@.capitalize:{'words.generated.til'} @:{'words.generated.avdelings'}- @:{'words.generated.og'} kundestandarder\",\"total_amount\":\"@.capitalize:{'words.generated.totalt'} beløp\",\"total_price_for_order\":\"@:{'words.generated.totalpris'} @:{'words.generated.for'} @:{'words.generated.bestilling'}: {total} @:{'words.generated.dkk'}\",\"total\":\"@.capitalize:{'words.generated.totalt'}\",\"unlink\":\"@.capitalize:{'words.generated.fjern'} tilknytningen\",\"unselect\":\"@.capitalize:{'words.generated.fjern'} valget\",\"usage_log\":\"Brukslogg\",\"view_order\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.transaksjonen'}\",\"warnings\":\"@.capitalize:{'words.generated.advarsler'}\",\"wash_multiple\":\"@.capitalize:{'words.generated.vasker'}\",\"weekday\":\"Ukedag\",\"zoom_out\":\"@:{'words.generated.zoom'} @:{'words.generated.ut'}\",\"zoom\":\"@:{'words.generated.zoom'}\"},\"guest\":{\"about\":\"@.capitalize:{'words.generated.om'} @:{'words.generated.oss'}\",\"access_code\":\"@.capitalize:{'words.generated.tilgangskode'}\",\"app_store\":\"@.capitalize:{'words.generated.app'} @.capitalize:{'words.generated.store'}\",\"book_wash\":\"@:{'words.generated.bestill'} @:{'words.generated.klesvask'}\",\"contact\":\"@.capitalize:{'words.generated.kontakt'} @:{'words.generated.oss'}\",\"download_app\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.app'}\",\"driver\":{\"coming_soon\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.funksjonen'} @:{'words.generated.kommer'} snart!\"},\"enter_access_code\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.tilgangskode'}\",\"find_wash\":\"@:{'words.generated.finn'} @:{'words.generated.klesvask'}\",\"home\":{\"contact_or_call\":\"@:{'words.generated.eller'} ring @:{'words.generated.oss'} @:{'words.generated.pa'}\",\"contact_prefix\":\"Opplever @:{'words.generated.du'} @:{'words.generated.problemer'}, @:{'words.generated.kontakt'} @:{'words.generated.oss'} @:{'words.generated.pa'}\",\"description\":\"@.capitalize:{'words.generated.dette'} @:{'words.generated.er'} dashbordet @:{'words.generated.ditt'}. @.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.generated.dine'} @:{'words.generated.bestillinger'}, @:{'words.generated.bestillinger'} @:{'words.generated.og'} @:{'words.generated.kjøretøy'}.\",\"subtitle\":\"@:{'words.generated.velkommen'} @:{'words.generated.til'} @.upper:{'words.generated.pleno'}\"},\"invalid_code\":\"@:{'words.generated.ugyldig'} @:{'words.generated.tilgangskode'}\",\"play_store\":\"@:{'words.generated.google'} Play\",\"pwa\":{\"already_installed\":\"@:{'words.generated.pleno'} @:{'words.generated.er'} @:{'words.generated.allerede'} installert @:{'words.generated.pa'} @:{'words.generated.enheten'} @:{'words.generated.din'}.\",\"android_instructions\":\"@:{'words.generated.trykk'} @:{'words.generated.pa'} menyknappen @:{'words.generated.og'} @:{'words.generated.velg'} '@.capitalize:{'words.generated.installer'} @:{'words.generated.app'}'\",\"card_title\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.pleno'}\",\"click_to_install\":\"@.capitalize:{'words.generated.klikk'} @:{'words.generated.pa'} knappen @:{'words.generated.nedenfor'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.installere'} @:{'words.generated.pleno'} @:{'words.generated.pa'} @:{'words.generated.enheten'} @:{'words.generated.din'}.\",\"description\":\"@:{'words.generated.pleno'} @:{'words.generated.er'} @:{'words.replication.host_definite_suffix'} progressiv webapp (PWA) @:{'words.generated.som'} @:{'words.generated.kan'} installeres @:{'words.generated.pa'} @:{'words.generated.enheten'} @:{'words.generated.din'} @:{'words.generated.for'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.bedre'} opplevelse.\",\"install\":\"@.capitalize:{'words.generated.installer'}\",\"install_label\":\"@.capitalize:{'words.generated.installer'} @:{'words.generated.pleno'}\",\"install_via_browser\":\"@.capitalize:{'words.generated.installer'} @:{'words.generated.pleno'} @:{'words.generated.via'} @:{'words.generated.nettlesermenyen'}\",\"installed_label\":\"@:{'templates.generated.compat.tables.bookings.vehicle_2'}\",\"instructions\":\"Instruksjoner\",\"ios_instructions\":\"@:{'words.generated.trykk'} @:{'words.generated.pa'} deleknappen @:{'words.generated.og'} @:{'words.generated.velg'} \\\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.pa'} startskjermen\\\"\",\"subtitle\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.appen'} @:{'words.generated.pa'} @:{'words.generated.enheten'} @:{'words.generated.din'}\",\"title\":\"@:{'templates.generated.compat.common.download'}\",\"use_supported_browser\":\"@.capitalize:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.installere'} @:{'words.generated.pleno'}, @:{'words.generated.bruk'} @:{'words.replication.host_definite_suffix'} støttet @:{'words.generated.nettleser'} @:{'words.generated.og'} @:{'words.generated.følg'} installasjonsinstruksjonene.\"},\"scan_qr\":\"@.capitalize:{'words.generated.skann'} @:{'words.generated.qr'}-@:{'words.generated.kode'}\",\"start_wash_subtitle\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} tilgangskoden @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.fortsette'}\",\"start_wash_title\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.vask'} @:{'words.generated.som'} @:{'words.generated.gjest'}\",\"start_wash\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.vask'}\",\"title\":\"Gjesttilgang\",\"welcome_message\":\"@:{'words.generated.valkommen'} @:{'words.generated.til'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}\",\"welcome\":\"@:{'words.generated.valkommen'}\"},\"header\":{\"about_us\":\"@:{'templates.generated.compat.guest.about'}\",\"backoffice\":\"@.capitalize:{'words.generated.back'} @:{'words.generated.office'}\",\"customer_creation_discount\":\"Opprett @:{'words.generated.brukerrabatt'}\",\"customer_creation\":\"@:{'templates.generated.compat.global.register'}\",\"operator_login\":\"Operatør @:{'words.generated.palogging'}\",\"return_to_account\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.tilbake'} @:{'words.generated.til'} @:{'words.generated.egen'} @:{'words.generated.konto'}\"},\"invoice_period\":{\"flags\":{\"automatic\":{\"customer_rule_exempt_from_administration_fees\":\"{product} @:{'words.generated.is'} @:{'words.generated.an'} @:{'words.generated.administration'} @:{'words.generated.fee'} @:{'words.generated.for'} @:{'words.generated.an'} @:{'words.generated.exempt'} @:{'words.generated.customer'}.\",\"customer_rule_invoice_all_orders_individually\":\"@.capitalize:{'words.generated.invoice'} @:{'words.generated.collection'} @:{'words.generated.contains'} @:{'words.generated.multiple'} @:{'words.generated.orders'} @:{'words.generated.for'} @:{'words.generated.a_2'} @:{'words.generated.customer'} requiring individual @:{'words.generated.invoices'}.\",\"customer_rule_only_tank_cleaning\":\"{product} @:{'words.generated.violates'} @:{'words.generated.the'} @:{'words.generated.only'} @:{'words.generated.tank'} @:{'words.generated.cleaning'} rule.\",\"customer_rule_requires_po_number\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.is'} @:{'words.generated.missing'} @:{'words.generated.a_2'} @:{'words.generated.required'} @:{'words.generated.po'} @:{'words.generated.number'}.\",\"customer_rule_requires_reference\":\"@.capitalize:{'words.generated.order'} @:{'words.generated.is'} @:{'words.generated.missing'} @:{'words.generated.a_2'} @:{'words.generated.required'} @:{'words.generated.reference'}.\",\"customer_rule_restrict_addon_services\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} addon @:{'words.generated.services'}.\",\"customer_rule_restrict_interior_cleaning\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} @:{'words.generated.interior'} @:{'words.generated.wash'}.\",\"customer_rule_restrict_spot_free\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} @.capitalize:{'words.generated.spot'} @.capitalize:{'words.generated.free'}.\",\"customer_rule_restrict_tank_cleaning\":\"{product} @:{'words.generated.violates'} @:{'words.generated.restricted'} @:{'words.generated.tank'} @:{'words.generated.cleaning'}.\",\"duplicate_vehicle_subscription_charge_same_month\":\"Duplicate @:{'words.generated.vehicle'} @:{'words.generated.subscription'} charges @:{'words.generated.exist'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.same'} @:{'words.generated.month'}.\",\"historical_primary_product_mismatch\":\"{product} @:{'words.generated.differs'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.registration'} @:{'words.generated.number'}'@:{'words.generated.s'} usual @:{'words.generated.product'} {expected_product}.\",\"multiple_fixed_pricing_items_same_month\":\"@.capitalize:{'words.generated.multiple'} @:{'words.generated.fixed'} @:{'words.generated.pricing'} @:{'words.generated.items'} @:{'words.generated.exist'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.same'} @:{'words.generated.month'}.\",\"multiple_identical_primary_vehicle_items\":\"@.capitalize:{'words.generated.ordren'} inneholder @:{'words.generated.flere'} like primaere kjoeretoeyprodukter.\",\"price_mismatch\":\"{product} @:{'words.generated.product'} price @:{'words.generated.differs'} @:{'words.generated.from'} @:{'words.generated.expected'}.\",\"quantity_exceeds_product_limit\":\"{product} quantity exceeds @:{'words.generated.the'} @:{'words.generated.product'} limit.\",\"vehicle_subscription_type_mismatch\":\"{product} @:{'words.generated.does'} @:{'words.generated.not'} match @:{'words.generated.the'} @:{'words.generated.vehicle'} @:{'words.generated.subscription'} @:{'words.generated.type'} {expected_product}.\",\"wash_certificate_attached_without_item\":\"@.capitalize:{'words.generated.vaskesertifikat'} @:{'words.generated.er'} @:{'words.generated.vedlagt'} @:{'words.generated.uten'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vaskesertifikat'}-@:{'words.generated.linje'}.\",\"wash_certificate_item_without_certificate\":\"@.capitalize:{'words.generated.vaskesertifikat'}-@:{'words.generated.linjen'} @:{'words.generated.finnes'} @:{'words.generated.uten'} @:{'words.generated.et'} @:{'words.generated.vaskesertifikat'}.\",\"xlvask_missing_order_link\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'} @:{'words.generated.wash'} @:{'words.generated.is'} neither ignored nor linked @:{'words.generated.to'} @:{'words.generated.an'} @:{'words.generated.order'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.selected'} @:{'words.generated.period'}.\"},\"preview\":{\"entities\":{\"order_items\":\"@:{'words.generated.ordrelinjer'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-opplysninger\"},\"expected_price\":\"@.capitalize:{'words.generated.forventet'} @:{'words.generated.pris'}\",\"start_time\":\"Starttidspunkt\",\"wash_id\":\"@:{'templates.generated.compat.objects.orders.columns.wash_id'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-@:{'words.generated.registrering'}\"},\"status\":{\"false_positive\":\"@.capitalize:{'words.generated.falsk'} positiv\",\"ignored\":\"Ignorert\",\"reason_placeholder\":\"@:{'words.generated.valgfri'} @:{'words.generated.arsak'}\",\"resolved\":\"Lost\"},\"tokens\":{\"expected\":\"@:{'words.generated.forventet'}\",\"xlvask_usage_log\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}-registreringen\"},\"tooltip\":{\"created_by\":\"@.capitalize:{'words.generated.av'}\"}}},\"invoice_transfer_monitor\":{\"clear_all_error\":\"@.capitalize:{'words.generated.avsluttede'} @:{'words.generated.overføringer'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.fjernes'}.\",\"clear_all\":\"@.capitalize:{'words.generated.fjern'} @:{'words.generated.avsluttede'}\",\"clear_error\":\"Overføringen @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.fjernes'}.\",\"clear_one\":\"@.capitalize:{'words.generated.fjern'} @:{'words.generated.overføring'}\",\"empty\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.synlige'} @:{'words.generated.overføringer'}.\",\"load_error\":\"@.capitalize:{'words.generated.overføringer'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.lastes'}.\",\"loading\":\"@.capitalize:{'words.generated.laster'} @:{'words.generated.overføringer'}\",\"menu_title\":\"@.capitalize:{'words.generated.overføringer'}\",\"no_details\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.detaljer'} @:{'words.generated.enna'}.\",\"refreshing\":\"oppdaterer\",\"short\":{\"queued\":\"@:{'templates.generated.compat.global.queue'}\"},\"status\":{\"in_progress\":\"@.upper:{'words.generated.i'} @:{'words.generated.gang'}\"},\"transfer\":\"@.capitalize:{'words.generated.overføring'}\",\"visible\":\"@:{'words.generated.synlige'}\"},\"invoices\":{\"delete_invoice\":\"@.capitalize:{'words.generated.slett'} @:{'words.generated.faktura'}\",\"download_pdf\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.pdf'}\",\"due_date\":\"Forfallodatum\",\"economic\":{\"check_errors\":\"@.capitalize:{'words.generated.sjekk'} @:{'words.generated.feil'}\",\"draft\":\"Fakturautkast\",\"load_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppsto'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.innlasting'} @:{'words.generated.av'} @:{'words.generated.data'}.\",\"update_draft_status\":\"Opdater @:{'words.generated.status'} @:{'words.generated.for'} @:{'words.generated.faktura'} @:{'words.generated.kladder'}\"},\"edit_invoice\":\"@:{'words.generated.rediger'} @:{'words.generated.faktura'}\",\"invoice_number\":\"@.capitalize:{'words.generated.fakturanummer'}\",\"new_invoice\":\"@.capitalize:{'words.generated.fakturaen'}\",\"no_invoices\":\"@.capitalize:{'words.generated.finner'} @:{'words.generated.ingen'} @:{'words.generated.fakturaer'}\",\"overdue\":\"Förfallen\",\"paid\":\"@.capitalize:{'words.generated.betalt'}\",\"partial\":\"Delvis @:{'words.generated.betalt'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.fakturanummer'}, @:{'words.generated.kunde'}\",\"search\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.fakturaer'}...\",\"statuses\":{\"draft\":\"@.capitalize:{'words.generated.utkast'}\",\"draft_transaction\":\"@.capitalize:{'words.generated.transaksjonsutkast'}\"},\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.fakturaer'}\",\"unpaid\":\"Ubetalt\"},\"invoicing_period\":{\"invoice_collection_actions\":{\"actions\":{\"merge_collections\":\"Slå sammen\",\"queue_economic\":\"Fakturer valgte\",\"remove_customer_rule_violations\":\"Fjern regelbrudd\",\"reset_hidden_item_prices\":\"Tilbakestill skjulte priser\",\"split_by_month\":\"Del etter måned\"},\"error_title\":\"Handlingen mislyktes\",\"merge_requires_multiple_text\":\"Velg minst to fakturasamlinger for å slå dem sammen.\",\"merge_requires_multiple_title\":\"Velg flere fakturasamlinger\",\"merge_target_title\":\"Velg målfakturasamling\",\"menu\":{\"collapse_all\":\"Slå sammen alle\",\"expand_all\":\"Utvid alle\",\"label\":\"Fakturasamling handlinger ({count})\",\"modification_section\":\"Endre valgte\",\"select_all\":\"Velg alle\",\"selection_section\":\"Valg\",\"unselect_all\":\"Fjern valg av alle\"},\"preview\":{\"affected_examples\":\"Eksempler på endringer\",\"blocked_title\":\"Handlingen er blokkert\",\"blockers\":\"Blokkeringer\",\"changed\":\"Endringer: {count}\",\"collection_status_line\":\"Fakturasamling #{collection}: {status}\",\"collections\":\"Fakturasamlinger: {count}\",\"confirm_button\":\"Utfør handling\",\"confirmation_label\":\"Skriv {phrase} for å bekrefte\",\"confirmation_mismatch\":\"Skriv nøyaktig {phrase} for å fortsette.\",\"merge_target\":\"Mål: fakturasamling #{id}\",\"no_changes_title\":\"Ingen endringer\",\"order_item_line\":\"Fakturasamling #{collection}, ordre #{order}: {product}\",\"order_move_line\":\"Ordre #{order}: #{source} til #{target}\",\"requires_confirmation\":\"Gå gjennom forhåndsvisningen. Ingen endringer utføres før du skriver {phrase}.\",\"skipped\":\"Hoppet over: {count}\",\"title\":\"Forhåndsvis {action}\"},\"success_text\":\"Utførte {count} endringer.\",\"success_title\":\"Handling fullført\"},\"monthly_split\":{\"button\":\"@.capitalize:{'words.generated.split'} @:{'words.generated.invoices'} @:{'words.generated.by'} @:{'words.generated.month'}\",\"confirm_text\":\"@.capitalize:{'words.generated.split'} non-invoiced collected @:{'words.generated.invoices'} @:{'words.generated.in'} @:{'words.generated.the'} @:{'words.generated.selected'} @:{'words.generated.period'} into @:{'words.generated.monthly'} @:{'words.generated.invoice'} @:{'words.generated.collections'}?\",\"confirm_yes\":\"@:{'words.generated.yes'}, @:{'words.generated.split'} @:{'words.generated.by'} @:{'words.generated.month'}\",\"error_title\":\"@.capitalize:{'words.generated.monthly'} @:{'words.generated.split'} @:{'words.generated.failed'}\",\"preview_apply\":\"@.capitalize:{'words.generated.apply'} @:{'words.generated.split'}\",\"preview_create_new\":\"@.capitalize:{'words.generated.create'} @:{'words.generated.new'} @:{'words.generated.collection'}\",\"preview_existing\":\"@:{'words.generated.keep'} original @:{'words.generated.collection'} #{id}\",\"preview_no_changes_text\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.selected'} @:{'words.generated.period'} @:{'words.generated.has'} @:{'words.generated.no'} @:{'words.generated.invoice'} @:{'words.generated.collections'} @:{'words.generated.that'} @:{'words.generated.will'} @:{'words.generated.be'} changed.\",\"preview_no_changes_title\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.invoices'} @:{'words.generated.to'} @:{'words.generated.split'}\",\"preview_orders\":\"{count} @:{'words.generated.orders'}\",\"preview_skipped_title\":\"@.capitalize:{'words.generated.skipped'}\",\"preview_summary\":\"@:{'words.generated.processed'} {processed} @:{'words.generated.invoice'} @:{'words.generated.collections'}. @.capitalize:{'words.generated.will'} @:{'words.generated.split'} {changed}, @:{'words.generated.skipped'} {skipped}.\",\"preview_title\":\"Preview @:{'words.generated.monthly'} @:{'words.generated.split'}\",\"success_text\":\"@:{'words.generated.processed'} {processed} @:{'words.generated.invoice'} @:{'words.generated.collections'}. @.capitalize:{'words.generated.split'} {changed}, @:{'words.generated.skipped'} {skipped}.\",\"success_title\":\"@.capitalize:{'words.generated.monthly'} @:{'words.generated.split'} @:{'words.generated.completed'}\"},\"multi_month_invoice_warning\":{\"invoice_together\":\"Fakturer samlet\",\"split_by_month\":\"Del opp etter måned\",\"split_error_title\":\"Månedsdeling mislyktes\",\"split_success_text\":\"Behandlet {processed} fakturasamlinger. Delte opp {changed}, hoppet over {skipped}.\",\"split_success_title\":\"Månedsdeling fullført\",\"text\":\"Du er i ferd med å fakturere ordrer fra flere måneder samlet ({months}). Skal de i stedet deles opp etter måned?\",\"title\":\"Ordrer fra flere måneder\"}},\"invoicing\":{\"progress\":{\"failed_to_send\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.sende'} @:{'words.generated.faktura'}\",\"queued\":\"@:{'words.generated.jeg'} @:{'words.generated.kø'}\",\"sending_invoices\":\"Sender @:{'words.generated.fakturaer'}...\",\"succeeded\":\"@.capitalize:{'words.generated.vellykket'}\"}},\"login_qr\":{\"camera_error\":\"Kamerafeil\",\"login_with_password_instead\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.pa'} @:{'words.generated.med'} @:{'words.generated.passord'} @:{'words.generated.i'} @:{'words.generated.stedet'}\",\"login_with_password\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.inn'} @:{'words.generated.med'} @:{'words.generated.passord'}\",\"mobile_only\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.siden'} @:{'words.generated.er'} @:{'words.generated.kun'} @:{'words.generated.tilgjengelig'} @:{'words.generated.pa'} @:{'words.generated.mobile'} enheter. @.capitalize:{'words.generated.bruk'} telefonen @:{'words.generated.eller'} nettbrettet @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.skanne'} @:{'words.generated.qr'}-@:{'words.generated.koden'}.\",\"scan_subtitle\":\"Plasser @:{'words.generated.qr'}-@:{'words.generated.koden'} innenfor rammen\",\"scan_title\":\"@:{'templates.generated.compat.guest.scan_qr'}\",\"unknown_qr_text\":\"@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.skannede'} @:{'words.generated.qr'}-@:{'words.generated.koden'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.gyldig'} @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.siden'}.\",\"unknown_qr_title\":\"@.capitalize:{'words.generated.ukjent'} @:{'words.generated.qr'}-@:{'words.generated.kode'}\"},\"maintenance_menu\":{\"confirm_clear_local\":\"Fjern alle lokale appdata og last inn på nytt nå?\",\"copy_trace_copied\":\"Kopiert\",\"copy_trace_failed\":\"Kopiering feilet\",\"copy_trace\":\"Kopier trace\",\"force_update_clear_hint\":\"Fjerner local storage, session storage, service workers og nettlesercacher.\",\"force_update_clear\":\"Tving oppdatering og fjern alt lokalt\",\"title\":\"Vedlikehold\",\"version\":\"Gjeldende {current} / nyeste {latest}\"},\"messages\":{\"are_you_sure\":\"@:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'}?\",\"cannot_undo\":\"@.capitalize:{'words.generated.denne'} avgjørelsen @:{'words.generated.kan'} @:{'words.generated.ikke'} omgjøres.\",\"confirm_cancel\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} avbryte?\",\"confirm_delete\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.dette'}?\",\"confirmed\":\"Bekräftad framgångsrikt\",\"copied\":\"@.capitalize:{'words.generated.kopiert'} @:{'words.generated.til'} @:{'words.generated.utklippstavlen'}\",\"error\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.oppstod'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.prøv'} @:{'words.generated.igjen'}.\",\"loading\":\"@.capitalize:{'words.generated.laster'} @:{'words.generated.inn'}...\",\"no_results\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.resultater'} @:{'words.generated.funnet'}\",\"please_wait\":\"@:{'words.generated.vanligen'} vänta...\",\"saved\":\"@.capitalize:{'words.generated.lagret'} @:{'words.generated.vellykket'}\",\"sent\":\"@.capitalize:{'words.generated.sendt'} @:{'words.generated.vellykket'}\",\"welcome\":\"@:{'words.generated.velkommen'}\"},\"modals\":{\"action\":\"@.capitalize:{'words.generated.handling'}\",\"active_tasks\":\"@.capitalize:{'words.generated.aktive'} @:{'words.generated.oppgaver'} / @:{'words.generated.handlinger'}\",\"add_condition_rule\":\"@:{'words.generated.legg'} @:{'words.generated.til'} betingelsesregel\",\"add_question_rule\":\"@:{'words.generated.legg'} @:{'words.generated.til'} spørsmålsregel\",\"add_task_rule\":\"@:{'words.generated.legg'} @:{'words.generated.til'} oppgaveregel\",\"all_possible_questions\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.mulige'} @:{'words.generated.spørsmal'} (@:{'words.generated.synlighet'})\",\"all_possible_tasks\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.mulige'} @:{'words.generated.oppgaver'} (@:{'words.generated.synlighet'})\",\"all_questions_answered\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.relevante'} @:{'words.generated.spørsmal'} @:{'words.generated.er'} @:{'words.generated.besvart'}!\",\"answer\":\"Svare\",\"answered_questions\":\"Besvarte @:{'words.generated.spørsmal'}\",\"are_you_sure\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'}?\",\"attached_file\":\"@.capitalize:{'words.generated.vedlagt'} @:{'words.generated.fil'}\",\"attachments_for\":\"@.capitalize:{'words.generated.vedlegg'} @:{'words.generated.for'}\",\"cannot_undo\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.kan'} @:{'words.generated.ikke'} @:{'words.generated.angre'} @:{'words.generated.dette'}!\",\"choose_file\":\"@.capitalize:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.fil'}...\",\"could_not_read_file\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.lese'} @:{'words.generated.filen'}. Kontroller @:{'words.generated.at'} @:{'words.generated.det'} @:{'words.generated.er'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.gyldig'} @:{'words.generated.json'}-@:{'words.generated.fil'}.\",\"delete_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} sletting @:{'words.generated.av'} @:{'words.generated.filen'}.\",\"download_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppsto'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.nedlasting'} @:{'words.generated.av'} @:{'words.generated.filen'}.\",\"export\":\"@:{'templates.generated.compat.common.export'}\",\"fetching_data\":\"@.capitalize:{'words.generated.henter'} @:{'words.generated.data'} ...\",\"fetching_files\":\"@.capitalize:{'words.generated.henter'} @:{'words.generated.filer'} ...\",\"file_deleted\":\"@.capitalize:{'words.generated.filen'} @:{'words.generated.er'} @:{'words.generated.slettet'}.\",\"file_uploaded\":\"@.capitalize:{'words.generated.filen'} @:{'words.generated.er'} @:{'words.generated.lastet'} @:{'words.generated.opp'}.\",\"filename\":\"Filnavn\",\"if_condition\":\"If\",\"invalid_file_format\":\"@:{'words.generated.ugyldig'} filformat. @.capitalize:{'words.generated.filen'} @:{'words.generated.ma'} inneholde @:{'words.replication.host_definite_suffix'} \\\"@:{'words.generated.elementer'}\\\"-matrise.\",\"lane\":\"@:{'words.generated.lane'}\",\"mass_data_warning\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.funksjonen'} @:{'words.generated.kan'} @:{'words.generated.kun'} @:{'words.generated.ta'} @:{'words.generated.import'} @:{'words.generated.av'} @:{'words.generated.data'} @:{'words.generated.i'} spesialformat, @:{'words.replication.article.host_mention'} bør @:{'words.generated.derfor'} @:{'words.generated.ikke'} @:{'words.generated.brukes'} @:{'words.generated.uten'} @:{'words.generated.a'} @:{'words.generated.være'} @:{'words.generated.satt'} @:{'words.generated.inn'} @:{'words.generated.i'} @:{'words.generated.dette'}.\",\"no_active_tasks\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.aktive'} @:{'words.generated.oppgaver'}\",\"no_answers_yet\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.svar'} @:{'words.generated.enna'}\",\"no_conditions_found\":\"@.capitalize:{'words.generated.ingen'} betingelser @:{'words.generated.funnet'}\",\"no_files_attached\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.filer'} knyttet @:{'words.generated.til'} @:{'words.generated.denne'} oppgaven.\",\"no_rules\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.regler'}\",\"no_tasks_found\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.oppgaver'} @:{'words.generated.funnet'}\",\"no\":\"@.upper:{'words.generated.no'}\",\"please_wait\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.vent'} @:{'words.generated.mens'} @:{'words.generated.vi'} @:{'words.generated.laster'} @:{'words.generated.inn'} dataene.\",\"question\":\"@.capitalize:{'words.generated.spørsmal'}\",\"questions\":\"@:{'templates.generated.compat.modals.question'}\",\"remove_passed\":\"@.capitalize:{'words.generated.fjern'} bestått\",\"reset_all\":\"@:{'words.generated.reset'} @:{'words.generated.all'}\",\"rule_types\":{\"IS_FALSE\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.falsk'}\",\"IS_FALSE_OR_ANY_FALSE\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.falsk'} @:{'words.generated.eller'} @.upper:{'words.generated.noen'} @:{'words.generated.falsk'}\",\"IS_FALSE_OR_NOT_SET\":\"@.capitalize:{'words.generated.is'} @:{'words.generated.false'} @:{'words.generated.or'} @:{'words.generated.not'} @:{'words.generated.set'}\",\"IS_NOT_SET\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.satt'}\",\"IS_SET\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.satt'}\",\"IS_TRUE\":\"@:{'words.generated.er'} @:{'words.generated.sant'}\",\"IS_TRUE_OR_ANY_TRUE\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.sant'} @:{'words.generated.eller'} @.upper:{'words.generated.noen'} @:{'words.generated.sant'}\",\"IS_TRUE_OR_NOT_SET\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.sant'} @:{'words.generated.eller'} @:{'words.generated.ikke'} @:{'words.generated.satt'}\"},\"rules_for\":\"@.capitalize:{'words.generated.regler'} @:{'words.generated.for'}\",\"rules\":\"@.capitalize:{'words.generated.regler'}\",\"run_again\":\"Løp @:{'words.generated.igjen'}\",\"save_changes\":\"@.capitalize:{'words.generated.lagre'} @:{'words.generated.endringer'}\",\"select_an_object\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.et'} @:{'words.generated.objekt'}\",\"start_over\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.over'}\",\"test_flow\":\"Testflyt\",\"under_development\":\"@.capitalize:{'words.generated.under'} utvikling...\",\"unknown_customer\":\"@.capitalize:{'words.generated.ukjent'} @:{'words.generated.kunde'}\",\"upload_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppsto'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.opplasting'} @:{'words.generated.av'} @:{'words.generated.filen'}.\",\"yes\":\"@.upper:{'words.generated.ja'}\"},\"nav\":{\"create_transaction\":\"@:{'words.generated.opprett'} @:{'words.generated.transaksjon'}\",\"daily_report\":\"@.capitalize:{'words.generated.daglig'} @:{'words.generated.rapport'}\",\"drafts\":\"@.capitalize:{'words.generated.kladder'}\",\"drivers\":\"@.capitalize:{'words.generated.sjafører'}\",\"notifications\":\"@.capitalize:{'words.generated.varsler'}\",\"overview\":\"@:{'templates.generated.compat.global.summary'}\",\"pos_system\":\"@:{'words.generated.pos'} @:{'words.generated.system'}\",\"select_department\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.avdeling'}\",\"self_wash\":\"@.capitalize:{'words.generated.selvvask'}\",\"wash_log\":\"@.capitalize:{'words.generated.vaskelogg'}\"},\"objects\":{\"bookings\":{\"columns\":{\"economic_customer_number\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.kundenummer'}\",\"pickup\":\"@:{'templates.generated.compat.pagination.pickup'}\",\"wash_certificate_email\":\"@.capitalize:{'words.generated.vaskesertifikat'} @:{'words.generated.e'}-@:{'words.generated.post'}\",\"wash_certificate_pdf\":\"@.capitalize:{'words.generated.vaskesertifikat'} @:{'words.generated.pdf'}\",\"wash_certificate_status\":\"Vaskebevisstatus\",\"wash_certificate_url\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.sertifikat'} @:{'words.generated.url'}\"},\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.bestillinger'}\"},\"branding\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.merkevarebygging'}\",\"multiple\":\"merkevarer\",\"single\":\"@:{'words.generated.merkevarebygging'}\",\"title\":\"@.capitalize:{'words.generated.merkevarebygging'}\"},\"categories\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.kategorier'}\",\"single\":\"@:{'words.generated.kategori'}\",\"title\":\"@:{'templates.generated.compat.superuser.nav.categories'}\"},\"collected_order_invoices\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.innsamlede'} @:{'words.generated.ordrefakturaer'}\",\"multiple\":\"@:{'words.generated.innsamlede'} @:{'words.generated.ordrefakturaer'}\",\"single\":\"@:{'words.generated.hentet'} ordrefaktura\",\"title\":\"@.capitalize:{'words.generated.innsamlede'} @:{'words.generated.ordrefakturaer'}\"},\"columns\":{\"capacity\":\"Kapasitet\",\"category_id\":\"@.capitalize:{'words.generated.kategori'}-@.upper:{'words.generated.id'}\",\"city\":\"@:{'templates.generated.compat.common.city'}\",\"color\":\"Farge\",\"condition\":\"@.capitalize:{'words.generated.betingelse'}\",\"config\":\"Konfig\",\"content\":\"@.capitalize:{'words.generated.innhold'}\",\"country\":\"Land\",\"customer_number\":\"@:{'templates.generated.compat.common.customer_number'}\",\"data\":\"@.capitalize:{'words.generated.data'}\",\"deleted\":\"@.capitalize:{'words.generated.slettet'}\",\"department_id\":\"@:{'templates.generated.compat.common.department_id'}\",\"duration\":\"Varighet\",\"dynamic_image_id\":\"Dynamisk @:{'words.generated.bilde'}-@.upper:{'words.generated.id'}\",\"email\":\"@:{'templates.generated.compat.common.email'}\",\"email_desc\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.e'}-postadresse @:{'words.generated.som'} sjåfør.\",\"external_id\":\"Ekstern @.upper:{'words.generated.id'}\",\"filled_by\":\"@.capitalize:{'words.generated.fylt'} @:{'words.generated.av'}\",\"grant\":\"@.capitalize:{'words.generated.stipend'}\",\"icon\":\"Ikon\",\"image\":\"@.capitalize:{'words.generated.bilde'}\",\"is_entrance\":\"@.capitalize:{'words.generated.er'} inngang\",\"is_exit\":\"@.capitalize:{'words.generated.er'} utgang\",\"key\":\"@.capitalize:{'words.generated.nøkkel'}\",\"max\":\"Maksimum\",\"message\":\"Beskjed\",\"module\":\"Modul\",\"notes\":\"@:{'templates.generated.compat.common.notes'}\",\"order_id\":\"Bestillings-ID\",\"permission\":\"@.capitalize:{'words.generated.tillatelse'}\",\"po_number\":\"@:{'templates.generated.compat.admin.pos.po_number'}\",\"priority\":\"Prioritet\",\"processor\":\"Fakturabehandler\",\"relay_id\":\"@.capitalize:{'words.generated.rele'} @.upper:{'words.generated.id'}\",\"relay_in_id\":\"Inndatarelé-@.upper:{'words.generated.id'}\",\"relay_machine_cleaner_id\":\"@.capitalize:{'words.generated.machine'} cleaner @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_machine_id\":\"Maskinrelé-@.upper:{'words.generated.id'}\",\"relay_machine_program_picker_id\":\"@.capitalize:{'words.generated.machine'} program picker @:{'words.generated.relay'} @.upper:{'words.generated.id'}\",\"relay_out_id\":\"Utgangsrelé-@.upper:{'words.generated.id'}\",\"role_id\":\"@.capitalize:{'words.generated.rolle'}-@.upper:{'words.generated.id'}\",\"rule\":\"Regel\",\"sort_order\":\"Sorteringsrekkefølge\",\"suspended\":\"Suspendert\",\"task\":\"@.capitalize:{'words.generated.oppgave'}\",\"title\":\"Tittel\",\"total_net_amount\":\"@.capitalize:{'words.generated.totalt'} nettobeløp\",\"updated_at\":\"@:{'templates.generated.compat.common.updated'}\",\"url\":\"@:{'words.generated.url'}\",\"user_id\":\"@:{'templates.generated.compat.user_admin.user_id'}\",\"water_usage\":\"@.capitalize:{'words.generated.vannforbruk'} (m3)\",\"zip\":\"@.capitalize:{'words.generated.postnummer'}\"},\"department_categories\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelingskategorier'}\",\"multiple\":\"@:{'words.generated.avdelingskategorier'}\",\"single\":\"avdelingskategori\",\"title\":\"@.capitalize:{'words.generated.avdelingskategorier'}\"},\"department_daily_reports\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.daglige'} @:{'words.generated.rapporter'}\",\"multiple\":\"@:{'words.generated.daglige'} @:{'words.generated.rapporter'}\",\"title\":\"@.capitalize:{'words.generated.daglige'} @:{'words.generated.rapporter'}\"},\"department_gates\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelingsporter'}\",\"multiple\":\"@:{'words.generated.avdelingsporter'}\",\"single\":\"@:{'words.generated.avdelingsport'}\"},\"department_lanes\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.vaskebaner'}\",\"multiple\":\"@:{'words.generated.vaskebaner'}\",\"single\":\"@:{'words.generated.vaskebane'}\"},\"department_notification_sms\":{\"country_codes\":{\"denmark\":\"Danmark (+45)\",\"finland\":\"Finland (+358)\",\"norway\":\"Norge (+47)\",\"sweden\":\"Sverige (+46)\"},\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelingens'} @:{'words.generated.sms'}-@:{'words.generated.varsler'}\",\"multiple\":\"@:{'words.generated.telefonnumre'}\",\"title\":\"@.capitalize:{'words.generated.avdeling'} @:{'words.generated.sms'}-@:{'words.generated.varsler'}\"},\"department_relays\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelingsstafetter'}\",\"single\":\"@:{'words.generated.avdelingsstafett'}\"},\"department_time_bookings_entries\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.timebestillinger'}\",\"single\":\"@:{'words.generated.tidsbestilling'}\"},\"department_time_bookings_opening_hours\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.apningstider'}\",\"single\":\"@:{'words.generated.apningstid'}\"},\"department_time_bookings_types\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.bestillingstyper'}\",\"multiple\":\"@:{'words.generated.bestillingstyper'}\",\"single\":\"bestillingstype\"},\"department_variables\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelingsvariabler'}\",\"multiple\":\"@:{'words.generated.avdelingsvariabler'}\",\"single\":\"avdelingsvariabel\",\"title\":\"@.capitalize:{'words.generated.avdelingsvariabler'}\"},\"departments\":{\"columns\":{\"archived\":\"Arkivert\",\"custom_pricing_only\":\"@:{'templates.generated.compat.departments.pricing.custom_pricing_only'}\",\"dimension\":\"Dimensjon\",\"economic_department\":\"@.upper:{'words.generated.e'}-@:{'words.generated.økonomisk'} @:{'words.generated.avdeling'}\",\"latitude\":\"@:{'templates.generated.compat.departments.form.latitude'}\",\"longitude\":\"@:{'templates.generated.compat.departments.form.longitude'}\",\"slack_webhook\":\"Slakk @.capitalize:{'words.generated.webhook'}\"},\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.avdelinger'}\",\"filters\":{\"active\":\"@.capitalize:{'words.generated.aktive'} @:{'words.generated.avdelinger'}\",\"archived\":\"Arkiverte @:{'words.generated.avdelinger'}\"}},\"economic_departments\":{\"columns\":{\"department_number\":\"@:{'templates.generated.compat.common.department'}\"},\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.avdelinger'}\",\"multiple\":\"@:{'words.generated.e'}-@:{'words.generated.økonomiske'} @:{'words.generated.avdelinger'}\",\"single\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.avdeling'}\",\"title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.økonomiske'} @:{'words.generated.avdelinger'}\"},\"economic_products\":{\"columns\":{\"product_number\":\"Produktnummer\"},\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.produkter'}\",\"multiple\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.produkter'}\",\"single\":\"@:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.produkt'}\",\"title\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.produkter'}\"},\"forms\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.skjemaer'}\",\"multiple\":\"@:{'words.generated.skjemaer'}\",\"single\":\"form\",\"title\":\"@.capitalize:{'words.generated.skjemaer'}\"},\"goals\":{\"columns\":{\"current\":\"@.capitalize:{'words.generated.naværende'}\",\"period\":\"@.capitalize:{'words.generated.periode'}\",\"target\":\"@.capitalize:{'words.generated.mal'}\"},\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.mal'}\",\"multiple\":\"@:{'templates.generated.compat.objects.goals.single'}\",\"single\":\"@:{'words.generated.mal'}\"},\"invoices\":{\"columns\":{\"due_date\":\"Forfallsdato\"},\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.fakturaer'}\",\"multiple\":\"@:{'words.generated.fakturaer'}\",\"single\":\"@:{'words.generated.faktura'}\"},\"module_action_logs\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.modulhandlingslogger'}\",\"multiple\":\"modulhandlinger\",\"single\":\"modulhandling\",\"title\":\"@.capitalize:{'words.generated.modulhandlingslogger'}\"},\"notifications\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.varsler'}\",\"single\":\"melding\"},\"order_bookings\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.ordrebestillinger'}\",\"multiple\":\"@:{'words.generated.bestille'} @:{'words.generated.bestillinger'}\",\"single\":\"ordrebestilling\"},\"orders\":{\"columns\":{\"cashier\":\"Kasserer\",\"reg_2\":\"@.capitalize:{'words.generated.reg'}. 2\",\"reg_3\":\"@.capitalize:{'words.generated.reg'}. 3\",\"wash_id\":\"@.capitalize:{'words.generated.vask'} @.upper:{'words.generated.id'}\"},\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.vaskelogg'}\"},\"permissions\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.tillatelser'}\"},\"product_options\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.produktalternativer'}\",\"multiple\":\"@:{'words.generated.produktalternativer'}\",\"single\":\"produktalternativ\",\"title\":\"@.capitalize:{'words.generated.produktalternativer'}\"},\"products\":{\"columns\":{\"economic_product\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.produkt'}\",\"is_wash\":\"Er vask\",\"piktogram\":\"@:{'templates.generated.compat.objects.columns.icon'}\",\"requires_note\":\"@.capitalize:{'words.generated.krever'} @:{'words.generated.merknad'}\",\"show_in_booking_form\":\"@:{'words.generated.vis'} @:{'words.generated.i'} bestillingsskjema\",\"sort_priority\":\"Sorteringsprioritet (laveste @:{'words.generated.først'})\",\"subscription_allowed\":\"@.capitalize:{'words.generated.abonnement'} @:{'words.generated.tillatt'}\",\"use_category_discount\":\"@.capitalize:{'words.generated.bruk'} kategorirabatt\"},\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.produkter'}\",\"multiple\":\"@:{'words.generated.produkter'}\",\"single\":\"@:{'words.generated.produkt'}\"},\"roles\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.roller'}\"},\"self_serve_condition_rules\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.tilstandsregler'}\",\"multiple\":\"@:{'words.generated.tilstandsregler'}\",\"single\":\"tilstandsregel\"},\"self_serve_conditions\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.selvbetjeningsforhold'}\",\"single\":\"@:{'words.generated.betingelse'}\",\"title\":\"Selvbetjeningsbetingelser\"},\"self_serve_questions\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.selvbetjente'} @:{'words.generated.spørsmal'}\",\"single\":\"@:{'words.generated.spørsmal'}\",\"title\":\"@.capitalize:{'words.generated.selvbetjente'} @:{'words.generated.spørsmal'}\"},\"self_serve_tasks\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.selvbetjente'} @:{'words.generated.oppgaver'}\",\"multiple\":\"@:{'words.generated.oppgaver'}\",\"single\":\"@:{'words.generated.oppgave'}\",\"title\":\"@.capitalize:{'words.generated.selvbetjente'} @:{'words.generated.oppgaver'}\"},\"self_serve_vehicle_conditions\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} kjøretøyforhold\",\"multiple\":\"@:{'words.generated.kjøretøyets'} @:{'words.generated.forhold'}\",\"single\":\"@:{'words.generated.kjøretøyets'} @:{'words.generated.tilstand'}\"},\"subuser_grants\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} underbrukertilskudd\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.generated.og'} @:{'words.generated.administrere'} driverne @:{'words.generated.dine'}.\",\"title\":\"@:{'templates.generated.compat.nav.drivers'}\"},\"vehicles\":{\"columns\":{\"reg\":\"@.capitalize:{'words.generated.reg'}. 1.\"},\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.kjøretøy'}\"},\"xlvask_vehicle_types\":{\"description\":\"@.capitalize:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.kjøretøytyper'}\",\"title\":\"@:{'templates.generated.compat.statistics.vehicle_types'}\"}},\"order_bookings\":{\"add_service\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.tjeneste'}\",\"no_date_selected\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.dato'} @:{'words.generated.valgt'}\",\"no_department_selected\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.avdeling'} @:{'words.generated.valgt'}\"},\"outdated\":{\"gateway\":{\"description\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.blir'} omdirigert @:{'words.generated.til'} @:{'words.generated.samme'} sti @:{'words.generated.pa'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}.\",\"redirect_now\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.na'}\",\"redirecting_in\":\"Omdirigerer @:{'words.generated.om'} {seconds} @:{'words.generated.sekunder'}...\",\"subtitle\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.lenken'} fases @:{'words.generated.ut'}.\",\"title\":\"@.capitalize:{'words.generated.utdatert'} @:{'words.generated.gateway'}\"},\"installation\":{\"android_step_1\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.i'} @:{'words.generated.chrome'}.\",\"android_step_2\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.nettlesermenyen'} @:{'words.generated.og'} @:{'words.generated.velg'} \\\"@.capitalize:{'words.generated.installer'} @:{'words.generated.app'}\\\".\",\"android_step_3\":\"@.capitalize:{'words.generated.bruk'} @:{'words.replication.article.host_mention'} @:{'words.generated.nye'} @:{'words.generated.installerte'} @:{'words.generated.appen'} @:{'words.generated.og'} @:{'words.generated.fjern'} @:{'words.generated.denne'} @:{'words.generated.utdaterte'} @:{'words.generated.appen'}.\",\"android_title\":\"Android-@:{'words.generated.migrering'}\",\"description\":\"@:{'words.generated.truck'} @.capitalize:{'words.generated.wash'} @:{'words.generated.er'} flyttet @:{'words.generated.til'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.installasjon'} @:{'words.generated.pa'} @:{'words.generated.truckwash'}.@:{'words.generated.io'}. @.capitalize:{'words.generated.apne'} @:{'words.replication.article.host_mention'} @:{'words.generated.nye'} @:{'words.generated.siden'} @:{'words.generated.og'} @:{'words.generated.installer'} @:{'words.generated.appen'} @:{'words.generated.pa'} @:{'words.generated.nytt'} @:{'words.generated.pa'} @:{'words.generated.enheten'} @:{'words.generated.din'}.\",\"ios_step_1\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.i'} @:{'words.generated.safari'}.\",\"ios_step_2\":\"@:{'words.generated.trykk'} @:{'words.generated.del'} @:{'words.generated.og'} @:{'words.generated.velg'} \\\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.pa'} hjemskjermen\\\".\",\"ios_step_3\":\"@.capitalize:{'words.generated.bruk'} @:{'words.replication.article.host_mention'} @:{'words.generated.nye'} hjemskjerm-@:{'words.generated.appen'} @:{'words.generated.og'} @:{'words.generated.fjern'} @:{'words.generated.denne'} @:{'words.generated.utdaterte'} @:{'words.generated.appen'}.\",\"ios_title\":\"@:{'words.generated.iphone'}-@:{'words.generated.migrering'}\",\"open_now\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.truckwash'}.@:{'words.generated.io'} @:{'words.generated.na'}\",\"subtitle\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.installerte'} @:{'words.generated.appen'} @:{'words.generated.er'} @:{'words.generated.utdatert'} @:{'words.generated.og'} @:{'words.generated.ma'} migreres.\",\"title\":\"@.capitalize:{'words.generated.utdatert'} @:{'words.generated.installasjon'}\"}},\"pagination\":{\"archive\":\"Arkiv\",\"clear_all\":\"Tøm alle\",\"ascending\":\"Stigende (eldst @:{'words.generated.først'})\",\"booking_status\":\"Bestillingsstatus\",\"bookings_overview\":\"Bestillingsoversikt\",\"descending\":\"Synkende (nyeste @:{'words.generated.først'})\",\"download_excel\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} Excel\",\"error_status\":\"Feilstatus\",\"from_date\":\"@.capitalize:{'words.generated.fra'} @:{'words.generated.dato'}\",\"has_special_agreement\":\"@.capitalize:{'words.generated.har'} @:{'words.generated.spesiell'} @:{'words.generated.avtale'}\",\"has_wash_subscription\":\"@.capitalize:{'words.generated.har'} @:{'words.generated.vaske'} @:{'words.generated.abonnement'}\",\"here\":\"@:{'words.generated.her'}\",\"hide_filters\":\"@:{'words.generated.skjul'} @:{'words.generated.filtre'}\",\"in_progress\":\"@.capitalize:{'words.generated.pagar'}\",\"invoice_per_month\":\"@.capitalize:{'words.generated.faktura'} @:{'words.generated.per'} @:{'words.generated.maned'}\",\"invoice_selection\":\"@.capitalize:{'words.generated.valg'} @:{'words.generated.av'} @:{'words.generated.faktura'}\",\"invoicing_period\":\"Faktureringsperiode\",\"loading\":\"@.capitalize:{'words.generated.laster'} @:{'words.generated.inn'} @:{'words.generated.data'} ...\",\"new_booking\":\"@.capitalize:{'words.generated.ny'} @:{'words.generated.booking'}\",\"next\":\"@.capitalize:{'words.generated.neste'} @:{'words.generated.side'}\",\"no_special_agreement\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.spesiell'} @:{'words.generated.avtale'}\",\"no_wash_subscription\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.vaske'} @:{'words.generated.abonnement'}\",\"not_booked\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.booket'}\",\"not_completed\":\"@:{'templates.generated.compat.global.not_completed'}\",\"not_specified\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.spesifisert'}\",\"not_tank_cleaning\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.tankrengjøring'}\",\"old_booking_notice\":\"@:{'words.generated.merk'}: @.capitalize:{'words.generated.du'} @:{'words.generated.er'} @:{'words.generated.pa'} @:{'words.replication.article.host_mention'} gamle @:{'words.generated.bookingportalen'}, @:{'words.generated.vi'} @:{'words.generated.er'} @:{'words.generated.i'} ferd @:{'words.generated.med'} @:{'words.generated.a'} flytte @:{'words.generated.historiske'} @:{'words.generated.data'} @:{'words.generated.til'} @:{'words.replication.article.host_mention'} @:{'words.generated.nye'}. @.capitalize:{'words.generated.du'} @:{'words.generated.finner'} @:{'words.replication.article.host_mention'} @:{'words.generated.nye'} @:{'words.generated.bookingportalen'}\",\"old\":\"@.capitalize:{'words.generated.gammel'}\",\"only_tank_cleaning\":\"@:{'templates.generated.compat.global.only_tank_cleaning'}\",\"only_today\":\"@.capitalize:{'words.generated.bare'} @:{'words.generated.i'} @:{'words.generated.dag'}\",\"order_direction\":\"@:{'words.generated.bestill'} retning\",\"other_filters\":\"Andre filtre\",\"other_no_tracking\":\"@.capitalize:{'words.generated.annet'} (@:{'words.generated.ingen'} sporing)\",\"page_of\":\"@:{'templates.common.page_of'}\",\"payment_processor\":\"Betalingsbehandler\",\"per_page\":\"@.capitalize:{'words.generated.per'} @:{'words.generated.side'}\",\"pickup\":\"@:{'words.generated.henting'}\",\"previous\":\"@.capitalize:{'words.generated.forrige'} @:{'words.generated.side'}\",\"reload\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.inn'} @:{'words.generated.pa'} @:{'words.generated.nytt'}\",\"show_filters\":\"@:{'words.generated.vis'} @:{'words.generated.filtre'}\",\"show_only_pending\":\"@:{'words.generated.vis'} @:{'words.generated.bare'} @:{'words.generated.venter'}\",\"show_only_today\":\"@.capitalize:{'words.generated.vises'} @:{'words.generated.kun'} @:{'words.generated.i'} @:{'words.generated.dag'}\",\"show_only_todays_pending\":\"@:{'words.generated.vis'} @:{'words.generated.kun'} @:{'words.generated.dagens'} @:{'words.generated.ventende'}\",\"special_agreement\":\"@.capitalize:{'words.generated.spesiell'} @:{'words.generated.avtale'}\",\"to_date\":\"@.capitalize:{'words.generated.til'} dags @:{'words.generated.dato'}\",\"version\":\"Versjon\",\"wash_subscription\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.abonnement'}\"},\"passkeys\":{\"added_successfully\":\"@.capitalize:{'words.generated.passnøkkel'} @:{'words.generated.er'} @:{'words.generated.lagt'} @:{'words.generated.til'}.\",\"delete_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.passnøkkelen'} \\\"{name}\\\"? @.capitalize:{'words.generated.dette'} @:{'words.generated.kan'} @:{'words.generated.ikke'} @:{'words.generated.angres'}.\",\"description\":\"@.capitalize:{'words.generated.bruk'} @:{'words.generated.passnøkler'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.logge'} @:{'words.generated.inn'} sikkert @:{'words.generated.med'} biometri @:{'words.generated.som'} Face @.upper:{'words.generated.id'}, Touch @.upper:{'words.generated.id'} @:{'words.generated.eller'} enhetens PIN-@:{'words.generated.kode'}.\",\"login_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.logge'} @:{'words.generated.inn'} @:{'words.generated.med'} @:{'words.generated.passnøkkel'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.prøv'} @:{'words.generated.igjen'}.\",\"login_with_passkey\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.inn'} @:{'words.generated.med'} @:{'words.generated.passnøkkel'}\",\"name_label\":\"@.capitalize:{'words.generated.passnøkkel'} @:{'words.generated.navn'}\",\"name_placeholder\":\"f.eks. @:{'words.generated.min'} @:{'words.generated.iphone'}, Jobb-laptop\",\"name_required\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.et'} @:{'words.generated.navn'} @:{'words.generated.for'} @:{'words.generated.passnøkkelen'} @:{'words.generated.din'}\",\"no_passkeys\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.lagt'} @:{'words.generated.til'} @:{'words.generated.noen'} @:{'words.generated.passnøkler'} @:{'words.generated.enna'}. @:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.for'} @:{'words.generated.a'} aktivere passordløs @:{'words.generated.palogging'}.\",\"not_supported_browser\":\"Nettleseren @:{'words.generated.din'} @:{'words.generated.støtter'} @:{'words.generated.ikke'} @:{'words.generated.passnøkler'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.prøv'} @:{'words.replication.host_definite_suffix'} moderne @:{'words.generated.nettleser'} @:{'words.generated.som'} @:{'words.generated.chrome'}, @:{'words.generated.safari'}, Firefox @:{'words.generated.eller'} @.capitalize:{'words.generated.edge'}.\",\"not_supported\":\"@.capitalize:{'words.generated.passnøkler'} støttes @:{'words.generated.ikke'} @:{'words.generated.pa'} @:{'words.generated.denne'} @:{'words.generated.enheten'}.\",\"registration_cancelled\":\"@.capitalize:{'words.generated.registrering'} @:{'words.generated.av'} @:{'words.generated.passnøkkel'} @:{'words.generated.ble'} @:{'words.generated.avbrutt'}.\",\"registration_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.registrere'} @:{'words.generated.passnøkkel'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.prøv'} @:{'words.generated.igjen'}.\",\"rename_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.gi'} @:{'words.generated.nytt'} @:{'words.generated.navn'} @:{'words.generated.til'} @:{'words.generated.passnøkkel'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.prøv'} @:{'words.generated.igjen'}.\",\"rename_passkey\":\"@.capitalize:{'words.generated.gi'} @:{'words.generated.nytt'} @:{'words.generated.navn'} @:{'words.generated.til'} @:{'words.generated.passnøkkel'}\",\"rename\":\"@.capitalize:{'words.generated.gi'} @:{'words.generated.nytt'} @:{'words.generated.navn'}\",\"renamed_successfully\":\"@.capitalize:{'words.generated.passnøkkel'} @:{'words.generated.har'} fått @:{'words.generated.nytt'} @:{'words.generated.navn'}.\",\"success\":\"@:{'templates.generated.compat.common.success'}\",\"title\":\"@.capitalize:{'words.generated.passnøkler'}\",\"unnamed\":\"Navnløs @:{'words.generated.passnøkkel'}\"},\"password_reset\":{\"new_password\":\"@.capitalize:{'words.generated.nytt'} @:{'words.generated.passord'}\",\"restart\":\"@.capitalize:{'words.generated.start'} @:{'words.generated.tilbakestill'} @:{'words.generated.passord'} @:{'words.generated.pa'} @:{'words.generated.nytt'}\",\"submit\":\"@:{'words.generated.nullstill'} @:{'words.generated.passord'}\"},\"pos\":{\"add_to_cart\":\"@:{'words.generated.legg'} @:{'words.generated.i'} handlekurv\",\"add_to_order\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.i'} @:{'words.generated.order'}\",\"addon\":{\"included\":\"@.capitalize:{'words.generated.inkludert'}\"},\"apply_discount\":\"Tillämpa @:{'words.generated.rabatt'}\",\"bookings\":{\"customer_number\":\"Kundenr.\"},\"camera_permission_denied\":\"Kameratilgang nektet. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.gi'} @:{'words.generated.tilgang'} @:{'words.generated.til'} @:{'words.generated.kamera'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.skanne'} @:{'words.generated.registreringsnummer'}.\",\"cancel_order\":\"@:{'words.generated.avbryt'} @:{'words.generated.order'}\",\"card\":\"@:{'templates.generated.compat.global.payment.type.card'}\",\"cash\":\"@:{'templates.generated.compat.global.payment.type.cash'}\",\"clear_order\":\"@:{'words.generated.tøm'} @:{'words.generated.ordre'}\",\"confirm_clear_order\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.kansellere'} @:{'words.generated.bestillingen'}?\",\"confirm_complete_order\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.fullføre'} @:{'words.generated.bestillingen'}?\",\"confirm\":{\"confirm_booking\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.bekrefte'} @:{'words.generated.og'} @:{'words.generated.behandle'} @:{'words.generated.denne'} @:{'words.generated.bestillingen'}?\",\"yes_confirm\":\"@.capitalize:{'words.generated.ja'}, @:{'words.generated.bekreft'}\"},\"copy_last_wash_hint\":\"@:{'words.generated.kopierer'} @:{'words.generated.tjeneste'}, @:{'words.generated.tillegg'} @:{'words.generated.og'} @:{'words.generated.ekstra'} @:{'words.generated.varer'} @:{'words.generated.fra'} @:{'words.generated.forrige'} @:{'words.generated.vask'}\",\"copying_last_wash\":\"@:{'words.generated.kopierer'} @:{'words.generated.forrige'} @:{'words.generated.vask'}\",\"create_new_vehicle\":\"@:{'words.generated.opprett'} @:{'words.generated.nytt'} @:{'words.generated.kjøretøy'}\",\"department_not_found\":\"@.capitalize:{'words.generated.avdeling'} @:{'words.generated.ikke'} @:{'words.generated.funnet'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.logg'} @:{'words.generated.inn'} @:{'words.generated.pa'} @:{'words.generated.nytt'}.\",\"email_receipt\":\"@.upper:{'words.generated.e'}-postkvittering\",\"enter_plate\":\"Ange @:{'words.generated.registreringsskylt'}\",\"finish_and_register_new\":\"@:{'words.generated.fullfør'} @:{'words.generated.og'} @:{'words.generated.registrer'} @:{'words.generated.ny'}\",\"finish_and_register\":\"@:{'words.generated.fullfør'} @:{'words.generated.og'} @:{'words.generated.registrer'}\",\"generate_certificate\":\"@:{'words.generated.generer'} @:{'words.generated.sertifikat'}\",\"go_back\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.tilbake'}\",\"go_to_login\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.innlogging'}\",\"hold_to_change_vehicle\":\"@:{'words.generated.hold'} @:{'words.generated.inne'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.endre'} @:{'words.generated.kjøretøy'}\",\"hold_to_choose_additional_items\":\"@:{'words.generated.hold'} @:{'words.generated.inne'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.velge'} @:{'words.generated.ytterligere'} @:{'words.generated.elementer'}\",\"hold_to_copy_last_wash\":\"@:{'words.generated.hold'} @:{'words.generated.inne'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.kopiere'} @:{'words.generated.forrige'} @:{'words.generated.vask'}\",\"images\":\"@.capitalize:{'words.generated.bilder'}\",\"input\":{\"license_plate_manual\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.registreringsnummer'} @:{'words.generated.manuelt'}\"},\"keyboard\":{\"clear\":\"@:{'words.generated.tøm'}\"},\"last_wash_matches_current_selection\":\"@.capitalize:{'words.generated.samme'} @:{'words.generated.tjeneste'}, @:{'words.generated.tillegg'} @:{'words.generated.og'} @:{'words.generated.ekstra'} @:{'words.generated.varer'} @:{'words.generated.som'} @:{'words.generated.forrige'} @:{'words.generated.vask'}\",\"manual_entry\":\"Manuell @:{'words.generated.registrering'}\",\"new_order\":\"@.capitalize:{'words.generated.bestillingen'}\",\"new_sale\":\"@.capitalize:{'words.generated.nytt'} @:{'words.generated.salg'}\",\"no_bookings\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.bestillinger'} @:{'words.generated.funnet'}\",\"no_camera_found\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.kamera'} @:{'words.generated.funnet'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.koble'} @:{'words.generated.til'} @:{'words.generated.et'} @:{'words.generated.kamera'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.skanne'} @:{'words.generated.registreringsnummer'}.\",\"order_summary\":\"Bestillingssammendrag\",\"order\":{\"add_more_products\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.flere'} @:{'words.generated.produkter'}\",\"badges\":{\"amount_due\":\"Skyldig @:{'words.generated.beløp'}\",\"amount_received\":\"@.capitalize:{'words.generated.beløp'} @:{'words.generated.mottatt'}\",\"amount_reserved\":\"@.capitalize:{'words.generated.beløp'} reservert\",\"not_invoiced\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.fakturert'}\",\"saved_for_invoicing\":\"@.capitalize:{'words.generated.lagret'} @:{'words.generated.for'} @:{'words.generated.fakturering'}\",\"tax\":\"@:{'words.generated.mva_mva'}.\"},\"click_to_go_to_booking\":\"@.capitalize:{'words.generated.klikk'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.booking'}\",\"complete_order\":\"@:{'words.generated.fullfør'} @:{'words.generated.bestilling'}\",\"delete_order\":\"@:{'words.generated.delete'} @:{'words.generated.order'}\",\"draft_check_exists\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.sjekk'} @:{'words.generated.om'} @:{'words.generated.utkastet'} @:{'words.generated.til'} @:{'words.generated.faktura'} @:{'words.generated.finnes'} @:{'words.generated.i'} @:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"draft_fetch_error\":\"Fakturautkastet @:{'words.generated.kunne'} @:{'words.generated.ikke'} hentes @:{'words.generated.fra'} @:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"draft_transaction_export_blocked\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.transaksjonen'} @:{'words.generated.bruker'} @:{'words.replication.article.host_mention'} @:{'words.generated.konfigurerte'} @:{'words.generated.utkastkunden'} @:{'words.generated.og'} @:{'words.generated.kan'} @:{'words.generated.derfor'} @:{'words.generated.ikke'} @:{'words.generated.eksporteres'} @:{'words.generated.til'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}.\",\"edit_note\":\"@:{'words.generated.rediger'} @:{'words.generated.notat'}\",\"force_edit\":\"@:{'words.generated.tving'} @:{'words.generated.redigeringsrettigheter'}\",\"get_invoice\":\"@.capitalize:{'words.generated.fa'} @:{'words.generated.faktura'}\",\"include_in_invoice\":\"Fakturainkludering\",\"invoice_override\":{\"exclude\":\"@:{'words.generated.ekskluder'}\",\"force_exclude_help\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.ordren'} @:{'words.generated.blir'} @:{'words.generated.ekskludert'} @:{'words.generated.fra'} @:{'words.generated.fakturering'} @:{'words.generated.uavhengig'} @:{'words.generated.av'} @:{'words.generated.avdeling'}.\",\"force_include_help\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.ordren'} @:{'words.generated.blir'} @:{'words.generated.inkludert'} @:{'words.generated.i'} @:{'words.generated.fakturering'} @:{'words.generated.uavhengig'} @:{'words.generated.av'} @:{'words.generated.avdeling'}.\",\"include\":\"@:{'words.generated.inkluder'}\",\"inherit_exclude_help\":\"@.capitalize:{'words.generated.bruker'} @:{'words.generated.avdelingens'} @:{'words.generated.faktureringsregel'}. @.capitalize:{'words.generated.denne'} @:{'words.generated.ordren'} @:{'words.generated.er'} @:{'words.generated.for'} @:{'words.generated.øyeblikket'} @:{'words.generated.ekskludert'} @:{'words.generated.fra'} @:{'words.generated.fakturering'}.\",\"inherit_help\":\"@.capitalize:{'words.generated.bruker'} @:{'words.generated.avdelingens'} @:{'words.generated.faktureringsregel'}.\",\"inherit_include_help\":\"@.capitalize:{'words.generated.bruker'} @:{'words.generated.avdelingens'} @:{'words.generated.faktureringsregel'}. @.capitalize:{'words.generated.denne'} @:{'words.generated.ordren'} @:{'words.generated.er'} @:{'words.generated.for'} @:{'words.generated.øyeblikket'} @:{'words.generated.inkludert'} @:{'words.generated.i'} @:{'words.generated.fakturering'}.\",\"use_department\":\"@.capitalize:{'words.generated.bruk'} @:{'words.generated.avdeling'}\"},\"linked_booking_id\":\"Koblet @:{'words.generated.bestillings'}-@.upper:{'words.generated.id'}\",\"order_note\":\"Ordrenotat (@.capitalize:{'words.generated.sendt'} @:{'words.generated.til'} @:{'words.generated.kunde'} øverst @:{'words.generated.pa'} @:{'words.generated.faktura'})\",\"print_receipt\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.ut'} @:{'words.generated.kvittering'}\",\"reg\":\"@.capitalize:{'words.generated.reg'}\",\"remove_force_edit\":\"@.capitalize:{'words.generated.fjern'} tvungen @:{'words.generated.redigeringsrettigheter'}\",\"send_to_economic\":\"@.capitalize:{'words.generated.send'} @:{'words.generated.til'} @:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"settings_actions_title\":\"@:{'words.generated.admin'} @:{'words.generated.handlinger'}\",\"settings_description\":\"@:{'words.generated.oppdater'} @:{'words.generated.avdeling'}, @:{'words.generated.opprettet'} @:{'words.generated.tidspunkt'} @:{'words.generated.og'} faktureringsatferd @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.ordren'}.\",\"settings_save_error\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.lagre'} @:{'words.generated.innstillingene'}.\",\"settings_saved\":\"@.capitalize:{'words.generated.innstillinger'} @:{'words.generated.lagret'}.\",\"status\":{\"not_paid\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.betalt'}\",\"partially_paid\":\"Delvist @:{'words.generated.betalt'}\",\"uncollectible\":\"@.capitalize:{'words.generated.ikke'} gjenvinnbart\",\"void\":\"Opkrævning annulleret (void)\"}},\"pay\":\"Betale\",\"payment_by_card\":\"@.capitalize:{'words.generated.betaling'} @:{'words.generated.med'} @:{'words.generated.kort'}\",\"payment_by_cash\":\"@.capitalize:{'words.generated.betaling'} @:{'words.generated.med'} @:{'words.generated.kontanter'}\",\"payment_by_invoice\":\"@.capitalize:{'words.generated.betaling'} @:{'words.generated.med'} @:{'words.generated.faktura'}\",\"payment_method\":\"@:{'templates.generated.compat.global.payment.method'}\",\"payment\":\"@.capitalize:{'words.generated.betaling'}\",\"print_receipt\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.ut'} kvitto\",\"process_booking\":\"@.capitalize:{'words.generated.behandle'} @:{'words.generated.bestilling'}\",\"processing_order\":\"@:{'words.generated.behandler'} @:{'words.generated.bestilling'}...\",\"restrictions\":{\"addons_not_allowed\":\"Tilvalg er ikke tillatt for denne kunden\",\"backend_rejected\":\"Produktet ble avvist av kunderegler og ble ikke lagt til\",\"product_not_allowed\":\"Dette produktet er ikke tillatt for denne kunden\",\"restricted_items_removed\":\"Begrensede tilvalg ble fjernet fra kurven\",\"title\":\"Kunderegel\"},\"receipt\":\"@:{'templates.generated.compat.global.payment.receipt'}\",\"recent\":{\"title\":\"@:{'templates.generated.compat.common.last'}\"},\"reference\":\"@:{'templates.generated.compat.common.reference'}\",\"register_vehicle\":\"@.capitalize:{'words.generated.registrer'} @:{'words.generated.kjøretøy'}\",\"remove_discount\":\"@.capitalize:{'words.generated.fjern'} @:{'words.generated.rabatt'}\",\"remove_from_order\":\"@.capitalize:{'words.generated.et'} fruktbord bestiller\",\"remove_image\":\"@.capitalize:{'words.generated.fjern'} @:{'words.generated.bilde'}\",\"scan_plate\":\"Skanna @:{'words.generated.registreringsskylt'}\",\"search_license_plate\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.registreringsnummer'}\",\"select_product\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.et'} @:{'words.generated.produkt'}\",\"select_products\":\"Välj @:{'words.generated.produkter'}\",\"subtitle\":\"@.capitalize:{'words.generated.registrer'} @:{'words.generated.kjøretøy'} @:{'words.generated.og'} @:{'words.generated.behandle'} @:{'words.generated.betalinger'}\",\"subtotal\":\"@:{'templates.generated.compat.common.subtotal'}\",\"take_photo\":\"@.capitalize:{'words.generated.det'} bildet\",\"title\":\"Kontantsystem\",\"total_amount\":\"@.capitalize:{'words.generated.totalt'} @:{'words.generated.beløp'}\",\"upload_image\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.opp'} @:{'words.generated.bilde'}\",\"vehicle_not_found\":\"@.capitalize:{'words.generated.kjøretøy'} @:{'words.generated.ikke'} @:{'words.generated.funnet'}\",\"vehicle_type\":\"Fordonstyp\",\"vehicle_types\":{\"bus\":\"@:{'templates.generated.compat.vehicles.types.bus'}\",\"lastbil\":\"Lastbil\",\"lift\":\"Løfte\",\"mandskabsvogn\":\"@:{'templates.generated.compat.vehicles.vehicle_types.crew'}\",\"motorcykel\":\"Motorsykkel\",\"sættevogn\":\"@.capitalize:{'words.generated.semitrailer'}\",\"trailer\":\"@.capitalize:{'words.generated.tilhenger'}\",\"traktor\":\"Trekkbil\",\"varevogn\":\"Varebil\"},\"vehicle\":{\"previously_washed\":\"@.capitalize:{'words.generated.tidligere'} vasket\"},\"wash_certificate\":\"@.capitalize:{'words.generated.vaskebevis'}\",\"wash_type\":\"@.capitalize:{'words.generated.vasketype'}\"},\"products\":{\"admin\":{\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.handtere'} @:{'words.generated.produkter'}\",\"title\":\"Produktadministrasjon\"},\"delete_product\":\"@.capitalize:{'words.generated.slett'} @:{'words.generated.produkt'}\",\"edit_product\":\"@:{'words.generated.rediger'} @:{'words.generated.produkt'}\",\"form\":{\"exterior\":\"@.capitalize:{'words.generated.utvendig'}\",\"interior\":\"@.capitalize:{'words.generated.innvendig'}\",\"is_exterior\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.utvendig'}\",\"is_interior\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.innvendig'}\",\"product_name\":\"@.capitalize:{'words.generated.produktnavn'}\",\"save\":\"@:{'templates.generated.compat.common.save'}\",\"vehicle_type\":\"@.capitalize:{'words.generated.kjøretøytype'}\"},\"new_product\":\"@.capitalize:{'words.generated.nytt'} @:{'words.generated.produkt'}\",\"no_products\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.produkter'} @:{'words.generated.funnet'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.produktnavn'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.produkter'}\",\"type\":\"@.capitalize:{'words.generated.type'}\"},\"profile\":{\"email\":{\"enter_email\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.e'}-@:{'words.generated.postadressen'} @:{'words.generated.din'}\",\"enter_password\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.passordet'} @:{'words.generated.ditt'}\",\"invalid_email\":\"@:{'templates.generated.compat.validation.email'}\",\"label\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postadresse'}\",\"new_email_prompt\":\"@.capitalize:{'words.generated.hvilken'} @:{'words.generated.e'}-@:{'words.generated.postadresse'} @:{'words.generated.vil'} @:{'words.generated.du'} bruke?\",\"new_email_text\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.din'} @:{'words.generated.nye'} @:{'words.generated.e'}-@:{'words.generated.postadresse'}.\",\"password_prompt\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.passordet'} @:{'words.generated.ditt'}\",\"saved\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postadresse'} @:{'words.generated.lagret'}\",\"saved_text\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postadressen'} @:{'words.generated.din'} @:{'words.generated.er'} @:{'words.generated.lagret'}.\"},\"error\":{\"save_email_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppsto'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} lagring @:{'words.generated.av'} @:{'words.generated.e'}-@:{'words.generated.postadressen'}.\",\"validation_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppsto'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} validering @:{'words.generated.av'} @:{'words.generated.passordet'}.\"}},\"replication\":{\"actions\":{\"add\":\"@.capitalize:{'words.generated.add'} @:{'words.generated.host'}\",\"promote\":\"Promote\",\"provision\":\"@.capitalize:{'words.generated.provision'}\",\"remove\":\"Remove\",\"rename\":\"@.capitalize:{'words.generated.rename'}\",\"save_and_provision\":\"@.capitalize:{'words.generated.save'} @:{'words.generated.and'} @:{'words.generated.provision'}\",\"test\":\"@.capitalize:{'words.generated.test'}\"},\"blockers\":{\"database_engine_match_required\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.replication.services.database'} @:{'words.generated.and'} @:{'words.generated.replica'} @:{'words.generated.must'} @:{'words.generated.use'} @:{'words.generated.the'} @:{'words.generated.same'} @:{'words.replication.services.database'} family.\",\"database_io_thread_stopped\":\"@.capitalize:{'words.generated.the'} @:{'words.replication.services.database'} @:{'words.generated.replication'} @.upper:{'words.generated.io'} @:{'words.generated.thread'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.running'}. @.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.not'} fetching @:{'words.generated.new'} binlog events @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.replication.services.database'}.\",\"database_primary_missing\":\"@.capitalize:{'words.generated.no'} @:{'words.replication.services.database'} @:{'words.generated.primary'} @:{'words.generated.is'} @:{'words.generated.registered'}.\",\"database_replica_missing_table_count\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.seed'} @:{'words.generated.is'} @:{'words.generated.incomplete'}. {count} @:{'words.generated.tables'} @:{'words.generated.are'} @:{'words.generated.missing'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.replica'}. Examples: {tables}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.and'} @:{'words.generated.fill'} @:{'words.generated.the'} @:{'words.generated.schema'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.replication.services.database'}.\",\"database_replica_missing_tables\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.seed'} @:{'words.generated.is'} @:{'words.generated.incomplete'}. @.capitalize:{'words.generated.missing'} @:{'words.generated.tables'}: {tables}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.and'} @:{'words.generated.fill'} @:{'words.generated.the'} @:{'words.generated.schema'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.replication.services.database'}.\",\"database_replica_not_seeded\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.missing'} @:{'words.generated.tables'} @:{'words.generated.or'} @:{'words.generated.data'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.replication.services.database'}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.create'} @:{'words.generated.and'} @:{'words.generated.fill'} @:{'words.generated.the'} @:{'words.generated.schema'} @:{'words.generated.from'} @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.replication.services.database'}. Technical @:{'words.generated.error'}: {error}\",\"database_replica_schema_only_rows\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.contains'} @:{'words.generated.data'} @:{'words.generated.in'} @:{'words.generated.tables'} where @:{'words.generated.only'} @:{'words.generated.the'} @:{'words.generated.schema'} @:{'words.generated.should'} @:{'words.generated.be'} copied: {tables}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} rebuild @:{'words.generated.the'} @:{'words.generated.replica'} without operational @:{'words.generated.log'} @:{'words.generated.data'}.\",\"database_replica_status_missing\":\"@:{'words.generated.mariadb'} @:{'words.generated.replication'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.configured'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.replica'}. @:{'words.generated.press'} @.capitalize:{'words.generated.provision'} @:{'words.generated.to'} @:{'words.generated.configure'} @:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.again'}.\",\"database_sql_thread_stopped\":\"@.capitalize:{'words.generated.the'} @:{'words.replication.services.database'} @:{'words.generated.replication'} @:{'words.generated.sql'} @:{'words.generated.thread'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.running'}. @.capitalize:{'words.generated.the'} @:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.not'} applying fetched @:{'words.generated.changes'}.\",\"database_threads_required\":\"@.capitalize:{'words.replication.services.database'} @:{'words.generated.replication'} @.upper:{'words.generated.io'} @:{'words.generated.and'} @:{'words.generated.sql'} threads @:{'words.generated.must'} both @:{'words.generated.be'} @:{'words.generated.running'}.\",\"mariadb_binlog_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.enabled'}.\",\"mariadb_binlog_unavailable\":\"@:{'words.generated.mariadb'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.status'} @:{'words.generated.is'} @:{'words.generated.unavailable'}.\",\"mariadb_gtid_position_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.gtid'} position @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.available'}.\",\"mariadb_gtid_replication_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.replication'} @:{'words.generated.must'} @:{'words.generated.use'} @:{'words.generated.gtid'} @:{'words.generated.mode'}.\",\"mariadb_preseed_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.replicas'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.safely'} @:{'words.generated.seeded'} before @:{'words.generated.managed'} @:{'words.generated.replication'} can @:{'words.generated.be'} @:{'words.generated.configured'}.\",\"mariadb_server_id_required\":\"@:{'words.generated.mariadb'} @:{'words.generated.server'}_@:{'words.generated.id'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.configured'}.\",\"mariadb_version_current\":\"@:{'words.generated.mariadb'} 10.6 @:{'words.generated.or'} @:{'words.generated.newer'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.managed'} @:{'words.generated.replication'}. @.capitalize:{'words.generated.current'} @:{'words.generated.server'} @:{'words.generated.reports'} {version}.\",\"mariadb_version_required\":\"@:{'words.generated.mariadb'} 10.6 @:{'words.generated.or'} @:{'words.generated.newer'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.managed'} @:{'words.generated.replication'}.\",\"minio_primary_missing\":\"@.capitalize:{'words.generated.no'} @:{'words.replication.services.minio'} @:{'words.generated.primary'} @:{'words.generated.is'} @:{'words.generated.registered'}.\",\"minio_replica_not_caught_up\":\"@:{'words.replication.services.minio'} @:{'words.generated.replica'} @:{'words.generated.has'} @:{'words.generated.not'} caught @:{'words.generated.up'}.\",\"minio_replication_not_configured\":\"@:{'words.replication.services.minio'} @:{'words.generated.bucket'} @:{'words.generated.replication'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.configured'}.\",\"minio_source_bucket_missing\":\"@:{'words.replication.services.minio'} @:{'words.generated.source'} @:{'words.generated.bucket'} {bucket} @:{'words.generated.is'} @:{'words.generated.missing'}.\",\"minio_space_insufficient\":\"@:{'words.replication.services.minio'} @:{'words.generated.target'} @:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.have'} enough @:{'words.generated.free'} @:{'words.generated.space'}. @.capitalize:{'words.generated.required'} {required} @:{'words.generated.bytes'}, @:{'words.generated.available'} {available} @:{'words.generated.bytes'}.\",\"minio_space_unknown\":\"@:{'words.replication.services.minio'} @:{'words.generated.target'} @:{'words.generated.free'} @:{'words.generated.space'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.be'} determined.\",\"minio_target_bucket_missing\":\"@:{'words.replication.services.minio'} @:{'words.generated.target'} @:{'words.generated.bucket'} {bucket} @:{'words.generated.is'} @:{'words.generated.missing'}.\",\"mysql_binlog_required\":\"@:{'words.generated.mysql'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.enabled'}.\",\"mysql_binlog_unavailable\":\"@:{'words.generated.mysql'} @:{'words.generated.binary'} @:{'words.generated.logging'} @:{'words.generated.status'} @:{'words.generated.is'} @:{'words.generated.unavailable'}.\",\"mysql_clone_primary_required\":\"@:{'words.generated.mysql'} @:{'words.generated.clone'} @:{'words.generated.plugin'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.active'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.primary'} donor.\",\"mysql_clone_target_required\":\"@:{'words.generated.mysql'} @:{'words.generated.clone'} @:{'words.generated.plugin'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.active'} @:{'words.generated.on'} @:{'words.generated.the'} @:{'words.generated.target'}. @.capitalize:{'words.generated.use'} @:{'words.generated.a_2'} preseeded @:{'words.generated.replica'} @:{'words.generated.only'} after @:{'words.generated.the'} @:{'words.generated.target'} @:{'words.generated.has'} @:{'words.generated.been'} @:{'words.generated.safely'} @:{'words.generated.seeded'}.\",\"mysql_gtid_required\":\"@:{'words.generated.mysql'} @:{'words.generated.gtid'} @:{'words.generated.mode'} @:{'words.generated.must'} @:{'words.generated.be'} @.upper:{'words.generated.on'}.\",\"mysql_gtid_unavailable\":\"@:{'words.generated.mysql'} @:{'words.generated.gtid'} @:{'words.generated.mode'} @:{'words.generated.is'} @:{'words.generated.unavailable'}. @.capitalize:{'words.generated.managed'} @:{'words.generated.replication'} @:{'words.generated.requires'} @:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.with'} @:{'words.generated.gtid'} @:{'words.generated.enabled'}.\",\"mysql_server_id_required\":\"@:{'words.generated.mysql'} @:{'words.generated.server'}_@:{'words.generated.id'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.configured'}.\",\"mysql_server_uuid_required\":\"@:{'words.generated.mysql'} @:{'words.generated.server'}_uuid @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.available'}. @.capitalize:{'words.generated.managed'} @:{'words.generated.replication'} @:{'words.generated.requires'} @:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'}.\",\"mysql_unique_server_id\":\"@.capitalize:{'words.replication.services.database'} @:{'words.generated.replica'} @:{'words.generated.must'} @:{'words.generated.have'} @:{'words.generated.a_2'} @:{'words.generated.unique'} @:{'words.generated.server'}_@:{'words.generated.id'}.\",\"mysql8_current\":\"@:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.managed'} @:{'words.generated.replication'}. @.capitalize:{'words.generated.current'} @:{'words.generated.server'} @:{'words.generated.reports'} {version}.\",\"mysql8_required\":\"@:{'words.generated.oracle'} @:{'words.generated.mysql'} 8.@:{'words.generated.x'} @:{'words.generated.is'} @:{'words.generated.required'} @:{'words.generated.for'} @:{'words.generated.managed'} @:{'words.generated.replication'}.\",\"redis_acl_config_required\":\"@:{'words.replication.services.redis'} ACL @:{'words.generated.must'} @:{'words.generated.allow'} @.upper:{'words.generated.config'} @.upper:{'words.generated.get'}, @.upper:{'words.generated.set'}, @:{'words.generated.and'} REWRITE @:{'words.generated.for'} durable @:{'words.generated.replication'} @:{'words.generated.changes'}.\",\"redis_link_down\":\"@:{'words.replication.services.redis'} @:{'words.generated.replica'} @:{'words.generated.link'} @:{'words.generated.to'} @:{'words.generated.primary'} @:{'words.generated.is'} @:{'words.generated.not'} @:{'words.generated.up'}.\",\"redis_not_replica\":\"@:{'words.replication.services.redis'} @:{'words.generated.host'} @:{'words.generated.is'} @:{'words.generated.not'} currently @:{'words.generated.a_2'} @:{'words.generated.replica'}.\",\"redis_ping_failed\":\"@:{'words.replication.services.redis'} PING @:{'words.generated.did'} @:{'words.generated.not'} @:{'words.generated.return'} PONG.\",\"redis_primary_missing\":\"@.capitalize:{'words.generated.no'} @:{'words.replication.services.redis'} @:{'words.generated.primary'} @:{'words.generated.is'} @:{'words.generated.registered'}.\"},\"compose\":{\"compose_file\":\"@:{'words.generated.docker'}-@:{'words.generated.compose'}.yml\",\"env_file\":\".@:{'words.generated.env'}\",\"generate\":\"@:{'words.generated.generate'} @:{'words.generated.compose'}\",\"host_port\":\"@.capitalize:{'words.generated.host'} @:{'words.generated.port'}\",\"next_steps\":\"Next steps\",\"primary_host\":\"@.capitalize:{'words.generated.primary'} @:{'words.generated.host'}\",\"primary_port\":\"@.capitalize:{'words.generated.primary'} @:{'words.generated.port'}\",\"seed_command\":\"@:{'words.generated.manual'} @:{'words.generated.seed'} command (@:{'words.generated.fallback'})\",\"server_id\":\"@.capitalize:{'words.generated.server'} @.upper:{'words.generated.id'}\",\"service_name\":\"@.capitalize:{'words.generated.service'} @:{'words.generated.name'}\",\"steps\":{\"database_register_replica\":\"@.capitalize:{'words.generated.fill'} @.upper:{'words.generated.mariadb'}_@.upper:{'words.generated.primary'}_@.upper:{'words.generated.admin'}_@.upper:{'words.generated.password'} @:{'words.generated.in'} .@:{'words.generated.env'}, wait @:{'words.generated.for'} @:{'words.generated.the'} @:{'words.generated.seed'} @:{'words.generated.service'} @:{'words.generated.to'} @:{'words.generated.complete'}, @:{'words.generated.test'} @:{'words.generated.the'} @:{'words.generated.connection'}, then @:{'words.generated.save'} @:{'words.generated.and'} @:{'words.generated.provision'}.\",\"database_seed\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.generated'} @:{'words.generated.compose'} @:{'words.generated.seed'} @:{'words.generated.service'} imports @:{'words.generated.the'} @:{'words.generated.primary'} @:{'words.replication.services.database'} automatically.\",\"database_server_id\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.a_2'} @:{'words.generated.unique'} @:{'words.generated.server'} @.upper:{'words.generated.id'} @:{'words.generated.for'} each @:{'words.generated.mariadb'} @:{'words.generated.host'}.\",\"deploy\":\"Deploy @:{'words.generated.this'} @:{'words.generated.configuration'} @:{'words.generated.as'} @:{'words.generated.a_2'} @.capitalize:{'words.generated.docker'} @.capitalize:{'words.generated.compose'} @:{'words.generated.or'} Coolify @.capitalize:{'words.generated.compose'} @:{'words.generated.service'}.\",\"minio_buckets\":\"@.capitalize:{'words.generated.the'} setup @:{'words.generated.service'} creates @:{'words.generated.the'} @:{'words.generated.configured'} @:{'words.generated.buckets'} @:{'words.generated.and'} enables versioning.\",\"minio_primary_credentials\":\"@:{'words.generated.keep'} @:{'words.generated.the'} @:{'words.generated.current'} @:{'words.replication.services.minio'} @:{'words.generated.primary'} @:{'words.generated.endpoint'} @:{'words.generated.and'} @:{'words.generated.credentials'} ready; @:{'words.generated.managed'} @:{'words.generated.bucket'} @:{'words.generated.replication'} @:{'words.generated.is'} @:{'words.generated.configured'} during @:{'words.generated.provisioning'}.\",\"redis_primary_password\":\"@.capitalize:{'words.generated.use'} @:{'words.generated.the'} @:{'words.generated.current'} @:{'words.replication.services.redis'} @:{'words.generated.primary'} @:{'words.generated.password'} @:{'words.generated.as'} @.upper:{'words.replication.services.redis'}_@.upper:{'words.generated.primary'}_@.upper:{'words.generated.password'}.\"},\"test_before_save\":\"@.capitalize:{'words.generated.test'} @:{'words.generated.connection'}\",\"test_failed\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.test'} @:{'words.generated.did'} @:{'words.generated.not'} @:{'words.generated.complete'} @:{'words.generated.successfully'}. Review @:{'words.generated.the'} @:{'words.generated.blockers'} below.\",\"test_ok\":\"@.capitalize:{'words.generated.connection'} @:{'words.generated.test'} @:{'words.generated.completed'} @:{'words.generated.successfully'}.\",\"title\":\"@:{'words.generated.generate'} @.capitalize:{'words.generated.docker'} @.capitalize:{'words.generated.compose'}\"},\"fields\":{\"admin_password\":\"@:{'words.generated.admin'} @:{'words.generated.password'}\",\"admin_username\":\"@:{'words.generated.admin'} @:{'words.generated.username'}\",\"allow_preseeded_replica\":\"@.capitalize:{'words.generated.replica'} @:{'words.generated.is'} @:{'words.generated.already'} @:{'words.generated.safely'} @:{'words.generated.seeded'}\",\"buckets\":\"@.capitalize:{'words.generated.buckets'}\",\"console_port\":\"Konsollport\",\"replication_transfer_limit\":\"Overfoeringsgrense\",\"database_index\":\"@.capitalize:{'words.replication.services.database'} index\",\"port\":\"@.capitalize:{'words.generated.port'}\",\"replication_password\":\"@.capitalize:{'words.generated.replication'} @:{'words.generated.password'}\",\"replication_username\":\"@.capitalize:{'words.generated.replication'} @:{'words.generated.username'}\",\"scheme\":\"@.capitalize:{'words.generated.skjema'}\",\"ssl_mode\":\"SSL @:{'words.generated.mode'}\",\"username\":\"@.capitalize:{'words.generated.username'}\"},\"labels\":{\"blockers\":\"@.capitalize:{'words.generated.blockers'}\",\"last_checked\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.checked'}\",\"replicas\":\"@.capitalize:{'words.generated.replicas'}\",\"replication\":\"@.capitalize:{'words.generated.replication'}\"},\"prompts\":{\"rename_host\":\"Enter a new host label\"},\"roles\":{\"inactive\":\"Inactive\",\"primary\":\"@.capitalize:{'words.generated.primary'}\",\"replica\":\"@.capitalize:{'words.generated.replica'}\"},\"states\":{\"coolify_deploying\":\"Coolify deployment is running.\",\"coolify_restarting\":\"Coolify restart is running.\",\"coolify_starting_provisioning\":\"Coolify service is reachable. Starting replication provisioning.\",\"coolify_waiting_for_endpoint\":\"Coolify deployment is running. Waiting for the service port before replication provisioning starts.\",\"deploy_timeout\":\"Coolify deployment is still running. Refresh status to continue.\",\"empty\":\"@.capitalize:{'words.generated.no'} hosts @:{'words.generated.registered'}.\",\"error\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.complete'} @:{'words.generated.replication'} @:{'words.generated.request'}.\",\"loading\":\"@:{'words.generated.loading'} @:{'words.generated.replication'} topology...\",\"provision_timeout\":\"@.capitalize:{'words.generated.provisioning'} @:{'words.generated.is'} still @:{'words.generated.running'}. @.capitalize:{'words.generated.refresh'} @:{'words.generated.status'} @:{'words.generated.to'} continue.\",\"syncing_in_background\":\"Synkroniserer @:{'words.generated.i'} bakgrunnen.\",\"waiting_for_redis_primary_link\":\"@.capitalize:{'words.generated.venter'} @:{'words.generated.pa'} @:{'words.generated.forbindelsen'} @:{'words.generated.til'} @:{'words.replication.article.host_mention'} @:{'words.replication.adjective.primary_host_mention'} @:{'words.replication.services.redis'}-@:{'words.replication.host'}@:{'words.replication.host_definite_suffix'}.\"},\"status\":{\"degraded\":\"Degraded\",\"down\":\"Down\",\"not_configured\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.configured'}\",\"provisioning\":\"@.capitalize:{'words.generated.provisioning'}\",\"removed\":\"@.capitalize:{'words.generated.removed'}\"},\"subtitle\":\"@.capitalize:{'words.generated.managed'} @:{'words.replication.services.database'} @:{'words.generated.and'} @:{'words.replication.services.redis'} @:{'words.generated.replication'}\"},\"roles\":{\"permissions\":{\"access_scope\":\"Tilgangsomrade\",\"actions\":{\"clear_all\":\"Tomm gruppe\",\"reload\":\"Last inn pa nytt\",\"retry\":\"Prov igjen\",\"select_all\":\"Velg gruppe\"},\"columns\":{\"enabled\":\"Aktivert\",\"permission\":\"Tillatelse\",\"route\":\"Rute\",\"status\":\"Status\"},\"department_access_description\":\"Gir tilgang til {name}.\",\"empty\":\"Ingen tillatelser er tilgjengelige.\",\"empty_group\":\"Denne gruppen har ingen tillatelser.\",\"errors\":{\"load\":\"Kunne ikke laste rolletillatelser.\",\"update\":\"En eller flere tillatelser kunne ikke oppdateres. De gjeldende rolletillatelsene ble lastet inn pa nytt.\"},\"filtered_summary\":\"{count} treff\",\"groups\":{\"access\":{\"description\":\"Sidetype- og avdelingstilgang.\",\"label\":\"Tilgang\"},\"bookings\":{\"description\":\"Tillatelser for bookinger, tidsbookinger og planlegging.\",\"label\":\"Bookinger\"},\"customers_users\":{\"description\":\"Tillatelser for kunder, brukere, ansatte, roller og innlogging.\",\"label\":\"Kunder og brukere\"},\"departments_operations\":{\"description\":\"Avdelingsdrift, baner, releer, varsler, rapporter og mal.\",\"label\":\"Avdelinger og drift\"},\"invoicing_economic\":{\"description\":\"Tillatelser for fakturaer, faktureringsperioder, innkreving og e-conomic.\",\"label\":\"Fakturering og e-conomic\"},\"orders_pos\":{\"description\":\"Tillatelser for ordrer, POS, betalinger og ordrelinjer.\",\"label\":\"Ordrer og POS\"},\"other\":{\"description\":\"Tillatelser som ikke matcher en annen gruppe.\",\"label\":\"Annet\"},\"products_pricing\":{\"description\":\"Tillatelser for produkter, priser, rabatter og valuta.\",\"label\":\"Produkter og priser\"},\"selfserve_edge\":{\"description\":\"Tillatelser for selvbetjening, vask, skannere, gatewayer og edge-utstyr.\",\"label\":\"Selvbetjening og edge\"},\"system_config\":{\"description\":\"System, konfigurasjon, release, replikering og integrasjoner.\",\"label\":\"System og konfigurasjon\"}},\"no_description\":\"Ingen beskrivelse er tilgjengelig.\",\"no_search_results\":\"Ingen tillatelser matcher soket.\",\"page_access\":{\"admin\":{\"description\":\"Gir tilgang til administrasjonssider.\",\"label\":\"Admin\"},\"superuser\":{\"description\":\"Gir tilgang til superbrukersider.\",\"label\":\"Superbruker\"},\"user\":{\"description\":\"Gir tilgang til brukersider.\",\"label\":\"Bruker\"}},\"search_label\":\"Sok i tillatelser\",\"search_placeholder\":\"Sok pa label, nokkel, beskrivelse, rute eller metode\",\"selected_summary\":\"{selected} av {total} valgt\",\"status\":{\"disabled\":\"Deaktivert\",\"enabled\":\"Aktivert\"},\"subtitle\":\"Rolletillatelser\",\"title\":\"Tillatelser for rolle {id}\",\"title_with_name\":\"Tillatelser for {name}\"},\"templates\":{\"apply\":\"Bruk {template}-mal\",\"confirm_button\":\"Bruk mal\",\"confirm_text\":\"Legg til {count} manglende tillatelser fra {template} til {role}?\",\"confirm_title\":\"Bruke tillatelsesmal?\",\"error_text\":\"En eller flere tillatelser fra {template} kunne ikke legges til i {role}. Rollelisten ble lastet inn pa nytt.\",\"error_title\":\"Kunne ikke bruke mal\",\"load_error\":\"Kunne ikke laste maler. Prov igjen\",\"loading\":\"Laster maler...\",\"section\":\"Begrenset backoffice-maler\",\"success_text\":\"La til {count} tillatelser fra {template} i {role}.\",\"success_title\":\"Mal brukt\",\"unavailable\":\"Ingen maler er tilgjengelige.\",\"up_to_date_text\":\"{role} har allerede alle tillatelser i {template}.\",\"up_to_date_title\":\"Rollen er oppdatert\"},\"subtitle\":\"@.capitalize:{'words.generated.user'} roles\"},\"self_wash\":{\"add_as_new_vehicle\":\"@:{'words.generated.legg'} @:{'words.generated.til'} {plate} @:{'words.generated.som'} @:{'words.generated.nytt'} @:{'words.generated.kjøretøy'}\",\"answer_questions\":\"@.capitalize:{'words.generated.svar'} @:{'words.generated.pa'} @:{'words.generated.spørsmal'}\",\"assistance\":\"Assistanse\",\"available\":\"@.capitalize:{'words.generated.tilgjengelig'}\",\"configure_wash\":\"@:{'words.generated.konfigurer'} @:{'words.generated.vask'}\",\"confirm_and_start\":\"@.capitalize:{'words.generated.bekreft'} @:{'words.generated.og'} @:{'words.generated.start'} @:{'words.generated.vask'}\",\"department_no_self_wash_in_staffed_hours\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.avdelingen'} tilbyr @:{'words.generated.ikke'} @:{'words.generated.selvvask'} @:{'words.generated.i'} bemannede @:{'words.generated.apningstider'}.\",\"department_no_self_wash\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.avdelingen'} @:{'words.generated.støtter'} @:{'words.generated.ikke'} @:{'words.generated.selvvask'}.\",\"enter_customer_number\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.kundenummer'}\",\"enter_registration_number\":\"@.capitalize:{'words.generated.skriv'} inn @:{'words.generated.registreringsnummer'}\",\"finishing_wash_exit_opening\":\"Avslutter @:{'words.generated.vask'}, porten aapnes @:{'words.generated.automatisk'}\",\"follow_steps\":\"@.capitalize:{'words.generated.følg'} @:{'words.generated.de'} 6 trinnene @:{'words.generated.for'} @:{'words.generated.best'} resultat:\",\"loading_department\":\"@.capitalize:{'words.generated.laster'} @:{'words.generated.avdelingen'}...\",\"loading_types\":\"@.capitalize:{'words.generated.laster'} @:{'words.generated.inn'} @:{'words.generated.typer'}...\",\"loading_vehicle_types\":\"@.capitalize:{'words.generated.laster'} @:{'words.generated.inn'} @:{'words.generated.tilgjengelige'} @:{'words.generated.kjøretøytyper'}...\",\"lane_unavailable\":\"Vaskebanen er ikke tilgjengelig\",\"machine\":\"@.capitalize:{'words.generated.maskin'}\",\"no_departments_found\":\"@:{'templates.generated.compat.departments.no_departments'}\",\"occupied\":\"Okkupert\",\"open_property_access_gate\":\"@:{'words.generated.aapne'} @:{'words.generated.eiendommens'} inngangsport\",\"open_property_exit_gate\":\"@:{'words.generated.aapne'} @:{'words.generated.eiendommens'} utgangsport\",\"perform_wash\":\"Utfør @:{'words.generated.vask'}\",\"questions_answered\":\"@.capitalize:{'words.generated.spørsmal'} @:{'words.generated.besvart'}\",\"select_from_vehicles\":\"@.capitalize:{'words.generated.velg'} {plate} @:{'words.generated.fra'} @:{'words.generated.kjøretøyene'} @:{'words.generated.dine'}\",\"select_vehicle_type\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.kjøretøytype'}\",\"select_vehicle\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.kjøretøy'}\",\"select_your_vehicle\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.kjøretøyet'} @:{'words.generated.ditt'}\",\"start_machine\":\"@.capitalize:{'words.generated.start'} maskinen\",\"start_wash_desc\":\"Gå direkte @:{'words.generated.til'} avdelingens vaskebaner @:{'words.generated.og'} start @:{'words.replication.host_definite_suffix'} @:{'words.generated.vask'} @:{'words.generated.for'} @:{'words.generated.ditt'} @:{'words.generated.kjøretøy'}. @.capitalize:{'words.generated.velg'} kjøretøyet @:{'words.generated.ditt'} @:{'words.generated.og'} @:{'words.generated.ønsket'} vasketype @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.komme'} @:{'words.generated.i'} gang.\",\"start_wash\":\"@:{'templates.generated.compat.guest.start_wash'}\",\"total_time\":\"@:{'words.generated.total'} @:{'words.generated.tid'}: {minutes} minutter @:{'words.generated.og'} {seconds} @:{'words.generated.sekunder'}\",\"unavailable\":\"@.capitalize:{'words.generated.utilgjengelig'}\",\"vehicle_step_missing_customer_number\":\"Skriv inn kundenummer for a fortsette.\",\"vehicle_step_missing_department\":\"Vent til naermeste avdeling er lastet inn for du fortsetter.\",\"vehicle_step_missing_registration\":\"Skriv inn registreringsnummer for a fortsette.\",\"vehicle_step_missing_vehicle_type\":\"Velg en tilgjengelig kjoretoytype for a fortsette.\",\"wash_completed_contact\":\"@.capitalize:{'words.generated.vi'} håper @:{'words.generated.du'} @:{'words.generated.er'} fornøyd @:{'words.generated.med'} resultatet. @.capitalize:{'words.generated.hvis'} @:{'words.generated.du'} @:{'words.generated.trenger'} @:{'words.generated.ytterligere'} @:{'words.generated.hjelp'}, @:{'words.generated.vennligst'} @:{'words.generated.kontakt'} @:{'words.generated.vare'} @:{'words.generated.ansatte'}.\",\"wash_completed_message\":\"@.capitalize:{'words.generated.vasken'} @:{'words.generated.din'} @:{'words.generated.er'} @:{'words.generated.na'} @:{'words.generated.fullført'}! @:{'words.generated.takk'} @:{'words.generated.for'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.bruker'} @:{'words.generated.var_2'} @:{'words.generated.selvbetjente'} @:{'words.generated.vask'}.\",\"wash_completed\":\"@:{'words.generated.vasking'} @:{'words.generated.fullført'}\",\"wash_in_progress\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.pagar'}\"},\"settings\":{\"appearance\":\"Utseende\",\"billing\":\"@.capitalize:{'words.generated.fakturering'}\",\"change_password\":\"Ándra @.capitalize:{'words.generated.losenord'}\",\"confirm_password\":\"Bekräfta @:{'words.generated.losenord'}\",\"current_password\":\"@.capitalize:{'words.generated.gjeldende'} @:{'words.generated.passord'}\",\"date_format\":\"Datoformat\",\"disable\":\"@.capitalize:{'words.generated.deaktiver'}\",\"discard_changes\":\"@:{'words.generated.ignorer'} @:{'words.generated.endringer'}\",\"email_notifications\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postvarsler'}\",\"enable\":\"@:{'words.generated.aktiver'}\",\"general\":\"Allmänt\",\"integrations\":\"@.capitalize:{'words.generated.integrasjoner'}\",\"new_password\":\"@.capitalize:{'words.generated.nytt'} @:{'words.generated.losenord'}\",\"notifications\":\"@:{'templates.generated.compat.nav.notifications'}\",\"password_change\":{\"confirm_password\":\"@.capitalize:{'words.generated.bekreft'} @:{'words.generated.passord'}\",\"current_password\":\"@.capitalize:{'words.generated.naværende'} @:{'words.generated.passord'}\"},\"push_notifications\":\"Push-@:{'words.generated.varsler'}\",\"save_changes\":\"@:{'templates.generated.compat.modals.save_changes'}\",\"section\":{\"password\":\"@:{'templates.generated.compat.global.password'}\",\"password_desc\":\"Passordet brukes @:{'words.generated.til'} @:{'words.generated.a'} autentisere @:{'words.generated.api'}-tilkoblingen.\",\"subscription\":\"@.capitalize:{'words.generated.abonnement'}\"},\"security\":\"@.capitalize:{'words.generated.sikkerhet'}\",\"sms_notifications_desc\":\"Motta SMS-varsler @:{'words.generated.for'} ulike arrangementer.\",\"sms_notifications\":\"@:{'words.generated.sms'}-@:{'words.generated.varsler'}\",\"subscription\":{\"expires_at\":\"Utløper\"},\"theme\":\"Han\",\"time_format\":\"Tidsformat\",\"timezone\":\"Tidssone\",\"two_factor\":\"Tvåfaktorsautentisering\"},\"statistics\":{\"average\":\"Gjennomsnittlig\",\"avg_revenue_per_wash\":\"@.capitalize:{'words.generated.gj'}.@:{'words.generated.snitt'} @:{'words.generated.omsetning'} @:{'words.generated.per'} @:{'words.generated.vask'}\",\"avg_wash_time\":\"@.capitalize:{'words.generated.gj'}.@:{'words.generated.snitt'} vasketid\",\"chart\":{\"revenue_over_time\":\"@.capitalize:{'words.generated.omsetning'} @:{'words.generated.over'} @:{'words.generated.tid'}\",\"washes_over_time\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.over'} @:{'words.generated.tid'}\"},\"compare\":\"@.capitalize:{'words.generated.sammenligning'}\",\"customer_types\":\"Kundetyper\",\"day\":\"@:{'words.generated.dag'}\",\"days\":\"@:{'words.generated.dager'}\",\"growth\":\"Vekst\",\"no_data\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.data'} @:{'words.generated.tilgjengelig'}\",\"overview\":{\"departments_today\":\"@.capitalize:{'words.generated.avdelinger'} @:{'words.generated.i'} @:{'words.generated.dag'}\",\"departments_today_desc\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.hvordan'} @:{'words.generated.det'} @:{'words.generated.gar'} @:{'words.generated.med'} @:{'words.generated.avdelingene'} @:{'words.generated.dine'} @:{'words.generated.i'} @:{'words.generated.dag'}\",\"no_departments\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.avdelinger'}\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.hvordan'} @:{'words.generated.det'} @:{'words.generated.gar'} @:{'words.generated.med'} @:{'words.generated.avdelingene'} @:{'words.generated.dine'}\"},\"popular_products\":\"@:{'words.generated.populære'} @:{'words.generated.produkter'}\",\"popular_times\":\"@:{'words.generated.populære'} tider\",\"revenue\":\"Intekter\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.statistikk'}\",\"sum\":\"Sum\",\"table\":\"@.capitalize:{'words.generated.tabell'}\",\"top_customers_by_revenue\":\"@:{'words.generated.topp'} @:{'words.generated.kunder'} @:{'words.generated.etter'} @:{'words.generated.omsetning'}\",\"top_customers_by_washes\":\"@:{'words.generated.topp'} @:{'words.generated.kunder'} @:{'words.generated.etter'} @:{'words.generated.vask'}\",\"vehicle_types\":\"@.capitalize:{'words.generated.kjøretøytyper'}\",\"washes\":\"Tvätter\"},\"super_user_dashboard\":{\"create_department\":\"@:{'words.generated.opprett'} @:{'words.generated.avdeling'}\",\"create_number_plate_scan\":\"@:{'words.generated.lag'} @:{'words.generated.skanning'} @:{'words.generated.av'} @:{'words.generated.nummerskilt'}\",\"create_order_booking\":\"@:{'words.generated.opret'} @:{'words.generated.ordre'} @:{'words.generated.booking'}\",\"create_order\":\"@:{'words.generated.opret'} @:{'words.generated.ordre'}\",\"create_product\":\"@:{'words.generated.opret'} @:{'words.generated.produkt'}\",\"get_department_list\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} avdelingsliste\",\"get_orders\":\"@:{'words.generated.hent'} @:{'words.generated.ordrer'}\",\"get_session_data\":\"@:{'words.generated.hent'} øktdata\",\"get_user_list\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} brukerliste\",\"run_cron\":\"Kør cron\",\"title\":\"Super @.capitalize:{'words.generated.user'} @:{'words.generated.dashboard'}\"},\"superuser_dashboard\":{\"bookings\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.bestillinger'} @:{'words.generated.pa'} @:{'words.generated.tvers'} @:{'words.generated.av'} @:{'words.generated.avdelinger'}\"},\"calendar\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.kalender'} @:{'words.generated.for'} @:{'words.generated.alle'} @:{'words.generated.avdelinger'}\"},\"configuration\":{\"backups\":\"Sikkerhetskopier\",\"economic\":\"@.capitalize:{'words.generated.økonomisk'}\",\"fxrates\":\"@:{'templates.generated.compat.configuration.fxrates.conversion_rates'}\",\"limble\":\"Lemme\",\"mailersend\":\"@:{'words.generated.mailersend'}\",\"motor_api\":\"@:{'words.generated.api'}-motorer\",\"subtitle\":\"Systemkonfigurering\",\"virkdata\":\"@.capitalize:{'words.generated.aktive'} @:{'words.generated.data'}\"},\"customers\":{\"edit_customer_title\":\"@:{'templates.generated.compat.customers.edit_customer'}\",\"new_customer_subtitle\":\"@:{'words.generated.opprett'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.kunde'}\",\"new_customer_title\":\"@:{'templates.generated.compat.common.customer_picker.select_new_customer'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.kunder'} @:{'words.generated.pa'} @:{'words.generated.tvers'} @:{'words.generated.av'} @:{'words.generated.avdelinger'}\"},\"departments\":{\"add\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.avdeling'}\",\"delete\":\"@:{'templates.generated.compat.departments.delete_department'}\",\"edit\":\"@:{'templates.generated.compat.departments.edit_department'}\",\"new_department_subtitle\":\"@:{'words.generated.opprett'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.avdeling'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrere'} @:{'words.generated.avdelinger'}\"},\"employees\":{\"new_employee_subtitle\":\"@:{'words.generated.opprett'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.ny'} @:{'words.generated.ansatt'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.ansatte'} @:{'words.generated.pa'} @:{'words.generated.tvers'} @:{'words.generated.av'} @:{'words.generated.avdelinger'}\"},\"home\":{\"subtitle\":\"@:{'words.generated.valkommen'} @:{'words.generated.till'} administratörspanelen\",\"title\":\"@:{'words.generated.admin'} @:{'words.generated.dashboard'}\"},\"invoices\":{\"subtitle\":\"@.capitalize:{'words.generated.handtere'} @:{'words.generated.fakturaer'}\"},\"menu\":{\"calendar\":\"@.capitalize:{'words.generated.kalender'}\",\"pos\":\"@:{'words.generated.pos'}\"},\"products\":{\"add\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.produkt'}\",\"addons_subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.produkttillegg'} @:{'words.generated.pa'} @:{'words.generated.tvers'} @:{'words.generated.av'} @:{'words.generated.avdelinger'}\",\"addons\":{\"add\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.alternativer'}\",\"delete\":\"@.capitalize:{'words.generated.slett'} @:{'words.generated.alternativer'}\",\"edit\":\"@:{'words.generated.rediger'} @:{'words.generated.alternativer'}\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.produktalternativer'}\"},\"delete\":\"@:{'templates.generated.compat.products.delete_product'}\",\"subtitle\":\"@:{'words.generated.hantera'} @:{'words.generated.produkter'}\"},\"roles\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} brukerroller\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} systeminnstillinger\"},\"sidebar\":{\"billing_periods\":\"Faktureringsperioder\",\"xlvask\":\"@:{'words.generated.xl'} @.capitalize:{'words.generated.vask'}\"},\"statistics\":{\"subtitle\":\"@.capitalize:{'words.generated.med'} @:{'words.generated.statistikk'}\"},\"users\":{\"add\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.bruker'}\",\"delete\":\"@.capitalize:{'words.generated.slett'} @:{'words.generated.bruker'}\",\"edit\":\"@:{'words.generated.rediger'} @:{'words.generated.bruker'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.users.subtitle'}\"},\"vehicles\":{\"subtitle\":\"@:{'words.generated.hantera'} @:{'words.generated.fordon'}\"},\"wash_log\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.vaskelogg'} @:{'words.generated.pa'} @:{'words.generated.tvers'} @:{'words.generated.av'} @:{'words.generated.avdelinger'}\"},\"department_pages\":{\"branding\":{\"subtitle\":\"Brand identity, contact details, and department profile\"},\"categories\":{\"subtitle\":\"Browse and maintain the department's category catalogue\"},\"gateways\":{\"subtitle\":\"Gateway coverage, lane bindings, scanners, and relay health\"},\"modules\":{\"subtitle\":\"Toggle department-wide module settings and integration flags\",\"variables\":{\"bookingsystem_enabled\":\"Bookingsystem enabled\",\"bookingsystem_time_based_enabled\":\"Time-based bookingsystem enabled\",\"bookingsystem_time_based_password\":\"Time-based bookingsystem password\",\"exclude_from_invoicing\":\"Excluded from invoicing\",\"workfeed_department_id\":\"Workfeed department\"}},\"pricing\":{\"subtitle\":\"Review the department's explicit price overrides\"},\"stripe\":{\"readers\":{\"subtitle\":\"Payment terminals currently associated with this department\"},\"setup\":{\"subtitle\":\"Assign the Stripe location used by this department\"}}}},\"superuser_invoice_distribution\":{\"actions\":{\"next_month\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.neste'} @:{'words.generated.maned'}\",\"open_month\":\"@:{'words.generated.apen'} @:{'words.generated.maned'}\",\"previous_month\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.forrige'} @:{'words.generated.maned'}\",\"reset_filters\":\"@:{'words.generated.reset'} @:{'words.generated.filters'}\"},\"aria\":{\"compare_table_caption\":\"Fakturasammenligningsresultater sortert @:{'words.generated.etter'} @:{'words.generated.uoverensstemmelser'} @:{'words.generated.og'} @:{'words.generated.advarsler'}\",\"customer_table_caption\":\"Tildelingsrader @:{'words.generated.pa'} kundenivå @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.maneden'}\",\"department_table_caption\":\"Tildelingsdeling @:{'words.generated.pa'} avdelingsnivå @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.maneden'}\",\"month_comparison_caption\":\"@.capitalize:{'words.generated.maned'}-@:{'words.generated.over'}-@:{'words.generated.maned'} sammenligningstabell @:{'words.generated.for'} nøkkelberegninger\",\"month_table_caption\":\"@.capitalize:{'words.generated.manedlige'} distribusjonstotaler @:{'words.generated.med'} kildemiks @:{'words.generated.og'} hurtigåpningshandlinger\",\"open_month\":\"@.capitalize:{'words.generated.apne'} distribusjonsdetaljer @:{'words.generated.for'} {month}\",\"sort_month\":\"@:{'words.generated.sorter'} @:{'words.generated.tabell'} @:{'words.generated.etter'} @:{'words.generated.maned'}\",\"sort_total\":\"@:{'words.generated.sorter'} tabellen @:{'words.generated.etter'} totalbeløp\",\"source_mix_row\":\"Kildesammensetning @:{'words.generated.for'} {month}\",\"trend_chart\":\"Fordelingstrenddiagram @:{'words.generated.etter'} @:{'words.generated.maned'}\"},\"compare\":{\"compare_month\":\"@:{'words.generated.sammenlign'} @:{'words.generated.med'} @:{'words.generated.maned'}\",\"line_mode_disclaimer\":\"@.capitalize:{'words.generated.linje'}-@:{'words.generated.for'}-@:{'words.generated.linje'}-modus @:{'words.generated.bruker'} @:{'words.generated.tilgjengelige'} sammenligningsmetadata @:{'words.generated.og'} advarselslinjer @:{'words.generated.fra'} @:{'words.generated.api'}-svaret.\",\"mismatches\":\"@.capitalize:{'words.generated.uoverensstemmelser'}\",\"mode\":\"Sammenligningsmodus\",\"modes\":{\"invoice_total\":\"@.capitalize:{'words.generated.kun'} fakturasum\",\"line_by_line\":\"@.capitalize:{'words.generated.linje'} @:{'words.generated.for'} @:{'words.generated.linje'} oppsummering\"},\"month_to_month\":\"@.capitalize:{'words.generated.maned'}-@:{'words.generated.over'}-@:{'words.generated.maned'} @:{'words.generated.sammenligning'}\",\"run\":\"@:{'words.generated.sammenlign'} @:{'words.generated.alle'} lokale @:{'words.generated.fakturaer'} @:{'words.generated.med'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"run_short\":\"@:{'words.generated.kjør'} @:{'words.generated.sammenligne'}\",\"sorted_hint\":\"@:{'words.generated.rader'} sorteres @:{'words.generated.etter'} @:{'words.generated.uoverensstemmelser'} @:{'words.generated.og'} advarselsgrad @:{'words.generated.først'}.\",\"status_label\":\"Sammenligningsstatus\",\"status\":{\"mismatch\":\"Mismatch\",\"ok\":\"Kamp\"},\"total_checked\":\"@.capitalize:{'words.generated.fakturaer'} sjekket\",\"total_difference\":\"@:{'words.generated.total'} forskjell\",\"warning_details\":\"@.capitalize:{'words.generated.advarsler'} @:{'words.generated.for'} @:{'words.generated.faktura'} #{invoiceId}\"},\"departments\":{\"allocation_hint\":\"@.capitalize:{'words.generated.bokført'} @:{'words.generated.tildeling'} estimeres @:{'words.generated.fra'} @:{'words.generated.hver'} @:{'words.generated.avdelings'} distribusjonsandel.\"},\"empty\":{\"no_compare_results\":\"@.capitalize:{'words.generated.ingen'} sammenligningsresultater @:{'words.generated.enna'}\",\"no_comparison_months\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.maned'} @:{'words.generated.tilgjengelig'}\",\"no_customers\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.kunder'} @:{'words.generated.samsvarer'} @:{'words.generated.med'} @:{'words.generated.gjeldende'} @:{'words.generated.filtre'}\",\"no_departments\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.avdelinger'} @:{'words.generated.denne'} @:{'words.generated.maneden'}\",\"no_month_comparison\":\"@.capitalize:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} sammenligningsmåned @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.se'} deltas.\",\"no_months\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.maneder'} @:{'words.generated.a'} @:{'words.generated.vise'}\"},\"errors\":{\"compare_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.fullføre'} @:{'words.generated.sammenligningen'}\",\"month_load_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.laste'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.maneden'}\",\"overview_load_failed\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.laste'} @:{'words.generated.manedlig'} distribusjonsoversikt\"},\"filters\":{\"all_departments\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.avdelinger'}\",\"all_sources\":\"@.capitalize:{'words.generated.alle'} kilder\",\"all_years\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.ar'}\",\"search\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.maned'}\",\"search_customer\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.kunde'}\",\"search_customer_placeholder\":\"@:{'words.generated.kundens'} @:{'words.generated.navn'} @:{'words.generated.eller'} @:{'words.generated.nummer'}...\",\"search_department\":\"Søkeavdelingen\",\"search_department_placeholder\":\"@.capitalize:{'words.generated.avdelingsnavn'}...\",\"search_placeholder\":\"@:{'words.generated.finn'} @:{'words.generated.maned'}...\"},\"loading\":{\"loading_months\":\"@.capitalize:{'words.generated.laster'} @:{'words.generated.maneder'} ({loaded}/{total})\"},\"metrics\":{\"booked\":\"Bestilte @:{'words.generated.fakturaer'}\",\"distribution\":\"Avdelingsfordeling\",\"months\":\"@.capitalize:{'words.generated.maneder'} @:{'words.generated.i'} sikte\",\"other\":\"@.capitalize:{'words.generated.annen'} @:{'words.generated.bokført'} @:{'words.generated.inntekt'}\",\"subscriptions\":\"@.capitalize:{'words.generated.kjøretøy'} @:{'words.generated.abonnementer'}\"},\"monthly_page\":{\"subtitle\":\"Gjennomgå avdelingstildelinger, kundefordeling @:{'words.generated.og'} fakturasammenligninger.\",\"title\":\"@:{'words.generated.distribusjon'} @:{'words.generated.for'} {month}\",\"toolbar_month\":\"Månedsvelger\",\"toolbar_month_picker\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.maned'}\"},\"overview\":{\"loaded_months\":\"{loaded} @:{'words.generated.maneder'} @:{'words.generated.lastet'}\",\"subtitle\":\"@.capitalize:{'words.generated.manedlig'} @:{'words.generated.oversikt'} @:{'words.generated.over'} @:{'words.generated.delt'} inntektsfordeling @:{'words.generated.etter'} @:{'words.generated.kilde'}.\",\"title\":\"@:{'templates.generated.compat.superuser_invoice_distribution.metrics.distribution'}\"},\"sections\":{\"month_table\":\"@.capitalize:{'words.generated.totalt'} @:{'words.generated.maned'}\",\"source_blend\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.source_mix'}\",\"top_months\":\"@:{'words.generated.topp'} @:{'words.generated.maneder'} @:{'words.generated.totalt'}\",\"trend\":\"@.capitalize:{'words.generated.manedlig'} trend\"},\"table\":{\"booked\":\"Bestilt\",\"compared\":\"Sammenlignet @:{'words.generated.maned'}\",\"current\":\"@:{'templates.generated.compat.objects.goals.columns.current'}\",\"delta\":\"Delta\",\"distribution\":\"@:{'words.generated.distribusjon'}\",\"economic_total\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.totalt'}\",\"estimated_booked_allocation\":\"@:{'words.generated.estimert'} @:{'words.generated.bokført'} @:{'words.generated.tildeling'}\",\"fixed_pricing\":\"@:{'templates.generated.compat.global.payment.fixed_pricing'}\",\"internal_total\":\"Lokal @:{'words.generated.totalt'}\",\"invoice_id\":\"@.capitalize:{'words.generated.faktura'}-@.upper:{'words.generated.id'}\",\"metric\":\"Metrisk\",\"share\":\"@:{'templates.generated.compat.global.split'}\",\"source_mix\":\"Kildeblanding\"},\"tooltips\":{\"compare_mode\":\"Fakturatotal sammenligner aggregerte @:{'words.generated.totaler'}. @.capitalize:{'words.generated.linje'}-@:{'words.generated.for'}-@:{'words.generated.linje'} gir @:{'words.generated.per'}-@:{'words.generated.faktura'} linjesammendrag @:{'words.generated.fra'} @:{'words.generated.tilgjengelige'} sammenligningsdata.\",\"estimated_booked\":\"@:{'words.generated.estimert'} @:{'words.generated.bokført'} @:{'words.generated.andel'} basert @:{'words.generated.pa'} @:{'words.generated.hver'} @:{'words.generated.avdelings'} @:{'words.generated.andel'} @:{'words.generated.av'} @:{'words.generated.delt'} @:{'words.generated.fordeling'}.\",\"fixed_pricing\":\"@.capitalize:{'words.generated.beløp'} @:{'words.generated.tildelt'} @:{'words.generated.fra'} @:{'words.generated.fastprisavtaler'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.maneden'}.\",\"subscriptions\":\"@.capitalize:{'words.generated.beløp'} @:{'words.generated.tildelt'} @:{'words.generated.fra'} @:{'words.generated.kjøretøyabonnementer'} @:{'words.generated.for'} @:{'words.replication.article.host_mention'} @:{'words.generated.valgte'} @:{'words.generated.maneden'}.\",\"summary\":\"@.capitalize:{'words.generated.hver'} @:{'words.generated.maned'} inkluderer bookede @:{'words.generated.totaler'} @:{'words.generated.pluss'} @:{'words.generated.fastpris'} @:{'words.generated.og'} abonnementsdistribusjonssum.\"},\"warnings\":{\"legacy_compare_fallback\":\"@.capitalize:{'words.generated.sammenligningen'} kjører @:{'words.generated.pa'} @:{'words.generated.det'} @:{'words.generated.eldre'} endepunktet @:{'words.generated.fordi'} @:{'words.generated.v2'} bulk-@:{'words.generated.sammenligning'} @:{'words.generated.ikke'} @:{'words.generated.var'} @:{'words.generated.tilgjengelig'}.\",\"legacy_distribution_fallback\":\"@.capitalize:{'words.generated.lastet'} {count} @:{'words.generated.maned'}(@:{'words.generated.er'}) @:{'words.generated.via'} @:{'words.generated.eldre'} @:{'words.generated.fordelingsendepunkter'} @:{'words.generated.fordi'} @:{'words.generated.v2'} @:{'words.generated.ikke'} @:{'words.generated.var'} @:{'words.generated.tilgjengelig'}.\",\"legacy_distribution_month\":\"@.capitalize:{'words.generated.denne'} månedsdataen brukte @:{'words.generated.eldre'} @:{'words.generated.fordelingsendepunkter'} @:{'words.generated.fordi'} @:{'words.generated.v2'} @:{'words.generated.ikke'} @:{'words.generated.var'} @:{'words.generated.tilgjengelig'}.\"}},\"superuser\":{\"collected_order_invoice\":{\"and_booked\":\"@:{'words.generated.og'} @:{'words.generated.lagt'} @:{'words.generated.ut'}\",\"and_draft\":\"@:{'templates.generated.compat.collected_invoice.stripe.and_saved_draft'}\",\"but_not_booked\":\"@:{'words.generated.men'} @:{'words.generated.ikke'} @:{'words.generated.lagt'} @:{'words.generated.ut'}\",\"in_economic\":\"@:{'templates.generated.compat.collected_invoice.stripe.in_economic'}\",\"invoice_booked_economic\":\"@.capitalize:{'words.generated.fakturaen'} legges @:{'words.generated.ut'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'}, @:{'words.generated.ingen'} @:{'words.generated.ytterligere'} @:{'words.generated.handlinger'} @:{'words.generated.er'} @:{'words.generated.nødvendig'}.\",\"invoice_draft_economic\":\"@.capitalize:{'words.generated.fakturaen'} @:{'words.generated.lagres'} @:{'words.generated.som'} @:{'words.generated.utkast'} @:{'words.generated.i'} @.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.og'} @:{'words.generated.kan'} bokføres @:{'words.generated.direkte'} @:{'words.generated.der'}.\",\"invoice_paid_status\":\"@:{'templates.generated.compat.collected_invoice.stripe.invoice_paid'}\",\"no_invoice_found\":\"Fant @:{'words.generated.ingen'} @:{'words.generated.faktura'} @:{'words.generated.med'} @:{'words.generated.spesifisert'} @.upper:{'words.generated.id'}\",\"payment_overview\":\"Betalingsoversikt\"},\"department_lane\":{\"force_disable_machine\":\"@:{'words.generated.tving'} deaktivering @:{'words.generated.av'} @:{'words.generated.maskin'}\",\"force_disable_success\":\"@.capitalize:{'words.generated.maskin'} tvangsdeaktivert\",\"force_enable_machine\":\"@:{'words.generated.tving'} aktivering @:{'words.generated.av'} @:{'words.generated.maskin'}\",\"force_enable_success\":\"@.capitalize:{'words.generated.maskin'} tvangsaktivert\",\"force_error\":\"@.capitalize:{'words.generated.feil'} @:{'words.generated.ved'} tvangshandling\"},\"invoicing_billing_period\":{\"dashboard_right\":\"@:{'words.generated.dashboard'} @:{'words.generated.høyre'} skjerm\",\"fetch_period_data\":\"@:{'words.generated.hent'} periodedata\"},\"nav\":{\"categories\":\"@.capitalize:{'words.generated.kategorier'}\",\"complaints\":\"Klager\",\"department_gates\":\"@.capitalize:{'words.generated.avdelingsporter'}\",\"department_lanes\":\"@.capitalize:{'words.generated.avdelingsbaner'}\",\"department_relays\":\"@.capitalize:{'words.generated.avdelingsreleer'}\",\"invoicing\":\"@:{'templates.generated.compat.settings.billing'}\",\"orders\":\"Transaksjonshistorikk\",\"roles\":\"@.capitalize:{'words.generated.roller'} @:{'words.generated.og'} @:{'words.generated.tillatelser'}\",\"scanners\":\"@.capitalize:{'words.generated.nummerskiltskannere'}\",\"xlvask\":\"@:{'words.generated.xlvask'}\",\"error_reports\":\"Error reports\"},\"pages\":{\"categories\":{\"create\":\"@:{'templates.generated.compat.common.create'}\"},\"complaints\":{\"created_by_column\":\"@:{'words.generated.created'} @:{'words.generated.by'}\",\"delete_message\":\"@.capitalize:{'words.generated.the'} @:{'words.generated.complaint'} @:{'words.generated.will'} @:{'words.generated.be'} permanently @:{'words.generated.removed'}.\",\"delete_title\":\"@:{'words.generated.delete'} @:{'words.generated.complaint'}?\",\"edit_title\":\"Edit @:{'words.generated.complaint'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.search'} @:{'words.generated.complaints'}\",\"single\":\"@.capitalize:{'words.generated.complaint'}\",\"subtitle\":\"@.capitalize:{'words.generated.view'} @:{'words.generated.and'} manage @:{'words.generated.customer'} @:{'words.generated.complaints'} across @:{'words.generated.departments'}.\",\"title\":\"@.capitalize:{'words.generated.customer'} @:{'words.generated.complaints'}\"},\"customers\":{\"create\":\"@:{'words.generated.opprett'} @:{'words.generated.ny'} @:{'words.generated.kunde'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.kunder'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"department_gates\":{\"create\":\"@.capitalize:{'words.generated.opprette'} @:{'words.generated.ny'} @:{'words.generated.avdelingsport'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} avdelingsportene @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"department_lanes\":{\"create\":\"@:{'words.generated.opprett'} @:{'words.generated.ny'} avdelingsbane\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.avdelingsbaner'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"department_relays\":{\"create\":\"@:{'words.generated.opprett'} @:{'words.generated.nytt'} @:{'words.generated.avdelingsstafett'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.avdelingsreleer'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"department_selector\":{\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.velge'} @:{'words.generated.avdeling'}\"},\"departments\":{\"create\":\"@:{'words.generated.opprett'} @:{'words.generated.ny'} @:{'words.generated.avdeling'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.avdelinger'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"drivers\":{\"subtitle\":\"@:{'templates.generated.compat.objects.subuser_grants.subtitle'}\"},\"employees\":{\"create\":\"@:{'words.generated.opprett'} @:{'words.generated.ny'} medarbeider\",\"migrate_to_limited_backoffice\":\"Migrer til begrenset backoffice\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.ansatte'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"orders\":{\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.transaksjoner'}\"},\"products\":{\"create\":\"@:{'words.generated.opprett'} @:{'words.generated.nytt'} @:{'words.generated.produkt'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} produktene @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"scanners\":{\"create\":\"@:{'words.generated.opprett'} @:{'words.generated.ny'} nummerskiltskanner\",\"simulate_scan\":\"Simuler @:{'words.generated.skanning'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.nummerskiltskannere'} @:{'words.generated.i'} @:{'words.generated.systemet'}\"},\"subusers\":{\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.liste'} @:{'words.generated.over'} @:{'words.generated.alle'} @:{'words.generated.underbrukere'} @:{'words.generated.i'} @:{'words.generated.systemet'}\",\"title\":\"@.capitalize:{'words.generated.underbrukere'}\"}},\"statistics\":{\"error_occurred\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'}\"},\"user_detail\":{\"overview_header_help\":\"Bruk snarveiene og de direkte handlingene nedenfor til å administrere denne kundekontoen.\",\"workspace_shortcuts_help\":\"Gå direkte til de kundespesifikke arbeidsområdene for denne kontoen.\",\"attribute_help\":\"Hold pekeren over et attributt for å se hva det endrer for kunden.\",\"subtitles\":{\"overview\":\"Kundeoversikt og administrasjonsområde\",\"orders\":\"Fakturahåndtering, åpne utkast og ordrehistorikk\",\"pricing\":\"Kundespesifikke rabatter og faste produktpriser\",\"other\":\"Spesialordninger og interne kundenotater\",\"security\":\"Tillatelser og tilgang til kunderegler\",\"vehicles\":\"Kjøretøy, abonnementer og masseregistrering\",\"xlvask\":\"XLVask-kontodetaljer og importerte kjøretøy\",\"subusers\":\"Drivers and customer access grants\"},\"orders\":{\"summary_title\":\"Oversikt over ordrefakturering\",\"summary_subtitle\":\"Gå gjennom hvordan denne kunden faktureres før den fulle ordrelisten åpnes.\",\"invoicing_mode\":\"Faktureringsmåte\",\"open_draft\":\"Åpne fakturautkast\"},\"pricing\":{\"summary_title\":\"Prisoversikt\",\"summary_subtitle\":\"Gå gjennom kundens generelle rabattpolicy og produktspesifikke unntak.\",\"table_title\":\"Produktspesifikke priser\",\"table_subtitle\":\"Juster faste priser og rabattregler for hvert tilgjengelige produkt.\",\"global_discount\":\"Global rabatt\",\"product_overrides\":\"Produktunntak\",\"discount_percent\":\"Rabattprosent\",\"fixed_price_label\":\"Fast pris\",\"fixed_price_validation\":\"Oppgi et gyldig ikke-negativt heltall.\",\"category_discount_disabled\":\"Kategorirabatt deaktivert\",\"fixed_price_tooltip\":\"Rediger den faste prisen for dette produktet.\",\"item_discount_tooltip\":\"Rediger den kundespesifikke rabatten for dette produktet.\",\"category_discount_tooltip\":\"Rediger kategorirabatten som brukes for dette produktet.\"},\"other\":{\"summary_title\":\"Spesialordninger\",\"summary_subtitle\":\"Lagre kontospesifikke notater og faktureringsdetaljer som påvirker den daglige driften.\"},\"security\":{\"active_rules\":\"Aktive regler\",\"current_role\":\"Gjeldende rolle\",\"customer_rules_subtitle\":\"Slå kundespesifikke regler av eller på for bestilling, fakturering og produkttilgjengelighet.\",\"direct_role_tab\":\"Tildel rolle\",\"editable\":\"Kan redigeres\",\"limited_employee_departments_label\":\"Avdelinger\",\"limited_employee_load_failed\":\"Begrensede backoffice-valg kunne ikke lastes.\",\"limited_employee_migrate_failed\":\"Medarbeideren kunne ikke migreres.\",\"limited_employee_migrated\":\"Medarbeideren er migrert til begrenset backoffice.\",\"limited_employee_role_label\":\"Rolle\",\"limited_employee_subtitle\":\"Velg en begrenset backoffice-rolle og avdelingene medarbeideren skal ha tilgang til.\",\"limited_employee_tab\":\"Begrenset backoffice-medarbeider\",\"limited_employee_unavailable\":\"Kun medarbeiderkontoer uten kundenummer kan migreres til begrenset backoffice.\",\"limited_employee_validation\":\"Velg en rolle og minst én avdeling.\",\"managed_employee\":\"Begrenset backoffice\",\"manage_rules\":\"Administrer regler\",\"migrate_employee\":\"Migrer medarbeider\",\"no_role\":\"Denne brukeren har ingen tildelt rolle.\",\"permission_editor_notice\":\"Endringer i tillatelser oppdaterer den tildelte rollen og påvirker alle brukere med den rollen.\",\"permission_toggle_unavailable\":\"Du har ikke tillatelse til å endre denne rolletillatelsen.\",\"permissions_unavailable\":\"Du har ikke tillatelse til å laste rolletillatelser.\",\"readonly\":\"Skrivebeskyttet\",\"role_assignment_subtitle\":\"Endre hvilken rolle som gir brukerens effektive tillatelser.\",\"role_assignment_title\":\"Rolletildeling\",\"role_edit_unavailable\":\"Du har ikke tillatelse til å redigere brukerens rolle.\",\"role_fetch_unavailable\":\"Du har ikke tillatelse til å laste rollevalg.\",\"role_locked\":\"Låst\",\"role_locked_limited_backoffice\":\"Brukere administrert av begrenset backoffice kan ikke få endret rollen her.\",\"role_permissions_subtitle\":\"Gå gjennom og oppdater tillatelser for den tildelte rollen.\",\"role_permissions_title\":\"Tillatelser for tildelt rolle\",\"role_save_failed\":\"Brukerrollen kunne ikke oppdateres.\",\"role_saved\":\"Rolle oppdatert.\",\"role_select_label\":\"Tildelt rolle\",\"review_permissions\":\"Gå gjennom tillatelser\",\"save_role\":\"Lagre rolle\",\"standard_user\":\"Standardbruker\",\"switch_role\":\"Bytt rolle\"},\"vehicles\":{\"summary_title\":\"Kjøretøyområde\",\"summary_subtitle\":\"Gå gjennom kundens kjøretøy, abonnementer og importflyter.\",\"subscription_invoicing_subtitle\":\"Administrer aktive vaskeabonnementer og opprett fakturautkast for andre perioder.\",\"table_title\":\"Registrerte kjøretøy\",\"table_subtitle\":\"Administrer registreringsnummer og vaskeabonnementer for denne kunden.\",\"total\":\"Kjøretøy totalt\",\"wash_subscription\":\"Vaskeabonnementer\",\"self_service\":\"Self-service-kjøretøy\",\"add_vehicle\":\"Legg til kjøretøy\",\"no_customer\":\"Denne brukeren har ikke kundenummer, så kjøretøy kan ikke administreres her.\",\"summary_load_failed\":\"Kjøretøyoversikten kunne ikke lastes.\"},\"overview\":{\"customer_actions_title\":\"Kundehandlinger\",\"customer_actions_subtitle\":\"Kjør kundespesifikke handlinger uten å forlate oversikten.\",\"customer_shortcuts_title\":\"Kundesnarveier\",\"customer_shortcuts_subtitle\":\"Gå til de mest brukte kundearbeidsområdene fra oversikten.\",\"customer_flags_title\":\"Kundeflagg\",\"customer_flags_subtitle\":\"Opprett faktureringsperiodeflagg for denne kunden når oppfølging er nødvendig.\",\"fixed_pricing_title\":\"Fast pris\",\"fixed_pricing_subtitle\":\"Administrer kundens faste prisavtale.\",\"default_department_title\":\"Standardavdeling\",\"default_department_subtitle\":\"Velg hvilken avdeling som skal forhåndsvelges for denne kunden.\",\"open_orders\":\"Åpne ordrer\",\"open_pricing\":\"Åpne priser\",\"open_security\":\"Åpne sikkerhet\",\"open_subscriptions\":\"Åpne abonnementer\",\"special_arrangement_title\":\"Spesialordning\",\"special_arrangement_subtitle\":\"Lagre driftsnotater om kundens spesialordning.\",\"view_account\":\"Vis konto\",\"view_economic\":\"Vis e-conomic\",\"wash_subscription_note_title\":\"Notat til vaskeabonnement\",\"wash_subscription_note_subtitle\":\"Lagre det interne notatet som brukes ved fakturering av vaskeabonnementer.\"},\"xlvask\":{\"summary_title\":\"XLVask-kundeprofil\",\"summary_subtitle\":\"Gå gjennom den tilknyttede XLVask-kunden før import av kjøretøy.\",\"vehicles_title\":\"XLVask-kjøretøy\",\"vehicles_subtitle\":\"Kjøretøy i XLVask for denne tilknyttede kunden.\",\"not_found\":\"Ingen XLVask-kunde er knyttet til denne kontoen ennå.\",\"customer_id\":\"XLVask ID\"},\"subusers\":{\"active\":\"Active\",\"disabled\":\"Disabled\",\"invite\":\"Invite driver\",\"pending_setup\":\"Pending setup\",\"summary_load_failed\":\"Could not load driver summary.\",\"summary_subtitle\":\"Review driver access before changing grants, permissions, or invitations.\",\"summary_title\":\"Driver access overview\",\"table_subtitle\":\"Manage the drivers that are linked to this customer's account.\",\"table_title\":\"Drivers\",\"total\":\"Total drivers\"}},\"user\":{\"fixed_pricing\":{\"not_implemented_desc\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.kan'} @:{'words.generated.na'} @:{'words.generated.opprette'} @:{'words.generated.fastprisavtaler'}, @:{'words.generated.men'} disse @:{'words.generated.vil'} foreløpig @:{'words.generated.ikke'} @:{'words.generated.bli'} tatt @:{'words.generated.i'} @:{'words.generated.bruk'} @:{'words.generated.i'} @:{'words.generated.systemet'}.\",\"not_implemented_title\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.funksjonen'} @:{'words.generated.er'} @:{'words.generated.enna'} @:{'words.generated.ikke'} implementert @:{'words.generated.i'} @:{'words.generated.fakturering'}\"},\"special_arrangement\":{\"label\":\"@.capitalize:{'words.generated.spesialarrangement'}, @:{'words.generated.internt'}. (@:{'words.generated.note'})\",\"save\":\"@.capitalize:{'words.generated.lagre'} @:{'words.generated.spesialarrangement'}\",\"title\":\"Spesialordning\"},\"vehicles\":{\"placeholder_active_subscriptions\":\"@:{'templates.generated.compat.user_vehicles.subscriptions_placeholder'}\",\"placeholder_self_service\":\"@:{'templates.generated.compat.user_vehicles.self_service_placeholder'}\",\"placeholder_vehicle_count\":\"@:{'words.generated.plassholder'} @:{'words.generated.for'} @:{'words.generated.antall'} @:{'words.generated.kjøretøy'}\"},\"wash_subscription\":{\"save\":\"Spar @:{'words.generated.vaskeabonnement'}\"}},\"vehicle\":{\"xlvask_usage_log\":{\"create_order_all\":\"@:{'templates.generated.compat.tables.xlvask.create_order_all'}\"}},\"xlvask\":{\"fetch_customers\":\"@:{'words.generated.hent'} @:{'words.generated.kunder'}\",\"fetch_objects\":\"@:{'templates.generated.compat.xlvask.admin.fetch_objects'}\",\"objects\":\"@:{'templates.generated.compat.xlvask.admin.objects'}\"},\"driver_access\":{\"advanced\":\"Advanced\",\"capabilities\":{\"add_bookings\":\"Create bookings\",\"add_vehicles\":\"Add vehicles\",\"delete_bookings\":\"Delete bookings\",\"delete_selfserve\":\"Delete self-service\",\"delete_vehicles\":\"Delete vehicles\",\"disable_driver_access\":\"Disable driver access\",\"edit_bookings\":\"Edit bookings\",\"edit_driver_access\":\"Edit driver access\",\"edit_orders\":\"Edit orders\",\"edit_selfserve\":\"Edit self-service\",\"edit_vehicles\":\"Edit vehicles\",\"invite_drivers\":\"Invite drivers\",\"start_selfserve\":\"Start self-service\",\"view_bookings\":\"View bookings\",\"view_drivers\":\"View drivers\",\"view_orders\":\"View orders\",\"view_selfserve\":\"View self-service\",\"view_vehicles\":\"View vehicles\"},\"custom_description\":\"Choose individual access areas for this driver.\",\"editor_intro\":\"Choose a grouped access profile. Superusers can use custom access for exceptions.\",\"editor_title\":\"Access profile for {name}\",\"empty\":\"No access profiles were found.\",\"groups\":{\"bookings\":\"Bookings\",\"driver_management\":\"Driver management\",\"orders\":\"Orders\",\"selfserve\":\"Self-service\",\"vehicles\":\"Vehicles\"},\"loading\":\"Loading access profiles...\",\"selected\":\"Selected\",\"templates\":{\"booking_coordinator\":{\"description\":\"Can coordinate bookings and see the related vehicles and orders.\",\"label\":\"Booking coordinator\"},\"custom\":{\"description\":\"Choose individual access areas.\",\"label\":\"Custom\"},\"deactivated\":{\"description\":\"Keeps the driver linked to the customer without active access.\",\"label\":\"Deactivated\"},\"driver\":{\"description\":\"Can use self-service, manage own bookings, see vehicles, and view orders.\",\"label\":\"Driver\"},\"fleet_admin\":{\"description\":\"Can manage drivers, vehicles, bookings, self-service, and orders for the customer.\",\"label\":\"Fleet admin\"}},\"form_label\":\"Access profile\",\"form_help\":\"Choose a grouped access profile. It can be changed later.\",\"summary\":{\"no_permissions\":\"No permissions\",\"permission_count\":\"{count} permissions\",\"custom_summary\":\"Custom: {summary}\"}},\"driver_contact\":{\"close\":\"Close\",\"email_missing\":\"E-mail missing\",\"link_not_sent_default\":\"The link could not be sent.\",\"link_not_sent_title\":\"Link could not be sent\",\"link_send_failed\":\"The link could not be sent.\",\"link_sent_default\":\"The link was sent.\",\"link_sent_title\":\"Link sent\",\"login_link_failed_title\":\"Login link could not be sent\",\"login_link_not_sent_title\":\"Login link could not be sent\",\"login_link_sent_title\":\"Login link sent\",\"missing\":\"Missing\",\"password_guide_failed_title\":\"Guide could not be sent\",\"password_guide_not_sent_title\":\"Guide could not be sent\",\"password_guide_sent_title\":\"Guide sent\",\"phone_missing\":\"Phone missing\",\"send_login_link\":\"Send pre-authorized login link\",\"send_password_guide\":\"Send new password guide\",\"status\":\"Status\",\"unverified\":\"Not verified\",\"verification_update_failed\":\"Verification status could not be updated.\",\"verification_update_failed_title\":\"Status could not be updated\",\"verified\":\"Verified\"},\"driver_wheel\":{\"access_section\":\"Access\",\"account_section\":\"Account\",\"contact_section\":\"Contact\",\"details_section\":\"Details\",\"identity_subsection\":\"Identity\",\"system_subsection\":\"System\"}},\"system_status\":{\"actions\":{\"open_config\":\"@:{'words.generated.open'} @:{'words.generated.configuration'}\",\"open_replication\":\"@:{'words.generated.open'} @:{'words.generated.replication'}\"},\"cards\":{\"cpu\":\"@:{'words.generated.cpu'}\",\"database\":\"@.capitalize:{'words.replication.services.database'}\",\"memory\":\"@:{'words.generated.memory'}\"},\"devices\":{\"desktop\":\"Desktop\",\"mobile\":\"@.capitalize:{'words.generated.mobile'}\",\"tablet\":\"Tablet\"},\"gateways\":{\"actions\":{\"open_fleet\":\"@.capitalize:{'words.generated.apne'} flåte\",\"open_gateway\":\"@.capitalize:{'words.generated.apne'} @:{'words.generated.gateway'}\"},\"description\":\"Skrivebeskyttet flåtestatus @:{'words.generated.for'} @:{'words.generated.installerte'} @:{'words.generated.edge'} @:{'words.generated.gateways'}.\",\"discovery_status\":{\"ready\":\"@:{'templates.generated.compat.common.clear'}\",\"stale\":\"Foreldet\"},\"empty\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.er'} @:{'words.generated.ingen'} registrerte @:{'words.generated.edge'} @:{'words.generated.gateways'}.\",\"error\":\"@.capitalize:{'words.generated.gatewaystatus'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.lastes'} @:{'words.generated.inn'} @:{'words.generated.akkurat'} @:{'words.generated.na'}.\",\"labels\":{\"active_operation\":\"@.capitalize:{'words.generated.aktiv'} operasjon\",\"last_heartbeat\":\"@:{'words.generated.siste'} heartbeat\"},\"loading\":\"@.capitalize:{'words.generated.laster'} @:{'words.generated.gatewaystatus'}...\",\"status\":{\"degraded\":\"@.capitalize:{'words.generated.trenger'} oppmerksomhet\",\"online\":\"Online\"},\"summary\":{\"total\":\"@.capitalize:{'words.generated.gateways'}\"}},\"labels\":{\"activity_window\":\"@.capitalize:{'words.generated.active'} within @:{'words.generated.the'} @:{'words.generated.last'} {minutes} @:{'words.generated.minutes'}\",\"buckets_available\":\"{available} @:{'words.generated.of'} {total} @:{'words.generated.buckets'} @:{'words.generated.available'}\",\"checked_at\":\"@.capitalize:{'words.generated.checked'} @:{'words.generated.at'}\",\"configured\":\"@.capitalize:{'words.generated.configured'}\",\"enabled\":\"@.capitalize:{'words.generated.enabled'}\",\"latency\":\"Latency\",\"no_reason\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.additional'} details\",\"replication_percent\":\"{percent}% @:{'words.generated.replication'} ({status})\",\"runtime_source\":\"@.capitalize:{'words.generated.runtime'} @:{'words.generated.source'}\",\"server_version\":\"@.capitalize:{'words.generated.server'} version\",\"warnings\":\"Warnings\"},\"modules\":{\"backups\":\"Backups\",\"economic\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'}\",\"entra\":\"@:{'words.generated.microsoft'} Entra\",\"fxratesapi\":\"@:{'words.generated.fxratesapi'}\",\"licenseplaterecognizer\":\"License @:{'words.generated.plate'} Recognizer\",\"limble\":\"@:{'words.generated.limble'}\",\"motorapi\":\"@:{'words.generated.motorapi'}\",\"ocrspace\":\"OCR.@:{'words.generated.space'}\",\"openai\":\"@:{'words.generated.openai'}\",\"selfserve\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'}\",\"shelly\":\"@:{'words.generated.shelly'}\",\"stripe\":\"@:{'words.generated.stripe'}\",\"virkdata\":\"@:{'words.generated.virkdata_virkdata'}\",\"workfeed\":\"@:{'words.generated.workfeed'}\"},\"reasons\":{\"backup_connectivity_confirmed\":\"@.capitalize:{'words.generated.backup'} @:{'words.generated.store'} @:{'words.generated.connectivity'} @:{'words.generated.confirmed'}.\",\"backup_probe_failed\":\"@.capitalize:{'words.generated.backup'} @:{'words.generated.probe'} @:{'words.generated.failed'}: {error}.\",\"economic_credentials_missing\":\"@.upper:{'words.generated.e'}-@:{'words.generated.conomic'} @:{'words.generated.credentials'} @:{'words.generated.are'} @:{'words.generated.missing'} @:{'words.generated.from'} @:{'words.generated.runtime'} environment @:{'words.generated.configuration'}.\",\"email_delivery_not_implemented\":\"@:{'words.generated.mailersend_mailersend'} @:{'words.generated.must'} @:{'words.generated.be'} @:{'words.generated.enabled'} @:{'words.generated.because'} @:{'words.generated.default'} @:{'words.generated.smtp'} delivery @:{'words.generated.is'} @:{'words.generated.not'} implemented.\",\"http_curl_init_failed\":\"{label} @:{'words.generated.probe'} @:{'words.generated.could'} @:{'words.generated.not'} initialize cURL.\",\"http_endpoint_missing\":\"{label} @:{'words.generated.probe'} @:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.run'} @:{'words.generated.because'} @:{'words.generated.the'} @:{'words.generated.endpoint'} @:{'words.generated.is'} @:{'words.generated.missing'}.\",\"http_no_response\":\"{label} @:{'words.generated.did'} @:{'words.generated.not'} @:{'words.generated.return'} @:{'words.generated.an'} @:{'words.generated.http'} @:{'words.generated.response'}.\",\"http_ok\":\"{label} @:{'words.generated.connectivity'} @:{'words.generated.confirmed'}.\",\"http_probe_failed\":\"{label} @:{'words.generated.probe'} @:{'words.generated.failed'}: {error}.\",\"http_rate_limited\":\"{label} @:{'words.generated.probe'} @:{'words.generated.was'} rate limited (@:{'words.generated.http'} {httpStatus}).\",\"http_status\":\"{label} @:{'words.generated.returned'} @:{'words.generated.http'} {httpStatus}.\",\"http_unexpected_response\":\"{label} @:{'words.generated.returned'} @:{'words.generated.an'} @:{'words.generated.unexpected'} @:{'words.generated.http'} @:{'words.generated.response'}.\",\"invalid_probe_payload\":\"@.capitalize:{'words.generated.probe'} @:{'words.generated.returned'} @:{'words.generated.an'} @:{'words.generated.invalid'} @:{'words.generated.payload'}.\",\"missing_config\":\"@.capitalize:{'words.generated.missing'} @:{'words.generated.required'} @:{'words.generated.configuration'}: {variables}.\",\"module_disabled\":\"@.capitalize:{'words.generated.module'} @:{'words.generated.is'} @:{'words.generated.disabled'}.\",\"recaptcha_credentials_rejected\":\"{label} @:{'words.generated.credentials'} @:{'words.generated.were'} rejected @:{'words.generated.by'} @:{'words.generated.google'}.\",\"recaptcha_unreadable_payload\":\"{label} @:{'words.generated.returned'} @:{'words.generated.an'} unreadable @:{'words.generated.response'} @:{'words.generated.payload'}.\",\"recaptcha_validation_errors\":\"{label} @:{'words.generated.returned'} @:{'words.generated.unexpected'} validation errors: {errors}.\",\"safe_probe_unavailable\":\"@.capitalize:{'words.generated.configuration'} @:{'words.generated.is'} present, @:{'words.generated.but'} @:{'words.generated.no'} @:{'words.generated.safe'} @:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.probe'} @:{'words.generated.is'} @:{'words.generated.available'}.\",\"selfserve_configuration_confirmed\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.schema'} @:{'words.generated.and'} @:{'words.generated.minute'} @:{'words.generated.product'} @:{'words.generated.configuration'} @:{'words.generated.confirmed'}.\",\"selfserve_minute_product_invalid\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.minute'} @:{'words.generated.product'} @:{'words.generated.configuration'} @:{'words.generated.is'} @:{'words.generated.invalid'}.\",\"selfserve_minute_product_missing\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.minute'} @:{'words.generated.product'} #{productId} @:{'words.generated.does'} @:{'words.generated.not'} @:{'words.generated.exist'}.\",\"selfserve_minutes_invalid\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.machine'} @:{'words.generated.minutes'} @:{'words.generated.configuration'} @:{'words.generated.is'} @:{'words.generated.invalid'}.\",\"selfserve_probe_failed\":\"@.capitalize:{'words.generated.self'}-@:{'words.generated.serve'} @:{'words.generated.probe'} @:{'words.generated.failed'}: {error}.\",\"shelly_no_device_id\":\"@:{'words.generated.shelly'} cloud @:{'words.generated.credentials'} @:{'words.generated.are'} @:{'words.generated.configured'}, @:{'words.generated.but'} @:{'words.generated.no'} known @:{'words.generated.device'} @:{'words.generated.id'} @:{'words.generated.is'} @:{'words.generated.available'} @:{'words.generated.for'} @:{'words.generated.a_2'} @:{'words.generated.safe'} @:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.probe'}.\"},\"sections\":{\"gateways\":\"@.capitalize:{'words.generated.edge'} @:{'words.generated.gateways'}\",\"infrastructure\":\"Infrastructure\",\"modules\":\"@.capitalize:{'words.generated.modules'}\",\"sessions\":\"@.capitalize:{'words.generated.recent'} @:{'words.generated.sessions'}\"},\"session_display\":{\"session_with_id\":\"Session #{id}\"},\"session_types\":{\"subuser\":\"@:{'words.generated.subuser'}\"},\"states\":{\"error\":\"@.capitalize:{'words.generated.status'} @:{'words.generated.error'}\",\"error_generic\":\"@:{'words.generated.unable'} @:{'words.generated.to'} @:{'words.generated.load'} @:{'words.generated.system'} @:{'words.generated.status'}.\",\"loading\":\"@:{'words.generated.loading'} @:{'words.generated.system'} @:{'words.generated.status'}...\",\"no_sessions\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.recent'} @:{'words.generated.sessions'} @:{'words.generated.found'}.\",\"stale\":\"@.capitalize:{'words.generated.this'} snapshot @:{'words.generated.is'} older than @:{'words.generated.expected'}. Automatic @:{'words.generated.refresh'} may @:{'words.generated.be'} delayed.\"},\"status\":{\"degraded\":\"@:{'templates.generated.compat.replication.status.degraded'}\",\"disabled\":\"@.capitalize:{'words.generated.disabled'}\"},\"summary\":{\"active_sessions\":\"@.capitalize:{'words.generated.active'} @:{'words.generated.sessions'}\",\"active_users\":\"@.capitalize:{'words.generated.active'} @:{'words.generated.users'}\",\"last_updated\":\"@.capitalize:{'words.generated.last'} updated\",\"overall\":\"Overall @:{'words.generated.status'}\"},\"table\":{\"active\":\"@.capitalize:{'words.generated.active'}\",\"device\":\"@.capitalize:{'words.generated.device'}\",\"first_seen\":\"First @:{'words.generated.seen'}\",\"last_seen\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.seen'}\",\"route\":\"@.capitalize:{'words.generated.last'} route\"},\"title\":\"Systemstatus\",\"warnings\":{\"cpu_loadavg_fallback\":\"@:{'words.generated.cpu'} @:{'words.generated.usage'} @:{'words.generated.fell'} @:{'words.generated.back'} @:{'words.generated.to'} @:{'words.generated.load'} average @:{'words.generated.because'} /@:{'words.generated.proc'}/stat sampling @:{'words.generated.was'} @:{'words.generated.unavailable'}.\",\"cpu_unavailable\":\"@:{'words.generated.cpu'} @:{'words.generated.usage'} @:{'words.generated.metrics'} @:{'words.generated.are'} @:{'words.generated.unavailable'} @:{'words.generated.in'} @:{'words.generated.this'} @:{'words.generated.runtime'}.\",\"memory_proc_fallback\":\"@:{'words.generated.memory'} @:{'words.generated.usage'} @:{'words.generated.fell'} @:{'words.generated.back'} @:{'words.generated.to'} /@:{'words.generated.proc'}/meminfo @:{'words.generated.because'} cgroup limits @:{'words.generated.were'} @:{'words.generated.unavailable'}.\",\"memory_unavailable\":\"@:{'words.generated.memory'} @:{'words.generated.metrics'} @:{'words.generated.are'} @:{'words.generated.unavailable'} @:{'words.generated.in'} @:{'words.generated.this'} @:{'words.generated.runtime'}.\",\"minio_missing_buckets\":\"@:{'words.replication.services.minio'} @:{'words.generated.is'} reachable, @:{'words.generated.but'} @:{'words.generated.one'} @:{'words.generated.or'} more @:{'words.generated.expected'} @:{'words.generated.buckets'} @:{'words.generated.are'} @:{'words.generated.missing'} @:{'words.generated.or'} inaccessible.\",\"modules_without_probes\":\"Some @:{'words.generated.modules'} expose @:{'words.generated.configuration'}-@:{'words.generated.only'} @:{'words.generated.status'} @:{'words.generated.because'} @:{'words.generated.no'} @:{'words.generated.safe'} @:{'words.generated.read'}-@:{'words.generated.only'} @:{'words.generated.probe'} exists: {modules}.\",\"redis_cache_bypass\":\"@:{'words.replication.services.redis'} @:{'words.generated.is'} @:{'words.generated.unavailable'}; @:{'words.generated.module'} @:{'words.generated.probe'} caching @:{'words.generated.is'} bypassed.\",\"redis_cache_lookup_failed\":\"@:{'words.replication.services.redis'} @:{'words.generated.cache'} @:{'words.generated.lookup'} @:{'words.generated.failed'} @:{'words.generated.for'} @:{'words.generated.module'} @:{'words.generated.probe'} {module}: {error}\",\"redis_cache_write_failed\":\"@:{'words.replication.services.redis'} @:{'words.generated.cache'} write @:{'words.generated.failed'} @:{'words.generated.for'} @:{'words.generated.module'} @:{'words.generated.probe'} {module}: {error}\"}},\"tables\":{\"actions\":\"@:{'templates.generated.compat.common.actions'}\",\"bookings\":{\"booking_id_required\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.ma'} @:{'words.generated.oppgi'} @:{'words.generated.bestillings'}-@.upper:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.fullføre'} @:{'words.generated.vask'} @:{'words.generated.uten'} @:{'words.generated.vaskebevis'}\",\"complete_wash_without_certificate\":\"Komplett @:{'words.generated.vask'} @:{'words.generated.uten'} @:{'words.generated.vaskesertifikat'}\",\"complete_wash_without_certificate_prompt\":\"@.capitalize:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.booking'}-@.upper:{'words.generated.id'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.fullføre'} @:{'words.generated.vask'} @:{'words.generated.uten'} @:{'words.generated.vaskebevis'}\",\"create_order_from_booking\":\"@:{'words.generated.opprett'} @:{'words.generated.ordre'} @:{'words.generated.fra'} @:{'words.generated.booking'}\",\"create_order_from_booking_confirm\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.opprette'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.bestilling'} @:{'words.generated.fra'} @:{'words.generated.bestillingen'}?\",\"customer_name\":\"@:{'templates.generated.compat.common.customer_name'}\",\"error_add_service\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.legge'} @:{'words.generated.til'} @:{'words.generated.tjeneste'}\",\"loading\":\"@.capitalize:{'words.generated.laster'} @:{'words.generated.bestilling'}...\",\"no_registered\":\"@.capitalize:{'words.generated.not'} @:{'words.generated.registered'}\",\"no_services_added\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.tjenester'} @:{'words.generated.lagt'} @:{'words.generated.til'} @:{'words.generated.enna'}\",\"pickup_required\":\"@:{'words.generated.henting'} @:{'words.generated.nødvendig'}?\",\"reg_tractor\":\"@.capitalize:{'words.generated.reg'}. @:{'words.generated.traktor'}\",\"reg_trailer\":\"@.capitalize:{'words.generated.reg'}. @.capitalize:{'words.generated.tilhenger'}\",\"vehicle_1\":\"@.capitalize:{'words.generated.kjøretøy'} 1\",\"vehicle_2\":\"@.capitalize:{'words.generated.error'} 500 (@.capitalize:{'words.generated.server'} @.capitalize:{'words.generated.error'})!!1500.@.capitalize:{'words.generated.that'}’@:{'words.generated.s'} @:{'words.generated.an'} @:{'words.generated.error'}.There @:{'words.generated.was'} @:{'words.generated.an'} @:{'words.generated.error'}. @:{'words.generated.please'} try @:{'words.generated.again'} later.@.capitalize:{'words.generated.that'}’@:{'words.generated.s'} @:{'words.generated.all'} we know.\",\"wash\":\"@.capitalize:{'words.generated.vaske'}\",\"wash_certificate_type\":\"@.capitalize:{'words.generated.vaskebevis'} / @.capitalize:{'words.generated.type'}\",\"wash_completed\":\"@.capitalize:{'words.generated.vasken'} @:{'words.generated.er'} @:{'words.generated.fullført'}\",\"wash_desc\":\"@.capitalize:{'words.generated.bruk'} @:{'words.generated.vart'} @:{'words.generated.nasjonale'} @:{'words.generated.nettverk'} @:{'words.generated.av'} vaskehaller @:{'words.generated.til'} @:{'words.generated.konkurransedyktige'} priser\",\"wash_performed\":\"@.capitalize:{'words.replication.host_definite_suffix'} @:{'words.generated.vask'} @:{'words.generated.er'} utført @:{'words.generated.pa'} @:{'words.generated.denne'} @:{'words.generated.bestillingen'}.\",\"wash_services\":\"@.capitalize:{'words.generated.vasketjenester'}\",\"wash_type\":\"@.capitalize:{'words.generated.type'} @:{'words.generated.vask'}\",\"wash_without_certificate\":\"@.capitalize:{'words.generated.denne'} @:{'words.generated.vask'} @:{'words.generated.er'} @:{'words.generated.uten'} @:{'words.generated.vaskesertifikat'}.\",\"yes\":\"@:{'templates.generated.compat.common.yes'}\"},\"categories\":{\"products_count\":\"@.capitalize:{'words.generated.antall'} @:{'words.generated.produkter'}\"},\"common\":{\"category\":\"@.capitalize:{'words.generated.kategori'}\",\"count\":\"Telle\",\"default_price\":\"Standardpris\",\"department_price\":\"@.capitalize:{'words.generated.avdeling'} @.capitalize:{'words.generated.pris'}\",\"discount_category\":\"@.capitalize:{'words.generated.rabatt'} (@:{'words.generated.kategori'})\",\"discount_item\":\"@.capitalize:{'words.generated.rabatt'} (vare)\",\"end_time\":\"Slutttid\",\"field\":\"@.capitalize:{'words.generated.felt'}\",\"id\":\"@.upper:{'words.generated.id'}\",\"label\":\"Merkelapp\",\"last_seen\":\"Sist @:{'words.generated.sett'}\",\"location\":\"@.capitalize:{'words.generated.sted'}\",\"name\":\"@:{'templates.generated.compat.common.name'}\",\"phone\":\"@:{'templates.generated.compat.common.phone'}\",\"price\":\"@:{'templates.generated.compat.common.price'}\",\"price_changed_from\":\"@.capitalize:{'words.generated.pris'} endret @:{'words.generated.fra'} {from} @:{'words.generated.dkk'} @:{'words.generated.til'} {to} @:{'words.generated.dkk'} / @:{'words.generated.enhet'} ({total} @:{'words.generated.dkk'} @:{'words.generated.totalt'})\",\"price_dkk\":\"@.capitalize:{'words.generated.pris'} (@:{'words.generated.dkk'})\",\"price_per_unit\":\"{price} @:{'words.generated.dkk'} / @:{'words.generated.enhet'} ({total} @:{'words.generated.dkk'} @:{'words.generated.totalt'})\",\"product_id\":\"@.capitalize:{'words.generated.produkt'}-@.upper:{'words.generated.id'}\",\"product_name\":\"@:{'templates.generated.compat.products.form.product_name'}\",\"registration_number\":\"@.capitalize:{'words.generated.registreringsnummer'}\",\"serial_number\":\"Serienummer\",\"start_time\":\"Starttid\",\"value\":\"@.capitalize:{'words.generated.verdi'}\",\"wash_item\":\"@.capitalize:{'words.generated.vask'} @:{'words.generated.element'}\",\"website\":\"Nettsted\"},\"economic\":{\"payment_terms\":\"@.capitalize:{'words.generated.betalingsbetingelser'}\"},\"in_total\":\"@:{'words.generated.totalt'}\",\"invoices\":{\"invoice_number\":\"@:{'templates.generated.compat.invoices.invoice_number'}\",\"overdue\":\"Forsinket\"},\"notifications\":{\"read\":\"@.capitalize:{'words.generated.lese'}\"},\"orders\":{\"historical_washes\":\"@.capitalize:{'words.generated.historiske'} @:{'words.generated.vasker'}\",\"items\":\"@.capitalize:{'words.generated.varer'}\"},\"pos\":{\"order_items\":\"Bestillingsvarer\",\"possible_duplicates\":\"@:{'templates.generated.compat.global.possible_duplicates'}\",\"scanned_plates\":\"@.capitalize:{'words.generated.skannede'} @:{'words.generated.plater'}\",\"sync_orders\":\"@:{'words.generated.synkroniser'} @:{'words.generated.bestillinger'}\"},\"roles\":{\"permissions\":\"@:{'templates.generated.compat.user_admin.permissions'}\",\"users_count\":\"@.capitalize:{'words.generated.antall'} @:{'words.generated.brukere'}\"},\"self_serve\":{\"condition_rules\":\"@.capitalize:{'words.generated.tilstandsregler'}\",\"tasks\":\"@.capitalize:{'words.generated.oppgaver'}\",\"vehicle_conditions\":\"@.capitalize:{'words.generated.kjøretøyets'} @:{'words.generated.forhold'}\"},\"showing\":\"@:{'templates.generated.compat.common.view'}\",\"stripe\":{\"terminals\":\"@.capitalize:{'words.generated.terminaler'}\"},\"time_bookings\":{\"hours\":\"@.capitalize:{'words.generated.timer'}\"},\"users\":{\"last_login\":\"@:{'words.generated.siste'} @:{'words.generated.palogging'}\"},\"xlvask\":{\"create_order\":\"@:{'words.generated.opprett'} @:{'words.generated.ordre'}\",\"create_order_all\":\"@:{'words.generated.opprett'} @:{'words.generated.ordre'} @:{'words.generated.for'} @:{'words.generated.alle'} @:{'words.generated.aktuelle'}\",\"order_created\":\"@.capitalize:{'words.generated.bestilling'} @:{'words.generated.opprettet'}\",\"usage_log_title\":\"@:{'words.generated.xlvask'} @.capitalize:{'words.generated.usage'} @.capitalize:{'words.generated.log'}\"}},\"time_booking_flow\":{\"all_info_looks_good\":\"@.capitalize:{'words.generated.all'} @:{'words.generated.informasjon'} @:{'words.generated.ser'} bra @:{'words.generated.ut'}! @.capitalize:{'words.generated.du'} @:{'words.generated.kan'} @:{'words.generated.na'} @:{'words.generated.bekrefte'} @:{'words.generated.bestillingen'} @:{'words.generated.din'}.\",\"date_and_time\":\"@.capitalize:{'words.generated.dato'} @:{'words.generated.og'} @:{'words.generated.tid'}\",\"no_notifications_enabled\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.aktivert'} @:{'words.generated.varsler'} @:{'words.generated.for'} @:{'words.generated.bestillingen'} @:{'words.generated.din'}. @.capitalize:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.ikke'} @:{'words.generated.motta'} @:{'words.generated.noen'} @:{'words.generated.bekreftelse'}, påminnelse @:{'words.generated.eller'} oppdateringer @:{'words.generated.om'} @:{'words.generated.bestillingen'} @:{'words.generated.din'}.\",\"no_services_selected\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.tjenester'} @:{'words.generated.er'} @:{'words.generated.valgt'}\",\"not_selected\":\"@.capitalize:{'words.generated.ikke'} @:{'words.generated.valgt'}\",\"not_specified\":\"@:{'templates.generated.compat.pagination.not_specified'}\",\"notifications_incomplete\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.aktivert'} @:{'words.generated.varsler'}, @:{'words.generated.men'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.fylt'} @:{'words.generated.ut'} @:{'words.generated.all'} @:{'words.generated.nødvendig'} @:{'words.generated.informasjon'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.motta'} dem.\",\"notifications_will_be_sent_to\":\"@.capitalize:{'words.generated.varsler'} @:{'words.generated.vil'} @:{'words.generated.bli'} @:{'words.generated.sendt'} @:{'words.generated.til'}\",\"progress\":\"Fremgang {current} / {total}\",\"select_services\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.tjenester'}\",\"selected_services\":\"Utvalgte @:{'words.generated.tjenester'}\",\"sms\":\"@:{'words.generated.sms'}\",\"step_of\":\"@:{'templates.common.step_of'}\",\"step1_subtitle\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.kjøretøyet'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.bestille'} @:{'words.generated.tid'} @:{'words.generated.for'}\",\"step2_subtitle\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.stedet'} @:{'words.generated.der'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.at'} @:{'words.generated.tjenesten'} @:{'words.generated.skal'} utføres\",\"step2_title\":\"@.capitalize:{'words.generated.velg'} plassering\",\"step3_subtitle\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.tjenesten'} @:{'words.generated.du'} @:{'words.generated.ønsker'} @:{'words.generated.utført'}\",\"step3_title\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.tjeneste'}\",\"step4_subtitle\":\"@.capitalize:{'words.generated.velg'} @:{'words.replication.article.host_mention'} tiden @:{'words.generated.som'} @:{'words.generated.passer'} @:{'words.generated.deg'} @:{'words.generated.best'}\",\"step4_title\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.tid'}\",\"step5_subtitle\":\"@.capitalize:{'words.generated.se'} gjennom @:{'words.generated.og'} @:{'words.generated.bekreft'} @:{'words.generated.bestillingen'} @:{'words.generated.din'}\",\"step5_title\":\"@.capitalize:{'words.generated.bekreft'} @:{'words.generated.bestillingen'}\",\"update_notification_settings\":\"@:{'words.generated.oppdater'} @:{'words.generated.varslingsinnstillingene'} @:{'words.generated.dine'} @:{'words.generated.her'}.\",\"warning_email_not_set\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.aktivert'} @:{'words.generated.e'}-@:{'words.generated.postvarsler'}, @:{'words.generated.men'} @:{'words.generated.har'} @:{'words.generated.ikke'} angitt @:{'words.replication.host_definite_suffix'} @:{'words.generated.kontakt'}-@:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.eller'} @:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.for'} @:{'words.generated.vaskesertifikat'}.\",\"warning_no_datetime\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.valgt'} @:{'words.generated.dato'} @:{'words.generated.og'} @:{'words.generated.klokkeslett'}.\",\"warning_no_location\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.valgt'} @:{'words.generated.et'} @:{'words.generated.sted'}.\",\"warning_no_registration\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.oppgitt'} @:{'words.generated.et'} @:{'words.generated.registreringsnummer'}.\",\"warning_no_services\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.valgt'} @:{'words.generated.noen'} @:{'words.generated.tjenester'}.\",\"warning_sms_not_set\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.aktivert'} @:{'words.generated.sms'}-@:{'words.generated.varsler'}, @:{'words.generated.men'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.oppgitt'} @:{'words.generated.et'} @:{'words.generated.gyldig'} @:{'words.generated.telefonnummer'}.\"},\"time_bookings\":{\"add_reg_number\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.registreringsnummer'}\",\"exterior_wash_for\":\"@.capitalize:{'words.generated.utvendig'} @:{'words.generated.vask'} @:{'words.generated.for'}\",\"insert_reg_numbers\":\"@.capitalize:{'words.generated.sett'} @:{'words.generated.inn'} @:{'words.generated.relevante'} @:{'words.generated.registreringsnummer'}\",\"interior_wash_for\":\"@.capitalize:{'words.generated.innvendig'} @:{'words.generated.vask'} @:{'words.generated.for'}\",\"next_week\":\"@:{'templates.generated.compat.time.next_week'}\",\"no_wash_services_available\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.vasketjenester'} @:{'words.generated.tilgjengelig'} @:{'words.generated.for'} @:{'words.generated.dette'} @:{'words.generated.kjøretøyet'}.\",\"previous_week\":\"@:{'templates.generated.compat.global.text.last_week'}\",\"select_vehicle_type_first\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.kjøretøytype'} først\",\"select_vehicle_type\":\"@:{'templates.generated.compat.self_wash.select_vehicle_type'}\",\"select_wash_hall\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.vaskehall'}\",\"tank_cleaning\":\"@:{'templates.generated.compat.global.tank_cleaning'}\",\"truck_wash\":\"@.capitalize:{'words.generated.lastebilvask'}\",\"wash_services_for\":\"@.capitalize:{'words.generated.vasketjenester'} @:{'words.generated.for'}\",\"what_type_of_wash\":\"Hva slags @:{'words.generated.vask'} @:{'words.generated.trenger'} @:{'words.generated.du'}?\",\"where_to_wash\":\"Hvor @:{'words.generated.vil'} @:{'words.generated.du'} @:{'words.generated.vaske'}?\"},\"time\":{\"ago\":\"sedan\",\"end_date\":\"Sluttdato\",\"from_now\":\"@:{'words.generated.fra'} @:{'words.generated.na'}\",\"just_now\":\"@:{'words.generated.bare'} @:{'words.generated.nei'}\",\"last_month\":\"Förra månaden\",\"last_year\":\"Forra året\",\"next_month\":\"@.capitalize:{'words.generated.neste'} @:{'words.generated.maned'}\",\"next_week\":\"@.capitalize:{'words.generated.neste'} @:{'words.generated.uke'}\",\"next_year\":\"@.capitalize:{'words.generated.neste'} @:{'words.generated.ar'}\",\"start_date\":\"Startdato\",\"this_year\":\"@:{'templates.generated.compat.global.text.this_year'}\",\"today\":\"@:{'templates.generated.compat.common.today'}\",\"tomorrow\":\"@:{'templates.generated.compat.common.tomorrow'}\"},\"user_admin\":{\"currency\":\"Valuta\",\"cvr\":\"@:{'words.generated.cvr'}\",\"economic_data\":\"@.capitalize:{'words.generated.økonomiske'} @:{'words.generated.data'}\",\"group_id\":\"@.capitalize:{'words.generated.gruppe'} @.upper:{'words.generated.id'}\",\"mass_data_inserter\":\"Massedata innsætter\",\"mobile_phone\":\"Mobiltelefon\",\"orders\":{\"draft_not_found\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.var'} @:{'words.generated.ikke'} @:{'words.generated.mulig'} @:{'words.generated.a'} finne @:{'words.generated.utkastet'} @:{'words.generated.til'} @:{'words.generated.faktura'}. @.capitalize:{'words.generated.blir'} @:{'words.generated.det'} @:{'words.generated.fakturert'} @:{'words.generated.eller'} @:{'words.generated.slettet'} @:{'words.generated.utenfor'} @:{'words.generated.systemet'}?\",\"loading_subtitle\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.vent'} @:{'words.generated.mens'} @:{'words.generated.vi'} @:{'words.generated.laster'} @:{'words.generated.inn'} @:{'words.generated.brukerdata'}\",\"loading_title\":\"@.capitalize:{'words.generated.laster'} @:{'words.generated.brukerdata'}\",\"transaction_history\":\"@:{'templates.generated.compat.superuser.nav.orders'}\"},\"other\":\"@:{'templates.generated.compat.global.other'}\",\"overview\":{\"active_vehicles\":\"Aktive kjøretøy\",\"attributes\":\"Attributter\",\"connected\":\"Tilkoblet\",\"customer_management\":\"Kundestyring\",\"customer_number_required\":\"Et kundenummer kreves før kundeinnstillinger kan administreres.\",\"customer_rules\":\"Kunderegler\",\"effective_access\":\"Effektiv tilgang\",\"loaded\":\"Lastet\",\"load_failed\":\"Brukerdata kunne ikke lastes\",\"loading_user\":\"Laster bruker\",\"management_hub\":\"Administrasjon\",\"missing\":\"Mangler\",\"more_permissions\":\"+{count} flere tillatelser\",\"no_subscription_transactions\":\"Ingen vaskeabonnementstransaksjoner er registrert for kunden.\",\"not_invoiced\":\"Ikke fakturert\",\"open_draft\":\"Åpent utkast\",\"open_vehicles\":\"Åpne kjøretøy\",\"price_overrides\":\"Prisoverstyringer\",\"pricing\":\"Priser\",\"subscription_invoicing\":\"Abonnementsfakturering\",\"subtitle\":\"Oversikt over kundedata, tilgang, priser, kjøretøy og abonnementsfakturering.\",\"vehicles_load_failed\":\"Kjøretøy kunne ikke lastes.\",\"workspace_shortcuts\":\"Arbeidsområde\"},\"permissions\":\"@.capitalize:{'words.generated.tillatelser'}\",\"user_data\":\"@.capitalize:{'words.generated.brukerdata'}\",\"user_id\":\"@.capitalize:{'words.generated.bruker'}-@.upper:{'words.generated.id'}\",\"variables\":\"Variabler\",\"wash_subscriptions\":\"@.capitalize:{'words.generated.vaske'} @:{'words.generated.abonnement'}\"},\"user_bookings\":{\"my_vehicles\":\"@:{'templates.generated.compat.user_menu.my_vehicles'}\",\"select_vehicle_type_for\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.kjøretøytype'} @:{'words.generated.for'} {registration}\",\"vehicle_reg_input\":\"@.capitalize:{'words.generated.kjøretøyets'} @:{'words.generated.registreringsnummer'}\"},\"user_dashboard\":{\"bookings\":{\"book_subtitle\":\"@:{'words.generated.bestill'} @:{'words.generated.ny'} @:{'words.generated.vask'}\",\"book\":{\"basket\":\"@.capitalize:{'words.generated.basket'}\",\"booking_confirmed\":\"@.capitalize:{'words.generated.bestilling'} @:{'words.generated.bekreftet'}\",\"booking_confirmed_message\":\"@.capitalize:{'words.generated.din'} bokning @:{'words.generated.har'} bekräftats. @.capitalize:{'words.generated.du'} @:{'words.generated.kommer'} att @:{'words.generated.fa'} @:{'words.replication.host_definite_suffix'} bekräftelse @:{'words.generated.via'} @:{'words.generated.e'}-@:{'words.generated.post'}.\",\"booking_failed\":\"@.capitalize:{'words.generated.bestilling'} @:{'words.generated.mislyktes'}\",\"booking_failed_message\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppsto'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} @:{'words.generated.bestilling'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.prøv'} @:{'words.generated.igjen'}.\",\"customer_not_found\":\"@.capitalize:{'words.generated.kundenummer'} @:{'words.generated.ikke'} @:{'words.generated.funnet'}.\",\"enter_customer_number\":\"@:{'templates.generated.compat.self_wash.enter_customer_number'}\",\"enter_vehicle\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.inn'} @:{'words.generated.i'} @:{'words.generated.kjøretøyet'}\",\"error_copied\":\"@.capitalize:{'words.generated.feilmelding'} @:{'words.generated.kopiert'} @:{'words.generated.til'} @:{'words.generated.utklippstavlen'}\",\"expected_date_time\":\"@.capitalize:{'words.generated.forventet'} @:{'words.generated.dato'} @:{'words.generated.og'} @:{'words.generated.klokkeslett'}\",\"exterior_wash\":\"@.capitalize:{'words.generated.utvendig'} @:{'words.generated.vask'}\",\"go_to_confirmation\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.til'} @:{'words.generated.bekreftelse'}\",\"guest_info_html\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.gjest'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.velge'} @:{'words.generated.avdeling'}, påmelding @:{'words.generated.og'} @:{'words.generated.tidspunkt'}. @.capitalize:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.opprette'} @:{'words.generated.bestillingen'} @:{'words.generated.ma'} @:{'words.generated.du'} @:{'words.generated.logge'} @:{'words.generated.inn'}.\",\"guest_mode_login_prompt\":\"@.capitalize:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.fullføre'} @:{'words.generated.bestillingen'} @:{'words.generated.ma'} @:{'words.generated.du'} @:{'words.generated.logge'} @:{'words.generated.inn'} @:{'words.generated.pa'} @:{'words.generated.kontoen'} @:{'words.generated.din'}.\",\"guest_mode_warning\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.er'} @:{'words.generated.i'} gjestemodus.\",\"incl_pickup\":\"@.capitalize:{'words.generated.inkl'}. @:{'words.generated.henting'}\",\"interior_wash\":\"@.capitalize:{'words.generated.innvendig'} @:{'words.generated.vask'}\",\"is_this_your_vehicle\":\"@.capitalize:{'words.generated.er'} @:{'words.generated.dette'} @:{'words.generated.et'} @:{'words.generated.av'} @:{'words.generated.kjøretøyene'} @:{'words.generated.dine'}?\",\"login_for_products\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.inn'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.velge'} @:{'words.generated.produkter'} @:{'words.generated.for'} @:{'words.generated.din'} @:{'words.generated.bestilling'}.\",\"missing_fields\":\"Følgende @:{'words.generated.felt'} @:{'words.generated.mangler'}:\",\"missing_valid_customer_number\":\"@.capitalize:{'words.generated.gyldig'} @:{'words.generated.kundenummer'}\",\"missing_wash_hall\":\"@.capitalize:{'words.generated.vaskehall'}\",\"next_step_addons\":\"@.capitalize:{'words.generated.neste'} @:{'words.generated.trinn'}: @.capitalize:{'words.generated.velg'} @:{'words.generated.tillegg'}\",\"no_items_in_basket\":\"@.capitalize:{'words.generated.no'} @:{'words.generated.items'} @:{'words.generated.in'} @:{'words.generated.basket'} @:{'words.generated.yet'}\",\"product_selection_unavailable\":\"Produktutvalg @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.tilgjengelig'} @:{'words.generated.som'} @:{'words.generated.gjest'}.\",\"select_a_wash_hall\":\"@.capitalize:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vaskehall'}\",\"select_date_time_customer\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.dato'}/@:{'words.generated.klokkeslett'} @:{'words.generated.og'} @:{'words.generated.kundenummer'}\",\"select_department\":\"@:{'templates.generated.compat.nav.select_department'}\",\"select_products\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.produkter'}\",\"select_vehicle\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.et'} @:{'words.generated.kjøretøy'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.se'} @:{'words.generated.tilgjengelige'} @:{'words.generated.tillegg'}\",\"select_wash_hall\":\"@.capitalize:{'words.generated.velg'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vaskehall'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.fortsette'}\"},\"subtitle\":\"@.capitalize:{'words.generated.se'} bestillingene @:{'words.generated.dine'}\",\"title\":\"@:{'templates.generated.compat.user_menu.my_bookings'}\"},\"home\":{\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.se'} @:{'words.generated.dine'} @:{'words.generated.bestillinger'}, @:{'words.generated.bestillinger'} @:{'words.generated.og'} @:{'words.generated.kjøretøy'}\"},\"invoices\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.dine'} @:{'words.generated.fakturaer'}\",\"title\":\"@:{'templates.generated.compat.user_menu.my_invoices'}\"},\"materials\":{\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.materialene'} @:{'words.generated.dine'}\",\"title\":\"@.capitalize:{'words.generated.materialene'} @:{'words.generated.mine'}\"},\"menu\":{\"statistics\":\"@:{'templates.generated.compat.global.statistics'}\"},\"orders\":{\"single_subtitle\":\"@.capitalize:{'words.generated.se'} transaksjonsdetaljer\",\"subtitle\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.vaskene'} @:{'words.generated.dine'}\",\"title\":\"@:{'templates.generated.compat.user_menu.my_washes'}\"},\"profile\":{\"default_department\":{\"description\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.standardavdeling'}\",\"title\":\"@.capitalize:{'words.generated.standard'} @:{'words.generated.avdeling'}\"},\"driver\":{\"contact_description\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.kontaktinformasjon'} @:{'words.generated.som'} @:{'words.generated.sjafør'}\",\"contact_subtitle\":\"@.capitalize:{'words.generated.kontaktinformasjon'}\",\"country_code_desc\":\"Landskoden @:{'words.generated.din'} @:{'words.generated.for'} @:{'words.generated.telefonnummeret'}.\",\"customer_description\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.hvilken'} @:{'words.generated.kunde'} @:{'words.generated.du'} @:{'words.generated.vil'} opptre @:{'words.generated.pa'} @:{'words.generated.vegne'} @:{'words.generated.av'}.\",\"customer_subtitle\":\"Kundevalg\",\"customer_switch_help\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.sjafør'} @:{'words.generated.kan'} @:{'words.generated.du'} bytte mellom @:{'words.generated.ulike'} @:{'words.generated.kunder'} @:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.tilgang'} @:{'words.generated.til'}.\",\"edit_email\":\"@:{'words.generated.rediger'} @:{'words.generated.e'}-@:{'words.generated.post'}\",\"edit_name\":\"@:{'words.generated.rediger'} @:{'words.generated.navn'}\",\"name_desc\":\"Visningsnavnet @:{'words.generated.ditt'} @:{'words.generated.som'} @:{'words.generated.sjafør'}.\",\"phone_desc\":\"@.capitalize:{'words.generated.ditt'} @:{'words.generated.telefonnummer'} @:{'words.generated.som'} @:{'words.generated.sjafør'}.\",\"profile_description\":\"@.capitalize:{'words.generated.din'} sjåførinformasjon\",\"profile_subtitle\":\"Profilinformasjon\",\"username_desc\":\"@:{'words.generated.brukernavnet'} @:{'words.generated.ditt'} @:{'words.generated.kan'} @:{'words.generated.ikke'} endres.\"},\"invoicing\":{\"account_name_desc\":\"Kundekontonavn\",\"account_number_desc\":\"Kundekontonummer\",\"description\":\"@.capitalize:{'words.generated.din'} @:{'words.generated.fakturainformasjon'}\",\"title\":\"@.capitalize:{'words.generated.fakturainformasjon'}\"},\"microsoft_auth\":{\"create_event\":\"@:{'words.generated.opprett'} arrangement\",\"logged_in_as\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.er'} @:{'words.generated.logget'} @:{'words.generated.pa'} @:{'words.generated.som'} {name}\",\"login\":\"@.capitalize:{'words.generated.logg'} @:{'words.generated.pa'} @:{'words.generated.med'} @:{'words.generated.microsoft'}\",\"not_logged_in\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.er'} @:{'words.generated.ikke'} @:{'words.generated.logget'} @:{'words.generated.inn'}\",\"title\":\"@:{'words.generated.microsoft'}-@:{'words.generated.autentisering'}\"},\"microsoft\":{\"description\":\"@.capitalize:{'words.generated.dine'} @:{'words.generated.microsoft'}-@:{'words.generated.innstillinger'}\",\"title\":\"@:{'words.generated.microsoft'}\"},\"notifications\":{\"booking_email\":\"@.upper:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.for'} @:{'words.generated.bestillinger'}\",\"booking_email_desc\":\"@.upper:{'words.generated.e'}-@:{'words.generated.postadressen'} @:{'words.generated.som'} @:{'words.generated.mottar'} @:{'words.generated.bestillingsbekreftelser'} @:{'words.generated.og'} @:{'words.generated.vaskebevis'}.\",\"description\":\"@.capitalize:{'words.generated.varslingsinnstillingene'} @:{'words.generated.dine'}\",\"email_notifications\":\"@:{'templates.generated.compat.settings.email_notifications'}\",\"email_notifications_desc\":\"@.capitalize:{'words.generated.motta'} @:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.med'} @:{'words.generated.bestillingsbekreftelser'} @:{'words.generated.og'} @:{'words.generated.vaskesertifikater'}.\",\"sms_notifications_desc\":\"@.capitalize:{'words.generated.motta'} @:{'words.generated.sms'}-@:{'words.generated.varsler'} @:{'words.generated.for'} @:{'words.generated.ulike'} @:{'words.generated.arrangementer'}.\",\"sms_phone\":\"@.capitalize:{'words.generated.telefonnummer'} @:{'words.generated.for'} @:{'words.generated.sms'}-@:{'words.generated.varsler'}\",\"sms_phone_desc\":\"@.capitalize:{'words.generated.telefonnummeret'} @:{'words.generated.som'} @:{'words.generated.mottar'} @:{'words.generated.sms'}-@:{'words.generated.varsler'}.\",\"superuser_notifications\":\"Superbrukervarsler\",\"superuser_notifications_desc\":\"Motta e-postvarsler når en ny kunde registrerer seg på siden.\"},\"security\":{\"description\":\"Sikkerhetsinnstillingene @:{'words.generated.dine'}\",\"email_desc\":\"@.capitalize:{'words.generated.vi'} @:{'words.generated.bruker'} @:{'words.generated.denne'} @:{'words.generated.e'}-@:{'words.generated.posten'} @:{'words.generated.til'} @:{'words.generated.a'} tilbakestille @:{'words.generated.passordet'} @:{'words.generated.ditt'}, @:{'words.generated.sende'} @:{'words.generated.vaskesertifikater'} @:{'words.generated.og'} @:{'words.generated.annen'} viktig @:{'words.generated.informasjon'}.\"},\"title\":\"Brukerprofil\"},\"settings\":{\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.innstillingene'} @:{'words.generated.dine'}\"},\"sidebar\":{\"book\":\"Boka\",\"logout\":\"@:{'templates.generated.compat.common.logout'}\"},\"vehicles\":{\"new_subtitle\":\"@:{'words.generated.opprett'} @:{'words.generated.et'} @:{'words.generated.nytt'} @:{'words.generated.kjøretøy'}\",\"single_title\":\"@.capitalize:{'words.generated.kjøretøyet'} mitt\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.kjøretøyene'} @:{'words.generated.dine'}\"},\"wash\":{\"nearest_department\":\"@.capitalize:{'words.generated.nærmeste'} @:{'words.generated.avdeling'} @:{'words.generated.er'} {name}, @:{'words.generated.som'} @:{'words.generated.er'} @:{'words.generated.ca'}. {distance} km unna @:{'words.generated.din'} @:{'words.generated.naværende'} posisjon.\",\"subtitle\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.et'} @:{'words.generated.av'} @:{'words.generated.kjøretøyene'} @:{'words.generated.dine'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.starte'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vask'}\"}},\"user_home\":{\"book_wash_desc\":\"@:{'words.generated.bestill'} @:{'words.generated.vask'} @:{'words.generated.pa'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.av'} @:{'words.generated.vare'} @:{'words.generated.avdelinger'} - @:{'words.generated.med'} @:{'words.generated.mulighet'} @:{'words.generated.for'} @:{'words.generated.sikkerhetsplombering'}.\",\"contact_info_or_email\":\"@:{'words.generated.eller'} @:{'words.generated.e'}-@:{'words.generated.post'}\",\"contact_info_prefix\":\"@.capitalize:{'words.generated.for'} @:{'words.generated.problemer'} @:{'words.generated.kontakt'} @:{'words.generated.oss'} @:{'words.generated.pa'} @:{'words.generated.telefon'}\",\"create_vehicle_desc\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.et'} @:{'words.generated.kjøretøy'} @:{'words.generated.som'} @:{'words.generated.skal'} @:{'words.generated.kunne'} vaskes @:{'words.generated.pa'} @:{'words.generated.truck'} @.capitalize:{'words.generated.wash'}.\",\"create_vehicle\":\"@:{'words.generated.lag'} @:{'words.generated.kjøretøy'}\",\"download_certificates_desc\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.vaskesertifikater'} @:{'words.generated.for'} @:{'words.generated.dine'} @:{'words.generated.tidligere'} @:{'words.generated.vask'}.\",\"download_certificates\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.vaskesertifikater'}\",\"download_invoices_desc\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.dine'} @:{'words.generated.tidligere'} @:{'words.generated.fakturaer'}.\",\"download_invoices\":\"@.capitalize:{'words.generated.last'} @:{'words.generated.ned'} @:{'words.generated.fakturaer'}\",\"empty_state_desc\":\"@.capitalize:{'words.generated.du'} @:{'words.generated.har'} @:{'words.generated.ikke'} @:{'words.generated.tilgang'} @:{'words.generated.til'} @:{'words.generated.noen'} @:{'words.generated.snarveier'}. @.capitalize:{'words.generated.kontakt'} administratoren @:{'words.generated.din'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.fa'} @:{'words.generated.tildelt'} @:{'words.generated.tillatelser'}.\",\"empty_state_title\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.ser'} @:{'words.generated.tomt'} @:{'words.generated.ut'} @:{'words.generated.her'}\",\"select_customer_desc\":\"@.capitalize:{'words.generated.som'} @:{'words.generated.underbruker'} @:{'words.generated.ma'} @:{'words.generated.du'} @:{'words.generated.velge'} @:{'words.generated.hvilken'} @:{'words.generated.kunde'} @:{'words.generated.du'} @:{'words.generated.ønsker'} @:{'words.generated.a'} jobbe @:{'words.generated.pa'} @:{'words.generated.vegne'} @:{'words.generated.av'}.\",\"select_customer\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.kunde'}\",\"start_wash_desc\":\"@.capitalize:{'words.generated.ga'} @:{'words.generated.direkte'} @:{'words.generated.til'} @:{'words.generated.avdelingens'} @:{'words.generated.vaskebaner'} @:{'words.generated.og'} @:{'words.generated.start'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.vask'} @:{'words.generated.for'} @:{'words.generated.ditt'} @:{'words.generated.kjøretøy'}. @.capitalize:{'words.generated.velg'} @:{'words.generated.kjøretøyet'} @:{'words.generated.ditt'} @:{'words.generated.og'} @:{'words.generated.ønsket'} @:{'words.generated.vasketype'} @:{'words.generated.for'} @:{'words.generated.a'} @:{'words.generated.komme'} @:{'words.generated.i'} @:{'words.generated.gang'}.\"},\"user_menu\":{\"my_bookings\":\"@.capitalize:{'words.generated.mine'} @:{'words.generated.bestillinger'}\",\"my_invoices\":\"@.capitalize:{'words.generated.mine'} @:{'words.generated.fakturaer'}\",\"my_vehicles\":\"@.capitalize:{'words.generated.mine'} @:{'words.generated.kjøretøy'}\",\"my_washes\":\"@.capitalize:{'words.generated.mine'} @:{'words.generated.vasker'}\"},\"user_navigation\":{\"back_to_own_user\":\"@.capitalize:{'words.generated.tilbake'} @:{'words.generated.til'} @:{'words.generated.egen'} @:{'words.generated.bruker'}\",\"guest\":\"@.capitalize:{'words.generated.gjest'}\",\"my_customer_page\":\"@:{'words.generated.min'} kundeside\",\"my_profile\":\"@:{'words.generated.min'} @:{'words.generated.profil'}\"},\"user_notifications\":{\"mark_as_read_error\":\"@.capitalize:{'words.generated.det'} @:{'words.generated.oppstod'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.feil'} @:{'words.generated.under'} merking @:{'words.generated.av'} meldingen @:{'words.generated.som'} @:{'words.generated.lest'}. @.capitalize:{'words.generated.vennligst'} @:{'words.generated.prøv'} @:{'words.generated.igjen'}, @:{'words.generated.eller'} @:{'words.generated.kontakt'} kundestøtte.\"},\"user_vehicles\":{\"activate\":\"@:{'templates.generated.compat.settings.enable'}\",\"add_new_vehicle\":\"@:{'words.generated.legg'} @:{'words.generated.til'} @:{'words.generated.nytt'} @:{'words.generated.kjøretøy'}\",\"deactivate\":\"@:{'templates.generated.compat.settings.disable'}\",\"no_vehicle_type_configured\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.vogntype'} konfigureret\",\"reference_placeholder\":\"@.capitalize:{'words.generated.referanse'} / @:{'words.generated.internt'} @:{'words.generated.nummer'}\",\"self_service_placeholder\":\"@:{'words.generated.plassholder'} @:{'words.generated.for'} @:{'words.generated.kjøretøy'} @:{'words.generated.med'} @:{'words.generated.selvbetjening'}\",\"self_service\":\"@:{'templates.generated.compat.nav.self_wash'}\",\"subscriptions_placeholder\":\"@:{'words.generated.plassholder'} @:{'words.generated.for'} @:{'words.generated.kjøretøy'} @:{'words.generated.med'} @:{'words.generated.aktive'} @:{'words.generated.vaskeabonnement'}\",\"vehicle_count_placeholder\":\"@:{'words.generated.plassholder'} @:{'words.generated.for'} køretøjsantal\",\"vehicles_with_self_service\":\"@.capitalize:{'words.generated.køretøjer'} @:{'words.generated.med'} @:{'words.generated.selvbetjening'}\",\"vehicles_with_subscriptions\":\"@.capitalize:{'words.generated.kjøretøy'} @:{'words.generated.med'} @:{'words.generated.aktive'} @:{'words.generated.vaskeabonnement'}\",\"view_all_self_service\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.alle'} {count} @:{'words.generated.køretøjer'} @:{'words.generated.med'} @:{'words.generated.selvbetjening'}\",\"view_all_subscriptions\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.alle'} {count} @:{'words.generated.køretøjer'} @:{'words.generated.med'} @:{'words.generated.aktive'} vaskeabonnementer\",\"view_all_vehicles\":\"@.capitalize:{'words.generated.se'} @:{'words.generated.alle'} {count} @:{'words.generated.køretøjer'}\",\"with_self_service\":\"@:{'words.generated.med'} @:{'words.generated.selvvask'}\",\"without_self_service\":\"@:{'words.generated.uten'} @:{'words.generated.selvvask'}\"},\"validation\":{\"email\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.gyldig'} @:{'words.generated.e'}-@:{'words.generated.postadresse'}\",\"invalid\":\"@:{'words.generated.ugyldig'} @:{'words.generated.verdi'}\",\"max_length\":\"@.capitalize:{'words.generated.ma'} @:{'words.generated.ikke'} @:{'words.generated.være'} @:{'words.generated.mer'} enn {max} @:{'words.generated.tegn'}\",\"max\":\"Maks {max} @:{'words.generated.tegn'} @:{'words.generated.tillatt'}\",\"min_length\":\"@.capitalize:{'words.generated.ma'} bestå @:{'words.generated.av'} @:{'words.generated.minst'} {min} @:{'words.generated.tegn'}\",\"min\":\"@.capitalize:{'words.generated.minst'} {min} @:{'words.generated.tegn'} @:{'words.generated.pakrevd'}\",\"numeric\":\"@.capitalize:{'words.generated.ma'} @:{'words.generated.være'} @:{'words.generated.et'} tall\",\"password_confirmation\":\"@:{'words.generated.passordene'} @:{'words.generated.stemmer'} @:{'words.generated.ikke'} overens\",\"password_match\":\"@:{'words.generated.passordene'} @:{'words.generated.stemmer'} @:{'words.generated.ikke'}\",\"password\":\"@.capitalize:{'words.generated.passordet'} @:{'words.generated.ma'} @:{'words.generated.være'} @:{'words.generated.minst'} 8 @:{'words.generated.tegn'}\",\"phone\":\"@.capitalize:{'words.generated.vennligst'} @:{'words.generated.skriv'} @:{'words.generated.inn'} @:{'words.generated.et'} @:{'words.generated.gyldig'} @:{'words.generated.telefonnummer'}\",\"required\":\"@.capitalize:{'words.generated.dette'} @:{'words.generated.feltet'} @:{'words.generated.er'} obligatorisk\"},\"vehicles\":{\"add\":\"@:{'words.generated.lagg'} @:{'words.generated.till'} @:{'words.generated.fordon'}\",\"add_modal\":{\"customer_label\":\"Kunde\",\"customer_placeholder\":\"Søk etter kundenavn eller kundenummer\",\"error\":\"Kunne ikke legge til kjøretøy.\",\"no_customer_results\":\"Ingen kunder funnet\",\"reference_placeholder\":\"Valgfri referanse\",\"registration_placeholder\":\"Registreringsnummer\",\"selected_customer\":\"Valgt kunde\",\"submit\":\"Legg til kjøretøy\",\"title\":\"Legg til kjøretøy\",\"type_load_error\":\"Kunne ikke laste kjøretøytyper.\",\"type_placeholder\":\"Velg kjøretøytype\",\"validation_error\":\"Velg kunde, registreringsnummer og kjøretøytype.\"},\"brand\":\"Märke\",\"color\":\"Färg\",\"delete_vehicle\":\"@:{'templates.generated.compat.vehicles.delete'}\",\"delete\":\"@.capitalize:{'words.generated.slett'} @:{'words.generated.kjøretøy'}\",\"edit\":\"@:{'words.generated.rediger'} @:{'words.generated.kjøretøy'}\",\"model\":\"Modell\",\"new_vehicle\":\"@.capitalize:{'words.generated.nytt'} @:{'words.generated.kjøretøy'}\",\"no_previous_washes\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.tidligere'} @:{'words.generated.vask'} @:{'words.generated.funnet'}\",\"no_vehicles\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.kjøretøy'} @:{'words.generated.funnet'}\",\"owner\":\"eier\",\"previous_wash\":\"@.capitalize:{'words.generated.forrige'} @:{'words.generated.vask'}\",\"previous_washes_count\":\"{count} @:{'words.generated.tidligere'} @:{'words.generated.vask'}\",\"previous_washes\":\"@.capitalize:{'words.generated.tidligere'} @:{'words.generated.vask'}\",\"search_placeholder\":\"@.capitalize:{'words.generated.søk'} @:{'words.generated.etter'} @:{'words.generated.registreringsnummer'}, @:{'words.generated.type'}, @:{'words.generated.kunde'}\",\"search\":\"@:{'words.generated.sok'} @:{'words.generated.fordon'}...\",\"subtitle\":\"@.capitalize:{'words.generated.administrer'} @:{'words.generated.kjøretøy'}\",\"type\":\"Typ\",\"types\":{\"bus\":\"Buss\",\"semi\":\"Bergingsbil\",\"tractor\":\"@:{'words.generated.traktor'}\",\"trailer\":\"Släpvagn\",\"truck\":\"@.capitalize:{'words.generated.lastebil'}\",\"van\":\"Skåpbil\"},\"vehicle_types\":{\"box\":\"Kassebil\",\"car\":\"Personbil\",\"crew\":\"Mannskap\",\"semi\":\"@:{'templates.generated.compat.pos.vehicle_types.sættevogn'}\"},\"wash_history\":\"Kringkastingshistorikk\"},\"xlvask\":{\"admin\":{\"customer_count\":\"@.capitalize:{'words.generated.antall'} @:{'words.generated.kunder'}\",\"fetch_customers\":\"@.capitalize:{'words.generated.fa'} @:{'words.generated.kunder'}\",\"fetch_objects\":\"@:{'words.generated.hent'} @:{'words.generated.objekter'}\",\"object_count\":\"@.capitalize:{'words.generated.antall'} @:{'words.generated.objekter'}\",\"objects\":\"@.capitalize:{'words.generated.objekter'}\",\"subtitle\":\"@.capitalize:{'words.generated.her'} @:{'words.generated.kan'} @:{'words.generated.du'} @:{'words.generated.administrere'} @:{'words.generated.xlvask'}-@:{'words.generated.integrasjonen'}\",\"title\":\"@:{'words.generated.xlvask'} administrasjon\"}},\"limited_backoffice\":{\"title\":\"Backoffice\",\"subtitle\":\"Administrer @:{'words.generated.avdelingspriser'} @:{'words.generated.og'} @:{'words.generated.medarbeidertilgang'}.\",\"department\":\"@.capitalize:{'words.generated.avdeling'}\",\"select_department\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.avdeling'}\",\"loading\":\"Laster...\",\"no_departments\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.avdelinger'} @:{'words.generated.er'} tilgjengelige @:{'words.generated.for'} @:{'words.generated.denne'} kontoen.\",\"cancel\":\"Avbryt\",\"nav\":{\"prices\":\"@.capitalize:{'words.generated.priser'}\",\"customer_pricing\":\"Kundepriser\",\"employees\":\"@.capitalize:{'words.generated.medarbeidere'}\"},\"forbidden\":{\"title\":\"@.capitalize:{'words.generated.tilgang'} nektet\",\"department\":\"@.capitalize:{'words.generated.du'} har @:{'words.generated.ikke'} @:{'words.generated.tilgang'} til @:{'words.generated.denne'} @:{'words.generated.avdelingen'}.\"},\"prices\":{\"title\":\"@.capitalize:{'words.generated.avdelingspriser'}\",\"save\":\"@.capitalize:{'words.generated.lagre'} @:{'words.generated.priser'}\",\"saved\":\"Prisene @:{'words.generated.er'} @:{'words.generated.lagret'}.\",\"autosave_saving\":\"Lagrer priser...\",\"autosave_pending\":\"Prisendringer venter.\",\"autosave_saved\":\"Alle prisendringer er lagret.\",\"product\":\"Produkt\",\"price\":\"Avdelingspris\",\"price_required\":\"@.capitalize:{'words.generated.alle'} @:{'words.generated.produkter'} @:{'words.generated.ma'} ha @:{'words.replication.host_definite_suffix'} @:{'words.generated.ikke'}-negativ numerisk pris.\",\"setup_required_title\":\"Prisoppsett @:{'words.generated.kreves'}\",\"setup_required_message\":\"@.capitalize:{'words.replication.host_definite_suffix'} superbruker @:{'words.generated.ma'} opprette eksplisitte @:{'words.generated.priser'} @:{'words.generated.for'} @:{'words.generated.alle'} @:{'words.generated.produkter'} @:{'words.generated.før'} @:{'words.generated.avdelingen'} @:{'words.generated.kan'} administreres her.\",\"no_products\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.produkter'} @:{'words.generated.er'} konfigurert @:{'words.generated.for'} @:{'words.generated.denne'} @:{'words.generated.avdelingen'}.\"},\"employees\":{\"title\":\"@.capitalize:{'words.generated.medarbeidertilgang'}\",\"subtitle\":\"@:{'words.generated.opprett'} @:{'words.generated.medarbeidere'} @:{'words.generated.og'} tildel @:{'words.replication.host_definite_suffix'} begrenset @:{'words.generated.rolle'} @:{'words.generated.for'} dine @:{'words.generated.avdelinger'}.\",\"create_title\":\"@:{'words.generated.opprett'} @:{'words.generated.medarbeider'}\",\"edit_title\":\"@:{'words.generated.rediger'} @:{'words.generated.medarbeider'}\",\"name\":\"Navn\",\"email\":\"E-post\",\"user_id\":\"Bruker-ID\",\"phone\":\"Telefon\",\"phone_validation\":\"Telefonnummeret må være 4-15 sifre.\",\"country_codes\":{\"denmark\":\"Danmark\",\"sweden\":\"Sverige\",\"norway\":\"Norge\",\"finland\":\"Finland\"},\"password\":\"@.capitalize:{'words.generated.passord'}\",\"password_create_help\":\"@.capitalize:{'words.generated.kreves'} @:{'words.generated.for'} nye @:{'words.generated.medarbeidere'}. Bruk @:{'words.generated.minst'} 8 tegn.\",\"password_update_help\":\"La stå tomt @:{'words.generated.for'} å beholde nåværende @:{'words.generated.passord'}.\",\"role\":\"@.capitalize:{'words.generated.rolle'}\",\"departments\":\"@.capitalize:{'words.generated.avdelinger'}\",\"department_required\":\"@.capitalize:{'words.generated.velg'} @:{'words.generated.minst'} @:{'words.replication.host_definite_suffix'} @:{'words.generated.avdeling'}.\",\"validation\":\"Fyll ut de påkrevde feltene @:{'words.generated.før'} @:{'words.generated.du'} lagrer.\",\"save\":\"@.capitalize:{'words.generated.lagre'} @:{'words.generated.medarbeider'}\",\"created\":\"@.capitalize:{'words.generated.medarbeideren'} @:{'words.generated.er'} opprettet.\",\"saved\":\"@.capitalize:{'words.generated.medarbeideren'} @:{'words.generated.er'} @:{'words.generated.lagret'}.\",\"deactivated\":\"@.capitalize:{'words.generated.medarbeideren'} @:{'words.generated.er'} deaktivert.\",\"include_inactive\":\"Vis inaktive\",\"empty\":\"@.capitalize:{'words.generated.ingen'} @:{'words.generated.medarbeidere'} funnet.\",\"status\":\"Status\",\"actions\":\"Handlinger\",\"active\":\"Aktiv\",\"inactive\":\"Inaktiv\",\"edit\":\"@:{'words.generated.rediger'}\",\"deactivate\":\"Deaktiver\",\"login_link\":\"QR-innlogging\",\"login_link_title\":\"Innloggingslenke for medarbeider\",\"login_link_qr_alt\":\"QR-kode for innloggingslenke\",\"login_link_url\":\"Innloggingslenke\",\"copy_login_link\":\"Kopier lenke\",\"login_link_copied\":\"Lenken er kopiert.\"},\"roles\":{\"viewer\":{\"label\":\"Deaktivert\",\"description\":\"Holder den ansatte registrert uten tilgang til ordre-, booking- eller administrasjonsfunksjoner.\"},\"cashier\":{\"label\":\"Kasserer\",\"description\":\"@.capitalize:{'words.generated.kan'} arbeide med @:{'words.generated.ordre'}, ordrelinjer @:{'words.generated.og'} @:{'words.generated.bookinger'} @:{'words.generated.for'} @:{'words.generated.tildelte'} @:{'words.generated.avdelinger'}.\"},\"booking_coordinator\":{\"label\":\"Bookingkoordinator\",\"description\":\"@.capitalize:{'words.generated.kan'} @:{'words.generated.koordinere'} @:{'words.generated.bookinger'} @:{'words.generated.for'} @:{'words.generated.tildelte'} @:{'words.generated.avdelinger'}.\"},\"operations_lead\":{\"label\":\"Driftsansvarlig\",\"description\":\"@.capitalize:{'words.generated.kan'} @:{'words.generated.koordinere'} @:{'words.generated.ordre'}, @:{'words.generated.bookinger'} @:{'words.generated.og'} driftsvisninger @:{'words.generated.for'} @:{'words.generated.tildelte'} @:{'words.generated.avdelinger'}.\"},\"department_admin\":{\"label\":\"Avdelingsadministrator\",\"description\":\"@.capitalize:{'words.generated.kan'} administrere begrensede @:{'words.generated.priser'} @:{'words.generated.og'} @:{'words.generated.medarbeidertilgang'} @:{'words.generated.for'} @:{'words.generated.tildelte'} @:{'words.generated.avdelinger'}.\"}},\"errors\":{\"load_departments\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.laste'} @:{'words.generated.avdelinger'}.\",\"load_prices\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.laste'} @:{'words.generated.avdelingspriser'}.\",\"save_prices\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.lagre'} @:{'words.generated.avdelingspriser'}.\",\"load_employees\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.laste'} @:{'words.generated.medarbeidere'}.\",\"save_employee\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.lagre'} @:{'words.generated.medarbeideren'}.\",\"deactivate_employee\":\"@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} deaktivere @:{'words.generated.medarbeideren'}.\",\"generate_employee_login_link\":\"Kunne ikke opprette innloggingslenke for medarbeideren.\"},\"role_permissions\":{\"title\":\"Rolletillatelser\",\"tooltip\":\"Vis rolletillatelser\",\"intro\":\"Roller samler de nøyaktige funksjonene som tildeles en ansatt når rollen lagres.\",\"scope\":\"Alle funksjoner er begrenset til avdelingene som velges for den ansatte.\",\"selected\":\"Valgt\",\"close\":\"Lukk\",\"unavailable\":\"Tillatelsesdetaljer er ikke tilgjengelige for denne rollen før rollekatalogen er oppdatert.\",\"groups\":{\"account\":\"Konto\",\"orders\":\"Ordrer\",\"products\":\"Produkter\",\"customers\":\"Kunder\",\"vehicles\":\"Kjøretøy\",\"attachments\":\"Vedlegg\",\"scanner\":\"Skannere\",\"bookings\":\"Bookinger\",\"time_bookings\":\"Tidsbookinger\",\"reports\":\"Rapporter\",\"limited_backoffice\":\"Backoffice\",\"unknown\":\"Annet\"},\"capabilities\":{\"sign_in\":{\"label\":\"Logg inn\",\"description\":\"Lar den ansatte logge inn i Pleno.\"},\"view_own_permissions\":{\"label\":\"Se egne tillatelser\",\"description\":\"Viser den ansatte hvilke tilgangsrettigheter kontoen har.\"},\"view_orders\":{\"label\":\"Se ordrer\",\"description\":\"Kan åpne ordrelister og ordredetaljer for tildelte avdelinger.\"},\"create_orders\":{\"label\":\"Opprett ordrer\",\"description\":\"Kan opprette nye ordrer for tildelte avdelinger.\"},\"edit_orders\":{\"label\":\"Rediger ordrer\",\"description\":\"Kan endre ordredetaljer for tildelte avdelinger.\"},\"delete_orders\":{\"label\":\"Slett ordrer\",\"description\":\"Kan slette ordrer i tildelte avdelinger.\"},\"view_order_items\":{\"label\":\"Se ordrelinjer\",\"description\":\"Kan se produkter, tjenester og priser på ordrer.\"},\"create_order_items\":{\"label\":\"Opprett ordrelinjer\",\"description\":\"Kan legge produkter og tjenester til ordrer.\"},\"update_order_lines\":{\"label\":\"Rediger ordrelinjer\",\"description\":\"Kan endre produkter, antall og priser på ordrer.\"},\"remove_order_lines\":{\"label\":\"Slett ordrelinjer\",\"description\":\"Kan fjerne produkter og tjenester fra ordrer.\"},\"charge_orders\":{\"label\":\"Belast ordrer\",\"description\":\"Kan ta betaling eller belaste en betalingsreservasjon for en ordre.\"},\"complete_orders\":{\"label\":\"Fullfør ordrer\",\"description\":\"Kan markere ordrer som fullført.\"},\"view_product_catalog\":{\"label\":\"Se produktkatalog\",\"description\":\"Kan laste POS-kategorier, produkter, priser og tillegg.\"},\"view_product_recommendations\":{\"label\":\"Se produktforslag\",\"description\":\"Kan se produktforslag basert på ordrer og kjøretøydata.\"},\"search_customers\":{\"label\":\"Søk kunder\",\"description\":\"Kan søke og velge kunder for POS-ordrer.\"},\"view_customer_details\":{\"label\":\"Se kundeopplysninger\",\"description\":\"Kan laste kundeopplysninger fra et kundenummer.\"},\"view_customer_notes\":{\"label\":\"Se kundemerknader\",\"description\":\"Kan lese kundemerknader i POS.\"},\"add_customer_notes\":{\"label\":\"Legg til kundemerknader\",\"description\":\"Kan legge til kundemerknader fra POS.\"},\"view_customer_flags\":{\"label\":\"Se kundemarkeringer\",\"description\":\"Kan se kundemarkeringer som påvirker ordrekrav og produktregler.\"},\"search_vehicles\":{\"label\":\"Søk kjøretøy\",\"description\":\"Kan søke etter registreringsnummer og se kjøretøystatus.\"},\"view_vehicle_matches\":{\"label\":\"Se kjøretøytreff\",\"description\":\"Kan se kundetreff for kjøretøy og forslag til ukjente kjøretøy.\"},\"view_vehicle_history\":{\"label\":\"Se kjøretøyhistorikk\",\"description\":\"Kan se nylig ordrehistorikk for et registreringsnummer.\"},\"view_order_attachments\":{\"label\":\"Se ordrevedlegg\",\"description\":\"Kan liste vedlegg på ordrer.\"},\"add_order_attachments\":{\"label\":\"Legg til ordrevedlegg\",\"description\":\"Kan laste opp filer og legge ved vaskesertifikater på ordrer.\"},\"download_order_attachments\":{\"label\":\"Last ned ordrevedlegg\",\"description\":\"Kan åpne og laste ned ordrevedlegg.\"},\"view_plate_scans\":{\"label\":\"Se nummerskiltskanninger\",\"description\":\"Kan se nylige nummerskiltskanninger og skannere for tildelte avdelinger.\"},\"view_department_bookings\":{\"label\":\"Se avdelingsbookinger\",\"description\":\"Kan se bookinger for tildelte avdelinger.\"},\"view_own_bookings\":{\"label\":\"Se egne bookinger\",\"description\":\"Kan se bookingantall og bookinger knyttet til ansattkontoen.\"},\"update_bookings\":{\"label\":\"Rediger bookinger\",\"description\":\"Kan endre tillatte bookingdetaljer.\"},\"create_bookings\":{\"label\":\"Opprett bookinger\",\"description\":\"Kan opprette nye bookinger for tildelte avdelinger.\"},\"mark_bookings_complete\":{\"label\":\"Fullfør bookinger\",\"description\":\"Kan markere bookinger som fullført.\"},\"send_booking_confirmations\":{\"label\":\"Send bookingbekreftelser på nytt\",\"description\":\"Kan sende bookingbekreftelser og fullførings-e-poster på nytt.\"},\"view_time_booking_entries\":{\"label\":\"Se tidsbookinger\",\"description\":\"Kan gå gjennom tidsbookingoppføringer for tildelte avdelinger.\"},\"create_time_booking_entries\":{\"label\":\"Opprett tidsbookinger\",\"description\":\"Kan legge til nye tidsbookingoppføringer.\"},\"edit_time_booking_entries\":{\"label\":\"Rediger tidsbookinger\",\"description\":\"Kan redigere tidsbookingoppføringer når backend-ruten støtter det.\"},\"view_order_statistics\":{\"label\":\"Se ordrestatistikk\",\"description\":\"Kan åpne ordrestatistikk for tildelte avdelinger.\"},\"view_booking_statistics\":{\"label\":\"Se bookingstatistikk\",\"description\":\"Kan åpne bookingstatistikk for tildelte avdelinger.\"},\"open_limited_backoffice\":{\"label\":\"Åpne begrenset backoffice\",\"description\":\"Kan åpne det begrensede backofficeområdet.\"},\"manage_department_prices\":{\"label\":\"Administrer avdelingspriser\",\"description\":\"Kan redigere eksplisitte priser for tildelte avdelinger.\"},\"view_customer_pricing\":{\"label\":\"View customer pricing\",\"description\":\"Can view department-specific customer prices and discounts for assigned departments.\"},\"manage_customer_pricing\":{\"label\":\"Manage customer pricing\",\"description\":\"Can edit department-specific customer prices and discounts for assigned departments.\"},\"manage_employee_access\":{\"label\":\"Administrer ansattilgang\",\"description\":\"Kan opprette, redigere og deaktivere begrensede backofficeansatte.\"},\"unknown\":{\"label\":\"Ekstra funksjon\",\"description\":\"Denne funksjonen kommer fra rollekatalogen, men er ennå ikke beskrevet i grensesnittet.\"}}}}}}}");
const noV2 = {
  words,
  templates,
};

const shared = /* #__PURE__ */ JSON.parse("{\"2fa\":{\"back_to_login\":\"@:{'templates.generated.compat.2fa.back_to_login'}\",\"code_label\":\"@:{'templates.generated.compat.2fa.code_label'}\",\"code_placeholder\":\"123456\",\"description\":\"@:{'templates.generated.compat.2fa.description'}\",\"disable_button\":\"@:2fa.disable_title\",\"disable_confirm\":\"@:{'templates.generated.compat.2fa.disable_confirm'}\",\"disable_error_title\":\"@:{'templates.generated.compat.2fa.disable_error_title'}\",\"disable_title\":\"@:{'templates.generated.compat.2fa.disable_title'}\",\"disabled_message\":\"@:{'templates.generated.compat.2fa.disabled_message'}\",\"disabled_title\":\"@:{'templates.generated.compat.2fa.disabled_title'}\",\"enable_button\":\"@:{'templates.generated.compat.2fa.enable_button'}\",\"enabled_message\":\"@:{'templates.generated.compat.2fa.enabled_message'}\",\"enabled_title\":\"@:{'templates.generated.compat.2fa.enabled_title'}\",\"enter_code\":\"@:{'templates.generated.compat.2fa.enter_code'}\",\"invalid_code\":\"@:{'templates.generated.compat.2fa.invalid_code'}\",\"setup_error_title\":\"@:{'templates.generated.compat.2fa.setup_error_title'}\",\"setup_manual\":\"@:{'templates.generated.compat.2fa.setup_manual'}\",\"setup_step1\":\"@:{'templates.generated.compat.2fa.setup_step1'}\",\"setup_step2\":\"@:{'templates.generated.compat.2fa.setup_step2'}\",\"setup_title\":\"@:{'templates.generated.compat.2fa.setup_title'}\",\"status_disabled_desc\":\"@:{'templates.generated.compat.2fa.status_disabled_desc'}\",\"status_disabled\":\"@:{'templates.generated.compat.2fa.status_disabled'}\",\"status_enabled_desc\":\"@:{'templates.generated.compat.2fa.status_enabled_desc'}\",\"status_enabled\":\"@:{'templates.generated.compat.2fa.status_enabled'}\",\"title\":\"@:{'templates.generated.compat.2fa.title'}\",\"verification_success\":\"@:{'templates.generated.compat.2fa.verification_success'}\",\"verify_button\":\"@:{'templates.generated.compat.2fa.verify_button'}\",\"verify_description\":\"@:{'templates.generated.compat.2fa.verify_description'}\",\"verify_title\":\"@:{'templates.generated.compat.2fa.verify_title'}\"},\"about_us\":{\"solutions\":{\"customer\":{\"app_item1\":\"@:{'templates.generated.compat.about_us.solutions.customer.app_item1'}\",\"app_item2\":\"@:{'templates.generated.compat.about_us.solutions.customer.app_item2'}\",\"app_item3\":\"@:{'templates.generated.compat.about_us.solutions.customer.app_item3'}\",\"app_item4\":\"@:{'templates.generated.compat.about_us.solutions.customer.app_item4'}\",\"app_title\":\"@:{'templates.generated.compat.about_us.solutions.customer.app_title'}\",\"login\":\"@:{'templates.generated.compat.global.login'}\",\"portal_item1\":\"@:{'templates.generated.compat.about_us.solutions.customer.portal_item1'}\",\"portal_item2\":\"@:about_us.solutions.customer.app_item3\",\"portal_item3\":\"@:{'templates.generated.compat.about_us.solutions.customer.portal_item3'}\",\"portal_item4\":\"@:{'templates.generated.compat.user_home.download_certificates'}\",\"portal_item5\":\"@:user_home.download_invoices\",\"portal_title\":\"@:{'templates.generated.compat.about_us.solutions.customer.portal_title'}\",\"register\":\"@:{'templates.generated.compat.superuser.pages.categories.create'}\",\"title\":\"@:{'templates.generated.compat.about_us.solutions.customer.title'}\"},\"operator\":{\"book_demo\":\"@:{'templates.generated.compat.about_us.solutions.operator.book_demo'}\",\"login\":\"@:{'templates.generated.compat.global.login'}\",\"module_item1\":\"@:{'templates.generated.compat.about_us.solutions.operator.module_item1'}\",\"module_item2\":\"@:about_us.solutions.operator.pos_item4\",\"module_item3\":\"@:{'templates.generated.compat.about_us.solutions.operator.module_item3'}\",\"module_item4\":\"@:about_us.solutions.operator.pos_item5\",\"module_title\":\"@:{'templates.generated.compat.about_us.solutions.operator.module_title'}\",\"pos_item1\":\"@:{'templates.generated.compat.about_us.solutions.operator.pos_item1'}\",\"pos_item2\":\"@:{'templates.generated.compat.about_us.solutions.operator.pos_item2'}\",\"pos_item3\":\"@:{'templates.generated.compat.about_us.solutions.operator.pos_item3'}\",\"pos_item4\":\"@:{'templates.generated.compat.about_us.solutions.operator.pos_item4'}\",\"pos_item5\":\"@:{'templates.generated.compat.about_us.solutions.operator.pos_item5'}\",\"pos_title\":\"@:{'templates.generated.compat.about_us.solutions.operator.pos_title'}\",\"title\":\"@:{'templates.generated.compat.about_us.solutions.operator.title'}\"},\"title\":\"@:{'templates.generated.compat.about_us.solutions.title'}\"},\"team\":{\"jeppe\":{\"role\":\"@:{'templates.generated.compat.about_us.team.jeppe.role'}\"},\"mads\":{\"role\":\"@:{'templates.generated.compat.about_us.team.mads.role'}\"},\"mikkel\":{\"role1\":\"@:{'templates.generated.compat.about_us.team.mikkel.role1'}\",\"role2\":\"@:{'templates.generated.compat.about_us.team.mikkel.role2'}\"},\"title\":\"@:{'templates.generated.compat.about_us.team.title'}\"},\"vision\":{\"developed_title\":\"@:{'templates.generated.compat.about_us.vision.developed_title'}\",\"item1\":\"@:{'templates.generated.compat.about_us.vision.item1'}\",\"item2\":\"@:{'templates.generated.compat.about_us.vision.item2'}\",\"item3\":\"@:{'templates.generated.compat.about_us.vision.item3'}\",\"item4\":\"@:{'templates.generated.compat.about_us.vision.item4'}\",\"paragraph1\":\"@:{'templates.generated.compat.about_us.vision.paragraph1'}\",\"paragraph2\":\"@:{'templates.generated.compat.about_us.vision.paragraph2'}\",\"title\":\"@:{'templates.generated.compat.about_us.vision.title'}\"}},\"admin\":{\"bookings\":{\"certificate_overview\":{\"subtitle\":\"@:{'templates.generated.compat.admin.bookings.certificate_overview.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.bookings.certificate_overview.title'}\"},\"complete\":{\"subtitle\":\"@:{'templates.generated.compat.admin.bookings.complete.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.bookings.complete.title'}\"},\"legacy\":{\"subtitle\":\"@:{'templates.generated.compat.admin.bookings.legacy.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.bookings.legacy.title'}\"},\"subtitle\":\"@:{'templates.generated.compat.pagination.bookings_overview'}\",\"title\":\"@:{'templates.generated.compat.common.bookings'}\"},\"daily_report\":{\"count\":{\"title\":\"@:{'templates.generated.compat.tables.common.count'}\"},\"history\":{\"title\":\"@:global.history\"},\"navigation\":{\"title\":\"@:{'templates.generated.compat.admin.daily_report.navigation.title'}\"},\"object\":{\"subtitle\":\"@:{'templates.generated.compat.admin.daily_report.object.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.daily_report.object.title'}\"},\"product_sales\":{\"subtitle_suffix\":\"@:{'templates.generated.compat.admin.daily_report.product_sales.subtitle_suffix'}\",\"title\":\"@:{'templates.generated.compat.admin.daily_report.product_sales.title'}\"},\"product_targets\":{\"cancel_aria\":\"@:{'templates.generated.compat.admin.daily_report.product_targets.cancel_aria'}\",\"edit_aria\":\"@:{'templates.generated.compat.admin.daily_report.product_targets.edit_aria'}\",\"input_label\":\"@:{'templates.generated.compat.admin.daily_report.product_targets.input_label'}\",\"save_aria\":\"@:{'templates.generated.compat.admin.daily_report.product_targets.save_aria'}\",\"save_error\":\"@:{'templates.generated.compat.admin.daily_report.product_targets.save_error'}\",\"validation_range\":\"@:{'templates.generated.compat.admin.daily_report.product_targets.validation_range'}\"},\"reports\":{\"avg_revenue\":{\"label\":\"@:{'templates.generated.compat.department_reports.avg_revenue_per_wash'}\",\"subtitle\":\"@:{'templates.generated.compat.department_reports.avg_revenue_per_wash'}\",\"title\":\"@:{'templates.generated.compat.department_reports.avg_revenue_per_wash'}\"},\"bookings\":{\"completed_count\":\"@:{'templates.generated.compat.admin.daily_report.reports.bookings.completed_count'}\",\"possible_count\":\"@:{'templates.generated.compat.admin.daily_report.reports.bookings.possible_count'}\",\"subtitle\":\"@:{'templates.generated.compat.common.bookings'}\",\"title\":\"@:{'templates.generated.compat.common.bookings'}\"},\"night_washes\":{\"chart_title\":\"@:{'templates.generated.compat.admin.daily_report.reports.night_washes.chart_title'}\",\"label\":\"@:global.wash_multiple\",\"sources\":{\"orders\":\"@:{'templates.generated.compat.common.bookings'}\",\"selfserve\":\"@:system_status.modules.selfserve\",\"xlvask\":\"@:{'templates.generated.compat.superuser_dashboard.sidebar.xlvask'}\"},\"subtitle\":\"@:{'templates.generated.compat.admin.daily_report.reports.night_washes.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.daily_report.reports.night_washes.title'}\",\"warning_missing_opening_hours\":\"@:{'templates.generated.compat.admin.daily_report.reports.night_washes.warning_missing_opening_hours'}\"},\"products_sold\":{\"possible_sold\":\"@:{'templates.generated.compat.admin.daily_report.reports.products_sold.possible_sold'}\",\"quantity_sold\":\"@:{'templates.generated.compat.admin.daily_report.reports.products_sold.quantity_sold'}\",\"sold\":\"@:{'templates.generated.compat.admin.daily_report.reports.products_sold.sold'}\",\"subtitle\":\"@:{'templates.generated.compat.admin.daily_report.reports.products_sold.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.daily_report.reports.products_sold.title'}\"},\"revenue\":{\"possible_revenue\":\"@:{'templates.generated.compat.admin.daily_report.reports.revenue.possible_revenue'}\",\"revenue\":\"@:{'templates.generated.compat.department_reports.revenue'}\",\"subtitle\":\"@:{'templates.generated.compat.department_reports.revenue'}\",\"title\":\"@:{'templates.generated.compat.department_reports.revenue'}\"},\"transactions\":{\"possible_transactions\":\"@:{'templates.generated.compat.admin.daily_report.reports.transactions.possible_transactions'}\",\"subtitle\":\"@:{'templates.generated.compat.admin.daily_report.reports.transactions.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.daily_report.reports.transactions.title'}\",\"transaction_count\":\"@:{'templates.generated.compat.admin.daily_report.reports.transactions.transaction_count'}\"},\"washes\":{\"completed_washes\":\"@:{'templates.generated.compat.admin.daily_report.reports.washes.completed_washes'}\",\"possible_washes\":\"@:{'templates.generated.compat.admin.daily_report.reports.washes.possible_washes'}\",\"subtitle\":\"@:{'templates.generated.compat.admin.daily_report.reports.washes.subtitle'}\",\"title\":\"@:global.wash_multiple\"},\"water_usage_per_wash\":{\"avg_water_usage\":\"@:{'templates.generated.compat.admin.daily_report.reports.water_usage_per_wash.avg_water_usage'}\",\"subtitle\":\"@:{'templates.generated.compat.admin.daily_report.reports.water_usage_per_wash.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.daily_report.reports.water_usage_per_wash.title'}\"},\"water_usage\":{\"subtitle\":\"@:{'templates.generated.compat.admin.daily_report.reports.water_usage.subtitle'}\",\"title\":\"@:admin.daily_report.reports.water_usage.water_usage\",\"water_usage\":\"@:{'templates.generated.compat.admin.daily_report.reports.water_usage.water_usage'}\"}},\"subtitle\":\"@:{'templates.generated.compat.admin.daily_report.subtitle'}\",\"tabs\":{\"history\":\"@:global.history\",\"previous_report\":\"@:{'templates.generated.compat.admin.daily_report.tabs.previous_report'}\",\"todays_report\":\"@:{'templates.generated.compat.admin.daily_report.tabs.todays_report'}\"},\"title\":\"@:{'templates.generated.compat.admin.daily_report.title'}\",\"titles\":{\"customers\":\"@:global.customers\",\"operations\":\"@:{'templates.generated.compat.admin.daily_report.titles.operations'}\",\"optional_products\":\"@:{'templates.generated.compat.admin.daily_report.titles.optional_products'}\"},\"today_form\":{\"title\":\"@:{'templates.generated.compat.admin.daily_report.today_form.title'}\"},\"todays_prefix\":\"@:{'templates.generated.compat.admin.daily_report.todays_prefix'}\",\"update_report\":\"@:{'templates.generated.compat.admin.daily_report.update_report'}\",\"update_todays_report\":\"@:{'templates.generated.compat.admin.daily_report.update_todays_report'}\"},\"debug\":{\"reader_test\":{\"subtitle\":\"@:{'templates.generated.compat.admin.debug.reader_test.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.debug.reader_test.title'}\"}},\"department_modules\":{\"bookings\":{\"description\":\"@:{'templates.generated.compat.admin.department_modules.bookings.description'}\",\"name\":\"@:{'templates.generated.compat.common.bookings'}\"},\"daily_report\":{\"description\":\"@:{'templates.generated.compat.admin.department_modules.daily_report.description'}\",\"name\":\"@:{'templates.generated.compat.admin.daily_report.title'}\"},\"goals\":{\"description\":\"@:{'templates.generated.compat.admin.department_modules.goals.description'}\",\"name\":\"@:{'templates.generated.compat.admin.goals.title'}\"},\"pos\":{\"description\":\"@:{'templates.generated.compat.admin.department_modules.pos.description'}\",\"name\":\"@:{'templates.generated.compat.pos.title'}\"},\"self_wash\":{\"description\":\"@:{'templates.generated.compat.admin.department_modules.self_wash.description'}\",\"disabled\":\"@:{'templates.generated.compat.admin.department_modules.self_wash.disabled'}\",\"enabled\":\"@:{'templates.generated.compat.admin.department_modules.self_wash.enabled'}\",\"name\":\"@:{'templates.generated.compat.user_vehicles.self_service'}\",\"update_error\":\"@:{'templates.generated.compat.admin.department_modules.self_wash.update_error'}\"}},\"errors\":{\"select_department\":\"@:{'templates.generated.compat.admin.errors.select_department'}\"},\"goals\":{\"form\":{\"edit_title\":\"@:{'templates.generated.compat.admin.goals.form.edit_title'}\",\"target_duration_every\":{\"help\":\"@:{'templates.generated.compat.admin.goals.form.target_duration_every.help'}\",\"label\":\"@:{'templates.generated.compat.admin.goals.form.target_duration_every.label'}\",\"placeholder\":\"@:{'templates.generated.compat.admin.goals.form.target_duration_every.placeholder'}\"},\"target_duration\":{\"help\":\"@:{'templates.generated.compat.admin.goals.form.target_duration.help'}\",\"label\":\"@:{'templates.generated.compat.admin.goals.form.target_duration.label'}\",\"modes\":{\"entire_duration\":\"@:{'templates.generated.compat.admin.goals.form.target_duration.modes.entire_duration'}\",\"legacy\":\"@:{'templates.generated.compat.admin.goals.form.target_duration.modes.legacy'}\",\"months\":\"@:{'templates.generated.compat.admin.goals.form.target_duration.modes.months'}\",\"weeks\":\"@:{'templates.generated.compat.admin.goals.form.target_duration.modes.weeks'}\",\"years\":\"@:{'templates.generated.compat.admin.goals.form.target_duration.modes.years'}\"}},\"title\":\"@:{'templates.generated.compat.admin.goals.form.title'}\",\"validation\":{\"date_range_invalid\":\"@:{'templates.generated.compat.admin.goals.form.validation.date_range_invalid'}\",\"departments_required\":\"@:{'templates.generated.compat.admin.goals.form.validation.departments_required'}\",\"target_duration_every_required\":\"@:{'templates.generated.compat.admin.goals.form.validation.target_duration_every_required'}\",\"target_required\":\"@:{'templates.generated.compat.admin.goals.form.validation.target_required'}\"}},\"subtitle\":\"@:{'templates.generated.compat.admin.goals.subtitle'}\",\"test_alert\":{\"department_id\":\"@:{'templates.generated.compat.admin.goals.test_alert.department_id'}\",\"destination\":\"@:{'templates.generated.compat.admin.goals.test_alert.destination'}\",\"email_to\":\"@:{'templates.generated.compat.admin.goals.test_alert.email_to'}\",\"error\":\"@:{'templates.generated.compat.admin.goals.test_alert.error'}\",\"send\":\"@:{'templates.generated.compat.admin.goals.test_alert.send'}\",\"slack_help\":\"@:{'templates.generated.compat.admin.goals.test_alert.slack_help'}\",\"slack_webhook\":\"@:{'templates.generated.compat.admin.goals.test_alert.slack_webhook'}\",\"sms_help\":\"@:{'templates.generated.compat.admin.goals.test_alert.sms_help'}\",\"sms_to\":\"@:{'templates.generated.compat.admin.goals.test_alert.sms_to'}\",\"subject\":\"@:{'templates.generated.compat.admin.goals.test_alert.subject'}\",\"success\":\"@:{'templates.generated.compat.admin.goals.test_alert.success'}\",\"title\":\"@:admin.goals.test_alert.send\",\"validation\":{\"email_required\":\"@:{'templates.generated.compat.admin.goals.test_alert.validation.email_required'}\",\"invalid_destination\":\"@:{'templates.generated.compat.admin.goals.test_alert.validation.invalid_destination'}\",\"slack_target_required\":\"@:{'templates.generated.compat.admin.goals.test_alert.validation.slack_target_required'}\",\"sms_required\":\"@:{'templates.generated.compat.admin.goals.test_alert.validation.sms_required'}\"}},\"title\":\"@:{'templates.generated.compat.admin.goals.title'}\"},\"intranet\":{\"events\":{\"title\":\"@:{'templates.generated.compat.admin.intranet.events.title'}\"},\"import_events\":{\"title\":\"@:{'templates.generated.compat.admin.intranet.import_events.title'}\"},\"subtitle\":\"@:{'templates.generated.compat.admin.intranet.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.intranet.title'}\"},\"notifications\":{\"sms_activated_description\":\"@:{'templates.generated.compat.admin.notifications.sms_activated_description'}\",\"sms_notifications\":\"@:{'templates.generated.compat.settings.sms_notifications'}\",\"sms_overview\":\"@:{'templates.generated.compat.admin.notifications.sms_overview'}\",\"subtitle\":\"@:{'templates.generated.compat.admin.notifications.subtitle'}\",\"title\":\"@:nav.notifications\"},\"order_bookings\":{\"subtitle\":\"@:{'templates.generated.compat.admin.order_bookings.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.order_bookings.title'}\"},\"overview\":{\"reports\":{\"title\":\"@:{'templates.generated.compat.admin.overview.reports.title'}\"},\"subtitle\":\"@:{'templates.generated.compat.admin.overview.subtitle'}\",\"title\":\"@:{'templates.generated.compat.nav.overview'}\"},\"pos\":{\"action_buttons\":{\"add_customer\":\"@:admin.pos.add_customer\",\"add_customer_desc\":\"@:{'templates.generated.compat.admin.pos.action_buttons.add_customer_desc'}\",\"add_note\":\"@:{'templates.generated.compat.global.add'}\",\"add_note_desc\":\"@:{'templates.generated.compat.global.add_desc'}\",\"cancel\":\"@:common.cancel\",\"cancel_desc\":\"@:{'templates.generated.compat.admin.pos.action_buttons.cancel_desc'}\",\"close\":\"@:common.close\",\"close_desc\":\"@:{'templates.generated.compat.admin.pos.action_buttons.close_desc'}\",\"confirm\":\"@:common.confirm\",\"confirm_desc\":\"@:{'templates.generated.compat.admin.pos.action_buttons.confirm_desc'}\",\"edit_reference\":\"@:{'templates.generated.compat.admin.pos.action_buttons.edit_reference'}\",\"edit_reference_desc\":\"@:{'templates.generated.compat.admin.pos.action_buttons.edit_reference_desc'}\",\"select_customer\":\"@:user_home.select_customer\",\"select_customer_desc\":\"@:{'templates.generated.compat.admin.pos.action_buttons.select_customer_desc'}\"},\"add_customer\":\"@:{'templates.generated.compat.admin.pos.add_customer'}\",\"add_more_items\":\"@:{'templates.generated.compat.admin.pos.add_more_items'}\",\"add_note\":\"@:{'templates.generated.compat.global.add'}\",\"add_note_placeholder\":\"@:{'templates.generated.compat.global.add'}\",\"add_to_cart\":\"@:pos.add_to_cart\",\"attachment\":\"@:{'templates.generated.compat.admin.pos.attachment'}\",\"attachments\":\"@:{'templates.generated.compat.admin.pos.attachments'}\",\"attachments_add\":\"@:{'templates.generated.compat.admin.pos.attachments_add'}\",\"attachments_download_action\":\"@:{'templates.generated.compat.guest.pwa.title'}\",\"attachments_no_preview\":\"@:{'templates.generated.compat.admin.pos.attachments_no_preview'}\",\"attachments_office_preview_unavailable\":\"@:{'templates.generated.compat.admin.pos.attachments_office_preview_unavailable'}\",\"attachments_upload_action\":\"@:{'templates.generated.compat.admin.pos.attachments_upload_action'}\",\"attachments_upload_description\":\"@:{'templates.generated.compat.admin.pos.attachments_upload_description'}\",\"attachments_upload_error\":\"@:{'templates.generated.compat.admin.pos.attachments_upload_error'}\",\"booking\":\"@:{'templates.generated.compat.common.order'}\",\"buttons\":{\"delete_all\":\"@:{'templates.generated.compat.admin.pos.buttons.delete_all'}\",\"go_back\":\"@:{'templates.generated.compat.admin.pos.buttons.go_back'}\",\"next\":\"@:{'templates.generated.compat.common.continue'}\",\"please_wait\":\"@:{'templates.generated.compat.admin.pos.buttons.please_wait'}\",\"print_invoice\":\"@:{'templates.generated.compat.admin.pos.buttons.print_invoice'}\"},\"cancel\":\"@:{'templates.generated.compat.admin.pos.cancel'}\",\"cancel_booking\":\"@:{'templates.generated.compat.bookings.cancel_booking'}\",\"cart\":\"@:{'templates.generated.compat.admin.pos.cart'}\",\"company_phone\":\"@:{'templates.generated.compat.admin.pos.company_phone'}\",\"complete\":\"@:{'templates.generated.compat.global.complete'}\",\"confirm\":\"@:{'templates.generated.compat.2fa.verify_button'}\",\"contact_email\":\"@:{'templates.generated.compat.admin.pos.contact_email'}\",\"contact_phone\":\"@:{'templates.generated.compat.admin.pos.contact_phone'}\",\"continue\":\"@:{'templates.generated.compat.common.continue'}\",\"created\":\"@:common.created\",\"created_by\":\"@:{'templates.generated.compat.admin.pos.created_by'}\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"customer_conflict\":{\"cancel\":\"@:common.cancel\",\"current_customer_label\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.selected_customer'}\",\"help_text\":\"@:{'templates.generated.compat.common.customer_conflict.help_text'}\",\"keep_selected_customer\":\"@:{'templates.generated.compat.common.customer_conflict.keep_selected_customer'}\",\"matched_customer_label\":\"@:{'templates.generated.compat.common.customer_conflict.matched_customer_label'}\",\"title\":\"@:{'templates.generated.compat.common.customer_conflict.title'}\",\"use_vehicle_customer\":\"@:{'templates.generated.compat.common.customer_conflict.use_vehicle_customer'}\",\"warning_text\":\"@:{'templates.generated.compat.common.customer_conflict.warning_text'}\"},\"customer_creation_error\":\"@:{'templates.generated.compat.common.customer_creation_error'}\",\"customer_creation_error_generic\":\"@:{'templates.generated.compat.common.customer_creation_error_generic'}\",\"customer_number\":\"@:global.customer_number\",\"customer_wishes\":\"@:{'templates.generated.compat.common.customer_wishes'}\",\"delete\":\"@:{'templates.generated.compat.global.delete'}\",\"details\":\"@:{'templates.generated.compat.admin.pos.details'}\",\"download\":\"@:{'templates.generated.compat.guest.pwa.title'}\",\"ean\":\"@:{'templates.generated.compat.admin.pos.ean'}\",\"drafts_assignment\":{\"button\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.button'}\",\"create_invoice_collection\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.create_invoice_collection'}\",\"customer_required\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.customer_required'}\",\"error\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.error'}\",\"invoice_collection_empty\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.invoice_collection_empty'}\",\"invoice_collection_label\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.invoice_collection_label'}\",\"invoice_collection_loading\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.invoice_collection_loading'}\",\"invoice_collection_orders\":\"@:{'templates.generated.compat.common.bookings'}\",\"invoice_collection_total\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.invoice_collection_total'}\",\"new_collection_description\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.new_collection_description'}\",\"new_collection_name\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.new_collection_name'}\",\"recalculate_prices\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.recalculate_prices'}\",\"recalculate_prices_help\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.recalculate_prices_help'}\",\"search_customer_label\":\"@:{'templates.generated.compat.superuser_invoice_distribution.filters.search_customer'}\",\"search_customer_placeholder\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.search_customer_placeholder'}\",\"selected_customer\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.selected_customer'}\",\"submit\":\"@:admin.pos.drafts_assignment.button\",\"subtitle\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.subtitle'}\",\"success\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.success'}\",\"title\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.title'}\"},\"duplicate_order_warning\":\"@:{'templates.generated.compat.admin.pos.duplicate_order_warning'}\",\"duplicates\":{\"subtitle\":\"@:{'templates.generated.compat.admin.pos.duplicates.subtitle'}\",\"title\":\"@:{'templates.generated.compat.tables.pos.possible_duplicates'}\"},\"edit\":\"@:{'templates.generated.compat.global.edit'}\",\"enter_safety_seal_number\":\"@:{'templates.generated.compat.admin.pos.enter_safety_seal_number'}\",\"generate_wash_certificate\":\"@:global.generate_wash_certificate\",\"hide_order_details\":\"@:{'templates.generated.compat.admin.pos.hide_order_details'}\",\"invoice_email\":\"@:{'templates.generated.compat.admin.pos.invoice_email'}\",\"license_plate\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"license_plates\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"loading\":\"@:{'templates.generated.compat.messages.loading'}\",\"make\":\"@:{'templates.generated.compat.admin.pos.make'}\",\"model\":\"@:{'templates.generated.compat.admin.pos.model'}\",\"no_content_available\":\"@:{'templates.generated.compat.admin.pos.no_content_available'}\",\"no_plates_found\":\"@:{'templates.generated.compat.admin.pos.no_plates_found'}\",\"no_wash_certificate\":\"@:{'templates.generated.compat.admin.pos.no_wash_certificate'}\",\"not_found\":\"@:{'templates.generated.compat.admin.pos.not_found'}\",\"order\":\"@:common.order\",\"order_booking_selector\":{\"continue_without_booking\":\"@:{'templates.generated.compat.admin.pos.order_booking_selector.continue_without_booking'}\",\"customer_label\":\"@:{'templates.generated.compat.common.customer'}\",\"help_text\":\"@:{'templates.generated.compat.admin.pos.order_booking_selector.help_text'}\",\"option_title\":\"@:{'templates.generated.compat.common.order'}\",\"plates_label\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"reference_label\":\"@:common.reference\",\"services_label\":\"@:common.services\",\"title\":\"@:{'templates.generated.compat.admin.pos.order_booking_selector.title'}\",\"use_booking\":\"@:common.select\"},\"order_note\":\"@:{'templates.generated.compat.admin.pos.order_note'}\",\"orders\":{\"subtitle\":\"@:{'templates.generated.compat.admin.pos.orders.subtitle'}\",\"title\":\"@:{'templates.generated.compat.common.bookings'}\"},\"pay_with_stripe\":\"@:{'templates.generated.compat.admin.pos.pay_with_stripe'}\",\"po_number\":\"@:{'templates.generated.compat.admin.pos.po_number'}\",\"price\":\"@:{'templates.generated.compat.tables.common.price'}\",\"price_changed_from\":\"@:{'templates.generated.compat.tables.common.price_changed_from'}\",\"price_dkk\":\"@:{'templates.generated.compat.tables.common.price_dkk'}\",\"price_per_unit\":\"@:{'templates.generated.compat.tables.common.price_per_unit'}\",\"product\":\"@:common.product\",\"quantity\":\"@:{'templates.generated.compat.tables.common.count'}\",\"recent_scan_details_empty\":\"@:{'templates.generated.compat.admin.pos.recent_scan_details_empty'}\",\"recent_scan_details_error\":\"@:{'templates.generated.compat.admin.pos.recent_scan_details_error'}\",\"recent_scan_details_loading\":\"@:{'templates.generated.compat.admin.pos.recent_scan_details_loading'}\",\"recent_scans\":\"@:{'templates.generated.compat.admin.pos.recent_scans'}\",\"recent_scans_helper\":\"@:{'templates.generated.compat.admin.pos.recent_scans_helper'}\",\"reference\":\"@:common.reference\",\"reference_cannot_be_empty\":\"@:{'templates.generated.compat.admin.pos.reference_cannot_be_empty'}\",\"reference_required_text\":\"@:{'templates.generated.compat.admin.pos.reference_required_text'}\",\"reference_required_title\":\"@:{'templates.generated.compat.admin.pos.reference_required_title'}\",\"reference_required_tooltip\":\"@:{'templates.generated.compat.admin.pos.reference_required_tooltip'}\",\"safety_seal\":\"@:{'templates.generated.compat.admin.pos.safety_seal'}\",\"scanned\":\"@:{'templates.generated.compat.admin.pos.scanned'}\",\"scanner\":\"@:{'templates.generated.compat.admin.pos.scanner'}\",\"search_license_plate\":\"@:{'templates.generated.compat.pos.search_license_plate'}\",\"see_note\":\"@:{'templates.generated.compat.admin.pos.see_note'}\",\"see_reference\":\"@:{'templates.generated.compat.admin.pos.see_reference'}\",\"settings\":\"@:{'templates.generated.compat.admin.pos.settings'}\",\"settings_wheel\":{\"add_flag\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag'}\",\"add_flag_customer\":\"@:{'templates.generated.compat.common.customer'}\",\"add_flag_invoice_collection\":\"@:{'templates.generated.compat.global.collection'}\",\"add_flag_order\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_order'}\",\"add_flag_order_customer\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_order_customer'}\",\"add_flag_order_item\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_order_item'}\",\"add_flag_order_item_notes\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_order_item_notes'}\",\"add_flag_order_item_price\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_order_item_price'}\",\"add_flag_order_item_quantity\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_order_item_quantity'}\",\"add_flag_order_item_reference\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_order_item_reference'}\",\"add_flag_order_notes\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_order_notes'}\",\"add_flag_order_po\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_order_po'}\",\"add_flag_order_reference\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_order_reference'}\",\"add_flag_reason_placeholder\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_reason_placeholder'}\",\"add_flag_reason_required\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_reason_required'}\",\"add_flag_target\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_flag_target'}\",\"add_gate\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_gate'}\",\"add_relay\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.add_relay'}\",\"associate_order\":\"@:{'templates.generated.compat.global.link'}\",\"attach_wash_certificate\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.attach_wash_certificate'}\",\"attached_files\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.attached_files'}\",\"booking\":\"@:{'templates.generated.compat.common.order'}\",\"change_association\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.change_association'}\",\"change_customer\":\"@:global.change_customer\",\"change_invoice_collection\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.change_invoice_collection'}\",\"change_order\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.change_order'}\",\"change_password\":\"@:{'templates.generated.compat.global.edit'}\",\"close\":\"@:common.close\",\"copy_link\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.copy_link'}\",\"customer_section\":\"@:{'templates.generated.compat.common.customer'}\",\"delete_booking\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.delete_booking'}\",\"delete_order\":\"@:pos.order.delete_order\",\"delete_user\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.delete_user'}\",\"download_invoice\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.download_invoice'}\",\"edit_permissions\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.edit_permissions'}\",\"enter_password\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.enter_password'}\",\"error\":\"@:common.error\",\"error_changing_password\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.error_changing_password'}\",\"error_downloading_attachment\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.error_downloading_attachment'}\",\"flags_section\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.flags_section'}\",\"gates_section\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.gates_section'}\",\"gateways_section\":\"@:system_status.gateways.summary.total\",\"link_copied\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.link_copied'}\",\"login_as_customer\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.login_as_customer'}\",\"login_as_user\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.login_as_user'}\",\"login_as_user_qr\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.login_as_user_qr'}\",\"mark_as_completed\":\"@:global.mark_as_completed\",\"no_actions_defined\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.no_actions_defined'}\",\"open_attached_file\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.open_attached_file'}\",\"open_fleet_landing\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.open_fleet_landing'}\",\"open_gates_tab\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.open_gates_tab'}\",\"open_gateways_tab\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.open_gateways_tab'}\",\"open_hardware_workspace_lanes\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.open_hardware_workspace_lanes'}\",\"open_legacy_gates\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.open_legacy_gates'}\",\"open_legacy_relays\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.open_legacy_relays'}\",\"open_legacy_self_serve\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.open_legacy_self_serve'}\",\"open_primary_gateway\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.open_primary_gateway'}\",\"open_relays_tab\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.open_relays_tab'}\",\"open_studio\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.open_studio'}\",\"password_changed\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.password_changed'}\",\"password_changed_text\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.password_changed_text'}\",\"please_enter_password\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.please_enter_password'}\",\"relays_section\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.relays_section'}\",\"rules_section\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.rules_section'}\",\"scan_qr_to_login\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.scan_qr_to_login'}\",\"self_serve_studio_section\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.self_serve_studio_section'}\",\"shortcut_orders\":\"@:{'templates.generated.compat.common.bookings'}\",\"shortcut_other\":\"@:{'templates.generated.compat.user_admin.other'}\",\"shortcut_overview\":\"@:{'templates.generated.compat.nav.overview'}\",\"shortcut_pricing\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.shortcut_pricing'}\",\"shortcut_vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"shortcuts_section\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.shortcuts_section'}\",\"show_customer\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.show_customer'}\",\"show_qr_code\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.show_qr_code'}\",\"view_booking_new_tab\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.view_booking_new_tab'}\",\"view_customer_new_tab\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.view_customer_new_tab'}\",\"view_invoice_collection_new_tab\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.view_invoice_collection_new_tab'}\",\"view_lane_new_tab\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.view_lane_new_tab'}\",\"view_lane_setup_new_tab\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.view_lane_setup_new_tab'}\",\"view_order_new_tab\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.view_order_new_tab'}\",\"view_vehicle_new_tab\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.view_vehicle_new_tab'}\",\"accept_self_serve_wash\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.accept_self_serve_wash'}\",\"accept_self_serve_wash_confirm\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.accept_self_serve_wash_confirm'}\",\"accept_self_serve_wash_success\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.accept_self_serve_wash_success'}\",\"email_notifications_section\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.email_notifications_section'}\",\"resend_booking_completion_confirmation\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.resend_booking_completion_confirmation'}\",\"resend_booking_completion_confirmation_error\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.resend_booking_completion_confirmation_error'}\",\"resend_booking_completion_confirmation_success\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.resend_booking_completion_confirmation_success'}\",\"resend_booking_confirmation\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.resend_booking_confirmation'}\",\"resend_booking_confirmation_error\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.resend_booking_confirmation_error'}\",\"resend_booking_confirmation_success\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.resend_booking_confirmation_success'}\",\"resend_wash_certificate\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.resend_wash_certificate'}\",\"resend_wash_certificate_error\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.resend_wash_certificate_error'}\",\"resend_wash_certificate_success\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.resend_wash_certificate_success'}\",\"self_serve_customer\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.self_serve_customer'}\",\"self_serve_driver\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.self_serve_driver'}\",\"self_serve_elapsed\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.self_serve_elapsed'}\",\"self_serve_wash_attachment\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.self_serve_wash_attachment'}\",\"self_serve_wash_attachment_for_customer\":\"@:{'templates.generated.compat.admin.pos.settings_wheel.self_serve_wash_attachment_for_customer'}\"},\"show_details\":\"@:{'templates.generated.compat.admin.pos.show_details'}\",\"show_order_details\":\"@:{'templates.generated.compat.admin.pos.show_order_details'}\",\"status_barred\":\"@:{'templates.generated.compat.objects.columns.suspended'}\",\"status_booking\":\"@:{'templates.generated.compat.common.order'}\",\"status_unknown\":\"@:common.new\",\"stripe\":{\"actions\":{\"cancel_payment\":\"@:{'templates.generated.compat.admin.pos.stripe.actions.cancel_payment'}\",\"cancelling\":\"@:{'templates.generated.compat.admin.pos.stripe.states.cancelling'}\",\"capture_payment\":\"@:{'templates.generated.compat.admin.pos.stripe.states.capturing'}\",\"capture_payment_with_amount\":\"@:{'templates.generated.compat.admin.pos.stripe.states.capturing'}\",\"capturing\":\"@:{'templates.generated.compat.admin.pos.stripe.states.capturing'}\",\"creating\":\"@:{'templates.generated.compat.admin.pos.stripe.states.creating'}\",\"delete_payment_intent\":\"@:{'templates.generated.compat.admin.pos.stripe.actions.delete_payment_intent'}\",\"open_setup\":\"@:{'templates.generated.compat.admin.pos.stripe.actions.open_setup'}\",\"refresh_payment_status\":\"@:{'templates.generated.compat.admin.pos.stripe.actions.refresh_payment_status'}\",\"refresh_readers\":\"@:{'templates.generated.compat.admin.pos.stripe.actions.refresh_readers'}\",\"refresh_setup\":\"@:{'templates.generated.compat.admin.pos.stripe.actions.refresh_setup'}\",\"retry_payment_state\":\"@:{'templates.generated.compat.admin.pos.stripe.actions.retry_payment_state'}\",\"show_payment_details\":\"@:{'templates.generated.compat.admin.pos.stripe.actions.show_payment_details'}\"},\"amount\":\"@:global.payment.amount\",\"details\":{\"amount_received\":\"@:{'templates.generated.compat.admin.pos.stripe.details.amount_received'}\",\"created_at\":\"@:{'templates.generated.compat.global.generated'}\",\"metadata\":\"@:{'templates.generated.compat.admin.pos.stripe.details.metadata'}\",\"none\":\"@:{'templates.generated.compat.common.none'}\",\"payment_intent_id\":\"@:{'templates.generated.compat.admin.pos.stripe.details.payment_intent_id'}\",\"payment_method\":\"@:{'templates.generated.compat.pos.payment_method'}\",\"status\":\"@:common.status\"},\"email\":{\"action\":\"@:{'templates.generated.compat.admin.pos.stripe.email.action'}\",\"address_label\":\"@:common.email\",\"address_placeholder\":\"@:{'templates.generated.compat.admin.pos.stripe.email.address_placeholder'}\",\"errors\":{\"cancel\":\"@:{'templates.generated.compat.admin.pos.stripe.email.errors.cancel'}\",\"complete\":\"@:{'templates.generated.compat.admin.pos.stripe.email.errors.complete'}\",\"invalid_email\":\"@:{'templates.generated.compat.profile.email.invalid_email'}\",\"load\":\"@:{'templates.generated.compat.admin.pos.stripe.email.errors.load'}\",\"send\":\"@:{'templates.generated.compat.admin.pos.stripe.email.errors.send'}\"},\"eyebrow\":\"@:{'templates.generated.compat.admin.pos.stripe.email.eyebrow'}\",\"help\":\"@:{'templates.generated.compat.admin.pos.stripe.email.help'}\",\"invoice_link_action\":\"@:{'templates.generated.compat.global.open'}\",\"invoice_link_label\":\"@:{'templates.generated.compat.admin.pos.stripe.email.invoice_link_label'}\",\"messages\":{\"active\":\"@:{'templates.generated.compat.admin.pos.stripe.email.messages.active'}\",\"closed\":\"@:{'templates.generated.compat.admin.pos.stripe.email.messages.closed'}\",\"paid\":\"@:{'templates.generated.compat.admin.pos.stripe.email.messages.paid'}\",\"sent\":\"@:{'templates.generated.compat.admin.pos.stripe.email.messages.sent'}\"},\"states\":{\"deleted\":\"@:{'templates.generated.compat.objects.columns.deleted'}\",\"draft\":\"@:{'templates.generated.compat.invoices.statuses.draft'}\",\"open\":\"@:{'templates.generated.compat.admin.pos.stripe.email.states.open'}\",\"paid\":\"@:invoices.paid\",\"uncollectible\":\"@:{'templates.generated.compat.admin.pos.stripe.email.states.uncollectible'}\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\",\"void\":\"@:{'templates.generated.compat.global.cancelled'}\"},\"status_label\":\"@:{'templates.generated.compat.collected_invoice.stripe.payment_status'}\",\"submit\":\"@:{'templates.generated.compat.global.submit'}\",\"title\":\"@:admin.pos.stripe.email.action\"},\"errors\":{\"capture_payment_intent\":\"@:{'templates.generated.compat.admin.pos.stripe.errors.capture_payment_intent'}\",\"create_payment_intent\":\"@:{'templates.generated.compat.admin.pos.stripe.errors.create_payment_intent'}\",\"delete_payment_intent\":\"@:{'templates.generated.compat.admin.pos.stripe.errors.delete_payment_intent'}\",\"load_payment_intent_state\":\"@:{'templates.generated.compat.admin.pos.stripe.errors.load_payment_intent_state'}\",\"load_readers\":\"@:{'templates.generated.compat.admin.pos.stripe.errors.load_readers'}\",\"select_reader_before_payment\":\"@:{'templates.generated.compat.admin.pos.stripe.errors.select_reader_before_payment'}\"},\"headings\":{\"card_payment\":\"@:{'templates.generated.compat.admin.pos.stripe.headings.card_payment'}\",\"terminal\":\"@:{'templates.generated.compat.admin.pos.stripe.headings.terminal'}\"},\"messages\":{\"contact_superuser\":\"@:{'templates.generated.compat.admin.pos.stripe.messages.contact_superuser'}\",\"reader_unavailable\":\"@:{'templates.generated.compat.admin.pos.stripe.messages.reader_unavailable'}\",\"setup_required_title\":\"@:{'templates.generated.compat.admin.pos.stripe.messages.setup_required_title'}\",\"waiting_for_reader\":\"@:{'templates.generated.compat.admin.pos.stripe.messages.waiting_for_reader'}\"},\"reader\":{\"label\":\"@:{'templates.generated.compat.admin.pos.stripe.reader.label'}\",\"no_selection\":\"@:{'templates.generated.compat.admin.pos.stripe.reader.no_selection'}\",\"none_available\":\"@:{'templates.generated.compat.admin.pos.stripe.reader.none_available'}\",\"none_ready\":\"@:{'templates.generated.compat.admin.pos.stripe.reader.none_ready'}\",\"select\":\"@:{'templates.generated.compat.admin.pos.stripe.reader.select'}\",\"status\":{\"available\":\"@:{'templates.generated.compat.system_status.gateways.discovery_status.ready'}\",\"busy\":\"@:{'templates.generated.compat.admin.pos.stripe.reader.status.busy'}\",\"disconnected\":\"@:system_status.gateways.status.offline\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\"},\"unavailable_group\":\"@:{'templates.generated.compat.admin.pos.stripe.reader.unavailable_group'}\"},\"states\":{\"cancelling\":\"@:{'templates.generated.compat.admin.pos.stripe.states.cancelling'}\",\"capturing\":\"@:{'templates.generated.compat.admin.pos.stripe.states.capturing'}\",\"creating\":\"@:{'templates.generated.compat.admin.pos.stripe.states.creating'}\",\"failed\":\"@:{'templates.generated.compat.admin.pos.stripe.states.failed'}\",\"idle\":\"@:{'templates.generated.compat.admin.pos.stripe.states.idle'}\",\"reader_unavailable\":\"@:{'templates.generated.compat.admin.pos.stripe.states.reader_unavailable'}\",\"ready_to_capture\":\"@:{'templates.generated.compat.admin.pos.stripe.states.ready_to_capture'}\",\"setup_required\":\"@:{'templates.generated.compat.admin.pos.stripe.states.setup_required'}\",\"succeeded\":\"@:{'templates.generated.compat.admin.pos.stripe.states.succeeded'}\",\"waiting_for_reader\":\"@:{'templates.generated.compat.admin.pos.stripe.states.waiting_for_reader'}\"},\"tax_profile\":\"@:{'templates.generated.compat.admin.pos.stripe.tax_profile'}\",\"tax_rates\":{\"danish_customer\":\"@:{'templates.generated.compat.admin.pos.stripe.tax_rates.danish_customer'}\",\"eu_customer\":\"@:{'templates.generated.compat.admin.pos.stripe.tax_rates.eu_customer'}\",\"fallback\":\"@:{'templates.generated.compat.pos.order.badges.tax'}\",\"option\":\"@:{'templates.generated.compat.pos.order.badges.tax'}\"}},\"subtitle\":\"@:{'templates.generated.compat.admin.pos.subtitle'}\",\"sync\":{\"subtitle\":\"@:{'templates.generated.compat.admin.pos.sync.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.pos.sync.title'}\"},\"title\":\"@:nav.pos_system\",\"total\":\"@:{'templates.generated.compat.global.total'}\",\"total_price_for_order\":\"@:{'templates.generated.compat.global.total_price_for_order'}\",\"transaction\":\"@:{'templates.generated.compat.admin.pos.transaction'}\",\"try_again\":\"@:common.retry\",\"type\":\"@:products.type\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\",\"use\":\"@:{'templates.generated.compat.admin.pos.use'}\",\"variant\":\"@:{'templates.generated.compat.admin.pos.variant'}\",\"waiting_for_booking\":\"@:{'templates.generated.compat.admin.pos.waiting_for_booking'}\",\"warning\":\"@:{'templates.generated.compat.admin.pos.warning'}\",\"wash_certificate\":\"@:{'templates.generated.compat.admin.pos.wash_certificate'}\",\"wash_certificate_already_attached\":\"@:{'templates.generated.compat.admin.pos.wash_certificate_already_attached'}\",\"wash_certificate_attached\":\"@:{'templates.generated.compat.admin.pos.wash_certificate_attached'}\",\"wash_certificate_generation_error\":\"@:{'templates.generated.compat.admin.pos.wash_certificate_generation_error'}\"},\"self_serve\":{\"condition_rules\":{\"add_condition_rule\":\"@:modals.add_condition_rule\",\"add_question_rule\":\"@:{'templates.generated.compat.admin.self_serve.condition_rules.add_question_rule'}\",\"add_task_rule\":\"@:modals.add_task_rule\",\"subtitle\":\"@:{'templates.generated.compat.admin.self_serve.condition_rules.subtitle'}\",\"title\":\"@:tables.self_serve.condition_rules\"},\"conditions\":{\"add\":\"@:{'templates.generated.compat.admin.self_serve.conditions.add'}\",\"manage\":\"@:{'templates.generated.compat.admin.self_serve.conditions.manage'}\",\"subtitle\":\"@:{'templates.generated.compat.admin.self_serve.conditions.subtitle'}\",\"title\":\"@:{'templates.generated.compat.objects.columns.condition'}\"},\"questions\":{\"add\":\"@:{'templates.generated.compat.admin.self_serve.questions.add'}\",\"manage\":\"@:{'templates.generated.compat.admin.self_serve.questions.manage'}\",\"subtitle\":\"@:admin.self_serve.questions.manage\",\"title\":\"@:{'templates.generated.compat.modals.questions'}\"},\"select_vehicle_type\":\"@:{'templates.generated.compat.time_bookings.select_vehicle_type'}\",\"select_vehicle_type_first\":\"@:{'templates.generated.compat.time_bookings.select_vehicle_type_first'}\",\"tasks\":{\"add\":\"@:{'templates.generated.compat.admin.self_serve.tasks.add'}\",\"manage\":\"@:{'templates.generated.compat.admin.self_serve.tasks.manage'}\",\"subtitle\":\"@:admin.self_serve.tasks.manage\",\"title\":\"@:tables.self_serve.tasks\"},\"try\":\"@:{'templates.generated.compat.admin.self_serve.try'}\",\"vehicle_conditions\":{\"add\":\"@:{'templates.generated.compat.admin.self_serve.vehicle_conditions.add'}\",\"enter_reg\":\"@:{'templates.generated.compat.self_wash.enter_registration_number'}\",\"filter_by_reg\":\"@:{'templates.generated.compat.admin.self_serve.vehicle_conditions.filter_by_reg'}\",\"subtitle\":\"@:{'templates.generated.compat.admin.self_serve.vehicle_conditions.subtitle'}\",\"title\":\"@:tables.self_serve.vehicle_conditions\"}},\"time_bookings\":{\"new\":{\"subtitle\":\"@:{'templates.generated.compat.admin.time_bookings.new.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.time_bookings.new.title'}\"},\"opening_hours\":{\"subtitle\":\"@:{'templates.generated.compat.admin.time_bookings.opening_hours.subtitle'}\",\"title\":\"@:{'templates.generated.compat.departments.tab.opening_hours'}\"},\"subtitle\":\"@:{'templates.generated.compat.admin.time_bookings.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.time_bookings.title'}\",\"types\":{\"subtitle\":\"@:{'templates.generated.compat.admin.time_bookings.types.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.time_bookings.types.title'}\"}},\"wash_lanes\":{\"single\":{\"subtitle\":\"@:{'templates.generated.compat.admin.wash_lanes.single.subtitle'}\",\"title\":\"@:{'templates.generated.compat.objects.department_lanes.single'}\"},\"subtitle\":\"@:{'templates.generated.compat.admin.wash_lanes.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.wash_lanes.title'}\"}},\"auth\":{\"country_code\":\"@:{'templates.generated.compat.auth.country_code'}\",\"customer_login_title\":\"@:{'templates.generated.compat.auth.customer_login_title'}\",\"customer_number\":\"@:{'templates.generated.compat.objects.columns.customer_number'}\",\"driver_login_title\":\"@:{'templates.generated.compat.auth.driver_login_title'}\",\"forgot_password\":\"@:{'templates.generated.compat.auth.forgot_password'}\",\"login_as_customer\":\"@:{'templates.generated.compat.global.login_as_customer'}\",\"login_with_qr_code\":\"@:{'templates.generated.compat.global.login_with_qr_code'}\",\"login_with\":\"@:{'templates.generated.compat.global.login_with'}\",\"login\":\"@:{'templates.generated.compat.global.login'}\",\"operator_login_title\":\"@:header.operator_login\",\"operator_tagline\":\"@:{'templates.generated.compat.auth.operator_tagline'}\",\"password\":\"@:global.password\",\"phone_number\":\"@:{'templates.generated.compat.auth.phone_number'}\",\"phone\":\"@:common.phone\",\"remember_me\":\"@:{'templates.generated.compat.auth.remember_me'}\",\"terms_acceptance\":\"@:{'templates.generated.compat.auth.terms_acceptance'}\",\"username\":\"@:{'templates.generated.compat.auth.username'}\",\"your_username\":\"@:{'templates.generated.compat.auth.your_username'}\"},\"book_wash\":{\"subtitle\":\"@:{'templates.generated.compat.book_wash.title'}\",\"title\":\"@:{'templates.generated.compat.book_wash.title'}\"},\"bookings_table\":{\"and_one_other\":\"@:{'templates.generated.compat.bookings_table.and_one_other'}\",\"and_others\":\"@:{'templates.generated.compat.bookings_table.and_others'}\",\"no_bookings_found\":\"@:{'templates.generated.compat.pos.no_bookings'}\",\"no_services\":\"@:{'templates.generated.compat.bookings_table.no_services'}\",\"none_registered\":\"@:{'templates.generated.compat.common.none_registered'}\",\"none\":\"@:{'templates.generated.compat.common.none'}\",\"pcs\":\"@:{'templates.generated.compat.bookings_table.pcs'}\",\"po\":\"@:{'templates.generated.compat.bookings_table.po'}\",\"reference\":\"@:common.reference\",\"services\":\"@:{'templates.generated.compat.bookings_table.services'}\",\"unknown_customer\":\"@:modals.unknown_customer\",\"unknown_service\":\"@:{'templates.generated.compat.bookings_table.unknown_service'}\",\"wash\":\"@:{'templates.generated.compat.bookings_table.wash'}\"},\"bookings\":{\"actions\":\"@:common.actions\",\"at_time\":\"@:{'templates.generated.compat.bookings.at_time'}\",\"booking_number\":\"@:{'templates.generated.compat.bookings.booking_number'}\",\"cancel_booking\":\"@:{'templates.generated.compat.bookings.cancel_booking'}\",\"cancelled\":\"@:bookings.statuses.cancelled\",\"complete_booking\":\"@:{'templates.generated.compat.bookings.complete_booking'}\",\"completed\":\"@:bookings.statuses.completed\",\"confirm_booking\":\"@:{'templates.generated.compat.bookings.confirm_booking'}\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"date\":\"@:{'templates.generated.compat.bookings.date'}\",\"delete_booking\":\"@:{'templates.generated.compat.bookings.delete_booking'}\",\"edit_booking\":\"@:{'templates.generated.compat.bookings.edit_booking'}\",\"expected_at\":\"@:{'templates.generated.compat.bookings.expected_at'}\",\"new_booking\":\"@:{'templates.generated.compat.bookings.new_booking'}\",\"no_bookings\":\"@:{'templates.generated.compat.pos.no_bookings'}\",\"note\":\"@:{'templates.generated.compat.global.note'}\",\"pending\":\"@:bookings.statuses.pending\",\"products\":\"@:common.products\",\"reference\":\"@:{'templates.generated.compat.pos.reference'}\",\"search_placeholder\":\"@:{'templates.generated.compat.bookings.search_placeholder'}\",\"status\":\"@:common.status\",\"statuses\":{\"cancelled\":\"@:{'templates.generated.compat.global.cancelled'}\",\"completed\":\"@:{'templates.generated.compat.global.completed'}\",\"confirmed\":\"@:{'templates.generated.compat.bookings.statuses.confirmed'}\",\"pending\":\"@:{'templates.generated.compat.global.pending'}\"},\"subtitle\":\"@:{'templates.generated.compat.bookings.subtitle'}\",\"time\":\"@:common.time\",\"title\":\"@:{'templates.generated.compat.common.bookings'}\",\"vehicle\":\"@:{'templates.generated.compat.common.vehicles'}\",\"view_booking\":\"@:{'templates.generated.compat.common.view_booking'}\",\"view\":\"@:{'templates.generated.compat.common.view'}\"},\"calendar\":{\"april\":\"@:{'templates.generated.compat.calendar.april'}\",\"august\":\"@:{'templates.generated.compat.calendar.august'}\",\"day\":\"@:{'templates.generated.compat.calendar.day'}\",\"december\":\"@:{'templates.generated.compat.calendar.december'}\",\"february\":\"@:{'templates.generated.compat.calendar.february'}\",\"friday\":\"@:common.days.friday\",\"fullcalendar\":{\"allDay\":\"@:{'templates.generated.compat.calendar.fullcalendar.allDay'}\",\"buttonText\":{\"day\":\"@:calendar.day\",\"list\":\"@:calendar.fullcalendar.list\",\"month\":\"@:{'templates.generated.compat.global.month'}\",\"today\":\"@:common.today\",\"week\":\"@:{'templates.generated.compat.calendar.week'}\"},\"day\":\"@:calendar.day\",\"dayHeaderFormat\":\"@:{'templates.generated.compat.calendar.fullcalendar.dayHeaderFormat'}\",\"eventTimeFormat\":\"@:{'templates.generated.compat.calendar.fullcalendar.eventTimeFormat'}\",\"list\":\"@:{'templates.generated.compat.calendar.fullcalendar.list'}\",\"month\":\"@:{'templates.generated.compat.global.month'}\",\"next\":\"@:{'templates.generated.compat.common.continue'}\",\"prev\":\"@:common.previous\",\"slotLabelFormat\":\"@:calendar.fullcalendar.eventTimeFormat\",\"titleFormat\":\"@:{'templates.generated.compat.calendar.fullcalendar.titleFormat'}\",\"today\":\"@:common.today\",\"week\":\"@:{'templates.generated.compat.calendar.week'}\",\"weekText\":\"U\",\"weekTextLong\":\"@:{'templates.generated.compat.calendar.week'}\"},\"january\":\"@:{'templates.generated.compat.calendar.january'}\",\"july\":\"@:{'templates.generated.compat.calendar.july'}\",\"june\":\"@:{'templates.generated.compat.calendar.june'}\",\"march\":\"@:{'templates.generated.compat.calendar.march'}\",\"may\":\"@:{'templates.generated.compat.calendar.may'}\",\"monday\":\"@:{'templates.generated.compat.calendar.monday'}\",\"month\":\"@:{'templates.generated.compat.global.month'}\",\"november\":\"@:{'templates.generated.compat.calendar.november'}\",\"october\":\"@:{'templates.generated.compat.calendar.october'}\",\"saturday\":\"@:{'templates.generated.compat.calendar.saturday'}\",\"september\":\"@:{'templates.generated.compat.calendar.september'}\",\"sunday\":\"@:{'templates.generated.compat.calendar.sunday'}\",\"thursday\":\"@:common.days.thursday\",\"tuesday\":\"@:{'templates.generated.compat.calendar.tuesday'}\",\"wednesday\":\"@:common.days.wednesday\",\"week\":\"@:{'templates.generated.compat.calendar.week'}\",\"year\":\"@:common.year\"},\"collected_invoice\":{\"move_customer\":{\"card_title\":\"@:{'templates.generated.compat.collected_invoice.move_customer.card_title'}\",\"confirm_button\":\"@:{'templates.generated.compat.collected_invoice.move_customer.confirm_button'}\",\"confirm_text\":\"@:{'templates.generated.compat.collected_invoice.move_customer.confirm_text'}\",\"confirm_title\":\"@:{'templates.generated.compat.collected_invoice.move_customer.confirm_title'}\",\"current_customer\":\"@:{'templates.generated.compat.collected_invoice.move_customer.current_customer'}\",\"customer_value\":\"@:{'templates.generated.compat.collected_invoice.move_customer.customer_value'}\",\"error_title\":\"@:{'templates.generated.compat.collected_invoice.move_customer.error_title'}\",\"invalid_customer\":\"@:{'templates.generated.compat.collected_invoice.move_customer.invalid_customer'}\",\"locked\":\"@:{'templates.generated.compat.collected_invoice.move_customer.locked'}\",\"same_customer\":\"@:{'templates.generated.compat.collected_invoice.move_customer.same_customer'}\",\"success_text\":\"@:{'templates.generated.compat.collected_invoice.move_customer.success_text'}\",\"success_title\":\"@:{'templates.generated.compat.collected_invoice.move_customer.success_title'}\",\"title\":\"@:{'templates.generated.compat.collected_invoice.move_customer.title'}\"},\"economic\":{\"booked_desc\":\"@:{'templates.generated.compat.collected_invoice.economic.booked_desc'}\",\"booked_with_economic\":\"@:{'templates.generated.compat.collected_invoice.economic.booked_with_economic'}\",\"create_invoice\":\"@:{'templates.generated.compat.collected_invoice.economic.create_invoice'}\",\"draft_customer_blocked_desc\":\"@:{'templates.generated.compat.collected_invoice.economic.draft_customer_blocked_desc'}\",\"draft_customer_blocked_title\":\"@:{'templates.generated.compat.collected_invoice.economic.draft_customer_blocked_title'}\",\"fixed_price_added\":\"@:{'templates.generated.compat.collected_invoice.economic.fixed_price_added'}\",\"fixed_price_added_desc\":\"@:{'templates.generated.compat.collected_invoice.economic.fixed_price_added_desc'}\",\"invoice_create_error\":\"@:{'templates.generated.compat.collected_invoice.economic.invoice_create_error'}\",\"invoice_created\":\"@:{'templates.generated.compat.collected_invoice.economic.invoice_created'}\",\"invoice_created_desc\":\"@:{'templates.generated.compat.collected_invoice.economic.invoice_created_desc'}\",\"invoice_sent\":\"@:{'templates.generated.compat.collected_invoice.economic.invoice_sent'}\",\"invoice_sent_desc\":\"@:{'templates.generated.compat.collected_invoice.economic.invoice_sent_desc'}\",\"invoice_split\":\"@:{'templates.generated.compat.collected_invoice.economic.invoice_split'}\",\"invoice_split_desc\":\"@:{'templates.generated.compat.collected_invoice.economic.invoice_split_desc'}\",\"invoice_split_error\":\"@:{'templates.generated.compat.collected_invoice.economic.invoice_split_error'}\",\"invoice_unlinked\":\"@:{'templates.generated.compat.collected_invoice.economic.invoice_unlinked'}\",\"invoice_unlinked_desc\":\"@:{'templates.generated.compat.collected_invoice.economic.invoice_unlinked_desc'}\",\"saved_as_draft\":\"@:{'templates.generated.compat.collected_invoice.economic.saved_as_draft'}\",\"saved_as_draft_desc\":\"@:{'templates.generated.compat.collected_invoice.economic.saved_as_draft_desc'}\",\"special_removed\":\"@:{'templates.generated.compat.collected_invoice.economic.special_removed'}\",\"special_removed_desc\":\"@:{'templates.generated.compat.collected_invoice.economic.special_removed_desc'}\",\"split_confirm\":\"@:{'templates.generated.compat.collected_invoice.economic.split_confirm'}\",\"split_yes\":\"@:{'templates.generated.compat.collected_invoice.economic.split_yes'}\",\"subscriptions_added\":\"@:{'templates.generated.compat.collected_invoice.economic.subscriptions_added'}\",\"subscriptions_added_desc\":\"@:{'templates.generated.compat.collected_invoice.economic.subscriptions_added_desc'}\",\"undo_send\":\"@:{'templates.generated.compat.collected_invoice.economic.undo_send'}\",\"unlink_confirm\":\"@:{'templates.generated.compat.collected_invoice.economic.unlink_confirm'}\",\"unlink_yes\":\"@:{'templates.generated.compat.collected_invoice.economic.unlink_yes'}\",\"use_economic_desc\":\"@:{'templates.generated.compat.collected_invoice.economic.use_economic_desc'}\"},\"stripe\":{\"and_booked\":\"@:{'templates.generated.compat.collected_invoice.stripe.and_booked'}\",\"and_saved_draft\":\"@:{'templates.generated.compat.collected_invoice.stripe.and_saved_draft'}\",\"booked_with\":\"@:{'templates.generated.compat.collected_invoice.stripe.booked_with'}\",\"but_not_booked\":\"@:{'templates.generated.compat.collected_invoice.stripe.but_not_booked'}\",\"in_economic\":\"@:{'templates.generated.compat.collected_invoice.stripe.in_economic'}\",\"invoice_booked\":\"@:{'templates.generated.compat.collected_invoice.stripe.invoice_booked'}\",\"invoice_booked_desc\":\"@:{'templates.generated.compat.collected_invoice.stripe.invoice_booked_desc'}\",\"invoice_paid\":\"@:{'templates.generated.compat.collected_invoice.stripe.invoice_paid'}\",\"invoice_status\":\"@:{'templates.generated.compat.collected_invoice.stripe.invoice_status'}\",\"not_booked\":\"@:{'templates.generated.compat.collected_invoice.stripe.not_booked'}\",\"payment_amount\":\"@:{'templates.generated.compat.collected_invoice.stripe.payment_amount'}\",\"payment_id\":\"@:{'templates.generated.compat.collected_invoice.stripe.payment_id'}\",\"payment_overview\":\"@:{'templates.generated.compat.collected_invoice.stripe.payment_overview'}\",\"payment_status\":\"@:{'templates.generated.compat.collected_invoice.stripe.payment_status'}\",\"saved_as_draft\":\"@:{'templates.generated.compat.collected_invoice.stripe.saved_as_draft'}\",\"stripe_fees\":\"@:{'templates.generated.compat.collected_invoice.stripe.stripe_fees'}\"}},\"common\":{\"about\":\"@:{'templates.generated.compat.common.about'}\",\"actions\":\"@:{'templates.generated.compat.common.actions'}\",\"active\":\"@:{'templates.generated.compat.common.active'}\",\"add\":\"@:{'templates.generated.compat.common.add'}\",\"addons\":\"@:{'templates.generated.compat.common.addons'}\",\"address\":\"@:{'templates.generated.compat.common.address'}\",\"all\":\"@:{'templates.generated.compat.common.all'}\",\"and\":\"@:{'templates.generated.compat.common.and'}\",\"apply\":\"@:{'templates.generated.compat.common.apply'}\",\"approved\":\"@:{'templates.generated.compat.common.approved'}\",\"approx\":\"@:{'templates.generated.compat.common.approx'}\",\"are\":\"@:{'templates.generated.compat.common.are'}\",\"back\":\"@:{'templates.generated.compat.common.back'}\",\"booking_created\":\"@:{'templates.generated.compat.common.order_created'}\",\"booking\":\"@:{'templates.generated.compat.common.order'}\",\"bookings\":\"@:{'templates.generated.compat.common.orders'}\",\"can\":\"@:{'templates.generated.compat.common.can'}\",\"cancel\":\"@:{'templates.generated.compat.common.cancel'}\",\"cancelled\":\"@:{'templates.generated.compat.common.cancelled'}\",\"city\":\"@:{'templates.generated.compat.common.city'}\",\"clear\":\"@:{'templates.generated.compat.common.clear'}\",\"click_to_copy\":\"@:{'templates.generated.compat.common.click_to_copy'}\",\"close\":\"@:{'templates.generated.compat.common.close'}\",\"collapse\":\"@:{'templates.generated.compat.common.collapse'}\",\"comment\":\"@:{'templates.generated.compat.common.comment'}\",\"comments\":\"@:{'templates.generated.compat.common.comments'}\",\"company\":\"@:{'templates.generated.compat.common.company'}\",\"completed\":\"@:{'templates.generated.compat.common.completed'}\",\"confirm\":\"@:{'templates.generated.compat.common.confirm'}\",\"contact\":\"@:{'templates.generated.compat.common.contact'}\",\"continue\":\"@:{'templates.generated.compat.common.continue'}\",\"copied\":\"@:{'templates.generated.compat.common.copied'}\",\"copy_error\":\"@:{'templates.generated.compat.common.copy_error'}\",\"copy\":\"@:{'templates.generated.compat.common.copy'}\",\"could\":\"@:{'templates.generated.compat.common.could'}\",\"country\":\"@:{'templates.generated.compat.common.country'}\",\"create\":\"@:{'templates.generated.compat.common.create'}\",\"created_at\":\"@:common.created\",\"created\":\"@:{'templates.generated.compat.common.created'}\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"cut\":\"@:{'templates.generated.compat.common.cut'}\",\"dashboard\":\"@:{'templates.generated.compat.common.dashboard'}\",\"date\":\"@:{'templates.generated.compat.common.date'}\",\"days\":{\"friday\":\"@:{'templates.generated.compat.common.days.friday'}\",\"monday\":\"@:{'templates.generated.compat.common.days.monday'}\",\"saturday\":\"@:{'templates.generated.compat.common.days.saturday'}\",\"sunday\":\"@:{'templates.generated.compat.common.days.sunday'}\",\"thursday\":\"@:{'templates.generated.compat.common.days.thursday'}\",\"tuesday\":\"@:{'templates.generated.compat.common.days.tuesday'}\",\"wednesday\":\"@:{'templates.generated.compat.common.days.wednesday'}\"},\"delete\":\"@:{'templates.generated.compat.common.delete'}\",\"department\":\"@:{'templates.generated.compat.common.department'}\",\"departments\":\"@:{'templates.generated.compat.common.departments'}\",\"description\":\"@:{'templates.generated.compat.common.description'}\",\"details\":\"@:{'templates.generated.compat.common.details'}\",\"disabled\":\"@:{'templates.generated.compat.common.disabled'}\",\"discount\":\"@:{'templates.generated.compat.common.discount'}\",\"done\":\"@:{'templates.generated.compat.common.done'}\",\"download\":\"@:{'templates.generated.compat.common.download'}\",\"during_the_day\":\"@:{'templates.generated.compat.common.during_the_day'}\",\"edit\":\"@:{'templates.generated.compat.common.edit'}\",\"email\":\"@:{'templates.generated.compat.common.email'}\",\"enabled\":\"@:{'templates.generated.compat.common.enabled'}\",\"entries_per_page\":\"@:{'templates.generated.compat.common.entries_per_page'}\",\"error_creating_booking\":\"@:{'templates.generated.compat.common.error_creating_booking'}\",\"error\":\"@:{'templates.generated.compat.common.error'}\",\"expand\":\"@:{'templates.generated.compat.common.expand'}\",\"expired\":\"@:{'templates.generated.compat.common.expired'}\",\"export\":\"@:{'templates.generated.compat.common.export'}\",\"failed\":\"@:{'templates.generated.compat.common.failed'}\",\"filter\":\"@:{'templates.generated.compat.common.filter'}\",\"finish\":\"@:{'templates.generated.compat.common.finish'}\",\"first\":\"@:{'templates.generated.compat.common.first'}\",\"from\":\"@:{'templates.generated.compat.common.from'}\",\"had\":\"@:{'templates.generated.compat.common.had'}\",\"has\":\"@:{'templates.generated.compat.common.has'}\",\"have\":\"@:{'templates.generated.compat.common.have'}\",\"help\":\"@:{'templates.generated.compat.common.help'}\",\"hide\":\"@:{'templates.generated.compat.common.hide'}\",\"home\":\"@:{'templates.generated.compat.common.home'}\",\"hour\":\"@:{'templates.generated.compat.common.hour'}\",\"import\":\"@:{'templates.generated.compat.common.import'}\",\"inactive\":\"@:{'templates.generated.compat.common.inactive'}\",\"info\":\"@:{'templates.generated.compat.common.info'}\",\"invoice\":\"@:{'templates.generated.compat.common.invoice'}\",\"invoices\":\"@:{'templates.generated.compat.common.invoices'}\",\"is_dev_on\":\"@:{'templates.generated.compat.common.is_dev_on'}\",\"is\":\"@:{'templates.generated.compat.common.is'}\",\"language\":\"@:{'templates.generated.compat.common.language'}\",\"last_wash\":\"@:{'templates.generated.compat.common.last_wash'}\",\"last\":\"@:{'templates.generated.compat.common.last'}\",\"less\":\"@:{'templates.generated.compat.common.less'}\",\"loading\":\"@:{'templates.generated.compat.common.loading'}\",\"login\":\"@:{'templates.generated.compat.common.login'}\",\"logout\":\"@:{'templates.generated.compat.common.logout'}\",\"may\":\"@:{'templates.generated.compat.common.may'}\",\"might\":\"@:{'templates.generated.compat.common.might'}\",\"minute\":\"@:{'templates.generated.compat.common.minute'}\",\"month\":\"@:{'templates.generated.compat.common.month'}\",\"more\":\"@:{'templates.generated.compat.common.more'}\",\"must\":\"@:{'templates.generated.compat.common.must'}\",\"name\":\"@:{'templates.generated.compat.common.name'}\",\"new\":\"@:{'templates.generated.compat.common.new'}\",\"next_step\":\"@:{'templates.generated.compat.common.next_step'}\",\"next\":\"@:{'templates.generated.compat.common.next'}\",\"no\":\"@:{'templates.generated.compat.common.no'}\",\"none\":\"@:{'templates.generated.compat.common.none'}\",\"not_available\":\"@:{'templates.generated.compat.common.not_available'}\",\"not\":\"@:{'templates.generated.compat.common.not'}\",\"note\":\"@:{'templates.generated.compat.common.note'}\",\"notes\":\"@:{'templates.generated.compat.common.notes'}\",\"of\":\"@:{'templates.generated.compat.common.of'}\",\"ok\":\"@:{'templates.generated.compat.common.ok'}\",\"open\":\"@:{'templates.generated.compat.common.open'}\",\"optional\":\"@:{'templates.generated.compat.common.optional'}\",\"or\":\"@:{'templates.generated.compat.common.or'}\",\"order\":\"@:{'templates.generated.compat.common.order'}\",\"orders\":\"@:{'templates.generated.compat.common.orders'}\",\"page_x_of_y\":\"@:{'templates.generated.compat.common.page_x_of_y'}\",\"paste\":\"@:{'templates.generated.compat.common.paste'}\",\"pause\":\"@:{'templates.generated.compat.common.pause'}\",\"pending\":\"@:{'templates.generated.compat.common.pending'}\",\"per_page\":\"@:{'templates.generated.compat.common.per_page'}\",\"phone\":\"@:{'templates.generated.compat.common.phone'}\",\"preview\":\"@:{'templates.generated.compat.common.preview'}\",\"previous_step\":\"@:{'templates.generated.compat.common.previous_step'}\",\"previous\":\"@:{'templates.generated.compat.common.previous'}\",\"price\":\"@:{'templates.generated.compat.common.price'}\",\"print\":\"@:{'templates.generated.compat.common.print'}\",\"privacy\":\"@:{'templates.generated.compat.common.privacy'}\",\"processing\":\"@:{'templates.generated.compat.common.processing'}\",\"product\":\"@:{'templates.generated.compat.common.product'}\",\"products\":\"@:{'templates.generated.compat.common.products'}\",\"profile\":\"@:{'templates.generated.compat.common.profile'}\",\"quantity\":\"@:{'templates.generated.compat.common.quantity'}\",\"redo\":\"@:{'templates.generated.compat.common.redo'}\",\"reference\":\"@:{'templates.generated.compat.common.reference'}\",\"refresh\":\"@:{'templates.generated.compat.common.refresh'}\",\"register\":\"@:{'templates.generated.compat.common.register'}\",\"rejected\":\"@:{'templates.generated.compat.common.rejected'}\",\"remove\":\"@:{'templates.generated.compat.common.remove'}\",\"required\":\"@:{'templates.generated.compat.common.required'}\",\"reset\":\"@:{'templates.generated.compat.common.reset'}\",\"results\":\"@:{'templates.generated.compat.common.results'}\",\"resume\":\"@:{'templates.generated.compat.common.resume'}\",\"retry\":\"@:{'templates.generated.compat.common.retry'}\",\"role\":\"@:{'templates.generated.compat.common.role'}\",\"roles\":\"@:{'templates.generated.compat.common.roles'}\",\"save\":\"@:{'templates.generated.compat.common.save'}\",\"search\":\"@:{'templates.generated.compat.common.search'}\",\"second\":\"@:{'templates.generated.compat.common.second'}\",\"see_more\":\"@:{'templates.generated.compat.common.see_more'}\",\"select\":\"@:{'templates.generated.compat.common.select'}\",\"selected\":\"@:{'templates.generated.compat.common.selected'}\",\"service\":\"@:{'templates.generated.compat.common.service'}\",\"services\":\"@:{'templates.generated.compat.common.services'}\",\"settings\":\"@:{'templates.generated.compat.common.settings'}\",\"shall\":\"@:{'templates.generated.compat.common.shall'}\",\"should\":\"@:{'templates.generated.compat.common.should'}\",\"show\":\"@:{'templates.generated.compat.common.show'}\",\"sort\":\"@:{'templates.generated.compat.common.sort'}\",\"start\":\"@:{'templates.generated.compat.common.start'}\",\"status\":\"@:{'templates.generated.compat.common.status'}\",\"stop\":\"@:{'templates.generated.compat.common.stop'}\",\"submit\":\"@:{'templates.generated.compat.common.submit'}\",\"subtotal\":\"@:{'templates.generated.compat.common.subtotal'}\",\"success\":\"@:{'templates.generated.compat.common.success'}\",\"support\":\"@:{'templates.generated.compat.common.support'}\",\"tax\":\"@:{'templates.generated.compat.common.tax'}\",\"templates\":{\"confirm_delete_entity\":\"@:templates.common.confirm_delete_entity\",\"create_entity\":\"@:templates.common.create_entity\",\"delete_entity\":\"@:templates.common.delete_entity\",\"edit_entity\":\"@:templates.common.edit_entity\",\"field_required\":\"@:templates.common.field_required\",\"no_entity_available\":\"@:templates.common.no_entity_available\",\"no_items\":\"@:templates.common.no_items\",\"page_of\":\"@:templates.common.page_of\",\"select_entity\":\"@:templates.common.select_entity\",\"selected_count\":\"@:templates.common.selected_count\",\"step_of\":\"@:templates.common.step_of\"},\"terms\":\"@:{'templates.generated.compat.common.terms'}\",\"thank_you\":\"@:{'templates.generated.compat.common.thank_you'}\",\"time\":\"@:{'templates.generated.compat.common.time'}\",\"to\":\"@:{'templates.generated.compat.common.to'}\",\"today\":\"@:{'templates.generated.compat.common.today'}\",\"tomorrow\":\"@:{'templates.generated.compat.common.tomorrow'}\",\"total\":\"@:{'templates.generated.compat.common.total'}\",\"try_again\":\"@:common.retry\",\"unable_to_load\":\"@:{'templates.generated.compat.common.unable_to_load'}\",\"undo\":\"@:{'templates.generated.compat.common.undo'}\",\"unknown_error\":\"@:{'templates.generated.compat.common.unknown_error'}\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\",\"unselect\":\"@:{'templates.generated.compat.common.unselect'}\",\"update\":\"@:{'templates.generated.compat.common.update'}\",\"updated_at\":\"@:common.updated\",\"updated\":\"@:{'templates.generated.compat.common.updated'}\",\"upload\":\"@:{'templates.generated.compat.common.upload'}\",\"user\":\"@:{'templates.generated.compat.common.user'}\",\"users\":\"@:{'templates.generated.compat.common.user'}\",\"vehicle\":\"@:{'templates.generated.compat.common.vehicle'}\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"via\":\"@:{'templates.generated.compat.common.via'}\",\"view_of_separator\":\"@:{'templates.generated.compat.common.of'}\",\"view\":\"@:{'templates.generated.compat.common.view'}\",\"warning\":\"@:{'templates.generated.compat.common.warning'}\",\"was\":\"@:{'templates.generated.compat.common.was'}\",\"week\":\"@:{'templates.generated.compat.common.week'}\",\"were\":\"@:{'templates.generated.compat.common.were'}\",\"will\":\"@:{'templates.generated.compat.common.will'}\",\"would\":\"@:{'templates.generated.compat.common.would'}\",\"year\":\"@:{'templates.generated.compat.common.year'}\",\"yes\":\"@:{'templates.generated.compat.common.yes'}\",\"yesterday\":\"@:{'templates.generated.compat.common.yesterday'}\",\"zip\":\"@:{'templates.generated.compat.common.zip'}\"},\"configuration\":{\"backups\":{\"active_jobs\":\"@:{'templates.generated.compat.configuration.backups.active_jobs'}\",\"actions\":\"@:{'templates.generated.compat.configuration.backups.actions'}\",\"app_data_enabled\":\"@:{'templates.generated.compat.configuration.backups.app_data_enabled'}\",\"app_data_enabled_desc\":\"@:{'templates.generated.compat.configuration.backups.app_data_enabled_desc'}\",\"backup\":\"@:{'templates.generated.compat.configuration.backups.backup'}\",\"backup_created\":\"@:{'templates.generated.compat.configuration.backups.backup_created'}\",\"backup_created_success\":\"@:{'templates.generated.compat.configuration.backups.backup_created_success'}\",\"backup_error\":\"@:{'templates.generated.compat.configuration.backups.backup_error'}\",\"backup_queued\":\"@:{'templates.generated.compat.configuration.backups.backup_queued'}\",\"backup_queued_success\":\"@:{'templates.generated.compat.configuration.backups.backup_queued_success'}\",\"backup_schedule\":\"@:{'templates.generated.compat.configuration.backups.backup_schedule'}\",\"backups\":\"@:{'templates.generated.compat.configuration.backups.backups'}\",\"completed_at\":\"@:{'templates.generated.compat.configuration.backups.completed_at'}\",\"create_backup\":\"@:{'templates.generated.compat.configuration.backups.create_backup'}\",\"create_backup_confirm\":\"@:{'templates.generated.compat.configuration.backups.create_backup_confirm'}\",\"delete_backup\":\"@:{'templates.generated.compat.configuration.backups.delete_backup'}\",\"disabled\":\"@:{'templates.generated.compat.configuration.backups.disabled'}\",\"download_backup\":\"@:{'templates.generated.compat.configuration.backups.download_backup'}\",\"enable_system\":\"@:{'templates.generated.compat.configuration.backups.enable_system'}\",\"enable_system_desc\":\"@:{'templates.generated.compat.configuration.backups.enable_system_desc'}\",\"enabled\":\"@:{'templates.generated.compat.configuration.backups.enabled'}\",\"general_settings\":\"@:{'templates.generated.compat.configuration.general.title'}\",\"general_settings_desc\":\"@:{'templates.generated.compat.configuration.general.title_desc'}\",\"last_backup\":\"@:{'templates.generated.compat.configuration.backups.last_backup'}\",\"latest_backup\":\"@:{'templates.generated.compat.configuration.backups.latest_backup'}\",\"latest_verified\":\"@:{'templates.generated.compat.configuration.backups.latest_verified'}\",\"legacy_backups\":\"@:{'templates.generated.compat.configuration.backups.legacy_backups'}\",\"name\":\"@:{'templates.generated.compat.configuration.backups.name'}\",\"no_backups\":\"@:{'templates.generated.compat.configuration.backups.no_backups'}\",\"no_restore_audit\":\"@:{'templates.generated.compat.configuration.backups.no_restore_audit'}\",\"not_available\":\"@:{'templates.generated.compat.configuration.backups.not_available'}\",\"objects\":\"@:{'templates.generated.compat.configuration.backups.objects'}\",\"refresh\":\"@:{'templates.generated.compat.configuration.backups.refresh'}\",\"restore_audit\":\"@:{'templates.generated.compat.configuration.backups.restore_audit'}\",\"restore_backup\":\"@:{'templates.generated.compat.configuration.backups.restore_backup'}\",\"restore_confirm_intro\":\"@:{'templates.generated.compat.configuration.backups.restore_confirm_intro'}\",\"restore_confirmation\":\"@:{'templates.generated.compat.configuration.backups.restore_confirmation'}\",\"restore_enabled\":\"@:{'templates.generated.compat.configuration.backups.restore_enabled'}\",\"restore_enabled_desc\":\"@:{'templates.generated.compat.configuration.backups.restore_enabled_desc'}\",\"restore_error\":\"@:{'templates.generated.compat.configuration.backups.restore_error'}\",\"restore_queued\":\"@:{'templates.generated.compat.configuration.backups.restore_queued'}\",\"restore_queued_success\":\"@:{'templates.generated.compat.configuration.backups.restore_queued_success'}\",\"restore_reason\":\"@:{'templates.generated.compat.configuration.backups.restore_reason'}\",\"restore_state\":\"@:{'templates.generated.compat.configuration.backups.restore_state'}\",\"restore_state_desc\":\"@:{'templates.generated.compat.configuration.backups.restore_state_desc'}\",\"restore_validation_error\":\"@:{'templates.generated.compat.configuration.backups.restore_validation_error'}\",\"retention\":\"@:{'templates.generated.compat.configuration.backups.retention'}\",\"retention_daily_days\":\"@:{'templates.generated.compat.configuration.backups.retention_daily_days'}\",\"retention_daily_days_desc\":\"@:{'templates.generated.compat.configuration.backups.retention_daily_days_desc'}\",\"retention_monthly_months\":\"@:{'templates.generated.compat.configuration.backups.retention_monthly_months'}\",\"retention_monthly_months_desc\":\"@:{'templates.generated.compat.configuration.backups.retention_monthly_months_desc'}\",\"retention_recent_hours\":\"@:{'templates.generated.compat.configuration.backups.retention_recent_hours'}\",\"retention_recent_hours_desc\":\"@:{'templates.generated.compat.configuration.backups.retention_recent_hours_desc'}\",\"retention_weekly_weeks\":\"@:{'templates.generated.compat.configuration.backups.retention_weekly_weeks'}\",\"retention_weekly_weeks_desc\":\"@:{'templates.generated.compat.configuration.backups.retention_weekly_weeks_desc'}\",\"size\":\"@:{'templates.generated.compat.configuration.backups.size'}\",\"started_at\":\"@:{'templates.generated.compat.configuration.backups.started_at'}\",\"status\":\"@:{'templates.generated.compat.configuration.backups.status'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.backups.subtitle'}\",\"title\":\"@:{'templates.generated.compat.configuration.backups.title'}\",\"verification_required\":\"@:{'templates.generated.compat.configuration.backups.verification_required'}\",\"verification_required_desc\":\"@:{'templates.generated.compat.configuration.backups.verification_required_desc'}\",\"verified_at\":\"@:{'templates.generated.compat.configuration.backups.verified_at'}\",\"verify\":\"@:{'templates.generated.compat.configuration.backups.verify'}\"},\"departments\":{\"subtitle\":\"@:departments.subtitle\",\"title\":\"@:{'templates.generated.compat.departments.title'}\"},\"economic\":{\"admin_fee_desc\":\"@:{'templates.generated.compat.configuration.economic.admin_fee_desc'}\",\"admin_fee_monthly\":\"@:{'templates.generated.compat.configuration.economic.admin_fee_monthly'}\",\"admin_fee_monthly_desc\":\"@:{'templates.generated.compat.configuration.economic.admin_fee_monthly_desc'}\",\"admin_fee_order\":\"@:{'templates.generated.compat.configuration.economic.admin_fee_order'}\",\"admin_fee_order_desc\":\"@:{'templates.generated.compat.configuration.economic.admin_fee_order_desc'}\",\"admin_fee_title\":\"@:{'templates.generated.compat.configuration.economic.admin_fee_title'}\",\"agreement_grant_token\":\"@:{'templates.generated.compat.configuration.economic.agreement_grant_token'}\",\"agreement_grant_token_desc\":\"@:{'templates.generated.compat.configuration.economic.agreement_grant_token_desc'}\",\"app_secret_token\":\"@:{'templates.generated.compat.configuration.economic.app_secret_token'}\",\"app_secret_token_desc\":\"@:{'templates.generated.compat.configuration.economic.app_secret_token_desc'}\",\"default_distribution_department_id\":\"@:{'templates.generated.compat.configuration.economic.default_distribution_department_id'}\",\"default_distribution_department_id_desc\":\"@:{'templates.generated.compat.configuration.economic.default_distribution_department_id_desc'}\",\"env_fee_product_id\":\"@:{'templates.generated.compat.configuration.economic.env_fee_product_id'}\",\"env_fee_product_id_desc\":\"@:{'templates.generated.compat.configuration.economic.env_fee_product_id_desc'}\",\"invoice_settings\":\"@:{'templates.generated.compat.configuration.economic.invoice_settings'}\",\"invoice_settings_desc\":\"@:{'templates.generated.compat.configuration.economic.invoice_settings_desc'}\",\"invoice_template\":\"@:{'templates.generated.compat.configuration.economic.invoice_template'}\",\"invoice_template_desc\":\"@:{'templates.generated.compat.configuration.economic.invoice_template_desc'}\",\"show_payment_terms\":\"@:{'templates.generated.compat.configuration.economic.show_payment_terms'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.economic.subtitle'}\",\"title\":\"@:{'templates.generated.compat.configuration.economic.title'}\",\"transaction_draft_customer_number\":\"@:{'templates.generated.compat.configuration.economic.transaction_draft_customer_number'}\",\"transaction_draft_customer_number_desc\":\"@:{'templates.generated.compat.configuration.economic.transaction_draft_customer_number_desc'}\",\"transaction_draft_desc\":\"@:{'templates.generated.compat.configuration.economic.transaction_draft_desc'}\",\"transaction_draft_title\":\"@:{'templates.generated.compat.configuration.economic.transaction_draft_title'}\"},\"email\":{\"enable_mailersend\":\"@:{'templates.generated.compat.configuration.email.enable_mailersend'}\",\"enable_mailersend_desc\":\"@:{'templates.generated.compat.configuration.email.enable_mailersend_desc'}\",\"enable_system\":\"@:{'templates.generated.compat.configuration.email.enable_system'}\",\"enable_system_desc\":\"@:{'templates.generated.compat.configuration.email.enable_system_desc'}\",\"from_address\":\"@:{'templates.generated.compat.configuration.email.from_address'}\",\"from_email\":\"@:{'templates.generated.compat.configuration.email.from_email'}\",\"from_email_desc\":\"@:{'templates.generated.compat.configuration.email.from_email_desc'}\",\"from_name\":\"@:{'templates.generated.compat.configuration.email.from_name'}\",\"from_name_desc\":\"@:{'templates.generated.compat.configuration.email.from_name_desc'}\",\"general_settings\":\"@:{'templates.generated.compat.configuration.email.general_settings'}\",\"general_settings_desc\":\"@:{'templates.generated.compat.configuration.email.general_settings_desc'}\",\"mailersend_api_key\":\"@:{'templates.generated.compat.configuration.email.mailersend_api_key'}\",\"mailersend_api_key_desc\":\"@:{'templates.generated.compat.configuration.email.mailersend_api_key_desc'}\",\"mailersend_integration\":\"@:{'templates.generated.compat.configuration.email.mailersend_integration'}\",\"mailersend_integration_desc\":\"@:{'templates.generated.compat.configuration.email.mailersend_integration_desc'}\",\"reply_to_email\":\"@:{'templates.generated.compat.configuration.email.reply_to_email'}\",\"reply_to_email_desc\":\"@:{'templates.generated.compat.configuration.email.reply_to_email_desc'}\",\"reply_to_name\":\"@:{'templates.generated.compat.configuration.email.reply_to_name'}\",\"reply_to_name_desc\":\"@:{'templates.generated.compat.configuration.email.reply_to_name_desc'}\",\"send\":\"@:{'templates.generated.compat.global.submit'}\",\"send_test_email\":\"@:{'templates.generated.compat.global.submit_test_email'}\",\"send_test_email_prompt\":\"@:{'templates.generated.compat.global.submit_test_email_prompt'}\",\"sender_identity\":\"@:{'templates.generated.compat.global.submiter_identity'}\",\"sender_identity_desc\":\"@:{'templates.generated.compat.global.submiter_identity_desc'}\",\"smtp_encryption\":\"@:{'templates.generated.compat.configuration.email.smtp_encryption'}\",\"smtp_encryption_desc\":\"@:{'templates.generated.compat.configuration.email.smtp_encryption_desc'}\",\"smtp_host\":\"@:{'templates.generated.compat.configuration.email.smtp_host'}\",\"smtp_host_desc\":\"@:{'templates.generated.compat.configuration.email.smtp_host_desc'}\",\"smtp_password\":\"@:{'templates.generated.compat.configuration.email.smtp_password'}\",\"smtp_password_desc\":\"@:{'templates.generated.compat.configuration.email.smtp_password_desc'}\",\"smtp_port\":\"@:{'templates.generated.compat.configuration.email.smtp_port'}\",\"smtp_port_desc\":\"@:{'templates.generated.compat.configuration.email.smtp_port_desc'}\",\"smtp_settings\":\"@:{'templates.generated.compat.configuration.email.smtp_settings'}\",\"smtp_settings_desc\":\"@:{'templates.generated.compat.configuration.email.smtp_settings_desc'}\",\"smtp_user\":\"@:{'templates.generated.compat.configuration.email.smtp_user'}\",\"smtp_username\":\"@:{'templates.generated.compat.configuration.email.smtp_username'}\",\"smtp_username_desc\":\"@:{'templates.generated.compat.configuration.email.smtp_username_desc'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.email.subtitle'}\",\"test_email_error\":\"@:{'templates.generated.compat.configuration.email.test_email_error'}\",\"test_email_sent\":\"@:{'templates.generated.compat.configuration.email.test_email_sent'}\",\"test_email_sent_success\":\"@:{'templates.generated.compat.configuration.email.test_email_sent_success'}\",\"title\":\"@:{'templates.generated.compat.configuration.email.title'}\"},\"fxrates\":{\"api_key\":\"@:configuration.limble.api_key\",\"api_key_desc\":\"@:{'templates.generated.compat.configuration.fxrates.api_key_desc'}\",\"api_settings\":\"@:configuration.limble.api_settings\",\"api_settings_desc\":\"@:{'templates.generated.compat.configuration.fxrates.api_settings_desc'}\",\"conversion_rates\":\"@:{'templates.generated.compat.configuration.fxrates.conversion_rates'}\",\"daily_limit\":\"@:{'templates.generated.compat.configuration.fxrates.daily_limit'}\",\"daily_limit_desc\":\"@:{'templates.generated.compat.configuration.fxrates.daily_limit_desc'}\",\"enable\":\"@:{'templates.generated.compat.configuration.fxrates.enable'}\",\"enable_desc\":\"@:{'templates.generated.compat.configuration.fxrates.enable_desc'}\",\"general_settings\":\"@:{'templates.generated.compat.configuration.general.title'}\",\"general_settings_desc\":\"@:{'templates.generated.compat.configuration.general.title_desc'}\",\"get_rates\":\"@:{'templates.generated.compat.configuration.fxrates.get_rates'}\",\"getting_rates\":\"@:{'templates.generated.compat.configuration.fxrates.getting_rates'}\",\"getting_rates_desc\":\"@:{'templates.generated.compat.configuration.fxrates.getting_rates_desc'}\",\"rates_fetched\":\"@:{'templates.generated.compat.configuration.fxrates.rates_fetched'}\",\"rates_fetched_desc\":\"@:{'templates.generated.compat.configuration.fxrates.rates_fetched_desc'}\",\"secret_key\":\"@:configuration.shelly.secret_key\",\"secret_key_desc\":\"@:configuration.shelly.secret_key_desc\",\"show_rates\":\"@:{'templates.generated.compat.configuration.fxrates.show_rates'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.fxrates.subtitle'}\",\"title\":\"@:{'templates.generated.compat.configuration.fxrates.title'}\",\"update_rates\":\"@:{'templates.generated.compat.configuration.fxrates.update_rates'}\"},\"general\":{\"currency\":\"@:{'templates.generated.compat.configuration.general.currency'}\",\"language\":\"@:{'templates.generated.compat.configuration.general.language'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.general.title'}\",\"timezone\":\"@:{'templates.generated.compat.configuration.general.timezone'}\",\"title\":\"@:{'templates.generated.compat.configuration.general.title'}\"},\"integrations\":{\"subtitle\":\"@:{'templates.generated.compat.configuration.integrations.subtitle'}\",\"title\":\"@:settings.integrations\"},\"limble\":{\"api_key\":\"@:{'templates.generated.compat.configuration.limble.api_key'}\",\"api_key_desc\":\"@:{'templates.generated.compat.configuration.limble.api_key_desc'}\",\"api_settings\":\"@:{'templates.generated.compat.configuration.limble.api_settings'}\",\"api_settings_desc\":\"@:{'templates.generated.compat.configuration.limble.api_settings_desc'}\",\"client_id\":\"@:{'templates.generated.compat.configuration.limble.client_id'}\",\"client_id_desc\":\"@:{'templates.generated.compat.configuration.limble.client_id_desc'}\",\"client_secret\":\"@:{'templates.generated.compat.configuration.limble.client_secret'}\",\"client_secret_desc\":\"@:{'templates.generated.compat.configuration.limble.client_secret_desc'}\",\"connection_failed_desc\":\"@:{'templates.generated.compat.configuration.limble.connection_failed_desc'}\",\"connection_success\":\"@:{'templates.generated.compat.configuration.limble.connection_success'}\",\"connection_success_desc\":\"@:{'templates.generated.compat.configuration.limble.connection_success_desc'}\",\"enable\":\"@:{'templates.generated.compat.configuration.limble.enable'}\",\"enable_desc\":\"@:{'templates.generated.compat.configuration.limble.enable_desc'}\",\"enable_webhooks\":\"@:{'templates.generated.compat.configuration.limble.enable_webhooks'}\",\"enable_webhooks_desc\":\"@:{'templates.generated.compat.configuration.limble.enable_webhooks_desc'}\",\"general_settings\":\"@:{'templates.generated.compat.configuration.general.title'}\",\"general_settings_desc\":\"@:{'templates.generated.compat.configuration.general.title_desc'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.limble.subtitle'}\",\"test_connection\":\"@:{'templates.generated.compat.configuration.limble.test_connection'}\",\"title\":\"@:{'templates.generated.compat.configuration.limble.title'}\"},\"mailersend\":{\"api_key\":\"@:configuration.limble.api_key\",\"api_key_desc\":\"@:{'templates.generated.compat.configuration.mailersend.api_key_desc'}\",\"title\":\"@:{'templates.generated.compat.configuration.mailersend.title'}\"},\"motor_api\":{\"api_key\":\"@:configuration.limble.api_key\",\"api_key_desc\":\"@:{'templates.generated.compat.configuration.motor_api.api_key_desc'}\",\"title\":\"@:{'templates.generated.compat.configuration.motor_api.title'}\"},\"motorapi\":{\"api_settings\":\"@:configuration.limble.api_settings\",\"api_settings_desc\":\"@:{'templates.generated.compat.configuration.motorapi.api_settings_desc'}\",\"daily_limit\":\"@:configuration.fxrates.daily_limit\",\"daily_limit_desc\":\"@:{'templates.generated.compat.configuration.motorapi.daily_limit_desc'}\",\"enable\":\"@:{'templates.generated.compat.configuration.motorapi.enable'}\",\"enable_desc\":\"@:{'templates.generated.compat.configuration.motorapi.enable_desc'}\",\"general_settings\":\"@:{'templates.generated.compat.configuration.general.title'}\",\"general_settings_desc\":\"@:{'templates.generated.compat.configuration.general.title_desc'}\",\"get_license_plate\":\"@:{'templates.generated.compat.configuration.motorapi.get_license_plate'}\",\"secret_key\":\"@:configuration.shelly.secret_key\",\"secret_key_desc\":\"@:configuration.shelly.secret_key_desc\",\"subtitle\":\"@:{'templates.generated.compat.configuration.motorapi.subtitle'}\",\"title\":\"@:{'templates.generated.compat.configuration.motorapi.title'}\"},\"products\":{\"add\":\"@:{'templates.generated.compat.configuration.products.add'}\",\"delete\":\"@:products.delete_product\",\"delete_confirm\":\"@:{'templates.generated.compat.configuration.products.delete_confirm'}\",\"edit\":\"@:{'templates.generated.compat.configuration.products.edit'}\",\"no_products\":\"@:products.no_products\",\"subtitle\":\"@:products.subtitle\",\"title\":\"@:common.products\"},\"slack\":{\"customer_registration_webhook_url\":\"@:{'templates.generated.compat.configuration.slack.customer_registration_webhook_url'}\",\"customer_registration_webhook_url_desc\":\"@:{'templates.generated.compat.configuration.slack.customer_registration_webhook_url_desc'}\",\"internal_department_goal_progress_save_error\":\"@:{'templates.generated.compat.configuration.slack.internal_department_goal_progress_save_error'}\",\"internal_department_goal_progress_saved\":\"@:{'templates.generated.compat.configuration.slack.internal_department_goal_progress_saved'}\",\"internal_department_goal_progress_webhook_url\":\"@:{'templates.generated.compat.configuration.slack.internal_department_goal_progress_webhook_url'}\",\"internal_department_goal_progress_webhook_url_desc\":\"@:{'templates.generated.compat.configuration.slack.internal_department_goal_progress_webhook_url_desc'}\",\"internal_departments\":\"@:{'templates.generated.compat.configuration.slack.internal_departments'}\",\"internal_departments_desc\":\"@:{'templates.generated.compat.configuration.slack.internal_departments_desc'}\",\"internal_departments_empty\":\"@:{'templates.generated.compat.configuration.slack.internal_departments_empty'}\",\"notification_settings\":\"@:{'templates.generated.compat.configuration.slack.notification_settings'}\",\"notification_settings_desc\":\"@:{'templates.generated.compat.configuration.slack.notification_settings_desc'}\",\"save_internal_departments\":\"@:{'templates.generated.compat.configuration.slack.save_internal_departments'}\",\"send_test_webhook\":\"@:{'templates.generated.compat.configuration.slack.send_test_webhook'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.slack.subtitle'}\",\"test_customer_registration_webhook\":\"@:{'templates.generated.compat.configuration.slack.test_customer_registration_webhook'}\",\"test_internal_department_goal_progress_webhook\":\"@:{'templates.generated.compat.configuration.slack.test_internal_department_goal_progress_webhook'}\",\"test_internal_department_goal_progress_webhook_not_configured\":\"@:{'templates.generated.compat.configuration.slack.test_internal_department_goal_progress_webhook_not_configured'}\",\"test_internal_department_goal_progress_webhook_sent_success\":\"@:{'templates.generated.compat.configuration.slack.test_internal_department_goal_progress_webhook_sent_success'}\",\"test_webhook_error\":\"@:{'templates.generated.compat.configuration.slack.test_webhook_error'}\",\"test_webhook_not_configured\":\"@:{'templates.generated.compat.configuration.slack.test_webhook_not_configured'}\",\"test_webhook_sent\":\"@:{'templates.generated.compat.configuration.slack.test_webhook_sent'}\",\"test_webhook_sent_success\":\"@:{'templates.generated.compat.configuration.slack.test_webhook_sent_success'}\",\"title\":\"@:{'templates.generated.compat.configuration.slack.title'}\",\"unavailable\":\"@:{'templates.generated.compat.configuration.slack.unavailable'}\"},\"shelly\":{\"api_key\":\"@:configuration.limble.api_key\",\"api_key_desc\":\"@:{'templates.generated.compat.configuration.shelly.api_key_desc'}\",\"api_settings\":\"@:configuration.limble.api_settings\",\"api_settings_desc\":\"@:{'templates.generated.compat.configuration.shelly.api_settings_desc'}\",\"connection_failed_desc\":\"@:{'templates.generated.compat.configuration.shelly.connection_failed_desc'}\",\"connection_success\":\"@:configuration.limble.connection_success\",\"connection_success_desc\":\"@:{'templates.generated.compat.configuration.shelly.connection_success_desc'}\",\"enable\":\"@:{'templates.generated.compat.configuration.shelly.enable'}\",\"enable_desc\":\"@:{'templates.generated.compat.configuration.shelly.enable_desc'}\",\"general_settings\":\"@:{'templates.generated.compat.configuration.general.title'}\",\"general_settings_desc\":\"@:{'templates.generated.compat.configuration.general.title_desc'}\",\"secret_key\":\"@:{'templates.generated.compat.configuration.shelly.secret_key'}\",\"secret_key_desc\":\"@:{'templates.generated.compat.configuration.shelly.secret_key_desc'}\",\"server_url\":\"@:{'templates.generated.compat.configuration.shelly.server_url'}\",\"server_url_desc\":\"@:{'templates.generated.compat.configuration.shelly.server_url_desc'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.shelly.subtitle'}\",\"test_connection\":\"@:configuration.limble.test_connection\",\"title\":\"@:{'templates.generated.compat.configuration.shelly.title'}\"},\"stripe\":{\"api_key\":\"@:configuration.limble.api_key\",\"api_key_desc\":\"@:{'templates.generated.compat.configuration.stripe.api_key_desc'}\",\"api_settings\":\"@:configuration.limble.api_settings\",\"api_settings_desc\":\"@:{'templates.generated.compat.configuration.stripe.api_settings_desc'}\",\"customers\":\"@:{'templates.generated.compat.configuration.stripe.customers'}\",\"economic_customer\":\"@:{'templates.generated.compat.configuration.stripe.economic_customer'}\",\"economic_customer_desc\":\"@:{'templates.generated.compat.configuration.stripe.economic_customer_desc'}\",\"economic_settings\":\"@:{'templates.generated.compat.configuration.stripe.economic_settings'}\",\"economic_settings_desc\":\"@:{'templates.generated.compat.configuration.stripe.economic_settings_desc'}\",\"enable\":\"@:{'templates.generated.compat.configuration.stripe.enable'}\",\"enable_desc\":\"@:{'templates.generated.compat.configuration.stripe.enable_desc'}\",\"general_settings\":\"@:{'templates.generated.compat.configuration.general.title'}\",\"general_settings_desc\":\"@:{'templates.generated.compat.configuration.general.title_desc'}\",\"get_customers\":\"@:xlvask.admin.fetch_customers\",\"get_prices\":\"@:{'templates.generated.compat.configuration.stripe.get_prices'}\",\"get_products\":\"@:{'templates.generated.compat.configuration.stripe.get_products'}\",\"prices\":\"@:{'templates.generated.compat.configuration.stripe.prices'}\",\"products\":\"@:{'templates.generated.compat.configuration.stripe.products'}\",\"publishable_key\":\"@:{'templates.generated.compat.configuration.stripe.publishable_key'}\",\"publishable_key_desc\":\"@:{'templates.generated.compat.configuration.stripe.publishable_key_desc'}\",\"secret_key\":\"@:configuration.shelly.secret_key\",\"secret_key_desc\":\"@:configuration.shelly.secret_key_desc\",\"subtitle\":\"@:{'templates.generated.compat.configuration.stripe.subtitle'}\",\"test_mode\":\"@:{'templates.generated.compat.configuration.stripe.test_mode'}\",\"test_mode_desc\":\"@:{'templates.generated.compat.configuration.stripe.test_mode_desc'}\",\"title\":\"@:{'templates.generated.compat.configuration.stripe.title'}\",\"webhook_secret\":\"@:{'templates.generated.compat.configuration.stripe.webhook_secret'}\",\"webhook_secret_desc\":\"@:{'templates.generated.compat.configuration.stripe.webhook_secret_desc'}\"},\"subtitle\":\"@:{'templates.generated.compat.configuration.subtitle'}\",\"title\":\"@:{'templates.generated.compat.objects.columns.config'}\",\"users\":{\"subtitle\":\"@:{'templates.generated.compat.configuration.users.subtitle'}\",\"title\":\"@:{'templates.generated.compat.common.user'}\"},\"virkdata\":{\"api_key\":\"@:configuration.limble.api_key\",\"api_key_desc\":\"@:{'templates.generated.compat.configuration.virkdata.api_key_desc'}\",\"api_settings\":\"@:configuration.limble.api_settings\",\"api_settings_desc\":\"@:{'templates.generated.compat.configuration.virkdata.api_settings_desc'}\",\"company_selected\":\"@:{'templates.generated.compat.configuration.virkdata.company_selected'}\",\"company_selected_desc\":\"@:{'templates.generated.compat.configuration.virkdata.company_selected_desc'}\",\"enable\":\"@:{'templates.generated.compat.configuration.virkdata.enable'}\",\"enable_desc\":\"@:{'templates.generated.compat.configuration.virkdata.enable_desc'}\",\"general_settings\":\"@:{'templates.generated.compat.configuration.general.title'}\",\"general_settings_desc\":\"@:{'templates.generated.compat.configuration.general.title_desc'}\",\"monthly_limit\":\"@:{'templates.generated.compat.configuration.virkdata.monthly_limit'}\",\"monthly_limit_desc\":\"@:{'templates.generated.compat.configuration.virkdata.monthly_limit_desc'}\",\"no_results\":\"@:{'templates.generated.compat.configuration.virkdata.no_results'}\",\"no_results_desc\":\"@:{'templates.generated.compat.configuration.virkdata.no_results_desc'}\",\"search_company\":\"@:{'templates.generated.compat.configuration.virkdata.search_company'}\",\"search_error\":\"@:{'templates.generated.compat.configuration.virkdata.search_error'}\",\"secret_key\":\"@:configuration.shelly.secret_key\",\"secret_key_desc\":\"@:configuration.shelly.secret_key_desc\",\"select_company\":\"@:{'templates.generated.compat.configuration.virkdata.select_company'}\",\"select_company_required\":\"@:{'templates.generated.compat.configuration.virkdata.select_company_required'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.virkdata.subtitle'}\",\"title\":\"@:{'templates.generated.compat.configuration.virkdata.title'}\"},\"workfeed\":{\"api_key\":\"@:{'templates.generated.compat.configuration.workfeed.api_key'}\",\"api_key_desc\":\"@:{'templates.generated.compat.configuration.workfeed.api_key_desc'}\",\"api_settings\":\"@:{'templates.generated.compat.configuration.workfeed.api_settings'}\",\"api_settings_desc\":\"@:{'templates.generated.compat.configuration.workfeed.api_settings_desc'}\",\"api_url\":\"@:{'templates.generated.compat.configuration.workfeed.api_url'}\",\"api_url_desc\":\"@:{'templates.generated.compat.configuration.workfeed.api_url_desc'}\",\"close\":\"@:{'templates.generated.compat.configuration.workfeed.close'}\",\"company_id\":\"@:{'templates.generated.compat.configuration.workfeed.company_id'}\",\"company_id_desc\":\"@:{'templates.generated.compat.configuration.workfeed.company_id_desc'}\",\"diagnostics\":{\"description\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.description'}\",\"get_employee\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.get_employee'}\",\"get_shift\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.get_shift'}\",\"list_departments\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.list_departments'}\",\"list_employees\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.list_employees'}\",\"list_shifts\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.list_shifts'}\",\"no_params_required\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.no_params_required'}\",\"placeholder_employee_id\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.placeholder_employee_id'}\",\"placeholder_released\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.placeholder_released'}\",\"placeholder_search\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.placeholder_search'}\",\"placeholder_shift_id\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.placeholder_shift_id'}\",\"placeholder_start_from\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.placeholder_start_from'}\",\"placeholder_start_to\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.placeholder_start_to'}\",\"placeholder_status\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.placeholder_status'}\",\"prompt_employee_id\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.prompt_employee_id'}\",\"prompt_employee_id_optional\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.prompt_employee_id_optional'}\",\"prompt_released_optional\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.prompt_released_optional'}\",\"prompt_search_optional\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.prompt_search_optional'}\",\"prompt_shift_id\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.prompt_shift_id'}\",\"prompt_start_from\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.prompt_start_from'}\",\"prompt_start_to\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.prompt_start_to'}\",\"prompt_status_optional\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.prompt_status_optional'}\",\"result_departments\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.result_departments'}\",\"result_employee\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.result_employee'}\",\"result_employees\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.result_employees'}\",\"result_shift\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.result_shift'}\",\"result_shifts\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.result_shifts'}\",\"select_employee_all\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.select_employee_all'}\",\"select_released_all\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.select_released_all'}\",\"select_released_false\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.select_released_false'}\",\"select_released_true\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.select_released_true'}\",\"title\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.title'}\",\"validation_datetime_invalid\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.validation_datetime_invalid'}\",\"validation_released_boolean\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.validation_released_boolean'}\",\"validation_shift_range_required\":\"@:{'templates.generated.compat.configuration.workfeed.diagnostics.validation_shift_range_required'}\"},\"enable\":\"@:{'templates.generated.compat.configuration.workfeed.enable'}\",\"enable_desc\":\"@:{'templates.generated.compat.configuration.workfeed.enable_desc'}\",\"general_settings\":\"@:{'templates.generated.compat.configuration.general.title'}\",\"general_settings_desc\":\"@:{'templates.generated.compat.configuration.general.title_desc'}\",\"lookup\":\"@:{'templates.generated.compat.configuration.workfeed.lookup'}\",\"request_failed\":\"@:{'templates.generated.compat.global_search.errors.request_failed'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.workfeed.subtitle'}\",\"title\":\"@:{'templates.generated.compat.configuration.workfeed.title'}\",\"validation_required\":\"@:{'templates.generated.compat.configuration.workfeed.validation_required'}\"},\"xlvask\":{\"api_key\":\"@:configuration.limble.api_key\",\"api_key_desc\":\"@:{'templates.generated.compat.configuration.xlvask.api_key_desc'}\",\"api_settings\":\"@:configuration.limble.api_settings\",\"api_settings_desc\":\"@:{'templates.generated.compat.configuration.xlvask.api_settings_desc'}\",\"automation_settings\":\"@:{'templates.generated.compat.configuration.xlvask.automation_settings'}\",\"automation_settings_desc\":\"@:{'templates.generated.compat.configuration.xlvask.automation_settings_desc'}\",\"connection_failed\":\"@:{'templates.generated.compat.configuration.xlvask.connection_failed'}\",\"connection_failed_desc\":\"@:{'templates.generated.compat.configuration.xlvask.connection_failed_desc'}\",\"connection_success\":\"@:configuration.limble.connection_success\",\"connection_success_desc\":\"@:{'templates.generated.compat.configuration.xlvask.connection_success_desc'}\",\"enable\":\"@:{'templates.generated.compat.configuration.xlvask.enable'}\",\"enable_automatic_attachment\":\"@:{'templates.generated.compat.configuration.xlvask.enable_automatic_attachment'}\",\"enable_automatic_attachment_desc\":\"@:{'templates.generated.compat.configuration.xlvask.enable_automatic_attachment_desc'}\",\"enable_automatic_creation\":\"@:{'templates.generated.compat.configuration.xlvask.enable_automatic_creation'}\",\"enable_automatic_creation_desc\":\"@:{'templates.generated.compat.configuration.xlvask.enable_automatic_creation_desc'}\",\"enable_desc\":\"@:{'templates.generated.compat.configuration.xlvask.enable_desc'}\",\"enable_openai_integration\":\"@:{'templates.generated.compat.configuration.xlvask.enable_openai_integration'}\",\"enable_openai_integration_desc\":\"@:{'templates.generated.compat.configuration.xlvask.enable_openai_integration_desc'}\",\"enable_sync\":\"@:{'templates.generated.compat.configuration.xlvask.enable_sync'}\",\"enable_sync_desc\":\"@:{'templates.generated.compat.configuration.xlvask.enable_sync_desc'}\",\"general_settings\":\"@:{'templates.generated.compat.configuration.general.title'}\",\"general_settings_desc\":\"@:{'templates.generated.compat.configuration.general.title_desc'}\",\"password\":\"@:{'templates.generated.compat.settings.section.password'}\",\"password_desc\":\"@:{'templates.generated.compat.settings.section.password_desc'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.xlvask.subtitle'}\",\"test_connection\":\"@:configuration.limble.test_connection\",\"title\":\"@:{'templates.generated.compat.configuration.xlvask.title'}\",\"username\":\"@:auth.username\",\"username_desc\":\"@:{'templates.generated.compat.configuration.xlvask.username_desc'}\"},\"release_manager\":{\"integrations\":{\"title\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.title'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.subtitle'}\",\"choose_repository\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.choose_repository'}\",\"add_health_url\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.add_health_url'}\",\"github_token_not_configured\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.github_token_not_configured'}\",\"open_github_token_settings\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.open_github_token_settings'}\",\"channel\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.channel'}\",\"app\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.app'}\",\"repository\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.repository'}\",\"repository_message\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.repository_message'}\",\"repository_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.repository_placeholder'}\",\"branch\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.branch'}\",\"branch_message\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.branch_message'}\",\"branch_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.branch_placeholder'}\",\"latest_prefix\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.latest_prefix'}\",\"coolify_instance\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_instance'}\",\"coolify_instance_message\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_instance_message'}\",\"no_coolify_instance\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.no_coolify_instance'}\",\"coolify_instance_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_instance_placeholder'}\",\"coolify_service_uuid\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_service_uuid'}\",\"coolify_service_uuid_message\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_service_uuid_message'}\",\"coolify_service_uuid_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_service_uuid_placeholder'}\",\"health_url\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.health_url'}\",\"health_url_message\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.health_url_message'}\",\"health_url_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.health_url_placeholder'}\",\"ssl_domain\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.ssl_domain'}\",\"ssl_domain_message\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.ssl_domain_message'}\",\"ssl_domain_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.ssl_domain_placeholder'}\",\"https_domain_for_coolify\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.https_domain_for_coolify'}\",\"endpoint_mode\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.endpoint_mode'}\",\"endpoint_mode_message\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.endpoint_mode_message'}\",\"endpoint_mode_auto\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.endpoint_mode_auto'}\",\"endpoint_mode_manual\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.endpoint_mode_manual'}\",\"manual_endpoint_host\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_host'}\",\"manual_endpoint_host_message\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_host_message'}\",\"manual_endpoint_host_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_host_placeholder'}\",\"manual_endpoint_port\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_port'}\",\"manual_endpoint_port_message\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.manual_endpoint_port_message'}\",\"app_port\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.app_port'}\",\"app_port_message\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.app_port_message'}\",\"auto_gateway_endpoint\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.auto_gateway_endpoint'}\",\"pending_automatic_endpoint\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.pending_automatic_endpoint'}\",\"auto_deploy\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.auto_deploy'}\",\"auto_deploy_tooltip\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.auto_deploy_tooltip'}\",\"coolify_ssl\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_ssl'}\",\"coolify_ssl_tooltip\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.coolify_ssl_tooltip'}\",\"deploy_now\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.deploy_now'}\",\"deploy_now_tooltip\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.deploy_now_tooltip'}\",\"create_missing_service\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.create_missing_service'}\",\"create_missing_service_tooltip\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.create_missing_service_tooltip'}\",\"test_access_tooltip\":\"@:{'templates.generated.compat.configuration.release_manager.integrations.test_access_tooltip'}\"},\"title\":\"@:{'templates.generated.compat.configuration.release_manager.title'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.release_manager.subtitle'}\",\"channel_names\":{\"stable\":\"@:{'templates.generated.compat.configuration.release_manager.channel_names.stable'}\",\"canary\":\"@:{'templates.generated.compat.configuration.release_manager.channel_names.canary'}\",\"internal\":\"@:{'templates.generated.compat.configuration.release_manager.channel_names.internal'}\"},\"channel_descriptions\":{\"stable\":\"@:{'templates.generated.compat.configuration.release_manager.channel_descriptions.stable'}\",\"canary\":\"@:{'templates.generated.compat.configuration.release_manager.channel_descriptions.canary'}\",\"internal\":\"@:{'templates.generated.compat.configuration.release_manager.channel_descriptions.internal'}\"},\"control_api\":{\"title\":\"@:{'templates.generated.compat.configuration.release_manager.control_api.title'}\",\"tooltip\":\"@:{'templates.generated.compat.configuration.release_manager.control_api.tooltip'}\",\"example\":\"@:{'templates.generated.compat.configuration.release_manager.control_api.example'}\",\"endpoint_label\":\"@:{'templates.generated.compat.configuration.release_manager.control_api.endpoint_label'}\",\"endpoint_message\":\"@:{'templates.generated.compat.configuration.release_manager.control_api.endpoint_message'}\",\"endpoint_aria\":\"@:{'templates.generated.compat.configuration.release_manager.control_api.endpoint_aria'}\",\"use_tooltip\":\"@:{'templates.generated.compat.configuration.release_manager.control_api.use_tooltip'}\",\"use\":\"@:{'templates.generated.compat.configuration.release_manager.control_api.use'}\",\"reset_tooltip\":\"@:{'templates.generated.compat.configuration.release_manager.control_api.reset_tooltip'}\",\"reset\":\"@:{'templates.generated.compat.configuration.release_manager.control_api.reset'}\",\"known_endpoints\":\"@:{'templates.generated.compat.configuration.release_manager.control_api.known_endpoints'}\"},\"tabs\":{\"overview\":{\"label\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.overview.label'}\",\"description\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.overview.description'}\"},\"channels\":{\"label\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.channels.label'}\",\"description\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.channels.description'}\"},\"assignments\":{\"label\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.assignments.label'}\",\"description\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.assignments.description'}\"},\"deployments\":{\"label\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.deployments.label'}\",\"description\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.deployments.description'}\"},\"replay\":{\"label\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.replay.label'}\",\"description\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.replay.description'}\"},\"integrations\":{\"label\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.integrations.label'}\",\"description\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.integrations.description'}\"},\"settings\":{\"label\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.settings.label'}\",\"description\":\"@:{'templates.generated.compat.configuration.release_manager.tabs.settings.description'}\"}},\"setup\":{\"channels\":\"@:{'templates.generated.compat.configuration.release_manager.setup.channels'}\",\"targets\":\"@:{'templates.generated.compat.configuration.release_manager.setup.targets'}\",\"assignments\":\"@:{'templates.generated.compat.configuration.release_manager.setup.assignments'}\",\"deployments\":\"@:{'templates.generated.compat.configuration.release_manager.setup.deployments'}\",\"replay\":\"@:{'templates.generated.compat.configuration.release_manager.setup.replay'}\"},\"stats\":{\"channels\":\"@:{'templates.generated.compat.configuration.release_manager.stats.channels'}\",\"targets\":\"@:{'templates.generated.compat.configuration.release_manager.stats.targets'}\",\"deployments\":\"@:{'templates.generated.compat.configuration.release_manager.stats.deployments'}\",\"timeline_events\":\"@:{'templates.generated.compat.configuration.release_manager.stats.timeline_events'}\"},\"overview\":{\"title\":\"@:{'templates.generated.compat.configuration.release_manager.overview.title'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.release_manager.overview.subtitle'}\",\"guided_setup\":\"@:{'templates.generated.compat.configuration.release_manager.overview.guided_setup'}\",\"next_step\":\"@:{'templates.generated.compat.configuration.release_manager.overview.next_step'}\",\"ready\":\"@:{'templates.generated.compat.configuration.release_manager.overview.ready'}\",\"add_suggested_channel\":\"@:{'templates.generated.compat.configuration.release_manager.overview.add_suggested_channel'}\",\"module_health_empty\":\"@:{'templates.generated.compat.configuration.release_manager.overview.module_health_empty'}\"},\"settings\":{\"title\":\"@:{'templates.generated.compat.configuration.release_manager.settings.title'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.release_manager.settings.subtitle'}\",\"github_token\":\"@:{'templates.generated.compat.configuration.release_manager.settings.github_token'}\",\"github_api_url\":\"@:{'templates.generated.compat.configuration.release_manager.settings.github_api_url'}\",\"webhook_secret\":\"@:{'templates.generated.compat.configuration.release_manager.settings.webhook_secret'}\",\"github_webhook_secret\":\"@:{'templates.generated.compat.configuration.release_manager.settings.github_webhook_secret'}\",\"configured\":\"@:{'templates.generated.compat.configuration.release_manager.settings.configured'}\",\"not_configured\":\"@:{'templates.generated.compat.configuration.release_manager.settings.not_configured'}\",\"loaded_from\":\"@:{'templates.generated.compat.configuration.release_manager.settings.loaded_from'}\",\"set_below\":\"@:{'templates.generated.compat.configuration.release_manager.settings.set_below'}\",\"private_repositories_prefix\":\"@:{'templates.generated.compat.configuration.release_manager.settings.private_repositories_prefix'}\",\"private_repositories_or\":\"@:{'templates.generated.compat.configuration.release_manager.settings.private_repositories_or'}\",\"github_token_message\":\"@:{'templates.generated.compat.configuration.release_manager.settings.github_token_message'}\",\"github_token_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.settings.github_token_placeholder'}\",\"github_api_url_message\":\"@:{'templates.generated.compat.configuration.release_manager.settings.github_api_url_message'}\",\"webhook_secret_message\":\"@:{'templates.generated.compat.configuration.release_manager.settings.webhook_secret_message'}\",\"webhook_secret_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.settings.webhook_secret_placeholder'}\",\"save\":\"@:{'templates.generated.compat.configuration.release_manager.settings.save'}\",\"back_to_integrations\":\"@:{'templates.generated.compat.configuration.release_manager.settings.back_to_integrations'}\",\"guide\":{\"steps\":{\"github_token\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.steps.github_token'}\",\"github_api_url\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.steps.github_api_url'}\",\"github_webhook_secret\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.steps.github_webhook_secret'}\",\"review\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.steps.review'}\"},\"github_token_title\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.github_token_title'}\",\"github_token_description\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.github_token_description'}\",\"configure_this_in\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.configure_this_in'}\",\"server_environment_variable\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.server_environment_variable'}\",\"takes_precedence\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.takes_precedence'}\",\"recommended_access\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.recommended_access'}\",\"recommended_access_description\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.recommended_access_description'}\",\"github_api_url_title\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.github_api_url_title'}\",\"github_api_url_description\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.github_api_url_description'}\",\"github_api_url_invalid\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.github_api_url_invalid'}\",\"github_cloud\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.github_cloud'}\",\"enterprise_example\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.enterprise_example'}\",\"github_webhook_secret_title\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.github_webhook_secret_title'}\",\"github_webhook_secret_description\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.github_webhook_secret_description'}\",\"github_webhook_url\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.github_webhook_url'}\",\"store_shared_secret_in\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.store_shared_secret_in'}\",\"review_title\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.review_title'}\",\"review_description\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.review_description'}\",\"ready\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.ready'}\",\"needs_value\":\"@:{'templates.generated.compat.configuration.release_manager.settings.guide.needs_value'}\"}},\"channel_unavailable\":{\"kicker\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.kicker'}\",\"title\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.title'}\",\"summary_prefix\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.summary_prefix'}\",\"summary_suffix\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.summary_suffix'}\",\"release_bundle\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.release_bundle'}\",\"frontend_version\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.frontend_version'}\",\"api_version\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.api_version'}\",\"frontend_base_url\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.frontend_base_url'}\",\"api_base_url\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.api_base_url'}\",\"frontend_entry\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.frontend_entry'}\",\"release_runtime\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.release_runtime'}\",\"checking_again\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.checking_again'}\",\"refresh_error\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.refresh_error'}\",\"ignore\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.ignore'}\",\"check_again\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.check_again'}\",\"logout\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.logout'}\",\"base_image\":\"@:{'templates.generated.compat.configuration.release_manager.channel_unavailable.base_image'}\"},\"channel_switched\":{\"kicker\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.kicker'}\",\"title\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.title'}\",\"summary_prefix\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.summary_prefix'}\",\"summary_suffix\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.summary_suffix'}\",\"bundle\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.bundle'}\",\"frontend\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.frontend'}\",\"api\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.api'}\",\"frontend_version\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.frontend_version'}\",\"api_version\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.api_version'}\",\"assigned_channel\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.assigned_channel'}\",\"current_app_image\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.current_app_image'}\",\"current_api\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.current_api'}\",\"base_image\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.base_image'}\",\"continue\":\"@:{'templates.generated.compat.configuration.release_manager.channel_switched.continue'}\"},\"channel_selector\":{\"title\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.title'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.subtitle'}\",\"sidebar_title\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.sidebar_title'}\",\"default\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.default'}\",\"ready\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.ready'}\",\"unavailable\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.unavailable'}\",\"release_bundle\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.release_bundle'}\",\"frontend_version\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.frontend_version'}\",\"api_version\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.api_version'}\",\"frontend_base_url\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.frontend_base_url'}\",\"api_base_url\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.api_base_url'}\",\"frontend_entry\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.frontend_entry'}\",\"release_runtime\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.release_runtime'}\",\"bundle\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.bundle'}\",\"frontend\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.frontend'}\",\"api\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.api'}\",\"use_local_frontend\":\"@:{'templates.generated.compat.configuration.release_manager.channel_selector.use_local_frontend'}\"},\"common\":{\"yes\":\"@:{'templates.generated.compat.configuration.release_manager.common.yes'}\",\"no\":\"@:{'templates.generated.compat.configuration.release_manager.common.no'}\",\"off\":\"@:{'templates.generated.compat.configuration.release_manager.common.off'}\"},\"actions\":{\"edit\":\"@:{'templates.generated.compat.configuration.release_manager.actions.edit'}\",\"rollback\":\"@:{'templates.generated.compat.configuration.release_manager.actions.rollback'}\",\"update\":\"@:{'templates.generated.compat.configuration.release_manager.actions.update'}\",\"create\":\"@:{'templates.generated.compat.configuration.release_manager.actions.create'}\",\"clear\":\"@:{'templates.generated.compat.configuration.release_manager.actions.clear'}\",\"assign\":\"@:{'templates.generated.compat.configuration.release_manager.actions.assign'}\",\"remove\":\"@:{'templates.generated.compat.configuration.release_manager.actions.remove'}\",\"test_access\":\"@:{'templates.generated.compat.configuration.release_manager.actions.test_access'}\",\"deploy\":\"@:{'templates.generated.compat.configuration.release_manager.actions.deploy'}\",\"redeploy\":\"@:{'templates.generated.compat.configuration.release_manager.actions.redeploy'}\",\"promote\":\"@:{'templates.generated.compat.configuration.release_manager.actions.promote'}\",\"enable\":\"@:{'templates.generated.compat.configuration.release_manager.actions.enable'}\",\"search\":\"@:{'templates.generated.compat.configuration.release_manager.actions.search'}\",\"save_target\":\"@:{'templates.generated.compat.configuration.release_manager.actions.save_target'}\",\"delete\":\"@:{'templates.generated.compat.configuration.release_manager.actions.delete'}\",\"back\":\"@:{'templates.generated.compat.configuration.release_manager.actions.back'}\",\"next\":\"@:{'templates.generated.compat.configuration.release_manager.actions.next'}\"},\"tables\":{\"channel\":\"@:{'templates.generated.compat.configuration.release_manager.tables.channel'}\",\"rollout\":\"@:{'templates.generated.compat.configuration.release_manager.tables.rollout'}\",\"frontend\":\"@:{'templates.generated.compat.configuration.release_manager.tables.frontend'}\",\"api\":\"@:{'templates.generated.compat.configuration.release_manager.tables.api'}\",\"replay\":\"@:{'templates.generated.compat.configuration.release_manager.tables.replay'}\",\"actions\":\"@:{'templates.generated.compat.configuration.release_manager.tables.actions'}\",\"module\":\"@:{'templates.generated.compat.configuration.release_manager.tables.module'}\",\"status\":\"@:{'templates.generated.compat.configuration.release_manager.tables.status'}\",\"checked\":\"@:{'templates.generated.compat.configuration.release_manager.tables.checked'}\",\"subject\":\"@:{'templates.generated.compat.configuration.release_manager.tables.subject'}\",\"reason\":\"@:{'templates.generated.compat.configuration.release_manager.tables.reason'}\",\"expires\":\"@:{'templates.generated.compat.configuration.release_manager.tables.expires'}\",\"deployment\":\"@:{'templates.generated.compat.configuration.release_manager.tables.deployment'}\",\"source\":\"@:{'templates.generated.compat.configuration.release_manager.tables.source'}\",\"started\":\"@:{'templates.generated.compat.configuration.release_manager.tables.started'}\",\"target\":\"@:{'templates.generated.compat.configuration.release_manager.tables.target'}\",\"coolify\":\"@:{'templates.generated.compat.configuration.release_manager.tables.coolify'}\",\"auto\":\"@:{'templates.generated.compat.configuration.release_manager.tables.auto'}\"},\"values\":{\"app\":{\"frontend\":\"@:{'templates.generated.compat.configuration.release_manager.values.app.frontend'}\",\"api\":\"@:{'templates.generated.compat.configuration.release_manager.values.app.api'}\"},\"capture_level\":{\"metadata\":\"@:{'templates.generated.compat.configuration.release_manager.values.capture_level.metadata'}\",\"full_redacted\":\"@:{'templates.generated.compat.configuration.release_manager.values.capture_level.full_redacted'}\"},\"subject_type\":{\"user\":\"@:{'templates.generated.compat.configuration.release_manager.values.subject_type.user'}\",\"subuser\":\"@:{'templates.generated.compat.configuration.release_manager.values.subject_type.subuser'}\",\"customer\":\"@:{'templates.generated.compat.configuration.release_manager.values.subject_type.customer'}\",\"channel\":\"@:{'templates.generated.compat.configuration.release_manager.values.subject_type.channel'}\"},\"severity\":{\"error\":\"@:{'templates.generated.compat.configuration.release_manager.values.severity.error'}\",\"warning\":\"@:{'templates.generated.compat.configuration.release_manager.values.severity.warning'}\",\"info\":\"@:{'templates.generated.compat.configuration.release_manager.values.severity.info'}\"},\"status\":{\"ok\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.ok'}\",\"active\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.active'}\",\"deployed\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.deployed'}\",\"stable\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.stable'}\",\"enabled\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.enabled'}\",\"queued\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.queued'}\",\"deploying\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.deploying'}\",\"metadata\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.metadata'}\",\"not_configured\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.not_configured'}\",\"warning\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.warning'}\",\"failed\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.failed'}\",\"down\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.down'}\",\"error\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.error'}\",\"unknown\":\"@:{'templates.generated.compat.configuration.release_manager.values.status.unknown'}\"}},\"autocomplete\":{\"suggested_value\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.suggested_value'}\",\"suggestion\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.suggestion'}\",\"use_typed_value\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.use_typed_value'}\",\"custom\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.custom'}\",\"api_url\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.api_url'}\",\"frontend_url\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.frontend_url'}\",\"known_release_url\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.known_release_url'}\",\"deploy_here_with_coolify\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.deploy_here_with_coolify'}\",\"prepare_coolify_target\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.prepare_coolify_target'}\",\"coolify_ssl\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.coolify_ssl'}\",\"github_repository\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.github_repository'}\",\"owner_repository\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.owner_repository'}\",\"git_branch\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.git_branch'}\",\"deployment_branch\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.deployment_branch'}\",\"github_commit\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.github_commit'}\",\"git_commit\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.git_commit'}\",\"use_specific_commit_sha\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.use_specific_commit_sha'}\",\"custom_commit\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.custom_commit'}\",\"health_url\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.health_url'}\",\"release_health_check\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.release_health_check'}\",\"coolify_service\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.coolify_service'}\",\"service_uuid\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.service_uuid'}\",\"known_coolify_service_uuid\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.known_coolify_service_uuid'}\",\"control_api\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.control_api'}\",\"release_manager_api_endpoint\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.release_manager_api_endpoint'}\",\"module\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.module'}\",\"timeline_module_key\":\"@:{'templates.generated.compat.configuration.release_manager.autocomplete.timeline_module_key'}\"},\"errors\":{\"github_repositories\":\"@:{'templates.generated.compat.configuration.release_manager.errors.github_repositories'}\",\"github_branches\":\"@:{'templates.generated.compat.configuration.release_manager.errors.github_branches'}\",\"repository_branch_required\":\"@:{'templates.generated.compat.configuration.release_manager.errors.repository_branch_required'}\",\"github_access_failed\":\"@:{'templates.generated.compat.configuration.release_manager.errors.github_access_failed'}\"},\"channels\":{\"title\":\"@:{'templates.generated.compat.configuration.release_manager.channels.title'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.release_manager.channels.subtitle'}\",\"rollout_percent\":\"@:{'templates.generated.compat.configuration.release_manager.channels.rollout_percent'}\",\"already_configured\":\"@:{'templates.generated.compat.configuration.release_manager.channels.already_configured'}\",\"slug\":\"@:{'templates.generated.compat.configuration.release_manager.channels.slug'}\",\"slug_message\":\"@:{'templates.generated.compat.configuration.release_manager.channels.slug_message'}\",\"slug_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.channels.slug_placeholder'}\",\"name\":\"@:{'templates.generated.compat.configuration.release_manager.channels.name'}\",\"name_message\":\"@:{'templates.generated.compat.configuration.release_manager.channels.name_message'}\",\"name_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.channels.name_placeholder'}\",\"rollout\":\"@:{'templates.generated.compat.configuration.release_manager.channels.rollout'}\",\"rollout_message\":\"@:{'templates.generated.compat.configuration.release_manager.channels.rollout_message'}\",\"frontend_url\":\"@:{'templates.generated.compat.configuration.release_manager.channels.frontend_url'}\",\"frontend_url_message\":\"@:{'templates.generated.compat.configuration.release_manager.channels.frontend_url_message'}\",\"frontend_url_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.channels.frontend_url_placeholder'}\",\"no_matching_release_url\":\"@:{'templates.generated.compat.configuration.release_manager.channels.no_matching_release_url'}\",\"api_url\":\"@:{'templates.generated.compat.configuration.release_manager.channels.api_url'}\",\"api_url_message\":\"@:{'templates.generated.compat.configuration.release_manager.channels.api_url_message'}\",\"api_url_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.channels.api_url_placeholder'}\",\"no_matching_api_url\":\"@:{'templates.generated.compat.configuration.release_manager.channels.no_matching_api_url'}\",\"replay_capture\":\"@:{'templates.generated.compat.configuration.release_manager.channels.replay_capture'}\",\"replay_capture_message\":\"@:{'templates.generated.compat.configuration.release_manager.channels.replay_capture_message'}\",\"retention_days\":\"@:{'templates.generated.compat.configuration.release_manager.channels.retention_days'}\",\"retention_days_message\":\"@:{'templates.generated.compat.configuration.release_manager.channels.retention_days_message'}\",\"enabled\":\"@:{'templates.generated.compat.configuration.release_manager.channels.enabled'}\",\"default_channel\":\"@:{'templates.generated.compat.configuration.release_manager.channels.default_channel'}\",\"replay_enabled\":\"@:{'templates.generated.compat.configuration.release_manager.channels.replay_enabled'}\",\"frontend_chip\":\"@:{'templates.generated.compat.configuration.release_manager.channels.frontend_chip'}\",\"api_chip\":\"@:{'templates.generated.compat.configuration.release_manager.channels.api_chip'}\"},\"assignments\":{\"title\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.title'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.subtitle'}\",\"subject\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.subject'}\",\"subject_message\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.subject_message'}\",\"subject_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.subject_placeholder'}\",\"subject_empty\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.subject_empty'}\",\"group_users\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.group_users'}\",\"group_subusers\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.group_subusers'}\",\"group_customers\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.group_customers'}\",\"group_manual\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.group_manual'}\",\"manual_user\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.manual_user'}\",\"manual_subuser\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.manual_subuser'}\",\"manual_customer\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.manual_customer'}\",\"manual_description\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.manual_description'}\",\"subject_type\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.subject_type'}\",\"subject_type_message\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.subject_type_message'}\",\"customer\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.customer'}\",\"customer_message\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.customer_message'}\",\"customer_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.customer_placeholder'}\",\"subject_id\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.subject_id'}\",\"subject_id_message\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.subject_id_message'}\",\"subject_id_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.subject_id_placeholder'}\",\"channel\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.channel'}\",\"channel_message\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.channel_message'}\",\"reason\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.reason'}\",\"reason_message\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.reason_message'}\",\"reason_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.reason_placeholder'}\",\"expires\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.expires'}\",\"expires_message\":\"@:{'templates.generated.compat.configuration.release_manager.assignments.expires_message'}\"},\"deployments\":{\"title\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.title'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.subtitle'}\",\"manual_deployment_record\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.manual_deployment_record'}\",\"target\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.target'}\",\"target_message\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.target_message'}\",\"select_target_or_manual\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.select_target_or_manual'}\",\"channel\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.channel'}\",\"app\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.app'}\",\"repository\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.repository'}\",\"repository_message\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.repository_message'}\",\"repository_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.repository_placeholder'}\",\"branch\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.branch'}\",\"branch_message\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.branch_message'}\",\"branch_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.branch_placeholder'}\",\"commit_selection\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.commit_selection'}\",\"commit_selection_message\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.commit_selection_message'}\",\"latest_from_branch\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.latest_from_branch'}\",\"specific_commit\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.specific_commit'}\",\"specific_commit_message\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.specific_commit_message'}\",\"commit_sha_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.commit_sha_placeholder'}\",\"version_label\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.version_label'}\",\"version_label_message\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.version_label_message'}\",\"version_label_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.version_label_placeholder'}\",\"commit_prefix\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.commit_prefix'}\",\"test_access_tooltip\":\"@:{'templates.generated.compat.configuration.release_manager.deployments.test_access_tooltip'}\"},\"replay\":{\"title\":\"@:{'templates.generated.compat.configuration.release_manager.replay.title'}\",\"subtitle\":\"@:{'templates.generated.compat.configuration.release_manager.replay.subtitle'}\",\"capture_channel\":\"@:{'templates.generated.compat.configuration.release_manager.replay.capture_channel'}\",\"target_type\":\"@:{'templates.generated.compat.configuration.release_manager.replay.target_type'}\",\"target\":\"@:{'templates.generated.compat.configuration.release_manager.replay.target'}\",\"target_message\":\"@:{'templates.generated.compat.configuration.release_manager.replay.target_message'}\",\"target_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.replay.target_placeholder'}\",\"channel_scope\":\"@:{'templates.generated.compat.configuration.release_manager.replay.channel_scope'}\",\"channel_scope_message\":\"@:{'templates.generated.compat.configuration.release_manager.replay.channel_scope_message'}\",\"no_channel_scope\":\"@:{'templates.generated.compat.configuration.release_manager.replay.no_channel_scope'}\",\"capture_level\":\"@:{'templates.generated.compat.configuration.release_manager.replay.capture_level'}\",\"expires\":\"@:{'templates.generated.compat.configuration.release_manager.replay.expires'}\",\"expires_message\":\"@:{'templates.generated.compat.configuration.release_manager.replay.expires_message'}\",\"trace_id\":\"@:{'templates.generated.compat.configuration.release_manager.replay.trace_id'}\",\"trace_id_message\":\"@:{'templates.generated.compat.configuration.release_manager.replay.trace_id_message'}\",\"trace_id_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.replay.trace_id_placeholder'}\",\"channel\":\"@:{'templates.generated.compat.configuration.release_manager.replay.channel'}\",\"channel_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.replay.channel_placeholder'}\",\"principal_id\":\"@:{'templates.generated.compat.configuration.release_manager.replay.principal_id'}\",\"principal_id_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.replay.principal_id_placeholder'}\",\"module\":\"@:{'templates.generated.compat.configuration.release_manager.replay.module'}\",\"module_placeholder\":\"@:{'templates.generated.compat.configuration.release_manager.replay.module_placeholder'}\",\"severity\":\"@:{'templates.generated.compat.configuration.release_manager.replay.severity'}\",\"any_severity\":\"@:{'templates.generated.compat.configuration.release_manager.replay.any_severity'}\",\"no_timeline_events\":\"@:{'templates.generated.compat.configuration.release_manager.replay.no_timeline_events'}\"},\"loading\":{\"assignments\":\"@:{'templates.generated.compat.configuration.release_manager.loading.assignments'}\",\"channels\":\"@:{'templates.generated.compat.configuration.release_manager.loading.channels'}\",\"channels_detail\":\"@:{'templates.generated.compat.configuration.release_manager.loading.channels_detail'}\",\"data_services\":\"@:{'templates.generated.compat.configuration.release_manager.loading.data_services'}\",\"deployments\":\"@:{'templates.generated.compat.configuration.release_manager.loading.deployments'}\",\"github_repositories\":\"@:{'templates.generated.compat.configuration.release_manager.loading.github_repositories'}\",\"integrations\":\"@:{'templates.generated.compat.configuration.release_manager.loading.integrations'}\",\"operations\":\"@:{'templates.generated.compat.configuration.release_manager.loading.operations'}\",\"refreshing_summary\":\"@:{'templates.generated.compat.configuration.release_manager.loading.refreshing_summary'}\",\"refreshing_timeline\":\"@:{'templates.generated.compat.configuration.release_manager.loading.refreshing_timeline'}\",\"settings\":\"@:{'templates.generated.compat.configuration.release_manager.loading.settings'}\",\"summary\":\"@:{'templates.generated.compat.configuration.release_manager.loading.summary'}\",\"summary_detail\":\"@:{'templates.generated.compat.configuration.release_manager.loading.summary_detail'}\",\"timeline_events\":\"@:{'templates.generated.compat.configuration.release_manager.loading.timeline_events'}\",\"timeline_sessions\":\"@:{'templates.generated.compat.configuration.release_manager.loading.timeline_sessions'}\"}}},\"connectivity\":{\"description\":\"@:{'templates.generated.compat.connectivity.description'}\",\"footer\":\"@:{'templates.generated.compat.connectivity.footer'}\",\"no_internet\":\"@:{'templates.generated.compat.connectivity.no_internet'}\",\"retry_in\":\"@:{'templates.generated.compat.connectivity.retry_in'}\",\"retry_now\":\"@:{'templates.generated.compat.connectivity.retry_now'}\",\"retry\":\"@:{'templates.generated.compat.connectivity.retry'}\",\"server_down\":\"@:{'templates.generated.compat.connectivity.server_down'}\",\"subtitle\":\"@:{'templates.generated.compat.connectivity.subtitle'}\",\"title\":\"@:{'templates.generated.compat.connectivity.title'}\"},\"cron\":{\"actions\":{\"edit_interval\":\"Edit interval\",\"refresh\":\"Refresh\",\"run_now\":\"Run now\",\"save\":\"Save\",\"toggle\":\"Toggle cron task\"},\"duration\":{\"ms\":\"{value} ms\",\"seconds\":\"{value} s\"},\"empty\":\"No cron tasks found.\",\"empty_value\":\"--\",\"errors\":{\"generic\":\"Unable to load cron tasks.\"},\"history\":{\"duration\":\"Duration\",\"empty\":\"No cron runs found.\",\"source\":\"Source\",\"started\":\"Started\",\"status\":\"Status\",\"task\":\"Task\",\"title\":\"Run history\"},\"interval\":{\"hours\":\"Every {value} h\",\"minutes\":\"Every {value} min\",\"seconds\":\"Every {value} s\"},\"loading\":\"Loading cron tasks...\",\"nav\":\"@:{'cron.title'}\",\"replication\":\"Replication\",\"states\":{\"disabled\":\"Disabled\",\"due_now\":\"Due now\",\"enabled\":\"Enabled\"},\"status\":{\"failed\":\"Failed\",\"queued\":\"Queued\",\"running\":\"Running\",\"skipped\":\"Skipped\",\"succeeded\":\"Succeeded\",\"timed_out\":\"Timed out\",\"unknown\":\"Unknown\"},\"subtitle\":\"Configure schedules, run tasks manually, and inspect recent cron execution.\",\"summary\":{\"due\":\"@:{'words.generated.due'}\",\"enabled\":\"@:{'cron.states.enabled'}\",\"next\":\"Next run\",\"total\":\"Tasks\"},\"system_nav\":\"System\",\"table\":{\"actions\":\"Actions\",\"enabled\":\"@:{'cron.states.enabled'}\",\"estimate\":\"Estimate\",\"module\":\"Module\",\"next_run\":\"@:{'cron.summary.next'}\",\"schedule\":\"Schedule\",\"status\":\"@:{'cron.history.status'}\",\"task\":\"@:{'cron.history.task'}\"},\"title\":\"Cron tasks\"},\"customer_creation\":{\"customer\":{\"benefit_credit\":\"@:{'templates.generated.compat.customer_creation.customer.benefit_credit'}\",\"benefit_credit_desc\":\"@:{'templates.generated.compat.customer_creation.customer.benefit_credit_desc'}\",\"benefit_portal\":\"@:{'templates.generated.compat.customer_creation.customer.benefit_portal'}\",\"benefit_portal_desc\":\"@:{'templates.generated.compat.customer_creation.customer.benefit_portal_desc'}\",\"benefit_wash\":\"@:{'templates.generated.compat.tables.bookings.wash'}\",\"benefit_wash_desc\":\"@:{'templates.generated.compat.tables.bookings.wash_desc'}\",\"cvr_label\":\"@:{'templates.generated.compat.customers.cvr'}\",\"ean_label\":\"@:{'templates.generated.compat.customer_creation.customer.ean_label'}\",\"email_label\":\"@:{'templates.generated.compat.customer_creation.customer.email_label'}\",\"intro\":\"@:{'templates.generated.compat.customer_creation.customer.intro'}\",\"phone_label\":\"@:{'templates.generated.compat.customer_creation.customer.phone_label'}\",\"submit\":\"@:customer_creation.driver.submit\",\"success_message\":\"@:{'templates.generated.compat.customer_creation.customer.success_message'}\",\"title\":\"@:{'templates.generated.compat.customer_creation.customer.title'}\"},\"driver\":{\"benefit_24h\":\"@:{'templates.generated.compat.customer_creation.driver.benefit_24h'}\",\"benefit_24h_desc\":\"@:{'templates.generated.compat.customer_creation.driver.benefit_24h_desc'}\",\"benefit_booking\":\"@:{'templates.generated.compat.common.order'}\",\"benefit_booking_desc\":\"@:{'templates.generated.compat.common.order_desc'}\",\"benefit_find\":\"@:{'templates.generated.compat.customer_creation.driver.benefit_find'}\",\"benefit_find_desc\":\"@:{'templates.generated.compat.customer_creation.driver.benefit_find_desc'}\",\"benefit_loyalty\":\"@:{'templates.generated.compat.customer_creation.driver.benefit_loyalty'}\",\"benefit_loyalty_desc\":\"@:{'templates.generated.compat.customer_creation.driver.benefit_loyalty_desc'}\",\"cvr_label\":\"@:{'templates.generated.compat.customers.cvr'}\",\"intro\":\"@:{'templates.generated.compat.customer_creation.driver.intro'}\",\"phone_label\":\"@:{'templates.generated.compat.customer_creation.driver.phone_label'}\",\"submit\":\"@:{'templates.generated.compat.customer_creation.driver.submit'}\",\"title\":\"@:{'templates.generated.compat.customer_creation.driver.title'}\"},\"pre_title\":\"@:{'templates.generated.compat.customer_creation.pre_title'}\",\"subtitle\":\"@:{'templates.generated.compat.customer_creation.subtitle'}\",\"title\":\"@:{'templates.generated.compat.customer_creation.title'}\"},\"customer_rules\":{\"attributes\":{\"exemptFromAdministrationFee\":{\"description\":\"@:{'templates.generated.compat.customer_rules.attributes.exemptFromAdministrationFee.description'}\",\"label\":\"@:{'templates.generated.compat.customer_rules.attributes.exemptFromAdministrationFee.label'}\"},\"invoiceAllOrdersIndividually\":{\"description\":\"@:{'templates.generated.compat.customer_rules.attributes.invoiceAllOrdersIndividually.description'}\",\"label\":\"@:{'templates.generated.compat.customer_rules.attributes.invoiceAllOrdersIndividually.label'}\"},\"invoiceWithStripe\":{\"description\":\"@:{'templates.generated.compat.customer_rules.attributes.invoiceWithStripe.description'}\",\"label\":\"@:{'templates.generated.compat.customer_rules.attributes.invoiceWithStripe.label'}\"},\"onlyTankCleaning\":{\"description\":\"@:{'templates.generated.compat.customer_rules.attributes.onlyTankCleaning.description'}\",\"label\":\"@:{'templates.generated.compat.pagination.only_tank_cleaning'}\"},\"requiresReferenceNumber\":{\"description\":\"@:{'templates.generated.compat.customer_rules.attributes.requiresReferenceNumber.description'}\",\"label\":\"@:{'templates.generated.compat.customer_rules.attributes.requiresReferenceNumber.label'}\"},\"requiresRegistrationNumbersInvoice\":{\"description\":\"@:{'templates.generated.compat.customer_rules.attributes.requiresRegistrationNumbersInvoice.description'}\",\"label\":\"@:{'templates.generated.compat.customer_rules.attributes.requiresRegistrationNumbersInvoice.label'}\"},\"restrictAdditionalServices\":{\"description\":\"@:{'templates.generated.compat.customer_rules.attributes.restrictAdditionalServices.description'}\",\"label\":\"@:{'templates.generated.compat.customer_rules.attributes.restrictAdditionalServices.label'}\"},\"restrictInteriorCleaning\":{\"description\":\"@:{'templates.generated.compat.customer_rules.attributes.restrictInteriorCleaning.description'}\",\"label\":\"@:{'templates.generated.compat.customer_rules.attributes.restrictInteriorCleaning.label'}\"},\"restrictSpotFree\":{\"description\":\"@:{'templates.generated.compat.customer_rules.attributes.restrictSpotFree.description'}\",\"label\":\"@:{'templates.generated.compat.customer_rules.attributes.restrictSpotFree.label'}\"},\"restrictTankCleaning\":{\"description\":\"@:{'templates.generated.compat.customer_rules.attributes.restrictTankCleaning.description'}\",\"label\":\"@:{'templates.generated.compat.customer_rules.attributes.restrictTankCleaning.label'}\"},\"showPricesOnBookingPage\":{\"description\":\"@:{'templates.generated.compat.customer_rules.attributes.showPricesOnBookingPage.description'}\",\"label\":\"@:{'templates.generated.compat.customer_rules.attributes.showPricesOnBookingPage.label'}\"},\"usePONumbers\":{\"description\":\"@:{'templates.generated.compat.customer_rules.attributes.usePONumbers.description'}\",\"label\":\"@:{'templates.generated.compat.customer_rules.attributes.usePONumbers.label'}\"}},\"manager\":{\"active_count\":\"@:{'templates.generated.compat.customer_rules.manager.active_count'}\",\"errors\":{\"load\":\"@:{'templates.generated.compat.customer_rules.manager.errors.load'}\",\"update\":\"@:{'templates.generated.compat.customer_rules.manager.errors.update'}\"},\"no_target\":\"@:{'templates.generated.compat.customer_rules.manager.no_target'}\",\"toggle_unavailable\":\"@:{'templates.generated.compat.customer_rules.manager.toggle_unavailable'}\",\"unavailable\":\"@:{'templates.generated.compat.customer_rules.manager.unavailable'}\",\"unknown_active\":\"@:{'templates.generated.compat.customer_rules.manager.unknown_active'}\"},\"tooltip\":{\"available_if_enabled\":\"@:{'templates.generated.compat.customer_rules.tooltip.available_if_enabled'}\",\"available_while_enabled\":\"@:{'templates.generated.compat.customer_rules.tooltip.available_while_enabled'}\",\"blocked_if_enabled\":\"@:{'templates.generated.compat.customer_rules.tooltip.blocked_if_enabled'}\",\"blocked_now\":\"@:{'templates.generated.compat.customer_rules.tooltip.blocked_now'}\",\"changes\":\"@:{'templates.generated.compat.customer_rules.tooltip.changes'}\",\"groups\":{\"primary_products\":\"@:{'templates.generated.compat.customer_rules.tooltip.groups.primary_products'}\",\"related_addons\":\"@:{'templates.generated.compat.customer_rules.tooltip.groups.related_addons'}\",\"standalone_additional_services\":\"@:{'templates.generated.compat.customer_rules.tooltip.groups.standalone_additional_services'}\"},\"load_failed\":\"@:{'templates.generated.compat.customer_rules.tooltip.load_failed'}\",\"loading_products\":\"@:{'templates.generated.compat.customer_rules.tooltip.loading_products'}\",\"no_affected_products\":\"@:{'templates.generated.compat.customer_rules.tooltip.no_affected_products'}\"}},\"customers\":{\"actions\":\"@:common.actions\",\"add_customer\":\"@:{'templates.generated.compat.customers.add_customer'}\",\"add_vehicle_to_customer\":\"@:{'templates.generated.compat.customers.add_vehicle_to_customer'}\",\"add_vehicle\":\"@:{'templates.generated.compat.customers.add_vehicle'}\",\"confirm_delete_vehicle\":\"@:{'templates.generated.compat.customers.confirm_delete_vehicle'}\",\"confirm_remove_vehicle\":\"@:{'templates.generated.compat.customers.confirm_remove_vehicle'}\",\"contact\":{\"email\":\"@:common.email\",\"name\":\"@:{'templates.generated.compat.tables.common.name'}\",\"phone\":\"@:common.phone\",\"title\":\"@:{'templates.generated.compat.customers.contact.title'}\"},\"created_at\":\"@:{'templates.generated.compat.global.generated'}\",\"customer_number\":\"@:{'templates.generated.compat.objects.columns.customer_number'}\",\"cvr\":\"@:{'templates.generated.compat.customers.cvr'}\",\"delete_confirm\":\"@:{'templates.generated.compat.customers.delete_confirm'}\",\"delete_customer\":\"@:{'templates.generated.compat.customers.delete_customer'}\",\"delete_selected_confirm\":\"@:{'templates.generated.compat.customers.delete_selected_confirm'}\",\"delete_selected\":\"@:{'templates.generated.compat.customers.delete_selected'}\",\"delete_vehicle\":\"@:{'templates.generated.compat.vehicles.delete_vehicle'}\",\"edit_customer\":\"@:{'templates.generated.compat.customers.edit_customer'}\",\"email\":\"@:common.email\",\"export\":\"@:{'templates.generated.compat.customers.export'}\",\"form\":{\"address\":\"@:common.address\",\"billing_type\":\"@:{'templates.generated.compat.customers.form.billing_type'}\",\"city\":\"@:{'templates.generated.compat.objects.columns.city'}\",\"contact_email\":\"@:{'templates.generated.compat.admin.pos.contact_email'}\",\"contact_name\":\"@:{'templates.generated.compat.customers.form.contact_name'}\",\"contact_phone\":\"@:{'templates.generated.compat.customers.form.contact_phone'}\",\"country\":\"@:common.country\",\"credit_limit\":\"@:{'templates.generated.compat.customers.form.credit_limit'}\",\"cvr\":\"@:customers.cvr\",\"email\":\"@:common.email\",\"name\":\"@:common.name\",\"payment_due\":\"@:{'templates.generated.compat.customers.form.payment_due'}\",\"phone\":\"@:common.phone\",\"submit\":\"@:{'templates.generated.compat.products.form.save'}\",\"vat_registered\":\"@:{'templates.generated.compat.customers.form.vat_registered'}\",\"zip\":\"@:common.zip\"},\"import\":\"@:{'templates.generated.compat.customers.import'}\",\"name\":\"@:common.name\",\"no_customers\":\"@:{'templates.generated.compat.customers.no_customers'}\",\"no_vehicles\":\"@:{'templates.generated.compat.customers.no_vehicles'}\",\"phone\":\"@:common.phone\",\"remove_vehicle\":\"@:{'templates.generated.compat.vehicles.delete_vehicle'}\",\"search_placeholder\":\"@:{'templates.generated.compat.customers.search_placeholder'}\",\"selected\":\"@:{'templates.generated.compat.global.selected'}\",\"singular\":\"@:{'templates.generated.compat.common.customer'}\",\"title\":\"@:global.customers\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"view_subtitle\":\"@:{'templates.generated.compat.customers.view_subtitle'}\",\"view_title\":\"@:{'templates.generated.compat.common.customer'}\",\"view_vehicles\":\"@:{'templates.generated.compat.customers.view_vehicles'}\",\"x_vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\"},\"department_dashboard\":{\"bookings\":{\"actions\":\"@:common.actions\",\"all\":\"@:{'templates.generated.compat.department_dashboard.bookings.all'}\",\"booking_number\":\"@:{'templates.generated.compat.common.order'}\",\"cancel\":\"@:{'templates.generated.compat.admin.pos.cancel'}\",\"cancelled\":\"@:{'templates.generated.compat.global.cancelled'}\",\"certificate_download_error\":\"@:{'templates.generated.compat.department_dashboard.bookings.certificate_download_error'}\",\"certificate_generated\":\"@:{'templates.generated.compat.department_dashboard.bookings.certificate_generated'}\",\"complete\":\"@:{'templates.generated.compat.global.complete'}\",\"completed\":\"@:{'templates.generated.compat.global.completed'}\",\"confirm\":\"@:{'templates.generated.compat.2fa.verify_button'}\",\"contact_email\":\"@:{'templates.generated.compat.admin.pos.contact_email'}\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"customer_note\":\"@:{'templates.generated.compat.common.customer_note'}\",\"customer_number\":\"@:global.customer_number\",\"date\":\"@:common.date\",\"edit\":\"@:common.edit\",\"filter\":\"@:common.filter\",\"no_bookings\":\"@:{'templates.generated.compat.pos.no_bookings'}\",\"pickup\":\"@:pagination.pickup\",\"products\":\"@:common.products\",\"reference\":\"@:{'templates.generated.compat.pos.reference'}\",\"search\":\"@:{'templates.generated.compat.department_dashboard.bookings.search'}\",\"sent_to\":\"@:{'templates.generated.compat.department_dashboard.bookings.sent_to'}\",\"services\":{\"exterior_semi_trailer\":\"@:{'templates.generated.compat.department_dashboard.bookings.services.exterior_semi_trailer'}\",\"exterior_trailer_wash\":\"@:{'templates.generated.compat.department_dashboard.bookings.services.exterior_trailer_wash'}\",\"interior_trailer_wash\":\"@:{'templates.generated.compat.department_dashboard.bookings.services.interior_trailer_wash'}\"},\"status\":\"@:common.status\",\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.bookings.subtitle'}\",\"title\":\"@:common.bookings\",\"today\":\"@:common.today\",\"trailer\":\"@:{'templates.generated.compat.pos.vehicle_types.trailer'}\",\"truck\":\"@:{'templates.generated.compat.pos.vehicle_types.lastbil'}\",\"upcoming\":\"@:{'templates.generated.compat.department_dashboard.bookings.upcoming'}\",\"vehicle\":\"@:{'templates.generated.compat.common.vehicles'}\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"view\":\"@:{'templates.generated.compat.common.view'}\",\"wash\":\"@:{'templates.generated.compat.tables.bookings.wash'}\",\"wash_certificate\":\"@:{'templates.generated.compat.admin.pos.wash_certificate'}\",\"wash_completed\":\"@:{'templates.generated.compat.tables.bookings.wash_completed'}\",\"wash_performed\":\"@:{'templates.generated.compat.tables.bookings.wash_performed'}\",\"wash_services\":\"@:{'templates.generated.compat.tables.bookings.wash_services'}\",\"wash_without_certificate\":\"@:{'templates.generated.compat.tables.bookings.wash_without_certificate'}\"},\"calendar\":{\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.calendar.subtitle'}\",\"title\":\"@:superuser_dashboard.menu.calendar\"},\"customers\":{\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.customers.subtitle'}\",\"title\":\"@:global.customers\"},\"daily_report\":{\"avg_revenue_per_wash\":\"@:{'templates.generated.compat.department_reports.avg_revenue_per_wash'}\",\"departments\":\"@:common.departments\",\"revenue\":\"@:{'templates.generated.compat.department_reports.revenue'}\",\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.daily_report.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.daily_report.title'}\",\"washes\":\"@:{'templates.generated.compat.statistics.washes'}\"},\"employees\":{\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.employees.subtitle'}\",\"title\":\"@:superuser.nav.employees\"},\"home\":{\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.home.subtitle'}\",\"title\":\"@:{'templates.generated.compat.departments.dashboard'}\"},\"invoices\":{\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.invoices.subtitle'}\",\"title\":\"@:common.invoices\"},\"menu\":{\"bookings\":\"@:{'templates.generated.compat.common.bookings'}\",\"calendar\":\"@:superuser_dashboard.menu.calendar\",\"customers\":\"@:global.customers\",\"employees\":\"@:superuser.nav.employees\",\"home\":\"@:{'templates.generated.compat.global.home'}\",\"invoices\":\"@:common.invoices\",\"pos\":\"@:superuser_dashboard.menu.pos\",\"products\":\"@:common.products\",\"settings\":\"@:{'templates.generated.compat.admin.pos.settings'}\",\"statistics\":\"@:{'templates.generated.compat.user_dashboard.menu.statistics'}\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"wash_log\":\"@:{'templates.generated.compat.common.bookings'}\"},\"nav\":{\"bookings\":\"@:{'templates.generated.compat.common.bookings'}\",\"dashboard\":\"@:{'templates.generated.compat.departments.dashboard'}\",\"notifications\":\"@:nav.notifications\",\"pos\":\"@:{'templates.generated.compat.pos.title'}\"},\"overview\":{\"cards\":\"@:{'templates.generated.compat.pos.card'}\",\"charts\":\"@:{'templates.generated.compat.department_dashboard.overview.charts'}\",\"list\":\"@:{'templates.generated.compat.department_dashboard.overview.list'}\",\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.overview.subtitle'}\",\"title\":\"@:{'templates.generated.compat.nav.overview'}\"},\"pos\":{\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.pos.subtitle'}\",\"title\":\"@:{'templates.generated.compat.pos.title'}\"},\"products\":{\"addons_subtitle\":\"@:{'templates.generated.compat.department_dashboard.products.addons_subtitle'}\",\"addons_title\":\"@:departments.tab.product_addons\",\"edit_product\":\"@:{'templates.generated.compat.configuration.products.edit'}\",\"new_addon\":\"@:departments.addons.new_addon\",\"new_product\":\"@:products.new_product\",\"no_addons\":\"@:{'templates.generated.compat.department_dashboard.products.no_addons'}\",\"no_products\":\"@:{'templates.generated.compat.products.no_products'}\",\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.products.subtitle'}\",\"title\":\"@:common.products\"},\"settings\":{\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.settings.subtitle'}\",\"title\":\"@:{'templates.generated.compat.admin.pos.settings'}\"},\"sidebar\":{\"bookings\":\"@:common.bookings\",\"daily_report\":\"@:{'templates.generated.compat.admin.daily_report.title'}\",\"home\":\"@:common.home\",\"pos\":\"@:{'templates.generated.compat.pos.title'}\",\"settings\":\"@:common.settings\",\"time_bookings\":\"@:{'templates.generated.compat.department_dashboard.sidebar.time_bookings'}\"},\"statistics\":{\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.statistics.subtitle'}\",\"title\":\"@:{'templates.generated.compat.user_dashboard.menu.statistics'}\"},\"time_bookings\":{\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.time_bookings.subtitle'}\",\"title\":\"@:department_dashboard.sidebar.time_bookings\"},\"vehicles\":{\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.vehicles.subtitle'}\",\"title\":\"@:{'templates.generated.compat.common.vehicles'}\"},\"wash_log\":{\"actions\":\"@:common.actions\",\"add_wash\":\"@:{'templates.generated.compat.department_dashboard.wash_log.add_wash'}\",\"add_wash_title\":\"@:{'templates.generated.compat.department_dashboard.wash_log.add_wash_title'}\",\"created_certificate\":\"@:{'templates.generated.compat.department_dashboard.wash_log.created_certificate'}\",\"creating_certificate\":\"@:{'templates.generated.compat.department_dashboard.wash_log.creating_certificate'}\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"date\":\"@:{'templates.generated.compat.bookings.date'}\",\"discount\":\"@:{'templates.generated.compat.department_dashboard.wash_log.discount'}\",\"download_csv\":\"@:{'templates.generated.compat.department_dashboard.wash_log.download_csv'}\",\"download_excel\":\"@:{'templates.generated.compat.department_dashboard.wash_log.download_excel'}\",\"edit_wash\":\"@:{'templates.generated.compat.department_dashboard.wash_log.edit_wash'}\",\"employee\":\"@:{'templates.generated.compat.common.roless.employee'}\",\"ended\":\"@:{'templates.generated.compat.department_dashboard.wash_log.ended'}\",\"id\":\"@:tables.common.id\",\"no_washes\":\"@:{'templates.generated.compat.department_dashboard.wash_log.no_washes'}\",\"open_wash_certificate\":\"@:{'templates.generated.compat.department_dashboard.wash_log.open_wash_certificate'}\",\"price\":\"@:{'templates.generated.compat.tables.common.price'}\",\"products\":\"@:common.products\",\"reference\":\"@:{'templates.generated.compat.pos.reference'}\",\"search_placeholder\":\"@:{'templates.generated.compat.department_dashboard.wash_log.search_placeholder'}\",\"showing_x_of_y\":\"@:{'templates.generated.compat.department_dashboard.wash_log.showing_x_of_y'}\",\"started\":\"@:{'templates.generated.compat.department_dashboard.wash_log.started'}\",\"status\":\"@:common.status\",\"subtitle\":\"@:{'templates.generated.compat.department_dashboard.wash_log.subtitle'}\",\"subtitle_expanded\":\"@:{'templates.generated.compat.department_dashboard.wash_log.subtitle_expanded'}\",\"time\":\"@:common.time\",\"title\":\"@:{'templates.generated.compat.common.bookings'}\",\"total\":\"@:{'templates.generated.compat.global.total'}\",\"vehicle\":\"@:common.vehicle\",\"washes_per_page\":\"@:{'templates.generated.compat.department_dashboard.wash_log.washes_per_page'}\",\"washes_per_page_title\":\"@:{'templates.generated.compat.department_dashboard.wash_log.washes_per_page_title'}\"}},\"department_reports\":{\"avg_revenue_per_wash\":\"@:{'templates.generated.compat.department_reports.avg_revenue_per_wash'}\",\"revenue\":\"@:{'templates.generated.compat.department_reports.revenue'}\",\"today\":\"@:{'templates.generated.compat.department_reports.today'}\",\"washes\":\"@:global.wash_multiple\"},\"department\":{\"title\":\"@:{'templates.generated.compat.common.department'}\"},\"departments\":{\"actions\":\"@:common.actions\",\"addons\":{\"new_addon\":\"@:{'templates.generated.compat.departments.addons.new_addon'}\"},\"address\":\"@:common.address\",\"confirm_delete\":\"@:{'templates.generated.compat.departments.confirm_delete'}\",\"created_at\":\"@:{'templates.generated.compat.global.generated'}\",\"dashboard\":\"@:{'templates.generated.compat.departments.dashboard'}\",\"delete_department\":\"@:{'templates.generated.compat.departments.delete_department'}\",\"edit_department\":\"@:{'templates.generated.compat.departments.edit_department'}\",\"email\":\"@:common.email\",\"form\":{\"address\":\"@:common.address\",\"city\":\"@:{'templates.generated.compat.objects.columns.city'}\",\"country\":\"@:common.country\",\"email\":\"@:common.email\",\"latitude\":\"@:{'templates.generated.compat.departments.form.latitude'}\",\"longitude\":\"@:{'templates.generated.compat.departments.form.longitude'}\",\"name\":\"@:common.name\",\"phone\":\"@:common.phone\",\"submit\":\"@:{'templates.generated.compat.products.form.save'}\",\"zip\":\"@:common.zip\"},\"integrations\":{\"mailersend_api_key\":\"@:{'templates.generated.compat.departments.integrations.mailersend_api_key'}\",\"mailersend_api_key_desc\":\"@:configuration.mailersend.api_key_desc\",\"subtitle\":\"@:{'templates.generated.compat.departments.integrations.subtitle'}\",\"title\":\"@:settings.integrations\"},\"name\":\"@:common.name\",\"new_department\":\"@:{'templates.generated.compat.departments.new_department'}\",\"no_departments\":\"@:{'templates.generated.compat.departments.no_departments'}\",\"opening_hours\":{\"add\":\"@:{'templates.generated.compat.global.add'}\",\"closed\":\"@:{'templates.generated.compat.departments.opening_hours.closed'}\",\"title\":\"@:{'templates.generated.compat.departments.tab.opening_hours'}\"},\"phone\":\"@:common.phone\",\"pricing\":{\"custom_pricing_disabled\":\"@:{'templates.generated.compat.departments.pricing.custom_pricing_disabled'}\",\"custom_pricing_enabled\":\"@:{'templates.generated.compat.departments.pricing.custom_pricing_enabled'}\",\"custom_pricing_missing_price\":\"@:{'templates.generated.compat.departments.pricing.custom_pricing_missing_price'}\",\"custom_pricing_only\":\"@:{'templates.generated.compat.departments.pricing.custom_pricing_only'}\",\"effective_department_price\":\"@:{'templates.generated.compat.departments.pricing.effective_department_price'}\"},\"customer_pricing\":{\"customer_number\":\"Customer number\",\"department_price\":\"Department price\",\"discount\":\"Discount percent\",\"discount_validation\":\"Discount must be between 0 and 100.\",\"edit_category_discount\":\"Edit category discount\",\"edit_disabled\":\"Editing requires price management permission\",\"edit_fixed_price\":\"Edit fixed price\",\"edit_global_discount\":\"Edit global discount\",\"edit_item_discount\":\"Edit item discount\",\"effective_price\":\"Effective price\",\"errors\":{\"load\":\"Unable to load customer pricing\",\"save\":\"Unable to save customer pricing\"},\"fixed_price\":\"Fixed price\",\"fixed_price_validation\":\"Fixed price must be zero or more.\",\"global_discount\":\"Global discount\",\"item_discount\":\"Item discount\",\"load_customer\":\"Load customer pricing\",\"no_permission\":\"You do not have access to customer pricing for this department.\",\"no_products\":\"No products are configured for this department.\",\"not_enabled\":\"Customer pricing is only available when custom-only department pricing is enabled.\",\"open\":\"Open customer pricing\",\"saving\":\"Saving customer pricing...\",\"title\":\"Customer pricing\"},\"products\":{\"new_product\":\"@:products.new_product\"},\"search_placeholder\":\"@:{'templates.generated.compat.departments.search_placeholder'}\",\"select_department\":\"@:{'templates.generated.compat.departments.select_department'}\",\"subtitle\":\"@:{'templates.generated.compat.departments.subtitle'}\",\"tab\":{\"info\":\"@:{'templates.generated.compat.departments.tab.info'}\",\"integrations\":\"@:settings.integrations\",\"opening_hours\":\"@:{'templates.generated.compat.departments.tab.opening_hours'}\",\"product_addons\":\"@:{'templates.generated.compat.departments.tab.product_addons'}\",\"wash_products\":\"@:{'templates.generated.compat.departments.tab.wash_products'}\"},\"title\":\"@:{'templates.generated.compat.departments.title'}\"},\"employees\":{\"actions\":\"@:common.actions\",\"confirm_delete\":\"@:{'templates.generated.compat.employees.confirm_delete'}\",\"created_at\":\"@:{'templates.generated.compat.global.generated'}\",\"delete_employee\":\"@:{'templates.generated.compat.employees.delete_employee'}\",\"department\":\"@:{'templates.generated.compat.common.department'}\",\"departments\":\"@:{'templates.generated.compat.departments.title'}\",\"edit_employee\":\"@:{'templates.generated.compat.employees.edit_employee'}\",\"email\":\"@:common.email\",\"form\":{\"department\":\"@:{'templates.generated.compat.common.department'}\",\"email\":\"@:common.email\",\"name\":\"@:common.name\",\"phone\":\"@:common.phone\",\"role\":\"@:{'templates.generated.compat.common.roles'}\",\"submit\":\"@:{'templates.generated.compat.products.form.save'}\"},\"name\":\"@:common.name\",\"new_employee\":\"@:{'templates.generated.compat.employees.new_employee'}\",\"no_employees\":\"@:{'templates.generated.compat.employees.no_employees'}\",\"phone\":\"@:common.phone\",\"role\":\"@:{'templates.generated.compat.common.roles'}\",\"roles\":{\"admin\":\"@:{'templates.generated.compat.common.roless.admin'}\",\"employee\":\"@:{'templates.generated.compat.common.roless.employee'}\",\"manager\":\"@:{'templates.generated.compat.common.roless.manager'}\"},\"search_placeholder\":\"@:{'templates.generated.compat.employees.search_placeholder'}\",\"subtitle\":\"@:{'templates.generated.compat.employees.subtitle'}\",\"title\":\"@:superuser.nav.employees\"},\"error_report\":{\"button\":\"@:{'templates.generated.compat.error_report.button'}\",\"title\":\"@:{'templates.generated.compat.error_report.title'}\",\"subtitle\":\"@:{'templates.generated.compat.error_report.subtitle'}\",\"before_error\":\"@:{'templates.generated.compat.error_report.before_error'}\",\"expected\":\"@:{'templates.generated.compat.error_report.expected'}\",\"actual\":\"@:{'templates.generated.compat.error_report.actual'}\",\"before_error_placeholder\":\"@:{'templates.generated.compat.error_report.before_error_placeholder'}\",\"expected_placeholder\":\"@:{'templates.generated.compat.error_report.expected_placeholder'}\",\"actual_placeholder\":\"@:{'templates.generated.compat.error_report.actual_placeholder'}\",\"consent\":\"@:{'templates.generated.compat.error_report.consent'}\",\"submit\":\"@:{'templates.generated.compat.error_report.submit'}\",\"submitted\":\"@:{'templates.generated.compat.error_report.submitted'}\",\"capture_failed\":\"@:{'templates.generated.compat.error_report.capture_failed'}\",\"submit_failed\":\"@:{'templates.generated.compat.error_report.submit_failed'}\",\"required\":\"@:{'templates.generated.compat.error_report.required'}\",\"page_subtitle\":\"@:{'templates.generated.compat.error_report.page_subtitle'}\",\"screenshot\":\"@:{'templates.generated.compat.error_report.screenshot'}\",\"request_errors\":\"@:{'templates.generated.compat.error_report.request_errors'}\",\"vue_errors\":\"@:{'templates.generated.compat.error_report.vue_errors'}\",\"runtime_context\":\"@:{'templates.generated.compat.error_report.runtime_context'}\",\"empty\":\"@:{'templates.generated.compat.error_report.empty'}\",\"resolve\":\"@:{'templates.generated.compat.error_report.resolve'}\",\"reopen\":\"@:{'templates.generated.compat.error_report.reopen'}\",\"resolution_note\":\"@:{'templates.generated.compat.error_report.resolution_note'}\",\"filters\":{\"open\":\"@:{'templates.generated.compat.error_report.filters.open'}\",\"resolved\":\"@:{'templates.generated.compat.error_report.filters.resolved'}\",\"all\":\"@:{'templates.generated.compat.error_report.filters.all'}\"}},\"errors\":{\"forbidden\":\"@:{'templates.generated.compat.errors.forbidden'}\",\"general\":\"@:{'templates.generated.compat.errors.general'}\",\"network_error\":\"@:{'templates.generated.compat.errors.network_error'}\",\"network\":\"@:{'templates.generated.compat.errors.network'}\",\"not_found\":\"@:{'templates.generated.compat.errors.not_found'}\",\"parse_error\":{\"unknown\":\"@:{'templates.generated.compat.errors.parse_error.unknown'}\"},\"server_error\":\"@:{'templates.generated.compat.errors.server_error'}\",\"server\":\"@:{'templates.generated.compat.errors.server'}\",\"timeout\":\"@:{'templates.generated.compat.errors.timeout'}\",\"unauthorized\":\"@:{'templates.generated.compat.errors.unauthorized'}\",\"validation\":\"@:{'templates.generated.compat.errors.validation'}\"},\"global_search\":{\"actions\":{\"back_to_results\":\"@:{'templates.generated.compat.global_search.actions.back_to_results'}\",\"clear_results\":\"@:{'templates.generated.compat.global_search.actions.clear_results'}\",\"close_settings\":\"@:{'templates.generated.compat.global_search.actions.close_settings'}\",\"run_search\":\"@:{'templates.generated.compat.global_search.actions.run_search'}\"},\"badges\":{\"customer_id_prefix\":\"@:{'templates.generated.compat.common.customer'}\",\"customer_name\":\"@:{'templates.generated.compat.common.customer'}\",\"customer_number\":\"@:{'templates.generated.compat.common.customer'}\",\"department_id_prefix\":\"@:{'templates.generated.compat.common.department'}\",\"department_name\":\"@:{'templates.generated.compat.common.department'}\",\"department_number\":\"@:{'templates.generated.compat.common.department'}\",\"score\":\"@:{'templates.generated.compat.global_search.badges.score'}\",\"score_prefix\":\"@:{'templates.generated.compat.global_search.badges.score'}\"},\"cache\":{\"clear_cache\":\"@:{'templates.generated.compat.global_search.cache.clear_cache'}\",\"errors\":{\"types_required\":\"@:{'templates.generated.compat.global_search.cache.errors.types_required'}\"},\"messages\":{\"cleared\":\"@:{'templates.generated.compat.global_search.cache.messages.cleared'}\",\"rebuild_queued\":\"@:{'templates.generated.compat.global_search.cache.messages.rebuild_queued'}\"},\"queue_rebuild\":\"@:{'templates.generated.compat.global_search.cache.queue_rebuild'}\",\"rebuild_scope\":\"@:{'templates.generated.compat.global_search.cache.rebuild_scope'}\",\"rebuild_types\":\"@:{'templates.generated.compat.global_search.cache.rebuild_types'}\",\"scope_all\":\"@:{'templates.generated.compat.global_search.cache.scope_all'}\",\"scope_dirty\":\"@:{'templates.generated.compat.global_search.cache.scope_dirty'}\",\"scope_types\":\"@:{'templates.generated.compat.global_search.cache.scope_types'}\",\"superuser_only\":\"@:{'templates.generated.compat.global_search.cache.superuser_only'}\",\"title\":\"@:{'templates.generated.compat.global_search.cache.title'}\"},\"department_goals\":{\"departments\":\"@:{'templates.generated.compat.departments.title'}\",\"loading\":\"@:{'templates.generated.compat.global_search.department_goals.loading'}\",\"overview\":\"@:{'templates.generated.compat.global_search.department_goals.overview'}\",\"period\":\"@:{'templates.generated.compat.global_search.department_goals.period'}\",\"products\":\"@:{'templates.generated.compat.objects.products.multiple'}\",\"progress_unavailable\":\"@:{'templates.generated.compat.global_search.department_goals.progress_unavailable'}\",\"users\":\"@:{'templates.generated.compat.common.user'}\"},\"entity_types\":{\"bookings\":\"@:{'templates.generated.compat.global_search.entity_types.bookings'}\",\"bookings_new\":\"@:{'templates.generated.compat.global_search.entity_types.bookings_new'}\",\"currency_conversion_rates\":\"@:{'templates.generated.compat.global_search.entity_types.currency_conversion_rates'}\",\"customer_codes\":\"@:{'templates.generated.compat.global_search.entity_types.customer_codes'}\",\"customer_default_department\":\"@:{'templates.generated.compat.global_search.entity_types.customer_default_department'}\",\"customer_discounts\":\"@:{'templates.generated.compat.global_search.entity_types.customer_discounts'}\",\"customer_fixed_prices\":\"@:{'templates.generated.compat.global_search.entity_types.customer_fixed_prices'}\",\"customer_notes\":\"@:{'templates.generated.compat.global_search.entity_types.customer_notes'}\",\"customer_vehicles_addons\":\"@:{'templates.generated.compat.global_search.entity_types.customer_vehicles_addons'}\",\"customers\":\"@:{'templates.generated.compat.global_search.entity_types.customers'}\",\"department_goals\":\"@:{'templates.generated.compat.global_search.entity_types.department_goals'}\",\"department_selfserve_condition_rules\":\"@:{'templates.generated.compat.global_search.entity_types.department_selfserve_condition_rules'}\",\"department_selfserve_conditions\":\"@:{'templates.generated.compat.global_search.entity_types.department_selfserve_conditions'}\",\"department_selfserve_questions\":\"@:{'templates.generated.compat.global_search.entity_types.department_selfserve_questions'}\",\"department_selfserve_tasks\":\"@:{'templates.generated.compat.global_search.entity_types.department_selfserve_tasks'}\",\"department_selfserve_vehicle_conditions\":\"@:{'templates.generated.compat.global_search.entity_types.department_selfserve_vehicle_conditions'}\",\"employees\":\"@:{'templates.generated.compat.common.roless.employee'}\",\"fxratesapi_conversion_rates\":\"@:{'templates.generated.compat.global_search.entity_types.fxratesapi_conversion_rates'}\",\"module_config\":\"@:{'templates.generated.compat.global_search.entity_types.module_config'}\",\"motorapi_lookups\":\"@:{'templates.generated.compat.global_search.entity_types.motorapi_lookups'}\",\"objects\":\"@:{'templates.generated.compat.superuser.xlvask.objects'}\",\"order_items\":\"@:{'templates.generated.compat.global_search.entity_types.order_items'}\",\"plate_scanners\":\"@:{'templates.generated.compat.global_search.entity_types.plate_scanners'}\",\"plate_scans\":\"@:{'templates.generated.compat.global_search.entity_types.plate_scans'}\",\"stripe_module_customers\":\"@:{'templates.generated.compat.global_search.entity_types.stripe_module_customers'}\",\"stripe_module_orders\":\"@:{'templates.generated.compat.global_search.entity_types.stripe_module_orders'}\",\"stripe_payment_intents\":\"@:{'templates.generated.compat.global_search.entity_types.stripe_payment_intents'}\",\"subusers\":\"@:{'templates.generated.compat.global_search.entity_types.subusers'}\",\"users\":\"@:{'templates.generated.compat.common.user'}\",\"xlvask_customers\":\"@:{'templates.generated.compat.global_search.entity_types.xlvask_customers'}\",\"xlvask_potential_order_matches\":\"@:{'templates.generated.compat.global_search.entity_types.xlvask_potential_order_matches'}\",\"xlvask_usage_log_wash_items\":\"@:{'templates.generated.compat.global_search.entity_types.xlvask_usage_log_wash_items'}\",\"xlvask_usage_logs\":\"@:{'templates.generated.compat.global_search.entity_types.xlvask_usage_logs'}\",\"xlvask_vehicles\":\"@:{'templates.generated.compat.global_search.entity_types.xlvask_vehicles'}\"},\"errors\":{\"enter_query\":\"@:{'templates.generated.compat.global_search.errors.enter_query'}\",\"invalid_payload\":\"@:{'templates.generated.compat.global_search.errors.invalid_payload'}\",\"request_failed\":\"@:{'templates.generated.compat.global_search.errors.request_failed'}\"},\"groups\":{\"active\":\"@:{'templates.generated.compat.global_search.groups.active'}\",\"description\":\"@:{'templates.generated.compat.global_search.groups.description'}\",\"empty_hint\":\"@:{'templates.generated.compat.global_search.groups.empty_hint'}\",\"summary\":\"@:{'templates.generated.compat.global_search.groups.summary'}\",\"title\":\"@:{'templates.generated.compat.global_search.groups.title'}\"},\"launcher\":{\"label\":\"@:{'templates.generated.compat.common.search'}\",\"last_search\":\"@:{'templates.generated.compat.global_search.launcher.last_search'}\"},\"meta\":{\"allowed_types\":\"@:{'templates.generated.compat.global_search.meta.allowed_types'}\",\"cache_hit\":\"@:{'templates.generated.compat.global_search.meta.cache_hit'}\",\"hide\":\"@:{'templates.generated.compat.global_search.meta.hide'}\",\"intent\":{\"confidence\":\"@:{'templates.generated.compat.global_search.meta.intent.confidence'}\",\"entity_hints\":\"@:{'templates.generated.compat.global_search.meta.intent.entity_hints'}\",\"expanded_terms\":\"@:{'templates.generated.compat.global_search.meta.intent.expanded_terms'}\",\"fallback_reason\":\"@:{'templates.generated.compat.global_search.meta.intent.fallback_reason'}\",\"invoked\":\"@:{'templates.generated.compat.global_search.meta.intent.invoked'}\",\"source\":\"@:{'templates.generated.compat.global_search.meta.intent.source'}\",\"status\":\"@:common.status\",\"title\":\"@:{'templates.generated.compat.global_search.meta.intent.title'}\"},\"limit\":\"@:{'templates.generated.compat.global_search.meta.limit'}\",\"max_results\":\"@:{'templates.generated.compat.global_search.meta.max_results'}\",\"no\":\"@:{'templates.generated.compat.global_search.meta.no'}\",\"offset\":\"@:{'templates.generated.compat.global_search.meta.offset'}\",\"query\":\"@:{'templates.generated.compat.modals.questions'}\",\"returned\":\"@:{'templates.generated.compat.global_search.meta.returned'}\",\"show\":\"@:{'templates.generated.compat.global_search.meta.show'}\",\"truncated\":\"@:{'templates.generated.compat.global_search.meta.truncated'}\",\"yes\":\"@:{'templates.generated.compat.global_search.meta.yes'}\"},\"progress\":{\"fetching_known\":\"@:{'templates.generated.compat.global_search.progress.fetching_known'}\",\"fetching_unknown\":\"@:{'templates.generated.compat.global_search.progress.fetching_unknown'}\",\"preparing\":\"@:{'templates.generated.compat.global_search.progress.preparing'}\",\"results_loaded\":\"@:{'templates.generated.compat.global_search.progress.results_loaded'}\"},\"results\":{\"association\":\"@:{'templates.generated.compat.global_search.results.association'}\",\"cancelled\":\"@:{'templates.generated.compat.global.cancelled'}\",\"cap\":\"@:{'templates.generated.compat.global_search.results.cap'}\",\"cap_truncated\":\"@:{'templates.generated.compat.global_search.results.cap_truncated'}\",\"created\":\"@:{'templates.generated.compat.global.generated'}\",\"empty\":\"@:{'templates.generated.compat.global_search.results.empty'}\",\"group_range\":\"@:{'templates.generated.compat.common.of'}\",\"id\":\"@:tables.common.id\",\"none_for_search\":\"@:{'templates.generated.compat.global_search.results.none_for_search'}\",\"open\":\"@:{'templates.generated.compat.global.open'}\",\"payload\":\"@:{'templates.generated.compat.global_search.results.payload'}\",\"range\":\"@:{'templates.generated.compat.global_search.results.range'}\",\"status\":\"@:common.status\"},\"search\":{\"placeholder\":\"@:{'templates.generated.compat.global_search.search.placeholder'}\"},\"settings_menu\":{\"manage\":\"@:global.manage\",\"object_types\":\"@:{'templates.generated.compat.global_search.settings_menu.object_types'}\",\"open_hint\":\"@:{'templates.generated.compat.global_search.settings_menu.open_hint'}\",\"pagination\":\"@:{'templates.generated.compat.global_search.settings_menu.pagination'}\"},\"settings\":{\"exclude_entity_types\":\"@:{'templates.generated.compat.global_search.settings.exclude_entity_types'}\",\"include_all\":\"@:{'templates.generated.compat.global_search.settings.include_all'}\",\"include_associations\":\"@:{'templates.generated.compat.global_search.settings.include_associations'}\",\"include_entity_types\":\"@:{'templates.generated.compat.global_search.settings.include_entity_types'}\",\"include_intent_diagnostics\":\"@:{'templates.generated.compat.global_search.settings.include_intent_diagnostics'}\",\"limit\":\"@:global_search.meta.limit\",\"manage_description\":\"@:{'templates.generated.compat.global_search.settings.manage_description'}\",\"methods\":{\"get\":\"@:{'templates.generated.compat.global_search.settings.methods.get'}\",\"post\":\"@:{'templates.generated.compat.global_search.settings.methods.post'}\"},\"offset\":\"@:global_search.meta.offset\",\"reset_defaults\":\"@:{'templates.generated.compat.global_search.settings.reset_defaults'}\",\"reset_type_filters\":\"@:{'templates.generated.compat.global_search.settings.reset_type_filters'}\",\"search_method\":\"@:{'templates.generated.compat.global_search.settings.search_method'}\",\"show_grouped_summary\":\"@:{'templates.generated.compat.global_search.settings.show_grouped_summary'}\",\"show_meta\":\"@:global_search.meta.show\",\"show_payload_inspector\":\"@:{'templates.generated.compat.global_search.settings.show_payload_inspector'}\",\"show_score_badges\":\"@:{'templates.generated.compat.global_search.settings.show_score_badges'}\"},\"title\":\"@:{'templates.generated.compat.global_search.title'}\"},\"date_period\":{\"labels\":{\"period\":\"Period\",\"select_period\":\"Select period\",\"advanced_period\":\"Advanced period\",\"select_month\":\"Select month\",\"update_selection\":\"Update selection\",\"to\":\"@:common.to\",\"no_date_selection\":\"No date selected\"},\"messages\":{\"invalid_selection\":\"The selected date range is invalid.\",\"multi_month\":\"This selection spans multiple months.\",\"partial_month_prefix\":\"Need a full month?\",\"partial_month_action\":\"Use the full selected month\",\"partial_month_tooltip\":\"Set the range to the first and last day of the selected month\",\"partial_month_suffix\":\"to align reporting and invoicing periods.\"},\"shortcuts\":{\"anytime\":\"@:global.text.anytime\",\"today\":\"@:common.today\",\"yesterday\":\"@:common.yesterday\",\"this_week\":\"@:global.text.this_week\",\"last_week\":\"@:global.text.last_week\",\"last_seven_days\":\"@:global.text.last_7_days\",\"this_month\":\"@:global.text.this_month\",\"last_month\":\"@:global.text.last_month\",\"same_week_last_year\":\"@:global.text.same_week_last_year\",\"same_month_last_year\":\"@:global.text.same_month_last_year\"}},\"global\":{\"abnormal\":\"@:{'templates.generated.compat.global.abnormal'}\",\"actions\":\"@:common.actions\",\"active\":\"@:common.active\",\"add_other_product\":\"@:{'templates.generated.compat.global.add_other_product'}\",\"add\":\"@:{'templates.generated.compat.global.add'}\",\"additional_items\":\"@:{'templates.generated.compat.global.additional_items'}\",\"all_booked\":\"@:{'templates.generated.compat.global.all_booked'}\",\"all\":\"@:common.all\",\"attach_to_order\":\"@:{'templates.generated.compat.global.attach_to_order'}\",\"auto_start_on_lpr\":\"@:{'templates.generated.compat.global.auto_start_on_lpr'}\",\"barred\":\"@:{'templates.generated.compat.global.barred'}\",\"booked\":\"@:{'templates.generated.compat.global.booked'}\",\"cancel\":\"@:common.cancel\",\"cancelled\":\"@:{'templates.generated.compat.global.cancelled'}\",\"capture\":\"@:{'templates.generated.compat.global.capture'}\",\"change_customer\":\"@:{'templates.generated.compat.global.change_customer'}\",\"clear_all\":\"@:{'templates.generated.compat.global.clear_all'}\",\"clear\":\"@:common.clear\",\"close\":\"@:common.close\",\"closed\":\"@:{'templates.generated.compat.global.closed'}\",\"closing_hour\":\"@:{'templates.generated.compat.global.closing_hour'}\",\"collapse\":\"@:{'templates.generated.compat.global.collapse'}\",\"collection\":\"@:{'templates.generated.compat.global.collection'}\",\"compare\":\"@:{'templates.generated.compat.global.compare'}\",\"complete\":\"@:{'templates.generated.compat.global.complete'}\",\"completed\":\"@:{'templates.generated.compat.global.completed'}\",\"configuration\":\"@:{'templates.generated.compat.global.configuration'}\",\"confirm_delete_message\":\"@:{'templates.generated.compat.global.confirm_delete_message'}\",\"confirm_delete\":\"@:{'templates.generated.compat.global.confirm_delete'}\",\"confirmation_needed\":\"@:{'templates.generated.compat.global.confirmation_needed'}\",\"copy\":\"@:{'templates.generated.compat.global.copy'}\",\"customer_name\":\"@:{'templates.generated.compat.common.customer_name'}\",\"customer_notes\":\"@:{'templates.generated.compat.common.customer_notes'}\",\"customer_number\":\"@:{'templates.generated.compat.common.customer_number'}\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"customers\":\"@:{'templates.generated.compat.common.customers'}\",\"date_from\":\"@:{'templates.generated.compat.global.date_from'}\",\"date_to\":\"@:{'templates.generated.compat.global.date_to'}\",\"default\":\"@:{'templates.generated.compat.global.default'}\",\"defaults\":\"@:{'templates.generated.compat.global.defaults'}\",\"delete\":\"@:{'templates.generated.compat.global.delete'}\",\"done\":\"@:common.done\",\"download_wash_certificate\":\"@:{'templates.generated.compat.global.download_wash_certificate'}\",\"download\":\"@:common.download\",\"edit\":\"@:{'templates.generated.compat.global.edit'}\",\"email\":\"@:common.email\",\"emphasis\":\"@:{'templates.generated.compat.global.emphasis'}\",\"error_loading_transaction\":\"@:{'templates.generated.compat.global.error_loading_transaction'}\",\"error_messages\":{\"not_array\":\"@:{'templates.generated.compat.global.error_messages.not_array'}\",\"not_object\":\"@:{'templates.generated.compat.global.error_messages.not_object'}\",\"not_string\":\"@:{'templates.generated.compat.global.error_messages.not_string'}\"},\"error\":\"@:common.error\",\"excl_tax\":\"@:{'templates.generated.compat.global.excl_tax'}\",\"expand\":\"@:{'templates.generated.compat.global.expand'}\",\"failed\":\"@:{'templates.generated.compat.global.failed'}\",\"fixed_price_arrangements\":\"@:{'templates.generated.compat.global.fixed_price_arrangements'}\",\"found\":\"@:{'templates.generated.compat.global.found'}\",\"generate_wash_certificate\":\"@:{'templates.generated.compat.global.generate_wash_certificate'}\",\"generated\":\"@:{'templates.generated.compat.global.generated'}\",\"handheld_pending_order\":\"@:{'templates.generated.compat.global.handheld_pending_order'}\",\"have_not\":\"@:{'templates.generated.compat.global.have_not'}\",\"have\":\"@:{'templates.generated.compat.global.have'}\",\"hide_content\":\"@:{'templates.generated.compat.global.hide_content'}\",\"hide\":\"@:common.hide\",\"history\":\"@:{'templates.generated.compat.global.history'}\",\"home\":\"@:{'templates.generated.compat.global.home'}\",\"homepage\":\"@:{'templates.generated.compat.global.home'}\",\"ignore_customer_arrangements\":\"@:{'templates.generated.compat.global.ignore_customer_arrangements'}\",\"import_all\":\"@:{'templates.generated.compat.global.import_all'}\",\"import\":\"@:{'templates.generated.compat.global.import'}\",\"in_progress\":\"@:{'templates.generated.compat.global.in_progress'}\",\"in\":\"@:{'templates.generated.compat.global.in'}\",\"inactive\":\"@:common.inactive\",\"incl_tax\":\"@:{'templates.generated.compat.global.incl_tax'}\",\"include_all_items_on_invoice\":\"@:{'templates.generated.compat.global.include_all_items_on_invoice'}\",\"information\":\"@:{'templates.generated.compat.global.information'}\",\"invalid\":\"@:{'templates.generated.compat.global.invalid'}\",\"invoice_already_created\":\"@:{'templates.generated.compat.global.invoice_already_created'}\",\"invoice_now\":\"@:{'templates.generated.compat.global.invoice_now'}\",\"invoice_per_order\":\"@:{'templates.generated.compat.global.invoice_per_order'}\",\"invoice\":\"@:common.invoice\",\"lane\":\"@:{'templates.generated.compat.global.lane'}\",\"last_wash\":\"@:{'templates.generated.compat.global.last_wash'}\",\"link\":\"@:{'templates.generated.compat.global.link'}\",\"loading\":\"@:{'templates.generated.compat.common.loading'}\",\"login_with_qr_code\":\"@:{'templates.generated.compat.global.login_with_qr_code'}\",\"login\":\"@:{'templates.generated.compat.global.login'}\",\"logout\":\"@:common.logout\",\"manage\":\"@:{'templates.generated.compat.global.manage'}\",\"mark_as_completed\":\"@:{'templates.generated.compat.global.mark_as_completed'}\",\"mark_as_not_duplicate\":\"@:{'templates.generated.compat.global.mark_as_not_duplicate'}\",\"month\":\"@:{'templates.generated.compat.global.month'}\",\"my\":\"@:{'templates.generated.compat.global.my'}\",\"next\":\"@:common.next\",\"no_additional_items\":\"@:{'templates.generated.compat.global.no_additional_items'}\",\"no_applicable_booking_types\":\"@:{'templates.generated.compat.global.no_applicable_booking_types'}\",\"no_data\":\"@:{'templates.generated.compat.global.no_data'}\",\"no_slots_available\":\"@:{'templates.generated.compat.global.no_slots_available'}\",\"no_transactions_yet\":\"@:{'templates.generated.compat.global.no_transactions_yet'}\",\"no\":\"@:common.no\",\"non_included_products\":\"@:{'templates.generated.compat.global.non_included_products'}\",\"none\":\"@:{'templates.generated.compat.common.none'}\",\"not_completed\":\"@:{'templates.generated.compat.global.not_completed'}\",\"not_configured\":\"@:{'templates.generated.compat.global.not_configured'}\",\"not_synchronized\":\"@:{'templates.generated.compat.global.not_synchronized'}\",\"note\":\"@:{'templates.generated.compat.global.note'}\",\"nothing_left_to_show\":\"@:{'templates.generated.compat.global.nothing_left_to_show'}\",\"nothing_to_do_all_set\":\"@:{'templates.generated.compat.global.nothing_to_do_all_set'}\",\"only_tank_cleaning\":\"@:{'templates.generated.compat.global.only_tank_cleaning'}\",\"open\":\"@:{'templates.generated.compat.global.open'}\",\"opening_hour\":\"@:{'templates.generated.compat.global.opening_hour'}\",\"opening_hours\":\"@:{'templates.generated.compat.global.opening_hours'}\",\"optional\":\"@:{'templates.generated.compat.global.optional'}\",\"or_scan_plates\":\"@:{'templates.generated.compat.global.or_scan_plates'}\",\"other_period\":\"@:{'templates.generated.compat.global.other_period'}\",\"other\":\"@:{'templates.generated.compat.global.other'}\",\"password\":\"@:{'templates.generated.compat.global.password'}\",\"past\":\"@:{'templates.generated.compat.global.past'}\",\"payment_status\":\"@:{'templates.generated.compat.global.payment_status'}\",\"payment\":{\"amount\":\"@:{'templates.generated.compat.global.payment.amount'}\",\"date\":\"@:common.date\",\"discount\":\"@:common.discount\",\"fixed_pricing\":\"@:{'templates.generated.compat.global.payment.fixed_pricing'}\",\"method\":\"@:{'templates.generated.compat.global.payment.method'}\",\"payment_intent\":\"@:{'templates.generated.compat.global.payment.payment_intent'}\",\"payment_recieved\":\"@:{'templates.generated.compat.global.payment.payment_recieved'}\",\"receipt\":\"@:{'templates.generated.compat.global.payment.receipt'}\",\"receipt_url\":\"@:{'templates.generated.compat.global.payment.receipt_url'}\",\"reference\":\"@:common.reference\",\"status\":{\"cancelled\":\"@:{'templates.generated.compat.global.cancelled'}\",\"failed\":\"@:{'templates.generated.compat.global.failed'}\",\"pending\":\"@:{'templates.generated.compat.global.pending'}\",\"succeeded\":\"@:{'templates.generated.compat.global.completed'}\"},\"transaction_id\":\"@:{'templates.generated.compat.global.payment.transaction_id'}\",\"type\":{\"bank_transfer\":\"@:{'templates.generated.compat.global.payment.type.bank_transfer'}\",\"card\":\"@:{'templates.generated.compat.global.payment.type.card'}\",\"cash\":\"@:{'templates.generated.compat.global.payment.type.cash'}\",\"other\":\"@:global.other\"}},\"pending\":\"@:{'templates.generated.compat.global.pending'}\",\"phone_country_code\":\"@:{'templates.generated.compat.global.phone_country_code'}\",\"phone_number\":\"@:{'templates.generated.compat.global.phone_number'}\",\"possible_duplicates\":\"@:{'templates.generated.compat.global.possible_duplicates'}\",\"preview\":\"@:{'templates.generated.compat.global.preview'}\",\"previous\":\"@:{'templates.generated.compat.global.previous'}\",\"price_match\":\"@:{'templates.generated.compat.global.price_match'}\",\"price_unmatch\":\"@:{'templates.generated.compat.global.price_unmatch'}\",\"price\":\"@:common.price\",\"prices\":\"@:{'templates.generated.compat.global.prices'}\",\"print\":\"@:{'templates.generated.compat.global.print'}\",\"processing\":\"@:{'templates.generated.compat.global.processing'}\",\"quantity\":\"@:common.quantity\",\"queue\":\"@:{'templates.generated.compat.global.queue'}\",\"ready_to_wash\":\"@:{'templates.generated.compat.global.ready_to_wash'}\",\"recent\":\"@:{'templates.generated.compat.global.recent'}\",\"recommended\":\"@:{'templates.generated.compat.global.recommended'}\",\"register\":\"@:{'templates.generated.compat.global.register'}\",\"regret\":\"@:{'templates.generated.compat.global.regret'}\",\"reject\":\"@:{'templates.generated.compat.global.reject'}\",\"related_service\":\"@:{'templates.generated.compat.global.related_service'}\",\"reload\":\"@:{'templates.generated.compat.common.refresh'}\",\"remove\":\"@:common.remove\",\"required\":\"@:{'templates.generated.compat.global.required'}\",\"requires_action\":\"@:{'templates.generated.compat.global.requires_action'}\",\"reset\":\"@:{'templates.generated.compat.global.reset'}\",\"rows\":\"@:{'templates.generated.compat.global.rows'}\",\"save\":\"@:common.save\",\"scanning\":\"@:{'templates.generated.compat.global.scanning'}\",\"search_booking\":\"@:{'templates.generated.compat.common.search_booking'}\",\"search_customers_ellipsis\":\"@:{'templates.generated.compat.common.search_customers_ellipsis'}\",\"search_customers\":\"@:{'templates.generated.compat.common.search_customers'}\",\"search_cvr\":\"@:{'templates.generated.compat.common.search_cvr'}\",\"search_department\":\"@:{'templates.generated.compat.common.search_department'}\",\"search_departments\":\"@:{'templates.generated.compat.common.search_departments'}\",\"search_driver\":\"@:{'templates.generated.compat.common.search_driver'}\",\"search_for\":\"@:{'templates.generated.compat.common.search_for'}\",\"search_license_plate\":\"@:{'templates.generated.compat.common.search_license_plate'}\",\"search_order\":\"@:{'templates.generated.compat.common.search_order'}\",\"search_phone\":\"@:{'templates.generated.compat.common.search_phone'}\",\"search_placeholder\":\"@:{'templates.generated.compat.common.search'}\",\"search_products_ellipsis\":\"@:{'templates.generated.compat.common.search_products_ellipsis'}\",\"search_products\":\"@:{'templates.generated.compat.common.search_products'}\",\"search_scanners\":\"@:{'templates.generated.compat.common.search_scanners'}\",\"search_subuser\":\"@:{'templates.generated.compat.common.search_subuser'}\",\"search_transactions\":\"@:{'templates.generated.compat.common.search_transactions'}\",\"search_user\":\"@:{'templates.generated.compat.common.search_user'}\",\"search\":\"@:{'templates.generated.compat.common.search'}\",\"select\":\"@:common.select\",\"selected_multiple\":\"@:{'templates.generated.compat.global.selected'}\",\"selected\":\"@:{'templates.generated.compat.global.selected'}\",\"send_as_is\":\"@:{'templates.generated.compat.global.send_as_is'}\",\"settings\":\"@:common.settings\",\"show_content\":\"@:{'templates.generated.compat.global.show_content'}\",\"show\":\"@:common.show\",\"showing_of_separator\":\"@:{'templates.generated.compat.common.of'}\",\"showing\":\"@:{'templates.generated.compat.common.view'}\",\"special_arrangements\":\"@:{'templates.generated.compat.global.special_arrangements'}\",\"split\":\"@:{'templates.generated.compat.global.split'}\",\"statistics\":\"@:{'templates.generated.compat.global.statistics'}\",\"status\":\"@:common.status\",\"stop\":\"@:{'templates.generated.compat.global.stop'}\",\"submit\":\"@:{'templates.generated.compat.global.submit'}\",\"subscriptions\":\"@:{'templates.generated.compat.global.subscriptions'}\",\"succeeded\":\"@:{'templates.generated.compat.global.succeeded'}\",\"successful_syncs\":\"@:{'templates.generated.compat.global.successful_syncs'}\",\"summary\":\"@:{'templates.generated.compat.global.summary'}\",\"synchronized\":\"@:{'templates.generated.compat.global.synchronized'}\",\"take_picture\":\"@:{'templates.generated.compat.global.take_picture'}\",\"tank_cleaning\":\"@:{'templates.generated.compat.global.tank_cleaning'}\",\"tax\":\"@:common.tax\",\"text\":{\"all\":\"@:{'templates.generated.compat.global.text.all'}\",\"anytime\":\"@:{'templates.generated.compat.global.text.anytime'}\",\"last_7_days\":\"@:{'templates.generated.compat.global.text.last_7_days'}\",\"last_month\":\"@:{'templates.generated.compat.global.text.last_month'}\",\"other_month\":\"@:{'templates.generated.compat.global.text.other_month'}\",\"last_week\":\"@:{'templates.generated.compat.global.text.last_week'}\",\"month\":\"@:{'templates.generated.compat.global.month'}\",\"same_month_last_year\":\"@:{'templates.generated.compat.global.text.same_month_last_year'}\",\"same_week_last_year\":\"@:{'templates.generated.compat.global.text.same_week_last_year'}\",\"search_in\":\"@:{'templates.generated.compat.global.text.search_in'}\",\"this_month\":\"@:{'templates.generated.compat.global.text.this_month'}\",\"this_week\":\"@:{'templates.generated.compat.global.text.this_week'}\",\"this_year\":\"@:{'templates.generated.compat.global.text.this_year'}\",\"today\":\"@:common.today\",\"year\":\"@:common.year\",\"yesterday\":\"@:{'templates.generated.compat.global.text.yesterday'}\"},\"time\":{\"all\":\"@:global.text.all\",\"at_hour\":\"@:{'templates.generated.compat.global.time.at_hour'}\",\"date\":\"@:common.date\",\"last_month\":\"@:global.text.last_month\",\"this_month\":\"@:global.text.this_month\",\"this_year\":\"@:global.text.this_year\",\"today\":\"@:common.today\",\"yesterday\":\"@:{'templates.generated.compat.global.text.yesterday'}\"},\"to_department_and_customer_defaults\":\"@:{'templates.generated.compat.global.to_department_and_customer_defaults'}\",\"total_price_amount\":\"@:global.payment.amount\",\"total\":\"@:{'templates.generated.compat.global.total'}\",\"unknown_error\":\"@:common.unknown_error\",\"unlink\":\"@:{'templates.generated.compat.global.unlink'}\",\"unselect\":\"@:{'templates.generated.compat.global.unselect'}\",\"update\":\"@:{'templates.generated.compat.common.refresh'}\",\"usage_log\":\"@:{'templates.generated.compat.global.usage_log'}\",\"view_order\":\"@:{'templates.generated.compat.global.view_order'}\",\"waiting\":\"@:{'templates.generated.compat.global.pending'}\",\"warning\":\"@:common.warning\",\"warnings\":\"@:{'templates.generated.compat.global.warnings'}\",\"wash_multiple\":\"@:{'templates.generated.compat.global.wash_multiple'}\",\"weekday\":\"@:{'templates.generated.compat.global.weekday'}\",\"yes\":\"@:common.yes\",\"zoom_out\":\"@:{'templates.generated.compat.global.zoom_out'}\",\"zoom\":\"@:{'templates.generated.compat.global.zoom'}\"},\"guest\":{\"about\":\"@:{'templates.generated.compat.guest.about'}\",\"access_code\":\"@:{'templates.generated.compat.guest.access_code'}\",\"app_store\":\"@:{'templates.generated.compat.guest.app_store'}\",\"book_wash\":\"@:{'templates.generated.compat.guest.book_wash'}\",\"contact\":\"@:{'templates.generated.compat.guest.contact'}\",\"continue\":\"@:{'templates.generated.compat.common.continue'}\",\"download_app\":\"@:{'templates.generated.compat.guest.download_app'}\",\"driver\":{\"coming_soon\":\"@:{'templates.generated.compat.guest.driver.coming_soon'}\"},\"enter_access_code\":\"@:{'templates.generated.compat.guest.enter_access_code'}\",\"find_wash\":\"@:{'templates.generated.compat.guest.find_wash'}\",\"home\":{\"contact_or_call\":\"@:{'templates.generated.compat.guest.home.contact_or_call'}\",\"contact_prefix\":\"@:{'templates.generated.compat.guest.home.contact_prefix'}\",\"description\":\"@:{'templates.generated.compat.guest.home.description'}\",\"subtitle\":\"@:{'templates.generated.compat.guest.home.subtitle'}\",\"title\":\"@:{'templates.generated.compat.global.home'}\"},\"invalid_code\":\"@:{'templates.generated.compat.guest.invalid_code'}\",\"play_store\":\"@:{'templates.generated.compat.guest.play_store'}\",\"pwa\":{\"already_installed\":\"@:{'templates.generated.compat.guest.pwa.already_installed'}\",\"android_instructions\":\"@:{'templates.generated.compat.guest.pwa.android_instructions'}\",\"card_title\":\"@:{'templates.generated.compat.guest.pwa.card_title'}\",\"click_to_install\":\"@:{'templates.generated.compat.guest.pwa.click_to_install'}\",\"description\":\"@:{'templates.generated.compat.guest.pwa.description'}\",\"install\":\"@:{'templates.generated.compat.guest.pwa.install'}\",\"install_label\":\"@:{'templates.generated.compat.guest.pwa.install_label'}\",\"install_via_browser\":\"@:{'templates.generated.compat.guest.pwa.install_via_browser'}\",\"installed_label\":\"@:{'templates.generated.compat.guest.pwa.installed_label'}\",\"instructions\":\"@:{'templates.generated.compat.guest.pwa.instructions'}\",\"ios_instructions\":\"@:{'templates.generated.compat.guest.pwa.ios_instructions'}\",\"subtitle\":\"@:{'templates.generated.compat.guest.pwa.subtitle'}\",\"title\":\"@:{'templates.generated.compat.guest.pwa.title'}\",\"use_supported_browser\":\"@:{'templates.generated.compat.guest.pwa.use_supported_browser'}\"},\"scan_qr\":\"@:{'templates.generated.compat.guest.scan_qr'}\",\"start_wash_subtitle\":\"@:{'templates.generated.compat.guest.start_wash_subtitle'}\",\"start_wash_title\":\"@:{'templates.generated.compat.guest.start_wash_title'}\",\"start_wash\":\"@:{'templates.generated.compat.guest.start_wash'}\",\"title\":\"@:{'templates.generated.compat.guest.title'}\",\"welcome_message\":\"@:{'templates.generated.compat.guest.welcome_message'}\",\"welcome\":\"@:{'templates.generated.compat.guest.welcome'}\"},\"header\":{\"about_us\":\"@:{'templates.generated.compat.header.about_us'}\",\"backoffice\":\"@:{'templates.generated.compat.header.backoffice'}\",\"customer_creation\":\"@:{'templates.generated.compat.header.customer_creation'}\",\"customer_login\":\"@:{'templates.generated.compat.global.login'}\",\"departments\":\"@:common.departments\",\"operator_login\":\"@:{'templates.generated.compat.header.operator_login'}\",\"return_to_account\":\"@:{'templates.generated.compat.header.return_to_account'}\"},\"invoice_period\":{\"flags\":{\"automatic\":{\"customer_rule_exempt_from_administration_fees\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.customer_rule_exempt_from_administration_fees'}\",\"customer_rule_invoice_all_orders_individually\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.customer_rule_invoice_all_orders_individually'}\",\"customer_rule_only_tank_cleaning\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.customer_rule_only_tank_cleaning'}\",\"customer_rule_requires_po_number\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.customer_rule_requires_po_number'}\",\"customer_rule_requires_reference\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.customer_rule_requires_reference'}\",\"customer_rule_restrict_addon_services\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.customer_rule_restrict_addon_services'}\",\"customer_rule_restrict_interior_cleaning\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.customer_rule_restrict_interior_cleaning'}\",\"customer_rule_restrict_spot_free\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.customer_rule_restrict_spot_free'}\",\"customer_rule_restrict_tank_cleaning\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.customer_rule_restrict_tank_cleaning'}\",\"duplicate_vehicle_subscription_charge_same_month\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.duplicate_vehicle_subscription_charge_same_month'}\",\"historical_primary_product_mismatch\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.historical_primary_product_mismatch'}\",\"multiple_fixed_pricing_items_same_month\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.multiple_fixed_pricing_items_same_month'}\",\"multiple_identical_primary_vehicle_items\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.multiple_identical_primary_vehicle_items'}\",\"price_mismatch\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.price_mismatch'}\",\"quantity_exceeds_product_limit\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.quantity_exceeds_product_limit'}\",\"vehicle_subscription_type_mismatch\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.vehicle_subscription_type_mismatch'}\",\"wash_certificate_attached_without_item\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.wash_certificate_attached_without_item'}\",\"wash_certificate_item_without_certificate\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.wash_certificate_item_without_certificate'}\",\"xlvask_missing_order_link\":\"@:{'templates.generated.compat.invoice_period.flags.automatic.xlvask_missing_order_link'}\"},\"preview\":{\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"entities\":{\"order_items\":\"@:{'templates.generated.compat.invoice_period.flags.preview.entities.order_items'}\",\"xlvask_usage_log\":\"@:{'templates.generated.compat.invoice_period.flags.preview.entities.xlvask_usage_log'}\"},\"expected_price\":\"@:{'templates.generated.compat.invoice_period.flags.preview.expected_price'}\",\"no_order_items\":\"@:common.templates.no_entity_available\",\"no_xlvask_usage_log\":\"@:common.templates.no_entity_available\",\"order_items\":\"@:{'templates.generated.compat.global_search.entity_types.order_items'}\",\"price\":\"@:common.price\",\"product\":\"@:common.product\",\"quantity\":\"@:{'templates.generated.compat.tables.common.count'}\",\"registration_number\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"start_time\":\"@:{'templates.generated.compat.invoice_period.flags.preview.start_time'}\",\"wash_id\":\"@:{'templates.generated.compat.invoice_period.flags.preview.wash_id'}\",\"xlvask_usage_log\":\"@:{'templates.generated.compat.invoice_period.flags.preview.xlvask_usage_log'}\"},\"status\":{\"false_positive\":\"@:{'templates.generated.compat.invoice_period.flags.status.false_positive'}\",\"ignored\":\"@:{'templates.generated.compat.invoice_period.flags.status.ignored'}\",\"reason_placeholder\":\"@:{'templates.generated.compat.invoice_period.flags.status.reason_placeholder'}\",\"resolved\":\"@:{'templates.generated.compat.invoice_period.flags.status.resolved'}\"},\"tokens\":{\"expected\":\"@:{'templates.generated.compat.invoice_period.flags.tokens.expected'}\",\"order\":\"@:{'templates.generated.compat.common.order'}\",\"wash_certificate\":\"@:{'templates.generated.compat.admin.pos.wash_certificate'}\",\"wash_certificate_item\":\"@:{'templates.generated.compat.admin.pos.wash_certificate_item'}\",\"xlvask_usage_log\":\"@:{'templates.generated.compat.invoice_period.flags.tokens.xlvask_usage_log'}\"},\"tooltip\":{\"created_at\":\"@:common.created\",\"created_by\":\"@:{'templates.generated.compat.invoice_period.flags.tooltip.created_by'}\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\"}}},\"invoice_transfer_monitor\":{\"clear_all_error\":\"@:{'templates.generated.compat.invoice_transfer_monitor.clear_all_error'}\",\"clear_all\":\"@:{'templates.generated.compat.invoice_transfer_monitor.clear_all'}\",\"clear_error\":\"@:{'templates.generated.compat.invoice_transfer_monitor.clear_error'}\",\"clear_one\":\"@:{'templates.generated.compat.invoice_transfer_monitor.clear_one'}\",\"empty\":\"@:{'templates.generated.compat.invoice_transfer_monitor.empty'}\",\"invoice\":\"@:common.invoice\",\"load_error\":\"@:{'templates.generated.compat.invoice_transfer_monitor.load_error'}\",\"loading\":\"@:{'templates.generated.compat.invoice_transfer_monitor.loading'}\",\"menu_title\":\"@:{'templates.generated.compat.invoice_transfer_monitor.menu_title'}\",\"no_details\":\"@:{'templates.generated.compat.invoice_transfer_monitor.no_details'}\",\"refreshing\":\"@:{'templates.generated.compat.invoice_transfer_monitor.refreshing'}\",\"short\":{\"completed\":\"@:{'templates.generated.compat.global.completed'}\",\"failed\":\"@:{'templates.generated.compat.global.failed'}\",\"in_progress\":\"@:{'templates.generated.compat.system_status.table.active'}\",\"queued\":\"@:{'templates.generated.compat.invoice_transfer_monitor.short.queued'}\"},\"status\":{\"completed\":\"@:{'templates.generated.compat.global.completed'}\",\"failed\":\"@:{'templates.generated.compat.global.failed'}\",\"in_progress\":\"@:{'templates.generated.compat.invoice_transfer_monitor.status.in_progress'}\",\"queued\":\"@:{'templates.generated.compat.invoice_transfer_monitor.short.queued'}\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\"},\"title\":\"@:invoice_transfer_monitor.menu_title\",\"transfer\":\"@:{'templates.generated.compat.invoice_transfer_monitor.transfer'}\",\"visible\":\"@:{'templates.generated.compat.invoice_transfer_monitor.visible'}\"},\"invoices\":{\"actions\":\"@:common.actions\",\"amount\":\"@:global.payment.amount\",\"created_at\":\"@:{'templates.generated.compat.global.generated'}\",\"customer\":\"@:common.customer\",\"date\":\"@:common.date\",\"delete_invoice\":\"@:{'templates.generated.compat.invoices.delete_invoice'}\",\"download_pdf\":\"@:{'templates.generated.compat.invoices.download_pdf'}\",\"download\":\"@:common.download\",\"due_date\":\"@:{'templates.generated.compat.invoices.due_date'}\",\"economic\":{\"actions\":\"@:common.actions\",\"booked\":\"@:global.booked\",\"check_errors\":\"@:{'templates.generated.compat.invoices.economic.check_errors'}\",\"draft\":\"@:{'templates.generated.compat.invoices.economic.draft'}\",\"error\":\"@:common.error\",\"load_error\":\"@:{'templates.generated.compat.invoices.economic.load_error'}\",\"total\":\"@:{'templates.generated.compat.global.total'}\",\"update_draft_status\":\"@:{'templates.generated.compat.invoices.economic.update_draft_status'}\"},\"edit_invoice\":\"@:{'templates.generated.compat.invoices.edit_invoice'}\",\"invoice_number\":\"@:{'templates.generated.compat.invoices.invoice_number'}\",\"new_invoice\":\"@:{'templates.generated.compat.invoices.new_invoice'}\",\"no_invoices\":\"@:{'templates.generated.compat.invoices.no_invoices'}\",\"overdue\":\"@:{'templates.generated.compat.invoices.overdue'}\",\"paid\":\"@:{'templates.generated.compat.invoices.paid'}\",\"partial\":\"@:{'templates.generated.compat.invoices.partial'}\",\"print\":\"@:{'templates.generated.compat.global.print'}\",\"search_placeholder\":\"@:{'templates.generated.compat.invoices.search_placeholder'}\",\"search\":\"@:{'templates.generated.compat.invoices.search'}\",\"send\":\"@:{'templates.generated.compat.global.submit'}\",\"status\":\"@:common.status\",\"statuses\":{\"cancelled\":\"@:{'templates.generated.compat.global.cancelled'}\",\"draft\":\"@:{'templates.generated.compat.invoices.statuses.draft'}\",\"overdue\":\"@:{'templates.generated.compat.tables.invoices.overdue'}\",\"paid\":\"@:invoices.paid\",\"pending\":\"@:{'templates.generated.compat.global.pending'}\"},\"subtitle\":\"@:{'templates.generated.compat.invoices.subtitle'}\",\"title\":\"@:common.invoices\",\"unpaid\":\"@:{'templates.generated.compat.invoices.unpaid'}\",\"view\":\"@:{'templates.generated.compat.common.view'}\"},\"invoicing_period\":{\"invoice_collection_actions\":{\"actions\":{\"merge_collections\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.actions.merge_collections'}\",\"queue_economic\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.actions.queue_economic'}\",\"remove_customer_rule_violations\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.actions.remove_customer_rule_violations'}\",\"reset_hidden_item_prices\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.actions.reset_hidden_item_prices'}\",\"split_by_month\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.actions.split_by_month'}\"},\"error_title\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.error_title'}\",\"merge_requires_multiple_text\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.merge_requires_multiple_text'}\",\"merge_requires_multiple_title\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.merge_requires_multiple_title'}\",\"merge_target_title\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.merge_target_title'}\",\"menu\":{\"collapse_all\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.menu.collapse_all'}\",\"expand_all\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.menu.expand_all'}\",\"label\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.menu.label'}\",\"modification_section\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.menu.modification_section'}\",\"select_all\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.menu.select_all'}\",\"selection_section\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.menu.selection_section'}\",\"unselect_all\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.menu.unselect_all'}\"},\"preview\":{\"affected_examples\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.affected_examples'}\",\"blocked_title\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.blocked_title'}\",\"blockers\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.blockers'}\",\"changed\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.changed'}\",\"collection_status_line\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.collection_status_line'}\",\"collections\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.collections'}\",\"confirm_button\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.confirm_button'}\",\"confirmation_label\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.confirmation_label'}\",\"confirmation_mismatch\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.confirmation_mismatch'}\",\"merge_target\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.merge_target'}\",\"no_changes_title\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.no_changes_title'}\",\"order_item_line\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.order_item_line'}\",\"order_move_line\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.order_move_line'}\",\"requires_confirmation\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.requires_confirmation'}\",\"skipped\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.skipped'}\",\"title\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.preview.title'}\"},\"success_text\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.success_text'}\",\"success_title\":\"@:{'templates.generated.compat.invoicing_period.invoice_collection_actions.success_title'}\"},\"monthly_split\":{\"button\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.button'}\",\"confirm_text\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.confirm_text'}\",\"confirm_yes\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.confirm_yes'}\",\"error_title\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.error_title'}\",\"preview_apply\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.preview_apply'}\",\"preview_collection_title\":\"@:{'templates.generated.compat.global.collection'}\",\"preview_create_new\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.preview_create_new'}\",\"preview_existing\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.preview_existing'}\",\"preview_no_changes_text\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.preview_no_changes_text'}\",\"preview_no_changes_title\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.preview_no_changes_title'}\",\"preview_orders\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.preview_orders'}\",\"preview_skipped_title\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.preview_skipped_title'}\",\"preview_summary\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.preview_summary'}\",\"preview_title\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.preview_title'}\",\"success_text\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.success_text'}\",\"success_title\":\"@:{'templates.generated.compat.invoicing_period.monthly_split.success_title'}\"},\"multi_month_invoice_warning\":{\"invoice_together\":\"@:{'templates.generated.compat.invoicing_period.multi_month_invoice_warning.invoice_together'}\",\"split_by_month\":\"@:{'templates.generated.compat.invoicing_period.multi_month_invoice_warning.split_by_month'}\",\"split_error_title\":\"@:{'templates.generated.compat.invoicing_period.multi_month_invoice_warning.split_error_title'}\",\"split_success_text\":\"@:{'templates.generated.compat.invoicing_period.multi_month_invoice_warning.split_success_text'}\",\"split_success_title\":\"@:{'templates.generated.compat.invoicing_period.multi_month_invoice_warning.split_success_title'}\",\"text\":\"@:{'templates.generated.compat.invoicing_period.multi_month_invoice_warning.text'}\",\"title\":\"@:{'templates.generated.compat.invoicing_period.multi_month_invoice_warning.title'}\"}},\"invoicing\":{\"progress\":{\"failed\":\"@:{'templates.generated.compat.global.failed'}\",\"failed_to_send\":\"@:{'templates.generated.compat.global.failed_to_send'}\",\"progress\":\"@:{'templates.generated.compat.time_booking_flow.progress'}\",\"queued\":\"@:{'templates.generated.compat.invoicing.progress.queued'}\",\"sending_invoices\":\"@:{'templates.generated.compat.invoicing.progress.sending_invoices'}\",\"succeeded\":\"@:{'templates.generated.compat.invoicing.progress.succeeded'}\"}},\"login_qr\":{\"camera_error\":\"@:{'templates.generated.compat.login_qr.camera_error'}\",\"login_with_password_instead\":\"@:{'templates.generated.compat.login_qr.login_with_password_instead'}\",\"login_with_password\":\"@:{'templates.generated.compat.login_qr.login_with_password'}\",\"mobile_only\":\"@:{'templates.generated.compat.login_qr.mobile_only'}\",\"scan_subtitle\":\"@:{'templates.generated.compat.login_qr.scan_subtitle'}\",\"scan_title\":\"@:{'templates.generated.compat.login_qr.scan_title'}\",\"unknown_qr_text\":\"@:{'templates.generated.compat.login_qr.unknown_qr_text'}\",\"unknown_qr_title\":\"@:{'templates.generated.compat.login_qr.unknown_qr_title'}\"},\"maintenance_menu\":{\"confirm_clear_local\":\"@:{'templates.generated.compat.maintenance_menu.confirm_clear_local'}\",\"copy_trace_copied\":\"@:{'templates.generated.compat.maintenance_menu.copy_trace_copied'}\",\"copy_trace_failed\":\"@:{'templates.generated.compat.maintenance_menu.copy_trace_failed'}\",\"copy_trace\":\"@:{'templates.generated.compat.maintenance_menu.copy_trace'}\",\"force_update_clear_hint\":\"@:{'templates.generated.compat.maintenance_menu.force_update_clear_hint'}\",\"force_update_clear\":\"@:{'templates.generated.compat.maintenance_menu.force_update_clear'}\",\"title\":\"@:{'templates.generated.compat.maintenance_menu.title'}\",\"version\":\"@:{'templates.generated.compat.maintenance_menu.version'}\"},\"messages\":{\"are_you_sure\":\"@:{'templates.generated.compat.messages.are_you_sure'}\",\"cancelled\":\"@:{'templates.generated.compat.global.cancelled'}\",\"cannot_undo\":\"@:{'templates.generated.compat.messages.cannot_undo'}\",\"completed\":\"@:{'templates.generated.compat.global.completed'}\",\"confirm_cancel\":\"@:{'templates.generated.compat.messages.confirm_cancel'}\",\"confirm_delete\":\"@:{'templates.generated.compat.messages.confirm_delete'}\",\"confirmed\":\"@:{'templates.generated.compat.messages.confirmed'}\",\"copied\":\"@:{'templates.generated.compat.messages.copied'}\",\"created\":\"@:{'templates.generated.compat.global.generated'}\",\"deleted\":\"@:{'templates.generated.compat.objects.columns.deleted'}\",\"error\":\"@:{'templates.generated.compat.messages.error'}\",\"loading\":\"@:{'templates.generated.compat.messages.loading'}\",\"no_results\":\"@:{'templates.generated.compat.messages.no_results'}\",\"please_wait\":\"@:{'templates.generated.compat.messages.please_wait'}\",\"saved\":\"@:{'templates.generated.compat.messages.saved'}\",\"sent\":\"@:{'templates.generated.compat.messages.sent'}\",\"updated\":\"@:{'templates.generated.compat.objects.columns.updated_at'}\",\"welcome\":\"@:{'templates.generated.compat.messages.welcome'}\"},\"modals\":{\"action\":\"@:{'templates.generated.compat.modals.action'}\",\"actions\":\"@:common.actions\",\"active_tasks\":\"@:{'templates.generated.compat.modals.active_tasks'}\",\"add_condition_rule\":\"@:{'templates.generated.compat.modals.add_condition_rule'}\",\"add_question_rule\":\"@:{'templates.generated.compat.modals.add_question_rule'}\",\"add_task_rule\":\"@:{'templates.generated.compat.modals.add_task_rule'}\",\"all_possible_questions\":\"@:{'templates.generated.compat.modals.all_possible_questions'}\",\"all_possible_tasks\":\"@:{'templates.generated.compat.modals.all_possible_tasks'}\",\"all_questions_answered\":\"@:{'templates.generated.compat.modals.all_questions_answered'}\",\"answer\":\"@:{'templates.generated.compat.modals.answer'}\",\"answered_questions\":\"@:{'templates.generated.compat.modals.answered_questions'}\",\"are_you_sure\":\"@:{'templates.generated.compat.modals.are_you_sure'}\",\"attached_file\":\"@:{'templates.generated.compat.modals.attached_file'}\",\"attachments_for\":\"@:{'templates.generated.compat.modals.attachments_for'}\",\"cannot_undo\":\"@:{'templates.generated.compat.modals.cannot_undo'}\",\"choose_file\":\"@:{'templates.generated.compat.modals.choose_file'}\",\"conditions\":\"@:{'templates.generated.compat.objects.columns.condition'}\",\"could_not_read_file\":\"@:{'templates.generated.compat.modals.could_not_read_file'}\",\"delete_error\":\"@:{'templates.generated.compat.modals.delete_error'}\",\"deleted\":\"@:{'templates.generated.compat.objects.columns.deleted'}\",\"download_error\":\"@:{'templates.generated.compat.modals.download_error'}\",\"error\":\"@:common.error\",\"export\":\"@:{'templates.generated.compat.modals.export'}\",\"fetching_data_status\":\"@:{'templates.generated.compat.modals.fetching_data'}\",\"fetching_data\":\"@:{'templates.generated.compat.modals.fetching_data'}\",\"fetching_files\":\"@:{'templates.generated.compat.modals.fetching_files'}\",\"file_deleted\":\"@:{'templates.generated.compat.modals.file_deleted'}\",\"file_uploaded\":\"@:{'templates.generated.compat.modals.file_uploaded'}\",\"filename\":\"@:{'templates.generated.compat.modals.filename'}\",\"if_condition\":\"@:{'templates.generated.compat.modals.if_condition'}\",\"import\":\"@:{'templates.generated.compat.global.import'}\",\"invalid_file_format\":\"@:{'templates.generated.compat.modals.invalid_file_format'}\",\"lane\":\"@:{'templates.generated.compat.modals.lane'}\",\"loading\":\"@:common.loading\",\"mass_data_warning\":\"@:{'templates.generated.compat.modals.mass_data_warning'}\",\"no_active_tasks\":\"@:{'templates.generated.compat.modals.no_active_tasks'}\",\"no_answers_yet\":\"@:{'templates.generated.compat.modals.no_answers_yet'}\",\"no_conditions_found\":\"@:{'templates.generated.compat.modals.no_conditions_found'}\",\"no_files_attached\":\"@:{'templates.generated.compat.modals.no_files_attached'}\",\"no_rules\":\"@:{'templates.generated.compat.modals.no_rules'}\",\"no_tasks_found\":\"@:{'templates.generated.compat.modals.no_tasks_found'}\",\"no\":\"@:{'templates.generated.compat.modals.no'}\",\"please_wait\":\"@:{'templates.generated.compat.modals.please_wait'}\",\"question\":\"@:{'templates.generated.compat.modals.question'}\",\"questions\":\"@:{'templates.generated.compat.modals.questions'}\",\"remove_passed\":\"@:{'templates.generated.compat.modals.remove_passed'}\",\"reset_all\":\"@:{'templates.generated.compat.modals.reset_all'}\",\"rule_types\":{\"IS_FALSE\":\"@:{'templates.generated.compat.modals.rule_types.IS_FALSE'}\",\"IS_FALSE_OR_ANY_FALSE\":\"@:{'templates.generated.compat.modals.rule_types.IS_FALSE_OR_ANY_FALSE'}\",\"IS_FALSE_OR_NOT_SET\":\"@:{'templates.generated.compat.modals.rule_types.IS_FALSE_OR_NOT_SET'}\",\"IS_NOT_SET\":\"@:{'templates.generated.compat.modals.rule_types.IS_NOT_SET'}\",\"IS_SET\":\"@:{'templates.generated.compat.modals.rule_types.IS_SET'}\",\"IS_TRUE\":\"@:{'templates.generated.compat.modals.rule_types.IS_TRUE'}\",\"IS_TRUE_OR_ANY_TRUE\":\"@:{'templates.generated.compat.modals.rule_types.IS_TRUE_OR_ANY_TRUE'}\",\"IS_TRUE_OR_NOT_SET\":\"@:{'templates.generated.compat.modals.rule_types.IS_TRUE_OR_NOT_SET'}\"},\"rules_for\":\"@:{'templates.generated.compat.modals.rules_for'}\",\"rules\":\"@:{'templates.generated.compat.modals.rules'}\",\"run_again\":\"@:{'templates.generated.compat.modals.run_again'}\",\"save_changes\":\"@:{'templates.generated.compat.modals.save_changes'}\",\"select_an_object\":\"@:{'templates.generated.compat.modals.select_an_object'}\",\"start_over\":\"@:{'templates.generated.compat.modals.start_over'}\",\"status\":\"@:common.status\",\"success\":\"@:common.success\",\"test_flow\":\"@:{'templates.generated.compat.modals.test_flow'}\",\"under_development\":\"@:{'templates.generated.compat.modals.under_development'}\",\"undo\":\"@:{'templates.generated.compat.global.regret'}\",\"unknown_customer\":\"@:{'templates.generated.compat.modals.unknown_customer'}\",\"upload_error\":\"@:{'templates.generated.compat.modals.upload_error'}\",\"yes_delete\":\"@:{'templates.generated.compat.global.confirm_delete'}\",\"yes\":\"@:{'templates.generated.compat.modals.yes'}\"},\"nav\":{\"bookings\":\"@:{'templates.generated.compat.common.bookings'}\",\"create_transaction\":\"@:{'templates.generated.compat.nav.create_transaction'}\",\"daily_report\":\"@:{'templates.generated.compat.nav.daily_report'}\",\"drafts\":\"@:{'templates.generated.compat.nav.drafts'}\",\"drivers\":\"@:{'templates.generated.compat.nav.drivers'}\",\"home\":\"@:{'templates.generated.compat.global.home'}\",\"invoices\":\"@:common.invoices\",\"logout\":\"@:common.logout\",\"notifications\":\"@:{'templates.generated.compat.nav.notifications'}\",\"overview\":\"@:{'templates.generated.compat.nav.overview'}\",\"pos_system\":\"@:{'templates.generated.compat.nav.pos_system'}\",\"select_department\":\"@:{'templates.generated.compat.nav.select_department'}\",\"self_wash\":\"@:{'templates.generated.compat.nav.self_wash'}\",\"settings\":\"@:common.settings\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"wash_log\":\"@:{'templates.generated.compat.nav.wash_log'}\",\"washes\":\"@:global.wash_multiple\"},\"objects\":{\"bookings\":{\"columns\":{\"contact_email\":\"@:{'templates.generated.compat.admin.pos.contact_email'}\",\"economic_customer_number\":\"@:{'templates.generated.compat.objects.bookings.columns.economic_customer_number'}\",\"pickup\":\"@:{'templates.generated.compat.objects.bookings.columns.pickup'}\",\"reg_1\":\"@:{'templates.generated.compat.objects.vehicles.columns.reg'}\",\"reg_2\":\"@:objects.orders.columns.reg_2\",\"wash_certificate_email\":\"@:{'templates.generated.compat.objects.bookings.columns.wash_certificate_email'}\",\"wash_certificate_pdf\":\"@:{'templates.generated.compat.objects.bookings.columns.wash_certificate_pdf'}\",\"wash_certificate_status\":\"@:{'templates.generated.compat.objects.bookings.columns.wash_certificate_status'}\",\"wash_certificate_url\":\"@:{'templates.generated.compat.objects.bookings.columns.wash_certificate_url'}\",\"wash_type\":\"@:{'templates.generated.compat.tables.bookings.wash_type'}\"},\"description\":\"@:{'templates.generated.compat.objects.bookings.description'}\",\"multiple\":\"@:{'templates.generated.compat.common.bookings'}\",\"single\":\"@:{'templates.generated.compat.common.order'}\",\"title\":\"@:{'templates.generated.compat.common.bookings'}\"},\"branding\":{\"description\":\"@:{'templates.generated.compat.objects.branding.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.branding.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.branding.single'}\",\"title\":\"@:{'templates.generated.compat.objects.branding.title'}\"},\"categories\":{\"description\":\"@:{'templates.generated.compat.objects.categories.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.categories.title'}\",\"single\":\"@:{'templates.generated.compat.objects.categories.single'}\",\"title\":\"@:{'templates.generated.compat.objects.categories.title'}\"},\"collected_order_invoices\":{\"description\":\"@:{'templates.generated.compat.objects.collected_order_invoices.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.collected_order_invoices.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.collected_order_invoices.single'}\",\"title\":\"@:{'templates.generated.compat.objects.collected_order_invoices.title'}\"},\"columns\":{\"action\":\"@:modals.action\",\"active\":\"@:common.active\",\"address\":\"@:common.address\",\"answer\":\"@:modals.answer\",\"booking\":\"@:{'templates.generated.compat.common.order'}\",\"capacity\":\"@:{'templates.generated.compat.objects.columns.capacity'}\",\"category_id\":\"@:{'templates.generated.compat.objects.columns.category_id'}\",\"city\":\"@:{'templates.generated.compat.objects.columns.city'}\",\"closed_at\":\"@:global.closed\",\"color\":\"@:{'templates.generated.compat.objects.columns.color'}\",\"completed\":\"@:{'templates.generated.compat.global.completed'}\",\"condition\":\"@:{'templates.generated.compat.objects.columns.condition'}\",\"config\":\"@:{'templates.generated.compat.objects.columns.config'}\",\"content\":\"@:{'templates.generated.compat.objects.columns.content'}\",\"country\":\"@:{'templates.generated.compat.objects.columns.country'}\",\"created\":\"@:common.created\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"customer_id\":\"@:{'templates.generated.compat.common.customer_id'}\",\"customer_number\":\"@:{'templates.generated.compat.common.customer_number'}\",\"data\":\"@:{'templates.generated.compat.objects.columns.data'}\",\"date\":\"@:common.date\",\"deleted\":\"@:{'templates.generated.compat.objects.columns.deleted'}\",\"department\":\"@:{'templates.generated.compat.common.department'}\",\"department_id\":\"@:{'templates.generated.compat.common.department_id'}\",\"description\":\"@:common.description\",\"duration\":\"@:{'templates.generated.compat.objects.columns.duration'}\",\"dynamic_image_id\":\"@:{'templates.generated.compat.objects.columns.dynamic_image_id'}\",\"email\":\"@:{'templates.generated.compat.objects.columns.email'}\",\"enabled\":\"@:common.enabled\",\"end_time\":\"@:tables.common.end_time\",\"external_id\":\"@:{'templates.generated.compat.objects.columns.external_id'}\",\"filled_by\":\"@:{'templates.generated.compat.objects.columns.filled_by'}\",\"grant\":\"@:{'templates.generated.compat.objects.columns.grant'}\",\"icon\":\"@:{'templates.generated.compat.objects.columns.icon'}\",\"id\":\"@:tables.common.id\",\"image\":\"@:{'templates.generated.compat.objects.columns.image'}\",\"invoice\":\"@:common.invoice\",\"is_entrance\":\"@:{'templates.generated.compat.objects.columns.is_entrance'}\",\"is_exit\":\"@:{'templates.generated.compat.objects.columns.is_exit'}\",\"key\":\"@:{'templates.generated.compat.objects.columns.key'}\",\"max\":\"@:{'templates.generated.compat.objects.columns.max'}\",\"message\":\"@:{'templates.generated.compat.objects.columns.message'}\",\"min\":\"Minimum\",\"module\":\"@:{'templates.generated.compat.objects.columns.module'}\",\"name\":\"@:common.name\",\"notes\":\"@:{'templates.generated.compat.objects.columns.notes'}\",\"order_id\":\"@:{'templates.generated.compat.objects.columns.order_id'}\",\"permission\":\"@:{'templates.generated.compat.objects.columns.permission'}\",\"phone\":\"@:common.phone\",\"po_number\":\"@:{'templates.generated.compat.objects.columns.po_number'}\",\"price\":\"@:common.price\",\"priority\":\"@:{'templates.generated.compat.objects.columns.priority'}\",\"processor\":\"@:{'templates.generated.compat.objects.columns.processor'}\",\"product_id\":\"@:{'templates.generated.compat.tables.common.product_id'}\",\"question\":\"@:modals.question\",\"reference\":\"@:common.reference\",\"relay_id\":\"@:{'templates.generated.compat.objects.columns.relay_id'}\",\"relay_in_id\":\"@:{'templates.generated.compat.objects.columns.relay_in_id'}\",\"relay_machine_cleaner_id\":\"@:{'templates.generated.compat.objects.columns.relay_machine_cleaner_id'}\",\"relay_machine_id\":\"@:{'templates.generated.compat.objects.columns.relay_machine_id'}\",\"relay_machine_program_picker_id\":\"@:{'templates.generated.compat.objects.columns.relay_machine_program_picker_id'}\",\"relay_out_id\":\"@:{'templates.generated.compat.objects.columns.relay_out_id'}\",\"role_id\":\"@:{'templates.generated.compat.objects.columns.role_id'}\",\"rule\":\"@:{'templates.generated.compat.objects.columns.rule'}\",\"sort_order\":\"@:{'templates.generated.compat.objects.columns.sort_order'}\",\"start_time\":\"@:tables.common.start_time\",\"status\":\"@:common.status\",\"suspended\":\"@:{'templates.generated.compat.objects.columns.suspended'}\",\"task\":\"@:{'templates.generated.compat.objects.columns.task'}\",\"title\":\"@:{'templates.generated.compat.objects.columns.title'}\",\"total_net_amount\":\"@:{'templates.generated.compat.objects.columns.total_net_amount'}\",\"type\":\"@:products.type\",\"updated_at\":\"@:{'templates.generated.compat.objects.columns.updated_at'}\",\"url\":\"@:{'templates.generated.compat.objects.columns.url'}\",\"user_id\":\"@:{'templates.generated.compat.objects.columns.user_id'}\",\"username\":\"@:auth.username\",\"value\":\"@:tables.common.value\",\"water_usage\":\"@:{'templates.generated.compat.objects.columns.water_usage'}\",\"weekday\":\"@:global.weekday\",\"zip\":\"@:{'templates.generated.compat.objects.columns.zip'}\"},\"department_categories\":{\"description\":\"@:{'templates.generated.compat.objects.department_categories.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.department_categories.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.department_categories.single'}\",\"title\":\"@:{'templates.generated.compat.objects.department_categories.title'}\"},\"department_daily_reports\":{\"description\":\"@:{'templates.generated.compat.objects.department_daily_reports.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.department_daily_reports.multiple'}\",\"single\":\"@:{'templates.generated.compat.admin.daily_report.title'}\",\"title\":\"@:{'templates.generated.compat.objects.department_daily_reports.title'}\"},\"department_gates\":{\"description\":\"@:{'templates.generated.compat.objects.department_gates.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.department_gates.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.department_gates.single'}\",\"title\":\"@:superuser.nav.department_gates\"},\"department_lanes\":{\"description\":\"@:{'templates.generated.compat.objects.department_lanes.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.department_lanes.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.department_lanes.single'}\",\"title\":\"@:{'templates.generated.compat.admin.wash_lanes.title'}\"},\"department_notification_sms\":{\"columns\":{\"department\":\"@:{'templates.generated.compat.common.department'}\",\"enabled\":\"@:common.enabled\",\"label\":\"@:{'templates.generated.compat.tables.common.name'}\",\"phone\":\"@:global.phone_number\",\"phone_country_code\":\"@:global.phone_country_code\"},\"country_codes\":{\"denmark\":\"@:{'templates.generated.compat.objects.department_notification_sms.country_codes.denmark'}\",\"finland\":\"@:{'templates.generated.compat.objects.department_notification_sms.country_codes.finland'}\",\"norway\":\"@:{'templates.generated.compat.objects.department_notification_sms.country_codes.norway'}\",\"sweden\":\"@:{'templates.generated.compat.objects.department_notification_sms.country_codes.sweden'}\"},\"description\":\"@:{'templates.generated.compat.objects.department_notification_sms.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.department_notification_sms.multiple'}\",\"single\":\"@:{'templates.generated.compat.auth.phone_number'}\",\"title\":\"@:{'templates.generated.compat.objects.department_notification_sms.title'}\"},\"department_relays\":{\"description\":\"@:{'templates.generated.compat.objects.department_relays.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.department_relays.single'}\",\"single\":\"@:{'templates.generated.compat.objects.department_relays.single'}\",\"title\":\"@:superuser.nav.department_relays\"},\"department_time_bookings_entries\":{\"description\":\"@:{'templates.generated.compat.objects.department_time_bookings_entries.description'}\",\"multiple\":\"@:{'templates.generated.compat.admin.time_bookings.title'}\",\"single\":\"@:{'templates.generated.compat.objects.department_time_bookings_entries.single'}\",\"title\":\"@:{'templates.generated.compat.admin.time_bookings.title'}\"},\"department_time_bookings_opening_hours\":{\"description\":\"@:{'templates.generated.compat.objects.department_time_bookings_opening_hours.description'}\",\"multiple\":\"@:{'templates.generated.compat.departments.tab.opening_hours'}\",\"single\":\"@:{'templates.generated.compat.objects.department_time_bookings_opening_hours.single'}\",\"title\":\"@:{'templates.generated.compat.departments.tab.opening_hours'}\"},\"department_time_bookings_types\":{\"description\":\"@:{'templates.generated.compat.objects.department_time_bookings_types.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.department_time_bookings_types.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.department_time_bookings_types.single'}\",\"title\":\"@:admin.time_bookings.types.title\"},\"department_variables\":{\"description\":\"@:{'templates.generated.compat.objects.department_variables.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.department_variables.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.department_variables.single'}\",\"title\":\"@:{'templates.generated.compat.objects.department_variables.title'}\"},\"departments\":{\"columns\":{\"archived\":\"@:{'templates.generated.compat.objects.departments.columns.archived'}\",\"custom_pricing_only\":\"@:{'templates.generated.compat.objects.departments.columns.custom_pricing_only'}\",\"dimension\":\"@:{'templates.generated.compat.objects.departments.columns.dimension'}\",\"economic_department\":\"@:{'templates.generated.compat.objects.departments.columns.economic_department'}\",\"latitude\":\"@:{'templates.generated.compat.objects.departments.columns.latitude'}\",\"longitude\":\"@:{'templates.generated.compat.objects.departments.columns.longitude'}\",\"slack_webhook\":\"@:{'templates.generated.compat.objects.departments.columns.slack_webhook'}\"},\"description\":\"@:{'templates.generated.compat.objects.departments.description'}\",\"filters\":{\"active\":\"@:{'templates.generated.compat.objects.departments.filters.active'}\",\"archived\":\"@:{'templates.generated.compat.objects.departments.filters.archived'}\",\"status\":\"@:common.status\"},\"multiple\":\"@:{'templates.generated.compat.departments.title'}\",\"single\":\"@:{'templates.generated.compat.common.department'}\",\"title\":\"@:common.departments\"},\"economic_departments\":{\"columns\":{\"department_number\":\"@:{'templates.generated.compat.objects.economic_departments.columns.department_number'}\"},\"description\":\"@:{'templates.generated.compat.objects.economic_departments.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.economic_departments.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.economic_departments.single'}\",\"title\":\"@:{'templates.generated.compat.objects.economic_departments.title'}\"},\"economic_products\":{\"columns\":{\"product_number\":\"@:{'templates.generated.compat.objects.economic_products.columns.product_number'}\"},\"description\":\"@:{'templates.generated.compat.objects.economic_products.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.economic_products.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.economic_products.single'}\",\"title\":\"@:{'templates.generated.compat.objects.economic_products.title'}\"},\"forms\":{\"description\":\"@:{'templates.generated.compat.objects.forms.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.forms.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.forms.single'}\",\"title\":\"@:{'templates.generated.compat.objects.forms.title'}\"},\"goals\":{\"columns\":{\"current\":\"@:{'templates.generated.compat.objects.goals.columns.current'}\",\"period\":\"@:{'templates.generated.compat.objects.goals.columns.period'}\",\"target\":\"@:{'templates.generated.compat.objects.goals.columns.target'}\"},\"description\":\"@:{'templates.generated.compat.objects.goals.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.goals.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.goals.single'}\",\"title\":\"@:{'templates.generated.compat.admin.goals.title'}\"},\"invoices\":{\"columns\":{\"amount\":\"@:global.payment.amount\",\"download\":\"@:{'templates.generated.compat.guest.pwa.title'}\",\"due_date\":\"@:{'templates.generated.compat.objects.invoices.columns.due_date'}\",\"invoice_number\":\"@:{'templates.generated.compat.tables.invoices.invoice_number'}\",\"paid\":\"@:invoices.paid\"},\"description\":\"@:{'templates.generated.compat.objects.invoices.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.invoices.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.invoices.single'}\",\"title\":\"@:common.invoices\"},\"module_action_logs\":{\"description\":\"@:{'templates.generated.compat.objects.module_action_logs.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.module_action_logs.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.module_action_logs.single'}\",\"title\":\"@:{'templates.generated.compat.objects.module_action_logs.title'}\"},\"notifications\":{\"description\":\"@:{'templates.generated.compat.objects.notifications.description'}\",\"multiple\":\"@:{'templates.generated.compat.settings.notifications'}\",\"single\":\"@:{'templates.generated.compat.objects.notifications.single'}\",\"title\":\"@:nav.notifications\"},\"order_bookings\":{\"description\":\"@:{'templates.generated.compat.objects.order_bookings.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.order_bookings.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.order_bookings.single'}\",\"title\":\"@:{'templates.generated.compat.admin.order_bookings.title'}\"},\"orders\":{\"columns\":{\"cashier\":\"@:{'templates.generated.compat.objects.orders.columns.cashier'}\",\"lane\":\"@:modals.lane\",\"license_plate\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"po\":\"@:bookings_table.po\",\"reg_2\":\"@:{'templates.generated.compat.objects.orders.columns.reg_2'}\",\"reg_3\":\"@:{'templates.generated.compat.objects.orders.columns.reg_3'}\",\"wash_id\":\"@:{'templates.generated.compat.objects.orders.columns.wash_id'}\"},\"description\":\"@:{'templates.generated.compat.objects.orders.description'}\",\"entries\":\"@:global.wash_multiple\",\"multiple\":\"@:global.wash_multiple\",\"single\":\"@:{'templates.generated.compat.common.order'}\",\"title\":\"@:global.wash_multiple\"},\"permissions\":{\"description\":\"@:{'templates.generated.compat.objects.permissions.description'}\",\"multiple\":\"@:{'templates.generated.compat.tables.roles.permissions'}\",\"single\":\"@:{'templates.generated.compat.objects.columns.permission'}\",\"title\":\"@:{'templates.generated.compat.tables.roles.permissions'}\"},\"product_options\":{\"description\":\"@:{'templates.generated.compat.objects.product_options.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.product_options.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.product_options.single'}\",\"title\":\"@:{'templates.generated.compat.objects.product_options.title'}\"},\"products\":{\"columns\":{\"category\":\"@:tables.common.category\",\"economic_product\":\"@:{'templates.generated.compat.objects.products.columns.economic_product'}\",\"is_wash\":\"@:{'templates.generated.compat.objects.products.columns.is_wash'}\",\"piktogram\":\"@:{'templates.generated.compat.objects.products.columns.piktogram'}\",\"requires_note\":\"@:{'templates.generated.compat.objects.products.columns.requires_note'}\",\"show_in_booking_form\":\"@:{'templates.generated.compat.objects.products.columns.show_in_booking_form'}\",\"sort_priority\":\"@:{'templates.generated.compat.objects.products.columns.sort_priority'}\",\"subscription_allowed\":\"@:{'templates.generated.compat.objects.products.columns.subscription_allowed'}\",\"use_category_discount\":\"@:{'templates.generated.compat.objects.products.columns.use_category_discount'}\"},\"description\":\"@:{'templates.generated.compat.objects.products.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.products.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.products.single'}\",\"title\":\"@:common.products\"},\"roles\":{\"description\":\"@:{'templates.generated.compat.objects.roles.description'}\",\"multiple\":\"@:{'templates.generated.compat.common.roles'}\",\"single\":\"@:{'templates.generated.compat.common.roles'}\",\"title\":\"@:{'templates.generated.compat.common.roles'}\"},\"self_serve_condition_rules\":{\"description\":\"@:{'templates.generated.compat.objects.self_serve_condition_rules.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.self_serve_condition_rules.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.self_serve_condition_rules.single'}\",\"title\":\"@:tables.self_serve.condition_rules\"},\"self_serve_conditions\":{\"description\":\"@:{'templates.generated.compat.objects.self_serve_conditions.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.columns.condition'}\",\"single\":\"@:{'templates.generated.compat.objects.self_serve_conditions.single'}\",\"title\":\"@:{'templates.generated.compat.objects.self_serve_conditions.title'}\"},\"self_serve_questions\":{\"description\":\"@:{'templates.generated.compat.objects.self_serve_questions.description'}\",\"multiple\":\"@:{'templates.generated.compat.modals.questions'}\",\"single\":\"@:{'templates.generated.compat.objects.self_serve_questions.single'}\",\"title\":\"@:{'templates.generated.compat.objects.self_serve_questions.title'}\"},\"self_serve_tasks\":{\"description\":\"@:{'templates.generated.compat.objects.self_serve_tasks.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.self_serve_tasks.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.self_serve_tasks.single'}\",\"title\":\"@:{'templates.generated.compat.objects.self_serve_tasks.title'}\"},\"self_serve_vehicle_conditions\":{\"description\":\"@:{'templates.generated.compat.objects.self_serve_vehicle_conditions.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.self_serve_vehicle_conditions.multiple'}\",\"single\":\"@:{'templates.generated.compat.objects.self_serve_vehicle_conditions.single'}\",\"title\":\"@:tables.self_serve.vehicle_conditions\"},\"subuser_grants\":{\"columns\":{\"created_at\":\"@:common.created\",\"enabled\":\"@:common.enabled\",\"note\":\"@:{'templates.generated.compat.global.note'}\",\"subuser\":\"@:{'templates.generated.compat.objects.subuser_grants.title'}\",\"updated_at\":\"@:{'templates.generated.compat.objects.columns.updated_at'}\"},\"description\":\"@:{'templates.generated.compat.objects.subuser_grants.description'}\",\"multiple\":\"@:{'templates.generated.compat.tables.roles.permissions'}\",\"single\":\"@:{'templates.generated.compat.objects.columns.permission'}\",\"subtitle\":\"@:{'templates.generated.compat.objects.subuser_grants.subtitle'}\",\"title\":\"@:{'templates.generated.compat.objects.subuser_grants.title'}\"},\"vehicles\":{\"columns\":{\"reg\":\"@:{'templates.generated.compat.objects.vehicles.columns.reg'}\",\"wash_subscription\":\"@:{'templates.generated.compat.user_admin.wash_subscriptions'}\"},\"description\":\"@:{'templates.generated.compat.objects.vehicles.description'}\",\"multiple\":\"@:{'templates.generated.compat.common.vehicles'}\",\"single\":\"@:{'templates.generated.compat.common.vehicles'}\",\"title\":\"@:{'templates.generated.compat.common.vehicles'}\"},\"xlvask_vehicle_types\":{\"description\":\"@:{'templates.generated.compat.objects.xlvask_vehicle_types.description'}\",\"multiple\":\"@:{'templates.generated.compat.objects.xlvask_vehicle_types.title'}\",\"single\":\"@:{'templates.generated.compat.products.form.vehicle_type'}\",\"title\":\"@:{'templates.generated.compat.objects.xlvask_vehicle_types.title'}\"}},\"order_bookings\":{\"add_service\":\"@:{'templates.generated.compat.order_bookings.add_service'}\",\"no_date_selected\":\"@:{'templates.generated.compat.order_bookings.no_date_selected'}\",\"no_department_selected\":\"@:{'templates.generated.compat.order_bookings.no_department_selected'}\",\"select_product\":\"@:{'templates.generated.compat.pos.select_product'}\"},\"outdated\":{\"gateway\":{\"description\":\"@:{'templates.generated.compat.outdated.gateway.description'}\",\"redirect_now\":\"@:{'templates.generated.compat.outdated.gateway.redirect_now'}\",\"redirecting_in\":\"@:{'templates.generated.compat.outdated.gateway.redirecting_in'}\",\"subtitle\":\"@:{'templates.generated.compat.outdated.gateway.subtitle'}\",\"title\":\"@:{'templates.generated.compat.outdated.gateway.title'}\"},\"installation\":{\"android_step_1\":\"@:{'templates.generated.compat.outdated.installation.android_step_1'}\",\"android_step_2\":\"@:{'templates.generated.compat.outdated.installation.android_step_2'}\",\"android_step_3\":\"@:{'templates.generated.compat.outdated.installation.android_step_3'}\",\"android_title\":\"@:{'templates.generated.compat.outdated.installation.android_title'}\",\"description\":\"@:{'templates.generated.compat.outdated.installation.description'}\",\"ios_step_1\":\"@:{'templates.generated.compat.outdated.installation.ios_step_1'}\",\"ios_step_2\":\"@:{'templates.generated.compat.outdated.installation.ios_step_2'}\",\"ios_step_3\":\"@:{'templates.generated.compat.outdated.installation.ios_step_3'}\",\"ios_title\":\"@:{'templates.generated.compat.outdated.installation.ios_title'}\",\"open_now\":\"@:{'templates.generated.compat.outdated.installation.open_now'}\",\"subtitle\":\"@:{'templates.generated.compat.outdated.installation.subtitle'}\",\"title\":\"@:{'templates.generated.compat.outdated.installation.title'}\"}},\"pagination\":{\"all\":\"@:common.all\",\"archive\":\"@:{'templates.generated.compat.pagination.archive'}\",\"clear_all\":\"@:{'templates.generated.compat.pagination.clear_all'}\",\"ascending\":\"@:{'templates.generated.compat.pagination.ascending'}\",\"booked\":\"@:global.booked\",\"booking_status\":\"@:{'templates.generated.compat.pagination.booking_status'}\",\"bookings_overview\":\"@:{'templates.generated.compat.pagination.bookings_overview'}\",\"cancelled\":\"@:{'templates.generated.compat.global.cancelled'}\",\"completed\":\"@:{'templates.generated.compat.global.completed'}\",\"department\":\"@:{'templates.generated.compat.common.department'}\",\"descending\":\"@:{'templates.generated.compat.pagination.descending'}\",\"download_excel\":\"@:{'templates.generated.compat.pagination.download_excel'}\",\"error_status\":\"@:{'templates.generated.compat.pagination.error_status'}\",\"from_date\":\"@:{'templates.generated.compat.pagination.from_date'}\",\"has_special_agreement\":\"@:{'templates.generated.compat.pagination.has_special_agreement'}\",\"has_wash_subscription\":\"@:{'templates.generated.compat.pagination.has_wash_subscription'}\",\"here\":\"@:{'templates.generated.compat.pagination.here'}\",\"hide_filters\":\"@:{'templates.generated.compat.pagination.hide_filters'}\",\"in_progress\":\"@:{'templates.generated.compat.pagination.in_progress'}\",\"invoice_per_month\":\"@:{'templates.generated.compat.pagination.invoice_per_month'}\",\"invoice_per_order\":\"@:global.invoice_per_order\",\"invoice_selection\":\"@:{'templates.generated.compat.pagination.invoice_selection'}\",\"invoicing_period\":\"@:{'templates.generated.compat.pagination.invoicing_period'}\",\"loading\":\"@:{'templates.generated.compat.pagination.loading'}\",\"new_booking\":\"@:{'templates.generated.compat.pagination.new_booking'}\",\"new\":\"@:common.new\",\"next\":\"@:{'templates.generated.compat.pagination.next'}\",\"no_special_agreement\":\"@:{'templates.generated.compat.pagination.no_special_agreement'}\",\"no_wash_subscription\":\"@:{'templates.generated.compat.pagination.no_wash_subscription'}\",\"no\":\"@:common.no\",\"not_booked\":\"@:{'templates.generated.compat.pagination.not_booked'}\",\"not_completed\":\"@:{'templates.generated.compat.pagination.not_completed'}\",\"not_specified\":\"@:{'templates.generated.compat.pagination.not_specified'}\",\"not_tank_cleaning\":\"@:{'templates.generated.compat.pagination.not_tank_cleaning'}\",\"old_booking_notice\":\"@:{'templates.generated.compat.pagination.old_booking_notice'}\",\"old\":\"@:{'templates.generated.compat.pagination.old'}\",\"only_tank_cleaning\":\"@:{'templates.generated.compat.pagination.only_tank_cleaning'}\",\"only_today\":\"@:{'templates.generated.compat.pagination.only_today'}\",\"order_direction\":\"@:{'templates.generated.compat.pagination.order_direction'}\",\"other_filters\":\"@:{'templates.generated.compat.pagination.other_filters'}\",\"other_no_tracking\":\"@:{'templates.generated.compat.pagination.other_no_tracking'}\",\"page_of\":\"@:{'templates.generated.compat.pagination.page_of'}\",\"payment_processor\":\"@:{'templates.generated.compat.pagination.payment_processor'}\",\"pending\":\"@:{'templates.generated.compat.global.pending'}\",\"per_page\":\"@:{'templates.generated.compat.pagination.per_page'}\",\"pickup\":\"@:{'templates.generated.compat.pagination.pickup'}\",\"previous\":\"@:{'templates.generated.compat.pagination.previous'}\",\"reload\":\"@:{'templates.generated.compat.pagination.reload'}\",\"show_filters\":\"@:{'templates.generated.compat.pagination.show_filters'}\",\"show_only_pending\":\"@:{'templates.generated.compat.pagination.show_only_pending'}\",\"show_only_today\":\"@:{'templates.generated.compat.pagination.show_only_today'}\",\"show_only_todays_pending\":\"@:{'templates.generated.compat.pagination.show_only_todays_pending'}\",\"special_agreement\":\"@:{'templates.generated.compat.pagination.special_agreement'}\",\"status\":\"@:common.status\",\"to_date\":\"@:{'templates.generated.compat.pagination.to_date'}\",\"today\":\"@:common.today\",\"update\":\"@:{'templates.generated.compat.common.refresh'}\",\"version\":\"@:{'templates.generated.compat.pagination.version'}\",\"wash_subscription\":\"@:{'templates.generated.compat.pagination.wash_subscription'}\",\"yes\":\"@:common.yes\"},\"passkeys\":{\"add_passkey\":\"@:{'templates.generated.compat.global.add'}\",\"added_successfully\":\"@:{'templates.generated.compat.passkeys.added_successfully'}\",\"cancel\":\"@:common.cancel\",\"created\":\"@:common.created\",\"delete_confirm\":\"@:{'templates.generated.compat.global.delete_confirm'}\",\"delete_failed\":\"@:{'templates.generated.compat.global.delete_failed'}\",\"delete_passkey\":\"@:{'templates.generated.compat.global.delete_passkey'}\",\"delete\":\"@:{'templates.generated.compat.global.delete'}\",\"deleted_successfully\":\"@:{'templates.generated.compat.global.deleted_successfully'}\",\"description\":\"@:{'templates.generated.compat.passkeys.description'}\",\"error\":\"@:common.error\",\"login_failed\":\"@:{'templates.generated.compat.passkeys.login_failed'}\",\"login_with_passkey\":\"@:{'templates.generated.compat.passkeys.login_with_passkey'}\",\"name_label\":\"@:{'templates.generated.compat.passkeys.name_label'}\",\"name_placeholder\":\"@:{'templates.generated.compat.passkeys.name_placeholder'}\",\"name_required\":\"@:{'templates.generated.compat.passkeys.name_required'}\",\"no_passkeys\":\"@:{'templates.generated.compat.passkeys.no_passkeys'}\",\"not_supported_browser\":\"@:{'templates.generated.compat.passkeys.not_supported_browser'}\",\"not_supported\":\"@:{'templates.generated.compat.passkeys.not_supported'}\",\"registration_cancelled\":\"@:{'templates.generated.compat.passkeys.registration_cancelled'}\",\"registration_failed\":\"@:{'templates.generated.compat.passkeys.registration_failed'}\",\"rename_failed\":\"@:{'templates.generated.compat.passkeys.rename_failed'}\",\"rename_passkey\":\"@:{'templates.generated.compat.passkeys.rename_passkey'}\",\"rename\":\"@:{'templates.generated.compat.passkeys.rename'}\",\"renamed_successfully\":\"@:{'templates.generated.compat.passkeys.renamed_successfully'}\",\"success\":\"@:{'templates.generated.compat.passkeys.success'}\",\"title\":\"@:{'templates.generated.compat.passkeys.title'}\",\"unnamed\":\"@:{'templates.generated.compat.passkeys.unnamed'}\"},\"password_reset\":{\"back_to_login\":\"@:{'templates.generated.compat.auth.customer_login_title'}\",\"change_password\":\"@:{'templates.generated.compat.global.edit'}\",\"customer_number\":\"@:{'templates.generated.compat.objects.columns.customer_number'}\",\"new_password\":\"@:{'templates.generated.compat.password_reset.new_password'}\",\"restart\":\"@:{'templates.generated.compat.password_reset.restart'}\",\"submit\":\"@:{'templates.generated.compat.password_reset.submit'}\",\"title\":\"@:password_reset.submit\"},\"pos\":{\"add_note\":\"@:{'templates.generated.compat.global.add'}\",\"add_to_cart\":\"@:{'templates.generated.compat.pos.add_to_cart'}\",\"add_to_order\":\"@:{'templates.generated.compat.pos.add_to_order'}\",\"addon\":{\"included\":\"@:{'templates.generated.compat.pos.addon.included'}\",\"title\":\"@:{'templates.generated.compat.common.addons'}\"},\"addons\":\"@:{'templates.generated.compat.common.addons'}\",\"apply_discount\":\"@:{'templates.generated.compat.pos.apply_discount'}\",\"bookings\":{\"created_at\":\"@:{'templates.generated.compat.global.generated'}\",\"customer_number\":\"@:{'templates.generated.compat.pos.bookings.customer_number'}\",\"expected_at\":\"@:bookings.expected_at\",\"products\":\"@:common.products\",\"reference\":\"@:{'templates.generated.compat.pos.reference'}\",\"title\":\"@:{'templates.generated.compat.common.bookings'}\",\"view_booking\":\"@:{'templates.generated.compat.common.view'}\"},\"camera_permission_denied\":\"@:{'templates.generated.compat.pos.camera_permission_denied'}\",\"cancel_order\":\"@:{'templates.generated.compat.pos.cancel_order'}\",\"cancelled\":\"@:{'templates.generated.compat.global.cancelled'}\",\"card\":\"@:{'templates.generated.compat.pos.card'}\",\"cash\":\"@:{'templates.generated.compat.pos.cash'}\",\"clear_order\":\"@:{'templates.generated.compat.pos.clear_order'}\",\"complete_order\":\"@:{'templates.generated.compat.global.complete_order'}\",\"complete\":\"@:{'templates.generated.compat.global.complete'}\",\"completed\":\"@:{'templates.generated.compat.global.completed'}\",\"confirm_clear_order\":\"@:{'templates.generated.compat.pos.confirm_clear_order'}\",\"confirm_complete_order\":\"@:{'templates.generated.compat.pos.confirm_complete_order'}\",\"confirm\":{\"confirm_booking\":\"@:{'templates.generated.compat.pos.confirm.confirm_booking'}\",\"title\":\"@:{'templates.generated.compat.2fa.verify_button'}\",\"yes_confirm\":\"@:{'templates.generated.compat.pos.confirm.yes_confirm'}\"},\"copy_last_wash_hint\":\"@:{'templates.generated.compat.pos.copy_last_wash_hint'}\",\"copying_last_wash\":\"@:{'templates.generated.compat.pos.copying_last_wash'}\",\"create_new_vehicle\":\"@:{'templates.generated.compat.pos.create_new_vehicle'}\",\"customer_number\":\"@:{'templates.generated.compat.objects.columns.customer_number'}\",\"customer_picker\":{\"select_card_payment\":\"@:{'templates.generated.compat.common.customer_picker.select_card_payment'}\",\"select_customer_invoice\":\"@:{'templates.generated.compat.common.customer_picker.select_customer_invoice'}\",\"select_draft_customer\":\"@:{'templates.generated.compat.common.customer_picker.select_draft_customer'}\",\"select_new_customer\":\"@:{'templates.generated.compat.common.customer_picker.select_new_customer'}\",\"select_payment_form\":\"@:{'templates.generated.compat.common.customer_picker.select_payment_form'}\",\"selected_customer\":\"@:{'templates.generated.compat.common.customer_picker.selected_customer'}\"},\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"department_not_found\":\"@:{'templates.generated.compat.pos.department_not_found'}\",\"discount\":\"@:common.discount\",\"email_receipt\":\"@:{'templates.generated.compat.pos.email_receipt'}\",\"enter_plate\":\"@:{'templates.generated.compat.pos.enter_plate'}\",\"finish_and_register_new\":\"@:{'templates.generated.compat.pos.finish_and_register_new'}\",\"finish_and_register\":\"@:{'templates.generated.compat.pos.finish_and_register'}\",\"gallery\":{\"images\":\"@:pos.images\"},\"generate_certificate\":\"@:{'templates.generated.compat.pos.generate_certificate'}\",\"go_back\":\"@:{'templates.generated.compat.pos.go_back'}\",\"go_to_login\":\"@:{'templates.generated.compat.pos.go_to_login'}\",\"hold_to_change_vehicle\":\"@:{'templates.generated.compat.pos.hold_to_change_vehicle'}\",\"hold_to_choose_additional_items\":\"@:{'templates.generated.compat.pos.hold_to_choose_additional_items'}\",\"hold_to_copy_last_wash\":\"@:{'templates.generated.compat.pos.hold_to_copy_last_wash'}\",\"images\":\"@:{'templates.generated.compat.pos.images'}\",\"input\":{\"enter_plate_number\":\"@:{'templates.generated.compat.self_wash.enter_registration_number'}\",\"license_plate_manual\":\"@:{'templates.generated.compat.pos.input.license_plate_manual'}\"},\"invoice\":\"@:common.invoice\",\"keyboard\":{\"backspace\":\"@:{'templates.generated.compat.global.delete'}\",\"clear\":\"@:{'templates.generated.compat.pos.keyboard.clear'}\",\"search\":\"@:{'templates.generated.compat.common.search'}\"},\"last_wash_matches_current_selection\":\"@:{'templates.generated.compat.pos.last_wash_matches_current_selection'}\",\"license_plate\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"manual_entry\":\"@:{'templates.generated.compat.pos.manual_entry'}\",\"new_order\":\"@:{'templates.generated.compat.pos.new_order'}\",\"new_sale\":\"@:{'templates.generated.compat.pos.new_sale'}\",\"no_bookings\":\"@:{'templates.generated.compat.pos.no_bookings'}\",\"no_camera_found\":\"@:{'templates.generated.compat.pos.no_camera_found'}\",\"note\":\"@:{'templates.generated.compat.global.note'}\",\"notes\":\"@:common.notes\",\"order_summary\":\"@:{'templates.generated.compat.pos.order_summary'}\",\"order\":{\"add_more_products\":\"@:{'templates.generated.compat.pos.order.add_more_products'}\",\"badges\":{\"amount_due\":\"@:{'templates.generated.compat.pos.order.badges.amount_due'}\",\"amount_received\":\"@:{'templates.generated.compat.pos.order.badges.amount_received'}\",\"amount_reserved\":\"@:{'templates.generated.compat.pos.order.badges.amount_reserved'}\",\"draft\":\"@:{'templates.generated.compat.invoices.statuses.draft'}\",\"draft_transaction\":\"@:{'templates.generated.compat.invoices.statuses.draft_transaction'}\",\"not_completed\":\"@:{'templates.generated.compat.pagination.not_completed'}\",\"not_invoiced\":\"@:{'templates.generated.compat.pos.order.badges.not_invoiced'}\",\"payment_status\":\"@:{'templates.generated.compat.collected_invoice.stripe.payment_status'}\",\"saved_for_invoicing\":\"@:{'templates.generated.compat.pos.order.badges.saved_for_invoicing'}\",\"tax\":\"@:{'templates.generated.compat.pos.order.badges.tax'}\"},\"booking\":\"@:{'templates.generated.compat.common.order'}\",\"click_to_go_to_booking\":\"@:{'templates.generated.compat.pos.order.click_to_go_to_booking'}\",\"complete_order\":\"@:{'templates.generated.compat.pos.order.complete_order'}\",\"created\":\"@:common.created\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"delete_order\":\"@:{'templates.generated.compat.pos.order.delete_order'}\",\"department\":\"@:{'templates.generated.compat.common.department'}\",\"department_id\":\"@:{'templates.generated.compat.common.department_id'}\",\"draft_check_exists\":\"@:{'templates.generated.compat.pos.order.draft_check_exists'}\",\"draft_fetch_error\":\"@:{'templates.generated.compat.pos.order.draft_fetch_error'}\",\"draft_transaction_export_blocked\":\"@:{'templates.generated.compat.pos.order.draft_transaction_export_blocked'}\",\"edit_note\":\"@:{'templates.generated.compat.pos.order.edit_note'}\",\"force_edit\":\"@:{'templates.generated.compat.pos.order.force_edit'}\",\"get_invoice\":\"@:{'templates.generated.compat.pos.order.get_invoice'}\",\"include_in_invoice\":\"@:{'templates.generated.compat.pos.order.include_in_invoice'}\",\"invoice_override\":{\"exclude\":\"@:{'templates.generated.compat.pos.order.invoice_override.exclude'}\",\"force_exclude_help\":\"@:{'templates.generated.compat.pos.order.invoice_override.force_exclude_help'}\",\"force_include_help\":\"@:{'templates.generated.compat.pos.order.invoice_override.force_include_help'}\",\"include\":\"@:{'templates.generated.compat.pos.order.invoice_override.include'}\",\"inherit_exclude_help\":\"@:{'templates.generated.compat.pos.order.invoice_override.inherit_exclude_help'}\",\"inherit_help\":\"@:{'templates.generated.compat.pos.order.invoice_override.inherit_help'}\",\"inherit_include_help\":\"@:{'templates.generated.compat.pos.order.invoice_override.inherit_include_help'}\",\"use_department\":\"@:{'templates.generated.compat.pos.order.invoice_override.use_department'}\"},\"license_plates\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"linked_booking_id\":\"@:{'templates.generated.compat.pos.order.linked_booking_id'}\",\"order_note\":\"@:{'templates.generated.compat.pos.order.order_note'}\",\"print_receipt\":\"@:{'templates.generated.compat.pos.order.print_receipt'}\",\"reference\":\"@:common.reference\",\"reg\":\"@:{'templates.generated.compat.pos.order.reg'}\",\"remove_force_edit\":\"@:{'templates.generated.compat.pos.order.remove_force_edit'}\",\"send_to_economic\":\"@:{'templates.generated.compat.pos.order.send_to_economic'}\",\"settings_actions_title\":\"@:{'templates.generated.compat.pos.order.settings_actions_title'}\",\"settings_description\":\"@:{'templates.generated.compat.pos.order.settings_description'}\",\"settings_save_error\":\"@:{'templates.generated.compat.pos.order.settings_save_error'}\",\"settings_saved\":\"@:{'templates.generated.compat.pos.order.settings_saved'}\",\"settings_title\":\"@:common.settings\",\"status\":{\"deleted\":\"@:{'templates.generated.compat.objects.columns.deleted'}\",\"not_paid\":\"@:{'templates.generated.compat.pos.order.status.not_paid'}\",\"paid\":\"@:invoices.paid\",\"partially_paid\":\"@:{'templates.generated.compat.pos.order.status.partially_paid'}\",\"pending\":\"@:{'templates.generated.compat.global.pending'}\",\"uncollectible\":\"@:{'templates.generated.compat.pos.order.status.uncollectible'}\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\",\"void\":\"@:{'templates.generated.compat.pos.order.status.void'}\"},\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\"},\"pay\":\"@:{'templates.generated.compat.pos.pay'}\",\"payment_by_card\":\"@:{'templates.generated.compat.pos.payment_by_card'}\",\"payment_by_cash\":\"@:{'templates.generated.compat.pos.payment_by_cash'}\",\"payment_by_invoice\":\"@:{'templates.generated.compat.pos.payment_by_invoice'}\",\"payment_method\":\"@:{'templates.generated.compat.pos.payment_method'}\",\"payment\":\"@:{'templates.generated.compat.pos.payment'}\",\"pending\":\"@:{'templates.generated.compat.global.pending'}\",\"plate_number\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"price\":\"@:common.price\",\"print_receipt\":\"@:{'templates.generated.compat.pos.print_receipt'}\",\"process_booking\":\"@:{'templates.generated.compat.pos.process_booking'}\",\"processing_order\":\"@:{'templates.generated.compat.pos.processing_order'}\",\"products\":\"@:common.products\",\"restrictions\":{\"addons_not_allowed\":\"@:{'templates.generated.compat.pos.restrictions.addons_not_allowed'}\",\"backend_rejected\":\"@:{'templates.generated.compat.pos.restrictions.backend_rejected'}\",\"product_not_allowed\":\"@:{'templates.generated.compat.pos.restrictions.product_not_allowed'}\",\"restricted_items_removed\":\"@:{'templates.generated.compat.pos.restrictions.restricted_items_removed'}\",\"title\":\"@:{'templates.generated.compat.pos.restrictions.title'}\"},\"receipt\":\"@:{'templates.generated.compat.pos.receipt'}\",\"recent_washes\":\"@:{'templates.generated.compat.global.last_wash'}\",\"recent\":{\"title\":\"@:{'templates.generated.compat.pos.recent.title'}\"},\"reference\":\"@:{'templates.generated.compat.pos.reference'}\",\"register_vehicle\":\"@:{'templates.generated.compat.pos.register_vehicle'}\",\"remove_discount\":\"@:{'templates.generated.compat.pos.remove_discount'}\",\"remove_from_order\":\"@:{'templates.generated.compat.pos.remove_from_order'}\",\"remove_image\":\"@:{'templates.generated.compat.pos.remove_image'}\",\"scan_plate\":\"@:{'templates.generated.compat.pos.scan_plate'}\",\"search_customer_by_number\":\"@:{'templates.generated.compat.common.search_customer_by_number'}\",\"search_customer_none\":\"@:customers.no_customers\",\"search_customer\":\"@:{'templates.generated.compat.common.search_customer'}\",\"search_license_plate\":\"@:{'templates.generated.compat.common.search_license_plate'}\",\"search\":\"@:{'templates.generated.compat.common.search'}\",\"section\":{\"order\":\"@:{'templates.generated.compat.common.order'}\",\"payment\":\"@:pos.payment\"},\"select_product\":\"@:{'templates.generated.compat.pos.select_product'}\",\"select_products\":\"@:{'templates.generated.compat.pos.select_products'}\",\"subtitle\":\"@:{'templates.generated.compat.pos.subtitle'}\",\"subtotal\":\"@:{'templates.generated.compat.pos.subtotal'}\",\"take_photo\":\"@:{'templates.generated.compat.pos.take_photo'}\",\"tax\":\"@:common.tax\",\"title\":\"@:{'templates.generated.compat.pos.title'}\",\"total_amount\":\"@:{'templates.generated.compat.global.total_amount'}\",\"total\":\"@:{'templates.generated.compat.global.total'}\",\"upload_image\":\"@:{'templates.generated.compat.pos.upload_image'}\",\"vehicle_not_found\":\"@:{'templates.generated.compat.pos.vehicle_not_found'}\",\"vehicle_type\":\"@:{'templates.generated.compat.pos.vehicle_type'}\",\"vehicle_types\":{\"bus\":\"@:{'templates.generated.compat.pos.vehicle_types.bus'}\",\"kassevogn\":\"@:vehicles.vehicle_types.box\",\"lastbil\":\"@:{'templates.generated.compat.pos.vehicle_types.lastbil'}\",\"lastvogn\":\"@:{'templates.generated.compat.pos.vehicle_types.lastbil'}\",\"lift\":\"@:{'templates.generated.compat.pos.vehicle_types.lift'}\",\"mandskabsvogn\":\"@:{'templates.generated.compat.pos.vehicle_types.mandskabsvogn'}\",\"motorcykel\":\"@:{'templates.generated.compat.pos.vehicle_types.motorcykel'}\",\"personbil\":\"@:vehicles.vehicle_types.car\",\"sættevogn\":\"@:{'templates.generated.compat.pos.vehicle_types.sættevogn'}\",\"trailer\":\"@:{'templates.generated.compat.pos.vehicle_types.trailer'}\",\"traktor\":\"@:{'templates.generated.compat.pos.vehicle_types.traktor'}\",\"varevogn\":\"@:{'templates.generated.compat.pos.vehicle_types.varevogn'}\"},\"vehicle\":{\"previously_washed\":\"@:{'templates.generated.compat.pos.vehicle.previously_washed'}\"},\"wash_certificate\":\"@:{'templates.generated.compat.pos.wash_certificate'}\",\"wash_type\":\"@:{'templates.generated.compat.pos.wash_type'}\"},\"products\":{\"actions\":\"@:common.actions\",\"admin\":{\"product_id\":\"@:{'templates.generated.compat.tables.common.product_id'}\",\"subtitle\":\"@:{'templates.generated.compat.products.admin.subtitle'}\",\"title\":\"@:{'templates.generated.compat.products.admin.title'}\"},\"created_at\":\"@:{'templates.generated.compat.global.generated'}\",\"delete_product\":\"@:{'templates.generated.compat.products.delete_product'}\",\"edit_product\":\"@:{'templates.generated.compat.products.edit_product'}\",\"form\":{\"active\":\"@:common.active\",\"description\":\"@:common.description\",\"exterior\":\"@:{'templates.generated.compat.products.form.exterior'}\",\"inactive\":\"@:common.inactive\",\"interior\":\"@:{'templates.generated.compat.products.form.interior'}\",\"is_exterior\":\"@:{'templates.generated.compat.products.form.is_exterior'}\",\"is_interior\":\"@:{'templates.generated.compat.products.form.is_interior'}\",\"price\":\"@:common.price\",\"product_name\":\"@:{'templates.generated.compat.products.form.product_name'}\",\"save\":\"@:{'templates.generated.compat.products.form.save'}\",\"status\":\"@:common.status\",\"vehicle_type\":\"@:{'templates.generated.compat.products.form.vehicle_type'}\",\"vehicle_types\":\"@:statistics.vehicle_types\"},\"name\":\"@:common.name\",\"new_product\":\"@:{'templates.generated.compat.products.new_product'}\",\"no_products\":\"@:{'templates.generated.compat.products.no_products'}\",\"price\":\"@:common.price\",\"product\":\"@:common.product\",\"search_placeholder\":\"@:{'templates.generated.compat.products.search_placeholder'}\",\"status\":\"@:common.status\",\"subtitle\":\"@:{'templates.generated.compat.products.subtitle'}\",\"title\":\"@:common.products\",\"type\":\"@:{'templates.generated.compat.products.type'}\"},\"profile\":{\"email\":{\"enter_email\":\"@:{'templates.generated.compat.profile.email.enter_email'}\",\"enter_password\":\"@:{'templates.generated.compat.profile.email.enter_password'}\",\"invalid_email\":\"@:{'templates.generated.compat.profile.email.invalid_email'}\",\"label\":\"@:{'templates.generated.compat.profile.email.label'}\",\"new_email_prompt\":\"@:{'templates.generated.compat.profile.email.new_email_prompt'}\",\"new_email_text\":\"@:{'templates.generated.compat.profile.email.new_email_text'}\",\"password_prompt\":\"@:{'templates.generated.compat.profile.email.password_prompt'}\",\"saved\":\"@:{'templates.generated.compat.profile.email.saved'}\",\"saved_text\":\"@:{'templates.generated.compat.profile.email.saved_text'}\"},\"error\":{\"save_email_error\":\"@:{'templates.generated.compat.profile.error.save_email_error'}\",\"title\":\"@:common.error\",\"validation_error\":\"@:{'templates.generated.compat.profile.error.validation_error'}\"},\"title\":\"@:common.profile\"},\"redirect\":{\"mobile_department_auto_select\":{\"manual_button\":\"@:{'templates.redirect.mobile_department_auto_select.manual_button'}\",\"manual_title\":\"@:{'templates.redirect.mobile_department_auto_select.manual_title'}\",\"manual_loading\":\"@:{'templates.redirect.mobile_department_auto_select.manual_loading'}\",\"use_department\":\"@:{'templates.redirect.mobile_department_auto_select.use_department'}\"}},\"replication\":{\"actions\":{\"add\":\"@:{'templates.generated.compat.replication.actions.add'}\",\"promote\":\"@:{'templates.generated.compat.replication.actions.promote'}\",\"provision\":\"@:{'templates.generated.compat.replication.actions.provision'}\",\"refresh\":\"@:{'templates.generated.compat.common.refresh'}\",\"remove\":\"@:{'templates.generated.compat.replication.actions.remove'}\",\"rename\":\"@:{'templates.generated.compat.replication.actions.rename'}\",\"save_and_provision\":\"@:{'templates.generated.compat.replication.actions.save_and_provision'}\",\"test\":\"@:{'templates.generated.compat.replication.actions.test'}\"},\"add_database\":\"@:replication.templates.add_host\",\"add_minio\":\"@:replication.templates.add_host\",\"add_redis\":\"@:replication.templates.add_host\",\"blockers\":{\"database_engine_match_required\":\"@:{'templates.generated.compat.replication.blockers.database_engine_match_required'}\",\"database_io_thread_stopped\":\"@:{'templates.generated.compat.replication.blockers.database_io_thread_stopped'}\",\"database_primary_missing\":\"@:{'templates.generated.compat.replication.blockers.database_primary_missing'}\",\"database_replica_missing_table_count\":\"@:{'templates.generated.compat.replication.blockers.database_replica_missing_table_count'}\",\"database_replica_missing_tables\":\"@:{'templates.generated.compat.replication.blockers.database_replica_missing_tables'}\",\"database_replica_not_seeded\":\"@:{'templates.generated.compat.replication.blockers.database_replica_not_seeded'}\",\"database_replica_schema_only_rows\":\"@:{'templates.generated.compat.replication.blockers.database_replica_schema_only_rows'}\",\"database_replica_status_missing\":\"@:{'templates.generated.compat.replication.blockers.database_replica_status_missing'}\",\"database_sql_thread_stopped\":\"@:{'templates.generated.compat.replication.blockers.database_sql_thread_stopped'}\",\"database_threads_required\":\"@:{'templates.generated.compat.replication.blockers.database_threads_required'}\",\"mariadb_binlog_required\":\"@:{'templates.generated.compat.replication.blockers.mariadb_binlog_required'}\",\"mariadb_binlog_unavailable\":\"@:{'templates.generated.compat.replication.blockers.mariadb_binlog_unavailable'}\",\"mariadb_gtid_position_required\":\"@:{'templates.generated.compat.replication.blockers.mariadb_gtid_position_required'}\",\"mariadb_gtid_replication_required\":\"@:{'templates.generated.compat.replication.blockers.mariadb_gtid_replication_required'}\",\"mariadb_preseed_required\":\"@:{'templates.generated.compat.replication.blockers.mariadb_preseed_required'}\",\"mariadb_server_id_required\":\"@:{'templates.generated.compat.replication.blockers.mariadb_server_id_required'}\",\"mariadb_version_current\":\"@:{'templates.generated.compat.replication.blockers.mariadb_version_current'}\",\"mariadb_version_required\":\"@:{'templates.generated.compat.replication.blockers.mariadb_version_required'}\",\"minio_primary_missing\":\"@:{'templates.generated.compat.replication.blockers.minio_primary_missing'}\",\"minio_replica_not_caught_up\":\"@:{'templates.generated.compat.replication.blockers.minio_replica_not_caught_up'}\",\"minio_replication_not_configured\":\"@:{'templates.generated.compat.replication.blockers.minio_replication_not_configured'}\",\"minio_source_bucket_missing\":\"@:{'templates.generated.compat.replication.blockers.minio_source_bucket_missing'}\",\"minio_space_insufficient\":\"@:{'templates.generated.compat.replication.blockers.minio_space_insufficient'}\",\"minio_space_unknown\":\"@:{'templates.generated.compat.replication.blockers.minio_space_unknown'}\",\"minio_target_bucket_missing\":\"@:{'templates.generated.compat.replication.blockers.minio_target_bucket_missing'}\",\"mysql_binlog_required\":\"@:{'templates.generated.compat.replication.blockers.mysql_binlog_required'}\",\"mysql_binlog_unavailable\":\"@:{'templates.generated.compat.replication.blockers.mysql_binlog_unavailable'}\",\"mysql_clone_primary_required\":\"@:{'templates.generated.compat.replication.blockers.mysql_clone_primary_required'}\",\"mysql_clone_target_required\":\"@:{'templates.generated.compat.replication.blockers.mysql_clone_target_required'}\",\"mysql_gtid_required\":\"@:{'templates.generated.compat.replication.blockers.mysql_gtid_required'}\",\"mysql_gtid_unavailable\":\"@:{'templates.generated.compat.replication.blockers.mysql_gtid_unavailable'}\",\"mysql_server_id_required\":\"@:{'templates.generated.compat.replication.blockers.mysql_server_id_required'}\",\"mysql_server_uuid_required\":\"@:{'templates.generated.compat.replication.blockers.mysql_server_uuid_required'}\",\"mysql_unique_server_id\":\"@:{'templates.generated.compat.replication.blockers.mysql_unique_server_id'}\",\"mysql8_current\":\"@:{'templates.generated.compat.replication.blockers.mysql8_current'}\",\"mysql8_required\":\"@:{'templates.generated.compat.replication.blockers.mysql8_required'}\",\"redis_acl_config_required\":\"@:{'templates.generated.compat.replication.blockers.redis_acl_config_required'}\",\"redis_link_down\":\"@:{'templates.generated.compat.replication.blockers.redis_link_down'}\",\"redis_not_replica\":\"@:{'templates.generated.compat.replication.blockers.redis_not_replica'}\",\"redis_ping_failed\":\"@:{'templates.generated.compat.replication.blockers.redis_ping_failed'}\",\"redis_primary_missing\":\"@:{'templates.generated.compat.replication.blockers.redis_primary_missing'}\"},\"compose\":{\"compose_file\":\"@:{'templates.generated.compat.replication.compose.compose_file'}\",\"console_port\":\"@:replication.fields.console_port\",\"env_file\":\"@:{'templates.generated.compat.replication.compose.env_file'}\",\"generate\":\"@:{'templates.generated.compat.replication.compose.generate'}\",\"host_port\":\"@:{'templates.generated.compat.replication.compose.host_port'}\",\"kind\":\"@:{'templates.generated.compat.vehicles.type'}\",\"next_steps\":\"@:{'templates.generated.compat.replication.compose.next_steps'}\",\"primary_host\":\"@:{'templates.generated.compat.replication.compose.primary_host'}\",\"primary_port\":\"@:{'templates.generated.compat.replication.compose.primary_port'}\",\"role\":\"@:{'templates.generated.compat.common.roles'}\",\"seed_command\":\"@:{'templates.generated.compat.replication.compose.seed_command'}\",\"server_id\":\"@:{'templates.generated.compat.replication.compose.server_id'}\",\"service_name\":\"@:{'templates.generated.compat.replication.compose.service_name'}\",\"steps\":{\"database_register_primary\":\"@:replication.templates.register_host_when_reachable\",\"database_register_replica\":\"@:{'templates.generated.compat.replication.compose.steps.database_register_replica'}\",\"database_seed\":\"@:{'templates.generated.compat.replication.compose.steps.database_seed'}\",\"database_server_id\":\"@:{'templates.generated.compat.replication.compose.steps.database_server_id'}\",\"deploy\":\"@:{'templates.generated.compat.replication.compose.steps.deploy'}\",\"minio_buckets\":\"@:{'templates.generated.compat.replication.compose.steps.minio_buckets'}\",\"minio_primary_credentials\":\"@:{'templates.generated.compat.replication.compose.steps.minio_primary_credentials'}\",\"minio_register\":\"@:replication.templates.register_host_when_reachable_with_space_requirement\",\"redis_primary_password\":\"@:{'templates.generated.compat.replication.compose.steps.redis_primary_password'}\",\"redis_register\":\"@:replication.templates.register_host_when_reachable\"},\"test_before_save\":\"@:{'templates.generated.compat.replication.compose.test_before_save'}\",\"test_failed\":\"@:{'templates.generated.compat.replication.compose.test_failed'}\",\"test_ok\":\"@:{'templates.generated.compat.replication.compose.test_ok'}\",\"title\":\"@:{'templates.generated.compat.replication.compose.title'}\"},\"database\":\"@.capitalize:{'words.replication.services.database'}\",\"fields\":{\"admin_password\":\"@:{'templates.generated.compat.replication.fields.admin_password'}\",\"admin_username\":\"@:{'templates.generated.compat.replication.fields.admin_username'}\",\"allow_preseeded_replica\":\"@:{'templates.generated.compat.replication.fields.allow_preseeded_replica'}\",\"buckets\":\"@:{'templates.generated.compat.replication.fields.buckets'}\",\"console_port\":\"@:{'templates.generated.compat.replication.fields.console_port'}\",\"replication_transfer_limit\":\"@:{'templates.generated.compat.replication.fields.replication_transfer_limit'}\",\"database\":\"@:replication.database\",\"database_index\":\"@:{'templates.generated.compat.replication.fields.database_index'}\",\"host\":\"@.capitalize:{'words.replication.host'}\",\"label\":\"@:{'templates.generated.compat.tables.common.name'}\",\"password\":\"@:{'templates.generated.compat.settings.section.password'}\",\"port\":\"@:{'templates.generated.compat.replication.fields.port'}\",\"replication_password\":\"@:{'templates.generated.compat.replication.fields.replication_password'}\",\"replication_username\":\"@:{'templates.generated.compat.replication.fields.replication_username'}\",\"scheme\":\"@:{'templates.generated.compat.replication.fields.scheme'}\",\"ssl_mode\":\"@:{'templates.generated.compat.replication.fields.ssl_mode'}\",\"username\":\"@:{'templates.generated.compat.replication.fields.username'}\"},\"host_mentions\":{\"minio\":\"@:templates.replication.host_mentions.minio\",\"primary_database\":\"@:templates.replication.host_mentions.primary_database\",\"redis\":\"@:templates.replication.host_mentions.redis\"},\"host_targets\":{\"database\":\"@:templates.replication.host_targets.database\",\"minio\":\"@:templates.replication.host_targets.minio\",\"redis\":\"@:templates.replication.host_targets.redis\"},\"labels\":{\"actions\":\"@:{'templates.generated.compat.tables.actions'}\",\"blockers\":\"@:{'templates.generated.compat.replication.labels.blockers'}\",\"host\":\"@:replication.fields.host\",\"last_checked\":\"@:{'templates.generated.compat.replication.labels.last_checked'}\",\"min_percent\":\"@:objects.columns.min\",\"replicas\":\"@:{'templates.generated.compat.replication.labels.replicas'}\",\"replication\":\"@:{'templates.generated.compat.replication.labels.replication'}\",\"role\":\"@:{'templates.generated.compat.common.roles'}\",\"status\":\"@:common.status\"},\"minio\":\"@:words.replication.services.minio\",\"prompts\":{\"rename_host\":\"@:{'templates.generated.compat.replication.prompts.rename_host'}\"},\"redis\":\"@:words.replication.services.redis\",\"roles\":{\"inactive\":\"@:{'templates.generated.compat.replication.roles.inactive'}\",\"primary\":\"@:{'templates.generated.compat.replication.roles.primary'}\",\"replica\":\"@:{'templates.generated.compat.replication.roles.replica'}\"},\"states\":{\"coolify_deploying\":\"@:{'templates.generated.compat.replication.states.coolify_deploying'}\",\"coolify_restarting\":\"@:{'templates.generated.compat.replication.states.coolify_restarting'}\",\"coolify_starting_provisioning\":\"@:{'templates.generated.compat.replication.states.coolify_starting_provisioning'}\",\"coolify_waiting_for_endpoint\":\"@:{'templates.generated.compat.replication.states.coolify_waiting_for_endpoint'}\",\"deploy_timeout\":\"@:{'templates.generated.compat.replication.states.deploy_timeout'}\",\"empty\":\"@:{'templates.generated.compat.replication.states.empty'}\",\"error\":\"@:{'templates.generated.compat.replication.states.error'}\",\"loading\":\"@:{'templates.generated.compat.replication.states.loading'}\",\"provision_timeout\":\"@:{'templates.generated.compat.replication.states.provision_timeout'}\",\"syncing_in_background\":\"@:{'templates.generated.compat.replication.states.syncing_in_background'}\",\"waiting_for_redis_primary_link\":\"@:{'templates.generated.compat.replication.states.waiting_for_redis_primary_link'}\"},\"status\":{\"degraded\":\"@:{'templates.generated.compat.replication.status.degraded'}\",\"down\":\"@:{'templates.generated.compat.replication.status.down'}\",\"inactive\":\"@:{'templates.generated.compat.replication.roles.inactive'}\",\"not_configured\":\"@:{'templates.generated.compat.replication.status.not_configured'}\",\"ok\":\"@:common.ok\",\"provisioning\":\"@:{'templates.generated.compat.replication.status.provisioning'}\",\"removed\":\"@:{'templates.generated.compat.replication.status.removed'}\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\"},\"subtitle\":\"@:{'templates.generated.compat.replication.subtitle'}\",\"templates\":{\"add_host\":\"@:templates.replication.add_host\",\"register_host_when_reachable\":\"@:templates.replication.register_host_when_reachable\",\"register_host_when_reachable_with_space_requirement\":\"@:templates.replication.register_host_when_reachable_with_space_requirement\"},\"title\":\"@:replication.labels.replication\"},\"roles\":{\"permissions\":{\"access_scope\":\"@:{'templates.generated.compat.roles.permissions.access_scope'}\",\"actions\":{\"clear_all\":\"@:{'templates.generated.compat.roles.permissions.actions.clear_all'}\",\"reload\":\"@:{'templates.generated.compat.roles.permissions.actions.reload'}\",\"retry\":\"@:{'templates.generated.compat.roles.permissions.actions.retry'}\",\"select_all\":\"@:{'templates.generated.compat.roles.permissions.actions.select_all'}\"},\"columns\":{\"enabled\":\"@:{'templates.generated.compat.roles.permissions.columns.enabled'}\",\"permission\":\"@:{'templates.generated.compat.roles.permissions.columns.permission'}\",\"route\":\"@:{'templates.generated.compat.roles.permissions.columns.route'}\",\"status\":\"@:{'templates.generated.compat.roles.permissions.columns.status'}\"},\"department_access_description\":\"@:{'templates.generated.compat.roles.permissions.department_access_description'}\",\"empty\":\"@:{'templates.generated.compat.roles.permissions.empty'}\",\"empty_group\":\"@:{'templates.generated.compat.roles.permissions.empty_group'}\",\"errors\":{\"load\":\"@:{'templates.generated.compat.roles.permissions.errors.load'}\",\"update\":\"@:{'templates.generated.compat.roles.permissions.errors.update'}\"},\"filtered_summary\":\"@:{'templates.generated.compat.roles.permissions.filtered_summary'}\",\"groups\":{\"access\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.groups.access.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.groups.access.label'}\"},\"bookings\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.groups.bookings.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.groups.bookings.label'}\"},\"customers_users\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.groups.customers_users.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.groups.customers_users.label'}\"},\"departments_operations\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.groups.departments_operations.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.groups.departments_operations.label'}\"},\"invoicing_economic\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.groups.invoicing_economic.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.groups.invoicing_economic.label'}\"},\"orders_pos\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.groups.orders_pos.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.groups.orders_pos.label'}\"},\"other\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.groups.other.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.groups.other.label'}\"},\"products_pricing\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.groups.products_pricing.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.groups.products_pricing.label'}\"},\"selfserve_edge\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.groups.selfserve_edge.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.groups.selfserve_edge.label'}\"},\"system_config\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.groups.system_config.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.groups.system_config.label'}\"}},\"no_description\":\"@:{'templates.generated.compat.roles.permissions.no_description'}\",\"no_search_results\":\"@:{'templates.generated.compat.roles.permissions.no_search_results'}\",\"page_access\":{\"admin\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.page_access.admin.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.page_access.admin.label'}\"},\"superuser\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.page_access.superuser.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.page_access.superuser.label'}\"},\"user\":{\"description\":\"@:{'templates.generated.compat.roles.permissions.page_access.user.description'}\",\"label\":\"@:{'templates.generated.compat.roles.permissions.page_access.user.label'}\"}},\"search_label\":\"@:{'templates.generated.compat.roles.permissions.search_label'}\",\"search_placeholder\":\"@:{'templates.generated.compat.roles.permissions.search_placeholder'}\",\"selected_summary\":\"@:{'templates.generated.compat.roles.permissions.selected_summary'}\",\"status\":{\"disabled\":\"@:{'templates.generated.compat.roles.permissions.status.disabled'}\",\"enabled\":\"@:{'templates.generated.compat.roles.permissions.status.enabled'}\"},\"subtitle\":\"@:{'templates.generated.compat.roles.permissions.subtitle'}\",\"title\":\"@:{'templates.generated.compat.roles.permissions.title'}\",\"title_with_name\":\"@:{'templates.generated.compat.roles.permissions.title_with_name'}\"},\"templates\":{\"apply\":\"@:{'templates.generated.compat.roles.templates.apply'}\",\"confirm_button\":\"@:{'templates.generated.compat.roles.templates.confirm_button'}\",\"confirm_text\":\"@:{'templates.generated.compat.roles.templates.confirm_text'}\",\"confirm_title\":\"@:{'templates.generated.compat.roles.templates.confirm_title'}\",\"error_text\":\"@:{'templates.generated.compat.roles.templates.error_text'}\",\"error_title\":\"@:{'templates.generated.compat.roles.templates.error_title'}\",\"load_error\":\"@:{'templates.generated.compat.roles.templates.load_error'}\",\"loading\":\"@:{'templates.generated.compat.roles.templates.loading'}\",\"section\":\"@:{'templates.generated.compat.roles.templates.section'}\",\"success_text\":\"@:{'templates.generated.compat.roles.templates.success_text'}\",\"success_title\":\"@:{'templates.generated.compat.roles.templates.success_title'}\",\"unavailable\":\"@:{'templates.generated.compat.roles.templates.unavailable'}\",\"up_to_date_text\":\"@:{'templates.generated.compat.roles.templates.up_to_date_text'}\",\"up_to_date_title\":\"@:{'templates.generated.compat.roles.templates.up_to_date_title'}\"},\"subtitle\":\"@:{'templates.generated.compat.roles.subtitle'}\",\"title\":\"@:{'templates.generated.compat.common.roles'}\"},\"security\":{\"actions\":{\"acknowledge\":\"Acknowledge\",\"add_note\":\"Add note\",\"clear\":\"Clear\",\"create\":\"Create\",\"delete\":\"Delete\",\"disable\":\"Disable\",\"edit\":\"Edit\",\"enable\":\"Enable\",\"false_positive\":\"False positive\",\"open_incidents\":\"Open incidents\",\"refresh\":\"Refresh\",\"reopen\":\"Reopen\",\"resolve\":\"Resolve\",\"save\":\"Save\",\"search\":\"Search\",\"update\":\"Update\"},\"empty_value\":\"--\",\"errors\":{\"generic\":\"Unable to load security controls.\"},\"firewall\":{\"action\":\"Action\",\"actions\":{\"allow\":\"Allow\",\"block\":\"Block\",\"watch\":\"Watch\"},\"confirm_delete\":\"Delete this firewall rule?\",\"disabled\":\"Disabled\",\"empty\":\"No firewall rules found.\",\"enabled\":\"Enabled\",\"expires_at\":\"Expires at\",\"management\":\"Firewall management\",\"priority\":\"Priority\",\"reason\":\"Reason\",\"route_pattern\":\"Route pattern\",\"target\":\"Target\",\"target_type\":\"Target type\",\"target_types\":{\"cidr\":\"CIDR\",\"customer\":\"Customer\",\"ip\":\"IP address\",\"route\":\"Route\",\"user\":\"User\"},\"target_value\":\"Target value\",\"title\":\"Security firewall\"},\"incidents\":{\"add_note\":\"Add note\",\"customer_number\":\"Customer number\",\"empty\":\"No security incidents found.\",\"management\":\"Incident management\",\"no_notes\":\"No notes have been added.\",\"note_placeholder\":\"Add investigation notes or resolution context\",\"notes\":\"Notes\",\"route\":\"Route\",\"search\":\"Search incidents\",\"select_prompt\":\"Select an incident to inspect details.\",\"source_ip\":\"Source IP\",\"status_filter\":\"Status\",\"title\":\"Security incidents\",\"type\":\"Type\"},\"loading\":\"Loading security controls...\",\"messages\":{\"firewall_created\":\"Firewall rule created.\",\"firewall_deleted\":\"Firewall rule deleted.\",\"firewall_updated\":\"Firewall rule updated.\",\"incident_updated\":\"Incident updated.\",\"note_added\":\"Incident note added.\",\"settings_saved\":\"Security settings saved.\"},\"metrics\":{\"acknowledged_incidents\":\"Acknowledged incidents\",\"active_firewall_rules\":\"Active firewall rules\",\"block_rules\":\"Block rules\",\"open_incidents\":\"Open incidents\"},\"nav\":\"Security\",\"overview\":{\"recent_incidents\":\"Recent incidents\",\"title\":\"Security overview\"},\"rule_descriptions\":{\"bookings_created\":\"Observe high booking creation volume for a customer.\",\"failed_login_attempts\":\"Observe repeated failed sign-in attempts for the same principal.\",\"requests_per_customer\":\"Observe high API request volume for one customer context.\",\"requests_per_ip\":\"Observe high API request volume from one source IP.\",\"vehicles_created\":\"Observe high vehicle creation volume for a customer.\"},\"rules\":{\"bookings_created\":\"Max bookings\",\"failed_login_attempts\":\"Max failed login attempts\",\"requests_per_customer\":\"Max requests per customer\",\"requests_per_ip\":\"Max requests per IP\",\"vehicles_created\":\"Max vehicle creations\"},\"settings\":{\"enabled\":\"Enabled\",\"exemptions\":\"Permission node exemptions\",\"exemptions_placeholder\":\"permission_a, permission_b\",\"management\":\"Security settings\",\"observe_mode\":\"Observe mode\",\"threshold\":\"Maximum\",\"title\":\"Security settings\",\"window_seconds\":\"Window seconds\"},\"status\":{\"acknowledged\":\"Acknowledged\",\"all\":\"All\",\"false_positive\":\"False positive\",\"open\":\"Open\",\"resolved\":\"Resolved\"},\"subtitle\":\"Application firewall rules, observe-mode thresholds, permission exemptions, and incident handling.\",\"table\":{\"actions\":\"Actions\",\"count\":\"Count\",\"last_seen\":\"Last seen\",\"severity\":\"Severity\",\"status\":\"Status\",\"title\":\"Title\"},\"tabs\":{\"firewall\":\"Firewall\",\"incidents\":\"Incidents\",\"overview\":\"Overview\",\"settings\":\"Settings\"},\"title\":\"System security\"},\"self_wash\":{\"add_as_new_vehicle\":\"@:{'templates.generated.compat.self_wash.add_as_new_vehicle'}\",\"answer_questions\":\"@:{'templates.generated.compat.self_wash.answer_questions'}\",\"assistance\":\"@:{'templates.generated.compat.self_wash.assistance'}\",\"attached_file\":\"@:modals.attached_file\",\"available\":\"@:{'templates.generated.compat.self_wash.available'}\",\"configure_wash\":\"@:{'templates.generated.compat.self_wash.configure_wash'}\",\"confirm_and_start\":\"@:{'templates.generated.compat.self_wash.confirm_and_start'}\",\"customer_number\":\"@:global.customer_number\",\"department_no_self_wash_in_staffed_hours\":\"@:{'templates.generated.compat.self_wash.department_no_self_wash_in_staffed_hours'}\",\"department_no_self_wash\":\"@:{'templates.generated.compat.self_wash.department_no_self_wash'}\",\"enter_customer_number\":\"@:{'templates.generated.compat.self_wash.enter_customer_number'}\",\"enter_registration_number\":\"@:{'templates.generated.compat.self_wash.enter_registration_number'}\",\"finishing_wash_exit_opening\":\"@:{'templates.generated.compat.self_wash.finishing_wash_exit_opening'}\",\"follow_steps\":\"@:{'templates.generated.compat.self_wash.follow_steps'}\",\"lane\":\"@:modals.lane\",\"loading_data\":\"@:pagination.loading\",\"loading_department\":\"@:{'templates.generated.compat.self_wash.loading_department'}\",\"loading_types\":\"@:{'templates.generated.compat.self_wash.loading_types'}\",\"loading_vehicle_types\":\"@:{'templates.generated.compat.self_wash.loading_vehicle_types'}\",\"lane_unavailable\":\"@:{'templates.generated.compat.self_wash.lane_unavailable'}\",\"machine\":\"@:{'templates.generated.compat.self_wash.machine'}\",\"no_departments_found\":\"@:{'templates.generated.compat.self_wash.no_departments_found'}\",\"no_vehicles_found\":\"@:vehicles.no_vehicles\",\"occupied\":\"@:{'templates.generated.compat.self_wash.occupied'}\",\"open_property_access_gate\":\"@:{'templates.generated.compat.self_wash.open_property_access_gate'}\",\"open_property_exit_gate\":\"@:{'templates.generated.compat.self_wash.open_property_exit_gate'}\",\"perform_wash\":\"@:{'templates.generated.compat.self_wash.perform_wash'}\",\"questions_answered\":\"@:{'templates.generated.compat.self_wash.questions_answered'}\",\"registration_number\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"select_from_vehicles\":\"@:{'templates.generated.compat.self_wash.select_from_vehicles'}\",\"select_vehicle_type\":\"@:{'templates.generated.compat.self_wash.select_vehicle_type'}\",\"select_vehicle\":\"@:{'templates.generated.compat.self_wash.select_vehicle'}\",\"select_your_vehicle\":\"@:{'templates.generated.compat.self_wash.select_your_vehicle'}\",\"start_machine\":\"@:{'templates.generated.compat.self_wash.start_machine'}\",\"start_wash\":\"@:{'templates.generated.compat.self_wash.start_wash'}\",\"total_time\":\"@:{'templates.generated.compat.self_wash.total_time'}\",\"unavailable\":\"@:{'templates.generated.compat.self_wash.unavailable'}\",\"vehicle_step_missing_customer_number\":\"@:{'templates.generated.compat.self_wash.vehicle_step_missing_customer_number'}\",\"vehicle_step_missing_department\":\"@:{'templates.generated.compat.self_wash.vehicle_step_missing_department'}\",\"vehicle_step_missing_registration\":\"@:{'templates.generated.compat.self_wash.vehicle_step_missing_registration'}\",\"vehicle_step_missing_vehicle_type\":\"@:{'templates.generated.compat.self_wash.vehicle_step_missing_vehicle_type'}\",\"vehicle_type\":\"@:{'templates.generated.compat.products.form.vehicle_type'}\",\"vehicle\":\"@:common.vehicle\",\"wash_completed_contact\":\"@:{'templates.generated.compat.self_wash.wash_completed_contact'}\",\"wash_completed_message\":\"@:{'templates.generated.compat.self_wash.wash_completed_message'}\",\"wash_completed\":\"@:{'templates.generated.compat.self_wash.wash_completed'}\",\"wash_in_progress\":\"@:{'templates.generated.compat.self_wash.wash_in_progress'}\",\"wash_lane\":\"@:global.lane\"},\"settings\":{\"appearance\":\"@:{'templates.generated.compat.settings.appearance'}\",\"billing\":\"@:{'templates.generated.compat.settings.billing'}\",\"change_password\":\"@:{'templates.generated.compat.settings.change_password'}\",\"confirm_password\":\"@:{'templates.generated.compat.settings.confirm_password'}\",\"currency\":{\"label\":\"@:user_admin.currency\"},\"current_password\":\"@:{'templates.generated.compat.settings.current_password'}\",\"date_format\":\"@:{'templates.generated.compat.settings.date_format'}\",\"disable\":\"@:{'templates.generated.compat.settings.disable'}\",\"discard_changes\":\"@:{'templates.generated.compat.settings.discard_changes'}\",\"email_notifications\":\"@:{'templates.generated.compat.settings.email_notifications'}\",\"enable\":\"@:{'templates.generated.compat.settings.enable'}\",\"general\":\"@:{'templates.generated.compat.settings.general'}\",\"integrations\":\"@:{'templates.generated.compat.settings.integrations'}\",\"language\":\"@:common.language\",\"new_password\":\"@:{'templates.generated.compat.settings.new_password'}\",\"notifications\":\"@:{'templates.generated.compat.settings.notifications'}\",\"password_change\":{\"confirm_password\":\"@:{'templates.generated.compat.settings.password_change.confirm_password'}\",\"current_password\":\"@:{'templates.generated.compat.settings.password_change.current_password'}\",\"new_password\":\"@:{'templates.generated.compat.password_reset.new_password'}\",\"submit\":\"@:{'templates.generated.compat.global.edit'}\",\"title\":\"@:{'templates.generated.compat.global.edit'}\"},\"profile_update\":{\"email\":\"@:common.email\",\"phone\":\"@:common.phone\"},\"profile\":\"@:common.profile\",\"push_notifications\":\"@:{'templates.generated.compat.settings.push_notifications'}\",\"save_changes\":\"@:{'templates.generated.compat.settings.save_changes'}\",\"section\":{\"password\":\"@:{'templates.generated.compat.settings.section.password'}\",\"profile\":\"@:common.profile\",\"subscription\":\"@:{'templates.generated.compat.settings.section.subscription'}\"},\"security\":\"@:{'templates.generated.compat.settings.security'}\",\"sms_notifications\":\"@:{'templates.generated.compat.settings.sms_notifications'}\",\"subscription\":{\"expires_at\":\"@:{'templates.generated.compat.settings.subscription.expires_at'}\"},\"theme\":\"@:{'templates.generated.compat.settings.theme'}\",\"time_format\":\"@:{'templates.generated.compat.settings.time_format'}\",\"timezone\":\"@:{'templates.generated.compat.settings.timezone'}\",\"title\":\"@:common.settings\",\"two_factor\":\"@:{'templates.generated.compat.settings.two_factor'}\"},\"statistics\":{\"average\":\"@:{'templates.generated.compat.statistics.average'}\",\"avg_revenue_per_wash\":\"@:{'templates.generated.compat.statistics.avg_revenue_per_wash'}\",\"avg_wash_time\":\"@:{'templates.generated.compat.statistics.avg_wash_time'}\",\"bookings\":\"@:{'templates.generated.compat.common.bookings'}\",\"chart\":{\"revenue_over_time\":\"@:{'templates.generated.compat.statistics.chart.revenue_over_time'}\",\"washes_over_time\":\"@:{'templates.generated.compat.statistics.chart.washes_over_time'}\"},\"compare\":\"@:{'templates.generated.compat.statistics.compare'}\",\"customer_types\":\"@:{'templates.generated.compat.statistics.customer_types'}\",\"customers\":\"@:global.customers\",\"day\":\"@:{'templates.generated.compat.statistics.day'}\",\"days\":\"@:{'templates.generated.compat.statistics.days'}\",\"export\":\"@:{'templates.generated.compat.modals.export'}\",\"growth\":\"@:{'templates.generated.compat.statistics.growth'}\",\"no_data\":\"@:{'templates.generated.compat.statistics.no_data'}\",\"none\":\"@:{'templates.generated.compat.common.none'}\",\"orders\":\"@:common.orders\",\"overview\":{\"departments_today\":\"@:{'templates.generated.compat.statistics.overview.departments_today'}\",\"departments_today_desc\":\"@:{'templates.generated.compat.statistics.overview.departments_today_desc'}\",\"last_month\":\"@:global.text.last_month\",\"no_departments\":\"@:{'templates.generated.compat.statistics.overview.no_departments'}\",\"subtitle\":\"@:{'templates.generated.compat.statistics.overview.subtitle'}\",\"this_year\":\"@:global.text.this_year\",\"title\":\"@:{'templates.generated.compat.nav.overview'}\",\"today\":\"@:common.today\",\"yesterday\":\"@:{'templates.generated.compat.global.text.yesterday'}\"},\"period\":{\"day\":\"@:calendar.day\",\"month\":\"@:{'templates.generated.compat.global.month'}\",\"week\":\"@:{'templates.generated.compat.calendar.week'}\",\"year\":\"@:common.year\"},\"popular_products\":\"@:{'templates.generated.compat.statistics.popular_products'}\",\"popular_times\":\"@:{'templates.generated.compat.statistics.popular_times'}\",\"revenue\":\"@:{'templates.generated.compat.statistics.revenue'}\",\"subtitle\":\"@:{'templates.generated.compat.statistics.subtitle'}\",\"sum\":\"@:{'templates.generated.compat.statistics.sum'}\",\"table\":\"@:{'templates.generated.compat.statistics.table'}\",\"this_month\":\"@:global.text.this_month\",\"this_week\":\"@:global.text.this_week\",\"this_year\":\"@:{'templates.generated.compat.time.this_year'}\",\"title\":\"@:global.statistics\",\"today\":\"@:{'templates.generated.compat.time.today'}\",\"top_customers_by_revenue\":\"@:{'templates.generated.compat.statistics.top_customers_by_revenue'}\",\"top_customers_by_washes\":\"@:{'templates.generated.compat.statistics.top_customers_by_washes'}\",\"total\":\"@:{'templates.generated.compat.global.total'}\",\"vehicle_types\":\"@:{'templates.generated.compat.statistics.vehicle_types'}\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"washes\":\"@:{'templates.generated.compat.statistics.washes'}\"},\"super_user_dashboard\":{\"create_department\":\"@:{'templates.generated.compat.super_user_dashboard.create_department'}\",\"create_number_plate_scan\":\"@:{'templates.generated.compat.super_user_dashboard.create_number_plate_scan'}\",\"create_order_booking\":\"@:{'templates.generated.compat.super_user_dashboard.create_order_booking'}\",\"create_order\":\"@:{'templates.generated.compat.super_user_dashboard.create_order'}\",\"create_product\":\"@:{'templates.generated.compat.super_user_dashboard.create_product'}\",\"create_user_discount\":\"@:{'templates.generated.compat.header.customer_creation_discount'}\",\"create_user\":\"@:{'templates.generated.compat.header.customer_creation'}\",\"get_department_list\":\"@:{'templates.generated.compat.super_user_dashboard.get_department_list'}\",\"get_orders\":\"@:{'templates.generated.compat.super_user_dashboard.get_orders'}\",\"get_products\":\"@:configuration.stripe.get_products\",\"get_session_data\":\"@:{'templates.generated.compat.super_user_dashboard.get_session_data'}\",\"get_user_list\":\"@:{'templates.generated.compat.super_user_dashboard.get_user_list'}\",\"run_cron\":\"@:{'templates.generated.compat.super_user_dashboard.run_cron'}\",\"title\":\"@:{'templates.generated.compat.super_user_dashboard.title'}\"},\"superuser_dashboard\":{\"bookings\":{\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.bookings.subtitle'}\",\"title\":\"@:{'templates.generated.compat.common.bookings'}\"},\"calendar\":{\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.calendar.subtitle'}\",\"title\":\"@:superuser_dashboard.menu.calendar\"},\"configuration\":{\"backups\":\"@:{'templates.generated.compat.superuser_dashboard.configuration.backups'}\",\"economic\":\"@:{'templates.generated.compat.superuser_dashboard.configuration.economic'}\",\"email\":\"@:{'templates.generated.compat.objects.columns.email'}\",\"fxrates\":\"@:{'templates.generated.compat.superuser_dashboard.configuration.fxrates'}\",\"limble\":\"@:{'templates.generated.compat.superuser_dashboard.configuration.limble'}\",\"mailersend\":\"@:{'templates.generated.compat.superuser_dashboard.configuration.mailersend'}\",\"motor_api\":\"@:{'templates.generated.compat.superuser_dashboard.configuration.motor_api'}\",\"shelly\":\"@:system_status.modules.shelly\",\"stripe\":\"@:system_status.modules.stripe\",\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.configuration.subtitle'}\",\"title\":\"@:{'templates.generated.compat.objects.columns.config'}\",\"virkdata\":\"@:{'templates.generated.compat.superuser_dashboard.configuration.virkdata'}\",\"xlvask\":\"@:{'templates.generated.compat.superuser_dashboard.sidebar.xlvask'}\"},\"customers\":{\"edit_customer_title\":\"@:{'templates.generated.compat.superuser_dashboard.customers.edit_customer_title'}\",\"new_customer_subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.customers.new_customer_subtitle'}\",\"new_customer_title\":\"@:{'templates.generated.compat.superuser_dashboard.customers.new_customer_title'}\",\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.customers.subtitle'}\",\"title\":\"@:global.customers\"},\"departments\":{\"add\":\"@:{'templates.generated.compat.superuser_dashboard.departments.add'}\",\"delete\":\"@:{'templates.generated.compat.superuser_dashboard.departments.delete'}\",\"edit\":\"@:{'templates.generated.compat.superuser_dashboard.departments.edit'}\",\"edit_department_title\":\"@:departments.edit_department\",\"new_department_subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.departments.new_department_subtitle'}\",\"new_department_title\":\"@:departments.new_department\",\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.departments.subtitle'}\",\"title\":\"@:common.departments\"},\"department_navigation\":{\"overview\":\"Overview\",\"modules\":\"Modules\",\"branding\":\"Profile & Branding\",\"gateways\":\"@.capitalize:{'words.generated.gateways'}\",\"stripe\":\"@:{'words.generated.stripe'}\",\"pricing\":\"Pricing\",\"customer_pricing\":\"@:departments.customer_pricing.title\",\"employees\":\"Employees\",\"categories\":\"Categories\"},\"department_pages\":{\"branding\":{\"subtitle\":\"Brand identity, contact details, and department profile\"},\"categories\":{\"subtitle\":\"Browse and maintain the department's category catalogue\"},\"gateways\":{\"subtitle\":\"Gateway coverage, lane bindings, scanners, and relay health\"},\"modules\":{\"subtitle\":\"Toggle department-wide module settings and integration flags\",\"variables\":{\"bookingsystem_enabled\":\"Bookingsystem enabled\",\"bookingsystem_time_based_enabled\":\"Time-based bookingsystem enabled\",\"bookingsystem_time_based_password\":\"Time-based bookingsystem password\",\"exclude_from_invoicing\":\"Excluded from invoicing\",\"workfeed_department_id\":\"Workfeed department\"}},\"pricing\":{\"subtitle\":\"Review the department's explicit price overrides\"},\"customer_pricing\":{\"subtitle\":\"Maintain customer-specific prices and discounts for this department\"},\"employees\":{\"subtitle\":\"Manage limited-backoffice employees and department access\"},\"stripe\":{\"readers\":{\"subtitle\":\"Payment terminals currently associated with this department\"},\"setup\":{\"subtitle\":\"Assign the Stripe location used by this department\"}}},\"department_overview\":{\"title\":\"Department overview\",\"subtitle\":\"Operational overview for the selected department\",\"loading\":\"Loading department overview\",\"date_from\":\"From\",\"date_to\":\"To\",\"range_label\":\"{from} to {to}\",\"empty_value\":\"-\",\"out_of\":\"of {total}\",\"presets\":{\"today\":\"Today\",\"last_seven_days\":\"Last 7 days\"},\"metrics\":{\"bookings\":\"Bookings\",\"complaints\":\"Complaints\",\"night_washes\":\"Night washes\",\"overtime\":\"Overtime\",\"products_sold\":\"Products sold\",\"revenue\":\"Revenue\",\"transactions\":\"Transactions\",\"washes\":\"Washes\",\"water_usage\":\"Water\"},\"units\":{\"hours\":\"h\",\"liters\":\"L\"},\"products\":{\"title\":\"Product mix\",\"subtitle\":\"Tracked wash products in the selected period\",\"empty\":\"No product activity for the selected period\"},\"profile\":{\"title\":\"Department profile\",\"no_description\":\"No department description\",\"department_id\":\"Department ID\",\"economic_department_id\":\"Economic department\",\"branding\":\"Branding\",\"created_at\":\"@:common.created\",\"updated_at\":\"Updated\"},\"hardware\":{\"title\":\"Hardware readiness\",\"subtitle\":\"Gateway-backed lane and relay state\",\"gateways\":\"Gateways online\",\"lanes\":\"Lanes\",\"gates\":\"Gates\",\"relays\":\"Relays\",\"scanners\":\"Scanners\",\"issues\":\"Issues\"},\"quick_links\":{\"title\":\"Department tools\",\"subtitle\":\"Open the focused setup areas for this department\",\"modules\":\"@:superuser_dashboard.department_navigation.modules\",\"branding\":\"@:superuser_dashboard.department_overview.profile.branding\",\"gateways\":\"@:superuser_dashboard.department_navigation.gateways\",\"stripe\":\"@:superuser_dashboard.department_navigation.stripe\",\"pricing\":\"@:superuser_dashboard.department_navigation.pricing\",\"employees\":\"@:superuser_dashboard.department_navigation.employees\",\"categories\":\"@:superuser_dashboard.department_navigation.categories\"},\"errors\":{\"invalid_department\":\"A valid department is required\",\"load\":\"Unable to load the department overview\"}},\"employees\":{\"edit_employee_title\":\"@:employees.edit_employee\",\"new_employee_subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.employees.new_employee_subtitle'}\",\"new_employee_title\":\"@:employees.new_employee\",\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.employees.subtitle'}\",\"title\":\"@:superuser.nav.employees\"},\"home\":{\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.home.subtitle'}\",\"title\":\"@:{'templates.generated.compat.superuser_dashboard.home.title'}\"},\"invoices\":{\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.invoices.subtitle'}\",\"title\":\"@:common.invoices\"},\"menu\":{\"bookings\":\"@:{'templates.generated.compat.common.bookings'}\",\"calendar\":\"@:{'templates.generated.compat.superuser_dashboard.menu.calendar'}\",\"customers\":\"@:global.customers\",\"departments\":\"@:{'templates.generated.compat.departments.title'}\",\"employees\":\"@:superuser.nav.employees\",\"home\":\"@:{'templates.generated.compat.global.home'}\",\"invoices\":\"@:common.invoices\",\"pos\":\"@:{'templates.generated.compat.superuser_dashboard.menu.pos'}\",\"products\":\"@:common.products\",\"settings\":\"@:{'templates.generated.compat.admin.pos.settings'}\",\"statistics\":\"@:{'templates.generated.compat.user_dashboard.menu.statistics'}\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"wash_log\":\"@:{'templates.generated.compat.common.bookings'}\"},\"nav\":{\"categories\":\"@:superuser.nav.categories\",\"complaints\":\"@:superuser.nav.complaints\",\"configuration\":\"@:global.configuration\",\"customers\":\"@:global.customers\",\"dashboard\":\"@:{'templates.generated.compat.departments.dashboard'}\",\"department_lanes\":\"@:superuser.nav.department_lanes\",\"departments\":\"@:common.departments\",\"employees\":\"@:superuser.nav.employees\",\"invoices\":\"@:common.invoices\",\"invoicing\":\"@:{'templates.generated.compat.superuser.nav.invoicing'}\",\"orders\":\"@:superuser.nav.orders\",\"other\":\"@:{'templates.generated.compat.user_admin.other'}\",\"products\":\"@:common.products\",\"roles\":\"@:superuser.nav.roles\",\"scanners\":\"@:superuser.nav.scanners\",\"statistics\":\"@:global.statistics\",\"transaction_history\":\"@:superuser.nav.orders\",\"users\":\"@:{'templates.generated.compat.common.user'}\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"xlvask\":\"@:superuser.nav.xlvask\"},\"products\":{\"actions\":\"@:{'templates.generated.compat.tables.actions'}\",\"add\":\"@:{'templates.generated.compat.superuser_dashboard.products.add'}\",\"addons_subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.products.addons_subtitle'}\",\"addons_title\":\"@:departments.tab.product_addons\",\"addons\":{\"add\":\"@:{'templates.generated.compat.superuser_dashboard.products.addons.add'}\",\"delete\":\"@:{'templates.generated.compat.superuser_dashboard.products.addons.delete'}\",\"edit\":\"@:{'templates.generated.compat.superuser_dashboard.products.addons.edit'}\",\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.products.addons.subtitle'}\",\"title\":\"@:{'templates.generated.compat.common.addons'}\"},\"category\":\"@:tables.common.category\",\"delete\":\"@:{'templates.generated.compat.superuser_dashboard.products.delete'}\",\"edit\":\"@:{'templates.generated.compat.configuration.products.edit'}\",\"edit_product\":\"@:products.edit_product\",\"name\":\"@:common.name\",\"new_addon\":\"@:departments.addons.new_addon\",\"new_product\":\"@:products.new_product\",\"price\":\"@:common.price\",\"status\":\"@:common.status\",\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.products.subtitle'}\",\"title\":\"@:common.products\"},\"roles\":{\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.roles.subtitle'}\",\"title\":\"@:{'templates.generated.compat.common.roles'}\"},\"settings\":{\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.settings.subtitle'}\",\"title\":\"@:common.settings\"},\"sidebar\":{\"billing_periods\":\"@:{'templates.generated.compat.superuser_dashboard.sidebar.billing_periods'}\",\"configuration\":\"@:{'templates.generated.compat.objects.columns.config'}\",\"departments\":\"@:common.departments\",\"home\":\"@:{'templates.generated.compat.global.home'}\",\"invoices\":\"@:common.invoices\",\"products\":\"@:common.products\",\"roles\":\"@:{'templates.generated.compat.common.roles'}\",\"settings\":\"@:common.settings\",\"statistics\":\"@:global.statistics\",\"users\":\"@:{'templates.generated.compat.common.user'}\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"xlvask\":\"@:{'templates.generated.compat.superuser_dashboard.sidebar.xlvask'}\"},\"statistics\":{\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.statistics.subtitle'}\",\"title\":\"@:global.statistics\"},\"users\":{\"actions\":\"@:{'templates.generated.compat.tables.actions'}\",\"active\":\"@:{'templates.generated.compat.system_status.table.active'}\",\"add\":\"@:{'templates.generated.compat.superuser_dashboard.users.add'}\",\"delete\":\"@:{'templates.generated.compat.superuser_dashboard.users.delete'}\",\"edit\":\"@:{'templates.generated.compat.superuser_dashboard.users.edit'}\",\"email\":\"@:{'templates.generated.compat.objects.columns.email'}\",\"inactive\":\"@:{'templates.generated.compat.replication.roles.inactive'}\",\"name\":\"@:{'templates.generated.compat.tables.common.name'}\",\"role\":\"@:{'templates.generated.compat.common.roles'}\",\"search\":\"@:{'templates.generated.compat.global.search_user'}\",\"status\":\"@:common.status\",\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.users.subtitle'}\",\"title\":\"@:{'templates.generated.compat.common.user'}\"},\"vehicles\":{\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.vehicles.subtitle'}\",\"title\":\"@:{'templates.generated.compat.common.vehicles'}\"},\"wash_log\":{\"subtitle\":\"@:{'templates.generated.compat.superuser_dashboard.wash_log.subtitle'}\",\"title\":\"@:{'templates.generated.compat.common.bookings'}\"}},\"superuser_invoice_distribution\":{\"actions\":{\"close\":\"@:{'templates.generated.compat.configuration.workfeed.close'}\",\"next_month\":\"@:{'templates.generated.compat.superuser_invoice_distribution.actions.next_month'}\",\"open_month\":\"@:{'templates.generated.compat.superuser_invoice_distribution.actions.open_month'}\",\"previous_month\":\"@:{'templates.generated.compat.superuser_invoice_distribution.actions.previous_month'}\",\"reload\":\"@:{'templates.generated.compat.pagination.reload'}\",\"reset_filters\":\"@:{'templates.generated.compat.superuser_invoice_distribution.actions.reset_filters'}\",\"try_again\":\"@:common.retry\"},\"aria\":{\"compare_table_caption\":\"@:{'templates.generated.compat.superuser_invoice_distribution.aria.compare_table_caption'}\",\"customer_table_caption\":\"@:{'templates.generated.compat.superuser_invoice_distribution.aria.customer_table_caption'}\",\"department_table_caption\":\"@:{'templates.generated.compat.superuser_invoice_distribution.aria.department_table_caption'}\",\"month_comparison_caption\":\"@:{'templates.generated.compat.superuser_invoice_distribution.aria.month_comparison_caption'}\",\"month_table_caption\":\"@:{'templates.generated.compat.superuser_invoice_distribution.aria.month_table_caption'}\",\"open_month\":\"@:{'templates.generated.compat.superuser_invoice_distribution.aria.open_month'}\",\"sort_month\":\"@:{'templates.generated.compat.superuser_invoice_distribution.aria.sort_month'}\",\"sort_total\":\"@:{'templates.generated.compat.superuser_invoice_distribution.aria.sort_total'}\",\"source_mix_row\":\"@:{'templates.generated.compat.superuser_invoice_distribution.aria.source_mix_row'}\",\"trend_chart\":\"@:{'templates.generated.compat.superuser_invoice_distribution.aria.trend_chart'}\"},\"compare\":{\"compare_month\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.compare_month'}\",\"line_mode_disclaimer\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.line_mode_disclaimer'}\",\"mismatches\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.mismatches'}\",\"mode\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.mode'}\",\"modes\":{\"invoice_total\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.modes.invoice_total'}\",\"line_by_line\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.modes.line_by_line'}\"},\"month_to_month\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.month_to_month'}\",\"progress\":\"@:{'templates.generated.compat.common.processing'}\",\"run\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.run'}\",\"run_short\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.run_short'}\",\"sorted_hint\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.sorted_hint'}\",\"status_label\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.status_label'}\",\"status\":{\"mismatch\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.status.mismatch'}\",\"ok\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.status.ok'}\"},\"total_checked\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.total_checked'}\",\"total_difference\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.total_difference'}\",\"warning_details\":\"@:{'templates.generated.compat.superuser_invoice_distribution.compare.warning_details'}\",\"warnings\":\"@:{'templates.generated.compat.system_status.labels.warnings'}\"},\"departments\":{\"allocation_hint\":\"@:{'templates.generated.compat.superuser_invoice_distribution.departments.allocation_hint'}\",\"rows\":\"@:{'templates.generated.compat.departments.title'}\"},\"empty\":{\"no_compare_results\":\"@:{'templates.generated.compat.superuser_invoice_distribution.empty.no_compare_results'}\",\"no_comparison_months\":\"@:{'templates.generated.compat.superuser_invoice_distribution.empty.no_comparison_months'}\",\"no_customers\":\"@:{'templates.generated.compat.superuser_invoice_distribution.empty.no_customers'}\",\"no_departments\":\"@:{'templates.generated.compat.superuser_invoice_distribution.empty.no_departments'}\",\"no_month_comparison\":\"@:{'templates.generated.compat.superuser_invoice_distribution.empty.no_month_comparison'}\",\"no_months\":\"@:{'templates.generated.compat.superuser_invoice_distribution.empty.no_months'}\"},\"errors\":{\"compare_failed\":\"@:{'templates.generated.compat.superuser_invoice_distribution.errors.compare_failed'}\",\"month_load_failed\":\"@:{'templates.generated.compat.superuser_invoice_distribution.errors.month_load_failed'}\",\"overview_load_failed\":\"@:{'templates.generated.compat.superuser_invoice_distribution.errors.overview_load_failed'}\"},\"filters\":{\"all_departments\":\"@:{'templates.generated.compat.superuser_invoice_distribution.filters.all_departments'}\",\"all_sources\":\"@:{'templates.generated.compat.superuser_invoice_distribution.filters.all_sources'}\",\"all_years\":\"@:{'templates.generated.compat.superuser_invoice_distribution.filters.all_years'}\",\"department\":\"@:{'templates.generated.compat.common.department'}\",\"search\":\"@:{'templates.generated.compat.superuser_invoice_distribution.filters.search'}\",\"search_customer\":\"@:{'templates.generated.compat.superuser_invoice_distribution.filters.search_customer'}\",\"search_customer_placeholder\":\"@:{'templates.generated.compat.superuser_invoice_distribution.filters.search_customer_placeholder'}\",\"search_department\":\"@:{'templates.generated.compat.superuser_invoice_distribution.filters.search_department'}\",\"search_department_placeholder\":\"@:{'templates.generated.compat.superuser_invoice_distribution.filters.search_department_placeholder'}\",\"search_placeholder\":\"@:{'templates.generated.compat.superuser_invoice_distribution.filters.search_placeholder'}\",\"source\":\"@:global_search.meta.intent.source\",\"year\":\"@:{'templates.generated.compat.common.are'}\"},\"loading\":{\"loading_months\":\"@:{'templates.generated.compat.superuser_invoice_distribution.loading.loading_months'}\"},\"metrics\":{\"booked\":\"@:{'templates.generated.compat.superuser_invoice_distribution.metrics.booked'}\",\"customer_prices\":\"@:superuser_invoice_distribution.table.customer_prices\",\"distribution\":\"@:{'templates.generated.compat.superuser_invoice_distribution.metrics.distribution'}\",\"fixed_pricing\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.fixed_pricing'}\",\"months\":\"@:{'templates.generated.compat.superuser_invoice_distribution.metrics.months'}\",\"other\":\"@:{'templates.generated.compat.superuser_invoice_distribution.metrics.other'}\",\"subscriptions\":\"@:{'templates.generated.compat.superuser_invoice_distribution.metrics.subscriptions'}\",\"total\":\"@:{'templates.generated.compat.global.total'}\"},\"monthly_page\":{\"subtitle\":\"@:{'templates.generated.compat.superuser_invoice_distribution.monthly_page.subtitle'}\",\"title\":\"@:{'templates.generated.compat.superuser_invoice_distribution.monthly_page.title'}\",\"toolbar_month\":\"@:{'templates.generated.compat.superuser_invoice_distribution.monthly_page.toolbar_month'}\",\"toolbar_month_picker\":\"@:{'templates.generated.compat.superuser_invoice_distribution.monthly_page.toolbar_month_picker'}\"},\"overview\":{\"loaded_months\":\"@:{'templates.generated.compat.superuser_invoice_distribution.overview.loaded_months'}\",\"subtitle\":\"@:{'templates.generated.compat.superuser_invoice_distribution.overview.subtitle'}\",\"title\":\"@:{'templates.generated.compat.superuser_invoice_distribution.overview.title'}\"},\"sections\":{\"month_table\":\"@:{'templates.generated.compat.superuser_invoice_distribution.sections.month_table'}\",\"source_blend\":\"@:{'templates.generated.compat.superuser_invoice_distribution.sections.source_blend'}\",\"top_months\":\"@:{'templates.generated.compat.superuser_invoice_distribution.sections.top_months'}\",\"trend\":\"@:{'templates.generated.compat.superuser_invoice_distribution.sections.trend'}\"},\"tab_label\":\"@:superuser_invoice_distribution.table.distribution\",\"table\":{\"actions\":\"@:{'templates.generated.compat.tables.actions'}\",\"amount\":\"@:global.payment.amount\",\"booked\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.booked'}\",\"compared\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.compared'}\",\"current\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.current'}\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"customer_prices\":\"@:{'templates.generated.compat.common.customer_prices'}\",\"delta\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.delta'}\",\"department\":\"@:{'templates.generated.compat.common.department'}\",\"department_allocations\":\"@:{'templates.generated.compat.common.department_allocations'}\",\"distribution\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.distribution'}\",\"economic_total\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.economic_total'}\",\"estimated_booked_allocation\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.estimated_booked_allocation'}\",\"fixed_pricing\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.fixed_pricing'}\",\"internal_total\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.internal_total'}\",\"invoice_id\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.invoice_id'}\",\"metric\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.metric'}\",\"month\":\"@:{'templates.generated.compat.global.month'}\",\"share\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.share'}\",\"source\":\"@:global_search.meta.intent.source\",\"source_mix\":\"@:{'templates.generated.compat.superuser_invoice_distribution.table.source_mix'}\",\"status\":\"@:common.status\",\"subscriptions\":\"@:global.subscriptions\",\"total\":\"@:{'templates.generated.compat.global.total'}\",\"warnings\":\"@:{'templates.generated.compat.system_status.labels.warnings'}\"},\"tabs\":{\"compare\":\"@:{'templates.generated.compat.statistics.compare'}\",\"customers\":\"@:global.customers\",\"departments\":\"@:common.departments\",\"overview\":\"@:{'templates.generated.compat.nav.overview'}\"},\"tooltips\":{\"compare_mode\":\"@:{'templates.generated.compat.superuser_invoice_distribution.tooltips.compare_mode'}\",\"estimated_booked\":\"@:{'templates.generated.compat.superuser_invoice_distribution.tooltips.estimated_booked'}\",\"fixed_pricing\":\"@:{'templates.generated.compat.superuser_invoice_distribution.tooltips.fixed_pricing'}\",\"subscriptions\":\"@:{'templates.generated.compat.superuser_invoice_distribution.tooltips.subscriptions'}\",\"summary\":\"@:{'templates.generated.compat.superuser_invoice_distribution.tooltips.summary'}\"},\"warnings\":{\"legacy_compare_fallback\":\"@:{'templates.generated.compat.superuser_invoice_distribution.warnings.legacy_compare_fallback'}\",\"legacy_distribution_fallback\":\"@:{'templates.generated.compat.superuser_invoice_distribution.warnings.legacy_distribution_fallback'}\",\"legacy_distribution_month\":\"@:{'templates.generated.compat.superuser_invoice_distribution.warnings.legacy_distribution_month'}\"}},\"superuser\":{\"collected_order_invoice\":{\"and_booked\":\"@:{'templates.generated.compat.superuser.collected_order_invoice.and_booked'}\",\"and_draft\":\"@:{'templates.generated.compat.superuser.collected_order_invoice.and_draft'}\",\"but_not_booked\":\"@:{'templates.generated.compat.superuser.collected_order_invoice.but_not_booked'}\",\"in_economic\":\"@:{'templates.generated.compat.superuser.collected_order_invoice.in_economic'}\",\"invoice_booked_economic\":\"@:{'templates.generated.compat.superuser.collected_order_invoice.invoice_booked_economic'}\",\"invoice_draft_economic\":\"@:{'templates.generated.compat.superuser.collected_order_invoice.invoice_draft_economic'}\",\"invoice_paid_status\":\"@:{'templates.generated.compat.superuser.collected_order_invoice.invoice_paid_status'}\",\"no_invoice_found\":\"@:{'templates.generated.compat.superuser.collected_order_invoice.no_invoice_found'}\",\"payment_overview\":\"@:{'templates.generated.compat.superuser.collected_order_invoice.payment_overview'}\"},\"department_lane\":{\"back\":\"@:common.back\",\"force_disable_machine\":\"@:{'templates.generated.compat.superuser.department_lane.force_disable_machine'}\",\"force_disable_success\":\"@:{'templates.generated.compat.superuser.department_lane.force_disable_success'}\",\"force_enable_machine\":\"@:{'templates.generated.compat.superuser.department_lane.force_enable_machine'}\",\"force_enable_success\":\"@:{'templates.generated.compat.superuser.department_lane.force_enable_success'}\",\"force_error\":\"@:{'templates.generated.compat.superuser.department_lane.force_error'}\"},\"driver_access\":{\"advanced\":\"@:{'templates.generated.compat.superuser.driver_access.advanced'}\",\"capabilities\":{\"add_bookings\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.add_bookings'}\",\"add_vehicles\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.add_vehicles'}\",\"delete_bookings\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.delete_bookings'}\",\"delete_selfserve\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.delete_selfserve'}\",\"delete_vehicles\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.delete_vehicles'}\",\"disable_driver_access\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.disable_driver_access'}\",\"edit_bookings\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.edit_bookings'}\",\"edit_driver_access\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.edit_driver_access'}\",\"edit_orders\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.edit_orders'}\",\"edit_selfserve\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.edit_selfserve'}\",\"edit_vehicles\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.edit_vehicles'}\",\"invite_drivers\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.invite_drivers'}\",\"start_selfserve\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.start_selfserve'}\",\"view_bookings\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.view_bookings'}\",\"view_drivers\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.view_drivers'}\",\"view_orders\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.view_orders'}\",\"view_selfserve\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.view_selfserve'}\",\"view_vehicles\":\"@:{'templates.generated.compat.superuser.driver_access.capabilities.view_vehicles'}\"},\"custom_description\":\"@:{'templates.generated.compat.superuser.driver_access.custom_description'}\",\"editor_intro\":\"@:{'templates.generated.compat.superuser.driver_access.editor_intro'}\",\"editor_title\":\"@:{'templates.generated.compat.superuser.driver_access.editor_title'}\",\"empty\":\"@:{'templates.generated.compat.superuser.driver_access.empty'}\",\"form_help\":\"@:{'templates.generated.compat.superuser.driver_access.form_help'}\",\"form_label\":\"@:{'templates.generated.compat.superuser.driver_access.form_label'}\",\"groups\":{\"bookings\":\"@:{'templates.generated.compat.superuser.driver_access.groups.bookings'}\",\"driver_management\":\"@:{'templates.generated.compat.superuser.driver_access.groups.driver_management'}\",\"orders\":\"@:{'templates.generated.compat.superuser.driver_access.groups.orders'}\",\"selfserve\":\"@:{'templates.generated.compat.superuser.driver_access.groups.selfserve'}\",\"vehicles\":\"@:{'templates.generated.compat.superuser.driver_access.groups.vehicles'}\"},\"loading\":\"@:{'templates.generated.compat.superuser.driver_access.loading'}\",\"selected\":\"@:{'templates.generated.compat.superuser.driver_access.selected'}\",\"templates\":{\"booking_coordinator\":{\"description\":\"@:{'templates.generated.compat.superuser.driver_access.templates.booking_coordinator.description'}\",\"label\":\"@:{'templates.generated.compat.superuser.driver_access.templates.booking_coordinator.label'}\"},\"custom\":{\"description\":\"@:{'templates.generated.compat.superuser.driver_access.templates.custom.description'}\",\"label\":\"@:{'templates.generated.compat.superuser.driver_access.templates.custom.label'}\"},\"deactivated\":{\"description\":\"@:{'templates.generated.compat.superuser.driver_access.templates.deactivated.description'}\",\"label\":\"@:{'templates.generated.compat.superuser.driver_access.templates.deactivated.label'}\"},\"driver\":{\"description\":\"@:{'templates.generated.compat.superuser.driver_access.templates.driver.description'}\",\"label\":\"@:{'templates.generated.compat.superuser.driver_access.templates.driver.label'}\"},\"fleet_admin\":{\"description\":\"@:{'templates.generated.compat.superuser.driver_access.templates.fleet_admin.description'}\",\"label\":\"@:{'templates.generated.compat.superuser.driver_access.templates.fleet_admin.label'}\"}},\"summary\":{\"custom_summary\":\"@:{'templates.generated.compat.superuser.driver_access.summary.custom_summary'}\",\"no_permissions\":\"@:{'templates.generated.compat.superuser.driver_access.summary.no_permissions'}\",\"permission_count\":\"@:{'templates.generated.compat.superuser.driver_access.summary.permission_count'}\"}},\"driver_contact\":{\"close\":\"@:{'templates.generated.compat.superuser.driver_contact.close'}\",\"email_missing\":\"@:{'templates.generated.compat.superuser.driver_contact.email_missing'}\",\"link_not_sent_default\":\"@:{'templates.generated.compat.superuser.driver_contact.link_not_sent_default'}\",\"link_not_sent_title\":\"@:{'templates.generated.compat.superuser.driver_contact.link_not_sent_title'}\",\"link_send_failed\":\"@:{'templates.generated.compat.superuser.driver_contact.link_send_failed'}\",\"link_sent_default\":\"@:{'templates.generated.compat.superuser.driver_contact.link_sent_default'}\",\"link_sent_title\":\"@:{'templates.generated.compat.superuser.driver_contact.link_sent_title'}\",\"login_link_failed_title\":\"@:{'templates.generated.compat.superuser.driver_contact.login_link_failed_title'}\",\"login_link_not_sent_title\":\"@:{'templates.generated.compat.superuser.driver_contact.login_link_not_sent_title'}\",\"login_link_sent_title\":\"@:{'templates.generated.compat.superuser.driver_contact.login_link_sent_title'}\",\"missing\":\"@:{'templates.generated.compat.superuser.driver_contact.missing'}\",\"password_guide_failed_title\":\"@:{'templates.generated.compat.superuser.driver_contact.password_guide_failed_title'}\",\"password_guide_not_sent_title\":\"@:{'templates.generated.compat.superuser.driver_contact.password_guide_not_sent_title'}\",\"password_guide_sent_title\":\"@:{'templates.generated.compat.superuser.driver_contact.password_guide_sent_title'}\",\"phone_missing\":\"@:{'templates.generated.compat.superuser.driver_contact.phone_missing'}\",\"send_login_link\":\"@:{'templates.generated.compat.superuser.driver_contact.send_login_link'}\",\"send_password_guide\":\"@:{'templates.generated.compat.superuser.driver_contact.send_password_guide'}\",\"status\":\"@:{'templates.generated.compat.superuser.driver_contact.status'}\",\"unverified\":\"@:{'templates.generated.compat.superuser.driver_contact.unverified'}\",\"verification_update_failed\":\"@:{'templates.generated.compat.superuser.driver_contact.verification_update_failed'}\",\"verification_update_failed_title\":\"@:{'templates.generated.compat.superuser.driver_contact.verification_update_failed_title'}\",\"verified\":\"@:{'templates.generated.compat.superuser.driver_contact.verified'}\"},\"driver_wheel\":{\"access_section\":\"@:{'templates.generated.compat.superuser.driver_wheel.access_section'}\",\"account_section\":\"@:{'templates.generated.compat.superuser.driver_wheel.account_section'}\",\"contact_section\":\"@:{'templates.generated.compat.superuser.driver_wheel.contact_section'}\",\"details_section\":\"@:{'templates.generated.compat.superuser.driver_wheel.details_section'}\",\"identity_subsection\":\"@:{'templates.generated.compat.superuser.driver_wheel.identity_subsection'}\",\"system_subsection\":\"@:{'templates.generated.compat.superuser.driver_wheel.system_subsection'}\"},\"form\":{\"locked\":\"@:{'templates.generated.compat.objects.columns.suspended'}\",\"required\":\"@:{'templates.generated.compat.global.required'}\"},\"invoicing_billing_period\":{\"dashboard_right\":\"@:{'templates.generated.compat.superuser.invoicing_billing_period.dashboard_right'}\",\"fetch_period_data\":\"@:{'templates.generated.compat.superuser.invoicing_billing_period.fetch_period_data'}\"},\"nav\":{\"categories\":\"@:{'templates.generated.compat.superuser.nav.categories'}\",\"complaints\":\"@:{'templates.generated.compat.superuser.nav.complaints'}\",\"configuration\":\"@:global.configuration\",\"customers\":\"@:global.customers\",\"dashboard\":\"@:{'templates.generated.compat.departments.dashboard'}\",\"department_gates\":\"@:{'templates.generated.compat.superuser.nav.department_gates'}\",\"department_lanes\":\"@:{'templates.generated.compat.superuser.nav.department_lanes'}\",\"department_relays\":\"@:{'templates.generated.compat.superuser.nav.department_relays'}\",\"departments\":\"@:common.departments\",\"employees\":\"@:{'templates.generated.compat.common.roless.employee'}\",\"error_reports\":\"@:{'templates.generated.compat.superuser.nav.error_reports'}\",\"invoices\":\"@:common.invoices\",\"invoicing\":\"@:{'templates.generated.compat.superuser.nav.invoicing'}\",\"orders\":\"@:{'templates.generated.compat.superuser.nav.orders'}\",\"other\":\"@:{'templates.generated.compat.user_admin.other'}\",\"products\":\"@:common.products\",\"roles\":\"@:{'templates.generated.compat.superuser.nav.roles'}\",\"scanners\":\"@:{'templates.generated.compat.superuser.nav.scanners'}\",\"selfserve\":\"@:{'templates.generated.compat.user_vehicles.self_service'}\",\"statistics\":\"@:global.statistics\",\"users\":\"@:{'templates.generated.compat.common.user'}\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"xlvask\":\"@:{'templates.generated.compat.superuser.nav.xlvask'}\"},\"pages\":{\"categories\":{\"create\":\"@:{'templates.generated.compat.superuser.pages.categories.create'}\"},\"complaints\":{\"created_by_column\":\"@:{'templates.generated.compat.superuser.pages.complaints.created_by_column'}\",\"delete_message\":\"@:{'templates.generated.compat.superuser.pages.complaints.delete_message'}\",\"delete_title\":\"@:{'templates.generated.compat.superuser.pages.complaints.delete_title'}\",\"department_column\":\"@:{'templates.generated.compat.common.department'}\",\"department_filter\":\"@:{'templates.generated.compat.common.department'}\",\"edit_title\":\"@:{'templates.generated.compat.superuser.pages.complaints.edit_title'}\",\"search_placeholder\":\"@:{'templates.generated.compat.superuser.pages.complaints.search_placeholder'}\",\"single\":\"@:{'templates.generated.compat.superuser.pages.complaints.single'}\",\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.complaints.subtitle'}\",\"title\":\"@:{'templates.generated.compat.superuser.pages.complaints.title'}\"},\"customers\":{\"create\":\"@:{'templates.generated.compat.superuser.pages.customers.create'}\",\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.customers.subtitle'}\",\"title\":\"@:global.customers\"},\"department_gates\":{\"create\":\"@:{'templates.generated.compat.superuser.pages.department_gates.create'}\",\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.department_gates.subtitle'}\",\"title\":\"@:superuser.nav.department_gates\"},\"department_lanes\":{\"create\":\"@:{'templates.generated.compat.superuser.pages.department_lanes.create'}\",\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.department_lanes.subtitle'}\",\"title\":\"@:superuser.nav.department_lanes\"},\"department_relays\":{\"create\":\"@:{'templates.generated.compat.superuser.pages.department_relays.create'}\",\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.department_relays.subtitle'}\",\"title\":\"@:superuser.nav.department_relays\"},\"department_selector\":{\"placeholder\":\"@:nav.select_department\",\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.department_selector.subtitle'}\"},\"departments\":{\"create\":\"@:{'templates.generated.compat.superuser.pages.departments.create'}\",\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.departments.subtitle'}\",\"title\":\"@:common.departments\"},\"drafts_assignment\":{\"button\":\"@:admin.pos.drafts_assignment.button\",\"create_invoice_collection\":\"@:admin.pos.drafts_assignment.create_invoice_collection\",\"customer_required\":\"@:admin.pos.drafts_assignment.customer_required\",\"error\":\"@:admin.pos.drafts_assignment.error\",\"invoice_collection_empty\":\"@:admin.pos.drafts_assignment.invoice_collection_empty\",\"invoice_collection_label\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.invoice_collection_label'}\",\"invoice_collection_loading\":\"@:admin.pos.drafts_assignment.invoice_collection_loading\",\"invoice_collection_orders\":\"@:{'templates.generated.compat.common.bookings'}\",\"invoice_collection_total\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.invoice_collection_total'}\",\"new_collection_description\":\"@:admin.pos.drafts_assignment.new_collection_description\",\"new_collection_name\":\"@:admin.pos.drafts_assignment.new_collection_name\",\"recalculate_prices\":\"@:admin.pos.drafts_assignment.recalculate_prices\",\"recalculate_prices_help\":\"@:admin.pos.drafts_assignment.recalculate_prices_help\",\"search_customer_label\":\"@:{'templates.generated.compat.superuser_invoice_distribution.filters.search_customer'}\",\"search_customer_placeholder\":\"@:admin.pos.drafts_assignment.search_customer_placeholder\",\"selected_customer\":\"@:{'templates.generated.compat.admin.pos.drafts_assignment.selected_customer'}\",\"submit\":\"@:admin.pos.drafts_assignment.button\",\"subtitle\":\"@:admin.pos.drafts_assignment.subtitle\",\"success\":\"@:admin.pos.drafts_assignment.success\",\"title\":\"@:admin.pos.drafts_assignment.title\"},\"drivers\":{\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.drivers.subtitle'}\",\"title\":\"@:nav.drivers\"},\"employees\":{\"create\":\"@:{'templates.generated.compat.superuser.pages.employees.create'}\",\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.employees.subtitle'}\",\"title\":\"@:superuser.nav.employees\"},\"orders\":{\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.orders.subtitle'}\",\"title\":\"@:superuser.nav.orders\"},\"products\":{\"create\":\"@:{'templates.generated.compat.superuser.pages.products.create'}\",\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.products.subtitle'}\",\"title\":\"@:common.products\"},\"scanners\":{\"create\":\"@:{'templates.generated.compat.superuser.pages.scanners.create'}\",\"simulate_scan\":\"@:{'templates.generated.compat.superuser.pages.scanners.simulate_scan'}\",\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.scanners.subtitle'}\",\"title\":\"@:superuser.nav.scanners\"},\"subusers\":{\"subtitle\":\"@:{'templates.generated.compat.superuser.pages.subusers.subtitle'}\",\"title\":\"@:{'templates.generated.compat.superuser.pages.subusers.title'}\"}},\"statistics\":{\"error_occurred\":\"@:{'templates.generated.compat.superuser.statistics.error_occurred'}\",\"loading\":\"@:{'templates.generated.compat.messages.loading'}\"},\"user_detail\":{\"overview_header_help\":\"@:{'templates.generated.compat.superuser.user_detail.overview_header_help'}\",\"workspace_shortcuts_help\":\"@:{'templates.generated.compat.superuser.user_detail.workspace_shortcuts_help'}\",\"attribute_help\":\"@:{'templates.generated.compat.superuser.user_detail.attribute_help'}\",\"subtitles\":{\"overview\":\"@:{'templates.generated.compat.superuser.user_detail.subtitles.overview'}\",\"orders\":\"@:{'templates.generated.compat.superuser.user_detail.subtitles.orders'}\",\"pricing\":\"@:{'templates.generated.compat.superuser.user_detail.subtitles.pricing'}\",\"other\":\"@:{'templates.generated.compat.superuser.user_detail.subtitles.other'}\",\"security\":\"@:{'templates.generated.compat.superuser.user_detail.subtitles.security'}\",\"subusers\":\"@:{'templates.generated.compat.superuser.user_detail.subtitles.subusers'}\",\"vehicles\":\"@:{'templates.generated.compat.superuser.user_detail.subtitles.vehicles'}\",\"xlvask\":\"@:{'templates.generated.compat.superuser.user_detail.subtitles.xlvask'}\"},\"orders\":{\"summary_title\":\"@:{'templates.generated.compat.superuser.user_detail.orders.summary_title'}\",\"summary_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.orders.summary_subtitle'}\",\"invoicing_mode\":\"@:{'templates.generated.compat.superuser.user_detail.orders.invoicing_mode'}\",\"open_draft\":\"@:{'templates.generated.compat.superuser.user_detail.orders.open_draft'}\"},\"pricing\":{\"summary_title\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.summary_title'}\",\"summary_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.summary_subtitle'}\",\"table_title\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.table_title'}\",\"table_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.table_subtitle'}\",\"global_discount\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.global_discount'}\",\"product_overrides\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.product_overrides'}\",\"discount_percent\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.discount_percent'}\",\"fixed_price_label\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.fixed_price_label'}\",\"fixed_price_validation\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.fixed_price_validation'}\",\"category_discount_disabled\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.category_discount_disabled'}\",\"fixed_price_tooltip\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.fixed_price_tooltip'}\",\"item_discount_tooltip\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.item_discount_tooltip'}\",\"category_discount_tooltip\":\"@:{'templates.generated.compat.superuser.user_detail.pricing.category_discount_tooltip'}\"},\"other\":{\"summary_title\":\"@:{'templates.generated.compat.superuser.user_detail.other.summary_title'}\",\"summary_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.other.summary_subtitle'}\"},\"subusers\":{\"active\":\"@:{'templates.generated.compat.superuser.user_detail.subusers.active'}\",\"disabled\":\"@:{'templates.generated.compat.superuser.user_detail.subusers.disabled'}\",\"invite\":\"@:{'templates.generated.compat.superuser.user_detail.subusers.invite'}\",\"pending_setup\":\"@:{'templates.generated.compat.superuser.user_detail.subusers.pending_setup'}\",\"summary_load_failed\":\"@:{'templates.generated.compat.superuser.user_detail.subusers.summary_load_failed'}\",\"summary_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.subusers.summary_subtitle'}\",\"summary_title\":\"@:{'templates.generated.compat.superuser.user_detail.subusers.summary_title'}\",\"table_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.subusers.table_subtitle'}\",\"table_title\":\"@:{'templates.generated.compat.superuser.user_detail.subusers.table_title'}\",\"total\":\"@:{'templates.generated.compat.superuser.user_detail.subusers.total'}\"},\"security\":{\"active_rules\":\"@:{'templates.generated.compat.superuser.user_detail.security.active_rules'}\",\"current_role\":\"@:{'templates.generated.compat.superuser.user_detail.security.current_role'}\",\"customer_rules_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.security.customer_rules_subtitle'}\",\"customer_rules_title\":\"@:user_admin.overview.customer_rules\",\"direct_role_tab\":\"@:{'templates.generated.compat.superuser.user_detail.security.direct_role_tab'}\",\"editable\":\"@:{'templates.generated.compat.superuser.user_detail.security.editable'}\",\"limited_employee_departments_label\":\"@:{'templates.generated.compat.superuser.user_detail.security.limited_employee_departments_label'}\",\"limited_employee_load_failed\":\"@:{'templates.generated.compat.superuser.user_detail.security.limited_employee_load_failed'}\",\"limited_employee_migrate_failed\":\"@:{'templates.generated.compat.superuser.user_detail.security.limited_employee_migrate_failed'}\",\"limited_employee_migrated\":\"@:{'templates.generated.compat.superuser.user_detail.security.limited_employee_migrated'}\",\"limited_employee_role_label\":\"@:{'templates.generated.compat.superuser.user_detail.security.limited_employee_role_label'}\",\"limited_employee_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.security.limited_employee_subtitle'}\",\"limited_employee_tab\":\"@:{'templates.generated.compat.superuser.user_detail.security.limited_employee_tab'}\",\"limited_employee_unavailable\":\"@:{'templates.generated.compat.superuser.user_detail.security.limited_employee_unavailable'}\",\"limited_employee_validation\":\"@:{'templates.generated.compat.superuser.user_detail.security.limited_employee_validation'}\",\"managed_employee\":\"@:{'templates.generated.compat.superuser.user_detail.security.managed_employee'}\",\"manage_rules\":\"@:{'templates.generated.compat.superuser.user_detail.security.manage_rules'}\",\"migrate_employee\":\"@:{'templates.generated.compat.superuser.user_detail.security.migrate_employee'}\",\"no_role\":\"@:{'templates.generated.compat.superuser.user_detail.security.no_role'}\",\"permission_editor_notice\":\"@:{'templates.generated.compat.superuser.user_detail.security.permission_editor_notice'}\",\"permission_toggle_unavailable\":\"@:{'templates.generated.compat.superuser.user_detail.security.permission_toggle_unavailable'}\",\"permissions_unavailable\":\"@:{'templates.generated.compat.superuser.user_detail.security.permissions_unavailable'}\",\"readonly\":\"@:{'templates.generated.compat.superuser.user_detail.security.readonly'}\",\"role_assignment_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.security.role_assignment_subtitle'}\",\"role_assignment_title\":\"@:{'templates.generated.compat.superuser.user_detail.security.role_assignment_title'}\",\"role_edit_unavailable\":\"@:{'templates.generated.compat.superuser.user_detail.security.role_edit_unavailable'}\",\"role_fetch_unavailable\":\"@:{'templates.generated.compat.superuser.user_detail.security.role_fetch_unavailable'}\",\"role_locked\":\"@:{'templates.generated.compat.superuser.user_detail.security.role_locked'}\",\"role_locked_limited_backoffice\":\"@:{'templates.generated.compat.superuser.user_detail.security.role_locked_limited_backoffice'}\",\"role_permissions_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.security.role_permissions_subtitle'}\",\"role_permissions_title\":\"@:{'templates.generated.compat.superuser.user_detail.security.role_permissions_title'}\",\"role_save_failed\":\"@:{'templates.generated.compat.superuser.user_detail.security.role_save_failed'}\",\"role_saved\":\"@:{'templates.generated.compat.superuser.user_detail.security.role_saved'}\",\"role_select_label\":\"@:{'templates.generated.compat.superuser.user_detail.security.role_select_label'}\",\"review_permissions\":\"@:{'templates.generated.compat.superuser.user_detail.security.review_permissions'}\",\"save_role\":\"@:{'templates.generated.compat.superuser.user_detail.security.save_role'}\",\"standard_user\":\"@:{'templates.generated.compat.superuser.user_detail.security.standard_user'}\",\"switch_role\":\"@:{'templates.generated.compat.superuser.user_detail.security.switch_role'}\"},\"vehicles\":{\"summary_title\":\"@:{'templates.generated.compat.superuser.user_detail.vehicles.summary_title'}\",\"summary_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.vehicles.summary_subtitle'}\",\"subscription_invoicing_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.vehicles.subscription_invoicing_subtitle'}\",\"table_title\":\"@:{'templates.generated.compat.superuser.user_detail.vehicles.table_title'}\",\"table_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.vehicles.table_subtitle'}\",\"total\":\"@:{'templates.generated.compat.superuser.user_detail.vehicles.total'}\",\"wash_subscription\":\"@:{'templates.generated.compat.superuser.user_detail.vehicles.wash_subscription'}\",\"self_service\":\"@:{'templates.generated.compat.superuser.user_detail.vehicles.self_service'}\",\"add_vehicle\":\"@:{'templates.generated.compat.superuser.user_detail.vehicles.add_vehicle'}\",\"no_customer\":\"@:{'templates.generated.compat.superuser.user_detail.vehicles.no_customer'}\",\"summary_load_failed\":\"@:{'templates.generated.compat.superuser.user_detail.vehicles.summary_load_failed'}\"},\"overview\":{\"customer_actions_title\":\"@:{'templates.generated.compat.superuser.user_detail.overview.customer_actions_title'}\",\"customer_actions_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.overview.customer_actions_subtitle'}\",\"customer_shortcuts_title\":\"@:{'templates.generated.compat.superuser.user_detail.overview.customer_shortcuts_title'}\",\"customer_shortcuts_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.overview.customer_shortcuts_subtitle'}\",\"customer_flags_title\":\"@:{'templates.generated.compat.superuser.user_detail.overview.customer_flags_title'}\",\"customer_flags_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.overview.customer_flags_subtitle'}\",\"fixed_pricing_title\":\"@:{'templates.generated.compat.superuser.user_detail.overview.fixed_pricing_title'}\",\"fixed_pricing_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.overview.fixed_pricing_subtitle'}\",\"default_department_title\":\"@:{'templates.generated.compat.superuser.user_detail.overview.default_department_title'}\",\"default_department_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.overview.default_department_subtitle'}\",\"open_orders\":\"@:{'templates.generated.compat.superuser.user_detail.overview.open_orders'}\",\"open_pricing\":\"@:{'templates.generated.compat.superuser.user_detail.overview.open_pricing'}\",\"open_security\":\"@:{'templates.generated.compat.superuser.user_detail.overview.open_security'}\",\"open_subscriptions\":\"@:{'templates.generated.compat.superuser.user_detail.overview.open_subscriptions'}\",\"special_arrangement_title\":\"@:{'templates.generated.compat.superuser.user_detail.overview.special_arrangement_title'}\",\"special_arrangement_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.overview.special_arrangement_subtitle'}\",\"view_account\":\"@:{'templates.generated.compat.superuser.user_detail.overview.view_account'}\",\"view_economic\":\"@:{'templates.generated.compat.superuser.user_detail.overview.view_economic'}\",\"wash_subscription_note_title\":\"@:{'templates.generated.compat.superuser.user_detail.overview.wash_subscription_note_title'}\",\"wash_subscription_note_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.overview.wash_subscription_note_subtitle'}\"},\"xlvask\":{\"summary_title\":\"@:{'templates.generated.compat.superuser.user_detail.xlvask.summary_title'}\",\"summary_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.xlvask.summary_subtitle'}\",\"vehicles_title\":\"@:{'templates.generated.compat.superuser.user_detail.xlvask.vehicles_title'}\",\"vehicles_subtitle\":\"@:{'templates.generated.compat.superuser.user_detail.xlvask.vehicles_subtitle'}\",\"not_found\":\"@:{'templates.generated.compat.superuser.user_detail.xlvask.not_found'}\",\"customer_id\":\"@:{'templates.generated.compat.superuser.user_detail.xlvask.customer_id'}\"}},\"user\":{\"default_department\":{\"not_implemented_desc\":\"@:superuser.user.fixed_pricing.not_implemented_desc\",\"not_implemented_title\":\"@:superuser.user.fixed_pricing.not_implemented_title\"},\"fixed_pricing\":{\"not_implemented_desc\":\"@:{'templates.generated.compat.superuser.user.fixed_pricing.not_implemented_desc'}\",\"not_implemented_title\":\"@:{'templates.generated.compat.superuser.user.fixed_pricing.not_implemented_title'}\"},\"special_arrangement\":{\"label\":\"@:{'templates.generated.compat.superuser.user.special_arrangement.label'}\",\"save\":\"@:{'templates.generated.compat.superuser.user.special_arrangement.save'}\",\"title\":\"@:{'templates.generated.compat.superuser.user.special_arrangement.title'}\"},\"vehicles\":{\"addons\":\"@:{'templates.generated.compat.common.addons'}\",\"placeholder_active_subscriptions\":\"@:{'templates.generated.compat.superuser.user.vehicles.placeholder_active_subscriptions'}\",\"placeholder_self_service\":\"@:{'templates.generated.compat.superuser.user.vehicles.placeholder_self_service'}\",\"placeholder_vehicle_count\":\"@:{'templates.generated.compat.superuser.user.vehicles.placeholder_vehicle_count'}\"},\"wash_subscription\":{\"label\":\"@:pagination.wash_subscription\",\"save\":\"@:{'templates.generated.compat.superuser.user.wash_subscription.save'}\",\"title\":\"@:pagination.wash_subscription\"}},\"vehicle\":{\"xlvask_usage_log\":{\"create_order_all\":\"@:{'templates.generated.compat.superuser.vehicle.xlvask_usage_log.create_order_all'}\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"end_time\":\"@:tables.common.end_time\",\"location\":\"@:tables.common.location\",\"price\":\"@:common.price\",\"refresh\":\"@:{'templates.generated.compat.common.refresh'}\",\"registration_number\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"start_time\":\"@:tables.common.start_time\",\"title\":\"@:tables.xlvask.usage_log_title\"}},\"xlvask\":{\"customers\":\"@:global.customers\",\"fetch_customers\":\"@:{'templates.generated.compat.superuser.xlvask.fetch_customers'}\",\"fetch_objects\":\"@:{'templates.generated.compat.superuser.xlvask.fetch_objects'}\",\"objects\":\"@:{'templates.generated.compat.superuser.xlvask.objects'}\"}},\"support\":{\"title\":\"@:{'templates.generated.compat.support.title'}\",\"meta_description\":\"@:{'templates.generated.compat.support.meta_description'}\",\"eyebrow\":\"@:{'templates.generated.compat.support.eyebrow'}\",\"intro\":\"@:{'templates.generated.compat.support.intro'}\",\"contact_title\":\"@:{'templates.generated.compat.support.contact_title'}\",\"email_label\":\"@:{'templates.generated.compat.support.email_label'}\",\"phone_label\":\"@:{'templates.generated.compat.support.phone_label'}\",\"company_label\":\"@:{'templates.generated.compat.support.company_label'}\",\"help_title\":\"@:{'templates.generated.compat.support.help_title'}\",\"help_booking\":\"@:{'templates.generated.compat.support.help_booking'}\",\"help_self_wash\":\"@:{'templates.generated.compat.support.help_self_wash'}\",\"help_payments\":\"@:{'templates.generated.compat.support.help_payments'}\",\"help_account\":\"@:{'templates.generated.compat.support.help_account'}\",\"privacy_prefix\":\"@:{'templates.generated.compat.support.privacy_prefix'}\",\"privacy_link\":\"@:{'templates.generated.compat.support.privacy_link'}\",\"privacy_suffix\":\"@:{'templates.generated.compat.support.privacy_suffix'}\"},\"system_status\":{\"actions\":{\"open_config\":\"@:{'templates.generated.compat.system_status.actions.open_config'}\",\"open_replication\":\"@:{'templates.generated.compat.system_status.actions.open_replication'}\",\"refresh\":\"@:{'templates.generated.compat.common.refresh'}\"},\"cards\":{\"cpu\":\"@:{'templates.generated.compat.system_status.cards.cpu'}\",\"database\":\"@:{'templates.generated.compat.system_status.cards.database'}\",\"disk\":\"Disk\",\"memory\":\"@:{'templates.generated.compat.system_status.cards.memory'}\",\"minio\":\"@:replication.minio\",\"redis\":\"@:replication.redis\"},\"devices\":{\"bot\":\"Bot\",\"desktop\":\"@:{'templates.generated.compat.system_status.devices.desktop'}\",\"mobile\":\"@:{'templates.generated.compat.system_status.devices.mobile'}\",\"tablet\":\"@:{'templates.generated.compat.system_status.devices.tablet'}\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\"},\"gateways\":{\"actions\":{\"open_fleet\":\"@:{'templates.generated.compat.system_status.gateways.actions.open_fleet'}\",\"open_gateway\":\"@:{'templates.generated.compat.system_status.gateways.actions.open_gateway'}\"},\"department_fallback\":\"@:{'templates.generated.compat.common.department'}\",\"description\":\"@:{'templates.generated.compat.system_status.gateways.description'}\",\"discovery_status\":{\"failed\":\"@:{'templates.generated.compat.global.failed'}\",\"pending\":\"@:{'templates.generated.compat.global.pending'}\",\"ready\":\"@:{'templates.generated.compat.system_status.gateways.discovery_status.ready'}\",\"stale\":\"@:{'templates.generated.compat.system_status.gateways.discovery_status.stale'}\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\"},\"empty\":\"@:{'templates.generated.compat.system_status.gateways.empty'}\",\"error\":\"@:{'templates.generated.compat.system_status.gateways.error'}\",\"labels\":{\"active_operation\":\"@:{'templates.generated.compat.system_status.gateways.labels.active_operation'}\",\"discovery\":\"Discovery\",\"last_heartbeat\":\"@:{'templates.generated.compat.system_status.gateways.labels.last_heartbeat'}\"},\"loading\":\"@:{'templates.generated.compat.system_status.gateways.loading'}\",\"status\":{\"degraded\":\"@:{'templates.generated.compat.system_status.gateways.status.degraded'}\",\"offline\":\"Offline\",\"online\":\"@:{'templates.generated.compat.system_status.gateways.status.online'}\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\"},\"summary\":{\"degraded\":\"@:system_status.gateways.status.degraded\",\"offline\":\"@:system_status.gateways.status.offline\",\"online\":\"@:system_status.gateways.status.online\",\"total\":\"@:{'templates.generated.compat.system_status.gateways.summary.total'}\"}},\"labels\":{\"activity_window\":\"@:{'templates.generated.compat.system_status.labels.activity_window'}\",\"buckets_available\":\"@:{'templates.generated.compat.system_status.labels.buckets_available'}\",\"checked_at\":\"@:{'templates.generated.compat.system_status.labels.checked_at'}\",\"configured\":\"@:{'templates.generated.compat.system_status.labels.configured'}\",\"buckets\":\"@.capitalize:{'words.generated.buckets'}\",\"database_index\":\"@:replication.fields.database_index\",\"enabled\":\"@:{'templates.generated.compat.system_status.labels.enabled'}\",\"endpoint\":\"@.capitalize:{'words.generated.endpoint'}\",\"latency\":\"@:{'templates.generated.compat.system_status.labels.latency'}\",\"no_reason\":\"@:{'templates.generated.compat.system_status.labels.no_reason'}\",\"replication_percent\":\"@:{'templates.generated.compat.system_status.labels.replication_percent'}\",\"runtime_source\":\"@:{'templates.generated.compat.system_status.labels.runtime_source'}\",\"server_version\":\"@:{'templates.generated.compat.system_status.labels.server_version'}\",\"warnings\":\"@:{'templates.generated.compat.system_status.labels.warnings'}\"},\"modules\":{\"backups\":\"@:{'templates.generated.compat.system_status.modules.backups'}\",\"bird\":\"Bird\",\"economic\":\"@:{'templates.generated.compat.system_status.modules.economic'}\",\"email\":\"@:{'templates.generated.compat.objects.columns.email'}\",\"entra\":\"@:{'templates.generated.compat.system_status.modules.entra'}\",\"fxratesapi\":\"@:{'templates.generated.compat.system_status.modules.fxratesapi'}\",\"gatewayapi\":\"GatewayAPI\",\"licenseplaterecognizer\":\"@:{'templates.generated.compat.system_status.modules.licenseplaterecognizer'}\",\"limble\":\"@:{'templates.generated.compat.system_status.modules.limble'}\",\"motorapi\":\"@:{'templates.generated.compat.system_status.modules.motorapi'}\",\"ocrspace\":\"@:{'templates.generated.compat.system_status.modules.ocrspace'}\",\"openai\":\"@:{'templates.generated.compat.system_status.modules.openai'}\",\"reCAPTCHA\":\"reCAPTCHA\",\"selfserve\":\"@:{'templates.generated.compat.system_status.modules.selfserve'}\",\"shelly\":\"@:{'templates.generated.compat.system_status.modules.shelly'}\",\"stripe\":\"@:{'templates.generated.compat.system_status.modules.stripe'}\",\"virkdata\":\"@:{'templates.generated.compat.system_status.modules.virkdata'}\",\"weatherapi\":\"WeatherAPI\",\"workfeed\":\"@:{'templates.generated.compat.system_status.modules.workfeed'}\",\"xlvask\":\"@:superuser.nav.xlvask\"},\"reasons\":{\"backup_connectivity_confirmed\":\"@:{'templates.generated.compat.system_status.reasons.backup_connectivity_confirmed'}\",\"backup_encryption_key_missing\":\"@:{'templates.generated.compat.system_status.reasons.backup_encryption_key_missing'}\",\"backup_latest_verified_stale\":\"@:{'templates.generated.compat.system_status.reasons.backup_latest_verified_stale'}\",\"backup_no_verified_backup\":\"@:{'templates.generated.compat.system_status.reasons.backup_no_verified_backup'}\",\"backup_probe_failed\":\"@:{'templates.generated.compat.system_status.reasons.backup_probe_failed'}\",\"economic_credentials_missing\":\"@:{'templates.generated.compat.system_status.reasons.economic_credentials_missing'}\",\"email_delivery_not_implemented\":\"@:{'templates.generated.compat.system_status.reasons.email_delivery_not_implemented'}\",\"http_curl_init_failed\":\"@:{'templates.generated.compat.system_status.reasons.http_curl_init_failed'}\",\"http_endpoint_missing\":\"@:{'templates.generated.compat.system_status.reasons.http_endpoint_missing'}\",\"http_no_response\":\"@:{'templates.generated.compat.system_status.reasons.http_no_response'}\",\"http_ok\":\"@:{'templates.generated.compat.system_status.reasons.http_ok'}\",\"http_probe_failed\":\"@:{'templates.generated.compat.system_status.reasons.http_probe_failed'}\",\"http_rate_limited\":\"@:{'templates.generated.compat.system_status.reasons.http_rate_limited'}\",\"http_status\":\"@:{'templates.generated.compat.system_status.reasons.http_status'}\",\"http_unexpected_response\":\"@:{'templates.generated.compat.system_status.reasons.http_unexpected_response'}\",\"invalid_probe_payload\":\"@:{'templates.generated.compat.system_status.reasons.invalid_probe_payload'}\",\"missing_config\":\"@:{'templates.generated.compat.system_status.reasons.missing_config'}\",\"module_disabled\":\"@:{'templates.generated.compat.system_status.reasons.module_disabled'}\",\"recaptcha_credentials_rejected\":\"@:{'templates.generated.compat.system_status.reasons.recaptcha_credentials_rejected'}\",\"recaptcha_unreadable_payload\":\"@:{'templates.generated.compat.system_status.reasons.recaptcha_unreadable_payload'}\",\"recaptcha_validation_errors\":\"@:{'templates.generated.compat.system_status.reasons.recaptcha_validation_errors'}\",\"safe_probe_unavailable\":\"@:{'templates.generated.compat.system_status.reasons.safe_probe_unavailable'}\",\"selfserve_configuration_confirmed\":\"@:{'templates.generated.compat.system_status.reasons.selfserve_configuration_confirmed'}\",\"selfserve_minute_product_invalid\":\"@:{'templates.generated.compat.system_status.reasons.selfserve_minute_product_invalid'}\",\"selfserve_minute_product_missing\":\"@:{'templates.generated.compat.system_status.reasons.selfserve_minute_product_missing'}\",\"selfserve_minutes_invalid\":\"@:{'templates.generated.compat.system_status.reasons.selfserve_minutes_invalid'}\",\"selfserve_probe_failed\":\"@:{'templates.generated.compat.system_status.reasons.selfserve_probe_failed'}\",\"shelly_no_device_id\":\"@:{'templates.generated.compat.system_status.reasons.shelly_no_device_id'}\"},\"sections\":{\"gateways\":\"@:{'templates.generated.compat.system_status.sections.gateways'}\",\"infrastructure\":\"@:{'templates.generated.compat.system_status.sections.infrastructure'}\",\"modules\":\"@:{'templates.generated.compat.system_status.sections.modules'}\",\"sessions\":\"@:{'templates.generated.compat.system_status.sections.sessions'}\"},\"session_context\":{\"customer_number\":\"@:{'templates.generated.compat.common.customer'}\"},\"session_display\":{\"customer_number\":\"@:system_status.session_context.customer_number\",\"session_with_id\":\"@:{'templates.generated.compat.system_status.session_display.session_with_id'}\",\"subuser_with_id\":\"@:{'templates.generated.compat.system_status.session_types.subuser'}\",\"user_with_id\":\"@:{'templates.generated.compat.common.user'}\"},\"session_types\":{\"subuser\":\"@:{'templates.generated.compat.system_status.session_types.subuser'}\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\",\"user\":\"@:{'templates.generated.compat.common.user'}\"},\"states\":{\"error\":\"@:{'templates.generated.compat.system_status.states.error'}\",\"error_generic\":\"@:{'templates.generated.compat.system_status.states.error_generic'}\",\"loading\":\"@:{'templates.generated.compat.system_status.states.loading'}\",\"no_sessions\":\"@:{'templates.generated.compat.system_status.states.no_sessions'}\",\"stale\":\"@:{'templates.generated.compat.system_status.states.stale'}\"},\"status\":{\"active\":\"@:{'templates.generated.compat.system_status.table.active'}\",\"configured\":\"@:system_status.labels.configured\",\"degraded\":\"@:{'templates.generated.compat.system_status.status.degraded'}\",\"disabled\":\"@:{'templates.generated.compat.system_status.status.disabled'}\",\"down\":\"@:replication.status.down\",\"inactive\":\"@:{'templates.generated.compat.replication.roles.inactive'}\",\"no\":\"@:{'templates.generated.compat.common.none'}\",\"not_configured\":\"@:{'templates.generated.compat.replication.status.not_configured'}\",\"ok\":\"@:common.ok\",\"unknown\":\"@:{'templates.generated.compat.common.unknown'}\",\"yes\":\"@:{'templates.generated.compat.tables.bookings.yes'}\"},\"summary\":{\"active_sessions\":\"@:{'templates.generated.compat.system_status.summary.active_sessions'}\",\"active_users\":\"@:{'templates.generated.compat.system_status.summary.active_users'}\",\"last_updated\":\"@:{'templates.generated.compat.system_status.summary.last_updated'}\",\"overall\":\"@:{'templates.generated.compat.system_status.summary.overall'}\"},\"table\":{\"active\":\"@:{'templates.generated.compat.system_status.table.active'}\",\"device\":\"@:{'templates.generated.compat.system_status.table.device'}\",\"first_seen\":\"@:{'templates.generated.compat.system_status.table.first_seen'}\",\"last_seen\":\"@:{'templates.generated.compat.system_status.table.last_seen'}\",\"name\":\"@:{'templates.generated.compat.tables.common.name'}\",\"route\":\"@:{'templates.generated.compat.system_status.table.route'}\",\"type\":\"@:{'templates.generated.compat.vehicles.type'}\"},\"title\":\"@:{'templates.generated.compat.system_status.title'}\",\"warnings\":{\"cpu_loadavg_fallback\":\"@:{'templates.generated.compat.system_status.warnings.cpu_loadavg_fallback'}\",\"cpu_unavailable\":\"@:{'templates.generated.compat.system_status.warnings.cpu_unavailable'}\",\"memory_proc_fallback\":\"@:{'templates.generated.compat.system_status.warnings.memory_proc_fallback'}\",\"memory_unavailable\":\"@:{'templates.generated.compat.system_status.warnings.memory_unavailable'}\",\"minio_missing_buckets\":\"@:{'templates.generated.compat.system_status.warnings.minio_missing_buckets'}\",\"modules_without_probes\":\"@:{'templates.generated.compat.system_status.warnings.modules_without_probes'}\",\"redis_cache_bypass\":\"@:{'templates.generated.compat.system_status.warnings.redis_cache_bypass'}\",\"redis_cache_lookup_failed\":\"@:{'templates.generated.compat.system_status.warnings.redis_cache_lookup_failed'}\",\"redis_cache_write_failed\":\"@:{'templates.generated.compat.system_status.warnings.redis_cache_write_failed'}\"}},\"tables\":{\"actions\":\"@:{'templates.generated.compat.tables.actions'}\",\"bookings\":{\"actions\":\"@:{'templates.generated.compat.tables.actions'}\",\"booking\":\"@:{'templates.generated.compat.common.order'}\",\"booking_cancelled\":\"@:{'templates.generated.compat.common.order_cancelled'}\",\"booking_id_incorrect\":\"@:{'templates.generated.compat.common.order_id_incorrect'}\",\"booking_id_required\":\"@:{'templates.generated.compat.common.order_id_required'}\",\"booking_info\":\"@:{'templates.generated.compat.common.order_info'}\",\"bookings_count\":\"@:{'templates.generated.compat.common.bookings'}\",\"cancel\":\"@:{'templates.generated.compat.admin.pos.cancel'}\",\"cancel_booking\":\"@:{'templates.generated.compat.bookings.cancel_booking'}\",\"cancel_booking_confirm\":\"@:{'templates.generated.compat.admin.pos.cancel_booking_confirm'}\",\"cancelled\":\"@:{'templates.generated.compat.global.cancelled'}\",\"complete_wash_without_certificate\":\"@:{'templates.generated.compat.tables.bookings.complete_wash_without_certificate'}\",\"complete_wash_without_certificate_prompt\":\"@:{'templates.generated.compat.tables.bookings.complete_wash_without_certificate_prompt'}\",\"completed\":\"@:{'templates.generated.compat.global.completed'}\",\"create_order_from_booking\":\"@:{'templates.generated.compat.tables.bookings.create_order_from_booking'}\",\"create_order_from_booking_confirm\":\"@:{'templates.generated.compat.tables.bookings.create_order_from_booking_confirm'}\",\"customer_name\":\"@:{'templates.generated.compat.tables.bookings.customer_name'}\",\"date\":\"@:{'templates.generated.compat.bookings.date'}\",\"delete\":\"@:{'templates.generated.compat.global.delete'}\",\"department\":\"@:{'templates.generated.compat.common.department'}\",\"error_add_service\":\"@:{'templates.generated.compat.tables.bookings.error_add_service'}\",\"loading\":\"@:{'templates.generated.compat.tables.bookings.loading'}\",\"no\":\"@:{'templates.generated.compat.common.none'}\",\"no_bookings_found\":\"@:bookings_table.no_bookings_found\",\"no_date_selected\":\"@:order_bookings.no_date_selected\",\"no_department_selected\":\"@:order_bookings.no_department_selected\",\"no_registered\":\"@:{'templates.generated.compat.common.none_registered'}\",\"no_services_added\":\"@:{'templates.generated.compat.common.none_services_added'}\",\"note\":\"@:{'templates.generated.compat.global.note'}\",\"pending\":\"@:{'templates.generated.compat.global.pending'}\",\"pickup\":\"@:pagination.pickup\",\"pickup_required\":\"@:{'templates.generated.compat.tables.bookings.pickup_required'}\",\"po\":\"@:bookings_table.po\",\"quantity\":\"@:{'templates.generated.compat.tables.common.count'}\",\"reference\":\"@:common.reference\",\"reg_tractor\":\"@:{'templates.generated.compat.tables.bookings.reg_tractor'}\",\"reg_trailer\":\"@:{'templates.generated.compat.tables.bookings.reg_trailer'}\",\"regret\":\"@:{'templates.generated.compat.global.regret'}\",\"services\":\"@:common.services\",\"today\":\"@:{'templates.generated.compat.time.today'}\",\"total\":\"@:{'templates.generated.compat.global.total'}\",\"unknown_customer\":\"@:modals.unknown_customer\",\"vehicle_1\":\"@:{'templates.generated.compat.tables.bookings.vehicle_1'}\",\"vehicle_2\":\"@:{'templates.generated.compat.tables.bookings.vehicle_2'}\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"view\":\"@:{'templates.generated.compat.common.view'}\",\"wash\":\"@:{'templates.generated.compat.tables.bookings.wash'}\",\"wash_certificate_type\":\"@:{'templates.generated.compat.tables.bookings.wash_certificate_type'}\",\"wash_completed\":\"@:{'templates.generated.compat.tables.bookings.wash_completed'}\",\"wash_type\":\"@:{'templates.generated.compat.tables.bookings.wash_type'}\",\"yes\":\"@:{'templates.generated.compat.tables.bookings.yes'}\",\"yesterday\":\"@:{'templates.generated.compat.global.text.yesterday'}\"},\"categories\":{\"description\":\"@:common.description\",\"name\":\"@:{'templates.generated.compat.tables.common.name'}\",\"products_count\":\"@:{'templates.generated.compat.tables.categories.products_count'}\"},\"common\":{\"address\":\"@:common.address\",\"category\":\"@:{'templates.generated.compat.tables.common.category'}\",\"count\":\"@:{'templates.generated.compat.tables.common.count'}\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"cvr\":\"@:user_admin.cvr\",\"default_price\":\"@:{'templates.generated.compat.tables.common.default_price'}\",\"department_price\":\"@:{'templates.generated.compat.tables.common.department_price'}\",\"discount_category\":\"@:{'templates.generated.compat.tables.common.discount_category'}\",\"discount_item\":\"@:{'templates.generated.compat.tables.common.discount_item'}\",\"email\":\"@:common.email\",\"end_time\":\"@:{'templates.generated.compat.tables.common.end_time'}\",\"field\":\"@:{'templates.generated.compat.tables.common.field'}\",\"id\":\"@:{'templates.generated.compat.tables.common.id'}\",\"label\":\"@:{'templates.generated.compat.tables.common.label'}\",\"last_seen\":\"@:{'templates.generated.compat.tables.common.last_seen'}\",\"location\":\"@:{'templates.generated.compat.tables.common.location'}\",\"name\":\"@:{'templates.generated.compat.tables.common.name'}\",\"phone\":\"@:{'templates.generated.compat.tables.common.phone'}\",\"price\":\"@:{'templates.generated.compat.tables.common.price'}\",\"product\":\"@:common.product\",\"product_id\":\"@:{'templates.generated.compat.tables.common.product_id'}\",\"product_name\":\"@:{'templates.generated.compat.tables.common.product_name'}\",\"registration_number\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"serial_number\":\"@:{'templates.generated.compat.tables.common.serial_number'}\",\"start_time\":\"@:{'templates.generated.compat.tables.common.start_time'}\",\"status\":\"@:common.status\",\"type\":\"@:products.type\",\"value\":\"@:{'templates.generated.compat.tables.common.value'}\",\"wash_item\":\"@:{'templates.generated.compat.tables.common.wash_item'}\",\"website\":\"@:{'templates.generated.compat.tables.common.website'}\"},\"customers\":{\"address\":\"@:common.address\",\"created\":\"@:common.created\",\"customer_number\":\"@:{'templates.generated.compat.objects.columns.customer_number'}\",\"cvr\":\"@:user_admin.cvr\",\"email\":\"@:common.email\",\"name\":\"@:{'templates.generated.compat.tables.common.name'}\",\"phone\":\"@:{'templates.generated.compat.tables.common.phone'}\"},\"departments\":{\"address\":\"@:common.address\",\"email\":\"@:common.email\",\"name\":\"@:{'templates.generated.compat.tables.common.name'}\",\"phone\":\"@:{'templates.generated.compat.tables.common.phone'}\",\"status\":\"@:common.status\"},\"economic\":{\"payment_terms\":\"@:{'templates.generated.compat.tables.economic.payment_terms'}\"},\"in_total\":\"@:{'templates.generated.compat.tables.in_total'}\",\"invoices\":{\"amount\":\"@:global.payment.amount\",\"date\":\"@:{'templates.generated.compat.bookings.date'}\",\"download\":\"@:common.download\",\"invoice_number\":\"@:{'templates.generated.compat.tables.invoices.invoice_number'}\",\"overdue\":\"@:{'templates.generated.compat.tables.invoices.overdue'}\",\"paid\":\"@:invoices.paid\",\"status\":\"@:common.status\",\"unpaid\":\"@:invoices.unpaid\"},\"no_data\":\"@:global.no_data\",\"notifications\":{\"created\":\"@:common.created\",\"message\":\"@:objects.columns.message\",\"read\":\"@:{'templates.generated.compat.tables.notifications.read'}\",\"title\":\"@:objects.columns.title\",\"type\":\"@:products.type\"},\"orders\":{\"amount\":\"@:global.payment.amount\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"date\":\"@:{'templates.generated.compat.bookings.date'}\",\"historical_washes\":\"@:{'templates.generated.compat.tables.orders.historical_washes'}\",\"items\":\"@:{'templates.generated.compat.tables.orders.items'}\",\"order_id\":\"@:{'templates.generated.compat.objects.columns.order_id'}\",\"payment_method\":\"@:{'templates.generated.compat.pos.payment_method'}\",\"status\":\"@:common.status\",\"total\":\"@:{'templates.generated.compat.global.total'}\"},\"pos\":{\"order_items\":\"@:{'templates.generated.compat.tables.pos.order_items'}\",\"possible_duplicates\":\"@:{'templates.generated.compat.tables.pos.possible_duplicates'}\",\"scanned_plates\":\"@:{'templates.generated.compat.tables.pos.scanned_plates'}\",\"sync_orders\":\"@:{'templates.generated.compat.tables.pos.sync_orders'}\"},\"products\":{\"category\":\"@:tables.common.category\",\"description\":\"@:common.description\",\"name\":\"@:{'templates.generated.compat.tables.common.name'}\",\"price\":\"@:{'templates.generated.compat.tables.common.price'}\",\"status\":\"@:common.status\"},\"roles\":{\"name\":\"@:{'templates.generated.compat.tables.common.name'}\",\"permissions\":\"@:{'templates.generated.compat.tables.roles.permissions'}\",\"users_count\":\"@:{'templates.generated.compat.tables.roles.users_count'}\"},\"self_serve\":{\"attachments\":\"@:{'templates.generated.compat.admin.pos.attachments'}\",\"condition_rules\":\"@:{'templates.generated.compat.tables.self_serve.condition_rules'}\",\"conditions\":\"@:{'templates.generated.compat.objects.columns.condition'}\",\"questions\":\"@:{'templates.generated.compat.modals.questions'}\",\"tasks\":\"@:{'templates.generated.compat.tables.self_serve.tasks'}\",\"vehicle_conditions\":\"@:{'templates.generated.compat.tables.self_serve.vehicle_conditions'}\"},\"showing_count\":\"@:{'templates.generated.compat.common.view'}\",\"showing\":\"@:{'templates.generated.compat.tables.showing'}\",\"stripe\":{\"terminals\":\"@:{'templates.generated.compat.tables.stripe.terminals'}\"},\"time_bookings\":{\"add_reg_number\":\"@:time_bookings.add_reg_number\",\"confirm_booking\":\"@:{'templates.generated.compat.time_booking_flow.step5_title'}\",\"date\":\"@:{'templates.generated.compat.bookings.date'}\",\"employee\":\"@:{'templates.generated.compat.common.roless.employee'}\",\"end_time\":\"@:tables.common.end_time\",\"hours\":\"@:{'templates.generated.compat.tables.time_bookings.hours'}\",\"select_vehicle_type\":\"@:{'templates.generated.compat.time_bookings.select_vehicle_type'}\",\"start_time\":\"@:tables.common.start_time\",\"status\":\"@:common.status\",\"type\":\"@:products.type\"},\"users\":{\"created\":\"@:common.created\",\"email\":\"@:common.email\",\"last_login\":\"@:{'templates.generated.compat.tables.users.last_login'}\",\"name\":\"@:{'templates.generated.compat.tables.common.name'}\",\"role\":\"@:{'templates.generated.compat.common.roles'}\",\"status\":\"@:common.status\"},\"vehicles\":{\"created\":\"@:common.created\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"last_wash\":\"@:{'templates.generated.compat.global.last_wash'}\",\"license_plate\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"vehicle_type\":\"@:{'templates.generated.compat.products.form.vehicle_type'}\"},\"xlvask\":{\"create_order\":\"@:{'templates.generated.compat.tables.xlvask.create_order'}\",\"create_order_all\":\"@:{'templates.generated.compat.tables.xlvask.create_order_all'}\",\"hide\":\"@:{'templates.generated.compat.common.collapse'}\",\"order_created\":\"@:{'templates.generated.compat.tables.xlvask.order_created'}\",\"order_id\":\"@:{'templates.generated.compat.objects.columns.order_id'}\",\"refresh\":\"@:{'templates.generated.compat.common.refresh'}\",\"show\":\"@:{'templates.generated.compat.common.view'}\",\"usage_log_title\":\"@:{'templates.generated.compat.tables.xlvask.usage_log_title'}\"}},\"time_booking_flow\":{\"all_info_looks_good\":\"@:{'templates.generated.compat.time_booking_flow.all_info_looks_good'}\",\"confirm_your_booking\":\"@:{'templates.generated.compat.time_booking_flow.step5_title'}\",\"date_and_time\":\"@:{'templates.generated.compat.time_booking_flow.date_and_time'}\",\"email\":\"@:{'templates.generated.compat.objects.columns.email'}\",\"location\":\"@:tables.common.location\",\"no_notifications_enabled\":\"@:{'templates.generated.compat.time_booking_flow.no_notifications_enabled'}\",\"no_services_selected\":\"@:{'templates.generated.compat.time_booking_flow.no_services_selected'}\",\"not_selected\":\"@:{'templates.generated.compat.time_booking_flow.not_selected'}\",\"not_specified\":\"@:{'templates.generated.compat.time_booking_flow.not_specified'}\",\"note\":\"@:{'templates.generated.compat.global.note'}\",\"notes\":\"@:{'templates.generated.compat.objects.columns.notes'}\",\"notifications_incomplete\":\"@:{'templates.generated.compat.time_booking_flow.notifications_incomplete'}\",\"notifications_will_be_sent_to\":\"@:{'templates.generated.compat.time_booking_flow.notifications_will_be_sent_to'}\",\"pickup\":\"@:pagination.pickup\",\"po_number\":\"@:{'templates.generated.compat.objects.columns.po_number'}\",\"progress\":\"@:{'templates.generated.compat.time_booking_flow.progress'}\",\"reference\":\"@:common.reference\",\"registration_numbers\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"select_services\":\"@:{'templates.generated.compat.time_booking_flow.select_services'}\",\"selected_services\":\"@:{'templates.generated.compat.time_booking_flow.selected_services'}\",\"sms\":\"@:{'templates.generated.compat.time_booking_flow.sms'}\",\"step_of\":\"@:{'templates.generated.compat.time_booking_flow.step_of'}\",\"step1_subtitle\":\"@:{'templates.generated.compat.time_booking_flow.step1_subtitle'}\",\"step1_title\":\"@:self_wash.select_vehicle\",\"step2_subtitle\":\"@:{'templates.generated.compat.time_booking_flow.step2_subtitle'}\",\"step2_title\":\"@:{'templates.generated.compat.time_booking_flow.step2_title'}\",\"step3_subtitle\":\"@:{'templates.generated.compat.time_booking_flow.step3_subtitle'}\",\"step3_title\":\"@:{'templates.generated.compat.time_booking_flow.step3_title'}\",\"step4_subtitle\":\"@:{'templates.generated.compat.time_booking_flow.step4_subtitle'}\",\"step4_title\":\"@:{'templates.generated.compat.time_booking_flow.step4_title'}\",\"step5_subtitle\":\"@:{'templates.generated.compat.time_booking_flow.step5_subtitle'}\",\"step5_title\":\"@:{'templates.generated.compat.time_booking_flow.step5_title'}\",\"update_notification_settings\":\"@:{'templates.generated.compat.time_booking_flow.update_notification_settings'}\",\"warning_email_not_set\":\"@:{'templates.generated.compat.time_booking_flow.warning_email_not_set'}\",\"warning_no_datetime\":\"@:{'templates.generated.compat.time_booking_flow.warning_no_datetime'}\",\"warning_no_location\":\"@:{'templates.generated.compat.time_booking_flow.warning_no_location'}\",\"warning_no_registration\":\"@:{'templates.generated.compat.time_booking_flow.warning_no_registration'}\",\"warning_no_services\":\"@:{'templates.generated.compat.time_booking_flow.warning_no_services'}\",\"warning_sms_not_set\":\"@:{'templates.generated.compat.time_booking_flow.warning_sms_not_set'}\"},\"time_bookings\":{\"add_reg_number\":\"@:{'templates.generated.compat.time_bookings.add_reg_number'}\",\"confirm_booking\":\"@:{'templates.generated.compat.time_booking_flow.step5_title'}\",\"exterior_wash_for\":\"@:{'templates.generated.compat.time_bookings.exterior_wash_for'}\",\"insert_reg_numbers\":\"@:{'templates.generated.compat.time_bookings.insert_reg_numbers'}\",\"interior_wash_for\":\"@:{'templates.generated.compat.time_bookings.interior_wash_for'}\",\"license_plate_placeholder\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"next_week\":\"@:{'templates.generated.compat.time_bookings.next_week'}\",\"no_wash_services_available\":\"@:{'templates.generated.compat.time_bookings.no_wash_services_available'}\",\"previous_week\":\"@:{'templates.generated.compat.time_bookings.previous_week'}\",\"select_vehicle_type\":\"@:{'templates.generated.compat.time_bookings.select_vehicle_type'}\",\"select_wash_hall\":\"@:{'templates.generated.compat.time_bookings.select_wash_hall'}\",\"tank_cleaning\":\"@:{'templates.generated.compat.time_bookings.tank_cleaning'}\",\"truck_wash\":\"@:{'templates.generated.compat.time_bookings.truck_wash'}\",\"wash_services_for\":\"@:{'templates.generated.compat.time_bookings.wash_services_for'}\",\"what_type_of_wash\":\"@:{'templates.generated.compat.time_bookings.what_type_of_wash'}\",\"where_to_wash\":\"@:{'templates.generated.compat.time_bookings.where_to_wash'}\"},\"time\":{\"ago\":\"@:{'templates.generated.compat.time.ago'}\",\"end_date\":\"@:{'templates.generated.compat.time.end_date'}\",\"from_now\":\"@:{'templates.generated.compat.time.from_now'}\",\"just_now\":\"@:{'templates.generated.compat.time.just_now'}\",\"last_month\":\"@:{'templates.generated.compat.time.last_month'}\",\"last_week\":\"@:global.text.last_week\",\"last_year\":\"@:{'templates.generated.compat.time.last_year'}\",\"next_month\":\"@:{'templates.generated.compat.time.next_month'}\",\"next_week\":\"@:{'templates.generated.compat.time.next_week'}\",\"next_year\":\"@:{'templates.generated.compat.time.next_year'}\",\"start_date\":\"@:{'templates.generated.compat.time.start_date'}\",\"this_month\":\"@:global.text.this_month\",\"this_week\":\"@:global.text.this_week\",\"this_year\":\"@:{'templates.generated.compat.time.this_year'}\",\"today\":\"@:{'templates.generated.compat.time.today'}\",\"tomorrow\":\"@:{'templates.generated.compat.time.tomorrow'}\",\"yesterday\":\"@:{'templates.generated.compat.global.text.yesterday'}\"},\"user_admin\":{\"address\":\"@:common.address\",\"barred\":\"@:{'templates.generated.compat.objects.columns.suspended'}\",\"city\":\"@:{'templates.generated.compat.objects.columns.city'}\",\"country\":\"@:common.country\",\"created_at\":\"@:common.created\",\"currency\":\"@:{'templates.generated.compat.user_admin.currency'}\",\"customer_number\":\"@:{'templates.generated.compat.objects.columns.customer_number'}\",\"cvr\":\"@:{'templates.generated.compat.user_admin.cvr'}\",\"edit_user\":\"Edit user\",\"economic_data\":\"@:{'templates.generated.compat.user_admin.economic_data'}\",\"email\":\"@:common.email\",\"group_id\":\"@:{'templates.generated.compat.user_admin.group_id'}\",\"mass_data_inserter\":\"@:{'templates.generated.compat.user_admin.mass_data_inserter'}\",\"mobile_phone\":\"@:{'templates.generated.compat.user_admin.mobile_phone'}\",\"name\":\"@:common.name\",\"no_data\":\"@:global.no_data\",\"orders\":{\"draft_not_found\":\"@:{'templates.generated.compat.user_admin.orders.draft_not_found'}\",\"loading_subtitle\":\"@:{'templates.generated.compat.user_admin.orders.loading_subtitle'}\",\"loading_title\":\"@:{'templates.generated.compat.user_admin.orders.loading_title'}\",\"transaction_history\":\"@:{'templates.generated.compat.user_admin.orders.transaction_history'}\"},\"other\":\"@:{'templates.generated.compat.user_admin.other'}\",\"overview\":{\"active_vehicles\":\"@:{'templates.generated.compat.user_admin.overview.active_vehicles'}\",\"attributes\":\"@:{'templates.generated.compat.user_admin.overview.attributes'}\",\"connected\":\"@:{'templates.generated.compat.user_admin.overview.connected'}\",\"customer_management\":\"@:{'templates.generated.compat.user_admin.overview.customer_management'}\",\"customer_number_required\":\"@:{'templates.generated.compat.user_admin.overview.customer_number_required'}\",\"customer_rules\":\"@:{'templates.generated.compat.user_admin.overview.customer_rules'}\",\"effective_access\":\"@:{'templates.generated.compat.user_admin.overview.effective_access'}\",\"loaded\":\"@:{'templates.generated.compat.user_admin.overview.loaded'}\",\"load_failed\":\"@:{'templates.generated.compat.user_admin.overview.load_failed'}\",\"loading_user\":\"@:{'templates.generated.compat.user_admin.overview.loading_user'}\",\"management_hub\":\"@:{'templates.generated.compat.user_admin.overview.management_hub'}\",\"missing\":\"@:{'templates.generated.compat.user_admin.overview.missing'}\",\"more_permissions\":\"@:{'templates.generated.compat.user_admin.overview.more_permissions'}\",\"no_subscription_transactions\":\"@:{'templates.generated.compat.user_admin.overview.no_subscription_transactions'}\",\"not_invoiced\":\"@:{'templates.generated.compat.user_admin.overview.not_invoiced'}\",\"open_draft\":\"@:{'templates.generated.compat.user_admin.overview.open_draft'}\",\"open_vehicles\":\"@:{'templates.generated.compat.user_admin.overview.open_vehicles'}\",\"price_overrides\":\"@:{'templates.generated.compat.user_admin.overview.price_overrides'}\",\"pricing\":\"@:{'templates.generated.compat.user_admin.overview.pricing'}\",\"subscription_invoicing\":\"@:{'templates.generated.compat.user_admin.overview.subscription_invoicing'}\",\"subtitle\":\"@:{'templates.generated.compat.user_admin.overview.subtitle'}\",\"vehicles_load_failed\":\"@:{'templates.generated.compat.user_admin.overview.vehicles_load_failed'}\",\"workspace_shortcuts\":\"@:{'templates.generated.compat.user_admin.overview.workspace_shortcuts'}\"},\"permissions\":\"@:{'templates.generated.compat.user_admin.permissions'}\",\"subtitle\":\"@:user_admin.user_data\",\"title\":\"@:{'templates.generated.compat.common.user'}\",\"updated_at\":\"@:{'templates.generated.compat.objects.columns.updated_at'}\",\"user_data\":\"@:{'templates.generated.compat.user_admin.user_data'}\",\"user_edited_successfully\":\"User edited successfully\",\"user_id\":\"@:{'templates.generated.compat.user_admin.user_id'}\",\"variables\":\"@:{'templates.generated.compat.user_admin.variables'}\",\"wash_subscriptions\":\"@:{'templates.generated.compat.user_admin.wash_subscriptions'}\",\"zip\":\"@:{'templates.generated.compat.objects.columns.zip'}\"},\"user_bookings\":{\"my_vehicles\":\"@:{'templates.generated.compat.user_bookings.my_vehicles'}\",\"remove_vehicle\":\"@:{'templates.generated.compat.vehicles.delete_vehicle'}\",\"select_vehicle_type_for\":\"@:{'templates.generated.compat.user_bookings.select_vehicle_type_for'}\",\"vehicle_reg_input\":\"@:{'templates.generated.compat.user_bookings.vehicle_reg_input'}\",\"vehicle_reg_placeholder\":\"@:{'templates.generated.compat.user_bookings.vehicle_reg_input'}\",\"vehicle\":\"@:common.vehicle\"},\"user_dashboard\":{\"bookings\":{\"book_subtitle\":\"@:{'templates.generated.compat.user_dashboard.bookings.book_subtitle'}\",\"book\":{\"back\":\"@:common.back\",\"basket\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.basket'}\",\"booking_confirmed\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.booking_confirmed'}\",\"booking_confirmed_message\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.booking_confirmed_message'}\",\"booking_failed\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.booking_failed'}\",\"booking_failed_message\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.booking_failed_message'}\",\"confirm_booking\":\"@:{'templates.generated.compat.time_booking_flow.step5_title'}\",\"customer_not_found\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.customer_not_found'}\",\"customer_number\":\"@:global.customer_number\",\"enter_customer_number\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.enter_customer_number'}\",\"enter_vehicle\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.enter_vehicle'}\",\"error_copied\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.error_copied'}\",\"expected_date_time\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.expected_date_time'}\",\"exterior_wash\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.exterior_wash'}\",\"go_to_confirmation\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.go_to_confirmation'}\",\"guest_info_html\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.guest_info_html'}\",\"guest_mode_login_prompt\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.guest_mode_login_prompt'}\",\"guest_mode_warning\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.guest_mode_warning'}\",\"incl_pickup\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.incl_pickup'}\",\"interior_wash\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.interior_wash'}\",\"is_this_your_vehicle\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.is_this_your_vehicle'}\",\"login\":\"@:{'templates.generated.compat.global.login'}\",\"login_for_products\":\"@:{'templates.generated.compat.global.login_for_products'}\",\"missing_customer_number\":\"@:global.customer_number\",\"missing_date\":\"@:common.date\",\"missing_fields\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.missing_fields'}\",\"missing_products\":\"@:common.products\",\"missing_valid_customer_number\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.missing_valid_customer_number'}\",\"missing_vehicle\":\"@:common.vehicle\",\"missing_wash_hall\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.missing_wash_hall'}\",\"next\":\"@:common.next\",\"next_step_addons\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.next_step_addons'}\",\"no_items_in_basket\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.no_items_in_basket'}\",\"note\":\"@:{'templates.generated.compat.global.note'}\",\"pickup\":\"@:pagination.pickup\",\"po_number\":\"@:{'templates.generated.compat.objects.columns.po_number'}\",\"product_selection_unavailable\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.product_selection_unavailable'}\",\"reference\":\"@:common.reference\",\"required\":\"@:{'templates.generated.compat.global.required'}\",\"select_a_wash_hall\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.select_a_wash_hall'}\",\"select_date_time_customer\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.select_date_time_customer'}\",\"select_department\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.select_department'}\",\"select_products\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.select_products'}\",\"select_vehicle\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.select_vehicle'}\",\"select_wash_hall\":\"@:{'templates.generated.compat.user_dashboard.bookings.book.select_wash_hall'}\",\"step_x_of_y\":\"@:{'templates.generated.compat.time_booking_flow.step_of'}\",\"total\":\"@:{'templates.generated.compat.global.total'}\",\"wash_hall_email_subject\":\"@:{'templates.generated.compat.common.order'}\"},\"subtitle\":\"@:{'templates.generated.compat.user_dashboard.bookings.subtitle'}\",\"title\":\"@:{'templates.generated.compat.user_dashboard.bookings.title'}\"},\"home\":{\"subtitle\":\"@:{'templates.generated.compat.user_dashboard.home.subtitle'}\",\"title\":\"@:{'templates.generated.compat.departments.dashboard'}\"},\"invoices\":{\"subtitle\":\"@:{'templates.generated.compat.user_dashboard.invoices.subtitle'}\",\"title\":\"@:{'templates.generated.compat.user_dashboard.invoices.title'}\"},\"materials\":{\"subtitle\":\"@:{'templates.generated.compat.user_dashboard.materials.subtitle'}\",\"title\":\"@:{'templates.generated.compat.user_dashboard.materials.title'}\"},\"menu\":{\"bookings\":\"@:{'templates.generated.compat.common.bookings'}\",\"home\":\"@:{'templates.generated.compat.global.home'}\",\"invoices\":\"@:common.invoices\",\"new_booking\":\"@:{'templates.generated.compat.pagination.new_booking'}\",\"profile\":\"@:common.profile\",\"settings\":\"@:{'templates.generated.compat.admin.pos.settings'}\",\"statistics\":\"@:{'templates.generated.compat.user_dashboard.menu.statistics'}\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"wash\":\"@:{'templates.generated.compat.tables.bookings.wash'}\",\"wash_log\":\"@:{'templates.generated.compat.common.bookings'}\"},\"navigation\":{\"departments\":\"@:{'templates.generated.compat.departments.title'}\"},\"orders\":{\"single_subtitle\":\"@:{'templates.generated.compat.user_dashboard.orders.single_subtitle'}\",\"single_title\":\"@:admin.pos.transaction\",\"subtitle\":\"@:{'templates.generated.compat.user_dashboard.orders.subtitle'}\",\"title\":\"@:{'templates.generated.compat.user_dashboard.orders.title'}\"},\"profile\":{\"default_department\":{\"description\":\"@:{'templates.generated.compat.user_dashboard.profile.default_department.description'}\",\"title\":\"@:{'templates.generated.compat.user_dashboard.profile.default_department.title'}\"},\"driver\":{\"contact_description\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.contact_description'}\",\"contact_subtitle\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.contact_subtitle'}\",\"country_code\":\"@:global.phone_country_code\",\"country_code_desc\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.country_code_desc'}\",\"customer_description\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.customer_description'}\",\"customer_subtitle\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.customer_subtitle'}\",\"customer_switch_help\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.customer_switch_help'}\",\"edit_email\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.edit_email'}\",\"edit_name\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.edit_name'}\",\"email\":\"@:{'templates.generated.compat.objects.columns.email'}\",\"email_desc\":\"@:{'templates.generated.compat.objects.columns.email_desc'}\",\"name\":\"@:common.name\",\"name_desc\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.name_desc'}\",\"phone\":\"@:global.phone_number\",\"phone_desc\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.phone_desc'}\",\"profile_description\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.profile_description'}\",\"profile_subtitle\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.profile_subtitle'}\",\"title\":\"@:{'templates.generated.compat.objects.subuser_grants.title'}\",\"username\":\"@:auth.username\",\"username_desc\":\"@:{'templates.generated.compat.user_dashboard.profile.driver.username_desc'}\"},\"invoicing\":{\"account_name_desc\":\"@:{'templates.generated.compat.user_dashboard.profile.invoicing.account_name_desc'}\",\"account_number_desc\":\"@:{'templates.generated.compat.user_dashboard.profile.invoicing.account_number_desc'}\",\"description\":\"@:{'templates.generated.compat.user_dashboard.profile.invoicing.description'}\",\"title\":\"@:{'templates.generated.compat.user_dashboard.profile.invoicing.title'}\"},\"microsoft_auth\":{\"create_event\":\"@:{'templates.generated.compat.user_dashboard.profile.microsoft_auth.create_event'}\",\"logged_in_as\":\"@:{'templates.generated.compat.user_dashboard.profile.microsoft_auth.logged_in_as'}\",\"login\":\"@:{'templates.generated.compat.user_dashboard.profile.microsoft_auth.login'}\",\"logout\":\"@:common.logout\",\"not_logged_in\":\"@:{'templates.generated.compat.user_dashboard.profile.microsoft_auth.not_logged_in'}\",\"title\":\"@:{'templates.generated.compat.user_dashboard.profile.microsoft_auth.title'}\"},\"microsoft\":{\"description\":\"@:{'templates.generated.compat.user_dashboard.profile.microsoft.description'}\",\"title\":\"@:{'templates.generated.compat.user_dashboard.profile.microsoft.title'}\"},\"notifications\":{\"booking_email\":\"@:{'templates.generated.compat.user_dashboard.profile.notifications.booking_email'}\",\"booking_email_desc\":\"@:{'templates.generated.compat.user_dashboard.profile.notifications.booking_email_desc'}\",\"description\":\"@:{'templates.generated.compat.user_dashboard.profile.notifications.description'}\",\"edit_booking_email\":\"@:{'templates.generated.compat.global.edit'}\",\"edit_sms_phone\":\"@:{'templates.generated.compat.global.edit'}\",\"email_notifications\":\"@:{'templates.generated.compat.user_dashboard.profile.notifications.email_notifications'}\",\"email_notifications_desc\":\"@:{'templates.generated.compat.user_dashboard.profile.notifications.email_notifications_desc'}\",\"email_subtitle\":\"@:{'templates.generated.compat.objects.columns.email'}\",\"sms_notifications\":\"@:{'templates.generated.compat.settings.sms_notifications'}\",\"sms_notifications_desc\":\"@:{'templates.generated.compat.settings.sms_notifications_desc'}\",\"sms_phone\":\"@:{'templates.generated.compat.user_dashboard.profile.notifications.sms_phone'}\",\"sms_phone_desc\":\"@:{'templates.generated.compat.user_dashboard.profile.notifications.sms_phone_desc'}\",\"sms_subtitle\":\"@:time_booking_flow.sms\",\"superuser_notifications\":\"@:{'templates.generated.compat.user_dashboard.profile.notifications.superuser_notifications'}\",\"superuser_notifications_desc\":\"@:{'templates.generated.compat.user_dashboard.profile.notifications.superuser_notifications_desc'}\",\"title\":\"@:nav.notifications\"},\"security\":{\"change_password\":\"@:{'templates.generated.compat.global.edit'}\",\"description\":\"@:{'templates.generated.compat.user_dashboard.profile.security.description'}\",\"edit_email\":\"@:{'templates.generated.compat.global.edit'}\",\"edit_phone\":\"@:{'templates.generated.compat.global.edit'}\",\"email_desc\":\"@:{'templates.generated.compat.user_dashboard.profile.security.email_desc'}\",\"logout\":\"@:common.logout\",\"password_label\":\"@:global.password\",\"title\":\"@:settings.security\"},\"title\":\"@:{'templates.generated.compat.user_dashboard.profile.title'}\"},\"settings\":{\"subtitle\":\"@:{'templates.generated.compat.user_dashboard.settings.subtitle'}\",\"title\":\"@:common.settings\"},\"sidebar\":{\"book\":\"@:{'templates.generated.compat.user_dashboard.sidebar.book'}\",\"bookings\":\"@:common.bookings\",\"home\":\"@:{'templates.generated.compat.global.home'}\",\"invoices\":\"@:common.invoices\",\"language\":\"@:{'templates.generated.compat.configuration.general.language'}\",\"logout\":\"@:{'templates.generated.compat.user_dashboard.sidebar.logout'}\",\"orders\":\"@:common.orders\",\"profile\":\"@:common.profile\",\"settings\":\"@:common.settings\",\"vehicles\":\"@:{'templates.generated.compat.common.vehicles'}\",\"wash\":\"@:{'templates.generated.compat.tables.bookings.wash'}\"},\"vehicles\":{\"new_subtitle\":\"@:{'templates.generated.compat.user_dashboard.vehicles.new_subtitle'}\",\"new_title\":\"@:vehicles.new_vehicle\",\"single_title\":\"@:{'templates.generated.compat.user_dashboard.vehicles.single_title'}\",\"subtitle\":\"@:{'templates.generated.compat.user_dashboard.vehicles.subtitle'}\",\"title\":\"@:{'templates.generated.compat.user_bookings.my_vehicles'}\"},\"wash\":{\"loading\":\"@:common.loading\",\"nearest_department\":\"@:{'templates.generated.compat.user_dashboard.wash.nearest_department'}\",\"start_wash\":\"@:{'templates.generated.compat.self_wash.start_wash'}\",\"subtitle\":\"@:{'templates.generated.compat.user_dashboard.wash.subtitle'}\",\"title\":\"@:{'templates.generated.compat.self_wash.start_wash'}\"}},\"user_home\":{\"book_wash_desc\":\"@:{'templates.generated.compat.book_wash.title_desc'}\",\"book_wash\":\"@:{'templates.generated.compat.book_wash.title'}\",\"contact_info_or_email\":\"@:{'templates.generated.compat.user_home.contact_info_or_email'}\",\"contact_info_prefix\":\"@:{'templates.generated.compat.user_home.contact_info_prefix'}\",\"create_vehicle_desc\":\"@:{'templates.generated.compat.user_home.create_vehicle_desc'}\",\"create_vehicle\":\"@:{'templates.generated.compat.user_home.create_vehicle'}\",\"download_certificates_desc\":\"@:{'templates.generated.compat.user_home.download_certificates_desc'}\",\"download_certificates\":\"@:{'templates.generated.compat.user_home.download_certificates'}\",\"download_invoices_desc\":\"@:{'templates.generated.compat.user_home.download_invoices_desc'}\",\"download_invoices\":\"@:{'templates.generated.compat.user_home.download_invoices'}\",\"empty_state_desc\":\"@:{'templates.generated.compat.user_home.empty_state_desc'}\",\"empty_state_title\":\"@:{'templates.generated.compat.user_home.empty_state_title'}\",\"select_customer_desc\":\"@:{'templates.generated.compat.user_home.select_customer_desc'}\",\"select_customer\":\"@:{'templates.generated.compat.user_home.select_customer'}\",\"start_wash_desc\":\"@:{'templates.generated.compat.self_wash.start_wash_desc'}\",\"start_wash\":\"@:{'templates.generated.compat.self_wash.start_wash'}\",\"welcome\":\"@:messages.welcome\"},\"user_menu\":{\"home\":\"@:{'templates.generated.compat.global.home'}\",\"my_bookings\":\"@:{'templates.generated.compat.user_menu.my_bookings'}\",\"my_invoices\":\"@:{'templates.generated.compat.user_menu.my_invoices'}\",\"my_vehicles\":\"@:{'templates.generated.compat.user_menu.my_vehicles'}\",\"my_washes\":\"@:{'templates.generated.compat.user_menu.my_washes'}\"},\"user_navigation\":{\"back_to_own_user\":\"@:{'templates.generated.compat.user_navigation.back_to_own_user'}\",\"create_user\":\"@:global.register\",\"guest\":\"@:{'templates.generated.compat.user_navigation.guest'}\",\"login\":\"@:{'templates.generated.compat.global.login'}\",\"logout\":\"@:common.logout\",\"my_customer_page\":\"@:{'templates.generated.compat.user_navigation.my_customer_page'}\",\"my_profile\":\"@:{'templates.generated.compat.user_navigation.my_profile'}\"},\"user_notifications\":{\"error_title\":\"@:common.error\",\"mark_as_read_error\":\"@:{'templates.generated.compat.user_notifications.mark_as_read_error'}\"},\"user_vehicles\":{\"activate\":\"@:{'templates.generated.compat.user_vehicles.activate'}\",\"active\":\"@:common.active\",\"add_new_vehicle\":\"@:{'templates.generated.compat.user_vehicles.add_new_vehicle'}\",\"add_vehicle_subtitle\":\"@:{'templates.generated.compat.customers.add_vehicle_subtitle'}\",\"add_vehicle\":\"@:{'templates.generated.compat.customers.add_vehicle'}\",\"deactivate\":\"@:{'templates.generated.compat.user_vehicles.deactivate'}\",\"inactive\":\"@:common.inactive\",\"license_plate_label\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"no_vehicle_type_configured\":\"@:{'templates.generated.compat.user_vehicles.no_vehicle_type_configured'}\",\"notes_label\":\"@:{'templates.generated.compat.objects.columns.notes'}\",\"reference_placeholder\":\"@:{'templates.generated.compat.user_vehicles.reference_placeholder'}\",\"self_service_placeholder\":\"@:{'templates.generated.compat.user_vehicles.self_service_placeholder'}\",\"self_service\":\"@:{'templates.generated.compat.user_vehicles.self_service'}\",\"subscriptions_placeholder\":\"@:{'templates.generated.compat.user_vehicles.subscriptions_placeholder'}\",\"type_label\":\"@:products.type\",\"vehicle_count_placeholder\":\"@:{'templates.generated.compat.user_vehicles.vehicle_count_placeholder'}\",\"vehicle_type\":\"@:{'templates.generated.compat.products.form.vehicle_type'}\",\"vehicles_with_self_service\":\"@:{'templates.generated.compat.user_vehicles.vehicles_with_self_service'}\",\"vehicles_with_subscriptions\":\"@:{'templates.generated.compat.user_vehicles.vehicles_with_subscriptions'}\",\"view_all_self_service\":\"@:{'templates.generated.compat.user_vehicles.view_all_self_service'}\",\"view_all_subscriptions\":\"@:{'templates.generated.compat.user_vehicles.view_all_subscriptions'}\",\"view_all_vehicles\":\"@:{'templates.generated.compat.user_vehicles.view_all_vehicles'}\",\"wash_subscription\":\"@:{'templates.generated.compat.user_admin.wash_subscriptions'}\",\"with_self_service\":\"@:{'templates.generated.compat.user_vehicles.with_self_service'}\",\"without_self_service\":\"@:{'templates.generated.compat.user_vehicles.without_self_service'}\"},\"validation\":{\"email\":\"@:{'templates.generated.compat.validation.email'}\",\"invalid\":\"@:{'templates.generated.compat.validation.invalid'}\",\"max_length\":\"@:{'templates.generated.compat.validation.max_length'}\",\"max\":\"@:{'templates.generated.compat.validation.max'}\",\"min_length\":\"@:{'templates.generated.compat.validation.min_length'}\",\"min\":\"@:{'templates.generated.compat.validation.min'}\",\"numeric\":\"@:{'templates.generated.compat.validation.numeric'}\",\"password_confirmation\":\"@:{'templates.generated.compat.validation.password_confirmation'}\",\"password_match\":\"@:{'templates.generated.compat.validation.password_match'}\",\"password\":\"@:{'templates.generated.compat.validation.password'}\",\"phone\":\"@:{'templates.generated.compat.validation.phone'}\",\"required\":\"@:{'templates.generated.compat.validation.required'}\"},\"vehicles\":{\"actions\":\"@:common.actions\",\"add\":\"@:{'templates.generated.compat.vehicles.add'}\",\"add_modal\":{\"customer_label\":\"@:{'templates.generated.compat.vehicles.add_modal.customer_label'}\",\"customer_placeholder\":\"@:{'templates.generated.compat.vehicles.add_modal.customer_placeholder'}\",\"error\":\"@:{'templates.generated.compat.vehicles.add_modal.error'}\",\"no_customer_results\":\"@:{'templates.generated.compat.vehicles.add_modal.no_customer_results'}\",\"reference_placeholder\":\"@:{'templates.generated.compat.vehicles.add_modal.reference_placeholder'}\",\"registration_placeholder\":\"@:{'templates.generated.compat.vehicles.add_modal.registration_placeholder'}\",\"selected_customer\":\"@:{'templates.generated.compat.vehicles.add_modal.selected_customer'}\",\"submit\":\"@:{'templates.generated.compat.vehicles.add_modal.submit'}\",\"title\":\"@:{'templates.generated.compat.vehicles.add_modal.title'}\",\"type_load_error\":\"@:{'templates.generated.compat.vehicles.add_modal.type_load_error'}\",\"type_placeholder\":\"@:{'templates.generated.compat.vehicles.add_modal.type_placeholder'}\",\"validation_error\":\"@:{'templates.generated.compat.vehicles.add_modal.validation_error'}\"},\"brand\":\"@:{'templates.generated.compat.vehicles.brand'}\",\"color\":\"@:{'templates.generated.compat.vehicles.color'}\",\"created_at\":\"@:{'templates.generated.compat.global.generated'}\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"delete_vehicle\":\"@:{'templates.generated.compat.vehicles.delete_vehicle'}\",\"delete\":\"@:{'templates.generated.compat.vehicles.delete'}\",\"edit_vehicle\":\"@:vehicles.edit\",\"edit\":\"@:{'templates.generated.compat.vehicles.edit'}\",\"form\":{\"brand\":\"@:{'templates.generated.compat.vehicles.brand'}\",\"customer\":\"@:{'templates.generated.compat.common.customer'}\",\"license_plate\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"submit\":\"@:{'templates.generated.compat.products.form.save'}\",\"type\":\"@:products.type\"},\"history\":\"@:global.history\",\"license_plate\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"model\":\"@:{'templates.generated.compat.vehicles.model'}\",\"new_vehicle\":\"@:{'templates.generated.compat.vehicles.new_vehicle'}\",\"no_previous_washes\":\"@:{'templates.generated.compat.vehicles.no_previous_washes'}\",\"no_vehicles\":\"@:{'templates.generated.compat.vehicles.no_vehicles'}\",\"notes\":\"@:common.notes\",\"owner\":\"@:{'templates.generated.compat.vehicles.owner'}\",\"plate_number\":\"@:{'templates.generated.compat.tables.common.registration_number'}\",\"previous_wash\":\"@:{'templates.generated.compat.vehicles.previous_wash'}\",\"previous_washes_count\":\"@:{'templates.generated.compat.vehicles.previous_washes_count'}\",\"previous_washes\":\"@:{'templates.generated.compat.vehicles.previous_washes'}\",\"search_placeholder\":\"@:{'templates.generated.compat.vehicles.search_placeholder'}\",\"search\":\"@:{'templates.generated.compat.vehicles.search'}\",\"singular\":\"@:common.vehicle\",\"subtitle\":\"@:{'templates.generated.compat.vehicles.subtitle'}\",\"title\":\"@:{'templates.generated.compat.common.vehicles'}\",\"type\":\"@:{'templates.generated.compat.vehicles.type'}\",\"types\":{\"bus\":\"@:{'templates.generated.compat.vehicles.types.bus'}\",\"car\":\"@:{'templates.generated.compat.common.were'}\",\"other\":\"@:{'templates.generated.compat.user_admin.other'}\",\"semi\":\"@:{'templates.generated.compat.vehicles.types.semi'}\",\"tractor\":\"@:{'templates.generated.compat.vehicles.types.tractor'}\",\"trailer\":\"@:{'templates.generated.compat.vehicles.types.trailer'}\",\"truck\":\"@:{'templates.generated.compat.vehicles.types.truck'}\",\"van\":\"@:{'templates.generated.compat.vehicles.types.van'}\"},\"vehicle_types\":{\"box\":\"@:{'templates.generated.compat.vehicles.vehicle_types.box'}\",\"bus\":\"@:vehicles.types.bus\",\"car\":\"@:{'templates.generated.compat.vehicles.vehicle_types.car'}\",\"crew\":\"@:{'templates.generated.compat.vehicles.vehicle_types.crew'}\",\"lift\":\"@:pos.vehicle_types.lift\",\"motorcycle\":\"@:pos.vehicle_types.motorcykel\",\"other\":\"@:{'templates.generated.compat.user_admin.other'}\",\"semi\":\"@:{'templates.generated.compat.vehicles.vehicle_types.semi'}\",\"tractor\":\"@:{'templates.generated.compat.pos.vehicle_types.traktor'}\",\"trailer\":\"@:{'templates.generated.compat.pos.vehicle_types.trailer'}\",\"truck\":\"@:{'templates.generated.compat.pos.vehicle_types.lastbil'}\",\"van\":\"@:{'templates.generated.compat.pos.vehicle_types.varevogn'}\"},\"wash_history\":\"@:{'templates.generated.compat.vehicles.wash_history'}\",\"year\":\"@:common.year\"},\"xlvask\":{\"admin\":{\"customer_count\":\"@:{'templates.generated.compat.xlvask.admin.customer_count'}\",\"customers\":\"@:global.customers\",\"fetch_customers\":\"@:{'templates.generated.compat.xlvask.admin.fetch_customers'}\",\"fetch_objects\":\"@:{'templates.generated.compat.xlvask.admin.fetch_objects'}\",\"object_count\":\"@:{'templates.generated.compat.xlvask.admin.object_count'}\",\"objects\":\"@:{'templates.generated.compat.xlvask.admin.objects'}\",\"subtitle\":\"@:{'templates.generated.compat.xlvask.admin.subtitle'}\",\"title\":\"@:{'templates.generated.compat.xlvask.admin.title'}\"}}}");
const locales = {"da":{"calendar":{"fullcalendar":{"dayNames":["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],"dayNamesShort":["Søn","Man","Tir","Ons","Tor","Fre","Lør"],"monthNames":["Januar","Februar","Mars","April","Maj","Juni","Juli","August","September","Oktober","November","Desember"],"monthNamesShort":["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Des"]}}},"en":{"calendar":{"fullcalendar":{"dayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dayNamesShort":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"monthNames":["January","February","March","April","May","June","July","August","September","October","November","December"],"monthNamesShort":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}}},"sv":{"calendar":{"fullcalendar":{"dayNames":["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],"dayNamesShort":["Sön","Man","Tir","Ons","Tor","Fre","Lör"],"monthNames":["Januari","Februari","Mars","April","Mai","Juni","Juli","Augusti","September","Oktober","November","Desember"],"monthNamesShort":["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"]}}},"de":{"calendar":{"fullcalendar":{"dayNames":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"dayNamesShort":["Søn","Man","Tir","Mi","Do","Fre","Lør"],"monthNames":["Januar","Februar","M?rz","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],"monthNamesShort":["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"]}}},"no":{"calendar":{"fullcalendar":{"dayNames":["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],"dayNamesShort":["Søn","Mann","Tir","Ons","Tor","Fre","Lør"],"monthNames":["januar","februar","Mars","april","mai","Juni","Juli","august","september","Oktober","november","desember"],"monthNamesShort":["Jan","feb","Mar","apr","mai","jun","jul","august","sep","Okt","nov","Av"]}}}};
const globalV2 = {
  shared,
  locales,
};

const isPlainObject = (value) =>
  value !== null && typeof value === 'object' && !Array.isArray(value);

const mergeMessages = (sharedMessages = {}, localeMessages = {}) => {
  const mergedMessages = { ...sharedMessages };

  for (const [key, value] of Object.entries(localeMessages)) {
    if (isPlainObject(value) && isPlainObject(mergedMessages[key])) {
      mergedMessages[key] = mergeMessages(mergedMessages[key], value);
    } else {
      mergedMessages[key] = value;
    }
  }

  return mergedMessages
};

const buildV2LocaleMessages = (locale, localeMessages) =>
  mergeMessages(
    mergeMessages(globalV2.shared, globalV2.locales?.[locale]),
    localeMessages
  );

const i18nMessages = {
  da: buildV2LocaleMessages('da', daV2),
  en: buildV2LocaleMessages('en', enV2),
  sv: buildV2LocaleMessages('sv', svV2),
  de: buildV2LocaleMessages('de', deV2),
  no: buildV2LocaleMessages('no', noV2)
};

const readLocalStorage = (key) => {
  try {
    if (typeof localStorage === 'undefined') {
      return null
    }
    return localStorage.getItem(key)
  } catch {
    return null
  }
};

// Get saved locale from localStorage or use 'da' as default
const savedLocale = readLocalStorage('locale') || 'da';

const i18n = createI18n({
  legacy: false, // Use Composition API mode
  locale: savedLocale, // Set locale from localStorage or default
  fallbackLocale: 'da', // Fallback to Danish if translation is missing
  messages: i18nMessages,
  // Global injections for $t, $te, etc.
  globalInjection: true
});

/**
* @vue/compiler-core v3.5.31
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
const FRAGMENT = /* @__PURE__ */ Symbol(false ? `Fragment` : ``);
const TELEPORT = /* @__PURE__ */ Symbol(false ? `Teleport` : ``);
const SUSPENSE = /* @__PURE__ */ Symbol(false ? `Suspense` : ``);
const KEEP_ALIVE = /* @__PURE__ */ Symbol(false ? `KeepAlive` : ``);
const BASE_TRANSITION = /* @__PURE__ */ Symbol(
  false ? `BaseTransition` : ``
);
const OPEN_BLOCK = /* @__PURE__ */ Symbol(false ? `openBlock` : ``);
const CREATE_BLOCK = /* @__PURE__ */ Symbol(false ? `createBlock` : ``);
const CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol(
  false ? `createElementBlock` : ``
);
const CREATE_VNODE = /* @__PURE__ */ Symbol(false ? `createVNode` : ``);
const CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol(
  false ? `createElementVNode` : ``
);
const CREATE_COMMENT = /* @__PURE__ */ Symbol(
  false ? `createCommentVNode` : ``
);
const CREATE_TEXT = /* @__PURE__ */ Symbol(
  false ? `createTextVNode` : ``
);
const CREATE_STATIC = /* @__PURE__ */ Symbol(
  false ? `createStaticVNode` : ``
);
const RESOLVE_COMPONENT = /* @__PURE__ */ Symbol(
  false ? `resolveComponent` : ``
);
const RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol(
  false ? `resolveDynamicComponent` : ``
);
const RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol(
  false ? `resolveDirective` : ``
);
const RESOLVE_FILTER = /* @__PURE__ */ Symbol(
  false ? `resolveFilter` : ``
);
const WITH_DIRECTIVES = /* @__PURE__ */ Symbol(
  false ? `withDirectives` : ``
);
const RENDER_LIST = /* @__PURE__ */ Symbol(false ? `renderList` : ``);
const RENDER_SLOT = /* @__PURE__ */ Symbol(false ? `renderSlot` : ``);
const CREATE_SLOTS = /* @__PURE__ */ Symbol(false ? `createSlots` : ``);
const TO_DISPLAY_STRING = /* @__PURE__ */ Symbol(
  false ? `toDisplayString` : ``
);
const MERGE_PROPS = /* @__PURE__ */ Symbol(false ? `mergeProps` : ``);
const NORMALIZE_CLASS = /* @__PURE__ */ Symbol(
  false ? `normalizeClass` : ``
);
const NORMALIZE_STYLE = /* @__PURE__ */ Symbol(
  false ? `normalizeStyle` : ``
);
const NORMALIZE_PROPS = /* @__PURE__ */ Symbol(
  false ? `normalizeProps` : ``
);
const GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol(
  false ? `guardReactiveProps` : ``
);
const TO_HANDLERS = /* @__PURE__ */ Symbol(false ? `toHandlers` : ``);
const CAMELIZE = /* @__PURE__ */ Symbol(false ? `camelize` : ``);
const CAPITALIZE = /* @__PURE__ */ Symbol(false ? `capitalize` : ``);
const TO_HANDLER_KEY = /* @__PURE__ */ Symbol(
  false ? `toHandlerKey` : ``
);
const SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol(
  false ? `setBlockTracking` : ``
);
const PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(false ? `pushScopeId` : ``);
const POP_SCOPE_ID = /* @__PURE__ */ Symbol(false ? `popScopeId` : ``);
const WITH_CTX = /* @__PURE__ */ Symbol(false ? `withCtx` : ``);
const UNREF = /* @__PURE__ */ Symbol(false ? `unref` : ``);
const IS_REF = /* @__PURE__ */ Symbol(false ? `isRef` : ``);
const WITH_MEMO = /* @__PURE__ */ Symbol(false ? `withMemo` : ``);
const IS_MEMO_SAME = /* @__PURE__ */ Symbol(false ? `isMemoSame` : ``);
const helperNameMap = {
  [FRAGMENT]: `Fragment`,
  [TELEPORT]: `Teleport`,
  [SUSPENSE]: `Suspense`,
  [KEEP_ALIVE]: `KeepAlive`,
  [BASE_TRANSITION]: `BaseTransition`,
  [OPEN_BLOCK]: `openBlock`,
  [CREATE_BLOCK]: `createBlock`,
  [CREATE_ELEMENT_BLOCK]: `createElementBlock`,
  [CREATE_VNODE]: `createVNode`,
  [CREATE_ELEMENT_VNODE]: `createElementVNode`,
  [CREATE_COMMENT]: `createCommentVNode`,
  [CREATE_TEXT]: `createTextVNode`,
  [CREATE_STATIC]: `createStaticVNode`,
  [RESOLVE_COMPONENT]: `resolveComponent`,
  [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`,
  [RESOLVE_DIRECTIVE]: `resolveDirective`,
  [RESOLVE_FILTER]: `resolveFilter`,
  [WITH_DIRECTIVES]: `withDirectives`,
  [RENDER_LIST]: `renderList`,
  [RENDER_SLOT]: `renderSlot`,
  [CREATE_SLOTS]: `createSlots`,
  [TO_DISPLAY_STRING]: `toDisplayString`,
  [MERGE_PROPS]: `mergeProps`,
  [NORMALIZE_CLASS]: `normalizeClass`,
  [NORMALIZE_STYLE]: `normalizeStyle`,
  [NORMALIZE_PROPS]: `normalizeProps`,
  [GUARD_REACTIVE_PROPS]: `guardReactiveProps`,
  [TO_HANDLERS]: `toHandlers`,
  [CAMELIZE]: `camelize`,
  [CAPITALIZE]: `capitalize`,
  [TO_HANDLER_KEY]: `toHandlerKey`,
  [SET_BLOCK_TRACKING]: `setBlockTracking`,
  [PUSH_SCOPE_ID]: `pushScopeId`,
  [POP_SCOPE_ID]: `popScopeId`,
  [WITH_CTX]: `withCtx`,
  [UNREF]: `unref`,
  [IS_REF]: `isRef`,
  [WITH_MEMO]: `withMemo`,
  [IS_MEMO_SAME]: `isMemoSame`
};
function registerRuntimeHelpers(helpers) {
  Object.getOwnPropertySymbols(helpers).forEach((s) => {
    helperNameMap[s] = helpers[s];
  });
}
const Namespaces = {
  "HTML": 0,
  "0": "HTML",
  "SVG": 1,
  "1": "SVG",
  "MATH_ML": 2,
  "2": "MATH_ML"
};
const NodeTypes = {
  "ROOT": 0,
  "0": "ROOT",
  "ELEMENT": 1,
  "1": "ELEMENT",
  "TEXT": 2,
  "2": "TEXT",
  "COMMENT": 3,
  "3": "COMMENT",
  "SIMPLE_EXPRESSION": 4,
  "4": "SIMPLE_EXPRESSION",
  "INTERPOLATION": 5,
  "5": "INTERPOLATION",
  "ATTRIBUTE": 6,
  "6": "ATTRIBUTE",
  "DIRECTIVE": 7,
  "7": "DIRECTIVE",
  "COMPOUND_EXPRESSION": 8,
  "8": "COMPOUND_EXPRESSION",
  "IF": 9,
  "9": "IF",
  "IF_BRANCH": 10,
  "10": "IF_BRANCH",
  "FOR": 11,
  "11": "FOR",
  "TEXT_CALL": 12,
  "12": "TEXT_CALL",
  "VNODE_CALL": 13,
  "13": "VNODE_CALL",
  "JS_CALL_EXPRESSION": 14,
  "14": "JS_CALL_EXPRESSION",
  "JS_OBJECT_EXPRESSION": 15,
  "15": "JS_OBJECT_EXPRESSION",
  "JS_PROPERTY": 16,
  "16": "JS_PROPERTY",
  "JS_ARRAY_EXPRESSION": 17,
  "17": "JS_ARRAY_EXPRESSION",
  "JS_FUNCTION_EXPRESSION": 18,
  "18": "JS_FUNCTION_EXPRESSION",
  "JS_CONDITIONAL_EXPRESSION": 19,
  "19": "JS_CONDITIONAL_EXPRESSION",
  "JS_CACHE_EXPRESSION": 20,
  "20": "JS_CACHE_EXPRESSION",
  "JS_BLOCK_STATEMENT": 21,
  "21": "JS_BLOCK_STATEMENT",
  "JS_TEMPLATE_LITERAL": 22,
  "22": "JS_TEMPLATE_LITERAL",
  "JS_IF_STATEMENT": 23,
  "23": "JS_IF_STATEMENT",
  "JS_ASSIGNMENT_EXPRESSION": 24,
  "24": "JS_ASSIGNMENT_EXPRESSION",
  "JS_SEQUENCE_EXPRESSION": 25,
  "25": "JS_SEQUENCE_EXPRESSION",
  "JS_RETURN_STATEMENT": 26,
  "26": "JS_RETURN_STATEMENT"
};
const ElementTypes = {
  "ELEMENT": 0,
  "0": "ELEMENT",
  "COMPONENT": 1,
  "1": "COMPONENT",
  "SLOT": 2,
  "2": "SLOT",
  "TEMPLATE": 3,
  "3": "TEMPLATE"
};
const ConstantTypes = {
  "NOT_CONSTANT": 0,
  "0": "NOT_CONSTANT",
  "CAN_SKIP_PATCH": 1,
  "1": "CAN_SKIP_PATCH",
  "CAN_CACHE": 2,
  "2": "CAN_CACHE",
  "CAN_STRINGIFY": 3,
  "3": "CAN_STRINGIFY"
};
const locStub = {
  start: { line: 1, column: 1, offset: 0 },
  end: { line: 1, column: 1, offset: 0 },
  source: ""
};
function createRoot(children, source = "") {
  return {
    type: 0,
    source,
    children,
    helpers: /* @__PURE__ */ new Set(),
    components: [],
    directives: [],
    hoists: [],
    imports: [],
    cached: [],
    temps: 0,
    codegenNode: void 0,
    loc: locStub
  };
}
function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent2 = false, loc = locStub) {
  if (context) {
    if (isBlock) {
      context.helper(OPEN_BLOCK);
      context.helper(getVNodeBlockHelper(context.inSSR, isComponent2));
    } else {
      context.helper(getVNodeHelper(context.inSSR, isComponent2));
    }
    if (directives) {
      context.helper(WITH_DIRECTIVES);
    }
  }
  return {
    type: 13,
    tag,
    props,
    children,
    patchFlag,
    dynamicProps,
    directives,
    isBlock,
    disableTracking,
    isComponent: isComponent2,
    loc
  };
}
function createArrayExpression(elements, loc = locStub) {
  return {
    type: 17,
    loc,
    elements
  };
}
function createObjectExpression(properties, loc = locStub) {
  return {
    type: 15,
    loc,
    properties
  };
}
function createObjectProperty(key, value) {
  return {
    type: 16,
    loc: locStub,
    key: isString$2(key) ? createSimpleExpression(key, true) : key,
    value
  };
}
function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) {
  return {
    type: 4,
    loc,
    content,
    isStatic,
    constType: isStatic ? 3 : constType
  };
}
function createInterpolation(content, loc) {
  return {
    type: 5,
    loc,
    content: isString$2(content) ? createSimpleExpression(content, false, loc) : content
  };
}
function createCompoundExpression(children, loc = locStub) {
  return {
    type: 8,
    loc,
    children
  };
}
function createCallExpression(callee, args = [], loc = locStub) {
  return {
    type: 14,
    loc,
    callee,
    arguments: args
  };
}
function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) {
  return {
    type: 18,
    params,
    returns,
    newline,
    isSlot,
    loc
  };
}
function createConditionalExpression(test, consequent, alternate, newline = true) {
  return {
    type: 19,
    test,
    consequent,
    alternate,
    newline,
    loc: locStub
  };
}
function createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) {
  return {
    type: 20,
    index,
    value,
    needPauseTracking,
    inVOnce,
    needArraySpread: false,
    loc: locStub
  };
}
function createBlockStatement(body) {
  return {
    type: 21,
    body,
    loc: locStub
  };
}
function createTemplateLiteral(elements) {
  return {
    type: 22,
    elements,
    loc: locStub
  };
}
function createIfStatement(test, consequent, alternate) {
  return {
    type: 23,
    test,
    consequent,
    alternate,
    loc: locStub
  };
}
function createAssignmentExpression(left, right) {
  return {
    type: 24,
    left,
    right,
    loc: locStub
  };
}
function createSequenceExpression(expressions) {
  return {
    type: 25,
    expressions,
    loc: locStub
  };
}
function createReturnStatement(returns) {
  return {
    type: 26,
    returns,
    loc: locStub
  };
}
function getVNodeHelper(ssr, isComponent2) {
  return ssr || isComponent2 ? CREATE_VNODE : CREATE_ELEMENT_VNODE;
}
function getVNodeBlockHelper(ssr, isComponent2) {
  return ssr || isComponent2 ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK;
}
function convertToBlock(node, { helper, removeHelper, inSSR }) {
  if (!node.isBlock) {
    node.isBlock = true;
    removeHelper(getVNodeHelper(inSSR, node.isComponent));
    helper(OPEN_BLOCK);
    helper(getVNodeBlockHelper(inSSR, node.isComponent));
  }
}
const defaultDelimitersOpen = new Uint8Array([123, 123]);
const defaultDelimitersClose = new Uint8Array([125, 125]);
function isTagStartChar(c) {
  return c >= 97 && c <= 122 || c >= 65 && c <= 90;
}
function isWhitespace(c) {
  return c === 32 || c === 10 || c === 9 || c === 12 || c === 13;
}
function isEndOfTagSection(c) {
  return c === 47 || c === 62 || isWhitespace(c);
}
function toCharCodes(str) {
  const ret = new Uint8Array(str.length);
  for (let i = 0; i < str.length; i++) {
    ret[i] = str.charCodeAt(i);
  }
  return ret;
}
const Sequences = {
  Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
  // CDATA[
  CdataEnd: new Uint8Array([93, 93, 62]),
  // ]]>
  CommentEnd: new Uint8Array([45, 45, 62]),
  // `-->`
  ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
  // `<\/script`
  StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
  // `</style`
  TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]),
  // `</title`
  TextareaEnd: new Uint8Array([
    60,
    47,
    116,
    101,
    120,
    116,
    97,
    114,
    101,
    97
  ])
  // `</textarea
};
class Tokenizer {
  constructor(stack2, cbs) {
    this.stack = stack2;
    this.cbs = cbs;
    this.state = 1;
    this.buffer = "";
    this.sectionStart = 0;
    this.index = 0;
    this.entityStart = 0;
    this.baseState = 1;
    this.inRCDATA = false;
    this.inXML = false;
    this.inVPre = false;
    this.newlines = [];
    this.mode = 0;
    this.delimiterOpen = defaultDelimitersOpen;
    this.delimiterClose = defaultDelimitersClose;
    this.delimiterIndex = -1;
    this.currentSequence = void 0;
    this.sequenceIndex = 0;
  }
  get inSFCRoot() {
    return this.mode === 2 && this.stack.length === 0;
  }
  reset() {
    this.state = 1;
    this.mode = 0;
    this.buffer = "";
    this.sectionStart = 0;
    this.index = 0;
    this.baseState = 1;
    this.inRCDATA = false;
    this.currentSequence = void 0;
    this.newlines.length = 0;
    this.delimiterOpen = defaultDelimitersOpen;
    this.delimiterClose = defaultDelimitersClose;
  }
  /**
   * Generate Position object with line / column information using recorded
   * newline positions. We know the index is always going to be an already
   * processed index, so all the newlines up to this index should have been
   * recorded.
   */
  getPos(index) {
    let line = 1;
    let column = index + 1;
    const length = this.newlines.length;
    let j = -1;
    if (length > 100) {
      let l = -1;
      let r = length;
      while (l + 1 < r) {
        const m = l + r >>> 1;
        this.newlines[m] < index ? l = m : r = m;
      }
      j = l;
    } else {
      for (let i = length - 1; i >= 0; i--) {
        if (index > this.newlines[i]) {
          j = i;
          break;
        }
      }
    }
    if (j >= 0) {
      line = j + 2;
      column = index - this.newlines[j];
    }
    return {
      column,
      line,
      offset: index
    };
  }
  peek() {
    return this.buffer.charCodeAt(this.index + 1);
  }
  stateText(c) {
    if (c === 60) {
      if (this.index > this.sectionStart) {
        this.cbs.ontext(this.sectionStart, this.index);
      }
      this.state = 5;
      this.sectionStart = this.index;
    } else if (!this.inVPre && c === this.delimiterOpen[0]) {
      this.state = 2;
      this.delimiterIndex = 0;
      this.stateInterpolationOpen(c);
    }
  }
  stateInterpolationOpen(c) {
    if (c === this.delimiterOpen[this.delimiterIndex]) {
      if (this.delimiterIndex === this.delimiterOpen.length - 1) {
        const start = this.index + 1 - this.delimiterOpen.length;
        if (start > this.sectionStart) {
          this.cbs.ontext(this.sectionStart, start);
        }
        this.state = 3;
        this.sectionStart = start;
      } else {
        this.delimiterIndex++;
      }
    } else if (this.inRCDATA) {
      this.state = 32;
      this.stateInRCDATA(c);
    } else {
      this.state = 1;
      this.stateText(c);
    }
  }
  stateInterpolation(c) {
    if (c === this.delimiterClose[0]) {
      this.state = 4;
      this.delimiterIndex = 0;
      this.stateInterpolationClose(c);
    }
  }
  stateInterpolationClose(c) {
    if (c === this.delimiterClose[this.delimiterIndex]) {
      if (this.delimiterIndex === this.delimiterClose.length - 1) {
        this.cbs.oninterpolation(this.sectionStart, this.index + 1);
        if (this.inRCDATA) {
          this.state = 32;
        } else {
          this.state = 1;
        }
        this.sectionStart = this.index + 1;
      } else {
        this.delimiterIndex++;
      }
    } else {
      this.state = 3;
      this.stateInterpolation(c);
    }
  }
  stateSpecialStartSequence(c) {
    const isEnd = this.sequenceIndex === this.currentSequence.length;
    const isMatch = isEnd ? (
      // If we are at the end of the sequence, make sure the tag name has ended
      isEndOfTagSection(c)
    ) : (
      // Otherwise, do a case-insensitive comparison
      (c | 32) === this.currentSequence[this.sequenceIndex]
    );
    if (!isMatch) {
      this.inRCDATA = false;
    } else if (!isEnd) {
      this.sequenceIndex++;
      return;
    }
    this.sequenceIndex = 0;
    this.state = 6;
    this.stateInTagName(c);
  }
  /** Look for an end tag. For <title> and <textarea>, also decode entities. */
  stateInRCDATA(c) {
    if (this.sequenceIndex === this.currentSequence.length) {
      if (c === 62 || isWhitespace(c)) {
        const endOfText = this.index - this.currentSequence.length;
        if (this.sectionStart < endOfText) {
          const actualIndex = this.index;
          this.index = endOfText;
          this.cbs.ontext(this.sectionStart, endOfText);
          this.index = actualIndex;
        }
        this.sectionStart = endOfText + 2;
        this.stateInClosingTagName(c);
        this.inRCDATA = false;
        return;
      }
      this.sequenceIndex = 0;
    }
    if ((c | 32) === this.currentSequence[this.sequenceIndex]) {
      this.sequenceIndex += 1;
    } else if (this.sequenceIndex === 0) {
      if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) {
        if (!this.inVPre && c === this.delimiterOpen[0]) {
          this.state = 2;
          this.delimiterIndex = 0;
          this.stateInterpolationOpen(c);
        }
      } else if (this.fastForwardTo(60)) {
        this.sequenceIndex = 1;
      }
    } else {
      this.sequenceIndex = Number(c === 60);
    }
  }
  stateCDATASequence(c) {
    if (c === Sequences.Cdata[this.sequenceIndex]) {
      if (++this.sequenceIndex === Sequences.Cdata.length) {
        this.state = 28;
        this.currentSequence = Sequences.CdataEnd;
        this.sequenceIndex = 0;
        this.sectionStart = this.index + 1;
      }
    } else {
      this.sequenceIndex = 0;
      this.state = 23;
      this.stateInDeclaration(c);
    }
  }
  /**
   * When we wait for one specific character, we can speed things up
   * by skipping through the buffer until we find it.
   *
   * @returns Whether the character was found.
   */
  fastForwardTo(c) {
    while (++this.index < this.buffer.length) {
      const cc = this.buffer.charCodeAt(this.index);
      if (cc === 10) {
        this.newlines.push(this.index);
      }
      if (cc === c) {
        return true;
      }
    }
    this.index = this.buffer.length - 1;
    return false;
  }
  /**
   * Comments and CDATA end with `-->` and `]]>`.
   *
   * Their common qualities are:
   * - Their end sequences have a distinct character they start with.
   * - That character is then repeated, so we have to check multiple repeats.
   * - All characters but the start character of the sequence can be skipped.
   */
  stateInCommentLike(c) {
    if (c === this.currentSequence[this.sequenceIndex]) {
      if (++this.sequenceIndex === this.currentSequence.length) {
        if (this.currentSequence === Sequences.CdataEnd) {
          this.cbs.oncdata(this.sectionStart, this.index - 2);
        } else {
          this.cbs.oncomment(this.sectionStart, this.index - 2);
        }
        this.sequenceIndex = 0;
        this.sectionStart = this.index + 1;
        this.state = 1;
      }
    } else if (this.sequenceIndex === 0) {
      if (this.fastForwardTo(this.currentSequence[0])) {
        this.sequenceIndex = 1;
      }
    } else if (c !== this.currentSequence[this.sequenceIndex - 1]) {
      this.sequenceIndex = 0;
    }
  }
  startSpecial(sequence, offset) {
    this.enterRCDATA(sequence, offset);
    this.state = 31;
  }
  enterRCDATA(sequence, offset) {
    this.inRCDATA = true;
    this.currentSequence = sequence;
    this.sequenceIndex = offset;
  }
  stateBeforeTagName(c) {
    if (c === 33) {
      this.state = 22;
      this.sectionStart = this.index + 1;
    } else if (c === 63) {
      this.state = 24;
      this.sectionStart = this.index + 1;
    } else if (isTagStartChar(c)) {
      this.sectionStart = this.index;
      if (this.mode === 0) {
        this.state = 6;
      } else if (this.inSFCRoot) {
        this.state = 34;
      } else if (!this.inXML) {
        if (c === 116) {
          this.state = 30;
        } else {
          this.state = c === 115 ? 29 : 6;
        }
      } else {
        this.state = 6;
      }
    } else if (c === 47) {
      this.state = 8;
    } else {
      this.state = 1;
      this.stateText(c);
    }
  }
  stateInTagName(c) {
    if (isEndOfTagSection(c)) {
      this.handleTagName(c);
    }
  }
  stateInSFCRootTagName(c) {
    if (isEndOfTagSection(c)) {
      const tag = this.buffer.slice(this.sectionStart, this.index);
      if (tag !== "template") {
        this.enterRCDATA(toCharCodes(`</` + tag), 0);
      }
      this.handleTagName(c);
    }
  }
  handleTagName(c) {
    this.cbs.onopentagname(this.sectionStart, this.index);
    this.sectionStart = -1;
    this.state = 11;
    this.stateBeforeAttrName(c);
  }
  stateBeforeClosingTagName(c) {
    if (isWhitespace(c)) ;
    else if (c === 62) {
      if (false) {
        this.cbs.onerr(14, this.index);
      }
      this.state = 1;
      this.sectionStart = this.index + 1;
    } else {
      this.state = isTagStartChar(c) ? 9 : 27;
      this.sectionStart = this.index;
    }
  }
  stateInClosingTagName(c) {
    if (c === 62 || isWhitespace(c)) {
      this.cbs.onclosetag(this.sectionStart, this.index);
      this.sectionStart = -1;
      this.state = 10;
      this.stateAfterClosingTagName(c);
    }
  }
  stateAfterClosingTagName(c) {
    if (c === 62) {
      this.state = 1;
      this.sectionStart = this.index + 1;
    }
  }
  stateBeforeAttrName(c) {
    if (c === 62) {
      this.cbs.onopentagend(this.index);
      if (this.inRCDATA) {
        this.state = 32;
      } else {
        this.state = 1;
      }
      this.sectionStart = this.index + 1;
    } else if (c === 47) {
      this.state = 7;
      if (false) {
        this.cbs.onerr(22, this.index);
      }
    } else if (c === 60 && this.peek() === 47) {
      this.cbs.onopentagend(this.index);
      this.state = 5;
      this.sectionStart = this.index;
    } else if (!isWhitespace(c)) {
      if (false) {
        this.cbs.onerr(
          19,
          this.index
        );
      }
      this.handleAttrStart(c);
    }
  }
  handleAttrStart(c) {
    if (c === 118 && this.peek() === 45) {
      this.state = 13;
      this.sectionStart = this.index;
    } else if (c === 46 || c === 58 || c === 64 || c === 35) {
      this.cbs.ondirname(this.index, this.index + 1);
      this.state = 14;
      this.sectionStart = this.index + 1;
    } else {
      this.state = 12;
      this.sectionStart = this.index;
    }
  }
  stateInSelfClosingTag(c) {
    if (c === 62) {
      this.cbs.onselfclosingtag(this.index);
      this.state = 1;
      this.sectionStart = this.index + 1;
      this.inRCDATA = false;
    } else if (!isWhitespace(c)) {
      this.state = 11;
      this.stateBeforeAttrName(c);
    }
  }
  stateInAttrName(c) {
    if (c === 61 || isEndOfTagSection(c)) {
      this.cbs.onattribname(this.sectionStart, this.index);
      this.handleAttrNameEnd(c);
    } else if (false) {
      this.cbs.onerr(
        17,
        this.index
      );
    }
  }
  stateInDirName(c) {
    if (c === 61 || isEndOfTagSection(c)) {
      this.cbs.ondirname(this.sectionStart, this.index);
      this.handleAttrNameEnd(c);
    } else if (c === 58) {
      this.cbs.ondirname(this.sectionStart, this.index);
      this.state = 14;
      this.sectionStart = this.index + 1;
    } else if (c === 46) {
      this.cbs.ondirname(this.sectionStart, this.index);
      this.state = 16;
      this.sectionStart = this.index + 1;
    }
  }
  stateInDirArg(c) {
    if (c === 61 || isEndOfTagSection(c)) {
      this.cbs.ondirarg(this.sectionStart, this.index);
      this.handleAttrNameEnd(c);
    } else if (c === 91) {
      this.state = 15;
    } else if (c === 46) {
      this.cbs.ondirarg(this.sectionStart, this.index);
      this.state = 16;
      this.sectionStart = this.index + 1;
    }
  }
  stateInDynamicDirArg(c) {
    if (c === 93) {
      this.state = 14;
    } else if (c === 61 || isEndOfTagSection(c)) {
      this.cbs.ondirarg(this.sectionStart, this.index + 1);
      this.handleAttrNameEnd(c);
      if (false) {
        this.cbs.onerr(
          27,
          this.index
        );
      }
    }
  }
  stateInDirModifier(c) {
    if (c === 61 || isEndOfTagSection(c)) {
      this.cbs.ondirmodifier(this.sectionStart, this.index);
      this.handleAttrNameEnd(c);
    } else if (c === 46) {
      this.cbs.ondirmodifier(this.sectionStart, this.index);
      this.sectionStart = this.index + 1;
    }
  }
  handleAttrNameEnd(c) {
    this.sectionStart = this.index;
    this.state = 17;
    this.cbs.onattribnameend(this.index);
    this.stateAfterAttrName(c);
  }
  stateAfterAttrName(c) {
    if (c === 61) {
      this.state = 18;
    } else if (c === 47 || c === 62) {
      this.cbs.onattribend(0, this.sectionStart);
      this.sectionStart = -1;
      this.state = 11;
      this.stateBeforeAttrName(c);
    } else if (!isWhitespace(c)) {
      this.cbs.onattribend(0, this.sectionStart);
      this.handleAttrStart(c);
    }
  }
  stateBeforeAttrValue(c) {
    if (c === 34) {
      this.state = 19;
      this.sectionStart = this.index + 1;
    } else if (c === 39) {
      this.state = 20;
      this.sectionStart = this.index + 1;
    } else if (!isWhitespace(c)) {
      this.sectionStart = this.index;
      this.state = 21;
      this.stateInAttrValueNoQuotes(c);
    }
  }
  handleInAttrValue(c, quote) {
    if (c === quote || this.fastForwardTo(quote)) {
      this.cbs.onattribdata(this.sectionStart, this.index);
      this.sectionStart = -1;
      this.cbs.onattribend(
        quote === 34 ? 3 : 2,
        this.index + 1
      );
      this.state = 11;
    }
  }
  stateInAttrValueDoubleQuotes(c) {
    this.handleInAttrValue(c, 34);
  }
  stateInAttrValueSingleQuotes(c) {
    this.handleInAttrValue(c, 39);
  }
  stateInAttrValueNoQuotes(c) {
    if (isWhitespace(c) || c === 62) {
      this.cbs.onattribdata(this.sectionStart, this.index);
      this.sectionStart = -1;
      this.cbs.onattribend(1, this.index);
      this.state = 11;
      this.stateBeforeAttrName(c);
    } else if (c === 39 || c === 60 || c === 61 || c === 96) {
      this.cbs.onerr(
        18,
        this.index
      );
    } else ;
  }
  stateBeforeDeclaration(c) {
    if (c === 91) {
      this.state = 26;
      this.sequenceIndex = 0;
    } else {
      this.state = c === 45 ? 25 : 23;
    }
  }
  stateInDeclaration(c) {
    if (c === 62 || this.fastForwardTo(62)) {
      this.state = 1;
      this.sectionStart = this.index + 1;
    }
  }
  stateInProcessingInstruction(c) {
    if (c === 62 || this.fastForwardTo(62)) {
      this.cbs.onprocessinginstruction(this.sectionStart, this.index);
      this.state = 1;
      this.sectionStart = this.index + 1;
    }
  }
  stateBeforeComment(c) {
    if (c === 45) {
      this.state = 28;
      this.currentSequence = Sequences.CommentEnd;
      this.sequenceIndex = 2;
      this.sectionStart = this.index + 1;
    } else {
      this.state = 23;
    }
  }
  stateInSpecialComment(c) {
    if (c === 62 || this.fastForwardTo(62)) {
      this.cbs.oncomment(this.sectionStart, this.index);
      this.state = 1;
      this.sectionStart = this.index + 1;
    }
  }
  stateBeforeSpecialS(c) {
    if (c === Sequences.ScriptEnd[3]) {
      this.startSpecial(Sequences.ScriptEnd, 4);
    } else if (c === Sequences.StyleEnd[3]) {
      this.startSpecial(Sequences.StyleEnd, 4);
    } else {
      this.state = 6;
      this.stateInTagName(c);
    }
  }
  stateBeforeSpecialT(c) {
    if (c === Sequences.TitleEnd[3]) {
      this.startSpecial(Sequences.TitleEnd, 4);
    } else if (c === Sequences.TextareaEnd[3]) {
      this.startSpecial(Sequences.TextareaEnd, 4);
    } else {
      this.state = 6;
      this.stateInTagName(c);
    }
  }
  startEntity() {
  }
  stateInEntity() {
  }
  /**
   * Iterates through the buffer, calling the function corresponding to the current state.
   *
   * States that are more likely to be hit are higher up, as a performance improvement.
   */
  parse(input) {
    this.buffer = input;
    while (this.index < this.buffer.length) {
      const c = this.buffer.charCodeAt(this.index);
      if (c === 10 && this.state !== 33) {
        this.newlines.push(this.index);
      }
      switch (this.state) {
        case 1: {
          this.stateText(c);
          break;
        }
        case 2: {
          this.stateInterpolationOpen(c);
          break;
        }
        case 3: {
          this.stateInterpolation(c);
          break;
        }
        case 4: {
          this.stateInterpolationClose(c);
          break;
        }
        case 31: {
          this.stateSpecialStartSequence(c);
          break;
        }
        case 32: {
          this.stateInRCDATA(c);
          break;
        }
        case 26: {
          this.stateCDATASequence(c);
          break;
        }
        case 19: {
          this.stateInAttrValueDoubleQuotes(c);
          break;
        }
        case 12: {
          this.stateInAttrName(c);
          break;
        }
        case 13: {
          this.stateInDirName(c);
          break;
        }
        case 14: {
          this.stateInDirArg(c);
          break;
        }
        case 15: {
          this.stateInDynamicDirArg(c);
          break;
        }
        case 16: {
          this.stateInDirModifier(c);
          break;
        }
        case 28: {
          this.stateInCommentLike(c);
          break;
        }
        case 27: {
          this.stateInSpecialComment(c);
          break;
        }
        case 11: {
          this.stateBeforeAttrName(c);
          break;
        }
        case 6: {
          this.stateInTagName(c);
          break;
        }
        case 34: {
          this.stateInSFCRootTagName(c);
          break;
        }
        case 9: {
          this.stateInClosingTagName(c);
          break;
        }
        case 5: {
          this.stateBeforeTagName(c);
          break;
        }
        case 17: {
          this.stateAfterAttrName(c);
          break;
        }
        case 20: {
          this.stateInAttrValueSingleQuotes(c);
          break;
        }
        case 18: {
          this.stateBeforeAttrValue(c);
          break;
        }
        case 8: {
          this.stateBeforeClosingTagName(c);
          break;
        }
        case 10: {
          this.stateAfterClosingTagName(c);
          break;
        }
        case 29: {
          this.stateBeforeSpecialS(c);
          break;
        }
        case 30: {
          this.stateBeforeSpecialT(c);
          break;
        }
        case 21: {
          this.stateInAttrValueNoQuotes(c);
          break;
        }
        case 7: {
          this.stateInSelfClosingTag(c);
          break;
        }
        case 23: {
          this.stateInDeclaration(c);
          break;
        }
        case 22: {
          this.stateBeforeDeclaration(c);
          break;
        }
        case 25: {
          this.stateBeforeComment(c);
          break;
        }
        case 24: {
          this.stateInProcessingInstruction(c);
          break;
        }
        case 33: {
          this.stateInEntity();
          break;
        }
      }
      this.index++;
    }
    this.cleanup();
    this.finish();
  }
  /**
   * Remove data that has already been consumed from the buffer.
   */
  cleanup() {
    if (this.sectionStart !== this.index) {
      if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) {
        this.cbs.ontext(this.sectionStart, this.index);
        this.sectionStart = this.index;
      } else if (this.state === 19 || this.state === 20 || this.state === 21) {
        this.cbs.onattribdata(this.sectionStart, this.index);
        this.sectionStart = this.index;
      }
    }
  }
  finish() {
    this.handleTrailingData();
    this.cbs.onend();
  }
  /** Handle any trailing data. */
  handleTrailingData() {
    const endIndex = this.buffer.length;
    if (this.sectionStart >= endIndex) {
      return;
    }
    if (this.state === 28) {
      if (this.currentSequence === Sequences.CdataEnd) {
        this.cbs.oncdata(this.sectionStart, endIndex);
      } else {
        this.cbs.oncomment(this.sectionStart, endIndex);
      }
    } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ;
    else {
      this.cbs.ontext(this.sectionStart, endIndex);
    }
  }
  emitCodePoint(cp, consumed) {
  }
}
const CompilerDeprecationTypes = {
  "COMPILER_IS_ON_ELEMENT": "COMPILER_IS_ON_ELEMENT",
  "COMPILER_V_BIND_SYNC": "COMPILER_V_BIND_SYNC",
  "COMPILER_V_BIND_OBJECT_ORDER": "COMPILER_V_BIND_OBJECT_ORDER",
  "COMPILER_V_ON_NATIVE": "COMPILER_V_ON_NATIVE",
  "COMPILER_V_IF_V_FOR_PRECEDENCE": "COMPILER_V_IF_V_FOR_PRECEDENCE",
  "COMPILER_NATIVE_TEMPLATE": "COMPILER_NATIVE_TEMPLATE",
  "COMPILER_INLINE_TEMPLATE": "COMPILER_INLINE_TEMPLATE",
  "COMPILER_FILTERS": "COMPILER_FILTERS"
};
const deprecationData = {
  ["COMPILER_IS_ON_ELEMENT"]: {
    message: `Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".`,
    link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`
  },
  ["COMPILER_V_BIND_SYNC"]: {
    message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${key}.sync\` should be changed to \`v-model:${key}\`.`,
    link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`
  },
  ["COMPILER_V_BIND_OBJECT_ORDER"]: {
    message: `v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`,
    link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`
  },
  ["COMPILER_V_ON_NATIVE"]: {
    message: `.native modifier for v-on has been removed as is no longer necessary.`,
    link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`
  },
  ["COMPILER_V_IF_V_FOR_PRECEDENCE"]: {
    message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`,
    link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`
  },
  ["COMPILER_NATIVE_TEMPLATE"]: {
    message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.`
  },
  ["COMPILER_INLINE_TEMPLATE"]: {
    message: `"inline-template" has been removed in Vue 3.`,
    link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`
  },
  ["COMPILER_FILTERS"]: {
    message: `filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`,
    link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`
  }
};
function getCompatValue(key, { compatConfig }) {
  const value = compatConfig && compatConfig[key];
  if (key === "MODE") {
    return value || 3;
  } else {
    return value;
  }
}
function isCompatEnabled(key, context) {
  const mode = getCompatValue("MODE", context);
  const value = getCompatValue(key, context);
  return mode === 3 ? value === true : value !== false;
}
function checkCompatEnabled(key, context, loc, ...args) {
  const enabled = isCompatEnabled(key, context);
  if (false) {
    warnDeprecation(key, context, loc, ...args);
  }
  return enabled;
}
function warnDeprecation(key, context, loc, ...args) {
  const val = getCompatValue(key, context);
  if (val === "suppress-warning") {
    return;
  }
  const { message, link } = deprecationData[key];
  const msg = `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? `
  Details: ${link}` : ``}`;
  const err = new SyntaxError(msg);
  err.code = key;
  if (loc) err.loc = loc;
  context.onWarn(err);
}
function defaultOnError(error) {
  throw error;
}
function defaultOnWarn(msg) {
}
function createCompilerError(code, loc, messages, additionalMessage) {
  const msg = false ? (messages || errorMessages)[code] + (additionalMessage || ``) : `https://vuejs.org/error-reference/#compiler-${code}`;
  const error = new SyntaxError(String(msg));
  error.code = code;
  error.loc = loc;
  return error;
}
const ErrorCodes = {
  "ABRUPT_CLOSING_OF_EMPTY_COMMENT": 0,
  "0": "ABRUPT_CLOSING_OF_EMPTY_COMMENT",
  "CDATA_IN_HTML_CONTENT": 1,
  "1": "CDATA_IN_HTML_CONTENT",
  "DUPLICATE_ATTRIBUTE": 2,
  "2": "DUPLICATE_ATTRIBUTE",
  "END_TAG_WITH_ATTRIBUTES": 3,
  "3": "END_TAG_WITH_ATTRIBUTES",
  "END_TAG_WITH_TRAILING_SOLIDUS": 4,
  "4": "END_TAG_WITH_TRAILING_SOLIDUS",
  "EOF_BEFORE_TAG_NAME": 5,
  "5": "EOF_BEFORE_TAG_NAME",
  "EOF_IN_CDATA": 6,
  "6": "EOF_IN_CDATA",
  "EOF_IN_COMMENT": 7,
  "7": "EOF_IN_COMMENT",
  "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT": 8,
  "8": "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT",
  "EOF_IN_TAG": 9,
  "9": "EOF_IN_TAG",
  "INCORRECTLY_CLOSED_COMMENT": 10,
  "10": "INCORRECTLY_CLOSED_COMMENT",
  "INCORRECTLY_OPENED_COMMENT": 11,
  "11": "INCORRECTLY_OPENED_COMMENT",
  "INVALID_FIRST_CHARACTER_OF_TAG_NAME": 12,
  "12": "INVALID_FIRST_CHARACTER_OF_TAG_NAME",
  "MISSING_ATTRIBUTE_VALUE": 13,
  "13": "MISSING_ATTRIBUTE_VALUE",
  "MISSING_END_TAG_NAME": 14,
  "14": "MISSING_END_TAG_NAME",
  "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES": 15,
  "15": "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES",
  "NESTED_COMMENT": 16,
  "16": "NESTED_COMMENT",
  "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME": 17,
  "17": "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME",
  "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE": 18,
  "18": "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE",
  "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME": 19,
  "19": "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME",
  "UNEXPECTED_NULL_CHARACTER": 20,
  "20": "UNEXPECTED_NULL_CHARACTER",
  "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME": 21,
  "21": "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME",
  "UNEXPECTED_SOLIDUS_IN_TAG": 22,
  "22": "UNEXPECTED_SOLIDUS_IN_TAG",
  "X_INVALID_END_TAG": 23,
  "23": "X_INVALID_END_TAG",
  "X_MISSING_END_TAG": 24,
  "24": "X_MISSING_END_TAG",
  "X_MISSING_INTERPOLATION_END": 25,
  "25": "X_MISSING_INTERPOLATION_END",
  "X_MISSING_DIRECTIVE_NAME": 26,
  "26": "X_MISSING_DIRECTIVE_NAME",
  "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END": 27,
  "27": "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END",
  "X_V_IF_NO_EXPRESSION": 28,
  "28": "X_V_IF_NO_EXPRESSION",
  "X_V_IF_SAME_KEY": 29,
  "29": "X_V_IF_SAME_KEY",
  "X_V_ELSE_NO_ADJACENT_IF": 30,
  "30": "X_V_ELSE_NO_ADJACENT_IF",
  "X_V_FOR_NO_EXPRESSION": 31,
  "31": "X_V_FOR_NO_EXPRESSION",
  "X_V_FOR_MALFORMED_EXPRESSION": 32,
  "32": "X_V_FOR_MALFORMED_EXPRESSION",
  "X_V_FOR_TEMPLATE_KEY_PLACEMENT": 33,
  "33": "X_V_FOR_TEMPLATE_KEY_PLACEMENT",
  "X_V_BIND_NO_EXPRESSION": 34,
  "34": "X_V_BIND_NO_EXPRESSION",
  "X_V_ON_NO_EXPRESSION": 35,
  "35": "X_V_ON_NO_EXPRESSION",
  "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET": 36,
  "36": "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET",
  "X_V_SLOT_MIXED_SLOT_USAGE": 37,
  "37": "X_V_SLOT_MIXED_SLOT_USAGE",
  "X_V_SLOT_DUPLICATE_SLOT_NAMES": 38,
  "38": "X_V_SLOT_DUPLICATE_SLOT_NAMES",
  "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN": 39,
  "39": "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN",
  "X_V_SLOT_MISPLACED": 40,
  "40": "X_V_SLOT_MISPLACED",
  "X_V_MODEL_NO_EXPRESSION": 41,
  "41": "X_V_MODEL_NO_EXPRESSION",
  "X_V_MODEL_MALFORMED_EXPRESSION": 42,
  "42": "X_V_MODEL_MALFORMED_EXPRESSION",
  "X_V_MODEL_ON_SCOPE_VARIABLE": 43,
  "43": "X_V_MODEL_ON_SCOPE_VARIABLE",
  "X_V_MODEL_ON_PROPS": 44,
  "44": "X_V_MODEL_ON_PROPS",
  "X_V_MODEL_ON_CONST": 45,
  "45": "X_V_MODEL_ON_CONST",
  "X_INVALID_EXPRESSION": 46,
  "46": "X_INVALID_EXPRESSION",
  "X_KEEP_ALIVE_INVALID_CHILDREN": 47,
  "47": "X_KEEP_ALIVE_INVALID_CHILDREN",
  "X_PREFIX_ID_NOT_SUPPORTED": 48,
  "48": "X_PREFIX_ID_NOT_SUPPORTED",
  "X_MODULE_MODE_NOT_SUPPORTED": 49,
  "49": "X_MODULE_MODE_NOT_SUPPORTED",
  "X_CACHE_HANDLER_NOT_SUPPORTED": 50,
  "50": "X_CACHE_HANDLER_NOT_SUPPORTED",
  "X_SCOPE_ID_NOT_SUPPORTED": 51,
  "51": "X_SCOPE_ID_NOT_SUPPORTED",
  "X_VNODE_HOOKS": 52,
  "52": "X_VNODE_HOOKS",
  "X_V_BIND_INVALID_SAME_NAME_ARGUMENT": 53,
  "53": "X_V_BIND_INVALID_SAME_NAME_ARGUMENT",
  "__EXTEND_POINT__": 54,
  "54": "__EXTEND_POINT__"
};
const errorMessages = {
  // parse errors
  [0]: "Illegal comment.",
  [1]: "CDATA section is allowed only in XML context.",
  [2]: "Duplicate attribute.",
  [3]: "End tag cannot have attributes.",
  [4]: "Illegal '/' in tags.",
  [5]: "Unexpected EOF in tag.",
  [6]: "Unexpected EOF in CDATA section.",
  [7]: "Unexpected EOF in comment.",
  [8]: "Unexpected EOF in script.",
  [9]: "Unexpected EOF in tag.",
  [10]: "Incorrectly closed comment.",
  [11]: "Incorrectly opened comment.",
  [12]: "Illegal tag name. Use '&lt;' to print '<'.",
  [13]: "Attribute value was expected.",
  [14]: "End tag name was expected.",
  [15]: "Whitespace was expected.",
  [16]: "Unexpected '<!--' in comment.",
  [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`,
  [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).",
  [19]: "Attribute name cannot start with '='.",
  [21]: "'<?' is allowed only in XML context.",
  [20]: `Unexpected null character.`,
  [22]: "Illegal '/' in tags.",
  // Vue-specific parse errors
  [23]: "Invalid end tag.",
  [24]: "Element is missing end tag.",
  [25]: "Interpolation end sign was not found.",
  [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.",
  [26]: "Legal directive name was expected.",
  // transform errors
  [28]: `v-if/v-else-if is missing expression.`,
  [29]: `v-if/else branches must use unique keys.`,
  [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`,
  [31]: `v-for is missing expression.`,
  [32]: `v-for has invalid expression.`,
  [33]: `<template v-for> key should be placed on the <template> tag.`,
  [34]: `v-bind is missing expression.`,
  [53]: `v-bind with same-name shorthand only allows static argument.`,
  [35]: `v-on is missing expression.`,
  [36]: `Unexpected custom directive on <slot> outlet.`,
  [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`,
  [38]: `Duplicate slot names found. `,
  [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`,
  [40]: `v-slot can only be used on components or <template> tags.`,
  [41]: `v-model is missing expression.`,
  [42]: `v-model value must be a valid JavaScript member expression.`,
  [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,
  [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.
Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,
  [45]: `v-model cannot be used on a const binding because it is not writable.`,
  [46]: `Error parsing JavaScript expression: `,
  [47]: `<KeepAlive> expects exactly one child component.`,
  [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`,
  // generic errors
  [48]: `"prefixIdentifiers" option is not supported in this build of compiler.`,
  [49]: `ES module mode is not supported in this build of compiler.`,
  [50]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`,
  [51]: `"scopeId" option is only supported in module mode.`,
  // just to fulfill types
  [54]: ``
};
function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) {
  {
    return;
  }
}
function isReferencedIdentifier(id, parent, parentStack) {
  {
    return false;
  }
}
function isInDestructureAssignment(parent, parentStack) {
  if (parent && (parent.type === "ObjectProperty" || parent.type === "ArrayPattern")) {
    let i = parentStack.length;
    while (i--) {
      const p = parentStack[i];
      if (p.type === "AssignmentExpression") {
        return true;
      } else if (p.type !== "ObjectProperty" && !p.type.endsWith("Pattern")) {
        break;
      }
    }
  }
  return false;
}
function isInNewExpression(parentStack) {
  let i = parentStack.length;
  while (i--) {
    const p = parentStack[i];
    if (p.type === "NewExpression") {
      return true;
    } else if (p.type !== "MemberExpression") {
      break;
    }
  }
  return false;
}
function walkFunctionParams(node, onIdent) {
  for (const p of node.params) {
    for (const id of extractIdentifiers(p)) {
      onIdent(id);
    }
  }
}
function walkBlockDeclarations(block, onIdent) {
  const body = block.type === "SwitchCase" ? block.consequent : block.body;
  for (const stmt of body) {
    if (stmt.type === "VariableDeclaration") {
      if (stmt.declare) continue;
      for (const decl of stmt.declarations) {
        for (const id of extractIdentifiers(decl.id)) {
          onIdent(id);
        }
      }
    } else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") {
      if (stmt.declare || !stmt.id) continue;
      onIdent(stmt.id);
    } else if (isForStatement(stmt)) {
      walkForStatement(stmt, true, onIdent);
    } else if (stmt.type === "SwitchStatement") {
      walkSwitchStatement(stmt, true, onIdent);
    }
  }
}
function isForStatement(stmt) {
  return stmt.type === "ForOfStatement" || stmt.type === "ForInStatement" || stmt.type === "ForStatement";
}
function walkForStatement(stmt, isVar, onIdent) {
  const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left;
  if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) {
    for (const decl of variable.declarations) {
      for (const id of extractIdentifiers(decl.id)) {
        onIdent(id);
      }
    }
  }
}
function walkSwitchStatement(stmt, isVar, onIdent) {
  for (const cs of stmt.cases) {
    for (const stmt2 of cs.consequent) {
      if (stmt2.type === "VariableDeclaration" && (stmt2.kind === "var" ? isVar : !isVar)) {
        for (const decl of stmt2.declarations) {
          for (const id of extractIdentifiers(decl.id)) {
            onIdent(id);
          }
        }
      }
    }
    walkBlockDeclarations(cs, onIdent);
  }
}
function extractIdentifiers(param, nodes = []) {
  switch (param.type) {
    case "Identifier":
      nodes.push(param);
      break;
    case "MemberExpression":
      let object = param;
      while (object.type === "MemberExpression") {
        object = object.object;
      }
      nodes.push(object);
      break;
    case "ObjectPattern":
      for (const prop of param.properties) {
        if (prop.type === "RestElement") {
          extractIdentifiers(prop.argument, nodes);
        } else {
          extractIdentifiers(prop.value, nodes);
        }
      }
      break;
    case "ArrayPattern":
      param.elements.forEach((element) => {
        if (element) extractIdentifiers(element, nodes);
      });
      break;
    case "RestElement":
      extractIdentifiers(param.argument, nodes);
      break;
    case "AssignmentPattern":
      extractIdentifiers(param.left, nodes);
      break;
  }
  return nodes;
}
const isFunctionType = (node) => {
  return /Function(?:Expression|Declaration)$|Method$/.test(node.type);
};
const isStaticProperty = (node) => node && (node.type === "ObjectProperty" || node.type === "ObjectMethod") && !node.computed;
const isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node;
const TS_NODE_TYPES = [
  "TSAsExpression",
  // foo as number
  "TSTypeAssertion",
  // (<number>foo)
  "TSNonNullExpression",
  // foo!
  "TSInstantiationExpression",
  // foo<string>
  "TSSatisfiesExpression"
  // foo satisfies T
];
function unwrapTSNode(node) {
  if (TS_NODE_TYPES.includes(node.type)) {
    return unwrapTSNode(node.expression);
  } else {
    return node;
  }
}
const isStaticExp = (p) => p.type === 4 && p.isStatic;
function isCoreComponent(tag) {
  switch (tag) {
    case "Teleport":
    case "teleport":
      return TELEPORT;
    case "Suspense":
    case "suspense":
      return SUSPENSE;
    case "KeepAlive":
    case "keep-alive":
      return KEEP_ALIVE;
    case "BaseTransition":
    case "base-transition":
      return BASE_TRANSITION;
  }
}
const nonIdentifierRE = /^$|^\d|[^\$\w\xA0-\uFFFF]/;
const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name);
const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/;
const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/;
const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g;
const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source;
const isMemberExpressionBrowser = (exp) => {
  const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim());
  let state = 0;
  let stateStack = [];
  let currentOpenBracketCount = 0;
  let currentOpenParensCount = 0;
  let currentStringType = null;
  for (let i = 0; i < path.length; i++) {
    const char = path.charAt(i);
    switch (state) {
      case 0:
        if (char === "[") {
          stateStack.push(state);
          state = 1;
          currentOpenBracketCount++;
        } else if (char === "(") {
          stateStack.push(state);
          state = 2;
          currentOpenParensCount++;
        } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) {
          return false;
        }
        break;
      case 1:
        if (char === `'` || char === `"` || char === "`") {
          stateStack.push(state);
          state = 3;
          currentStringType = char;
        } else if (char === `[`) {
          currentOpenBracketCount++;
        } else if (char === `]`) {
          if (!--currentOpenBracketCount) {
            state = stateStack.pop();
          }
        }
        break;
      case 2:
        if (char === `'` || char === `"` || char === "`") {
          stateStack.push(state);
          state = 3;
          currentStringType = char;
        } else if (char === `(`) {
          currentOpenParensCount++;
        } else if (char === `)`) {
          if (i === path.length - 1) {
            return false;
          }
          if (!--currentOpenParensCount) {
            state = stateStack.pop();
          }
        }
        break;
      case 3:
        if (char === currentStringType) {
          state = stateStack.pop();
          currentStringType = null;
        }
        break;
    }
  }
  return !currentOpenBracketCount && !currentOpenParensCount;
};
const isMemberExpressionNode = NOOP;
const isMemberExpression = isMemberExpressionBrowser;
const fnExpRE = /^\s*(?:async\s*)?(?:\([^)]*?\)|[\w$_]+)\s*(?::[^=]+)?=>|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/;
const isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp));
const isFnExpressionNode = NOOP;
const isFnExpression = isFnExpressionBrowser;
function advancePositionWithClone(pos, source, numberOfCharacters = source.length) {
  return advancePositionWithMutation(
    {
      offset: pos.offset,
      line: pos.line,
      column: pos.column
    },
    source,
    numberOfCharacters
  );
}
function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) {
  let linesCount = 0;
  let lastNewLinePos = -1;
  for (let i = 0; i < numberOfCharacters; i++) {
    if (source.charCodeAt(i) === 10) {
      linesCount++;
      lastNewLinePos = i;
    }
  }
  pos.offset += numberOfCharacters;
  pos.line += linesCount;
  pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos;
  return pos;
}
function assert(condition, msg) {
  if (!condition) {
    throw new Error(msg || `unexpected compiler condition`);
  }
}
function findDir(node, name, allowEmpty = false) {
  for (let i = 0; i < node.props.length; i++) {
    const p = node.props[i];
    if (p.type === 7 && (allowEmpty || p.exp) && (isString$2(name) ? p.name === name : name.test(p.name))) {
      return p;
    }
  }
}
function findProp(node, name, dynamicOnly = false, allowEmpty = false) {
  for (let i = 0; i < node.props.length; i++) {
    const p = node.props[i];
    if (p.type === 6) {
      if (dynamicOnly) continue;
      if (p.name === name && (p.value || allowEmpty)) {
        return p;
      }
    } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) {
      return p;
    }
  }
}
function isStaticArgOf(arg, name) {
  return !!(arg && isStaticExp(arg) && arg.content === name);
}
function hasDynamicKeyVBind(node) {
  return node.props.some(
    (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj"
    p.arg.type !== 4 || // v-bind:[_ctx.foo]
    !p.arg.isStatic)
    // v-bind:[foo]
  );
}
function isText$1(node) {
  return node.type === 5 || node.type === 2;
}
function isVPre(p) {
  return p.type === 7 && p.name === "pre";
}
function isVSlot(p) {
  return p.type === 7 && p.name === "slot";
}
function isTemplateNode(node) {
  return node.type === 1 && node.tagType === 3;
}
function isSlotOutlet(node) {
  return node.type === 1 && node.tagType === 2;
}
const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
function getUnnormalizedProps(props, callPath = []) {
  if (props && !isString$2(props) && props.type === 14) {
    const callee = props.callee;
    if (!isString$2(callee) && propsHelperSet.has(callee)) {
      return getUnnormalizedProps(
        props.arguments[0],
        callPath.concat(props)
      );
    }
  }
  return [props, callPath];
}
function injectProp(node, prop, context) {
  let propsWithInjection;
  let props = node.type === 13 ? node.props : node.arguments[2];
  let callPath = [];
  let parentCall;
  if (props && !isString$2(props) && props.type === 14) {
    const ret = getUnnormalizedProps(props);
    props = ret[0];
    callPath = ret[1];
    parentCall = callPath[callPath.length - 1];
  }
  if (props == null || isString$2(props)) {
    propsWithInjection = createObjectExpression([prop]);
  } else if (props.type === 14) {
    const first = props.arguments[0];
    if (!isString$2(first) && first.type === 15) {
      if (!hasProp(prop, first)) {
        first.properties.unshift(prop);
      }
    } else {
      if (props.callee === TO_HANDLERS) {
        propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [
          createObjectExpression([prop]),
          props
        ]);
      } else {
        props.arguments.unshift(createObjectExpression([prop]));
      }
    }
    !propsWithInjection && (propsWithInjection = props);
  } else if (props.type === 15) {
    if (!hasProp(prop, props)) {
      props.properties.unshift(prop);
    }
    propsWithInjection = props;
  } else {
    propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [
      createObjectExpression([prop]),
      props
    ]);
    if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) {
      parentCall = callPath[callPath.length - 2];
    }
  }
  if (node.type === 13) {
    if (parentCall) {
      parentCall.arguments[0] = propsWithInjection;
    } else {
      node.props = propsWithInjection;
    }
  } else {
    if (parentCall) {
      parentCall.arguments[0] = propsWithInjection;
    } else {
      node.arguments[2] = propsWithInjection;
    }
  }
}
function hasProp(prop, props) {
  let result = false;
  if (prop.key.type === 4) {
    const propKeyName = prop.key.content;
    result = props.properties.some(
      (p) => p.key.type === 4 && p.key.content === propKeyName
    );
  }
  return result;
}
function toValidAssetId(name, type) {
  return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => {
    return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString();
  })}`;
}
function hasScopeRef(node, ids) {
  if (!node || Object.keys(ids).length === 0) {
    return false;
  }
  switch (node.type) {
    case 1:
      for (let i = 0; i < node.props.length; i++) {
        const p = node.props[i];
        if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) {
          return true;
        }
      }
      return node.children.some((c) => hasScopeRef(c, ids));
    case 11:
      if (hasScopeRef(node.source, ids)) {
        return true;
      }
      return node.children.some((c) => hasScopeRef(c, ids));
    case 9:
      return node.branches.some((b) => hasScopeRef(b, ids));
    case 10:
      if (hasScopeRef(node.condition, ids)) {
        return true;
      }
      return node.children.some((c) => hasScopeRef(c, ids));
    case 4:
      return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content];
    case 8:
      return node.children.some((c) => isObject$3(c) && hasScopeRef(c, ids));
    case 5:
    case 12:
      return hasScopeRef(node.content, ids);
    case 2:
    case 3:
    case 20:
      return false;
    default:
      if (false) ;
      return false;
  }
}
function getMemoedVNodeCall(node) {
  if (node.type === 14 && node.callee === WITH_MEMO) {
    return node.arguments[1].returns;
  } else {
    return node;
  }
}
const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/;
function isAllWhitespace(str) {
  for (let i = 0; i < str.length; i++) {
    if (!isWhitespace(str.charCodeAt(i))) {
      return false;
    }
  }
  return true;
}
function isWhitespaceText(node) {
  return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content);
}
function isCommentOrWhitespace(node) {
  return node.type === 3 || isWhitespaceText(node);
}
const defaultParserOptions = {
  parseMode: "base",
  ns: 0,
  delimiters: [`{{`, `}}`],
  getNamespace: () => 0,
  isVoidTag: NO,
  isPreTag: NO,
  isIgnoreNewlineTag: NO,
  isCustomElement: NO,
  onError: defaultOnError,
  onWarn: defaultOnWarn,
  comments: false,
  prefixIdentifiers: false
};
let currentOptions = defaultParserOptions;
let currentRoot = null;
let currentInput = "";
let currentOpenTag = null;
let currentProp = null;
let currentAttrValue = "";
let currentAttrStartIndex = -1;
let currentAttrEndIndex = -1;
let inPre = 0;
let inVPre = false;
let currentVPreBoundary = null;
const stack = [];
const tokenizer = new Tokenizer(stack, {
  onerr: emitError,
  ontext(start, end) {
    onText(getSlice(start, end), start, end);
  },
  ontextentity(char, start, end) {
    onText(char, start, end);
  },
  oninterpolation(start, end) {
    if (inVPre) {
      return onText(getSlice(start, end), start, end);
    }
    let innerStart = start + tokenizer.delimiterOpen.length;
    let innerEnd = end - tokenizer.delimiterClose.length;
    while (isWhitespace(currentInput.charCodeAt(innerStart))) {
      innerStart++;
    }
    while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) {
      innerEnd--;
    }
    let exp = getSlice(innerStart, innerEnd);
    if (exp.includes("&")) {
      {
        exp = currentOptions.decodeEntities(exp, false);
      }
    }
    addNode({
      type: 5,
      content: createExp(exp, false, getLoc(innerStart, innerEnd)),
      loc: getLoc(start, end)
    });
  },
  onopentagname(start, end) {
    const name = getSlice(start, end);
    currentOpenTag = {
      type: 1,
      tag: name,
      ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns),
      tagType: 0,
      // will be refined on tag close
      props: [],
      children: [],
      loc: getLoc(start - 1, end),
      codegenNode: void 0
    };
  },
  onopentagend(end) {
    endOpenTag(end);
  },
  onclosetag(start, end) {
    const name = getSlice(start, end);
    if (!currentOptions.isVoidTag(name)) {
      let found = false;
      for (let i = 0; i < stack.length; i++) {
        const e = stack[i];
        if (e.tag.toLowerCase() === name.toLowerCase()) {
          found = true;
          if (i > 0) {
            emitError(24, stack[0].loc.start.offset);
          }
          for (let j = 0; j <= i; j++) {
            const el = stack.shift();
            onCloseTag(el, end, j < i);
          }
          break;
        }
      }
      if (!found) {
        emitError(23, backTrack(start, 60));
      }
    }
  },
  onselfclosingtag(end) {
    const name = currentOpenTag.tag;
    currentOpenTag.isSelfClosing = true;
    endOpenTag(end);
    if (stack[0] && stack[0].tag === name) {
      onCloseTag(stack.shift(), end);
    }
  },
  onattribname(start, end) {
    currentProp = {
      type: 6,
      name: getSlice(start, end),
      nameLoc: getLoc(start, end),
      value: void 0,
      loc: getLoc(start)
    };
  },
  ondirname(start, end) {
    const raw = getSlice(start, end);
    const name = raw === "." || raw === ":" ? "bind" : raw === "@" ? "on" : raw === "#" ? "slot" : raw.slice(2);
    if (!inVPre && name === "") {
      emitError(26, start);
    }
    if (inVPre || name === "") {
      currentProp = {
        type: 6,
        name: raw,
        nameLoc: getLoc(start, end),
        value: void 0,
        loc: getLoc(start)
      };
    } else {
      currentProp = {
        type: 7,
        name,
        rawName: raw,
        exp: void 0,
        arg: void 0,
        modifiers: raw === "." ? [createSimpleExpression("prop")] : [],
        loc: getLoc(start)
      };
      if (name === "pre") {
        inVPre = tokenizer.inVPre = true;
        currentVPreBoundary = currentOpenTag;
        const props = currentOpenTag.props;
        for (let i = 0; i < props.length; i++) {
          if (props[i].type === 7) {
            props[i] = dirToAttr(props[i]);
          }
        }
      }
    }
  },
  ondirarg(start, end) {
    if (start === end) return;
    const arg = getSlice(start, end);
    if (inVPre && !isVPre(currentProp)) {
      currentProp.name += arg;
      setLocEnd(currentProp.nameLoc, end);
    } else {
      const isStatic = arg[0] !== `[`;
      currentProp.arg = createExp(
        isStatic ? arg : arg.slice(1, -1),
        isStatic,
        getLoc(start, end),
        isStatic ? 3 : 0
      );
    }
  },
  ondirmodifier(start, end) {
    const mod = getSlice(start, end);
    if (inVPre && !isVPre(currentProp)) {
      currentProp.name += "." + mod;
      setLocEnd(currentProp.nameLoc, end);
    } else if (currentProp.name === "slot") {
      const arg = currentProp.arg;
      if (arg) {
        arg.content += "." + mod;
        setLocEnd(arg.loc, end);
      }
    } else {
      const exp = createSimpleExpression(mod, true, getLoc(start, end));
      currentProp.modifiers.push(exp);
    }
  },
  onattribdata(start, end) {
    currentAttrValue += getSlice(start, end);
    if (currentAttrStartIndex < 0) currentAttrStartIndex = start;
    currentAttrEndIndex = end;
  },
  onattribentity(char, start, end) {
    currentAttrValue += char;
    if (currentAttrStartIndex < 0) currentAttrStartIndex = start;
    currentAttrEndIndex = end;
  },
  onattribnameend(end) {
    const start = currentProp.loc.start.offset;
    const name = getSlice(start, end);
    if (currentProp.type === 7) {
      currentProp.rawName = name;
    }
    if (currentOpenTag.props.some(
      (p) => (p.type === 7 ? p.rawName : p.name) === name
    )) {
      emitError(2, start);
    }
  },
  onattribend(quote, end) {
    if (currentOpenTag && currentProp) {
      setLocEnd(currentProp.loc, end);
      if (quote !== 0) {
        if (currentAttrValue.includes("&")) {
          currentAttrValue = currentOptions.decodeEntities(
            currentAttrValue,
            true
          );
        }
        if (currentProp.type === 6) {
          if (currentProp.name === "class") {
            currentAttrValue = condense(currentAttrValue).trim();
          }
          if (quote === 1 && !currentAttrValue) {
            emitError(13, end);
          }
          currentProp.value = {
            type: 2,
            content: currentAttrValue,
            loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
          };
          if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") {
            tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
          }
        } else {
          let expParseMode = 0;
          currentProp.exp = createExp(
            currentAttrValue,
            false,
            getLoc(currentAttrStartIndex, currentAttrEndIndex),
            0,
            expParseMode
          );
          if (currentProp.name === "for") {
            currentProp.forParseResult = parseForExpression(currentProp.exp);
          }
          let syncIndex = -1;
          if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex(
            (mod) => mod.content === "sync"
          )) > -1 && checkCompatEnabled(
            "COMPILER_V_BIND_SYNC",
            currentOptions,
            currentProp.loc,
            currentProp.arg.loc.source
          )) {
            currentProp.name = "model";
            currentProp.modifiers.splice(syncIndex, 1);
          }
        }
      }
      if (currentProp.type !== 7 || currentProp.name !== "pre") {
        currentOpenTag.props.push(currentProp);
      }
    }
    currentAttrValue = "";
    currentAttrStartIndex = currentAttrEndIndex = -1;
  },
  oncomment(start, end) {
    if (currentOptions.comments) {
      addNode({
        type: 3,
        content: getSlice(start, end),
        loc: getLoc(start - 4, end + 3)
      });
    }
  },
  onend() {
    const end = currentInput.length;
    if (false) {
      switch (tokenizer.state) {
        case 5:
        case 8:
          emitError(5, end);
          break;
        case 3:
        case 4:
          emitError(
            25,
            tokenizer.sectionStart
          );
          break;
        case 28:
          if (tokenizer.currentSequence === Sequences.CdataEnd) {
            emitError(6, end);
          } else {
            emitError(7, end);
          }
          break;
        case 6:
        case 7:
        case 9:
        case 11:
        case 12:
        case 13:
        case 14:
        case 15:
        case 16:
        case 17:
        case 18:
        case 19:
        // "
        case 20:
        // '
        case 21:
          emitError(9, end);
          break;
      }
    }
    for (let index = 0; index < stack.length; index++) {
      onCloseTag(stack[index], end - 1);
      emitError(24, stack[index].loc.start.offset);
    }
  },
  oncdata(start, end) {
    if (stack[0].ns !== 0) {
      onText(getSlice(start, end), start, end);
    } else {
      emitError(1, start - 9);
    }
  },
  onprocessinginstruction(start) {
    if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) {
      emitError(
        21,
        start - 1
      );
    }
  }
});
const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
const stripParensRE = /^\(|\)$/g;
function parseForExpression(input) {
  const loc = input.loc;
  const exp = input.content;
  const inMatch = exp.match(forAliasRE);
  if (!inMatch) return;
  const [, LHS, RHS] = inMatch;
  const createAliasExpression = (content, offset, asParam = false) => {
    const start = loc.start.offset + offset;
    const end = start + content.length;
    return createExp(
      content,
      false,
      getLoc(start, end),
      0,
      asParam ? 1 : 0
      /* Normal */
    );
  };
  const result = {
    source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)),
    value: void 0,
    key: void 0,
    index: void 0,
    finalized: false
  };
  let valueContent = LHS.trim().replace(stripParensRE, "").trim();
  const trimmedOffset = LHS.indexOf(valueContent);
  const iteratorMatch = valueContent.match(forIteratorRE);
  if (iteratorMatch) {
    valueContent = valueContent.replace(forIteratorRE, "").trim();
    const keyContent = iteratorMatch[1].trim();
    let keyOffset;
    if (keyContent) {
      keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length);
      result.key = createAliasExpression(keyContent, keyOffset, true);
    }
    if (iteratorMatch[2]) {
      const indexContent = iteratorMatch[2].trim();
      if (indexContent) {
        result.index = createAliasExpression(
          indexContent,
          exp.indexOf(
            indexContent,
            result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length
          ),
          true
        );
      }
    }
  }
  if (valueContent) {
    result.value = createAliasExpression(valueContent, trimmedOffset, true);
  }
  return result;
}
function getSlice(start, end) {
  return currentInput.slice(start, end);
}
function endOpenTag(end) {
  if (tokenizer.inSFCRoot) {
    currentOpenTag.innerLoc = getLoc(end + 1, end + 1);
  }
  addNode(currentOpenTag);
  const { tag, ns } = currentOpenTag;
  if (ns === 0 && currentOptions.isPreTag(tag)) {
    inPre++;
  }
  if (currentOptions.isVoidTag(tag)) {
    onCloseTag(currentOpenTag, end);
  } else {
    stack.unshift(currentOpenTag);
    if (ns === 1 || ns === 2) {
      tokenizer.inXML = true;
    }
  }
  currentOpenTag = null;
}
function onText(content, start, end) {
  {
    const tag = stack[0] && stack[0].tag;
    if (tag !== "script" && tag !== "style" && content.includes("&")) {
      content = currentOptions.decodeEntities(content, false);
    }
  }
  const parent = stack[0] || currentRoot;
  const lastNode = parent.children[parent.children.length - 1];
  if (lastNode && lastNode.type === 2) {
    lastNode.content += content;
    setLocEnd(lastNode.loc, end);
  } else {
    parent.children.push({
      type: 2,
      content,
      loc: getLoc(start, end)
    });
  }
}
function onCloseTag(el, end, isImplied = false) {
  if (isImplied) {
    setLocEnd(el.loc, backTrack(end, 60));
  } else {
    setLocEnd(el.loc, lookAhead(end, 62) + 1);
  }
  if (tokenizer.inSFCRoot) {
    if (el.children.length) {
      el.innerLoc.end = extend({}, el.children[el.children.length - 1].loc.end);
    } else {
      el.innerLoc.end = extend({}, el.innerLoc.start);
    }
    el.innerLoc.source = getSlice(
      el.innerLoc.start.offset,
      el.innerLoc.end.offset
    );
  }
  const { tag, ns, children } = el;
  if (!inVPre) {
    if (tag === "slot") {
      el.tagType = 2;
    } else if (isFragmentTemplate(el)) {
      el.tagType = 3;
    } else if (isComponent(el)) {
      el.tagType = 1;
    }
  }
  if (!tokenizer.inRCDATA) {
    el.children = condenseWhitespace(children);
  }
  if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) {
    const first = children[0];
    if (first && first.type === 2) {
      first.content = first.content.replace(/^\r?\n/, "");
    }
  }
  if (ns === 0 && currentOptions.isPreTag(tag)) {
    inPre--;
  }
  if (currentVPreBoundary === el) {
    inVPre = tokenizer.inVPre = false;
    currentVPreBoundary = null;
  }
  if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) {
    tokenizer.inXML = false;
  }
  {
    const props = el.props;
    if (false) {
      let hasIf = false;
      let hasFor = false;
      for (let i = 0; i < props.length; i++) {
        const p = props[i];
        if (p.type === 7) {
          if (p.name === "if") {
            hasIf = true;
          } else if (p.name === "for") {
            hasFor = true;
          }
        }
        if (hasIf && hasFor) {
          warnDeprecation(
            "COMPILER_V_IF_V_FOR_PRECEDENCE",
            currentOptions,
            el.loc
          );
          break;
        }
      }
    }
    if (!tokenizer.inSFCRoot && isCompatEnabled(
      "COMPILER_NATIVE_TEMPLATE",
      currentOptions
    ) && el.tag === "template" && !isFragmentTemplate(el)) {
      const parent = stack[0] || currentRoot;
      const index = parent.children.indexOf(el);
      parent.children.splice(index, 1, ...el.children);
    }
    const inlineTemplateProp = props.find(
      (p) => p.type === 6 && p.name === "inline-template"
    );
    if (inlineTemplateProp && checkCompatEnabled(
      "COMPILER_INLINE_TEMPLATE",
      currentOptions,
      inlineTemplateProp.loc
    ) && el.children.length) {
      inlineTemplateProp.value = {
        type: 2,
        content: getSlice(
          el.children[0].loc.start.offset,
          el.children[el.children.length - 1].loc.end.offset
        ),
        loc: inlineTemplateProp.loc
      };
    }
  }
}
function lookAhead(index, c) {
  let i = index;
  while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++;
  return i;
}
function backTrack(index, c) {
  let i = index;
  while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
  return i;
}
const specialTemplateDir = /* @__PURE__ */ new Set(["if", "else", "else-if", "for", "slot"]);
function isFragmentTemplate({ tag, props }) {
  if (tag === "template") {
    for (let i = 0; i < props.length; i++) {
      if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) {
        return true;
      }
    }
  }
  return false;
}
function isComponent({ tag, props }) {
  if (currentOptions.isCustomElement(tag)) {
    return false;
  }
  if (tag === "component" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) {
    return true;
  }
  for (let i = 0; i < props.length; i++) {
    const p = props[i];
    if (p.type === 6) {
      if (p.name === "is" && p.value) {
        if (p.value.content.startsWith("vue:")) {
          return true;
        } else if (checkCompatEnabled(
          "COMPILER_IS_ON_ELEMENT",
          currentOptions,
          p.loc
        )) {
          return true;
        }
      }
    } else if (
      // :is on plain element - only treat as component in compat mode
      p.name === "bind" && isStaticArgOf(p.arg, "is") && checkCompatEnabled(
        "COMPILER_IS_ON_ELEMENT",
        currentOptions,
        p.loc
      )
    ) {
      return true;
    }
  }
  return false;
}
function isUpperCase(c) {
  return c > 64 && c < 91;
}
const windowsNewlineRE = /\r\n/g;
function condenseWhitespace(nodes) {
  const shouldCondense = currentOptions.whitespace !== "preserve";
  let removedWhitespace = false;
  for (let i = 0; i < nodes.length; i++) {
    const node = nodes[i];
    if (node.type === 2) {
      if (!inPre) {
        if (isAllWhitespace(node.content)) {
          const prev = nodes[i - 1] && nodes[i - 1].type;
          const next = nodes[i + 1] && nodes[i + 1].type;
          if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
            removedWhitespace = true;
            nodes[i] = null;
          } else {
            node.content = " ";
          }
        } else if (shouldCondense) {
          node.content = condense(node.content);
        }
      } else {
        node.content = node.content.replace(windowsNewlineRE, "\n");
      }
    }
  }
  return removedWhitespace ? nodes.filter(Boolean) : nodes;
}
function hasNewlineChar(str) {
  for (let i = 0; i < str.length; i++) {
    const c = str.charCodeAt(i);
    if (c === 10 || c === 13) {
      return true;
    }
  }
  return false;
}
function condense(str) {
  let ret = "";
  let prevCharIsWhitespace = false;
  for (let i = 0; i < str.length; i++) {
    if (isWhitespace(str.charCodeAt(i))) {
      if (!prevCharIsWhitespace) {
        ret += " ";
        prevCharIsWhitespace = true;
      }
    } else {
      ret += str[i];
      prevCharIsWhitespace = false;
    }
  }
  return ret;
}
function addNode(node) {
  (stack[0] || currentRoot).children.push(node);
}
function getLoc(start, end) {
  return {
    start: tokenizer.getPos(start),
    // @ts-expect-error allow late attachment
    end: end == null ? end : tokenizer.getPos(end),
    // @ts-expect-error allow late attachment
    source: end == null ? end : getSlice(start, end)
  };
}
function cloneLoc(loc) {
  return getLoc(loc.start.offset, loc.end.offset);
}
function setLocEnd(loc, end) {
  loc.end = tokenizer.getPos(end);
  loc.source = getSlice(loc.start.offset, end);
}
function dirToAttr(dir) {
  const attr = {
    type: 6,
    name: dir.rawName,
    nameLoc: getLoc(
      dir.loc.start.offset,
      dir.loc.start.offset + dir.rawName.length
    ),
    value: void 0,
    loc: dir.loc
  };
  if (dir.exp) {
    const loc = dir.exp.loc;
    if (loc.end.offset < dir.loc.end.offset) {
      loc.start.offset--;
      loc.start.column--;
      loc.end.offset++;
      loc.end.column++;
    }
    attr.value = {
      type: 2,
      content: dir.exp.content,
      loc
    };
  }
  return attr;
}
function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0) {
  const exp = createSimpleExpression(content, isStatic, loc, constType);
  return exp;
}
function emitError(code, index, message) {
  currentOptions.onError(
    createCompilerError(code, getLoc(index, index), void 0, message)
  );
}
function reset() {
  tokenizer.reset();
  currentOpenTag = null;
  currentProp = null;
  currentAttrValue = "";
  currentAttrStartIndex = -1;
  currentAttrEndIndex = -1;
  stack.length = 0;
}
function baseParse(input, options) {
  reset();
  currentInput = input;
  currentOptions = extend({}, defaultParserOptions);
  if (options) {
    let key;
    for (key in options) {
      if (options[key] != null) {
        currentOptions[key] = options[key];
      }
    }
  }
  if (false) {
    if (!currentOptions.decodeEntities) {
      throw new Error(
        `[@vue/compiler-core] decodeEntities option is required in browser builds.`
      );
    }
  }
  tokenizer.mode = currentOptions.parseMode === "html" ? 1 : currentOptions.parseMode === "sfc" ? 2 : 0;
  tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2;
  const delimiters = options && options.delimiters;
  if (delimiters) {
    tokenizer.delimiterOpen = toCharCodes(delimiters[0]);
    tokenizer.delimiterClose = toCharCodes(delimiters[1]);
  }
  const root = currentRoot = createRoot([], input);
  tokenizer.parse(currentInput);
  root.loc = getLoc(0, input.length);
  root.children = condenseWhitespace(root.children);
  currentRoot = null;
  return root;
}
function cacheStatic(root, context) {
  walk(
    root,
    void 0,
    context,
    // Root node is unfortunately non-hoistable due to potential parent
    // fallthrough attributes.
    !!getSingleElementRoot(root)
  );
}
function getSingleElementRoot(root) {
  const children = root.children.filter((x) => x.type !== 3);
  return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null;
}
function walk(node, parent, context, doNotHoistNode = false, inFor = false) {
  const { children } = node;
  const toCache = [];
  for (let i = 0; i < children.length; i++) {
    const child = children[i];
    if (child.type === 1 && child.tagType === 0) {
      const constantType = doNotHoistNode ? 0 : getConstantType(child, context);
      if (constantType > 0) {
        if (constantType >= 2) {
          child.codegenNode.patchFlag = -1;
          toCache.push(child);
          continue;
        }
      } else {
        const codegenNode = child.codegenNode;
        if (codegenNode.type === 13) {
          const flag = codegenNode.patchFlag;
          if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) {
            const props = getNodeProps(child);
            if (props) {
              codegenNode.props = context.hoist(props);
            }
          }
          if (codegenNode.dynamicProps) {
            codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps);
          }
        }
      }
    } else if (child.type === 12) {
      const constantType = doNotHoistNode ? 0 : getConstantType(child, context);
      if (constantType >= 2) {
        if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) {
          child.codegenNode.arguments.push(
            -1 + (false ? ` /* ${PatchFlagNames[-1]} */` : ``)
          );
        }
        toCache.push(child);
        continue;
      }
    }
    if (child.type === 1) {
      const isComponent2 = child.tagType === 1;
      if (isComponent2) {
        context.scopes.vSlot++;
      }
      walk(child, node, context, false, inFor);
      if (isComponent2) {
        context.scopes.vSlot--;
      }
    } else if (child.type === 11) {
      walk(child, node, context, child.children.length === 1, true);
    } else if (child.type === 9) {
      for (let i2 = 0; i2 < child.branches.length; i2++) {
        walk(
          child.branches[i2],
          node,
          context,
          child.branches[i2].children.length === 1,
          inFor
        );
      }
    }
  }
  let cachedAsArray = false;
  if (toCache.length === children.length && node.type === 1) {
    if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray$1(node.codegenNode.children)) {
      node.codegenNode.children = getCacheExpression(
        createArrayExpression(node.codegenNode.children)
      );
      cachedAsArray = true;
    } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray$1(node.codegenNode.children) && node.codegenNode.children.type === 15) {
      const slot = getSlotNode(node.codegenNode, "default");
      if (slot) {
        slot.returns = getCacheExpression(
          createArrayExpression(slot.returns)
        );
        cachedAsArray = true;
      }
    } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !isArray$1(parent.codegenNode.children) && parent.codegenNode.children.type === 15) {
      const slotName = findDir(node, "slot", true);
      const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg);
      if (slot) {
        slot.returns = getCacheExpression(
          createArrayExpression(slot.returns)
        );
        cachedAsArray = true;
      }
    }
  }
  if (!cachedAsArray) {
    for (const child of toCache) {
      child.codegenNode = context.cache(child.codegenNode);
    }
  }
  function getCacheExpression(value) {
    const exp = context.cache(value);
    exp.needArraySpread = true;
    return exp;
  }
  function getSlotNode(node2, name) {
    if (node2.children && !isArray$1(node2.children) && node2.children.type === 15) {
      const slot = node2.children.properties.find(
        (p) => p.key === name || p.key.content === name
      );
      return slot && slot.value;
    }
  }
  if (toCache.length && context.transformHoist) {
    context.transformHoist(children, context, node);
  }
}
function getConstantType(node, context) {
  const { constantCache } = context;
  switch (node.type) {
    case 1:
      if (node.tagType !== 0) {
        return 0;
      }
      const cached = constantCache.get(node);
      if (cached !== void 0) {
        return cached;
      }
      const codegenNode = node.codegenNode;
      if (codegenNode.type !== 13) {
        return 0;
      }
      if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject" && node.tag !== "math") {
        return 0;
      }
      if (codegenNode.patchFlag === void 0) {
        let returnType2 = 3;
        const generatedPropsType = getGeneratedPropsConstantType(node, context);
        if (generatedPropsType === 0) {
          constantCache.set(node, 0);
          return 0;
        }
        if (generatedPropsType < returnType2) {
          returnType2 = generatedPropsType;
        }
        for (let i = 0; i < node.children.length; i++) {
          const childType = getConstantType(node.children[i], context);
          if (childType === 0) {
            constantCache.set(node, 0);
            return 0;
          }
          if (childType < returnType2) {
            returnType2 = childType;
          }
        }
        if (returnType2 > 1) {
          for (let i = 0; i < node.props.length; i++) {
            const p = node.props[i];
            if (p.type === 7 && p.name === "bind" && p.exp) {
              const expType = getConstantType(p.exp, context);
              if (expType === 0) {
                constantCache.set(node, 0);
                return 0;
              }
              if (expType < returnType2) {
                returnType2 = expType;
              }
            }
          }
        }
        if (codegenNode.isBlock) {
          for (let i = 0; i < node.props.length; i++) {
            const p = node.props[i];
            if (p.type === 7) {
              constantCache.set(node, 0);
              return 0;
            }
          }
          context.removeHelper(OPEN_BLOCK);
          context.removeHelper(
            getVNodeBlockHelper(context.inSSR, codegenNode.isComponent)
          );
          codegenNode.isBlock = false;
          context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent));
        }
        constantCache.set(node, returnType2);
        return returnType2;
      } else {
        constantCache.set(node, 0);
        return 0;
      }
    case 2:
    case 3:
      return 3;
    case 9:
    case 11:
    case 10:
      return 0;
    case 5:
    case 12:
      return getConstantType(node.content, context);
    case 4:
      return node.constType;
    case 8:
      let returnType = 3;
      for (let i = 0; i < node.children.length; i++) {
        const child = node.children[i];
        if (isString$2(child) || isSymbol$1(child)) {
          continue;
        }
        const childType = getConstantType(child, context);
        if (childType === 0) {
          return 0;
        } else if (childType < returnType) {
          returnType = childType;
        }
      }
      return returnType;
    case 20:
      return 2;
    default:
      if (false) ;
      return 0;
  }
}
const allowHoistedHelperSet = /* @__PURE__ */ new Set([
  NORMALIZE_CLASS,
  NORMALIZE_STYLE,
  NORMALIZE_PROPS,
  GUARD_REACTIVE_PROPS
]);
function getConstantTypeOfHelperCall(value, context) {
  if (value.type === 14 && !isString$2(value.callee) && allowHoistedHelperSet.has(value.callee)) {
    const arg = value.arguments[0];
    if (arg.type === 4) {
      return getConstantType(arg, context);
    } else if (arg.type === 14) {
      return getConstantTypeOfHelperCall(arg, context);
    }
  }
  return 0;
}
function getGeneratedPropsConstantType(node, context) {
  let returnType = 3;
  const props = getNodeProps(node);
  if (props && props.type === 15) {
    const { properties } = props;
    for (let i = 0; i < properties.length; i++) {
      const { key, value } = properties[i];
      const keyType = getConstantType(key, context);
      if (keyType === 0) {
        return keyType;
      }
      if (keyType < returnType) {
        returnType = keyType;
      }
      let valueType;
      if (value.type === 4) {
        valueType = getConstantType(value, context);
      } else if (value.type === 14) {
        valueType = getConstantTypeOfHelperCall(value, context);
      } else {
        valueType = 0;
      }
      if (valueType === 0) {
        return valueType;
      }
      if (valueType < returnType) {
        returnType = valueType;
      }
    }
  }
  return returnType;
}
function getNodeProps(node) {
  const codegenNode = node.codegenNode;
  if (codegenNode.type === 13) {
    return codegenNode.props;
  }
}
function createTransformContext(root, {
  filename = "",
  prefixIdentifiers = false,
  hoistStatic = false,
  hmr = false,
  cacheHandlers = false,
  nodeTransforms = [],
  directiveTransforms = {},
  transformHoist = null,
  isBuiltInComponent = NOOP,
  isCustomElement = NOOP,
  expressionPlugins = [],
  scopeId = null,
  slotted = true,
  ssr = false,
  inSSR = false,
  ssrCssVars = ``,
  bindingMetadata = EMPTY_OBJ,
  inline = false,
  isTS = false,
  onError = defaultOnError,
  onWarn = defaultOnWarn,
  compatConfig
}) {
  const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
  const context = {
    // options
    filename,
    selfName: nameMatch && capitalize$1(camelize(nameMatch[1])),
    prefixIdentifiers,
    hoistStatic,
    hmr,
    cacheHandlers,
    nodeTransforms,
    directiveTransforms,
    transformHoist,
    isBuiltInComponent,
    isCustomElement,
    expressionPlugins,
    scopeId,
    slotted,
    ssr,
    inSSR,
    ssrCssVars,
    bindingMetadata,
    inline,
    isTS,
    onError,
    onWarn,
    compatConfig,
    // state
    root,
    helpers: /* @__PURE__ */ new Map(),
    components: /* @__PURE__ */ new Set(),
    directives: /* @__PURE__ */ new Set(),
    hoists: [],
    imports: [],
    cached: [],
    constantCache: /* @__PURE__ */ new WeakMap(),
    temps: 0,
    identifiers: /* @__PURE__ */ Object.create(null),
    scopes: {
      vFor: 0,
      vSlot: 0,
      vPre: 0,
      vOnce: 0
    },
    parent: null,
    grandParent: null,
    currentNode: root,
    childIndex: 0,
    inVOnce: false,
    // methods
    helper(name) {
      const count = context.helpers.get(name) || 0;
      context.helpers.set(name, count + 1);
      return name;
    },
    removeHelper(name) {
      const count = context.helpers.get(name);
      if (count) {
        const currentCount = count - 1;
        if (!currentCount) {
          context.helpers.delete(name);
        } else {
          context.helpers.set(name, currentCount);
        }
      }
    },
    helperString(name) {
      return `_${helperNameMap[context.helper(name)]}`;
    },
    replaceNode(node) {
      if (false) {
        if (!context.currentNode) {
          throw new Error(`Node being replaced is already removed.`);
        }
        if (!context.parent) {
          throw new Error(`Cannot replace root node.`);
        }
      }
      context.parent.children[context.childIndex] = context.currentNode = node;
    },
    removeNode(node) {
      if (false) {
        throw new Error(`Cannot remove root node.`);
      }
      const list = context.parent.children;
      const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1;
      if (false) {
        throw new Error(`node being removed is not a child of current parent`);
      }
      if (!node || node === context.currentNode) {
        context.currentNode = null;
        context.onNodeRemoved();
      } else {
        if (context.childIndex > removalIndex) {
          context.childIndex--;
          context.onNodeRemoved();
        }
      }
      context.parent.children.splice(removalIndex, 1);
    },
    onNodeRemoved: NOOP,
    addIdentifiers(exp) {
    },
    removeIdentifiers(exp) {
    },
    hoist(exp) {
      if (isString$2(exp)) exp = createSimpleExpression(exp);
      context.hoists.push(exp);
      const identifier = createSimpleExpression(
        `_hoisted_${context.hoists.length}`,
        false,
        exp.loc,
        2
      );
      identifier.hoisted = exp;
      return identifier;
    },
    cache(exp, isVNode = false, inVOnce = false) {
      const cacheExp = createCacheExpression(
        context.cached.length,
        exp,
        isVNode,
        inVOnce
      );
      context.cached.push(cacheExp);
      return cacheExp;
    }
  };
  {
    context.filters = /* @__PURE__ */ new Set();
  }
  return context;
}
function transform(root, options) {
  const context = createTransformContext(root, options);
  traverseNode(root, context);
  if (options.hoistStatic) {
    cacheStatic(root, context);
  }
  if (!options.ssr) {
    createRootCodegen(root, context);
  }
  root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
  root.components = [...context.components];
  root.directives = [...context.directives];
  root.imports = context.imports;
  root.hoists = context.hoists;
  root.temps = context.temps;
  root.cached = context.cached;
  root.transformed = true;
  {
    root.filters = [...context.filters];
  }
}
function createRootCodegen(root, context) {
  const { helper } = context;
  const { children } = root;
  if (children.length === 1) {
    const singleElementRootChild = getSingleElementRoot(root);
    if (singleElementRootChild && singleElementRootChild.codegenNode) {
      const codegenNode = singleElementRootChild.codegenNode;
      if (codegenNode.type === 13) {
        convertToBlock(codegenNode, context);
      }
      root.codegenNode = codegenNode;
    } else {
      root.codegenNode = children[0];
    }
  } else if (children.length > 1) {
    let patchFlag = 64;
    if (false) {
      patchFlag |= 2048;
    }
    root.codegenNode = createVNodeCall(
      context,
      helper(FRAGMENT),
      void 0,
      root.children,
      patchFlag,
      void 0,
      void 0,
      true,
      void 0,
      false
    );
  } else ;
}
function traverseChildren(parent, context) {
  let i = 0;
  const nodeRemoved = () => {
    i--;
  };
  for (; i < parent.children.length; i++) {
    const child = parent.children[i];
    if (isString$2(child)) continue;
    context.grandParent = context.parent;
    context.parent = parent;
    context.childIndex = i;
    context.onNodeRemoved = nodeRemoved;
    traverseNode(child, context);
  }
}
function traverseNode(node, context) {
  context.currentNode = node;
  const { nodeTransforms } = context;
  const exitFns = [];
  for (let i2 = 0; i2 < nodeTransforms.length; i2++) {
    const onExit = nodeTransforms[i2](node, context);
    if (onExit) {
      if (isArray$1(onExit)) {
        exitFns.push(...onExit);
      } else {
        exitFns.push(onExit);
      }
    }
    if (!context.currentNode) {
      return;
    } else {
      node = context.currentNode;
    }
  }
  switch (node.type) {
    case 3:
      if (!context.ssr) {
        context.helper(CREATE_COMMENT);
      }
      break;
    case 5:
      if (!context.ssr) {
        context.helper(TO_DISPLAY_STRING);
      }
      break;
    // for container types, further traverse downwards
    case 9:
      for (let i2 = 0; i2 < node.branches.length; i2++) {
        traverseNode(node.branches[i2], context);
      }
      break;
    case 10:
    case 11:
    case 1:
    case 0:
      traverseChildren(node, context);
      break;
  }
  context.currentNode = node;
  let i = exitFns.length;
  while (i--) {
    exitFns[i]();
  }
}
function createStructuralDirectiveTransform(name, fn) {
  const matches = isString$2(name) ? (n) => n === name : (n) => name.test(n);
  return (node, context) => {
    if (node.type === 1) {
      const { props } = node;
      if (node.tagType === 3 && props.some(isVSlot)) {
        return;
      }
      const exitFns = [];
      for (let i = 0; i < props.length; i++) {
        const prop = props[i];
        if (prop.type === 7 && matches(prop.name)) {
          props.splice(i, 1);
          i--;
          const onExit = fn(node, prop, context);
          if (onExit) exitFns.push(onExit);
        }
      }
      return exitFns;
    }
  };
}
const PURE_ANNOTATION = `/*@__PURE__*/`;
const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`;
function createCodegenContext(ast, {
  mode = "function",
  prefixIdentifiers = mode === "module",
  sourceMap = false,
  filename = `template.vue.html`,
  scopeId = null,
  optimizeImports = false,
  runtimeGlobalName = `Vue`,
  runtimeModuleName = `vue`,
  ssrRuntimeModuleName = "vue/server-renderer",
  ssr = false,
  isTS = false,
  inSSR = false
}) {
  const context = {
    mode,
    prefixIdentifiers,
    sourceMap,
    filename,
    scopeId,
    optimizeImports,
    runtimeGlobalName,
    runtimeModuleName,
    ssrRuntimeModuleName,
    ssr,
    isTS,
    inSSR,
    source: ast.source,
    code: ``,
    column: 1,
    line: 1,
    offset: 0,
    indentLevel: 0,
    pure: false,
    map: void 0,
    helper(key) {
      return `_${helperNameMap[key]}`;
    },
    push(code, newlineIndex = -2, node) {
      context.code += code;
    },
    indent() {
      newline(++context.indentLevel);
    },
    deindent(withoutNewLine = false) {
      if (withoutNewLine) {
        --context.indentLevel;
      } else {
        newline(--context.indentLevel);
      }
    },
    newline() {
      newline(context.indentLevel);
    }
  };
  function newline(n) {
    context.push(
      "\n" + `  `.repeat(n),
      0
      /* Start */
    );
  }
  return context;
}
function generate(ast, options = {}) {
  const context = createCodegenContext(ast, options);
  if (options.onContextCreated) options.onContextCreated(context);
  const {
    mode,
    push,
    prefixIdentifiers,
    indent,
    deindent,
    newline,
    scopeId,
    ssr
  } = context;
  const helpers = Array.from(ast.helpers);
  const hasHelpers = helpers.length > 0;
  const useWithBlock = !prefixIdentifiers && mode !== "module";
  const preambleContext = context;
  {
    genFunctionPreamble(ast, preambleContext);
  }
  const functionName = ssr ? `ssrRender` : `render`;
  const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"];
  const signature = args.join(", ");
  {
    push(`function ${functionName}(${signature}) {`);
  }
  indent();
  if (useWithBlock) {
    push(`with (_ctx) {`);
    indent();
    if (hasHelpers) {
      push(
        `const { ${helpers.map(aliasHelper).join(", ")} } = _Vue
`,
        -1
        /* End */
      );
      newline();
    }
  }
  if (ast.components.length) {
    genAssets(ast.components, "component", context);
    if (ast.directives.length || ast.temps > 0) {
      newline();
    }
  }
  if (ast.directives.length) {
    genAssets(ast.directives, "directive", context);
    if (ast.temps > 0) {
      newline();
    }
  }
  if (ast.filters && ast.filters.length) {
    newline();
    genAssets(ast.filters, "filter", context);
    newline();
  }
  if (ast.temps > 0) {
    push(`let `);
    for (let i = 0; i < ast.temps; i++) {
      push(`${i > 0 ? `, ` : ``}_temp${i}`);
    }
  }
  if (ast.components.length || ast.directives.length || ast.temps) {
    push(
      `
`,
      0
      /* Start */
    );
    newline();
  }
  if (!ssr) {
    push(`return `);
  }
  if (ast.codegenNode) {
    genNode(ast.codegenNode, context);
  } else {
    push(`null`);
  }
  if (useWithBlock) {
    deindent();
    push(`}`);
  }
  deindent();
  push(`}`);
  return {
    ast,
    code: context.code,
    preamble: ``,
    map: context.map ? context.map.toJSON() : void 0
  };
}
function genFunctionPreamble(ast, context) {
  const {
    ssr,
    prefixIdentifiers,
    push,
    newline,
    runtimeModuleName,
    runtimeGlobalName,
    ssrRuntimeModuleName
  } = context;
  const VueBinding = runtimeGlobalName;
  const helpers = Array.from(ast.helpers);
  if (helpers.length > 0) {
    {
      push(
        `const _Vue = ${VueBinding}
`,
        -1
        /* End */
      );
      if (ast.hoists.length) {
        const staticHelpers = [
          CREATE_VNODE,
          CREATE_ELEMENT_VNODE,
          CREATE_COMMENT,
          CREATE_TEXT,
          CREATE_STATIC
        ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ");
        push(
          `const { ${staticHelpers} } = _Vue
`,
          -1
          /* End */
        );
      }
    }
  }
  genHoists(ast.hoists, context);
  newline();
  push(`return `);
}
function genAssets(assets, type, { helper, push, newline, isTS }) {
  const resolver = helper(
    type === "filter" ? RESOLVE_FILTER : type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE
  );
  for (let i = 0; i < assets.length; i++) {
    let id = assets[i];
    const maybeSelfReference = id.endsWith("__self");
    if (maybeSelfReference) {
      id = id.slice(0, -6);
    }
    push(
      `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}`
    );
    if (i < assets.length - 1) {
      newline();
    }
  }
}
function genHoists(hoists, context) {
  if (!hoists.length) {
    return;
  }
  context.pure = true;
  const { push, newline } = context;
  newline();
  for (let i = 0; i < hoists.length; i++) {
    const exp = hoists[i];
    if (exp) {
      push(`const _hoisted_${i + 1} = `);
      genNode(exp, context);
      newline();
    }
  }
  context.pure = false;
}
function isText(n) {
  return isString$2(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8;
}
function genNodeListAsArray(nodes, context) {
  const multilines = nodes.length > 3 || false;
  context.push(`[`);
  multilines && context.indent();
  genNodeList(nodes, context, multilines);
  multilines && context.deindent();
  context.push(`]`);
}
function genNodeList(nodes, context, multilines = false, comma = true) {
  const { push, newline } = context;
  for (let i = 0; i < nodes.length; i++) {
    const node = nodes[i];
    if (isString$2(node)) {
      push(
        node,
        -3
        /* Unknown */
      );
    } else if (isArray$1(node)) {
      genNodeListAsArray(node, context);
    } else {
      genNode(node, context);
    }
    if (i < nodes.length - 1) {
      if (multilines) {
        comma && push(",");
        newline();
      } else {
        comma && push(", ");
      }
    }
  }
}
function genNode(node, context) {
  if (isString$2(node)) {
    context.push(
      node,
      -3
      /* Unknown */
    );
    return;
  }
  if (isSymbol$1(node)) {
    context.push(context.helper(node));
    return;
  }
  switch (node.type) {
    case 1:
    case 9:
    case 11:
      genNode(node.codegenNode, context);
      break;
    case 2:
      genText(node, context);
      break;
    case 4:
      genExpression(node, context);
      break;
    case 5:
      genInterpolation(node, context);
      break;
    case 12:
      genNode(node.codegenNode, context);
      break;
    case 8:
      genCompoundExpression(node, context);
      break;
    case 3:
      genComment(node, context);
      break;
    case 13:
      genVNodeCall(node, context);
      break;
    case 14:
      genCallExpression(node, context);
      break;
    case 15:
      genObjectExpression(node, context);
      break;
    case 17:
      genArrayExpression(node, context);
      break;
    case 18:
      genFunctionExpression(node, context);
      break;
    case 19:
      genConditionalExpression(node, context);
      break;
    case 20:
      genCacheExpression(node, context);
      break;
    case 21:
      genNodeList(node.body, context, true, false);
      break;
    // SSR only types
    case 22:
      break;
    case 23:
      break;
    case 24:
      break;
    case 25:
      break;
    case 26:
      break;
    /* v8 ignore start */
    case 10:
      break;
    default:
      if (false) {
        assert(false, `unhandled codegen node type: ${node.type}`);
        const exhaustiveCheck = node;
        return exhaustiveCheck;
      }
  }
}
function genText(node, context) {
  context.push(JSON.stringify(node.content), -3, node);
}
function genExpression(node, context) {
  const { content, isStatic } = node;
  context.push(
    isStatic ? JSON.stringify(content) : content,
    -3,
    node
  );
}
function genInterpolation(node, context) {
  const { push, helper, pure } = context;
  if (pure) push(PURE_ANNOTATION);
  push(`${helper(TO_DISPLAY_STRING)}(`);
  genNode(node.content, context);
  push(`)`);
}
function genCompoundExpression(node, context) {
  for (let i = 0; i < node.children.length; i++) {
    const child = node.children[i];
    if (isString$2(child)) {
      context.push(
        child,
        -3
        /* Unknown */
      );
    } else {
      genNode(child, context);
    }
  }
}
function genExpressionAsPropertyKey(node, context) {
  const { push } = context;
  if (node.type === 8) {
    push(`[`);
    genCompoundExpression(node, context);
    push(`]`);
  } else if (node.isStatic) {
    const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content);
    push(text, -2, node);
  } else {
    push(`[${node.content}]`, -3, node);
  }
}
function genComment(node, context) {
  const { push, helper, pure } = context;
  if (pure) {
    push(PURE_ANNOTATION);
  }
  push(
    `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`,
    -3,
    node
  );
}
function genVNodeCall(node, context) {
  const { push, helper, pure } = context;
  const {
    tag,
    props,
    children,
    patchFlag,
    dynamicProps,
    directives,
    isBlock,
    disableTracking,
    isComponent: isComponent2
  } = node;
  let patchFlagString;
  if (patchFlag) {
    if (false) {
      if (patchFlag < 0) {
        patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
      } else {
        const flagNames = Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `);
        patchFlagString = patchFlag + ` /* ${flagNames} */`;
      }
    } else {
      patchFlagString = String(patchFlag);
    }
  }
  if (directives) {
    push(helper(WITH_DIRECTIVES) + `(`);
  }
  if (isBlock) {
    push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);
  }
  if (pure) {
    push(PURE_ANNOTATION);
  }
  const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent2) : getVNodeHelper(context.inSSR, isComponent2);
  push(helper(callHelper) + `(`, -2, node);
  genNodeList(
    genNullableArgs([tag, props, children, patchFlagString, dynamicProps]),
    context
  );
  push(`)`);
  if (isBlock) {
    push(`)`);
  }
  if (directives) {
    push(`, `);
    genNode(directives, context);
    push(`)`);
  }
}
function genNullableArgs(args) {
  let i = args.length;
  while (i--) {
    if (args[i] != null) break;
  }
  return args.slice(0, i + 1).map((arg) => arg || `null`);
}
function genCallExpression(node, context) {
  const { push, helper, pure } = context;
  const callee = isString$2(node.callee) ? node.callee : helper(node.callee);
  if (pure) {
    push(PURE_ANNOTATION);
  }
  push(callee + `(`, -2, node);
  genNodeList(node.arguments, context);
  push(`)`);
}
function genObjectExpression(node, context) {
  const { push, indent, deindent, newline } = context;
  const { properties } = node;
  if (!properties.length) {
    push(`{}`, -2, node);
    return;
  }
  const multilines = properties.length > 1 || false;
  push(multilines ? `{` : `{ `);
  multilines && indent();
  for (let i = 0; i < properties.length; i++) {
    const { key, value } = properties[i];
    genExpressionAsPropertyKey(key, context);
    push(`: `);
    genNode(value, context);
    if (i < properties.length - 1) {
      push(`,`);
      newline();
    }
  }
  multilines && deindent();
  push(multilines ? `}` : ` }`);
}
function genArrayExpression(node, context) {
  genNodeListAsArray(node.elements, context);
}
function genFunctionExpression(node, context) {
  const { push, indent, deindent } = context;
  const { params, returns, body, newline, isSlot } = node;
  if (isSlot) {
    push(`_${helperNameMap[WITH_CTX]}(`);
  }
  push(`(`, -2, node);
  if (isArray$1(params)) {
    genNodeList(params, context);
  } else if (params) {
    genNode(params, context);
  }
  push(`) => `);
  if (newline || body) {
    push(`{`);
    indent();
  }
  if (returns) {
    if (newline) {
      push(`return `);
    }
    if (isArray$1(returns)) {
      genNodeListAsArray(returns, context);
    } else {
      genNode(returns, context);
    }
  } else if (body) {
    genNode(body, context);
  }
  if (newline || body) {
    deindent();
    push(`}`);
  }
  if (isSlot) {
    if (node.isNonScopedSlot) {
      push(`, undefined, true`);
    }
    push(`)`);
  }
}
function genConditionalExpression(node, context) {
  const { test, consequent, alternate, newline: needNewline } = node;
  const { push, indent, deindent, newline } = context;
  if (test.type === 4) {
    const needsParens = !isSimpleIdentifier(test.content);
    needsParens && push(`(`);
    genExpression(test, context);
    needsParens && push(`)`);
  } else {
    push(`(`);
    genNode(test, context);
    push(`)`);
  }
  needNewline && indent();
  context.indentLevel++;
  needNewline || push(` `);
  push(`? `);
  genNode(consequent, context);
  context.indentLevel--;
  needNewline && newline();
  needNewline || push(` `);
  push(`: `);
  const isNested = alternate.type === 19;
  if (!isNested) {
    context.indentLevel++;
  }
  genNode(alternate, context);
  if (!isNested) {
    context.indentLevel--;
  }
  needNewline && deindent(
    true
    /* without newline */
  );
}
function genCacheExpression(node, context) {
  const { push, helper, indent, deindent, newline } = context;
  const { needPauseTracking, needArraySpread } = node;
  if (needArraySpread) {
    push(`[...(`);
  }
  push(`_cache[${node.index}] || (`);
  if (needPauseTracking) {
    indent();
    push(`${helper(SET_BLOCK_TRACKING)}(-1`);
    if (node.inVOnce) push(`, true`);
    push(`),`);
    newline();
    push(`(`);
  }
  push(`_cache[${node.index}] = `);
  genNode(node.value, context);
  if (needPauseTracking) {
    push(`).cacheIndex = ${node.index},`);
    newline();
    push(`${helper(SET_BLOCK_TRACKING)}(1),`);
    newline();
    push(`_cache[${node.index}]`);
    deindent();
  }
  push(`)`);
  if (needArraySpread) {
    push(`)]`);
  }
}
const prohibitedKeywordRE = new RegExp(
  "\\b" + "arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b") + "\\b"
);
const stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;
function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) {
  const exp = node.content;
  if (!exp.trim()) {
    return;
  }
  try {
    new Function(
      asRawStatements ? ` ${exp} ` : `return ${asParams ? `(${exp}) => {}` : `(${exp})`}`
    );
  } catch (e) {
    let message = e.message;
    const keywordMatch = exp.replace(stripStringRE, "").match(prohibitedKeywordRE);
    if (keywordMatch) {
      message = `avoid using JavaScript keyword as property name: "${keywordMatch[0]}"`;
    }
    context.onError(
      createCompilerError(
        46,
        node.loc,
        void 0,
        message
      )
    );
  }
}
const transformExpression = (node, context) => {
  if (node.type === 5) {
    node.content = processExpression(
      node.content,
      context
    );
  } else if (node.type === 1) {
    const memo = findDir(node, "memo");
    for (let i = 0; i < node.props.length; i++) {
      const dir = node.props[i];
      if (dir.type === 7 && dir.name !== "for") {
        const exp = dir.exp;
        const arg = dir.arg;
        if (exp && exp.type === 4 && !(dir.name === "on" && arg) && // key has been processed in transformFor(vMemo + vFor)
        !(memo && arg && arg.type === 4 && arg.content === "key")) {
          dir.exp = processExpression(
            exp,
            context,
            // slot args must be processed as function params
            dir.name === "slot"
          );
        }
        if (arg && arg.type === 4 && !arg.isStatic) {
          dir.arg = processExpression(arg, context);
        }
      }
    }
  }
};
function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) {
  {
    if (false) {
      validateBrowserExpression(node, context, asParams, asRawStatements);
    }
    return node;
  }
}
function stringifyExpression(exp) {
  if (isString$2(exp)) {
    return exp;
  } else if (exp.type === 4) {
    return exp.content;
  } else {
    return exp.children.map(stringifyExpression).join("");
  }
}
const transformIf = createStructuralDirectiveTransform(
  /^(?:if|else|else-if)$/,
  (node, dir, context) => {
    return processIf(node, dir, context, (ifNode, branch, isRoot) => {
      const siblings = context.parent.children;
      let i = siblings.indexOf(ifNode);
      let key = 0;
      while (i-- >= 0) {
        const sibling = siblings[i];
        if (sibling && sibling.type === 9) {
          key += sibling.branches.length;
        }
      }
      return () => {
        if (isRoot) {
          ifNode.codegenNode = createCodegenNodeForBranch(
            branch,
            key,
            context
          );
        } else {
          const parentCondition = getParentCondition(ifNode.codegenNode);
          parentCondition.alternate = createCodegenNodeForBranch(
            branch,
            key + ifNode.branches.length - 1,
            context
          );
        }
      };
    });
  }
);
function processIf(node, dir, context, processCodegen) {
  if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) {
    const loc = dir.exp ? dir.exp.loc : node.loc;
    context.onError(
      createCompilerError(28, dir.loc)
    );
    dir.exp = createSimpleExpression(`true`, false, loc);
  }
  if (false) {
    validateBrowserExpression(dir.exp, context);
  }
  if (dir.name === "if") {
    const branch = createIfBranch(node, dir);
    const ifNode = {
      type: 9,
      loc: cloneLoc(node.loc),
      branches: [branch]
    };
    context.replaceNode(ifNode);
    if (processCodegen) {
      return processCodegen(ifNode, branch, true);
    }
  } else {
    const siblings = context.parent.children;
    const comments = [];
    let i = siblings.indexOf(node);
    while (i-- >= -1) {
      const sibling = siblings[i];
      if (sibling && isCommentOrWhitespace(sibling)) {
        context.removeNode(sibling);
        if (false) {
          comments.unshift(sibling);
        }
        continue;
      }
      if (sibling && sibling.type === 9) {
        if ((dir.name === "else-if" || dir.name === "else") && sibling.branches[sibling.branches.length - 1].condition === void 0) {
          context.onError(
            createCompilerError(30, node.loc)
          );
        }
        context.removeNode();
        const branch = createIfBranch(node, dir);
        if (false) {
          branch.children = [...comments, ...branch.children];
        }
        if (false) {
          const key = branch.userKey;
          if (key) {
            sibling.branches.forEach(({ userKey }) => {
              if (isSameKey(userKey, key)) {
                context.onError(
                  createCompilerError(
                    29,
                    branch.userKey.loc
                  )
                );
              }
            });
          }
        }
        sibling.branches.push(branch);
        const onExit = processCodegen && processCodegen(sibling, branch, false);
        traverseNode(branch, context);
        if (onExit) onExit();
        context.currentNode = null;
      } else {
        context.onError(
          createCompilerError(30, node.loc)
        );
      }
      break;
    }
  }
}
function createIfBranch(node, dir) {
  const isTemplateIf = node.tagType === 3;
  return {
    type: 10,
    loc: node.loc,
    condition: dir.name === "else" ? void 0 : dir.exp,
    children: isTemplateIf && !findDir(node, "for") ? node.children : [node],
    userKey: findProp(node, `key`),
    isTemplateIf
  };
}
function createCodegenNodeForBranch(branch, keyIndex, context) {
  if (branch.condition) {
    return createConditionalExpression(
      branch.condition,
      createChildrenCodegenNode(branch, keyIndex, context),
      // make sure to pass in asBlock: true so that the comment node call
      // closes the current block.
      createCallExpression(context.helper(CREATE_COMMENT), [
        false ? '"v-if"' : '""',
        "true"
      ])
    );
  } else {
    return createChildrenCodegenNode(branch, keyIndex, context);
  }
}
function createChildrenCodegenNode(branch, keyIndex, context) {
  const { helper } = context;
  const keyProperty = createObjectProperty(
    `key`,
    createSimpleExpression(
      `${keyIndex}`,
      false,
      locStub,
      2
    )
  );
  const { children } = branch;
  const firstChild = children[0];
  const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1;
  if (needFragmentWrapper) {
    if (children.length === 1 && firstChild.type === 11) {
      const vnodeCall = firstChild.codegenNode;
      injectProp(vnodeCall, keyProperty, context);
      return vnodeCall;
    } else {
      let patchFlag = 64;
      if (false) {
        patchFlag |= 2048;
      }
      return createVNodeCall(
        context,
        helper(FRAGMENT),
        createObjectExpression([keyProperty]),
        children,
        patchFlag,
        void 0,
        void 0,
        true,
        false,
        false,
        branch.loc
      );
    }
  } else {
    const ret = firstChild.codegenNode;
    const vnodeCall = getMemoedVNodeCall(ret);
    if (vnodeCall.type === 13) {
      convertToBlock(vnodeCall, context);
    }
    injectProp(vnodeCall, keyProperty, context);
    return ret;
  }
}
function isSameKey(a, b) {
  if (!a || a.type !== b.type) {
    return false;
  }
  if (a.type === 6) {
    if (a.value.content !== b.value.content) {
      return false;
    }
  } else {
    const exp = a.exp;
    const branchExp = b.exp;
    if (exp.type !== branchExp.type) {
      return false;
    }
    if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) {
      return false;
    }
  }
  return true;
}
function getParentCondition(node) {
  while (true) {
    if (node.type === 19) {
      if (node.alternate.type === 19) {
        node = node.alternate;
      } else {
        return node;
      }
    } else if (node.type === 20) {
      node = node.value;
    }
  }
}
const transformFor = createStructuralDirectiveTransform(
  "for",
  (node, dir, context) => {
    const { helper, removeHelper } = context;
    return processFor(node, dir, context, (forNode) => {
      const renderExp = createCallExpression(helper(RENDER_LIST), [
        forNode.source
      ]);
      const isTemplate = isTemplateNode(node);
      const memo = findDir(node, "memo");
      const keyProp = findProp(node, `key`, false, true);
      keyProp && keyProp.type === 7;
      let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);
      const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;
      const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;
      const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;
      forNode.codegenNode = createVNodeCall(
        context,
        helper(FRAGMENT),
        void 0,
        renderExp,
        fragmentFlag,
        void 0,
        void 0,
        true,
        !isStableFragment,
        false,
        node.loc
      );
      return () => {
        let childBlock;
        const { children } = forNode;
        if (false) {
          node.children.some((c) => {
            if (c.type === 1) {
              const key = findProp(c, "key");
              if (key) {
                context.onError(
                  createCompilerError(
                    33,
                    key.loc
                  )
                );
                return true;
              }
            }
          });
        }
        const needFragmentWrapper = children.length !== 1 || children[0].type !== 1;
        const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null;
        if (slotOutlet) {
          childBlock = slotOutlet.codegenNode;
          if (isTemplate && keyProperty) {
            injectProp(childBlock, keyProperty, context);
          }
        } else if (needFragmentWrapper) {
          childBlock = createVNodeCall(
            context,
            helper(FRAGMENT),
            keyProperty ? createObjectExpression([keyProperty]) : void 0,
            node.children,
            64,
            void 0,
            void 0,
            true,
            void 0,
            false
          );
        } else {
          childBlock = children[0].codegenNode;
          if (isTemplate && keyProperty) {
            injectProp(childBlock, keyProperty, context);
          }
          if (childBlock.isBlock !== !isStableFragment) {
            if (childBlock.isBlock) {
              removeHelper(OPEN_BLOCK);
              removeHelper(
                getVNodeBlockHelper(context.inSSR, childBlock.isComponent)
              );
            } else {
              removeHelper(
                getVNodeHelper(context.inSSR, childBlock.isComponent)
              );
            }
          }
          childBlock.isBlock = !isStableFragment;
          if (childBlock.isBlock) {
            helper(OPEN_BLOCK);
            helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
          } else {
            helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
          }
        }
        if (memo) {
          const loop = createFunctionExpression(
            createForLoopParams(forNode.parseResult, [
              createSimpleExpression(`_cached`)
            ])
          );
          loop.body = createBlockStatement([
            createCompoundExpression([`const _memo = (`, memo.exp, `)`]),
            createCompoundExpression([
              `if (_cached && _cached.el`,
              ...keyExp ? [` && _cached.key === `, keyExp] : [],
              ` && ${context.helperString(
                IS_MEMO_SAME
              )}(_cached, _memo)) return _cached`
            ]),
            createCompoundExpression([`const _item = `, childBlock]),
            createSimpleExpression(`_item.memo = _memo`),
            createSimpleExpression(`return _item`)
          ]);
          renderExp.arguments.push(
            loop,
            createSimpleExpression(`_cache`),
            createSimpleExpression(String(context.cached.length))
          );
          context.cached.push(null);
        } else {
          renderExp.arguments.push(
            createFunctionExpression(
              createForLoopParams(forNode.parseResult),
              childBlock,
              true
            )
          );
        }
      };
    });
  }
);
function processFor(node, dir, context, processCodegen) {
  if (!dir.exp) {
    context.onError(
      createCompilerError(31, dir.loc)
    );
    return;
  }
  const parseResult = dir.forParseResult;
  if (!parseResult) {
    context.onError(
      createCompilerError(32, dir.loc)
    );
    return;
  }
  finalizeForParseResult(parseResult, context);
  const { addIdentifiers, removeIdentifiers, scopes } = context;
  const { source, value, key, index } = parseResult;
  const forNode = {
    type: 11,
    loc: dir.loc,
    source,
    valueAlias: value,
    keyAlias: key,
    objectIndexAlias: index,
    parseResult,
    children: isTemplateNode(node) ? node.children : [node]
  };
  context.replaceNode(forNode);
  scopes.vFor++;
  const onExit = processCodegen && processCodegen(forNode);
  return () => {
    scopes.vFor--;
    if (onExit) onExit();
  };
}
function finalizeForParseResult(result, context) {
  if (result.finalized) return;
  if (false) {
    validateBrowserExpression(result.source, context);
    if (result.key) {
      validateBrowserExpression(
        result.key,
        context,
        true
      );
    }
    if (result.index) {
      validateBrowserExpression(
        result.index,
        context,
        true
      );
    }
    if (result.value) {
      validateBrowserExpression(
        result.value,
        context,
        true
      );
    }
  }
  result.finalized = true;
}
function createForLoopParams({ value, key, index }, memoArgs = []) {
  return createParamsList([value, key, index, ...memoArgs]);
}
function createParamsList(args) {
  let i = args.length;
  while (i--) {
    if (args[i]) break;
  }
  return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false));
}
const defaultFallback = createSimpleExpression(`undefined`, false);
const trackSlotScopes = (node, context) => {
  if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) {
    const vSlot = findDir(node, "slot");
    if (vSlot) {
      vSlot.exp;
      context.scopes.vSlot++;
      return () => {
        context.scopes.vSlot--;
      };
    }
  }
};
const trackVForSlotScopes = (node, context) => {
  let vFor;
  if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, "for"))) {
    const result = vFor.forParseResult;
    if (result) {
      finalizeForParseResult(result, context);
      const { value, key, index } = result;
      const { addIdentifiers, removeIdentifiers } = context;
      value && addIdentifiers(value);
      key && addIdentifiers(key);
      index && addIdentifiers(index);
      return () => {
        value && removeIdentifiers(value);
        key && removeIdentifiers(key);
        index && removeIdentifiers(index);
      };
    }
  }
};
const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression(
  props,
  children,
  false,
  true,
  children.length ? children[0].loc : loc
);
function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
  context.helper(WITH_CTX);
  const { children, loc } = node;
  const slotsProperties = [];
  const dynamicSlots = [];
  let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0;
  const onComponentSlot = findDir(node, "slot", true);
  if (onComponentSlot) {
    const { arg, exp } = onComponentSlot;
    if (arg && !isStaticExp(arg)) {
      hasDynamicSlots = true;
    }
    slotsProperties.push(
      createObjectProperty(
        arg || createSimpleExpression("default", true),
        buildSlotFn(exp, void 0, children, loc)
      )
    );
  }
  let hasTemplateSlots = false;
  let hasNamedDefaultSlot = false;
  const implicitDefaultChildren = [];
  const seenSlotNames = /* @__PURE__ */ new Set();
  let conditionalBranchIndex = 0;
  for (let i = 0; i < children.length; i++) {
    const slotElement = children[i];
    let slotDir;
    if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) {
      if (slotElement.type !== 3) {
        implicitDefaultChildren.push(slotElement);
      }
      continue;
    }
    if (onComponentSlot) {
      context.onError(
        createCompilerError(37, slotDir.loc)
      );
      break;
    }
    hasTemplateSlots = true;
    const { children: slotChildren, loc: slotLoc } = slotElement;
    const {
      arg: slotName = createSimpleExpression(`default`, true),
      exp: slotProps,
      loc: dirLoc
    } = slotDir;
    let staticSlotName;
    if (isStaticExp(slotName)) {
      staticSlotName = slotName ? slotName.content : `default`;
    } else {
      hasDynamicSlots = true;
    }
    const vFor = findDir(slotElement, "for");
    const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc);
    let vIf;
    let vElse;
    if (vIf = findDir(slotElement, "if")) {
      hasDynamicSlots = true;
      dynamicSlots.push(
        createConditionalExpression(
          vIf.exp,
          buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++),
          defaultFallback
        )
      );
    } else if (vElse = findDir(
      slotElement,
      /^else(?:-if)?$/,
      true
      /* allowEmpty */
    )) {
      let j = i;
      let prev;
      while (j--) {
        prev = children[j];
        if (!isCommentOrWhitespace(prev)) {
          break;
        }
      }
      if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) {
        let conditional = dynamicSlots[dynamicSlots.length - 1];
        while (conditional.alternate.type === 19) {
          conditional = conditional.alternate;
        }
        conditional.alternate = vElse.exp ? createConditionalExpression(
          vElse.exp,
          buildDynamicSlot(
            slotName,
            slotFunction,
            conditionalBranchIndex++
          ),
          defaultFallback
        ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++);
      } else {
        context.onError(
          createCompilerError(30, vElse.loc)
        );
      }
    } else if (vFor) {
      hasDynamicSlots = true;
      const parseResult = vFor.forParseResult;
      if (parseResult) {
        finalizeForParseResult(parseResult, context);
        dynamicSlots.push(
          createCallExpression(context.helper(RENDER_LIST), [
            parseResult.source,
            createFunctionExpression(
              createForLoopParams(parseResult),
              buildDynamicSlot(slotName, slotFunction),
              true
            )
          ])
        );
      } else {
        context.onError(
          createCompilerError(
            32,
            vFor.loc
          )
        );
      }
    } else {
      if (staticSlotName) {
        if (seenSlotNames.has(staticSlotName)) {
          context.onError(
            createCompilerError(
              38,
              dirLoc
            )
          );
          continue;
        }
        seenSlotNames.add(staticSlotName);
        if (staticSlotName === "default") {
          hasNamedDefaultSlot = true;
        }
      }
      slotsProperties.push(createObjectProperty(slotName, slotFunction));
    }
  }
  if (!onComponentSlot) {
    const buildDefaultSlotProperty = (props, children2) => {
      const fn = buildSlotFn(props, void 0, children2, loc);
      if (context.compatConfig) {
        fn.isNonScopedSlot = true;
      }
      return createObjectProperty(`default`, fn);
    };
    if (!hasTemplateSlots) {
      slotsProperties.push(buildDefaultSlotProperty(void 0, children));
    } else if (implicitDefaultChildren.length && // #3766
    // with whitespace: 'preserve', whitespaces between slots will end up in
    // implicitDefaultChildren. Ignore if all implicit children are whitespaces.
    !implicitDefaultChildren.every(isWhitespaceText)) {
      if (hasNamedDefaultSlot) {
        context.onError(
          createCompilerError(
            39,
            implicitDefaultChildren[0].loc
          )
        );
      } else {
        slotsProperties.push(
          buildDefaultSlotProperty(void 0, implicitDefaultChildren)
        );
      }
    }
  }
  const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
  let slots = createObjectExpression(
    slotsProperties.concat(
      createObjectProperty(
        `_`,
        // 2 = compiled but dynamic = can skip normalization, but must run diff
        // 1 = compiled and static = can skip normalization AND diff as optimized
        createSimpleExpression(
          slotFlag + (false ? ` /* ${slotFlagsText[slotFlag]} */` : ``),
          false
        )
      )
    ),
    loc
  );
  if (dynamicSlots.length) {
    slots = createCallExpression(context.helper(CREATE_SLOTS), [
      slots,
      createArrayExpression(dynamicSlots)
    ]);
  }
  return {
    slots,
    hasDynamicSlots
  };
}
function buildDynamicSlot(name, fn, index) {
  const props = [
    createObjectProperty(`name`, name),
    createObjectProperty(`fn`, fn)
  ];
  if (index != null) {
    props.push(
      createObjectProperty(`key`, createSimpleExpression(String(index), true))
    );
  }
  return createObjectExpression(props);
}
function hasForwardedSlots(children) {
  for (let i = 0; i < children.length; i++) {
    const child = children[i];
    switch (child.type) {
      case 1:
        if (child.tagType === 2 || hasForwardedSlots(child.children)) {
          return true;
        }
        break;
      case 9:
        if (hasForwardedSlots(child.branches)) return true;
        break;
      case 10:
      case 11:
        if (hasForwardedSlots(child.children)) return true;
        break;
    }
  }
  return false;
}
const directiveImportMap = /* @__PURE__ */ new WeakMap();
const transformElement = (node, context) => {
  return function postTransformElement() {
    node = context.currentNode;
    if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) {
      return;
    }
    const { tag, props } = node;
    const isComponent2 = node.tagType === 1;
    let vnodeTag = isComponent2 ? resolveComponentType(node, context) : `"${tag}"`;
    const isDynamicComponent = isObject$3(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT;
    let vnodeProps;
    let vnodeChildren;
    let patchFlag = 0;
    let vnodeDynamicProps;
    let dynamicPropNames;
    let vnodeDirectives;
    let shouldUseBlock = (
      // dynamic component may resolve to plain elements
      isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent2 && // <svg> and <foreignObject> must be forced into blocks so that block
      // updates inside get proper isSVG flag at runtime. (#639, #643)
      // This is technically web-specific, but splitting the logic out of core
      // leads to too much unnecessary complexity.
      (tag === "svg" || tag === "foreignObject" || tag === "math")
    );
    if (props.length > 0) {
      const propsBuildResult = buildProps(
        node,
        context,
        void 0,
        isComponent2,
        isDynamicComponent
      );
      vnodeProps = propsBuildResult.props;
      patchFlag = propsBuildResult.patchFlag;
      dynamicPropNames = propsBuildResult.dynamicPropNames;
      const directives = propsBuildResult.directives;
      vnodeDirectives = directives && directives.length ? createArrayExpression(
        directives.map((dir) => buildDirectiveArgs(dir, context))
      ) : void 0;
      if (propsBuildResult.shouldUseBlock) {
        shouldUseBlock = true;
      }
    }
    if (node.children.length > 0) {
      if (vnodeTag === KEEP_ALIVE) {
        shouldUseBlock = true;
        patchFlag |= 1024;
        if (false) {
          context.onError(
            createCompilerError(47, {
              start: node.children[0].loc.start,
              end: node.children[node.children.length - 1].loc.end,
              source: ""
            })
          );
        }
      }
      const shouldBuildAsSlots = isComponent2 && // Teleport is not a real component and has dedicated runtime handling
      vnodeTag !== TELEPORT && // explained above.
      vnodeTag !== KEEP_ALIVE;
      if (shouldBuildAsSlots) {
        const { slots, hasDynamicSlots } = buildSlots(node, context);
        vnodeChildren = slots;
        if (hasDynamicSlots) {
          patchFlag |= 1024;
        }
      } else if (node.children.length === 1 && vnodeTag !== TELEPORT) {
        const child = node.children[0];
        const type = child.type;
        const hasDynamicTextChild = type === 5 || type === 8;
        if (hasDynamicTextChild && getConstantType(child, context) === 0) {
          patchFlag |= 1;
        }
        if (hasDynamicTextChild || type === 2) {
          vnodeChildren = child;
        } else {
          vnodeChildren = node.children;
        }
      } else {
        vnodeChildren = node.children;
      }
    }
    if (dynamicPropNames && dynamicPropNames.length) {
      vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
    }
    node.codegenNode = createVNodeCall(
      context,
      vnodeTag,
      vnodeProps,
      vnodeChildren,
      patchFlag === 0 ? void 0 : patchFlag,
      vnodeDynamicProps,
      vnodeDirectives,
      !!shouldUseBlock,
      false,
      isComponent2,
      node.loc
    );
  };
};
function resolveComponentType(node, context, ssr = false) {
  let { tag } = node;
  const isExplicitDynamic = isComponentTag(tag);
  const isProp = findProp(
    node,
    "is",
    false,
    true
    /* allow empty */
  );
  if (isProp) {
    if (isExplicitDynamic || isCompatEnabled(
      "COMPILER_IS_ON_ELEMENT",
      context
    )) {
      let exp;
      if (isProp.type === 6) {
        exp = isProp.value && createSimpleExpression(isProp.value.content, true);
      } else {
        exp = isProp.exp;
        if (!exp) {
          exp = createSimpleExpression(`is`, false, isProp.arg.loc);
        }
      }
      if (exp) {
        return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [
          exp
        ]);
      }
    } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) {
      tag = isProp.value.content.slice(4);
    }
  }
  const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag);
  if (builtIn) {
    if (!ssr) context.helper(builtIn);
    return builtIn;
  }
  context.helper(RESOLVE_COMPONENT);
  context.components.add(tag);
  return toValidAssetId(tag, `component`);
}
function buildProps(node, context, props = node.props, isComponent2, isDynamicComponent, ssr = false) {
  const { tag, loc: elementLoc, children } = node;
  let properties = [];
  const mergeArgs = [];
  const runtimeDirectives = [];
  const hasChildren = children.length > 0;
  let shouldUseBlock = false;
  let patchFlag = 0;
  let hasRef = false;
  let hasClassBinding = false;
  let hasStyleBinding = false;
  let hasHydrationEventBinding = false;
  let hasDynamicKeys = false;
  let hasVnodeHook = false;
  const dynamicPropNames = [];
  const pushMergeArg = (arg) => {
    if (properties.length) {
      mergeArgs.push(
        createObjectExpression(dedupeProperties(properties), elementLoc)
      );
      properties = [];
    }
    if (arg) mergeArgs.push(arg);
  };
  const pushRefVForMarker = () => {
    if (context.scopes.vFor > 0) {
      properties.push(
        createObjectProperty(
          createSimpleExpression("ref_for", true),
          createSimpleExpression("true")
        )
      );
    }
  };
  const analyzePatchFlag = ({ key, value }) => {
    if (isStaticExp(key)) {
      const name = key.content;
      const isEventHandler = isOn(name);
      if (isEventHandler && (!isComponent2 || isDynamicComponent) && // omit the flag for click handlers because hydration gives click
      // dedicated fast path.
      name.toLowerCase() !== "onclick" && // omit v-model handlers
      name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks
      !isReservedProp(name)) {
        hasHydrationEventBinding = true;
      }
      if (isEventHandler && isReservedProp(name)) {
        hasVnodeHook = true;
      }
      if (isEventHandler && value.type === 14) {
        value = value.arguments[0];
      }
      if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) {
        return;
      }
      if (name === "ref") {
        hasRef = true;
      } else if (name === "class") {
        hasClassBinding = true;
      } else if (name === "style") {
        hasStyleBinding = true;
      } else if (name !== "key" && !dynamicPropNames.includes(name)) {
        dynamicPropNames.push(name);
      }
      if (isComponent2 && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) {
        dynamicPropNames.push(name);
      }
    } else {
      hasDynamicKeys = true;
    }
  };
  for (let i = 0; i < props.length; i++) {
    const prop = props[i];
    if (prop.type === 6) {
      const { loc, name, nameLoc, value } = prop;
      let isStatic = true;
      if (name === "ref") {
        hasRef = true;
        pushRefVForMarker();
      }
      if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled(
        "COMPILER_IS_ON_ELEMENT",
        context
      ))) {
        continue;
      }
      properties.push(
        createObjectProperty(
          createSimpleExpression(name, true, nameLoc),
          createSimpleExpression(
            value ? value.content : "",
            isStatic,
            value ? value.loc : loc
          )
        )
      );
    } else {
      const { name, arg, exp, loc, modifiers } = prop;
      const isVBind = name === "bind";
      const isVOn = name === "on";
      if (name === "slot") {
        if (!isComponent2) {
          context.onError(
            createCompilerError(40, loc)
          );
        }
        continue;
      }
      if (name === "once" || name === "memo") {
        continue;
      }
      if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled(
        "COMPILER_IS_ON_ELEMENT",
        context
      ))) {
        continue;
      }
      if (isVOn && ssr) {
        continue;
      }
      if (
        // #938: elements with dynamic keys should be forced into blocks
        isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked
        // before children
        isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update")
      ) {
        shouldUseBlock = true;
      }
      if (isVBind && isStaticArgOf(arg, "ref")) {
        pushRefVForMarker();
      }
      if (!arg && (isVBind || isVOn)) {
        hasDynamicKeys = true;
        if (exp) {
          if (isVBind) {
            {
              pushMergeArg();
              if (false) {
                const hasOverridableKeys = mergeArgs.some((arg2) => {
                  if (arg2.type === 15) {
                    return arg2.properties.some(({ key }) => {
                      if (key.type !== 4 || !key.isStatic) {
                        return true;
                      }
                      return key.content !== "class" && key.content !== "style" && !isOn(key.content);
                    });
                  } else {
                    return true;
                  }
                });
                if (hasOverridableKeys) {
                  checkCompatEnabled(
                    "COMPILER_V_BIND_OBJECT_ORDER",
                    context,
                    loc
                  );
                }
              }
              if (isCompatEnabled(
                "COMPILER_V_BIND_OBJECT_ORDER",
                context
              )) {
                mergeArgs.unshift(exp);
                continue;
              }
            }
            pushRefVForMarker();
            pushMergeArg();
            mergeArgs.push(exp);
          } else {
            pushMergeArg({
              type: 14,
              loc,
              callee: context.helper(TO_HANDLERS),
              arguments: isComponent2 ? [exp] : [exp, `true`]
            });
          }
        } else {
          context.onError(
            createCompilerError(
              isVBind ? 34 : 35,
              loc
            )
          );
        }
        continue;
      }
      if (isVBind && modifiers.some((mod) => mod.content === "prop")) {
        patchFlag |= 32;
      }
      const directiveTransform = context.directiveTransforms[name];
      if (directiveTransform) {
        const { props: props2, needRuntime } = directiveTransform(prop, node, context);
        !ssr && props2.forEach(analyzePatchFlag);
        if (isVOn && arg && !isStaticExp(arg)) {
          pushMergeArg(createObjectExpression(props2, elementLoc));
        } else {
          properties.push(...props2);
        }
        if (needRuntime) {
          runtimeDirectives.push(prop);
          if (isSymbol$1(needRuntime)) {
            directiveImportMap.set(prop, needRuntime);
          }
        }
      } else if (!isBuiltInDirective(name)) {
        runtimeDirectives.push(prop);
        if (hasChildren) {
          shouldUseBlock = true;
        }
      }
    }
  }
  let propsExpression = void 0;
  if (mergeArgs.length) {
    pushMergeArg();
    if (mergeArgs.length > 1) {
      propsExpression = createCallExpression(
        context.helper(MERGE_PROPS),
        mergeArgs,
        elementLoc
      );
    } else {
      propsExpression = mergeArgs[0];
    }
  } else if (properties.length) {
    propsExpression = createObjectExpression(
      dedupeProperties(properties),
      elementLoc
    );
  }
  if (hasDynamicKeys) {
    patchFlag |= 16;
  } else {
    if (hasClassBinding && !isComponent2) {
      patchFlag |= 2;
    }
    if (hasStyleBinding && !isComponent2) {
      patchFlag |= 4;
    }
    if (dynamicPropNames.length) {
      patchFlag |= 8;
    }
    if (hasHydrationEventBinding) {
      patchFlag |= 32;
    }
  }
  if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) {
    patchFlag |= 512;
  }
  if (!context.inSSR && propsExpression) {
    switch (propsExpression.type) {
      case 15:
        let classKeyIndex = -1;
        let styleKeyIndex = -1;
        let hasDynamicKey = false;
        for (let i = 0; i < propsExpression.properties.length; i++) {
          const key = propsExpression.properties[i].key;
          if (isStaticExp(key)) {
            if (key.content === "class") {
              classKeyIndex = i;
            } else if (key.content === "style") {
              styleKeyIndex = i;
            }
          } else if (!key.isHandlerKey) {
            hasDynamicKey = true;
          }
        }
        const classProp = propsExpression.properties[classKeyIndex];
        const styleProp = propsExpression.properties[styleKeyIndex];
        if (!hasDynamicKey) {
          if (classProp && !isStaticExp(classProp.value)) {
            classProp.value = createCallExpression(
              context.helper(NORMALIZE_CLASS),
              [classProp.value]
            );
          }
          if (styleProp && // the static style is compiled into an object,
          // so use `hasStyleBinding` to ensure that it is a dynamic style binding
          (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist,
          // v-bind:style with static literal object
          styleProp.value.type === 17)) {
            styleProp.value = createCallExpression(
              context.helper(NORMALIZE_STYLE),
              [styleProp.value]
            );
          }
        } else {
          propsExpression = createCallExpression(
            context.helper(NORMALIZE_PROPS),
            [propsExpression]
          );
        }
        break;
      case 14:
        break;
      default:
        propsExpression = createCallExpression(
          context.helper(NORMALIZE_PROPS),
          [
            createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [
              propsExpression
            ])
          ]
        );
        break;
    }
  }
  return {
    props: propsExpression,
    directives: runtimeDirectives,
    patchFlag,
    dynamicPropNames,
    shouldUseBlock
  };
}
function dedupeProperties(properties) {
  const knownProps = /* @__PURE__ */ new Map();
  const deduped = [];
  for (let i = 0; i < properties.length; i++) {
    const prop = properties[i];
    if (prop.key.type === 8 || !prop.key.isStatic) {
      deduped.push(prop);
      continue;
    }
    const name = prop.key.content;
    const existing = knownProps.get(name);
    if (existing) {
      if (name === "style" || name === "class" || isOn(name)) {
        mergeAsArray(existing, prop);
      }
    } else {
      knownProps.set(name, prop);
      deduped.push(prop);
    }
  }
  return deduped;
}
function mergeAsArray(existing, incoming) {
  if (existing.value.type === 17) {
    existing.value.elements.push(incoming.value);
  } else {
    existing.value = createArrayExpression(
      [existing.value, incoming.value],
      existing.loc
    );
  }
}
function buildDirectiveArgs(dir, context) {
  const dirArgs = [];
  const runtime = directiveImportMap.get(dir);
  if (runtime) {
    dirArgs.push(context.helperString(runtime));
  } else {
    {
      context.helper(RESOLVE_DIRECTIVE);
      context.directives.add(dir.name);
      dirArgs.push(toValidAssetId(dir.name, `directive`));
    }
  }
  const { loc } = dir;
  if (dir.exp) dirArgs.push(dir.exp);
  if (dir.arg) {
    if (!dir.exp) {
      dirArgs.push(`void 0`);
    }
    dirArgs.push(dir.arg);
  }
  if (Object.keys(dir.modifiers).length) {
    if (!dir.arg) {
      if (!dir.exp) {
        dirArgs.push(`void 0`);
      }
      dirArgs.push(`void 0`);
    }
    const trueExpression = createSimpleExpression(`true`, false, loc);
    dirArgs.push(
      createObjectExpression(
        dir.modifiers.map(
          (modifier) => createObjectProperty(modifier, trueExpression)
        ),
        loc
      )
    );
  }
  return createArrayExpression(dirArgs, dir.loc);
}
function stringifyDynamicPropNames(props) {
  let propsNamesString = `[`;
  for (let i = 0, l = props.length; i < l; i++) {
    propsNamesString += JSON.stringify(props[i]);
    if (i < l - 1) propsNamesString += ", ";
  }
  return propsNamesString + `]`;
}
function isComponentTag(tag) {
  return tag === "component" || tag === "Component";
}
const transformSlotOutlet = (node, context) => {
  if (isSlotOutlet(node)) {
    const { children, loc } = node;
    const { slotName, slotProps } = processSlotOutlet(node, context);
    const slotArgs = [
      context.prefixIdentifiers ? `_ctx.$slots` : `$slots`,
      slotName,
      "{}",
      "undefined",
      "true"
    ];
    let expectedLen = 2;
    if (slotProps) {
      slotArgs[2] = slotProps;
      expectedLen = 3;
    }
    if (children.length) {
      slotArgs[3] = createFunctionExpression([], children, false, false, loc);
      expectedLen = 4;
    }
    if (context.scopeId && !context.slotted) {
      expectedLen = 5;
    }
    slotArgs.splice(expectedLen);
    node.codegenNode = createCallExpression(
      context.helper(RENDER_SLOT),
      slotArgs,
      loc
    );
  }
};
function processSlotOutlet(node, context) {
  let slotName = `"default"`;
  let slotProps = void 0;
  const nonNameProps = [];
  for (let i = 0; i < node.props.length; i++) {
    const p = node.props[i];
    if (p.type === 6) {
      if (p.value) {
        if (p.name === "name") {
          slotName = JSON.stringify(p.value.content);
        } else {
          p.name = camelize(p.name);
          nonNameProps.push(p);
        }
      }
    } else {
      if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
        if (p.exp) {
          slotName = p.exp;
        } else if (p.arg && p.arg.type === 4) {
          const name = camelize(p.arg.content);
          slotName = p.exp = createSimpleExpression(name, false, p.arg.loc);
        }
      } else {
        if (p.name === "bind" && p.arg && isStaticExp(p.arg)) {
          p.arg.content = camelize(p.arg.content);
        }
        nonNameProps.push(p);
      }
    }
  }
  if (nonNameProps.length > 0) {
    const { props, directives } = buildProps(
      node,
      context,
      nonNameProps,
      false,
      false
    );
    slotProps = props;
    if (directives.length) {
      context.onError(
        createCompilerError(
          36,
          directives[0].loc
        )
      );
    }
  }
  return {
    slotName,
    slotProps
  };
}
const transformOn$1 = (dir, node, context, augmentor) => {
  const { loc, modifiers, arg } = dir;
  if (!dir.exp && !modifiers.length) {
    context.onError(createCompilerError(35, loc));
  }
  let eventName;
  if (arg.type === 4) {
    if (arg.isStatic) {
      let rawName = arg.content;
      if (false) {
        context.onError(createCompilerError(52, arg.loc));
      }
      if (rawName.startsWith("vue:")) {
        rawName = `vnode-${rawName.slice(4)}`;
      }
      const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? (
        // for non-element and vnode lifecycle event listeners, auto convert
        // it to camelCase. See issue #2249
        toHandlerKey(camelize(rawName))
      ) : (
        // preserve case for plain element listeners that have uppercase
        // letters, as these may be custom elements' custom events
        `on:${rawName}`
      );
      eventName = createSimpleExpression(eventString, true, arg.loc);
    } else {
      eventName = createCompoundExpression([
        `${context.helperString(TO_HANDLER_KEY)}(`,
        arg,
        `)`
      ]);
    }
  } else {
    eventName = arg;
    eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
    eventName.children.push(`)`);
  }
  let exp = dir.exp;
  if (exp && !exp.content.trim()) {
    exp = void 0;
  }
  let shouldCache = context.cacheHandlers && !exp && !context.inVOnce;
  if (exp) {
    const isMemberExp = isMemberExpression(exp);
    const isInlineStatement = !(isMemberExp || isFnExpression(exp));
    const hasMultipleStatements = exp.content.includes(`;`);
    if (false) {
      validateBrowserExpression(
        exp,
        context,
        false,
        hasMultipleStatements
      );
    }
    if (isInlineStatement || shouldCache && isMemberExp) {
      exp = createCompoundExpression([
        `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
        exp,
        hasMultipleStatements ? `}` : `)`
      ]);
    }
  }
  let ret = {
    props: [
      createObjectProperty(
        eventName,
        exp || createSimpleExpression(`() => {}`, false, loc)
      )
    ]
  };
  if (augmentor) {
    ret = augmentor(ret);
  }
  if (shouldCache) {
    ret.props[0].value = context.cache(ret.props[0].value);
  }
  ret.props.forEach((p) => p.key.isHandlerKey = true);
  return ret;
};
const transformBind = (dir, _node, context) => {
  const { modifiers, loc } = dir;
  const arg = dir.arg;
  let { exp } = dir;
  if (exp && exp.type === 4 && !exp.content.trim()) {
    {
      exp = void 0;
    }
  }
  if (arg.type !== 4) {
    arg.children.unshift(`(`);
    arg.children.push(`) || ""`);
  } else if (!arg.isStatic) {
    arg.content = arg.content ? `${arg.content} || ""` : `""`;
  }
  if (modifiers.some((mod) => mod.content === "camel")) {
    if (arg.type === 4) {
      if (arg.isStatic) {
        arg.content = camelize(arg.content);
      } else {
        arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
      }
    } else {
      arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
      arg.children.push(`)`);
    }
  }
  if (!context.inSSR) {
    if (modifiers.some((mod) => mod.content === "prop")) {
      injectPrefix(arg, ".");
    }
    if (modifiers.some((mod) => mod.content === "attr")) {
      injectPrefix(arg, "^");
    }
  }
  return {
    props: [createObjectProperty(arg, exp)]
  };
};
const injectPrefix = (arg, prefix) => {
  if (arg.type === 4) {
    if (arg.isStatic) {
      arg.content = prefix + arg.content;
    } else {
      arg.content = `\`${prefix}\${${arg.content}}\``;
    }
  } else {
    arg.children.unshift(`'${prefix}' + (`);
    arg.children.push(`)`);
  }
};
const transformText = (node, context) => {
  if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) {
    return () => {
      const children = node.children;
      let currentContainer = void 0;
      let hasText = false;
      for (let i = 0; i < children.length; i++) {
        const child = children[i];
        if (isText$1(child)) {
          hasText = true;
          for (let j = i + 1; j < children.length; j++) {
            const next = children[j];
            if (isText$1(next)) {
              if (!currentContainer) {
                currentContainer = children[i] = createCompoundExpression(
                  [child],
                  child.loc
                );
              }
              currentContainer.children.push(` + `, next);
              children.splice(j, 1);
              j--;
            } else {
              currentContainer = void 0;
              break;
            }
          }
        }
      }
      if (!hasText || // if this is a plain element with a single text child, leave it
      // as-is since the runtime has dedicated fast path for this by directly
      // setting textContent of the element.
      // for component root it's always normalized anyway.
      children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756
      // custom directives can potentially add DOM elements arbitrarily,
      // we need to avoid setting textContent of the element at runtime
      // to avoid accidentally overwriting the DOM elements added
      // by the user through custom directives.
      !node.props.find(
        (p) => p.type === 7 && !context.directiveTransforms[p.name]
      ) && // in compat mode, <template> tags with no special directives
      // will be rendered as a fragment so its children must be
      // converted into vnodes.
      !(node.tag === "template"))) {
        return;
      }
      for (let i = 0; i < children.length; i++) {
        const child = children[i];
        if (isText$1(child) || child.type === 8) {
          const callArgs = [];
          if (child.type !== 2 || child.content !== " ") {
            callArgs.push(child);
          }
          if (!context.ssr && getConstantType(child, context) === 0) {
            callArgs.push(
              1 + (false ? ` /* ${PatchFlagNames[1]} */` : ``)
            );
          }
          children[i] = {
            type: 12,
            content: child,
            loc: child.loc,
            codegenNode: createCallExpression(
              context.helper(CREATE_TEXT),
              callArgs
            )
          };
        }
      }
    };
  }
};
const seen$1 = /* @__PURE__ */ new WeakSet();
const transformOnce = (node, context) => {
  if (node.type === 1 && findDir(node, "once", true)) {
    if (seen$1.has(node) || context.inVOnce || context.inSSR) {
      return;
    }
    seen$1.add(node);
    context.inVOnce = true;
    context.helper(SET_BLOCK_TRACKING);
    return () => {
      context.inVOnce = false;
      const cur = context.currentNode;
      if (cur.codegenNode) {
        cur.codegenNode = context.cache(
          cur.codegenNode,
          true,
          true
        );
      }
    };
  }
};
const transformModel$1 = (dir, node, context) => {
  const { exp, arg } = dir;
  if (!exp) {
    context.onError(
      createCompilerError(41, dir.loc)
    );
    return createTransformProps();
  }
  const rawExp = exp.loc.source.trim();
  const expString = exp.type === 4 ? exp.content : rawExp;
  const bindingType = context.bindingMetadata[rawExp];
  if (bindingType === "props" || bindingType === "props-aliased") {
    context.onError(createCompilerError(44, exp.loc));
    return createTransformProps();
  }
  if (bindingType === "literal-const" || bindingType === "setup-const") {
    context.onError(createCompilerError(45, exp.loc));
    return createTransformProps();
  }
  if (!expString.trim() || !isMemberExpression(exp) && true) {
    context.onError(
      createCompilerError(42, exp.loc)
    );
    return createTransformProps();
  }
  const propName = arg ? arg : createSimpleExpression("modelValue", true);
  const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`;
  let assignmentExp;
  const eventArg = context.isTS ? `($event: any)` : `$event`;
  {
    assignmentExp = createCompoundExpression([
      `${eventArg} => ((`,
      exp,
      `) = $event)`
    ]);
  }
  const props = [
    // modelValue: foo
    createObjectProperty(propName, dir.exp),
    // "onUpdate:modelValue": $event => (foo = $event)
    createObjectProperty(eventName, assignmentExp)
  ];
  if (dir.modifiers.length && node.tagType === 1) {
    const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);
    const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`;
    props.push(
      createObjectProperty(
        modifiersKey,
        createSimpleExpression(
          `{ ${modifiers} }`,
          false,
          dir.loc,
          2
        )
      )
    );
  }
  return createTransformProps(props);
};
function createTransformProps(props = []) {
  return { props };
}
const validDivisionCharRE = /[\w).+\-_$\]]/;
const transformFilter = (node, context) => {
  if (!isCompatEnabled("COMPILER_FILTERS", context)) {
    return;
  }
  if (node.type === 5) {
    rewriteFilter(node.content, context);
  } else if (node.type === 1) {
    node.props.forEach((prop) => {
      if (prop.type === 7 && prop.name !== "for" && prop.exp) {
        rewriteFilter(prop.exp, context);
      }
    });
  }
};
function rewriteFilter(node, context) {
  if (node.type === 4) {
    parseFilter(node, context);
  } else {
    for (let i = 0; i < node.children.length; i++) {
      const child = node.children[i];
      if (typeof child !== "object") continue;
      if (child.type === 4) {
        parseFilter(child, context);
      } else if (child.type === 8) {
        rewriteFilter(node, context);
      } else if (child.type === 5) {
        rewriteFilter(child.content, context);
      }
    }
  }
}
function parseFilter(node, context) {
  const exp = node.content;
  let inSingle = false;
  let inDouble = false;
  let inTemplateString = false;
  let inRegex = false;
  let curly = 0;
  let square = 0;
  let paren = 0;
  let lastFilterIndex = 0;
  let c, prev, i, expression, filters = [];
  for (i = 0; i < exp.length; i++) {
    prev = c;
    c = exp.charCodeAt(i);
    if (inSingle) {
      if (c === 39 && prev !== 92) inSingle = false;
    } else if (inDouble) {
      if (c === 34 && prev !== 92) inDouble = false;
    } else if (inTemplateString) {
      if (c === 96 && prev !== 92) inTemplateString = false;
    } else if (inRegex) {
      if (c === 47 && prev !== 92) inRegex = false;
    } else if (c === 124 && // pipe
    exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
      if (expression === void 0) {
        lastFilterIndex = i + 1;
        expression = exp.slice(0, i).trim();
      } else {
        pushFilter();
      }
    } else {
      switch (c) {
        case 34:
          inDouble = true;
          break;
        // "
        case 39:
          inSingle = true;
          break;
        // '
        case 96:
          inTemplateString = true;
          break;
        // `
        case 40:
          paren++;
          break;
        // (
        case 41:
          paren--;
          break;
        // )
        case 91:
          square++;
          break;
        // [
        case 93:
          square--;
          break;
        // ]
        case 123:
          curly++;
          break;
        // {
        case 125:
          curly--;
          break;
      }
      if (c === 47) {
        let j = i - 1;
        let p;
        for (; j >= 0; j--) {
          p = exp.charAt(j);
          if (p !== " ") break;
        }
        if (!p || !validDivisionCharRE.test(p)) {
          inRegex = true;
        }
      }
    }
  }
  if (expression === void 0) {
    expression = exp.slice(0, i).trim();
  } else if (lastFilterIndex !== 0) {
    pushFilter();
  }
  function pushFilter() {
    filters.push(exp.slice(lastFilterIndex, i).trim());
    lastFilterIndex = i + 1;
  }
  if (filters.length) {
    for (i = 0; i < filters.length; i++) {
      expression = wrapFilter(expression, filters[i], context);
    }
    node.content = expression;
    node.ast = void 0;
  }
}
function wrapFilter(exp, filter, context) {
  context.helper(RESOLVE_FILTER);
  const i = filter.indexOf("(");
  if (i < 0) {
    context.filters.add(filter);
    return `${toValidAssetId(filter, "filter")}(${exp})`;
  } else {
    const name = filter.slice(0, i);
    const args = filter.slice(i + 1);
    context.filters.add(name);
    return `${toValidAssetId(name, "filter")}(${exp}${args !== ")" ? "," + args : args}`;
  }
}
const seen = /* @__PURE__ */ new WeakSet();
const transformMemo = (node, context) => {
  if (node.type === 1) {
    const dir = findDir(node, "memo");
    if (!dir || seen.has(node) || context.inSSR) {
      return;
    }
    seen.add(node);
    return () => {
      const codegenNode = node.codegenNode || context.currentNode.codegenNode;
      if (codegenNode && codegenNode.type === 13) {
        if (node.tagType !== 1) {
          convertToBlock(codegenNode, context);
        }
        node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [
          dir.exp,
          createFunctionExpression(void 0, codegenNode),
          `_cache`,
          String(context.cached.length)
        ]);
        context.cached.push(null);
      }
    };
  }
};
const transformVBindShorthand = (node, context) => {
  if (node.type === 1) {
    for (const prop of node.props) {
      if (prop.type === 7 && prop.name === "bind" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo="" by browser
      prop.exp.type === 4 && !prop.exp.content.trim()) && prop.arg) {
        const arg = prop.arg;
        if (arg.type !== 4 || !arg.isStatic) {
          context.onError(
            createCompilerError(
              53,
              arg.loc
            )
          );
          prop.exp = createSimpleExpression("", true, arg.loc);
        } else {
          const propName = camelize(arg.content);
          if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424
          propName[0] === "-") {
            prop.exp = createSimpleExpression(propName, false, arg.loc);
          }
        }
      }
    }
  }
};
function getBaseTransformPreset(prefixIdentifiers) {
  return [
    [
      transformVBindShorthand,
      transformOnce,
      transformIf,
      transformMemo,
      transformFor,
      ...[transformFilter],
      ...false ? [transformExpression] : [],
      transformSlotOutlet,
      transformElement,
      trackSlotScopes,
      transformText
    ],
    {
      on: transformOn$1,
      bind: transformBind,
      model: transformModel$1
    }
  ];
}
function baseCompile(source, options = {}) {
  const onError = options.onError || defaultOnError;
  const isModuleMode = options.mode === "module";
  {
    if (options.prefixIdentifiers === true) {
      onError(createCompilerError(48));
    } else if (isModuleMode) {
      onError(createCompilerError(49));
    }
  }
  const prefixIdentifiers = false;
  if (options.cacheHandlers) {
    onError(createCompilerError(50));
  }
  if (options.scopeId && !isModuleMode) {
    onError(createCompilerError(51));
  }
  const resolvedOptions = extend({}, options, {
    prefixIdentifiers
  });
  const ast = isString$2(source) ? baseParse(source, resolvedOptions) : source;
  const [nodeTransforms, directiveTransforms] = getBaseTransformPreset();
  transform(
    ast,
    extend({}, resolvedOptions, {
      nodeTransforms: [
        ...nodeTransforms,
        ...options.nodeTransforms || []
        // user transforms
      ],
      directiveTransforms: extend(
        {},
        directiveTransforms,
        options.directiveTransforms || {}
        // user transforms
      )
    })
  );
  return generate(ast, resolvedOptions);
}
const BindingTypes = {
  "DATA": "data",
  "PROPS": "props",
  "PROPS_ALIASED": "props-aliased",
  "SETUP_LET": "setup-let",
  "SETUP_CONST": "setup-const",
  "SETUP_REACTIVE_CONST": "setup-reactive-const",
  "SETUP_MAYBE_REF": "setup-maybe-ref",
  "SETUP_REF": "setup-ref",
  "OPTIONS": "options",
  "LITERAL_CONST": "literal-const"
};
const noopDirectiveTransform = () => ({ props: [] });

/**
* @vue/compiler-dom v3.5.31
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
const V_MODEL_RADIO = /* @__PURE__ */ Symbol(false ? `vModelRadio` : ``);
const V_MODEL_CHECKBOX = /* @__PURE__ */ Symbol(
  false ? `vModelCheckbox` : ``
);
const V_MODEL_TEXT = /* @__PURE__ */ Symbol(false ? `vModelText` : ``);
const V_MODEL_SELECT = /* @__PURE__ */ Symbol(
  false ? `vModelSelect` : ``
);
const V_MODEL_DYNAMIC = /* @__PURE__ */ Symbol(
  false ? `vModelDynamic` : ``
);
const V_ON_WITH_MODIFIERS = /* @__PURE__ */ Symbol(
  false ? `vOnModifiersGuard` : ``
);
const V_ON_WITH_KEYS = /* @__PURE__ */ Symbol(
  false ? `vOnKeysGuard` : ``
);
const V_SHOW = /* @__PURE__ */ Symbol(false ? `vShow` : ``);
const TRANSITION = /* @__PURE__ */ Symbol(false ? `Transition` : ``);
const TRANSITION_GROUP = /* @__PURE__ */ Symbol(
  false ? `TransitionGroup` : ``
);
registerRuntimeHelpers({
  [V_MODEL_RADIO]: `vModelRadio`,
  [V_MODEL_CHECKBOX]: `vModelCheckbox`,
  [V_MODEL_TEXT]: `vModelText`,
  [V_MODEL_SELECT]: `vModelSelect`,
  [V_MODEL_DYNAMIC]: `vModelDynamic`,
  [V_ON_WITH_MODIFIERS]: `withModifiers`,
  [V_ON_WITH_KEYS]: `withKeys`,
  [V_SHOW]: `vShow`,
  [TRANSITION]: `Transition`,
  [TRANSITION_GROUP]: `TransitionGroup`
});
let decoder;
function decodeHtmlBrowser(raw, asAttr = false) {
  if (!decoder) {
    decoder = document.createElement("div");
  }
  if (asAttr) {
    decoder.innerHTML = `<div foo="${raw.replace(/"/g, "&quot;")}">`;
    return decoder.children[0].getAttribute("foo");
  } else {
    decoder.innerHTML = raw;
    return decoder.textContent;
  }
}
const parserOptions = {
  parseMode: "html",
  isVoidTag,
  isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),
  isPreTag: (tag) => tag === "pre",
  isIgnoreNewlineTag: (tag) => tag === "pre" || tag === "textarea",
  decodeEntities: decodeHtmlBrowser,
  isBuiltInComponent: (tag) => {
    if (tag === "Transition" || tag === "transition") {
      return TRANSITION;
    } else if (tag === "TransitionGroup" || tag === "transition-group") {
      return TRANSITION_GROUP;
    }
  },
  // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher
  getNamespace(tag, parent, rootNamespace) {
    let ns = parent ? parent.ns : rootNamespace;
    if (parent && ns === 2) {
      if (parent.tag === "annotation-xml") {
        if (tag === "svg") {
          return 1;
        }
        if (parent.props.some(
          (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml")
        )) {
          ns = 0;
        }
      } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") {
        ns = 0;
      }
    } else if (parent && ns === 1) {
      if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") {
        ns = 0;
      }
    }
    if (ns === 0) {
      if (tag === "svg") {
        return 1;
      }
      if (tag === "math") {
        return 2;
      }
    }
    return ns;
  }
};
const transformStyle = (node) => {
  if (node.type === 1) {
    node.props.forEach((p, i) => {
      if (p.type === 6 && p.name === "style" && p.value) {
        node.props[i] = {
          type: 7,
          name: `bind`,
          arg: createSimpleExpression(`style`, true, p.loc),
          exp: parseInlineCSS(p.value.content, p.loc),
          modifiers: [],
          loc: p.loc
        };
      }
    });
  }
};
const parseInlineCSS = (cssText, loc) => {
  const normalized = parseStringStyle(cssText);
  return createSimpleExpression(
    JSON.stringify(normalized),
    false,
    loc,
    3
  );
};
function createDOMCompilerError(code, loc) {
  return createCompilerError(
    code,
    loc,
    false ? DOMErrorMessages : void 0
  );
}
const DOMErrorCodes = {
  "X_V_HTML_NO_EXPRESSION": 54,
  "54": "X_V_HTML_NO_EXPRESSION",
  "X_V_HTML_WITH_CHILDREN": 55,
  "55": "X_V_HTML_WITH_CHILDREN",
  "X_V_TEXT_NO_EXPRESSION": 56,
  "56": "X_V_TEXT_NO_EXPRESSION",
  "X_V_TEXT_WITH_CHILDREN": 57,
  "57": "X_V_TEXT_WITH_CHILDREN",
  "X_V_MODEL_ON_INVALID_ELEMENT": 58,
  "58": "X_V_MODEL_ON_INVALID_ELEMENT",
  "X_V_MODEL_ARG_ON_ELEMENT": 59,
  "59": "X_V_MODEL_ARG_ON_ELEMENT",
  "X_V_MODEL_ON_FILE_INPUT_ELEMENT": 60,
  "60": "X_V_MODEL_ON_FILE_INPUT_ELEMENT",
  "X_V_MODEL_UNNECESSARY_VALUE": 61,
  "61": "X_V_MODEL_UNNECESSARY_VALUE",
  "X_V_SHOW_NO_EXPRESSION": 62,
  "62": "X_V_SHOW_NO_EXPRESSION",
  "X_TRANSITION_INVALID_CHILDREN": 63,
  "63": "X_TRANSITION_INVALID_CHILDREN",
  "X_IGNORED_SIDE_EFFECT_TAG": 64,
  "64": "X_IGNORED_SIDE_EFFECT_TAG",
  "__EXTEND_POINT__": 65,
  "65": "__EXTEND_POINT__"
};
const DOMErrorMessages = {
  [54]: `v-html is missing expression.`,
  [55]: `v-html will override element children.`,
  [56]: `v-text is missing expression.`,
  [57]: `v-text will override element children.`,
  [58]: `v-model can only be used on <input>, <textarea> and <select> elements.`,
  [59]: `v-model argument is not supported on plain elements.`,
  [60]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`,
  [61]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`,
  [62]: `v-show is missing expression.`,
  [63]: `<Transition> expects exactly one child element or component.`,
  [64]: `Tags with side effect (<script> and <style>) are ignored in client component templates.`
};
const transformVHtml = (dir, node, context) => {
  const { exp, loc } = dir;
  if (!exp) {
    context.onError(
      createDOMCompilerError(54, loc)
    );
  }
  if (node.children.length) {
    context.onError(
      createDOMCompilerError(55, loc)
    );
    node.children.length = 0;
  }
  return {
    props: [
      createObjectProperty(
        createSimpleExpression(`innerHTML`, true, loc),
        exp || createSimpleExpression("", true)
      )
    ]
  };
};
const transformVText = (dir, node, context) => {
  const { exp, loc } = dir;
  if (!exp) {
    context.onError(
      createDOMCompilerError(56, loc)
    );
  }
  if (node.children.length) {
    context.onError(
      createDOMCompilerError(57, loc)
    );
    node.children.length = 0;
  }
  return {
    props: [
      createObjectProperty(
        createSimpleExpression(`textContent`, true),
        exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression(
          context.helperString(TO_DISPLAY_STRING),
          [exp],
          loc
        ) : createSimpleExpression("", true)
      )
    ]
  };
};
const transformModel = (dir, node, context) => {
  const baseResult = transformModel$1(dir, node, context);
  if (!baseResult.props.length || node.tagType === 1) {
    return baseResult;
  }
  if (dir.arg) {
    context.onError(
      createDOMCompilerError(
        59,
        dir.arg.loc
      )
    );
  }
  function checkDuplicatedValue() {
    const value = findDir(node, "bind");
    if (value && isStaticArgOf(value.arg, "value")) {
      context.onError(
        createDOMCompilerError(
          61,
          value.loc
        )
      );
    }
  }
  const { tag } = node;
  const isCustomElement = context.isCustomElement(tag);
  if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) {
    let directiveToUse = V_MODEL_TEXT;
    let isInvalidType = false;
    if (tag === "input" || isCustomElement) {
      const type = findProp(node, `type`);
      if (type) {
        if (type.type === 7) {
          directiveToUse = V_MODEL_DYNAMIC;
        } else if (type.value) {
          switch (type.value.content) {
            case "radio":
              directiveToUse = V_MODEL_RADIO;
              break;
            case "checkbox":
              directiveToUse = V_MODEL_CHECKBOX;
              break;
            case "file":
              isInvalidType = true;
              context.onError(
                createDOMCompilerError(
                  60,
                  dir.loc
                )
              );
              break;
            default:
              break;
          }
        }
      } else if (hasDynamicKeyVBind(node)) {
        directiveToUse = V_MODEL_DYNAMIC;
      } else {
      }
    } else if (tag === "select") {
      directiveToUse = V_MODEL_SELECT;
    } else {
    }
    if (!isInvalidType) {
      baseResult.needRuntime = context.helper(directiveToUse);
    }
  } else {
    context.onError(
      createDOMCompilerError(
        58,
        dir.loc
      )
    );
  }
  baseResult.props = baseResult.props.filter(
    (p) => !(p.key.type === 4 && p.key.content === "modelValue")
  );
  return baseResult;
};
const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`);
const isNonKeyModifier = /* @__PURE__ */ makeMap(
  // event propagation management
  `stop,prevent,self,ctrl,shift,alt,meta,exact,middle`
);
const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right");
const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`);
const resolveModifiers = (key, modifiers, context, loc) => {
  const keyModifiers = [];
  const nonKeyModifiers = [];
  const eventOptionModifiers = [];
  for (let i = 0; i < modifiers.length; i++) {
    const modifier = modifiers[i].content;
    if (modifier === "native" && checkCompatEnabled(
      "COMPILER_V_ON_NATIVE",
      context,
      loc
    )) {
      eventOptionModifiers.push(modifier);
    } else if (isEventOptionModifier(modifier)) {
      eventOptionModifiers.push(modifier);
    } else {
      if (maybeKeyModifier(modifier)) {
        if (isStaticExp(key)) {
          if (isKeyboardEvent(key.content.toLowerCase())) {
            keyModifiers.push(modifier);
          } else {
            nonKeyModifiers.push(modifier);
          }
        } else {
          keyModifiers.push(modifier);
          nonKeyModifiers.push(modifier);
        }
      } else {
        if (isNonKeyModifier(modifier)) {
          nonKeyModifiers.push(modifier);
        } else {
          keyModifiers.push(modifier);
        }
      }
    }
  }
  return {
    keyModifiers,
    nonKeyModifiers,
    eventOptionModifiers
  };
};
const transformClick = (key, event) => {
  const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === "onclick";
  return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([
    `(`,
    key,
    `) === "onClick" ? "${event}" : (`,
    key,
    `)`
  ]) : key;
};
const transformOn = (dir, node, context) => {
  return transformOn$1(dir, node, context, (baseResult) => {
    const { modifiers } = dir;
    if (!modifiers.length) return baseResult;
    let { key, value: handlerExp } = baseResult.props[0];
    const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc);
    if (nonKeyModifiers.includes("right")) {
      key = transformClick(key, `onContextmenu`);
    }
    if (nonKeyModifiers.includes("middle")) {
      key = transformClick(key, `onMouseup`);
    }
    if (nonKeyModifiers.length) {
      handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [
        handlerExp,
        JSON.stringify(nonKeyModifiers)
      ]);
    }
    if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard
    (!isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) {
      handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [
        handlerExp,
        JSON.stringify(keyModifiers)
      ]);
    }
    if (eventOptionModifiers.length) {
      const modifierPostfix = eventOptionModifiers.map(capitalize$1).join("");
      key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]);
    }
    return {
      props: [createObjectProperty(key, handlerExp)]
    };
  });
};
const transformShow = (dir, node, context) => {
  const { exp, loc } = dir;
  if (!exp) {
    context.onError(
      createDOMCompilerError(62, loc)
    );
  }
  return {
    props: [],
    needRuntime: context.helper(V_SHOW)
  };
};
const transformTransition = (node, context) => {
  if (node.type === 1 && node.tagType === 1) {
    const component = context.isBuiltInComponent(node.tag);
    if (component === TRANSITION) {
      return () => {
        if (!node.children.length) {
          return;
        }
        if (hasMultipleChildren(node)) {
          context.onError(
            createDOMCompilerError(
              63,
              {
                start: node.children[0].loc.start,
                end: node.children[node.children.length - 1].loc.end,
                source: ""
              }
            )
          );
        }
        const child = node.children[0];
        if (child.type === 1) {
          for (const p of child.props) {
            if (p.type === 7 && p.name === "show") {
              node.props.push({
                type: 6,
                name: "persisted",
                nameLoc: node.loc,
                value: void 0,
                loc: node.loc
              });
            }
          }
        }
      };
    }
  }
};
function hasMultipleChildren(node) {
  const children = node.children = node.children.filter(
    (c) => !isCommentOrWhitespace(c)
  );
  const child = children[0];
  return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren);
}
const ignoreSideEffectTags = (node, context) => {
  if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) {
    context.removeNode();
  }
};
function isValidHTMLNesting(parent, child) {
  if (parent === "template") {
    return true;
  }
  if (parent in onlyValidChildren) {
    return onlyValidChildren[parent].has(child);
  }
  if (child in onlyValidParents) {
    return onlyValidParents[child].has(parent);
  }
  if (parent in knownInvalidChildren) {
    if (knownInvalidChildren[parent].has(child)) return false;
  }
  if (child in knownInvalidParents) {
    if (knownInvalidParents[child].has(parent)) return false;
  }
  return true;
}
const headings = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "h6"]);
const emptySet = /* @__PURE__ */ new Set([]);
const onlyValidChildren = {
  head: /* @__PURE__ */ new Set([
    "base",
    "basefront",
    "bgsound",
    "link",
    "meta",
    "title",
    "noscript",
    "noframes",
    "style",
    "script",
    "template"
  ]),
  optgroup: /* @__PURE__ */ new Set(["option"]),
  select: /* @__PURE__ */ new Set(["optgroup", "option", "hr"]),
  // table
  table: /* @__PURE__ */ new Set(["caption", "colgroup", "tbody", "tfoot", "thead"]),
  tr: /* @__PURE__ */ new Set(["td", "th"]),
  colgroup: /* @__PURE__ */ new Set(["col"]),
  tbody: /* @__PURE__ */ new Set(["tr"]),
  thead: /* @__PURE__ */ new Set(["tr"]),
  tfoot: /* @__PURE__ */ new Set(["tr"]),
  // these elements can not have any children elements
  script: emptySet,
  iframe: emptySet,
  option: emptySet,
  textarea: emptySet,
  style: emptySet,
  title: emptySet
};
const onlyValidParents = {
  // sections
  html: emptySet,
  body: /* @__PURE__ */ new Set(["html"]),
  head: /* @__PURE__ */ new Set(["html"]),
  // table
  td: /* @__PURE__ */ new Set(["tr"]),
  colgroup: /* @__PURE__ */ new Set(["table"]),
  caption: /* @__PURE__ */ new Set(["table"]),
  tbody: /* @__PURE__ */ new Set(["table"]),
  tfoot: /* @__PURE__ */ new Set(["table"]),
  col: /* @__PURE__ */ new Set(["colgroup"]),
  th: /* @__PURE__ */ new Set(["tr"]),
  thead: /* @__PURE__ */ new Set(["table"]),
  tr: /* @__PURE__ */ new Set(["tbody", "thead", "tfoot"]),
  // data list
  dd: /* @__PURE__ */ new Set(["dl", "div"]),
  dt: /* @__PURE__ */ new Set(["dl", "div"]),
  // other
  figcaption: /* @__PURE__ */ new Set(["figure"]),
  // li: new Set(["ul", "ol"]),
  summary: /* @__PURE__ */ new Set(["details"]),
  area: /* @__PURE__ */ new Set(["map"])
};
const knownInvalidChildren = {
  p: /* @__PURE__ */ new Set([
    "address",
    "article",
    "aside",
    "blockquote",
    "center",
    "details",
    "dialog",
    "dir",
    "div",
    "dl",
    "fieldset",
    "figure",
    "footer",
    "form",
    "h1",
    "h2",
    "h3",
    "h4",
    "h5",
    "h6",
    "header",
    "hgroup",
    "hr",
    "li",
    "main",
    "nav",
    "menu",
    "ol",
    "p",
    "pre",
    "section",
    "table",
    "ul"
  ]),
  svg: /* @__PURE__ */ new Set([
    "b",
    "blockquote",
    "br",
    "code",
    "dd",
    "div",
    "dl",
    "dt",
    "em",
    "embed",
    "h1",
    "h2",
    "h3",
    "h4",
    "h5",
    "h6",
    "hr",
    "i",
    "img",
    "li",
    "menu",
    "meta",
    "ol",
    "p",
    "pre",
    "ruby",
    "s",
    "small",
    "span",
    "strong",
    "sub",
    "sup",
    "table",
    "u",
    "ul",
    "var"
  ])
};
const knownInvalidParents = {
  a: /* @__PURE__ */ new Set(["a"]),
  button: /* @__PURE__ */ new Set(["button"]),
  dd: /* @__PURE__ */ new Set(["dd", "dt"]),
  dt: /* @__PURE__ */ new Set(["dd", "dt"]),
  form: /* @__PURE__ */ new Set(["form"]),
  li: /* @__PURE__ */ new Set(["li"]),
  h1: headings,
  h2: headings,
  h3: headings,
  h4: headings,
  h5: headings,
  h6: headings
};
const validateHtmlNesting = (node, context) => {
  if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) {
    const error = new SyntaxError(
      `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.`
    );
    error.loc = node.loc;
    context.onWarn(error);
  }
};
const DOMNodeTransforms = [
  transformStyle,
  ...false ? [transformTransition, validateHtmlNesting] : []
];
const DOMDirectiveTransforms = {
  cloak: noopDirectiveTransform,
  html: transformVHtml,
  text: transformVText,
  model: transformModel,
  // override compiler-core
  on: transformOn,
  // override compiler-core
  show: transformShow
};
function compile(src, options = {}) {
  return baseCompile(
    src,
    extend({}, parserOptions, options, {
      nodeTransforms: [
        // ignore <script> and <tag>
        // this is not put inside DOMNodeTransforms because that list is used
        // by compiler-ssr to generate vnode fallback branches
        ignoreSideEffectTags,
        ...DOMNodeTransforms,
        ...options.nodeTransforms || []
      ],
      directiveTransforms: extend(
        {},
        DOMDirectiveTransforms,
        options.directiveTransforms || {}
      ),
      transformHoist: null
    })
  );
}
function parse(template, options = {}) {
  return baseParse(template, extend({}, parserOptions, options));
}

beforeMount$2(({ app, hooksConfig }) => {
  const config = hooksConfig || {};
  const locale = config.locale || "en";
  const globalLocale = i18n.global.locale;
  if (globalLocale && typeof globalLocale === "object" && "value" in globalLocale) {
    globalLocale.value = locale;
  } else {
    i18n.global.locale = locale;
  }
  app.use(i18n);
  app.use(Buefy);
});


"use strict";

// packages/playwright-ct-core/src/injected/importRegistry.ts
function isImportRef(value) {
  return typeof value === "object" && value && value.__pw_type === "importRef";
}
var ImportRegistry = class {
  constructor() {
    this._registry = /* @__PURE__ */ new Map();
  }
  initialize(components) {
    for (const [name, value] of Object.entries(components))
      this._registry.set(name, value);
  }
  async resolveImportRef(importRef) {
    const importFunction = this._registry.get(importRef.id);
    if (!importFunction)
      throw new Error(`Unregistered component: ${importRef.id}. Following components are registered: ${[...this._registry.keys()]}`);
    let importedObject = await importFunction();
    if (!importedObject)
      throw new Error(`Could not resolve component: ${importRef.id}.`);
    if (importRef.property) {
      importedObject = importedObject[importRef.property];
      if (!importedObject)
        throw new Error(`Could not instantiate component: ${importRef.id}.${importRef.property}.`);
    }
    return importedObject;
  }
};

// packages/playwright-ct-core/src/injected/serializers.ts
function isFunctionRef(value) {
  return value && typeof value === "object" && value.__pw_type === "function";
}
async function unwrapObject(value) {
  return transformObjectAsync(value, async (v) => {
    if (isFunctionRef(v)) {
      const result = (...args) => {
        window.__ctDispatchFunction(v.ordinal, args);
      };
      return { result };
    }
    if (isImportRef(v))
      return { result: await window.__pwRegistry.resolveImportRef(v) };
  });
}
function transformObject(value, mapping) {
  const result = mapping(value);
  if (result)
    return result.result;
  if (value === null || typeof value !== "object")
    return value;
  if (value instanceof Date || value instanceof RegExp || value instanceof URL)
    return value;
  if (Array.isArray(value)) {
    const result3 = [];
    for (const item of value)
      result3.push(transformObject(item, mapping));
    return result3;
  }
  if ((value == null ? void 0 : value.__pw_type) === "jsx" && typeof value.type === "function") {
    throw new Error([
      `Component "${value.type.name}" cannot be mounted.`,
      `Most likely, this component is defined in the test file. Create a test story instead.`,
      `For more information, see https://playwright.dev/docs/test-components#test-stories.`
    ].join("\n"));
  }
  const result2 = {};
  for (const [key, prop] of Object.entries(value))
    result2[key] = transformObject(prop, mapping);
  return result2;
}
async function transformObjectAsync(value, mapping) {
  const result = await mapping(value);
  if (result)
    return result.result;
  if (value === null || typeof value !== "object")
    return value;
  if (value instanceof Date || value instanceof RegExp || value instanceof URL)
    return value;
  if (Array.isArray(value)) {
    const result3 = [];
    for (const item of value)
      result3.push(await transformObjectAsync(item, mapping));
    return result3;
  }
  const result2 = {};
  for (const [key, prop] of Object.entries(value))
    result2[key] = await transformObjectAsync(prop, mapping);
  return result2;
}

// packages/playwright-ct-core/src/injected/index.ts
window.__pwRegistry = new ImportRegistry();
window.__pwUnwrapObject = unwrapObject;
window.__pwTransformObject = transformObject;

/** @typedef {import('../playwright-ct-core/types/component').Component} Component */
/** @typedef {import('../playwright-ct-core/types/component').JsxComponent} JsxComponent */
/** @typedef {import('../playwright-ct-core/types/component').ObjectComponent} ObjectComponent */
/** @typedef {import('vue').Component} FrameworkComponent */

const __pwAllListeners = new Map();

/**
 * @param {any} component
 * @returns {component is ObjectComponent}
 */
function isObjectComponent(component) {
  return typeof component === 'object' && component && component.__pw_type === 'object-component';
}

/**
 * @param {any} component
 * @returns {component is JsxComponent}
 */
function isJsxComponent(component) {
  return typeof component === 'object' && component && component.__pw_type === 'jsx';
}

/**
 * @param {any} child
 */
function __pwCreateChild(child) {
  if (Array.isArray(child))
    return child.map(grandChild => __pwCreateChild(grandChild));
  if (isJsxComponent(child) || isObjectComponent(child))
    return __pwCreateWrapper(child);
  return child;
}

/**
 * Copied from: https://github.com/vuejs/test-utils/blob/main/src/utils/compileSlots.ts
 * Vue does not provide an easy way to compile template in "slot" mode
 * Since we do not want to rely on compiler internals and specify
 * transforms manually we create fake component invocation with the slot we
 * need and pick slots param from render function later. Fake component will
 * never be instantiated but it requires to be a component so compile
 * properly generate invocation. Since we do not want to monkey-patch
 * `resolveComponent` function we are just using one of built-in components.
 *
 * @param {string} html
 */
function __pwCreateSlot(html) {
  let template = html.trim();
  const hasWrappingTemplate = template && template.startsWith('<template');

  // allow content without `template` tag, for easier testing
  if (!hasWrappingTemplate)
    template = `<template #default="params">${template}</template>`;

  const { code } = compile(`<transition>${template}</transition>`, {
    mode: 'function',
    prefixIdentifiers: false
  });
  const createRenderFunction = new Function('Vue', code);
  const renderFn = createRenderFunction(__pwVue);
  return (ctx = {}) => {
    const result = renderFn(ctx);
    const slotName = Object.keys(result.children)[0];
    return result.children[slotName](ctx);
  };
}

/**
 * @param {string | string[]} slot
 */
function __pwSlotToFunction(slot) {
  if (typeof slot === 'string')
    return __pwCreateSlot(slot)();

  if (Array.isArray(slot))
    return slot.map(slot => __pwCreateSlot(slot)());

  throw Error(`Invalid slot received.`);
}

/**
 * @param {JsxComponent} component
 * @returns {any[] | undefined}
 */
function __pwJsxChildArray(component) {
  if (!component.props.children)
    return;
  if (Array.isArray(component.props.children))
    return component.props.children;
  return [component.props.children];
}

/**
 * @param {Component} component
 */
function __pwCreateComponent(component) {
  const isVueComponent = typeof component.type !== 'string';

  /**
   * @type {(import('vue').VNode | string)[]}
   */
  const children = [];
  /** @type {{[key: string]: any}} */
  const slots = {};
  const listeners = {};
  /** @type {{[key: string]: any}} */
  let props = {};

  if (component.__pw_type === 'jsx') {
    for (const child of __pwJsxChildArray(component) || []) {
      if (isJsxComponent(child) && child.type === 'template') {
        const slotProperty = Object.keys(child.props).find(k => k.startsWith('v-slot:'));
        const slot = slotProperty ? slotProperty.substring('v-slot:'.length) : 'default';
        slots[slot] = __pwJsxChildArray(child)?.map(__pwCreateChild);
      } else {
        children.push(__pwCreateChild(child));
      }
    }

    for (const [key, value] of Object.entries(component.props)) {
      if (key.startsWith('v-on:')) {
        const event = key.substring('v-on:'.length);
        if (isVueComponent)
          listeners[event] = value;
        else
          props[`on${event[0].toUpperCase()}${event.substring(1)}`] = value;
      } else {
        props[key] = value;
      }
    }
  }

  if (component.__pw_type === 'object-component') {
    // Vue test util syntax.
    for (const [key, value] of Object.entries(component.slots || {})) {
      if (key === 'default')
        children.push(__pwSlotToFunction(value));
      else
        slots[key] = __pwSlotToFunction(value);
    }
    props = component.props || {};
    for (const [key, value] of Object.entries(component.on || {}))
      listeners[key] = value;
  }

  let lastArg;
  if (Object.entries(slots).length) {
    lastArg = slots;
    if (children.length)
      slots.default = children;
  } else if (children.length) {
    lastArg = children;
  }

  return { Component: component.type, props, slots: lastArg, listeners };
}

/**
 * @param {any} slots
 */
function __pwWrapFunctions(slots) {
  /** @type {import('vue').ComponentInternalInstance['slots']} */
  const slotsWithRenderFunctions = {};
  if (!Array.isArray(slots)) {
    for (const [key, value] of Object.entries(slots || {}))
      slotsWithRenderFunctions[key] = () => [value];
  } else if (slots?.length) {
    slotsWithRenderFunctions['default'] = () => slots;
  }
  return slotsWithRenderFunctions;
}

/**
 * @param {Component} component
 * @returns {import('vue').VNode | string}
 */
function __pwCreateWrapper(component) {
  const { Component, props, slots, listeners } = __pwCreateComponent(component);
  // @ts-ignore
  const wrapper = h(Component, { ...props, ...listeners }, slots);
  __pwAllListeners.set(wrapper, listeners);
  return wrapper;
}

function __pwSetDevTools() {
  setDevtoolsHook({
    emit(eventType, ...payload) {
      if (eventType !== 'component:emit')
        return;

      const [, componentVM, event, eventArgs] = payload;
      for (const [wrapper, listeners] of __pwAllListeners) {
        if (wrapper.component !== componentVM)
          continue;
        const listener = listeners[event];
        if (!listener)
          return;
        listener(...eventArgs);
      }
    },
    on() {},
    off() {},
    once() {},
    appRecords: []
  }, {});
}

const __pwAppKey = Symbol('appKey');
const __pwWrapperKey = Symbol('wrapperKey');

window.playwrightMount = async (component, rootElement, hooksConfig) => {
  const app = createApp({
    render: () => {
      const wrapper = __pwCreateWrapper(component);
      rootElement[__pwWrapperKey] = wrapper;
      return wrapper;
    }
  });
  __pwSetDevTools();

  for (const hook of window.__pw_hooks_before_mount || [])
    await hook({ app, hooksConfig });
  const instance = app.mount(rootElement);
  rootElement[__pwAppKey] = app;

  for (const hook of window.__pw_hooks_after_mount || [])
    await hook({ app, hooksConfig, instance });
};

window.playwrightUnmount = async rootElement => {
  /** @type {import('vue').App<Element> | undefined} */
  const app = rootElement[__pwAppKey];
  if (!app)
    throw new Error('Component was not mounted');
  app.unmount();
  delete rootElement[__pwAppKey];
};

window.playwrightUpdate = async (rootElement, component) => {
  /** @type {import('vue').VNode | undefined} */
  const wrapper = rootElement[__pwWrapperKey];
  if (!wrapper)
    throw new Error('Component was not mounted');

  if (!wrapper.component)
    throw new Error('Updating a native HTML element is not supported');

  const { slots, listeners, props } = __pwCreateComponent(component);

  wrapper.component.slots = __pwWrapFunctions(slots);
  __pwAllListeners.set(wrapper, listeners);

  if (typeof slots !== 'undefined')
    wrapper.component.effect.run();

  for (const [key, value] of Object.entries(props))
    wrapper.component.props[key] = value;

  if (!Object.keys(props).length)
    wrapper.component.update();
};

const _home_jeppe_WebstormProjects_pleno_vue_tests_ct___components_displays_buttons_DatePeriodSelector_vue = () => __vitePreload(() => import('./DatePeriodSelector-B7d5SXAv.js'),true              ?__vite__mapDeps([0,1]):void 0).then((mod) => mod.default);
__pwRegistry.initialize({ _home_jeppe_WebstormProjects_pleno_vue_tests_ct___components_displays_buttons_DatePeriodSelector_vue });

export { createVNode as $, defineComponent as A, shallowReactive as B, h as C, onUpdated as D, toRaw as E, Fragment as F, markRaw as G, isReadonly as H, onBeforeUpdate as I, i18n as J, useI18n as K, openBlock as L, createElementBlock as M, createCommentVNode as N, createBaseVNode as O, withDirectives as P, vModelText as Q, renderSlot as R, normalizeClass as S, TransitionGroup as T, toDisplayString$1 as U, withModifiers as V, vShow as W, createTextVNode as X, renderList as Y, vModelSelect as Z, __vitePreload as _, watch as a, createBlock as a0, createSlots as a1, withCtx as a2, onDeactivated as a3, onActivated as a4, setupDevtoolsPlugin as a5, resolveComponent as a6, useSlots as a7, Tooltip as a8, withKeys as a9, createStaticVNode as aa, BLoading as ab, BIcon as ac, BButton as ad, createApp as ae, version as af, isProxy as ag, normalizeStyle as ah, resolveDynamicComponent as ai, useAttrs as aj, BDatepicker as ak, mergeProps as al, useModel as am, mergeModels as an, Switch as ao, BAutocomplete as ap, vModelCheckbox as aq, BCheckbox as ar, getCurrentInstance as b, customRef as c, ref as d, effectScope as e, isRef as f, getCurrentScope as g, hasInjectionContext as h, inject as i, computed as j, reactive as k, toRefs as l, toRef as m, onBeforeMount as n, onScopeDispose as o, provide as p, nextTick as q, readonly as r, shallowRef as s, toValue as t, unref as u, onBeforeUnmount as v, watchEffect as w, onMounted as x, onUnmounted as y, isReactive as z };
//# sourceMappingURL=index-6ljr7rTu.js.map
