(function(l,o){typeof exports=="object"&&typeof module<"u"?o(exports):typeof define=="function"&&define.amd?define(["exports"],o):(l=typeof globalThis<"u"?globalThis:l||self,o(l.kalemah={}))})(this,function(l){"use strict";var y=Object.defineProperty;var E=(l,o,c)=>o in l?y(l,o,{enumerable:!0,configurable:!0,writable:!0,value:c}):l[o]=c;var f=(l,o,c)=>(E(l,typeof o!="symbol"?o+"":o,c),c);const o=new Map;class c{constructor(e){f(this,"_key","");f(this,"_browser",!1);f(this,"_localizations",[]);f(this,"_default","");f(this,"_active","");var r,i,s,n;if(!e)throw new Error("Doc must be defined");if((r=e==null?void 0:e.localizations)!=null&&r.length){if((i=e.localizations)!=null&&i.find(a=>!(a!=null&&a.name)||!a.content))throw new Error("Every Language must have a name and content for each language")}else throw new Error("Doc must have at least one language");this._key=e.key||"default",this._browser=e.browser||!1,this._localizations=e.localizations,this._default=e.default||((n=(s=e.localizations)==null?void 0:s[0])==null?void 0:n.name),this._active=e.active||this._default,o.set(this._key,this)}}function w({docKey:t,name:e}){var s;let r=o.get(t);if(!r){console.error("doc not found");return}if(!((s=r==null?void 0:r._localizations)==null?void 0:s.find(n=>n.name===e))){console.error("please double check the name, it doesn't exist");return}r._active=e,o.set(t,r)}function v({docKey:t}){let e=o.get(t);if(!e){console.error("doc not found");return}return e._active}function _({docKey:t}){if(!o.get(t)){console.error("doc not found");return}return m({docKey:t}).content}function m({docKey:t}){let e=o.get(t);if(!e){console.error("doc not found");return}let r=e._localizations.find(i=>i.name===e._active);if(!r){console.error("active Localization not found");return}return r}function k({docKey:t,path:e}){return o.get(t)?g(_({docKey:t})||{},e)!==void 0:(console.error("doc not found"),!1)}function p({docKey:t,name:e}){let r=o.get(t);if(!r){console.error("doc not found");return}return e?r._localizations.find(i=>i.name===e):m({docKey:t})}function g(t,e){const r=b(e);let i=t;for(const s of r)if(i&&typeof i=="object")if(Array.isArray(i)&&/^\d+$/.test(s)){const n=parseInt(s,10);if(n>=0&&n_({docKey:t||"default"})||{};return{k:(n,a)=>{if(!a)return g(e(),n);console.log(a);let u=g(e(),n);for(const d in a){let h=new RegExp(`{{${d}}}`,"g");u=u.replace(h,a[d])}return u},activeName:()=>v({docKey:t||"default"}),changeLanguage:n=>w({docKey:t||"default",name:n}),exists:n=>k({docKey:t||"default",path:n}),activeContent:()=>e(),languages:()=>{var n,a;return(a=(n=o.get(t||"default"))==null?void 0:n._localizations)==null?void 0:a.map(u=>u.content)},getKey:(n,a)=>{var d,h,z;if(!n){console.error("key is required");return}const u=a||v({docKey:t||"default"});return g(((z=(h=(d=o.get(t||"default"))==null?void 0:d._localizations)==null?void 0:h.find(x=>x.name===u))==null?void 0:z.content)||{},n)},getLocalization:n=>p({docKey:t||"default",name:n}),dir:n=>{var a;return(a=p({docKey:t||"default",name:n}))==null?void 0:a.dir}}}l.Doc=c,l.kalemah=L,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});