codicent-app-sdk 0.3.77 → 0.3.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/README.md +0 -1
  2. package/dist/cjs/components/AiInput.js +1 -1
  3. package/dist/cjs/components/AudioIcon.js +1 -1
  4. package/dist/cjs/components/ChatInput.js +1 -1
  5. package/dist/cjs/components/ChatMessage.d.ts.map +1 -1
  6. package/dist/cjs/components/ChatMessage.js +1 -1
  7. package/dist/cjs/components/CombinedPlaceholderDialog.js +1 -1
  8. package/dist/cjs/components/Footer.js +1 -1
  9. package/dist/cjs/components/Header.js +1 -1
  10. package/dist/cjs/components/HtmlView.js +1 -1
  11. package/dist/cjs/components/MessageInput.js +1 -1
  12. package/dist/cjs/components/MessageItem.js +1 -1
  13. package/dist/cjs/components/Profile.js +1 -1
  14. package/dist/cjs/components/Prompt.d.ts.map +1 -1
  15. package/dist/cjs/components/Prompt.js +1 -1
  16. package/dist/cjs/components/SnapFooter.js +1 -1
  17. package/dist/cjs/components/TextHeader.js +1 -1
  18. package/dist/cjs/components/TypingIndicator.js +1 -1
  19. package/dist/cjs/components/UploadFile.js +1 -1
  20. package/dist/cjs/components/UrlProcessor.js +1 -1
  21. package/dist/cjs/components/VoiceIcon.js +1 -1
  22. package/dist/cjs/config/index.d.ts +0 -1
  23. package/dist/cjs/config/index.d.ts.map +1 -1
  24. package/dist/cjs/config/index.js +1 -1
  25. package/dist/cjs/hooks/index.d.ts +1 -1
  26. package/dist/cjs/hooks/index.d.ts.map +1 -1
  27. package/dist/cjs/hooks/useAudioRecorder.d.ts.map +1 -1
  28. package/dist/cjs/hooks/useAudioRecorder.js +1 -1
  29. package/dist/cjs/hooks/useAuthState.d.ts.map +1 -1
  30. package/dist/cjs/hooks/useAuthState.js +1 -1
  31. package/dist/cjs/hooks/useCodicentApp.d.ts.map +1 -1
  32. package/dist/cjs/hooks/useCodicentApp.js +1 -1
  33. package/dist/cjs/hooks/useCodicentState.js +1 -1
  34. package/dist/cjs/hooks/useLocalization.d.ts +1 -6
  35. package/dist/cjs/hooks/useLocalization.d.ts.map +1 -1
  36. package/dist/cjs/hooks/useLocalization.js +1 -1
  37. package/dist/cjs/hooks/useRealtimeVoiceAI.d.ts +2 -2
  38. package/dist/cjs/hooks/useRealtimeVoiceAI.d.ts.map +1 -1
  39. package/dist/cjs/hooks/useRealtimeVoiceAI.js +1 -1
  40. package/dist/cjs/index.js +1 -1
  41. package/dist/cjs/node_modules/i18next/dist/esm/i18next.js +1 -1
  42. package/dist/cjs/node_modules/react-i18next/dist/es/context.js +1 -1
  43. package/dist/cjs/node_modules/react-i18next/dist/es/defaults.js +1 -1
  44. package/dist/cjs/node_modules/react-i18next/dist/es/i18nInstance.js +1 -1
  45. package/dist/cjs/node_modules/react-i18next/dist/es/initReactI18next.js +1 -1
  46. package/dist/cjs/node_modules/react-i18next/dist/es/unescape.js +1 -1
  47. package/dist/cjs/node_modules/react-i18next/dist/es/useTranslation.js +1 -1
  48. package/dist/cjs/node_modules/react-i18next/dist/es/utils.js +1 -1
  49. package/dist/cjs/pages/AppFrame.js +1 -1
  50. package/dist/cjs/pages/CrmPage.js +1 -1
  51. package/dist/cjs/pages/FormAccept.js +1 -1
  52. package/dist/cjs/pages/FormInvite.js +1 -1
  53. package/dist/cjs/pages/Login.js +1 -1
  54. package/dist/cjs/pages/Sales.js +1 -1
  55. package/dist/cjs/pages/Search.js +1 -1
  56. package/dist/cjs/pages/Snap.js +1 -1
  57. package/dist/cjs/services/index.d.ts +0 -1
  58. package/dist/cjs/services/index.d.ts.map +1 -1
  59. package/dist/esm/components/AiInput.js +1 -1
  60. package/dist/esm/components/AudioIcon.js +1 -1
  61. package/dist/esm/components/ChatInput.js +1 -1
  62. package/dist/esm/components/ChatMessage.d.ts.map +1 -1
  63. package/dist/esm/components/ChatMessage.js +1 -1
  64. package/dist/esm/components/CombinedPlaceholderDialog.js +1 -1
  65. package/dist/esm/components/Footer.js +1 -1
  66. package/dist/esm/components/Header.js +1 -1
  67. package/dist/esm/components/HtmlView.js +1 -1
  68. package/dist/esm/components/MessageInput.js +1 -1
  69. package/dist/esm/components/MessageItem.js +1 -1
  70. package/dist/esm/components/Profile.js +1 -1
  71. package/dist/esm/components/Prompt.d.ts.map +1 -1
  72. package/dist/esm/components/Prompt.js +1 -1
  73. package/dist/esm/components/SnapFooter.js +1 -1
  74. package/dist/esm/components/TextHeader.js +1 -1
  75. package/dist/esm/components/TypingIndicator.js +1 -1
  76. package/dist/esm/components/UploadFile.js +1 -1
  77. package/dist/esm/components/UrlProcessor.js +1 -1
  78. package/dist/esm/components/VoiceIcon.js +1 -1
  79. package/dist/esm/config/index.d.ts +0 -1
  80. package/dist/esm/config/index.d.ts.map +1 -1
  81. package/dist/esm/config/index.js +1 -1
  82. package/dist/esm/hooks/index.d.ts +1 -1
  83. package/dist/esm/hooks/index.d.ts.map +1 -1
  84. package/dist/esm/hooks/useAudioRecorder.d.ts.map +1 -1
  85. package/dist/esm/hooks/useAudioRecorder.js +1 -1
  86. package/dist/esm/hooks/useAuthState.d.ts.map +1 -1
  87. package/dist/esm/hooks/useAuthState.js +1 -1
  88. package/dist/esm/hooks/useCodicentApp.d.ts.map +1 -1
  89. package/dist/esm/hooks/useCodicentApp.js +1 -1
  90. package/dist/esm/hooks/useCodicentState.js +1 -1
  91. package/dist/esm/hooks/useLocalization.d.ts +1 -6
  92. package/dist/esm/hooks/useLocalization.d.ts.map +1 -1
  93. package/dist/esm/hooks/useLocalization.js +1 -1
  94. package/dist/esm/hooks/useRealtimeVoiceAI.d.ts +2 -2
  95. package/dist/esm/hooks/useRealtimeVoiceAI.d.ts.map +1 -1
  96. package/dist/esm/hooks/useRealtimeVoiceAI.js +1 -1
  97. package/dist/esm/index.js +1 -1
  98. package/dist/esm/node_modules/i18next/dist/esm/i18next.js +1 -1
  99. package/dist/esm/node_modules/react-i18next/dist/es/context.js +1 -1
  100. package/dist/esm/node_modules/react-i18next/dist/es/defaults.js +1 -1
  101. package/dist/esm/node_modules/react-i18next/dist/es/i18nInstance.js +1 -1
  102. package/dist/esm/node_modules/react-i18next/dist/es/initReactI18next.js +1 -1
  103. package/dist/esm/node_modules/react-i18next/dist/es/unescape.js +1 -1
  104. package/dist/esm/node_modules/react-i18next/dist/es/useTranslation.js +1 -1
  105. package/dist/esm/node_modules/react-i18next/dist/es/utils.js +1 -1
  106. package/dist/esm/pages/AppFrame.js +1 -1
  107. package/dist/esm/pages/CrmPage.js +1 -1
  108. package/dist/esm/pages/FormAccept.js +1 -1
  109. package/dist/esm/pages/FormInvite.js +1 -1
  110. package/dist/esm/pages/Login.js +1 -1
  111. package/dist/esm/pages/Sales.js +1 -1
  112. package/dist/esm/pages/Search.js +1 -1
  113. package/dist/esm/pages/Snap.js +1 -1
  114. package/dist/esm/services/index.d.ts +0 -1
  115. package/dist/esm/services/index.d.ts.map +1 -1
  116. package/dist/index.d.ts +15 -57
  117. package/package.json +3 -1
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- export{CodicentService}from"./services/codicent.js";export{clearStoredTranslations,getStoredTranslations,saveTranslation,translateText,translationService}from"./services/translationService.js";export{default as Markdown}from"./components/Markdown.js";export{Textarea}from"./components/Textarea.js";export{Button}from"./components/Button.js";export{Title}from"./components/Title.js";export{Text}from"./components/Text.js";export{Spinner}from"./components/Spinner.js";export{Label}from"./components/Label.js";export{Input}from"./components/Input.js";export{default as TextHeader}from"./components/TextHeader.js";export{default as TypingIndicator}from"./components/TypingIndicator.js";export{default as Prompt}from"./components/Prompt.js";export{default as ChatInput}from"./components/ChatInput.js";export{CombinedPlaceholderDialog}from"./components/CombinedPlaceholderDialog.js";export{default as ChatMessage}from"./components/ChatMessage.js";export{Header}from"./components/Header.js";export{default as VoiceIcon}from"./components/VoiceIcon.js";export{default as AudioIcon}from"./components/AudioIcon.js";export{FileThumbnail}from"./components/FileThumbnail.js";export{default as MessageInput}from"./components/MessageInput.js";export{default as UploadFile}from"./components/UploadFile.js";export{default as SnapFooter}from"./components/SnapFooter.js";export{default as Profile}from"./components/Profile.js";export{default as MessageItem}from"./components/MessageItem.js";export{default as Content}from"./components/Content.js";export{default as AiInput}from"./components/AiInput.js";export{default as SearchBox}from"./components/SearchBox.js";export{default as HtmlView}from"./components/HtmlView.js";export{Footer}from"./components/Footer.js";export{Page}from"./components/Page.js";export{UrlProcessor}from"./components/UrlProcessor.js";export{DatePicker}from"./components/DatePicker.js";export{ColorPicker}from"./components/ColorPicker.js";export{TimePicker}from"./components/TimePicker.js";export{default as useStateWithLocalStorage}from"./hooks/useStateWithLocalStorage.js";export{default as useAuthState}from"./hooks/useAuthState.js";export{useChat}from"./hooks/useChat.js";export{default as useCodicentState}from"./hooks/useCodicentState.js";export{useAudioRecorder}from"./hooks/useAudioRecorder.js";export{default as useTools}from"./hooks/useTools.js";export{default as useRealtimeVoiceAI}from"./hooks/useRealtimeVoiceAI.js";export{useTemplateVariables}from"./hooks/useTemplateVariables.js";export{useCodicentApp}from"./hooks/useCodicentApp.js";export{default as useAppStyles}from"./hooks/useAppStyles.js";export{default as useToaster}from"./hooks/useToaster.js";export{default as useLocalization}from"./hooks/useLocalization.js";export{default as MessageContent}from"./utils/MessageContent.js";export{default as generateBrandVariants}from"./utils/theme.js";export{default as log}from"./utils/logging.js";export{default as withWakeLock}from"./utils/withWakeLock.js";export{AppStateMachine,createAppStateMachine}from"./utils/appState.js";import{d as e}from"./_virtual/index.js";import"./lib/wavtools/lib/wav_packer.js";import"./lib/wavtools/lib/analysis/audio_analysis.js";export{WavStreamPlayer}from"./lib/wavtools/lib/wav_stream_player.js";export{WavRecorder}from"./lib/wavtools/lib/wav_recorder.js";export{getGpsLocation,isMobileDevice}from"./utils/device.js";export{getTimeString}from"./utils/helpers.js";export{AppConfig,getConfigValue,initCodicentApp}from"./config/index.js";export{default as AppFrame}from"./pages/AppFrame.js";export{default as Snap}from"./pages/Snap.js";export{default as Search}from"./pages/Search.js";export{default as Login}from"./pages/Login.js";export{Logout}from"./pages/Logout.js";export{CrmPage}from"./pages/CrmPage.js";export{default as ImageView}from"./pages/ImageView.js";export{default as FormInvite}from"./pages/FormInvite.js";export{default as FormAccept}from"./pages/FormAccept.js";export{Sales}from"./pages/Sales.js";var o=e.StateMachine;export{o as StateMachine};
1
+ export{CodicentService}from"./services/codicent.js";export{default as Markdown}from"./components/Markdown.js";export{Textarea}from"./components/Textarea.js";export{Button}from"./components/Button.js";export{Title}from"./components/Title.js";export{Text}from"./components/Text.js";export{Spinner}from"./components/Spinner.js";export{Label}from"./components/Label.js";export{Input}from"./components/Input.js";export{default as TextHeader}from"./components/TextHeader.js";export{default as TypingIndicator}from"./components/TypingIndicator.js";export{default as Prompt}from"./components/Prompt.js";export{default as ChatInput}from"./components/ChatInput.js";export{CombinedPlaceholderDialog}from"./components/CombinedPlaceholderDialog.js";export{default as ChatMessage}from"./components/ChatMessage.js";export{Header}from"./components/Header.js";export{default as VoiceIcon}from"./components/VoiceIcon.js";export{default as AudioIcon}from"./components/AudioIcon.js";export{FileThumbnail}from"./components/FileThumbnail.js";export{default as MessageInput}from"./components/MessageInput.js";export{default as UploadFile}from"./components/UploadFile.js";export{default as SnapFooter}from"./components/SnapFooter.js";export{default as Profile}from"./components/Profile.js";export{default as MessageItem}from"./components/MessageItem.js";export{default as Content}from"./components/Content.js";export{default as AiInput}from"./components/AiInput.js";export{default as SearchBox}from"./components/SearchBox.js";export{default as HtmlView}from"./components/HtmlView.js";export{Footer}from"./components/Footer.js";export{Page}from"./components/Page.js";export{UrlProcessor}from"./components/UrlProcessor.js";export{DatePicker}from"./components/DatePicker.js";export{ColorPicker}from"./components/ColorPicker.js";export{TimePicker}from"./components/TimePicker.js";export{default as useStateWithLocalStorage}from"./hooks/useStateWithLocalStorage.js";export{default as useAuthState}from"./hooks/useAuthState.js";export{useChat}from"./hooks/useChat.js";export{default as useCodicentState}from"./hooks/useCodicentState.js";export{useAudioRecorder}from"./hooks/useAudioRecorder.js";export{default as useTools}from"./hooks/useTools.js";export{default as useRealtimeVoiceAI}from"./hooks/useRealtimeVoiceAI.js";export{default as useLocalization}from"./hooks/useLocalization.js";export{useTemplateVariables}from"./hooks/useTemplateVariables.js";export{useCodicentApp}from"./hooks/useCodicentApp.js";export{default as useAppStyles}from"./hooks/useAppStyles.js";export{default as useToaster}from"./hooks/useToaster.js";export{default as MessageContent}from"./utils/MessageContent.js";export{default as generateBrandVariants}from"./utils/theme.js";export{default as log}from"./utils/logging.js";export{default as withWakeLock}from"./utils/withWakeLock.js";export{AppStateMachine,createAppStateMachine}from"./utils/appState.js";import{d as e}from"./_virtual/index.js";import"./lib/wavtools/lib/wav_packer.js";import"./lib/wavtools/lib/analysis/audio_analysis.js";export{WavStreamPlayer}from"./lib/wavtools/lib/wav_stream_player.js";export{WavRecorder}from"./lib/wavtools/lib/wav_recorder.js";export{getGpsLocation,isMobileDevice}from"./utils/device.js";export{getTimeString}from"./utils/helpers.js";export{AppConfig,getConfigValue,initCodicentApp}from"./config/index.js";export{default as AppFrame}from"./pages/AppFrame.js";export{default as Snap}from"./pages/Snap.js";export{default as Search}from"./pages/Search.js";export{default as Login}from"./pages/Login.js";export{Logout}from"./pages/Logout.js";export{CrmPage}from"./pages/CrmPage.js";export{default as ImageView}from"./pages/ImageView.js";export{default as FormInvite}from"./pages/FormInvite.js";export{default as FormAccept}from"./pages/FormAccept.js";export{Sales}from"./pages/Sales.js";var o=e.StateMachine;export{o as StateMachine};
@@ -1 +1 @@
1
- const e=e=>"string"==typeof e,t=()=>{let e,t;const s=new Promise(((s,i)=>{e=s,t=i}));return s.resolve=e,s.reject=t,s},s=e=>null==e?"":""+e,i=/###/g,o=e=>e&&e.indexOf("###")>-1?e.replace(i,"."):e,n=t=>!t||e(t),a=(t,s,i)=>{const a=e(s)?s.split("."):s;let r=0;for(;r<a.length-1;){if(n(t))return{};const e=o(a[r]);!t[e]&&i&&(t[e]=new i),t=Object.prototype.hasOwnProperty.call(t,e)?t[e]:{},++r}return n(t)?{}:{obj:t,k:o(a[r])}},r=(e,t,s)=>{const{obj:i,k:o}=a(e,t,Object);if(void 0!==i||1===t.length)return void(i[o]=s);let n=t[t.length-1],r=t.slice(0,t.length-1),l=a(e,r,Object);for(;void 0===l.obj&&r.length;)n=`${r[r.length-1]}.${n}`,r=r.slice(0,r.length-1),l=a(e,r,Object),l?.obj&&void 0!==l.obj[`${l.k}.${n}`]&&(l.obj=void 0);l.obj[`${l.k}.${n}`]=s},l=(e,t)=>{const{obj:s,k:i}=a(e,t);if(s&&Object.prototype.hasOwnProperty.call(s,i))return s[i]},h=(t,s,i)=>{for(const o in s)"__proto__"!==o&&"constructor"!==o&&(o in t?e(t[o])||t[o]instanceof String||e(s[o])||s[o]instanceof String?i&&(t[o]=s[o]):h(t[o],s[o],i):t[o]=s[o]);return t},c=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var p={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};const u=t=>e(t)?t.replace(/[&<>"'\/]/g,(e=>p[e])):t;const g=[" ",",","?","!",";"],d=new class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(void 0!==t)return t;const s=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,s),this.regExpQueue.push(e),s}}(20),f=(e,t,s=".")=>{if(!e)return;if(e[t]){if(!Object.prototype.hasOwnProperty.call(e,t))return;return e[t]}const i=t.split(s);let o=e;for(let e=0;e<i.length;){if(!o||"object"!=typeof o)return;let t,n="";for(let a=e;a<i.length;++a)if(a!==e&&(n+=s),n+=i[a],t=o[n],void 0!==t){if(["string","number","boolean"].indexOf(typeof t)>-1&&a<i.length-1)continue;e+=a-e+1;break}o=t}return o},m=e=>e?.replace("_","-"),y={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console?.[e]?.apply?.(console,t)}};class x{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||"i18next:",this.logger=e||y,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,"log","",!0)}warn(...e){return this.forward(e,"warn","",!0)}error(...e){return this.forward(e,"error","")}deprecate(...e){return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(t,s,i,o){return o&&!this.debug?null:(e(t[0])&&(t[0]=`${i}${this.prefix} ${t[0]}`),this.logger[s](t))}create(e){return new x(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return(e=e||this.options).prefix=e.prefix||this.prefix,new x(this.logger,e)}}var v=new x;class b{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach((e=>{this.observers[e]||(this.observers[e]=new Map);const s=this.observers[e].get(t)||0;this.observers[e].set(t,s+1)})),this}off(e,t){this.observers[e]&&(t?this.observers[e].delete(t):delete this.observers[e])}emit(e,...t){if(this.observers[e]){Array.from(this.observers[e].entries()).forEach((([e,s])=>{for(let i=0;i<s;i++)e(...t)}))}if(this.observers["*"]){Array.from(this.observers["*"].entries()).forEach((([s,i])=>{for(let o=0;o<i;o++)s.apply(s,[e,...t])}))}}}class k extends b{constructor(e,t={ns:["translation"],defaultNS:"translation"}){super(),this.data=e||{},this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),void 0===this.options.ignoreJSONStructure&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(t,s,i,o={}){const n=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,a=void 0!==o.ignoreJSONStructure?o.ignoreJSONStructure:this.options.ignoreJSONStructure;let r;t.indexOf(".")>-1?r=t.split("."):(r=[t,s],i&&(Array.isArray(i)?r.push(...i):e(i)&&n?r.push(...i.split(n)):r.push(i)));const h=l(this.data,r);return!h&&!s&&!i&&t.indexOf(".")>-1&&(t=r[0],s=r[1],i=r.slice(2).join(".")),!h&&a&&e(i)?f(this.data?.[t]?.[s],i,n):h}addResource(e,t,s,i,o={silent:!1}){const n=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator;let a=[e,t];s&&(a=a.concat(n?s.split(n):s)),e.indexOf(".")>-1&&(a=e.split("."),i=t,t=a[1]),this.addNamespaces(t),r(this.data,a,i),o.silent||this.emit("added",e,t,s,i)}addResources(t,s,i,o={silent:!1}){for(const o in i)(e(i[o])||Array.isArray(i[o]))&&this.addResource(t,s,o,i[o],{silent:!0});o.silent||this.emit("added",t,s,i)}addResourceBundle(e,t,s,i,o,n={silent:!1,skipCopy:!1}){let a=[e,t];e.indexOf(".")>-1&&(a=e.split("."),i=s,s=t,t=a[1]),this.addNamespaces(t);let c=l(this.data,a)||{};n.skipCopy||(s=JSON.parse(JSON.stringify(s))),i?h(c,s,o):c={...c,...s},r(this.data,a,c),n.silent||this.emit("added",e,t,s)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return void 0!==this.getResource(e,t)}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find((e=>t[e]&&Object.keys(t[e]).length>0))}toJSON(){return this.data}}var S={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,s,i,o){return e.forEach((e=>{t=this.processors[e]?.process(t,s,i,o)??t})),t}};const O={},L=t=>!e(t)&&"boolean"!=typeof t&&"number"!=typeof t;class w extends b{constructor(e,t={}){var s,i;super(),s=e,i=this,["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"].forEach((e=>{s[e]&&(i[e]=s[e])})),this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),this.logger=v.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){const s={...t};if(null==e)return!1;const i=this.resolve(e,s);return void 0!==i?.res}extractFromKey(t,s){let i=void 0!==s.nsSeparator?s.nsSeparator:this.options.nsSeparator;void 0===i&&(i=":");const o=void 0!==s.keySeparator?s.keySeparator:this.options.keySeparator;let n=s.ns||this.options.defaultNS||[];const a=i&&t.indexOf(i)>-1,r=!(this.options.userDefinedKeySeparator||s.keySeparator||this.options.userDefinedNsSeparator||s.nsSeparator||((e,t,s)=>{t=t||"",s=s||"";const i=g.filter((e=>t.indexOf(e)<0&&s.indexOf(e)<0));if(0===i.length)return!0;const o=d.getRegExp(`(${i.map((e=>"?"===e?"\\?":e)).join("|")})`);let n=!o.test(e);if(!n){const t=e.indexOf(s);t>0&&!o.test(e.substring(0,t))&&(n=!0)}return n})(t,i,o));if(a&&!r){const s=t.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:t,namespaces:e(n)?[n]:n};const a=t.split(i);(i!==o||i===o&&this.options.ns.indexOf(a[0])>-1)&&(n=a.shift()),t=a.join(o)}return{key:t,namespaces:e(n)?[n]:n}}translate(t,s,i){let o="object"==typeof s?{...s}:s;if("object"!=typeof o&&this.options.overloadTranslationOptionHandler&&(o=this.options.overloadTranslationOptionHandler(arguments)),"object"==typeof options&&(o={...o}),o||(o={}),null==t)return"";Array.isArray(t)||(t=[String(t)]);const n=void 0!==o.returnDetails?o.returnDetails:this.options.returnDetails,a=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,{key:r,namespaces:l}=this.extractFromKey(t[t.length-1],o),h=l[l.length-1];let c=void 0!==o.nsSeparator?o.nsSeparator:this.options.nsSeparator;void 0===c&&(c=":");const p=o.lng||this.language,u=o.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if("cimode"===p?.toLowerCase())return u?n?{res:`${h}${c}${r}`,usedKey:r,exactUsedKey:r,usedLng:p,usedNS:h,usedParams:this.getUsedParamsDetails(o)}:`${h}${c}${r}`:n?{res:r,usedKey:r,exactUsedKey:r,usedLng:p,usedNS:h,usedParams:this.getUsedParamsDetails(o)}:r;const g=this.resolve(t,o);let d=g?.res;const f=g?.usedKey||r,m=g?.exactUsedKey||r,y=void 0!==o.joinArrays?o.joinArrays:this.options.joinArrays,x=!this.i18nFormat||this.i18nFormat.handleAsObject,v=void 0!==o.count&&!e(o.count),b=w.hasDefaultValue(o),k=v?this.pluralResolver.getSuffix(p,o.count,o):"",S=o.ordinal&&v?this.pluralResolver.getSuffix(p,o.count,{ordinal:!1}):"",O=v&&!o.ordinal&&0===o.count,$=O&&o[`defaultValue${this.options.pluralSeparator}zero`]||o[`defaultValue${k}`]||o[`defaultValue${S}`]||o.defaultValue;let R=d;x&&!d&&b&&(R=$);const C=L(R),P=Object.prototype.toString.apply(R);if(!(x&&R&&C&&["[object Number]","[object Function]","[object RegExp]"].indexOf(P)<0)||e(y)&&Array.isArray(R))if(x&&e(y)&&Array.isArray(d))d=d.join(y),d&&(d=this.extendTranslation(d,t,o,i));else{let e=!1,s=!1;!this.isValidLookup(d)&&b&&(e=!0,d=$),this.isValidLookup(d)||(s=!0,d=r);const n=(o.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&s?void 0:d,l=b&&$!==d&&this.options.updateMissing;if(s||e||l){if(this.logger.log(l?"updateKey":"missingKey",p,h,r,l?$:d),a){const e=this.resolve(r,{...o,keySeparator:!1});e&&e.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let e=[];const t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,o.lng||this.language);if("fallback"===this.options.saveMissingTo&&t&&t[0])for(let s=0;s<t.length;s++)e.push(t[s]);else"all"===this.options.saveMissingTo?e=this.languageUtils.toResolveHierarchy(o.lng||this.language):e.push(o.lng||this.language);const s=(e,t,s)=>{const i=b&&s!==d?s:n;this.options.missingKeyHandler?this.options.missingKeyHandler(e,h,t,i,l,o):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,h,t,i,l,o),this.emit("missingKey",e,h,t,d)};this.options.saveMissing&&(this.options.saveMissingPlurals&&v?e.forEach((e=>{const t=this.pluralResolver.getSuffixes(e,o);O&&o[`defaultValue${this.options.pluralSeparator}zero`]&&t.indexOf(`${this.options.pluralSeparator}zero`)<0&&t.push(`${this.options.pluralSeparator}zero`),t.forEach((t=>{s([e],r+t,o[`defaultValue${t}`]||$)}))})):s(e,r,$))}d=this.extendTranslation(d,t,o,g,i),s&&d===r&&this.options.appendNamespaceToMissingKey&&(d=`${h}${c}${r}`),(s||e)&&this.options.parseMissingKeyHandler&&(d=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${h}${c}${r}`:r,e?d:void 0,o))}else{if(!o.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(f,R,{...o,ns:l}):`key '${r} (${this.language})' returned an object instead of string.`;return n?(g.res=e,g.usedParams=this.getUsedParamsDetails(o),g):e}if(a){const e=Array.isArray(R),t=e?[]:{},s=e?m:f;for(const e in R)if(Object.prototype.hasOwnProperty.call(R,e)){const i=`${s}${a}${e}`;t[e]=b&&!d?this.translate(i,{...o,defaultValue:L($)?$[e]:void 0,joinArrays:!1,ns:l}):this.translate(i,{...o,joinArrays:!1,ns:l}),t[e]===i&&(t[e]=R[e])}d=t}}return n?(g.res=d,g.usedParams=this.getUsedParamsDetails(o),g):d}extendTranslation(t,s,i,o,n){if(this.i18nFormat?.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...i},i.lng||this.language||o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!i.skipInterpolation){i.interpolation&&this.interpolator.init({...i,interpolation:{...this.options.interpolation,...i.interpolation}});const a=e(t)&&(void 0!==i?.interpolation?.skipOnVariables?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let r;if(a){const e=t.match(this.interpolator.nestingRegexp);r=e&&e.length}let l=i.replace&&!e(i.replace)?i.replace:i;if(this.options.interpolation.defaultVariables&&(l={...this.options.interpolation.defaultVariables,...l}),t=this.interpolator.interpolate(t,l,i.lng||this.language||o.usedLng,i),a){const e=t.match(this.interpolator.nestingRegexp);r<(e&&e.length)&&(i.nest=!1)}!i.lng&&o&&o.res&&(i.lng=this.language||o.usedLng),!1!==i.nest&&(t=this.interpolator.nest(t,((...e)=>n?.[0]!==e[0]||i.context?this.translate(...e,s):(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${s[0]}`),null)),i)),i.interpolation&&this.interpolator.reset()}const a=i.postProcess||this.options.postProcess,r=e(a)?[a]:a;return null!=t&&r?.length&&!1!==i.applyPostProcessor&&(t=S.handle(r,t,s,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...o,usedParams:this.getUsedParamsDetails(i)},...i}:i,this)),t}resolve(t,s={}){let i,o,n,a,r;return e(t)&&(t=[t]),t.forEach((t=>{if(this.isValidLookup(i))return;const l=this.extractFromKey(t,s),h=l.key;o=h;let c=l.namespaces;this.options.fallbackNS&&(c=c.concat(this.options.fallbackNS));const p=void 0!==s.count&&!e(s.count),u=p&&!s.ordinal&&0===s.count,g=void 0!==s.context&&(e(s.context)||"number"==typeof s.context)&&""!==s.context,d=s.lngs?s.lngs:this.languageUtils.toResolveHierarchy(s.lng||this.language,s.fallbackLng);c.forEach((e=>{this.isValidLookup(i)||(r=e,O[`${d[0]}-${e}`]||!this.utils?.hasLoadedNamespace||this.utils?.hasLoadedNamespace(r)||(O[`${d[0]}-${e}`]=!0,this.logger.warn(`key "${o}" for languages "${d.join(", ")}" won't get resolved as namespace "${r}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),d.forEach((t=>{if(this.isValidLookup(i))return;a=t;const o=[h];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(o,h,t,e,s);else{let e;p&&(e=this.pluralResolver.getSuffix(t,s.count,s));const i=`${this.options.pluralSeparator}zero`,n=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(p&&(o.push(h+e),s.ordinal&&0===e.indexOf(n)&&o.push(h+e.replace(n,this.options.pluralSeparator)),u&&o.push(h+i)),g){const t=`${h}${this.options.contextSeparator}${s.context}`;o.push(t),p&&(o.push(t+e),s.ordinal&&0===e.indexOf(n)&&o.push(t+e.replace(n,this.options.pluralSeparator)),u&&o.push(t+i))}}let r;for(;r=o.pop();)this.isValidLookup(i)||(n=r,i=this.getResource(t,e,r,s))})))}))})),{res:i,usedKey:o,exactUsedKey:n,usedLng:a,usedNS:r}}isValidLookup(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}getResource(e,t,s,i={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,s,i):this.resourceStore.getResource(e,t,s,i)}getUsedParamsDetails(t={}){const s=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],i=t.replace&&!e(t.replace);let o=i?t.replace:t;if(i&&void 0!==t.count&&(o.count=t.count),this.options.interpolation.defaultVariables&&(o={...this.options.interpolation.defaultVariables,...o}),!i){o={...o};for(const e of s)delete o[e]}return o}static hasDefaultValue(e){const t="defaultValue";for(const s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&t===s.substring(0,12)&&void 0!==e[s])return!0;return!1}}class ${constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=v.create("languageUtils")}getScriptPartFromCode(e){if(!(e=m(e))||e.indexOf("-")<0)return null;const t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}getLanguagePartFromCode(e){if(!(e=m(e))||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(t){if(e(t)&&t.indexOf("-")>-1){let e;try{e=Intl.getCanonicalLocales(t)[0]}catch(e){}return e&&this.options.lowerCaseLng&&(e=e.toLowerCase()),e||(this.options.lowerCaseLng?t.toLowerCase():t)}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach((e=>{if(t)return;const s=this.formatLanguageCode(e);this.options.supportedLngs&&!this.isSupportedCode(s)||(t=s)})),!t&&this.options.supportedLngs&&e.forEach((e=>{if(t)return;const s=this.getScriptPartFromCode(e);if(this.isSupportedCode(s))return t=s;const i=this.getLanguagePartFromCode(e);if(this.isSupportedCode(i))return t=i;t=this.options.supportedLngs.find((e=>e===i?e:e.indexOf("-")<0&&i.indexOf("-")<0?void 0:e.indexOf("-")>0&&i.indexOf("-")<0&&e.substring(0,e.indexOf("-"))===i||0===e.indexOf(i)&&i.length>1?e:void 0))})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(t,s){if(!t)return[];if("function"==typeof t&&(t=t(s)),e(t)&&(t=[t]),Array.isArray(t))return t;if(!s)return t.default||[];let i=t[s];return i||(i=t[this.getScriptPartFromCode(s)]),i||(i=t[this.formatLanguageCode(s)]),i||(i=t[this.getLanguagePartFromCode(s)]),i||(i=t.default),i||[]}toResolveHierarchy(t,s){const i=this.getFallbackCodes((!1===s?[]:s)||this.options.fallbackLng||[],t),o=[],n=e=>{e&&(this.isSupportedCode(e)?o.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return e(t)&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?("languageOnly"!==this.options.load&&n(this.formatLanguageCode(t)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&n(this.getScriptPartFromCode(t)),"currentOnly"!==this.options.load&&n(this.getLanguagePartFromCode(t))):e(t)&&n(this.formatLanguageCode(t)),i.forEach((e=>{o.indexOf(e)<0&&n(this.formatLanguageCode(e))})),o}}const R={zero:0,one:1,two:2,few:3,many:4,other:5},C={select:e=>1===e?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class P{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=v.create("pluralResolver"),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){const s=m("dev"===e?"en":e),i=t.ordinal?"ordinal":"cardinal",o=JSON.stringify({cleanedCode:s,type:i});if(o in this.pluralRulesCache)return this.pluralRulesCache[o];let n;try{n=new Intl.PluralRules(s,{type:i})}catch(s){if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),C;if(!e.match(/-|_/))return C;const i=this.languageUtils.getLanguagePartFromCode(e);n=this.getRule(i,t)}return this.pluralRulesCache[o]=n,n}needsPlural(e,t={}){let s=this.getRule(e,t);return s||(s=this.getRule("dev",t)),s?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,s={}){return this.getSuffixes(e,s).map((e=>`${t}${e}`))}getSuffixes(e,t={}){let s=this.getRule(e,t);return s||(s=this.getRule("dev",t)),s?s.resolvedOptions().pluralCategories.sort(((e,t)=>R[e]-R[t])).map((e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${e}`)):[]}getSuffix(e,t,s={}){const i=this.getRule(e,s);return i?`${this.options.prepend}${s.ordinal?`ordinal${this.options.prepend}`:""}${i.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",t,s))}}const N=(t,s,i,o=".",n=!0)=>{let a=((e,t,s)=>{const i=l(e,s);return void 0!==i?i:l(t,s)})(t,s,i);return!a&&n&&e(i)&&(a=f(t,i,o),void 0===a&&(a=f(s,i,o))),a},j=e=>e.replace(/\$/g,"$$$$");class E{constructor(e={}){this.logger=v.create("interpolator"),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:s,useRawValueToEscape:i,prefix:o,prefixEscaped:n,suffix:a,suffixEscaped:r,formatSeparator:l,unescapeSuffix:h,unescapePrefix:p,nestingPrefix:g,nestingPrefixEscaped:d,nestingSuffix:f,nestingSuffixEscaped:m,nestingOptionsSeparator:y,maxReplaces:x,alwaysFormat:v}=e.interpolation;this.escape=void 0!==t?t:u,this.escapeValue=void 0===s||s,this.useRawValueToEscape=void 0!==i&&i,this.prefix=o?c(o):n||"{{",this.suffix=a?c(a):r||"}}",this.formatSeparator=l||",",this.unescapePrefix=h?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":h||"",this.nestingPrefix=g?c(g):d||c("$t("),this.nestingSuffix=f?c(f):m||c(")"),this.nestingOptionsSeparator=y||",",this.maxReplaces=x||1e3,this.alwaysFormat=void 0!==v&&v,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,i,o,n){let a,r,l;const h=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=e=>{if(e.indexOf(this.formatSeparator)<0){const t=N(i,h,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(t,void 0,o,{...n,...i,interpolationkey:e}):t}const t=e.split(this.formatSeparator),s=t.shift().trim(),a=t.join(this.formatSeparator).trim();return this.format(N(i,h,s,this.options.keySeparator,this.options.ignoreJSONStructure),a,o,{...n,...i,interpolationkey:s})};this.resetRegExp();const p=n?.missingInterpolationHandler||this.options.missingInterpolationHandler,u=void 0!==n?.interpolation?.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>j(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?j(this.escape(e)):j(e)}].forEach((i=>{for(l=0;a=i.regex.exec(t);){const o=a[1].trim();if(r=c(o),void 0===r)if("function"==typeof p){const s=p(t,a,n);r=e(s)?s:""}else if(n&&Object.prototype.hasOwnProperty.call(n,o))r="";else{if(u){r=a[0];continue}this.logger.warn(`missed to pass in variable ${o} for interpolating ${t}`),r=""}else e(r)||this.useRawValueToEscape||(r=s(r));const h=i.safeValue(r);if(t=t.replace(a[0],h),u?(i.regex.lastIndex+=r.length,i.regex.lastIndex-=a[0].length):i.regex.lastIndex=0,l++,l>=this.maxReplaces)break}})),t}nest(t,i,o={}){let n,a,r;const l=(e,t)=>{const s=this.nestingOptionsSeparator;if(e.indexOf(s)<0)return e;const i=e.split(new RegExp(`${s}[ ]*{`));let o=`{${i[1]}`;e=i[0],o=this.interpolate(o,r);const n=o.match(/'/g),a=o.match(/"/g);((n?.length??0)%2==0&&!a||a.length%2!=0)&&(o=o.replace(/'/g,'"'));try{r=JSON.parse(o),t&&(r={...t,...r})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${s}${o}`}return r.defaultValue&&r.defaultValue.indexOf(this.prefix)>-1&&delete r.defaultValue,e};for(;n=this.nestingRegexp.exec(t);){let h=[];r={...o},r=r.replace&&!e(r.replace)?r.replace:r,r.applyPostProcessor=!1,delete r.defaultValue;const c=/{.*}/.test(n[1])?n[1].lastIndexOf("}")+1:n[1].indexOf(this.formatSeparator);if(-1!==c&&(h=n[1].slice(c).split(this.formatSeparator).map((e=>e.trim())).filter(Boolean),n[1]=n[1].slice(0,c)),a=i(l.call(this,n[1].trim(),r),r),a&&n[0]===t&&!e(a))return a;e(a)||(a=s(a)),a||(this.logger.warn(`missed to resolve ${n[1]} for nesting ${t}`),a=""),h.length&&(a=h.reduce(((e,t)=>this.format(e,t,o.lng,{...o,interpolationkey:n[1].trim()})),a.trim())),t=t.replace(n[0],a),this.regexp.lastIndex=0}return t}}const F=e=>{const t={};return(s,i,o)=>{let n=o;o&&o.interpolationkey&&o.formatParams&&o.formatParams[o.interpolationkey]&&o[o.interpolationkey]&&(n={...n,[o.interpolationkey]:void 0});const a=i+JSON.stringify(n);let r=t[a];return r||(r=e(m(i),o),t[a]=r),r(s)}},I=e=>(t,s,i)=>e(m(s),i)(t);class V{constructor(e={}){this.logger=v.create("formatter"),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||",";const s=t.cacheInBuiltFormats?F:I;this.formats={number:s(((e,t)=>{const s=new Intl.NumberFormat(e,{...t});return e=>s.format(e)})),currency:s(((e,t)=>{const s=new Intl.NumberFormat(e,{...t,style:"currency"});return e=>s.format(e)})),datetime:s(((e,t)=>{const s=new Intl.DateTimeFormat(e,{...t});return e=>s.format(e)})),relativetime:s(((e,t)=>{const s=new Intl.RelativeTimeFormat(e,{...t});return e=>s.format(e,t.range||"day")})),list:s(((e,t)=>{const s=new Intl.ListFormat(e,{...t});return e=>s.format(e)}))}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=F(t)}format(e,t,s,i={}){const o=t.split(this.formatSeparator);if(o.length>1&&o[0].indexOf("(")>1&&o[0].indexOf(")")<0&&o.find((e=>e.indexOf(")")>-1))){const e=o.findIndex((e=>e.indexOf(")")>-1));o[0]=[o[0],...o.splice(1,e)].join(this.formatSeparator)}return o.reduce(((e,t)=>{const{formatName:o,formatOptions:n}=(e=>{let t=e.toLowerCase().trim();const s={};if(e.indexOf("(")>-1){const i=e.split("(");t=i[0].toLowerCase().trim();const o=i[1].substring(0,i[1].length-1);"currency"===t&&o.indexOf(":")<0?s.currency||(s.currency=o.trim()):"relativetime"===t&&o.indexOf(":")<0?s.range||(s.range=o.trim()):o.split(";").forEach((e=>{if(e){const[t,...i]=e.split(":"),o=i.join(":").trim().replace(/^'+|'+$/g,""),n=t.trim();s[n]||(s[n]=o),"false"===o&&(s[n]=!1),"true"===o&&(s[n]=!0),isNaN(o)||(s[n]=parseInt(o,10))}}))}return{formatName:t,formatOptions:s}})(t);if(this.formats[o]){let t=e;try{const a=i?.formatParams?.[i.interpolationkey]||{},r=a.locale||a.lng||i.locale||i.lng||s;t=this.formats[o](e,r,{...n,...i,...a})}catch(e){this.logger.warn(e)}return t}return this.logger.warn(`there was no format function for ${o}`),e}),e)}}class D extends b{constructor(e,t,s,i={}){super(),this.backend=e,this.store=t,this.services=s,this.languageUtils=s.languageUtils,this.options=i,this.logger=v.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(s,i.backend,i)}queueLoad(e,t,s,i){const o={},n={},a={},r={};return e.forEach((e=>{let i=!0;t.forEach((t=>{const a=`${e}|${t}`;!s.reload&&this.store.hasResourceBundle(e,t)?this.state[a]=2:this.state[a]<0||(1===this.state[a]?void 0===n[a]&&(n[a]=!0):(this.state[a]=1,i=!1,void 0===n[a]&&(n[a]=!0),void 0===o[a]&&(o[a]=!0),void 0===r[t]&&(r[t]=!0)))})),i||(a[e]=!0)})),(Object.keys(o).length||Object.keys(n).length)&&this.queue.push({pending:n,pendingCount:Object.keys(n).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(o),pending:Object.keys(n),toLoadLanguages:Object.keys(a),toLoadNamespaces:Object.keys(r)}}loaded(e,t,s){const i=e.split("|"),o=i[0],n=i[1];t&&this.emit("failedLoading",o,n,t),!t&&s&&this.store.addResourceBundle(o,n,s,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&s&&(this.state[e]=0);const r={};this.queue.forEach((s=>{((e,t,s)=>{const{obj:i,k:o}=a(e,t,Object);i[o]=i[o]||[],i[o].push(s)})(s.loaded,[o],n),((e,t)=>{void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)})(s,e),t&&s.errors.push(t),0!==s.pendingCount||s.done||(Object.keys(s.loaded).forEach((e=>{r[e]||(r[e]={});const t=s.loaded[e];t.length&&t.forEach((t=>{void 0===r[e][t]&&(r[e][t]=!0)}))})),s.done=!0,s.errors.length?s.callback(s.errors):s.callback())})),this.emit("loaded",r),this.queue=this.queue.filter((e=>!e.done))}read(e,t,s,i=0,o=this.retryTimeout,n){if(!e.length)return n(null,{});if(this.readingCalls>=this.maxParallelReads)return void this.waitingReads.push({lng:e,ns:t,fcName:s,tried:i,wait:o,callback:n});this.readingCalls++;const a=(a,r)=>{if(this.readingCalls--,this.waitingReads.length>0){const e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}a&&r&&i<this.maxRetries?setTimeout((()=>{this.read.call(this,e,t,s,i+1,2*o,n)}),o):n(a,r)},r=this.backend[s].bind(this.backend);if(2!==r.length)return r(e,t,a);try{const s=r(e,t);s&&"function"==typeof s.then?s.then((e=>a(null,e))).catch(a):a(null,s)}catch(e){a(e)}}prepareLoading(t,s,i={},o){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();e(t)&&(t=this.languageUtils.toResolveHierarchy(t)),e(s)&&(s=[s]);const n=this.queueLoad(t,s,i,o);if(!n.toLoad.length)return n.pending.length||o(),null;n.toLoad.forEach((e=>{this.loadOne(e)}))}load(e,t,s){this.prepareLoading(e,t,{},s)}reload(e,t,s){this.prepareLoading(e,t,{reload:!0},s)}loadOne(e,t=""){const s=e.split("|"),i=s[0],o=s[1];this.read(i,o,"read",void 0,void 0,((s,n)=>{s&&this.logger.warn(`${t}loading namespace ${o} for language ${i} failed`,s),!s&&n&&this.logger.log(`${t}loaded namespace ${o} for language ${i}`,n),this.loaded(e,s,n)}))}saveMissing(e,t,s,i,o,n={},a=()=>{}){if(!this.services?.utils?.hasLoadedNamespace||this.services?.utils?.hasLoadedNamespace(t)){if(null!=s&&""!==s){if(this.backend?.create){const r={...n,isUpdate:o},l=this.backend.create.bind(this.backend);if(l.length<6)try{let o;o=5===l.length?l(e,t,s,i,r):l(e,t,s,i),o&&"function"==typeof o.then?o.then((e=>a(null,e))).catch(a):a(null,o)}catch(e){a(e)}else l(e,t,s,i,a,r)}e&&e[0]&&this.store.addResource(e[0],t,s,i)}}else this.logger.warn(`did not save key "${s}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")}}const T=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:t=>{let s={};if("object"==typeof t[1]&&(s=t[1]),e(t[1])&&(s.defaultValue=t[1]),e(t[2])&&(s.tDescription=t[2]),"object"==typeof t[2]||"object"==typeof t[3]){const e=t[3]||t[2];Object.keys(e).forEach((t=>{s[t]=e[t]}))}return s},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),K=t=>(e(t.ns)&&(t.ns=[t.ns]),e(t.fallbackLng)&&(t.fallbackLng=[t.fallbackLng]),e(t.fallbackNS)&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs?.indexOf?.("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),"boolean"==typeof t.initImmediate&&(t.initAsync=t.initImmediate),t),U=()=>{};class A extends b{constructor(e={},t){var s;if(super(),this.options=K(e),this.services={},this.logger=v,this.modules={external:[]},s=this,Object.getOwnPropertyNames(Object.getPrototypeOf(s)).forEach((e=>{"function"==typeof s[e]&&(s[e]=s[e].bind(s))})),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout((()=>{this.init(e,t)}),0)}}init(s={},i){this.isInitializing=!0,"function"==typeof s&&(i=s,s={}),null==s.defaultNS&&s.ns&&(e(s.ns)?s.defaultNS=s.ns:s.ns.indexOf("translation")<0&&(s.defaultNS=s.ns[0]));const o=T();this.options={...o,...this.options,...K(s)},this.options.interpolation={...o.interpolation,...this.options.interpolation},void 0!==s.keySeparator&&(this.options.userDefinedKeySeparator=s.keySeparator),void 0!==s.nsSeparator&&(this.options.userDefinedNsSeparator=s.nsSeparator);const n=e=>e?"function"==typeof e?new e:e:null;if(!this.options.isClone){let e;this.modules.logger?v.init(n(this.modules.logger),this.options):v.init(null,this.options),e=this.modules.formatter?this.modules.formatter:V;const t=new $(this.options);this.store=new k(this.options.resources,this.options);const s=this.services;s.logger=v,s.resourceStore=this.store,s.languageUtils=t,s.pluralResolver=new P(t,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix});this.options.interpolation.format&&this.options.interpolation.format!==o.interpolation.format&&this.logger.warn("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),!e||this.options.interpolation.format&&this.options.interpolation.format!==o.interpolation.format||(s.formatter=n(e),s.formatter.init&&s.formatter.init(s,this.options),this.options.interpolation.format=s.formatter.format.bind(s.formatter)),s.interpolator=new E(this.options),s.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},s.backendConnector=new D(n(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",((e,...t)=>{this.emit(e,...t)})),this.modules.languageDetector&&(s.languageDetector=n(this.modules.languageDetector),s.languageDetector.init&&s.languageDetector.init(s,this.options.detection,this.options)),this.modules.i18nFormat&&(s.i18nFormat=n(this.modules.i18nFormat),s.i18nFormat.init&&s.i18nFormat.init(this)),this.translator=new w(this.services,this.options),this.translator.on("*",((e,...t)=>{this.emit(e,...t)})),this.modules.external.forEach((e=>{e.init&&e.init(this)}))}if(this.format=this.options.interpolation.format,i||(i=U),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&"dev"!==e[0]&&(this.options.lng=e[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach((e=>{this[e]=(...t)=>this.store[e](...t)}));["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach((e=>{this[e]=(...t)=>(this.store[e](...t),this)}));const a=t(),r=()=>{const e=(e,t)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),a.resolve(t),i(e,t)};if(this.languages&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?r():setTimeout(r,0),a}loadResources(t,s=U){let i=s;const o=e(t)?t:this.language;if("function"==typeof t&&(i=t),!this.options.resources||this.options.partialBundledLanguages){if("cimode"===o?.toLowerCase()&&(!this.options.preload||0===this.options.preload.length))return i();const e=[],t=t=>{if(!t)return;if("cimode"===t)return;this.services.languageUtils.toResolveHierarchy(t).forEach((t=>{"cimode"!==t&&e.indexOf(t)<0&&e.push(t)}))};if(o)t(o);else{this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((e=>t(e)))}this.options.preload?.forEach?.((e=>t(e))),this.services.backendConnector.load(e,this.options.ns,(e=>{e||this.resolvedLanguage||!this.language||this.setResolvedLanguage(this.language),i(e)}))}else i(null)}reloadResources(e,s,i){const o=t();return"function"==typeof e&&(i=e,e=void 0),"function"==typeof s&&(i=s,s=void 0),e||(e=this.languages),s||(s=this.options.ns),i||(i=U),this.services.backendConnector.reload(e,s,(e=>{o.resolve(),i(e)})),o}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&S.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}setResolvedLanguage(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1)){for(let e=0;e<this.languages.length;e++){const t=this.languages[e];if(!(["cimode","dev"].indexOf(t)>-1)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(s,i){this.isLanguageChangingTo=s;const o=t();this.emit("languageChanging",s);const n=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},a=(e,t)=>{t?this.isLanguageChangingTo===s&&(n(t),this.translator.changeLanguage(t),this.isLanguageChangingTo=void 0,this.emit("languageChanged",t),this.logger.log("languageChanged",t)):this.isLanguageChangingTo=void 0,o.resolve(((...e)=>this.t(...e))),i&&i(e,((...e)=>this.t(...e)))},r=t=>{s||t||!this.services.languageDetector||(t=[]);const i=e(t)?t:t&&t[0],o=this.store.hasLanguageSomeTranslations(i)?i:this.services.languageUtils.getBestMatchFromCodes(e(t)?[t]:t);o&&(this.language||n(o),this.translator.language||this.translator.changeLanguage(o),this.services.languageDetector?.cacheUserLanguage?.(o)),this.loadResources(o,(e=>{a(e,o)}))};return s||!this.services.languageDetector||this.services.languageDetector.async?!s&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(r):this.services.languageDetector.detect(r):r(s):r(this.services.languageDetector.detect()),o}getFixedT(t,s,i){const o=(e,t,...s)=>{let n;n="object"!=typeof t?this.options.overloadTranslationOptionHandler([e,t].concat(s)):{...t},n.lng=n.lng||o.lng,n.lngs=n.lngs||o.lngs,n.ns=n.ns||o.ns,""!==n.keyPrefix&&(n.keyPrefix=n.keyPrefix||i||o.keyPrefix);const a=this.options.keySeparator||".";let r;return r=n.keyPrefix&&Array.isArray(e)?e.map((e=>`${n.keyPrefix}${a}${e}`)):n.keyPrefix?`${n.keyPrefix}${a}${e}`:e,this.t(r,n)};return e(t)?o.lng=t:o.lngs=t,o.ns=s,o.keyPrefix=i,o}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const s=t.lng||this.resolvedLanguage||this.languages[0],i=!!this.options&&this.options.fallbackLng,o=this.languages[this.languages.length-1];if("cimode"===s.toLowerCase())return!0;const n=(e,t)=>{const s=this.services.backendConnector.state[`${e}|${t}`];return-1===s||0===s||2===s};if(t.precheck){const e=t.precheck(this,n);if(void 0!==e)return e}return!!this.hasResourceBundle(s,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!n(s,e)||i&&!n(o,e)))}loadNamespaces(s,i){const o=t();return this.options.ns?(e(s)&&(s=[s]),s.forEach((e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)})),this.loadResources((e=>{o.resolve(),i&&i(e)})),o):(i&&i(),Promise.resolve())}loadLanguages(s,i){const o=t();e(s)&&(s=[s]);const n=this.options.preload||[],a=s.filter((e=>n.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e)));return a.length?(this.options.preload=n.concat(a),this.loadResources((e=>{o.resolve(),i&&i(e)})),o):(i&&i(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return"rtl";try{const t=new Intl.Locale(e);if(t&&t.getTextInfo){const e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch(e){}const t=this.services?.languageUtils||new $(T());return e.toLowerCase().indexOf("-latn")>1?"ltr":["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(t.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(e={},t){return new A(e,t)}cloneInstance(e={},t=U){const s=e.forkResourceStore;s&&delete e.forkResourceStore;const i={...this.options,...e,isClone:!0},o=new A(i);void 0===e.debug&&void 0===e.prefix||(o.logger=o.logger.clone(e));if(["store","services","language"].forEach((e=>{o[e]=this[e]})),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},s){const e=Object.keys(this.store.data).reduce(((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce(((s,i)=>(s[i]={...e[t][i]},s)),e[t]),e)),{});o.store=new k(e,i),o.services.resourceStore=o.store}return o.translator=new w(o.services,i),o.translator.on("*",((e,...t)=>{o.emit(e,...t)})),o.init(i,t),o.translator.options=i,o.translator.backendConnector.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const M=A.createInstance();M.createInstance=A.createInstance,M.createInstance,M.dir,M.init,M.loadResources,M.reloadResources,M.use,M.changeLanguage,M.getFixedT,M.t,M.exists,M.setDefaultNamespace,M.hasLoadedNamespace,M.loadNamespaces,M.loadLanguages;export{M as default};
1
+ const e=e=>"string"==typeof e,t=()=>{let e,t;const s=new Promise(((s,i)=>{e=s,t=i}));return s.resolve=e,s.reject=t,s},s=e=>null==e?"":""+e,i=/###/g,o=e=>e&&e.indexOf("###")>-1?e.replace(i,"."):e,n=t=>!t||e(t),r=(t,s,i)=>{const r=e(s)?s.split("."):s;let a=0;for(;a<r.length-1;){if(n(t))return{};const e=o(r[a]);!t[e]&&i&&(t[e]=new i),t=Object.prototype.hasOwnProperty.call(t,e)?t[e]:{},++a}return n(t)?{}:{obj:t,k:o(r[a])}},a=(e,t,s)=>{const{obj:i,k:o}=r(e,t,Object);if(void 0!==i||1===t.length)return void(i[o]=s);let n=t[t.length-1],a=t.slice(0,t.length-1),l=r(e,a,Object);for(;void 0===l.obj&&a.length;)n=`${a[a.length-1]}.${n}`,a=a.slice(0,a.length-1),l=r(e,a,Object),l&&l.obj&&void 0!==l.obj[`${l.k}.${n}`]&&(l.obj=void 0);l.obj[`${l.k}.${n}`]=s},l=(e,t)=>{const{obj:s,k:i}=r(e,t);if(s)return s[i]},h=(t,s,i)=>{for(const o in s)"__proto__"!==o&&"constructor"!==o&&(o in t?e(t[o])||t[o]instanceof String||e(s[o])||s[o]instanceof String?i&&(t[o]=s[o]):h(t[o],s[o],i):t[o]=s[o]);return t},u=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var p={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};const c=t=>e(t)?t.replace(/[&<>"'\/]/g,(e=>p[e])):t;const g=[" ",",","?","!",";"],d=new class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(void 0!==t)return t;const s=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,s),this.regExpQueue.push(e),s}}(20),f=function(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(!e)return;if(e[t])return e[t];const i=t.split(s);let o=e;for(let e=0;e<i.length;){if(!o||"object"!=typeof o)return;let t,n="";for(let r=e;r<i.length;++r)if(r!==e&&(n+=s),n+=i[r],t=o[n],void 0!==t){if(["string","number","boolean"].indexOf(typeof t)>-1&&r<i.length-1)continue;e+=r-e+1;break}o=t}return o},m=e=>e&&e.replace("_","-"),y={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console&&console[e]&&console[e].apply(console,t)}};class v{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.init(e,t)}init(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||y,this.options=t,this.debug=t.debug}log(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return this.forward(t,"log","",!0)}warn(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return this.forward(t,"warn","",!0)}error(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return this.forward(t,"error","")}deprecate(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(t,s,i,o){return o&&!this.debug?null:(e(t[0])&&(t[0]=`${i}${this.prefix} ${t[0]}`),this.logger[s](t))}create(e){return new v(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return(e=e||this.options).prefix=e.prefix||this.prefix,new v(this.logger,e)}}var b=new v;class x{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach((e=>{this.observers[e]||(this.observers[e]=new Map);const s=this.observers[e].get(t)||0;this.observers[e].set(t,s+1)})),this}off(e,t){this.observers[e]&&(t?this.observers[e].delete(t):delete this.observers[e])}emit(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),i=1;i<t;i++)s[i-1]=arguments[i];if(this.observers[e]){Array.from(this.observers[e].entries()).forEach((e=>{let[t,i]=e;for(let e=0;e<i;e++)t(...s)}))}if(this.observers["*"]){Array.from(this.observers["*"].entries()).forEach((t=>{let[i,o]=t;for(let t=0;t<o;t++)i.apply(i,[e,...s])}))}}}class k extends x{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=e||{},this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),void 0===this.options.ignoreJSONStructure&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(t,s,i){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const n=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,r=void 0!==o.ignoreJSONStructure?o.ignoreJSONStructure:this.options.ignoreJSONStructure;let a;t.indexOf(".")>-1?a=t.split("."):(a=[t,s],i&&(Array.isArray(i)?a.push(...i):e(i)&&n?a.push(...i.split(n)):a.push(i)));const h=l(this.data,a);return!h&&!s&&!i&&t.indexOf(".")>-1&&(t=a[0],s=a[1],i=a.slice(2).join(".")),!h&&r&&e(i)?f(this.data&&this.data[t]&&this.data[t][s],i,n):h}addResource(e,t,s,i){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1};const n=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator;let r=[e,t];s&&(r=r.concat(n?s.split(n):s)),e.indexOf(".")>-1&&(r=e.split("."),i=t,t=r[1]),this.addNamespaces(t),a(this.data,r,i),o.silent||this.emit("added",e,t,s,i)}addResources(t,s,i){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(const o in i)(e(i[o])||Array.isArray(i[o]))&&this.addResource(t,s,o,i[o],{silent:!0});o.silent||this.emit("added",t,s,i)}addResourceBundle(e,t,s,i,o){let n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1,skipCopy:!1},r=[e,t];e.indexOf(".")>-1&&(r=e.split("."),i=s,s=t,t=r[1]),this.addNamespaces(t);let u=l(this.data,r)||{};n.skipCopy||(s=JSON.parse(JSON.stringify(s))),i?h(u,s,o):u={...u,...s},a(this.data,r,u),n.silent||this.emit("added",e,t,s)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return void 0!==this.getResource(e,t)}getResourceBundle(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?{...this.getResource(e,t)}:this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find((e=>t[e]&&Object.keys(t[e]).length>0))}toJSON(){return this.data}}var S={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,s,i,o){return e.forEach((e=>{this.processors[e]&&(t=this.processors[e].process(t,s,i,o))})),t}};const L={};class O extends x{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var s,i;super(),s=e,i=this,["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"].forEach((e=>{s[e]&&(i[e]=s[e])})),this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),this.logger=b.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(null==e)return!1;const s=this.resolve(e,t);return s&&void 0!==s.res}extractFromKey(t,s){let i=void 0!==s.nsSeparator?s.nsSeparator:this.options.nsSeparator;void 0===i&&(i=":");const o=void 0!==s.keySeparator?s.keySeparator:this.options.keySeparator;let n=s.ns||this.options.defaultNS||[];const r=i&&t.indexOf(i)>-1,a=!(this.options.userDefinedKeySeparator||s.keySeparator||this.options.userDefinedNsSeparator||s.nsSeparator||((e,t,s)=>{t=t||"",s=s||"";const i=g.filter((e=>t.indexOf(e)<0&&s.indexOf(e)<0));if(0===i.length)return!0;const o=d.getRegExp(`(${i.map((e=>"?"===e?"\\?":e)).join("|")})`);let n=!o.test(e);if(!n){const t=e.indexOf(s);t>0&&!o.test(e.substring(0,t))&&(n=!0)}return n})(t,i,o));if(r&&!a){const s=t.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:t,namespaces:e(n)?[n]:n};const r=t.split(i);(i!==o||i===o&&this.options.ns.indexOf(r[0])>-1)&&(n=r.shift()),t=r.join(o)}return{key:t,namespaces:e(n)?[n]:n}}translate(t,s,i){if("object"!=typeof s&&this.options.overloadTranslationOptionHandler&&(s=this.options.overloadTranslationOptionHandler(arguments)),"object"==typeof s&&(s={...s}),s||(s={}),null==t)return"";Array.isArray(t)||(t=[String(t)]);const o=void 0!==s.returnDetails?s.returnDetails:this.options.returnDetails,n=void 0!==s.keySeparator?s.keySeparator:this.options.keySeparator,{key:r,namespaces:a}=this.extractFromKey(t[t.length-1],s),l=a[a.length-1],h=s.lng||this.language,u=s.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(h&&"cimode"===h.toLowerCase()){if(u){const e=s.nsSeparator||this.options.nsSeparator;return o?{res:`${l}${e}${r}`,usedKey:r,exactUsedKey:r,usedLng:h,usedNS:l,usedParams:this.getUsedParamsDetails(s)}:`${l}${e}${r}`}return o?{res:r,usedKey:r,exactUsedKey:r,usedLng:h,usedNS:l,usedParams:this.getUsedParamsDetails(s)}:r}const p=this.resolve(t,s);let c=p&&p.res;const g=p&&p.usedKey||r,d=p&&p.exactUsedKey||r,f=Object.prototype.toString.apply(c),m=void 0!==s.joinArrays?s.joinArrays:this.options.joinArrays,y=!this.i18nFormat||this.i18nFormat.handleAsObject,v=!e(c)&&"boolean"!=typeof c&&"number"!=typeof c;if(!(y&&c&&v&&["[object Number]","[object Function]","[object RegExp]"].indexOf(f)<0)||e(m)&&Array.isArray(c))if(y&&e(m)&&Array.isArray(c))c=c.join(m),c&&(c=this.extendTranslation(c,t,s,i));else{let o=!1,a=!1;const u=void 0!==s.count&&!e(s.count),g=O.hasDefaultValue(s),d=u?this.pluralResolver.getSuffix(h,s.count,s):"",f=s.ordinal&&u?this.pluralResolver.getSuffix(h,s.count,{ordinal:!1}):"",m=u&&!s.ordinal&&0===s.count&&this.pluralResolver.shouldUseIntlApi(),y=m&&s[`defaultValue${this.options.pluralSeparator}zero`]||s[`defaultValue${d}`]||s[`defaultValue${f}`]||s.defaultValue;!this.isValidLookup(c)&&g&&(o=!0,c=y),this.isValidLookup(c)||(a=!0,c=r);const v=(s.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&a?void 0:c,b=g&&y!==c&&this.options.updateMissing;if(a||o||b){if(this.logger.log(b?"updateKey":"missingKey",h,l,r,b?y:c),n){const e=this.resolve(r,{...s,keySeparator:!1});e&&e.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let e=[];const t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,s.lng||this.language);if("fallback"===this.options.saveMissingTo&&t&&t[0])for(let s=0;s<t.length;s++)e.push(t[s]);else"all"===this.options.saveMissingTo?e=this.languageUtils.toResolveHierarchy(s.lng||this.language):e.push(s.lng||this.language);const i=(e,t,i)=>{const o=g&&i!==c?i:v;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,o,b,s):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(e,l,t,o,b,s),this.emit("missingKey",e,l,t,c)};this.options.saveMissing&&(this.options.saveMissingPlurals&&u?e.forEach((e=>{const t=this.pluralResolver.getSuffixes(e,s);m&&s[`defaultValue${this.options.pluralSeparator}zero`]&&t.indexOf(`${this.options.pluralSeparator}zero`)<0&&t.push(`${this.options.pluralSeparator}zero`),t.forEach((t=>{i([e],r+t,s[`defaultValue${t}`]||y)}))})):i(e,r,y))}c=this.extendTranslation(c,t,s,p,i),a&&c===r&&this.options.appendNamespaceToMissingKey&&(c=`${l}:${r}`),(a||o)&&this.options.parseMissingKeyHandler&&(c="v1"!==this.options.compatibilityAPI?this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${r}`:r,o?c:void 0):this.options.parseMissingKeyHandler(c))}else{if(!s.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,c,{...s,ns:a}):`key '${r} (${this.language})' returned an object instead of string.`;return o?(p.res=e,p.usedParams=this.getUsedParamsDetails(s),p):e}if(n){const e=Array.isArray(c),t=e?[]:{},i=e?d:g;for(const e in c)if(Object.prototype.hasOwnProperty.call(c,e)){const o=`${i}${n}${e}`;t[e]=this.translate(o,{...s,joinArrays:!1,ns:a}),t[e]===o&&(t[e]=c[e])}c=t}}return o?(p.res=c,p.usedParams=this.getUsedParamsDetails(s),p):c}extendTranslation(t,s,i,o,n){var r=this;if(this.i18nFormat&&this.i18nFormat.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...i},i.lng||this.language||o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!i.skipInterpolation){i.interpolation&&this.interpolator.init({...i,interpolation:{...this.options.interpolation,...i.interpolation}});const a=e(t)&&(i&&i.interpolation&&void 0!==i.interpolation.skipOnVariables?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let l;if(a){const e=t.match(this.interpolator.nestingRegexp);l=e&&e.length}let h=i.replace&&!e(i.replace)?i.replace:i;if(this.options.interpolation.defaultVariables&&(h={...this.options.interpolation.defaultVariables,...h}),t=this.interpolator.interpolate(t,h,i.lng||this.language||o.usedLng,i),a){const e=t.match(this.interpolator.nestingRegexp);l<(e&&e.length)&&(i.nest=!1)}!i.lng&&"v1"!==this.options.compatibilityAPI&&o&&o.res&&(i.lng=this.language||o.usedLng),!1!==i.nest&&(t=this.interpolator.nest(t,(function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return n&&n[0]===t[0]&&!i.context?(r.logger.warn(`It seems you are nesting recursively key: ${t[0]} in key: ${s[0]}`),null):r.translate(...t,s)}),i)),i.interpolation&&this.interpolator.reset()}const a=i.postProcess||this.options.postProcess,l=e(a)?[a]:a;return null!=t&&l&&l.length&&!1!==i.applyPostProcessor&&(t=S.handle(l,t,s,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...o,usedParams:this.getUsedParamsDetails(i)},...i}:i,this)),t}resolve(t){let s,i,o,n,r,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e(t)&&(t=[t]),t.forEach((t=>{if(this.isValidLookup(s))return;const l=this.extractFromKey(t,a),h=l.key;i=h;let u=l.namespaces;this.options.fallbackNS&&(u=u.concat(this.options.fallbackNS));const p=void 0!==a.count&&!e(a.count),c=p&&!a.ordinal&&0===a.count&&this.pluralResolver.shouldUseIntlApi(),g=void 0!==a.context&&(e(a.context)||"number"==typeof a.context)&&""!==a.context,d=a.lngs?a.lngs:this.languageUtils.toResolveHierarchy(a.lng||this.language,a.fallbackLng);u.forEach((e=>{this.isValidLookup(s)||(r=e,!L[`${d[0]}-${e}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(r)&&(L[`${d[0]}-${e}`]=!0,this.logger.warn(`key "${i}" for languages "${d.join(", ")}" won't get resolved as namespace "${r}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),d.forEach((t=>{if(this.isValidLookup(s))return;n=t;const i=[h];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(i,h,t,e,a);else{let e;p&&(e=this.pluralResolver.getSuffix(t,a.count,a));const s=`${this.options.pluralSeparator}zero`,o=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(p&&(i.push(h+e),a.ordinal&&0===e.indexOf(o)&&i.push(h+e.replace(o,this.options.pluralSeparator)),c&&i.push(h+s)),g){const t=`${h}${this.options.contextSeparator}${a.context}`;i.push(t),p&&(i.push(t+e),a.ordinal&&0===e.indexOf(o)&&i.push(t+e.replace(o,this.options.pluralSeparator)),c&&i.push(t+s))}}let r;for(;r=i.pop();)this.isValidLookup(s)||(o=r,s=this.getResource(t,e,r,a))})))}))})),{res:s,usedKey:i,exactUsedKey:o,usedLng:n,usedNS:r}}isValidLookup(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}getResource(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,s,i):this.resourceStore.getResource(e,t,s,i)}getUsedParamsDetails(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const s=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],i=t.replace&&!e(t.replace);let o=i?t.replace:t;if(i&&void 0!==t.count&&(o.count=t.count),this.options.interpolation.defaultVariables&&(o={...this.options.interpolation.defaultVariables,...o}),!i){o={...o};for(const e of s)delete o[e]}return o}static hasDefaultValue(e){const t="defaultValue";for(const s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&t===s.substring(0,12)&&void 0!==e[s])return!0;return!1}}const w=e=>e.charAt(0).toUpperCase()+e.slice(1);class N{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=b.create("languageUtils")}getScriptPartFromCode(e){if(!(e=m(e))||e.indexOf("-")<0)return null;const t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}getLanguagePartFromCode(e){if(!(e=m(e))||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(t){if(e(t)&&t.indexOf("-")>-1){if("undefined"!=typeof Intl&&void 0!==Intl.getCanonicalLocales)try{let e=Intl.getCanonicalLocales(t)[0];if(e&&this.options.lowerCaseLng&&(e=e.toLowerCase()),e)return e}catch(e){}const e=["hans","hant","latn","cyrl","cans","mong","arab"];let s=t.split("-");return this.options.lowerCaseLng?s=s.map((e=>e.toLowerCase())):2===s.length?(s[0]=s[0].toLowerCase(),s[1]=s[1].toUpperCase(),e.indexOf(s[1].toLowerCase())>-1&&(s[1]=w(s[1].toLowerCase()))):3===s.length&&(s[0]=s[0].toLowerCase(),2===s[1].length&&(s[1]=s[1].toUpperCase()),"sgn"!==s[0]&&2===s[2].length&&(s[2]=s[2].toUpperCase()),e.indexOf(s[1].toLowerCase())>-1&&(s[1]=w(s[1].toLowerCase())),e.indexOf(s[2].toLowerCase())>-1&&(s[2]=w(s[2].toLowerCase()))),s.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach((e=>{if(t)return;const s=this.formatLanguageCode(e);this.options.supportedLngs&&!this.isSupportedCode(s)||(t=s)})),!t&&this.options.supportedLngs&&e.forEach((e=>{if(t)return;const s=this.getLanguagePartFromCode(e);if(this.isSupportedCode(s))return t=s;t=this.options.supportedLngs.find((e=>e===s?e:e.indexOf("-")<0&&s.indexOf("-")<0?void 0:e.indexOf("-")>0&&s.indexOf("-")<0&&e.substring(0,e.indexOf("-"))===s||0===e.indexOf(s)&&s.length>1?e:void 0))})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(t,s){if(!t)return[];if("function"==typeof t&&(t=t(s)),e(t)&&(t=[t]),Array.isArray(t))return t;if(!s)return t.default||[];let i=t[s];return i||(i=t[this.getScriptPartFromCode(s)]),i||(i=t[this.formatLanguageCode(s)]),i||(i=t[this.getLanguagePartFromCode(s)]),i||(i=t.default),i||[]}toResolveHierarchy(t,s){const i=this.getFallbackCodes(s||this.options.fallbackLng||[],t),o=[],n=e=>{e&&(this.isSupportedCode(e)?o.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return e(t)&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?("languageOnly"!==this.options.load&&n(this.formatLanguageCode(t)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&n(this.getScriptPartFromCode(t)),"currentOnly"!==this.options.load&&n(this.getLanguagePartFromCode(t))):e(t)&&n(this.formatLanguageCode(t)),i.forEach((e=>{o.indexOf(e)<0&&n(this.formatLanguageCode(e))})),o}}let R=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],C={1:e=>Number(e>1),2:e=>Number(1!=e),3:e=>0,4:e=>Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2),5:e=>Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5),6:e=>Number(1==e?0:e>=2&&e<=4?1:2),7:e=>Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2),8:e=>Number(1==e?0:2==e?1:8!=e&&11!=e?2:3),9:e=>Number(e>=2),10:e=>Number(1==e?0:2==e?1:e<7?2:e<11?3:4),11:e=>Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3),12:e=>Number(e%10!=1||e%100==11),13:e=>Number(0!==e),14:e=>Number(1==e?0:2==e?1:3==e?2:3),15:e=>Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2),16:e=>Number(e%10==1&&e%100!=11?0:0!==e?1:2),17:e=>Number(1==e||e%10==1&&e%100!=11?0:1),18:e=>Number(0==e?0:1==e?1:2),19:e=>Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3),20:e=>Number(1==e?0:0==e||e%100>0&&e%100<20?1:2),21:e=>Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0),22:e=>Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)};const $=["v1","v2","v3"],P=["v4"],j={zero:0,one:1,two:2,few:3,many:4,other:5};class E{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=b.create("pluralResolver"),this.options.compatibilityJSON&&!P.includes(this.options.compatibilityJSON)||"undefined"!=typeof Intl&&Intl.PluralRules||(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=(()=>{const e={};return R.forEach((t=>{t.lngs.forEach((s=>{e[s]={numbers:t.nr,plurals:C[t.fc]}}))})),e})(),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.shouldUseIntlApi()){const s=m("dev"===e?"en":e),i=t.ordinal?"ordinal":"cardinal",o=JSON.stringify({cleanedCode:s,type:i});if(o in this.pluralRulesCache)return this.pluralRulesCache[o];let n;try{n=new Intl.PluralRules(s,{type:i})}catch(s){if(!e.match(/-|_/))return;const i=this.languageUtils.getLanguagePartFromCode(e);n=this.getRule(i,t)}return this.pluralRulesCache[o]=n,n}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}needsPlural(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=this.getRule(e,t);return this.shouldUseIntlApi()?s&&s.resolvedOptions().pluralCategories.length>1:s&&s.numbers.length>1}getPluralFormsOfKey(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.getSuffixes(e,s).map((e=>`${t}${e}`))}getSuffixes(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=this.getRule(e,t);return s?this.shouldUseIntlApi()?s.resolvedOptions().pluralCategories.sort(((e,t)=>j[e]-j[t])).map((e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${e}`)):s.numbers.map((s=>this.getSuffix(e,s,t))):[]}getSuffix(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=this.getRule(e,s);return i?this.shouldUseIntlApi()?`${this.options.prepend}${s.ordinal?`ordinal${this.options.prepend}`:""}${i.select(t)}`:this.getSuffixRetroCompatible(i,t):(this.logger.warn(`no plural rule found for: ${e}`),"")}getSuffixRetroCompatible(e,t){const s=e.noAbs?e.plurals(t):e.plurals(Math.abs(t));let i=e.numbers[s];this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]&&(2===i?i="plural":1===i&&(i=""));const o=()=>this.options.prepend&&i.toString()?this.options.prepend+i.toString():i.toString();return"v1"===this.options.compatibilityJSON?1===i?"":"number"==typeof i?`_plural_${i.toString()}`:o():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===e.numbers.length&&1===e.numbers[0]?o():this.options.prepend&&s.toString()?this.options.prepend+s.toString():s.toString()}shouldUseIntlApi(){return!$.includes(this.options.compatibilityJSON)}}const I=function(t,s,i){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:".",n=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=((e,t,s)=>{const i=l(e,s);return void 0!==i?i:l(t,s)})(t,s,i);return!r&&n&&e(i)&&(r=f(t,i,o),void 0===r&&(r=f(s,i,o))),r},F=e=>e.replace(/\$/g,"$$$$");class A{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.logger=b.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||(e=>e),this.init(e)}init(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:s,useRawValueToEscape:i,prefix:o,prefixEscaped:n,suffix:r,suffixEscaped:a,formatSeparator:l,unescapeSuffix:h,unescapePrefix:p,nestingPrefix:g,nestingPrefixEscaped:d,nestingSuffix:f,nestingSuffixEscaped:m,nestingOptionsSeparator:y,maxReplaces:v,alwaysFormat:b}=e.interpolation;this.escape=void 0!==t?t:c,this.escapeValue=void 0===s||s,this.useRawValueToEscape=void 0!==i&&i,this.prefix=o?u(o):n||"{{",this.suffix=r?u(r):a||"}}",this.formatSeparator=l||",",this.unescapePrefix=h?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":h||"",this.nestingPrefix=g?u(g):d||u("$t("),this.nestingSuffix=f?u(f):m||u(")"),this.nestingOptionsSeparator=y||",",this.maxReplaces=v||1e3,this.alwaysFormat=void 0!==b&&b,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(e,t)=>e&&e.source===t?(e.lastIndex=0,e):new RegExp(t,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,i,o,n){let r,a,l;const h=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=e=>{if(e.indexOf(this.formatSeparator)<0){const t=I(i,h,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(t,void 0,o,{...n,...i,interpolationkey:e}):t}const t=e.split(this.formatSeparator),s=t.shift().trim(),r=t.join(this.formatSeparator).trim();return this.format(I(i,h,s,this.options.keySeparator,this.options.ignoreJSONStructure),r,o,{...n,...i,interpolationkey:s})};this.resetRegExp();const p=n&&n.missingInterpolationHandler||this.options.missingInterpolationHandler,c=n&&n.interpolation&&void 0!==n.interpolation.skipOnVariables?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>F(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?F(this.escape(e)):F(e)}].forEach((i=>{for(l=0;r=i.regex.exec(t);){const o=r[1].trim();if(a=u(o),void 0===a)if("function"==typeof p){const s=p(t,r,n);a=e(s)?s:""}else if(n&&Object.prototype.hasOwnProperty.call(n,o))a="";else{if(c){a=r[0];continue}this.logger.warn(`missed to pass in variable ${o} for interpolating ${t}`),a=""}else e(a)||this.useRawValueToEscape||(a=s(a));const h=i.safeValue(a);if(t=t.replace(r[0],h),c?(i.regex.lastIndex+=a.length,i.regex.lastIndex-=r[0].length):i.regex.lastIndex=0,l++,l>=this.maxReplaces)break}})),t}nest(t,i){let o,n,r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const l=(e,t)=>{const s=this.nestingOptionsSeparator;if(e.indexOf(s)<0)return e;const i=e.split(new RegExp(`${s}[ ]*{`));let o=`{${i[1]}`;e=i[0],o=this.interpolate(o,r);const n=o.match(/'/g),a=o.match(/"/g);(n&&n.length%2==0&&!a||a.length%2!=0)&&(o=o.replace(/'/g,'"'));try{r=JSON.parse(o),t&&(r={...t,...r})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${s}${o}`}return r.defaultValue&&r.defaultValue.indexOf(this.prefix)>-1&&delete r.defaultValue,e};for(;o=this.nestingRegexp.exec(t);){let h=[];r={...a},r=r.replace&&!e(r.replace)?r.replace:r,r.applyPostProcessor=!1,delete r.defaultValue;let u=!1;if(-1!==o[0].indexOf(this.formatSeparator)&&!/{.*}/.test(o[1])){const e=o[1].split(this.formatSeparator).map((e=>e.trim()));o[1]=e.shift(),h=e,u=!0}if(n=i(l.call(this,o[1].trim(),r),r),n&&o[0]===t&&!e(n))return n;e(n)||(n=s(n)),n||(this.logger.warn(`missed to resolve ${o[1]} for nesting ${t}`),n=""),u&&(n=h.reduce(((e,t)=>this.format(e,t,a.lng,{...a,interpolationkey:o[1].trim()})),n.trim())),t=t.replace(o[0],n),this.regexp.lastIndex=0}return t}}const V=e=>{const t={};return(s,i,o)=>{let n=o;o&&o.interpolationkey&&o.formatParams&&o.formatParams[o.interpolationkey]&&o[o.interpolationkey]&&(n={...n,[o.interpolationkey]:void 0});const r=i+JSON.stringify(n);let a=t[r];return a||(a=e(m(i),o),t[r]=a),a(s)}};class D{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.logger=b.create("formatter"),this.options=e,this.formats={number:V(((e,t)=>{const s=new Intl.NumberFormat(e,{...t});return e=>s.format(e)})),currency:V(((e,t)=>{const s=new Intl.NumberFormat(e,{...t,style:"currency"});return e=>s.format(e)})),datetime:V(((e,t)=>{const s=new Intl.DateTimeFormat(e,{...t});return e=>s.format(e)})),relativetime:V(((e,t)=>{const s=new Intl.RelativeTimeFormat(e,{...t});return e=>s.format(e,t.range||"day")})),list:V(((e,t)=>{const s=new Intl.ListFormat(e,{...t});return e=>s.format(e)}))},this.init(e)}init(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};this.formatSeparator=t.interpolation.formatSeparator||","}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=V(t)}format(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const o=t.split(this.formatSeparator);if(o.length>1&&o[0].indexOf("(")>1&&o[0].indexOf(")")<0&&o.find((e=>e.indexOf(")")>-1))){const e=o.findIndex((e=>e.indexOf(")")>-1));o[0]=[o[0],...o.splice(1,e)].join(this.formatSeparator)}return o.reduce(((e,t)=>{const{formatName:o,formatOptions:n}=(e=>{let t=e.toLowerCase().trim();const s={};if(e.indexOf("(")>-1){const i=e.split("(");t=i[0].toLowerCase().trim();const o=i[1].substring(0,i[1].length-1);"currency"===t&&o.indexOf(":")<0?s.currency||(s.currency=o.trim()):"relativetime"===t&&o.indexOf(":")<0?s.range||(s.range=o.trim()):o.split(";").forEach((e=>{if(e){const[t,...i]=e.split(":"),o=i.join(":").trim().replace(/^'+|'+$/g,""),n=t.trim();s[n]||(s[n]=o),"false"===o&&(s[n]=!1),"true"===o&&(s[n]=!0),isNaN(o)||(s[n]=parseInt(o,10))}}))}return{formatName:t,formatOptions:s}})(t);if(this.formats[o]){let t=e;try{const r=i&&i.formatParams&&i.formatParams[i.interpolationkey]||{},a=r.locale||r.lng||i.locale||i.lng||s;t=this.formats[o](e,a,{...n,...i,...r})}catch(e){this.logger.warn(e)}return t}return this.logger.warn(`there was no format function for ${o}`),e}),e)}}class U extends x{constructor(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};super(),this.backend=e,this.store=t,this.services=s,this.languageUtils=s.languageUtils,this.options=i,this.logger=b.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(s,i.backend,i)}queueLoad(e,t,s,i){const o={},n={},r={},a={};return e.forEach((e=>{let i=!0;t.forEach((t=>{const r=`${e}|${t}`;!s.reload&&this.store.hasResourceBundle(e,t)?this.state[r]=2:this.state[r]<0||(1===this.state[r]?void 0===n[r]&&(n[r]=!0):(this.state[r]=1,i=!1,void 0===n[r]&&(n[r]=!0),void 0===o[r]&&(o[r]=!0),void 0===a[t]&&(a[t]=!0)))})),i||(r[e]=!0)})),(Object.keys(o).length||Object.keys(n).length)&&this.queue.push({pending:n,pendingCount:Object.keys(n).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(o),pending:Object.keys(n),toLoadLanguages:Object.keys(r),toLoadNamespaces:Object.keys(a)}}loaded(e,t,s){const i=e.split("|"),o=i[0],n=i[1];t&&this.emit("failedLoading",o,n,t),!t&&s&&this.store.addResourceBundle(o,n,s,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&s&&(this.state[e]=0);const a={};this.queue.forEach((s=>{((e,t,s)=>{const{obj:i,k:o}=r(e,t,Object);i[o]=i[o]||[],i[o].push(s)})(s.loaded,[o],n),((e,t)=>{void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)})(s,e),t&&s.errors.push(t),0!==s.pendingCount||s.done||(Object.keys(s.loaded).forEach((e=>{a[e]||(a[e]={});const t=s.loaded[e];t.length&&t.forEach((t=>{void 0===a[e][t]&&(a[e][t]=!0)}))})),s.done=!0,s.errors.length?s.callback(s.errors):s.callback())})),this.emit("loaded",a),this.queue=this.queue.filter((e=>!e.done))}read(e,t,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.retryTimeout,n=arguments.length>5?arguments[5]:void 0;if(!e.length)return n(null,{});if(this.readingCalls>=this.maxParallelReads)return void this.waitingReads.push({lng:e,ns:t,fcName:s,tried:i,wait:o,callback:n});this.readingCalls++;const r=(r,a)=>{if(this.readingCalls--,this.waitingReads.length>0){const e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}r&&a&&i<this.maxRetries?setTimeout((()=>{this.read.call(this,e,t,s,i+1,2*o,n)}),o):n(r,a)},a=this.backend[s].bind(this.backend);if(2!==a.length)return a(e,t,r);try{const s=a(e,t);s&&"function"==typeof s.then?s.then((e=>r(null,e))).catch(r):r(null,s)}catch(e){r(e)}}prepareLoading(t,s){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();e(t)&&(t=this.languageUtils.toResolveHierarchy(t)),e(s)&&(s=[s]);const n=this.queueLoad(t,s,i,o);if(!n.toLoad.length)return n.pending.length||o(),null;n.toLoad.forEach((e=>{this.loadOne(e)}))}load(e,t,s){this.prepareLoading(e,t,{},s)}reload(e,t,s){this.prepareLoading(e,t,{reload:!0},s)}loadOne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";const s=e.split("|"),i=s[0],o=s[1];this.read(i,o,"read",void 0,void 0,((s,n)=>{s&&this.logger.warn(`${t}loading namespace ${o} for language ${i} failed`,s),!s&&n&&this.logger.log(`${t}loaded namespace ${o} for language ${i}`,n),this.loaded(e,s,n)}))}saveMissing(e,t,s,i,o){let n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t))this.logger.warn(`did not save key "${s}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");else if(null!=s&&""!==s){if(this.backend&&this.backend.create){const a={...n,isUpdate:o},l=this.backend.create.bind(this.backend);if(l.length<6)try{let o;o=5===l.length?l(e,t,s,i,a):l(e,t,s,i),o&&"function"==typeof o.then?o.then((e=>r(null,e))).catch(r):r(null,o)}catch(e){r(e)}else l(e,t,s,i,r,a)}e&&e[0]&&this.store.addResource(e[0],t,s,i)}}}const T=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:t=>{let s={};if("object"==typeof t[1]&&(s=t[1]),e(t[1])&&(s.defaultValue=t[1]),e(t[2])&&(s.tDescription=t[2]),"object"==typeof t[2]||"object"==typeof t[3]){const e=t[3]||t[2];Object.keys(e).forEach((t=>{s[t]=e[t]}))}return s},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),K=t=>(e(t.ns)&&(t.ns=[t.ns]),e(t.fallbackLng)&&(t.fallbackLng=[t.fallbackLng]),e(t.fallbackNS)&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs&&t.supportedLngs.indexOf("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),t),M=()=>{};class z extends x{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;var s;if(super(),this.options=K(e),this.services={},this.logger=b,this.modules={external:[]},s=this,Object.getOwnPropertyNames(Object.getPrototypeOf(s)).forEach((e=>{"function"==typeof s[e]&&(s[e]=s[e].bind(s))})),t&&!this.isInitialized&&!e.isClone){if(!this.options.initImmediate)return this.init(e,t),this;setTimeout((()=>{this.init(e,t)}),0)}}init(){var s=this;let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,"function"==typeof i&&(o=i,i={}),!i.defaultNS&&!1!==i.defaultNS&&i.ns&&(e(i.ns)?i.defaultNS=i.ns:i.ns.indexOf("translation")<0&&(i.defaultNS=i.ns[0]));const n=T();this.options={...n,...this.options,...K(i)},"v1"!==this.options.compatibilityAPI&&(this.options.interpolation={...n.interpolation,...this.options.interpolation}),void 0!==i.keySeparator&&(this.options.userDefinedKeySeparator=i.keySeparator),void 0!==i.nsSeparator&&(this.options.userDefinedNsSeparator=i.nsSeparator);const r=e=>e?"function"==typeof e?new e:e:null;if(!this.options.isClone){let e;this.modules.logger?b.init(r(this.modules.logger),this.options):b.init(null,this.options),this.modules.formatter?e=this.modules.formatter:"undefined"!=typeof Intl&&(e=D);const t=new N(this.options);this.store=new k(this.options.resources,this.options);const i=this.services;i.logger=b,i.resourceStore=this.store,i.languageUtils=t,i.pluralResolver=new E(t,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),!e||this.options.interpolation.format&&this.options.interpolation.format!==n.interpolation.format||(i.formatter=r(e),i.formatter.init(i,this.options),this.options.interpolation.format=i.formatter.format.bind(i.formatter)),i.interpolator=new A(this.options),i.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},i.backendConnector=new U(r(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on("*",(function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];s.emit(e,...i)})),this.modules.languageDetector&&(i.languageDetector=r(this.modules.languageDetector),i.languageDetector.init&&i.languageDetector.init(i,this.options.detection,this.options)),this.modules.i18nFormat&&(i.i18nFormat=r(this.modules.i18nFormat),i.i18nFormat.init&&i.i18nFormat.init(this)),this.translator=new O(this.services,this.options),this.translator.on("*",(function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];s.emit(e,...i)})),this.modules.external.forEach((e=>{e.init&&e.init(this)}))}if(this.format=this.options.interpolation.format,o||(o=M),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&"dev"!==e[0]&&(this.options.lng=e[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach((e=>{this[e]=function(){return s.store[e](...arguments)}}));["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach((e=>{this[e]=function(){return s.store[e](...arguments),s}}));const a=t(),l=()=>{const e=(e,t)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),a.resolve(t),o(e,t)};if(this.languages&&"v1"!==this.options.compatibilityAPI&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initImmediate?l():setTimeout(l,0),a}loadResources(t){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:M;const i=e(t)?t:this.language;if("function"==typeof t&&(s=t),!this.options.resources||this.options.partialBundledLanguages){if(i&&"cimode"===i.toLowerCase()&&(!this.options.preload||0===this.options.preload.length))return s();const e=[],t=t=>{if(!t)return;if("cimode"===t)return;this.services.languageUtils.toResolveHierarchy(t).forEach((t=>{"cimode"!==t&&e.indexOf(t)<0&&e.push(t)}))};if(i)t(i);else{this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((e=>t(e)))}this.options.preload&&this.options.preload.forEach((e=>t(e))),this.services.backendConnector.load(e,this.options.ns,(e=>{e||this.resolvedLanguage||!this.language||this.setResolvedLanguage(this.language),s(e)}))}else s(null)}reloadResources(e,s,i){const o=t();return"function"==typeof e&&(i=e,e=void 0),"function"==typeof s&&(i=s,s=void 0),e||(e=this.languages),s||(s=this.options.ns),i||(i=M),this.services.backendConnector.reload(e,s,(e=>{o.resolve(),i(e)})),o}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&S.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}setResolvedLanguage(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1))for(let e=0;e<this.languages.length;e++){const t=this.languages[e];if(!(["cimode","dev"].indexOf(t)>-1)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}}changeLanguage(s,i){var o=this;this.isLanguageChangingTo=s;const n=t();this.emit("languageChanging",s);const r=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},a=(e,t)=>{t?(r(t),this.translator.changeLanguage(t),this.isLanguageChangingTo=void 0,this.emit("languageChanged",t),this.logger.log("languageChanged",t)):this.isLanguageChangingTo=void 0,n.resolve((function(){return o.t(...arguments)})),i&&i(e,(function(){return o.t(...arguments)}))},l=t=>{s||t||!this.services.languageDetector||(t=[]);const i=e(t)?t:this.services.languageUtils.getBestMatchFromCodes(t);i&&(this.language||r(i),this.translator.language||this.translator.changeLanguage(i),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(i)),this.loadResources(i,(e=>{a(e,i)}))};return s||!this.services.languageDetector||this.services.languageDetector.async?!s&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(l):this.services.languageDetector.detect(l):l(s):l(this.services.languageDetector.detect()),n}getFixedT(t,s,i){var o=this;const n=function(e,t){let s;if("object"!=typeof t){for(var r=arguments.length,a=new Array(r>2?r-2:0),l=2;l<r;l++)a[l-2]=arguments[l];s=o.options.overloadTranslationOptionHandler([e,t].concat(a))}else s={...t};s.lng=s.lng||n.lng,s.lngs=s.lngs||n.lngs,s.ns=s.ns||n.ns,""!==s.keyPrefix&&(s.keyPrefix=s.keyPrefix||i||n.keyPrefix);const h=o.options.keySeparator||".";let u;return u=s.keyPrefix&&Array.isArray(e)?e.map((e=>`${s.keyPrefix}${h}${e}`)):s.keyPrefix?`${s.keyPrefix}${h}${e}`:e,o.t(u,s)};return e(t)?n.lng=t:n.lngs=t,n.ns=s,n.keyPrefix=i,n}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const s=t.lng||this.resolvedLanguage||this.languages[0],i=!!this.options&&this.options.fallbackLng,o=this.languages[this.languages.length-1];if("cimode"===s.toLowerCase())return!0;const n=(e,t)=>{const s=this.services.backendConnector.state[`${e}|${t}`];return-1===s||0===s||2===s};if(t.precheck){const e=t.precheck(this,n);if(void 0!==e)return e}return!!this.hasResourceBundle(s,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!n(s,e)||i&&!n(o,e)))}loadNamespaces(s,i){const o=t();return this.options.ns?(e(s)&&(s=[s]),s.forEach((e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)})),this.loadResources((e=>{o.resolve(),i&&i(e)})),o):(i&&i(),Promise.resolve())}loadLanguages(s,i){const o=t();e(s)&&(s=[s]);const n=this.options.preload||[],r=s.filter((e=>n.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e)));return r.length?(this.options.preload=n.concat(r),this.loadResources((e=>{o.resolve(),i&&i(e)})),o):(i&&i(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";const t=this.services&&this.services.languageUtils||new N(T());return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(t.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){return new z(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}cloneInstance(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:M;const s=e.forkResourceStore;s&&delete e.forkResourceStore;const i={...this.options,...e,isClone:!0},o=new z(i);void 0===e.debug&&void 0===e.prefix||(o.logger=o.logger.clone(e));return["store","services","language"].forEach((e=>{o[e]=this[e]})),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},s&&(o.store=new k(this.store.data,i),o.services.resourceStore=o.store),o.translator=new O(o.services,i),o.translator.on("*",(function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),i=1;i<t;i++)s[i-1]=arguments[i];o.emit(e,...s)})),o.init(i,t),o.translator.options=i,o.translator.backendConnector.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const H=z.createInstance();H.createInstance=z.createInstance,H.createInstance,H.dir,H.init,H.loadResources,H.reloadResources,H.use,H.changeLanguage,H.getFixedT,H.t,H.exists,H.setDefaultNamespace,H.hasLoadedNamespace,H.loadNamespaces,H.loadLanguages;export{H as default};
@@ -1 +1 @@
1
- import{createContext as s}from"react";const e=s();class a{constructor(){this.usedNamespaces={}}addUsedNamespaces(s){s.forEach((s=>{this.usedNamespaces[s]||(this.usedNamespaces[s]=!0)}))}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}export{e as I18nContext,a as ReportNamespaces};
1
+ import e from"../../../@babel/runtime/helpers/esm/classCallCheck.js";import s from"../../../@babel/runtime/helpers/esm/createClass.js";import{createContext as a}from"react";var t=a(),r=function(){function a(){e(this,a),this.usedNamespaces={}}return s(a,[{key:"addUsedNamespaces",value:function(e){var s=this;e.forEach((function(e){s.usedNamespaces[e]||(s.usedNamespaces[e]=!0)}))}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]),a}();export{t as I18nContext,r as ReportNamespaces};
@@ -1 +1 @@
1
- import{unescape as e}from"./unescape.js";let s={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:e};const n=(e={})=>{s={...s,...e}},t=()=>s;export{t as getDefaults,n as setDefaults};
1
+ import e from"../../../@babel/runtime/helpers/esm/defineProperty.js";import{unescape as r}from"./unescape.js";function t(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function n(r){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?t(Object(o),!0).forEach((function(t){e(r,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):t(Object(o)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}))}return r}var o={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:r};function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o=n(n({},o),e)}function p(){return o}export{p as getDefaults,s as setDefaults};
@@ -1 +1 @@
1
- let t;const e=e=>{t=e},o=()=>t;export{o as getI18n,e as setI18n};
1
+ var n;function r(r){n=r}function t(){return n}export{t as getI18n,r as setI18n};
@@ -1 +1 @@
1
- import{setDefaults as t}from"./defaults.js";import{setI18n as o}from"./i18nInstance.js";const r={type:"3rdParty",init(r){t(r.options.react),o(r)}};export{r as initReactI18next};
1
+ import{setDefaults as t}from"./defaults.js";import{setI18n as r}from"./i18nInstance.js";var o={type:"3rdParty",init:function(o){t(o.options.react),r(o)}};export{o as initReactI18next};
@@ -1 +1 @@
1
- const p=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,o={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},t=p=>o[p],e=o=>o.replace(p,t);export{e as unescape};
1
+ var p=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,t={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},e=function(p){return t[p]},o=function(t){return t.replace(p,e)};export{o as unescape};
@@ -1 +1 @@
1
- import{useContext as e,useState as t,useRef as n,useEffect as r,useCallback as o}from"react";import{I18nContext as s,ReportNamespaces as i}from"./context.js";import{warnOnce as a,hasLoadedNamespace as l,loadLanguages as u,loadNamespaces as c,isString as f,isObject as p}from"./utils.js";import{getDefaults as d}from"./defaults.js";import{getI18n as m}from"./i18nInstance.js";const g=(e,t,n,r)=>e.getFixedT(t,n,r),N=(N,y={})=>{const{i18n:I}=y,{i18n:h,defaultNS:w}=e(s)||{},E=I||h||m();if(E&&!E.reportNamespaces&&(E.reportNamespaces=new i),!E){a(E,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const e=(e,t)=>f(t)?t:p(t)&&f(t.defaultValue)?t.defaultValue:Array.isArray(e)?e[e.length-1]:e,t=[e,{},!1];return t.t=e,t.i18n={},t.ready=!1,t}E.options.react?.wait&&a(E,"DEPRECATED_OPTION","useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const S={...d(),...E.options.react,...y},{useSuspense:T,keyPrefix:b}=S;let x=N||w||E.options?.defaultNS;x=f(x)?[x]:x||["translation"],E.reportNamespaces.addUsedNamespaces?.(x);const j=(E.isInitialized||E.initializedStoreOnce)&&x.every((e=>l(e,E,S))),A=((e,t,n,r)=>o(g(e,t,n,r),[e,t,n,r]))(E,y.lng||null,"fallback"===S.nsMode?x:x[0],b),O=()=>A,P=()=>g(E,y.lng||null,"fallback"===S.nsMode?x:x[0],b),[k,_]=t(O);let v=x.join();y.lng&&(v=`${y.lng}${v}`);const z=((e,t)=>{const o=n();return r((()=>{o.current=t?o.current:e}),[e,t]),o.current})(v),C=n(!0);r((()=>{const{bindI18n:e,bindI18nStore:t}=S;C.current=!0,j||T||(y.lng?u(E,y.lng,x,(()=>{C.current&&_(P)})):c(E,x,(()=>{C.current&&_(P)}))),j&&z&&z!==v&&C.current&&_(P);const n=()=>{C.current&&_(P)};return e&&E?.on(e,n),t&&E?.store.on(t,n),()=>{C.current=!1,E&&e?.split(" ").forEach((e=>E.off(e,n))),t&&E&&t.split(" ").forEach((e=>E.store.off(e,n)))}}),[E,v]),r((()=>{C.current&&j&&_(O)}),[E,b,j]);const D=[k,E,j];if(D.t=k,D.i18n=E,D.ready=j,j)return D;if(!j&&!T)return D;throw new Promise((e=>{y.lng?u(E,y.lng,x,(()=>e())):c(E,x,(()=>e()))}))};export{N as useTranslation};
1
+ import e from"../../../@babel/runtime/helpers/esm/slicedToArray.js";import r from"../../../@babel/runtime/helpers/esm/defineProperty.js";import t from"../../../@babel/runtime/helpers/esm/typeof.js";import{useContext as n,useState as o,useRef as i,useEffect as c}from"react";import{I18nContext as s,ReportNamespaces as u}from"./context.js";import{warnOnce as a,hasLoadedNamespace as f,loadLanguages as p,loadNamespaces as l}from"./utils.js";import{getDefaults as m}from"./defaults.js";import{getI18n as d}from"./i18nInstance.js";function y(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}))}return e}function g(r){var y=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},g=y.i18n,j=n(s)||{},O=j.i18n,v=j.defaultNS,h=g||O||d();if(h&&!h.reportNamespaces&&(h.reportNamespaces=new u),!h){a("You will need to pass in an i18next instance by using initReactI18next");var w=function(e,r){return"string"==typeof r?r:r&&"object"===t(r)&&"string"==typeof r.defaultValue?r.defaultValue:Array.isArray(e)?e[e.length-1]:e},P=[w,{},!1];return P.t=w,P.i18n={},P.ready=!1,P}h.options.react&&void 0!==h.options.react.wait&&a("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var N=b(b(b({},m()),h.options.react),y),S=N.useSuspense,x=N.keyPrefix,I=r||v||h.options&&h.options.defaultNS;I="string"==typeof I?[I]:I||["translation"],h.reportNamespaces.addUsedNamespaces&&h.reportNamespaces.addUsedNamespaces(I);var D=(h.isInitialized||h.initializedStoreOnce)&&I.every((function(e){return f(e,h,N)}));function E(){return h.getFixedT(y.lng||null,"fallback"===N.nsMode?I:I[0],x)}var k=o(E),A=e(k,2),z=A[0],T=A[1],U=I.join();y.lng&&(U="".concat(y.lng).concat(U));var V,F,M,R=(V=U,M=i(),c((function(){M.current=F?M.current:V}),[V,F]),M.current),Y=i(!0);c((function(){var e=N.bindI18n,r=N.bindI18nStore;function t(){Y.current&&T(E)}return Y.current=!0,D||S||(y.lng?p(h,y.lng,I,(function(){Y.current&&T(E)})):l(h,I,(function(){Y.current&&T(E)}))),D&&R&&R!==U&&Y.current&&T(E),e&&h&&h.on(e,t),r&&h&&h.store.on(r,t),function(){Y.current=!1,e&&h&&e.split(" ").forEach((function(e){return h.off(e,t)})),r&&h&&r.split(" ").forEach((function(e){return h.store.off(e,t)}))}}),[h,U]);var q=i(!0);c((function(){Y.current&&!q.current&&T(E),q.current=!1}),[h,x]);var B=[z,h,D];if(B.t=z,B.i18n=h,B.ready=D,D)return B;if(!D&&!S)return B;throw new Promise((function(e){y.lng?p(h,y.lng,I,(function(){return e()})):l(h,I,(function(){return e()}))}))}export{g as useTranslation};
@@ -1 +1 @@
1
- const e=(e,n,a,i)=>{const o=[a,{code:n,...i||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(o,"warn","react-i18next::",!0);r(o[0])&&(o[0]=`react-i18next:: ${o[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...o):console?.warn&&console.warn(...o)},n={},a=(a,i,o,s)=>{r(o)&&n[o]||(r(o)&&(n[o]=new Date),e(a,i,o,s))},i=(e,n)=>()=>{if(e.isInitialized)n();else{const a=()=>{setTimeout((()=>{e.off("initialized",a)}),0),n()};e.on("initialized",a)}},o=(e,n,a)=>{e.loadNamespaces(n,i(e,a))},s=(e,n,a,s)=>{if(r(a)&&(a=[a]),e.options.preload&&e.options.preload.indexOf(n)>-1)return o(e,a,s);a.forEach((n=>{e.options.ns.indexOf(n)<0&&e.options.ns.push(n)})),e.loadLanguages(n,i(e,s))},g=(e,n,i={})=>n.languages&&n.languages.length?n.hasLoadedNamespace(e,{lng:i.lng,precheck:(n,a)=>{if(i.bindI18n?.indexOf("languageChanging")>-1&&n.services.backendConnector.backend&&n.isLanguageChangingTo&&!a(n.isLanguageChangingTo,e))return!1}}):(a(n,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:n.languages}),!0),r=e=>"string"==typeof e,t=e=>"object"==typeof e&&null!==e;export{g as hasLoadedNamespace,t as isObject,r as isString,s as loadLanguages,o as loadNamespaces,e as warn,a as warnOnce};
1
+ function n(){if(console&&console.warn){for(var n,e=arguments.length,a=new Array(e),o=0;o<e;o++)a[o]=arguments[o];"string"==typeof a[0]&&(a[0]="react-i18next:: ".concat(a[0])),(n=console).warn.apply(n,a)}}var e={};function a(){for(var a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];"string"==typeof o[0]&&e[o[0]]||("string"==typeof o[0]&&(e[o[0]]=new Date),n.apply(void 0,o))}var o=function(n,e){return function(){if(n.isInitialized)e();else{n.on("initialized",(function a(){setTimeout((function(){n.off("initialized",a)}),0),e()}))}}};function i(n,e,a){n.loadNamespaces(e,o(n,a))}function t(n,e,a,i){"string"==typeof a&&(a=[a]),a.forEach((function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)})),n.loadLanguages(e,o(n,i))}function g(n,e){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.languages&&e.languages.length?void 0!==e.options.ignoreJSONStructure?e.hasLoadedNamespace(n,{lng:o.lng,precheck:function(e,a){if(o.bindI18n&&o.bindI18n.indexOf("languageChanging")>-1&&e.services.backendConnector.backend&&e.isLanguageChangingTo&&!a(e.isLanguageChangingTo,n))return!1}}):function(n,e){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=e.languages[0],i=!!e.options&&e.options.fallbackLng,t=e.languages[e.languages.length-1];if("cimode"===o.toLowerCase())return!0;var g=function(n,a){var o=e.services.backendConnector.state["".concat(n,"|").concat(a)];return-1===o||2===o};return!(a.bindI18n&&a.bindI18n.indexOf("languageChanging")>-1&&e.services.backendConnector.backend&&e.isLanguageChangingTo&&!g(e.isLanguageChangingTo,n)||!e.hasResourceBundle(o,n)&&e.services.backendConnector.backend&&(!e.options.resources||e.options.partialBundledLanguages)&&(!g(o,n)||i&&!g(t,n)))}(n,e,o):(a("i18n.languages were undefined or empty",e.languages),!0)}export{g as hasLoadedNamespace,t as loadLanguages,i as loadNamespaces,n as warn,a as warnOnce};
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"react";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./Snap.js";import"./Search.js";import"./Login.js";import"./CrmPage.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"../stores/chatStore.js";import"../hooks/useAppStyles.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import{Page as t}from"../components/Page.js";import{makeStyles as e}from"../node_modules/@griffel/react/makeStyles.esm.js";const s=e({iframe:{width:"100%",height:"100%",border:"none"},scrollable:{overflow:"auto"},nonScrollable:{overflow:"hidden"},fixFrameHeight:{height:"calc(100% - 5px)"}}),r=({src:e,showFooter:r,title:i})=>{const m=s();return r?o(t,{hideFooter:!r,hideHeader:!0,children:o("iframe",{title:i,src:e,className:`${m.iframe} ${r?m.fixFrameHeight:""}`})}):o("iframe",{title:i,src:e,className:m.iframe})};export{r as default};
1
+ import{jsx as o}from"react/jsx-runtime";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"react";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./Snap.js";import"./Search.js";import"./Login.js";import"./CrmPage.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"../stores/chatStore.js";import"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import{Page as t}from"../components/Page.js";import{makeStyles as e}from"../node_modules/@griffel/react/makeStyles.esm.js";const s=e({iframe:{width:"100%",height:"100%",border:"none"},scrollable:{overflow:"auto"},nonScrollable:{overflow:"hidden"},fixFrameHeight:{height:"calc(100% - 5px)"}}),i=({src:e,showFooter:i,title:r})=>{const m=s();return i?o(t,{hideFooter:!i,hideHeader:!0,children:o("iframe",{title:r,src:e,className:`${m.iframe} ${i?m.fixFrameHeight:""}`})}):o("iframe",{title:r,src:e,className:m.iframe})};export{i as default};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useState as t,useRef as n,useCallback as r,useEffect as a,useMemo as i}from"react";import{CodicentService as s}from"../services/codicent.js";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/Spinner.js";import m from"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import l from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as p}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../components/FileThumbnail.js";import c from"../components/MessageInput.js";import d from"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import{Page as u}from"../components/Page.js";import"./AppFrame.js";import"./Snap.js";import"./Search.js";import"./Login.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"../stores/chatStore.js";import"../hooks/useAppStyles.js";import g from"../hooks/useToaster.js";import f from"../hooks/useLocalization.js";import{useSearchParams as j}from"react-router-dom";import{l as h}from"../node_modules/lodash/lodash.js";import{makeStyles as v}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as k}from"../node_modules/@griffel/core/index.esm.js";import{tokens as S}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{MessageBar as x}from"../node_modules/@fluentui/react-message-bar/lib/components/MessageBar/MessageBar.js";import{MessageBarBody as b}from"../node_modules/@fluentui/react-message-bar/lib/components/MessageBarBody/MessageBarBody.js";const w=v({main:{flexGrow:1,...k.padding("10px"),overflowY:"auto"},container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%"},root:{height:"100%"},item:{height:"auto",width:"auto",flexShrink:1,marginBottom:"1rem"},chat:{flexGrow:1,boxSizing:"border-box",overflow:"hidden",border:"none"},attachmentBar:{display:"none"},iconButton:{width:"24px",height:"24px"},imageCard:{alignContent:"center",borderRadius:S.borderRadiusLarge,height:"240px",textAlign:"left",position:"relative"},review:{padding:"10px",wordBreak:"break-word",whiteSpace:"pre-line",maxWidth:"100%",overflowWrap:"break-word"}}),y=({state:v})=>{const k=w(),{t:S}=f(),[y,_]=t(!1),I=n(null),M=n(null),U=n(null),[A]=t(null),[B,C]=t([]),{service:F}=v,[E,T]=j(),[N,P]=t(""),[$,L]=t(void 0),R=g(),[O,V]=t(void 0),[D,G]=t("info"),H=r((e=>{for(const o of e)F.getFileInfo(o).then((e=>{C((o=>[...o,e]))}))}),[F,C]),z=r((e=>{const o=new FormData;o.append("file",e),F.uploadFile(e.name,o).then((e=>{H([e])})).catch((()=>{R.notify(S("Error"),S("Error uploading pasted image"),"")}))}),[F,H,R,S]),W=e=>{_(e)};a((()=>{const e=E.get("text"),o=E.get("url");e&&(P(e),E.delete("text")),o&&(E.delete("url"),P(((e||"")+" "+o).trim())),T(E,{replace:!0})}),[E,T,P,F,H]);const J=r((async e=>{if(!e||e.length<10)return;V(S("Analyserar...")),G("info");const o=await F.chat((e=>`Skapa kort ja/nej-status över hur CRM-aktiviteten som följer, givet dessa punkter: \n1. Namn på kunden finns med? ja/nej \n2. Syftet med mötet finns (varför träffar du kunden, kan täckas av 3 nedan) ja/nej\n3. Vad som framkommer under mötet (viktiga punkter och diskussioner) ja/nej\n4. Nästa steg finns med (hur ni kommer att träffas igen, och om något har sålts) ja/nej. \n\nSvara endast med ja/nej för varje punkt, ett svar per rad i följande exempel i JSON-format:\n{\n "customerName": "true",\n "purpose": "false",\n "meetingNotes": "true",\n "nextSteps": "false",\n "shortSummary": "Syfte med mötet och nästa steg saknas."\n}\n\n---\nTEXT:\n\n${e}`)(e));if(o){const e=new l(o.content);try{const o=JSON.parse(e.content);console.log("json",o);let t=0;for(const e in o)"true"===o[e]&&t++;V(S(4===t?"Allt är med":o.shortSummary||"Något saknas")),G(4===t?"success":"warning")}catch{V("Error: "+e.content),G("error")}}}),[F]),K=i((()=>h.debounce(J,2e3)),[J]);return a((()=>()=>{K.cancel()}),[K]),e(u,{hideHeader:!0,children:o("div",{className:k.container,style:{backgroundImage:`url(${p("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:[e(m,{title:p("APP_SAVE_TITLE")?S(p("APP_SAVE_TITLE")):S("Spara")}),e(c,{defaultText:N,onSend:e=>{e=`${e=`#crm\n${e.replace("#log ","")}\nSALESPERSON: ${v.context.name||v.context.user?.email||v.context.nickname||"-"}`}${A?" "+A:""}${B.length>0?"\n":""}${B.map((e=>`#file:${e.id}`)).join(" ")}`,F.sendMessage(e).then((()=>{R.notify(S("Meddelande"),S("Meddelandet är sparat."),"")}))},files:B,onFilesChange:C,isUploading:y,onUploadImage:()=>{M.current?.triggerUpload()},onUploadCamera:()=>{U.current?.triggerUpload()},getImageUrl:s.getImageUrl,hasLocation:!!A,disableSend:!0,rows:9,placeholder:S("Beskriv CRM-aktivitet här..."),onChange:e=>{e!==$&&(L(e),e&&e.trim().length>0?K(e):(V(void 0),K.cancel()))},onImagePasted:z}),O&&o("div",{className:k.review,children:[e("h3",{children:S("Analys")}),e(x,{intent:D,layout:"multiline",children:e(b,{children:S(O)})})]}),e(d,{ref:I,onFileUploaded:H,onUploading:W,multiple:!0,codicentService:F}),e(d,{codicentService:F,ref:M,onFileUploaded:H,onUploading:W,multiple:!0,accept:"image/*"}),e(d,{codicentService:F,ref:U,onFileUploaded:H,onUploading:W,multiple:!0,accept:"image/*",capture:"environment"})]})})};export{y as CrmPage,y as default};
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useState as t,useRef as n,useCallback as r,useEffect as a,useMemo as i}from"react";import{CodicentService as s}from"../services/codicent.js";import"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import"../components/Spinner.js";import m from"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import l from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as p}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../components/FileThumbnail.js";import c from"../components/MessageInput.js";import d from"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import{Page as u}from"../components/Page.js";import"./AppFrame.js";import"./Snap.js";import"./Search.js";import"./Login.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"../stores/chatStore.js";import g from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import f from"../hooks/useToaster.js";import{useSearchParams as j}from"react-router-dom";import{l as h}from"../node_modules/lodash/lodash.js";import{makeStyles as v}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as k}from"../node_modules/@griffel/core/index.esm.js";import{tokens as S}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{MessageBar as x}from"../node_modules/@fluentui/react-message-bar/lib/components/MessageBar/MessageBar.js";import{MessageBarBody as b}from"../node_modules/@fluentui/react-message-bar/lib/components/MessageBarBody/MessageBarBody.js";const w=v({main:{flexGrow:1,...k.padding("10px"),overflowY:"auto"},container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%"},root:{height:"100%"},item:{height:"auto",width:"auto",flexShrink:1,marginBottom:"1rem"},chat:{flexGrow:1,boxSizing:"border-box",overflow:"hidden",border:"none"},attachmentBar:{display:"none"},iconButton:{width:"24px",height:"24px"},imageCard:{alignContent:"center",borderRadius:S.borderRadiusLarge,height:"240px",textAlign:"left",position:"relative"},review:{padding:"10px",wordBreak:"break-word",whiteSpace:"pre-line",maxWidth:"100%",overflowWrap:"break-word"}}),y=({state:v})=>{const k=w(),{t:S}=g(),[y,_]=t(!1),I=n(null),M=n(null),U=n(null),[A]=t(null),[B,C]=t([]),{service:F}=v,[E,T]=j(),[N,P]=t(""),[$,L]=t(void 0),R=f(),[O,V]=t(void 0),[D,G]=t("info"),H=r((e=>{for(const o of e)F.getFileInfo(o).then((e=>{C((o=>[...o,e]))}))}),[F,C]),z=r((e=>{const o=new FormData;o.append("file",e),F.uploadFile(e.name,o).then((e=>{H([e])})).catch((()=>{R.notify(S("Error"),S("Error uploading pasted image"),"")}))}),[F,H,R,S]),W=e=>{_(e)};a((()=>{const e=E.get("text"),o=E.get("url");e&&(P(e),E.delete("text")),o&&(E.delete("url"),P(((e||"")+" "+o).trim())),T(E,{replace:!0})}),[E,T,P,F,H]);const J=r((async e=>{if(!e||e.length<10)return;V(S("Analyserar...")),G("info");const o=await F.chat((e=>`Skapa kort ja/nej-status över hur CRM-aktiviteten som följer, givet dessa punkter: \n1. Namn på kunden finns med? ja/nej \n2. Syftet med mötet finns (varför träffar du kunden, kan täckas av 3 nedan) ja/nej\n3. Vad som framkommer under mötet (viktiga punkter och diskussioner) ja/nej\n4. Nästa steg finns med (hur ni kommer att träffas igen, och om något har sålts) ja/nej. \n\nSvara endast med ja/nej för varje punkt, ett svar per rad i följande exempel i JSON-format:\n{\n "customerName": "true",\n "purpose": "false",\n "meetingNotes": "true",\n "nextSteps": "false",\n "shortSummary": "Syfte med mötet och nästa steg saknas."\n}\n\n---\nTEXT:\n\n${e}`)(e));if(o){const e=new l(o.content);try{const o=JSON.parse(e.content);console.log("json",o);let t=0;for(const e in o)"true"===o[e]&&t++;V(S(4===t?"Allt är med":o.shortSummary||"Något saknas")),G(4===t?"success":"warning")}catch{V("Error: "+e.content),G("error")}}}),[F]),K=i((()=>h.debounce(J,2e3)),[J]);return a((()=>()=>{K.cancel()}),[K]),e(u,{hideHeader:!0,children:o("div",{className:k.container,style:{backgroundImage:`url(${p("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:[e(m,{title:p("APP_SAVE_TITLE")?S(p("APP_SAVE_TITLE")):S("Spara")}),e(c,{defaultText:N,onSend:e=>{e=`${e=`#crm\n${e.replace("#log ","")}\nSALESPERSON: ${v.context.name||v.context.user?.email||v.context.nickname||"-"}`}${A?" "+A:""}${B.length>0?"\n":""}${B.map((e=>`#file:${e.id}`)).join(" ")}`,F.sendMessage(e).then((()=>{R.notify(S("Meddelande"),S("Meddelandet är sparat."),"")}))},files:B,onFilesChange:C,isUploading:y,onUploadImage:()=>{M.current?.triggerUpload()},onUploadCamera:()=>{U.current?.triggerUpload()},getImageUrl:s.getImageUrl,hasLocation:!!A,disableSend:!0,rows:9,placeholder:S("Beskriv CRM-aktivitet här..."),onChange:e=>{e!==$&&(L(e),e&&e.trim().length>0?K(e):(V(void 0),K.cancel()))},onImagePasted:z}),O&&o("div",{className:k.review,children:[e("h3",{children:S("Analys")}),e(x,{intent:D,layout:"multiline",children:e(b,{children:S(O)})})]}),e(d,{ref:I,onFileUploaded:H,onUploading:W,multiple:!0,codicentService:F}),e(d,{codicentService:F,ref:M,onFileUploaded:H,onUploading:W,multiple:!0,accept:"image/*"}),e(d,{codicentService:F,ref:U,onFileUploaded:H,onUploading:W,multiple:!0,accept:"image/*",capture:"environment"})]})})};export{y as CrmPage,y as default};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import r from"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import{Title as i}from"../components/Title.js";import{Text as n}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"react";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as s}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import{formatGuidToShorterReadableCode as m}from"../utils/helpers.js";import"./AppFrame.js";import"./Snap.js";import"./Search.js";import"./Login.js";import"./CrmPage.js";import"./ImageView.js";import"./FormInvite.js";import"./Sales.js";import"../stores/chatStore.js";import"../hooks/useAppStyles.js";import p from"../hooks/useLocalization.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import a from"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import{Page as c}from"../components/Page.js";import{useSearchParams as l,useNavigate as d}from"react-router-dom";import{makeStyles as j}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Button as u}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";const h=j({container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%"},instructionParagraph:{fontWeight:"bold",marginBottom:"1em"},orderedList:{marginLeft:"20px",marginBottom:"1em",fontSize:"1.3em"}}),g=()=>{const{t:j}=p(),[g]=l(),f=d(),k=g.get("id"),b=h();return o(c,{hideFooter:!0,hideHeader:!0,children:o("div",{className:b.container,style:{backgroundImage:`url(${s("FORM_BACKGROUND_IMAGE_URL")})`},children:t(a,{children:[s("FORM_ACCEPT_MARKDOWN")&&o(r,{content:s("FORM_ACCEPT_MARKDOWN").replace("{{code}}",m(k||""))}),!s("FORM_ACCEPT_MARKDOWN")&&t(e,{children:[o(i,{children:j("Din kod för formuläret")}),o("p",{className:b.instructionParagraph,children:j("Instruktioner:")}),t("ol",{className:b.orderedList,children:[o("li",{children:j("Skriv ner eller kopiera den kod som visas nedan, du behöver den för att identifiera din session.")}),o("li",{children:j("Klicka på 'Starta' för att komma igång med chatten.")})]}),o(n,{size:500,children:j("Din kod är (skriv ner den):")}),o(n,{size:600,style:{userSelect:"all"},children:m(k||"")})]}),k&&o(u,{appearance:"primary",onClick:()=>f(`/chat?fid=${k}`),children:j("Starta")})]})})})};export{g as default};
1
+ import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import r from"../components/Markdown.js";import"../components/Textarea.js";import"../components/Button.js";import{Title as i}from"../components/Title.js";import{Text as n}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"react";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as s}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import{formatGuidToShorterReadableCode as m}from"../utils/helpers.js";import"./AppFrame.js";import"./Snap.js";import"./Search.js";import"./Login.js";import"./CrmPage.js";import"./ImageView.js";import"./FormInvite.js";import"./Sales.js";import"../stores/chatStore.js";import p from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import a from"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import{Page as c}from"../components/Page.js";import{useSearchParams as l,useNavigate as d}from"react-router-dom";import{makeStyles as j}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Button as u}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";const h=j({container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%"},instructionParagraph:{fontWeight:"bold",marginBottom:"1em"},orderedList:{marginLeft:"20px",marginBottom:"1em",fontSize:"1.3em"}}),g=()=>{const{t:j}=p(),[g]=l(),f=d(),k=g.get("id"),b=h();return o(c,{hideFooter:!0,hideHeader:!0,children:o("div",{className:b.container,style:{backgroundImage:`url(${s("FORM_BACKGROUND_IMAGE_URL")})`},children:t(a,{children:[s("FORM_ACCEPT_MARKDOWN")&&o(r,{content:s("FORM_ACCEPT_MARKDOWN").replace("{{code}}",m(k||""))}),!s("FORM_ACCEPT_MARKDOWN")&&t(e,{children:[o(i,{children:j("Din kod för formuläret")}),o("p",{className:b.instructionParagraph,children:j("Instruktioner:")}),t("ol",{className:b.orderedList,children:[o("li",{children:j("Skriv ner eller kopiera den kod som visas nedan, du behöver den för att identifiera din session.")}),o("li",{children:j("Klicka på 'Starta' för att komma igång med chatten.")})]}),o(n,{size:500,children:j("Din kod är (skriv ner den):")}),o(n,{size:600,style:{userSelect:"all"},children:m(k||"")})]}),k&&o(u,{appearance:"primary",onClick:()=>f(`/chat?fid=${k}`),children:j("Starta")})]})})})};export{g as default};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as e,Fragment as t}from"react/jsx-runtime";import{useState as n,useEffect as r}from"react";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as i}from"../components/Button.js";import{Title as a}from"../components/Title.js";import"../components/Spinner.js";import{Label as s}from"../components/Label.js";import{Input as m}from"../components/Input.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import l from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as p}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import{formatGuidToShorterReadableCode as c}from"../utils/helpers.js";import"./AppFrame.js";import"./Snap.js";import"./Search.js";import"./Login.js";import"./CrmPage.js";import"./ImageView.js";import"./FormAccept.js";import"./Sales.js";import"../stores/chatStore.js";import"../hooks/useAppStyles.js";import d from"../hooks/useLocalization.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import u from"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import{Page as j}from"../components/Page.js";import{makeStyles as h}from"../node_modules/@griffel/react/makeStyles.esm.js";import{useId as k}from"../node_modules/@fluentui/react-utilities/lib/hooks/useId.js";import{Dropdown as g}from"../node_modules/@fluentui/react-combobox/lib/components/Dropdown/Dropdown.js";import{Option as f}from"../node_modules/@fluentui/react-combobox/lib/components/Option/Option.js";const v=h({inputAndButton:{display:"flex",gap:"10px"},input:{minWidth:"90%"},container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%"},generatedLinkTitle:{marginBottom:"0.5em",fontWeight:"bold"},orderedList:{marginLeft:"20px",marginBottom:"1em"},instructionParagraph:{marginBottom:"1em",fontWeight:"bold"}}),b=({state:h})=>{const b=v(),{service:w}=h,{t:x}=d(),[S,y]=l(h.context.selectedApp+"_forms",[]),[_,C]=n(),[L,$]=n(),[I,A]=n(!1),[N,T]=n(),B=k("form-dropdown");r((()=>{w.getForms().then((o=>{o.sort(((o,e)=>o.name.localeCompare(e.name))),y(o)}))}),[w,x,y]);const P=void 0!==navigator.share;return o(j,{children:o("div",{className:b.container,style:{backgroundImage:`url(${p("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:e(u,{children:[o(a,{children:x("Skapa länk till formulär")}),o("p",{className:b.instructionParagraph,children:x("Instruktioner")}),e("ol",{className:b.orderedList,children:[o("li",{children:x("Välj ett formulär från rullgardinsmenyn nedan. Detta formulär kommer att användas för den genererade länken.")}),o("li",{children:x("Klicka på 'Skapa länk' för att generera en unik länk. Länken visar var aktiv och kan användas för att svara på formuläret.")}),o("li",{children:x("När länken visas, kan du klicka på kopiera-ikonen för att kopiera länken till ditt urklipp.")}),o("li",{children:x("Om din enhet stödjer det, kan du även använda dela-knappen för att dela länken direkt.")}),o("li",{children:x("Kom ihåg att spara (skriva ner) koden")})]}),o("label",{id:B,className:b.instructionParagraph,children:x("Välj formulär")}),o(g,{"aria-labelledby":B,placeholder:"-",onOptionSelect:(o,e)=>T(e.optionValue),children:S.map((o=>e(f,{value:o.name,text:`${o.title} (${o.name})`,children:[`${o.title} (${o.name})`," "]},o.name)))}),o(i,{appearance:"primary",disabled:!N,onClick:()=>{w.sendMessage(`#ss-link #${N}`).then((o=>{const e=`${window.location.protocol}//${window.location.hostname}${window.location.port?":"+window.location.port:""}${window.location.pathname}`;C(`${e}#/formaccept?id=${o}`);const t=c(o);$(t)}))},children:x("Skapa länk")}),_&&e(t,{children:[o("p",{className:b.generatedLinkTitle,children:x("Här är din genererade länk (du kan kopiera eller dela den):")}),o("div",{className:b.inputAndButton,children:o(m,{className:b.input,value:_,readOnly:!0,onFocus:o=>o.target.select()})}),o("br",{}),e("div",{className:b.inputAndButton,children:[o(i,{appearance:"primary",title:x("Kopiera länk"),icon:"CopyRegular",onClick:()=>{_&&(navigator.clipboard.writeText(_),A(!0),setTimeout((()=>{A(!1),C(void 0)}),2e3))},children:x("Kopiera")}),P&&o(i,{appearance:"primary",title:x("Dela länk"),icon:"ShareRegular",onClick:()=>{_&&(navigator.share({url:_}),setTimeout((()=>{C(void 0)}),2e3))},children:x("Dela")})]}),I&&o(s,{children:x("Länk kopierad!")})]})]})})})};export{b as default};
1
+ import{jsx as o,jsxs as e,Fragment as t}from"react/jsx-runtime";import{useState as n,useEffect as r}from"react";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as i}from"../components/Button.js";import{Title as a}from"../components/Title.js";import"../components/Spinner.js";import{Label as s}from"../components/Label.js";import{Input as m}from"../components/Input.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import l from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as p}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import{formatGuidToShorterReadableCode as c}from"../utils/helpers.js";import"./AppFrame.js";import"./Snap.js";import"./Search.js";import"./Login.js";import"./CrmPage.js";import"./ImageView.js";import"./FormAccept.js";import"./Sales.js";import"../stores/chatStore.js";import d from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import u from"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import{Page as j}from"../components/Page.js";import{makeStyles as h}from"../node_modules/@griffel/react/makeStyles.esm.js";import{useId as k}from"../node_modules/@fluentui/react-utilities/lib/hooks/useId.js";import{Dropdown as g}from"../node_modules/@fluentui/react-combobox/lib/components/Dropdown/Dropdown.js";import{Option as f}from"../node_modules/@fluentui/react-combobox/lib/components/Option/Option.js";const v=h({inputAndButton:{display:"flex",gap:"10px"},input:{minWidth:"90%"},container:{maxWidth:"640px",margin:"0 auto",backgroundPosition:"calc(50% + 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%"},generatedLinkTitle:{marginBottom:"0.5em",fontWeight:"bold"},orderedList:{marginLeft:"20px",marginBottom:"1em"},instructionParagraph:{marginBottom:"1em",fontWeight:"bold"}}),b=({state:h})=>{const b=v(),{service:w}=h,{t:x}=d(),[S,y]=l(h.context.selectedApp+"_forms",[]),[_,C]=n(),[L,$]=n(),[I,A]=n(!1),[N,T]=n(),B=k("form-dropdown");r((()=>{w.getForms().then((o=>{o.sort(((o,e)=>o.name.localeCompare(e.name))),y(o)}))}),[w,x,y]);const P=void 0!==navigator.share;return o(j,{children:o("div",{className:b.container,style:{backgroundImage:`url(${p("COMPOSE_BACKGROUND_IMAGE_URL")})`},children:e(u,{children:[o(a,{children:x("Skapa länk till formulär")}),o("p",{className:b.instructionParagraph,children:x("Instruktioner")}),e("ol",{className:b.orderedList,children:[o("li",{children:x("Välj ett formulär från rullgardinsmenyn nedan. Detta formulär kommer att användas för den genererade länken.")}),o("li",{children:x("Klicka på 'Skapa länk' för att generera en unik länk. Länken visar var aktiv och kan användas för att svara på formuläret.")}),o("li",{children:x("När länken visas, kan du klicka på kopiera-ikonen för att kopiera länken till ditt urklipp.")}),o("li",{children:x("Om din enhet stödjer det, kan du även använda dela-knappen för att dela länken direkt.")}),o("li",{children:x("Kom ihåg att spara (skriva ner) koden")})]}),o("label",{id:B,className:b.instructionParagraph,children:x("Välj formulär")}),o(g,{"aria-labelledby":B,placeholder:"-",onOptionSelect:(o,e)=>T(e.optionValue),children:S.map((o=>e(f,{value:o.name,text:`${o.title} (${o.name})`,children:[`${o.title} (${o.name})`," "]},o.name)))}),o(i,{appearance:"primary",disabled:!N,onClick:()=>{w.sendMessage(`#ss-link #${N}`).then((o=>{const e=`${window.location.protocol}//${window.location.hostname}${window.location.port?":"+window.location.port:""}${window.location.pathname}`;C(`${e}#/formaccept?id=${o}`);const t=c(o);$(t)}))},children:x("Skapa länk")}),_&&e(t,{children:[o("p",{className:b.generatedLinkTitle,children:x("Här är din genererade länk (du kan kopiera eller dela den):")}),o("div",{className:b.inputAndButton,children:o(m,{className:b.input,value:_,readOnly:!0,onFocus:o=>o.target.select()})}),o("br",{}),e("div",{className:b.inputAndButton,children:[o(i,{appearance:"primary",title:x("Kopiera länk"),icon:"CopyRegular",onClick:()=>{_&&(navigator.clipboard.writeText(_),A(!0),setTimeout((()=>{A(!1),C(void 0)}),2e3))},children:x("Kopiera")}),P&&o(i,{appearance:"primary",title:x("Dela länk"),icon:"ShareRegular",onClick:()=>{_&&(navigator.share({url:_}),setTimeout((()=>{C(void 0)}),2e3))},children:x("Dela")})]}),I&&o(s,{children:x("Länk kopierad!")})]})]})})})};export{b as default};
@@ -1 +1 @@
1
- import{jsxs as o,jsx as e}from"react/jsx-runtime";import t from"react";import"../services/codicent.js";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as i}from"../components/Button.js";import{Title as r}from"../components/Title.js";import{Text as s}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as n}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/Page.js";import"./AppFrame.js";import"./Snap.js";import"./Search.js";import"./CrmPage.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"../stores/chatStore.js";import m from"../hooks/useAppStyles.js";import a from"../hooks/useLocalization.js";import{makeStyles as p}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Image as c}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{mergeClasses as l}from"../node_modules/@griffel/core/mergeClasses.esm.js";const j=p({container:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100vh",backgroundPosition:"calc(50% - 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",gap:"20px",padding:"0 20px"},button:{minWidth:"15rem"},image:{maxHeight:"200px"}}),g=({state:p})=>{const{loginWithRedirect:g}=p.auth,d=j(),u=m(),{t:_}=a(),I=n("LOGIN_REDIRECT");return t.useEffect((()=>{I&&g()}),[I]),o("div",I?{className:d.container,style:{backgroundImage:`url(${n("HOME_BACKGROUND_IMAGE_URL")})`},children:[e(r,{children:`${_("Välkommen till")} ${n("INDEX_TITLE")}!`}),e(s,{size:400,children:_("Omdirigerar till inloggning...")})]}:{className:d.container,style:{backgroundImage:`url(${n("HOME_BACKGROUND_IMAGE_URL")})`},children:[n("LOGIN_LOGO_URL")&&e(c,{src:n("LOGIN_LOGO_URL"),alt:n("INDEX_TITLE"),className:d.image}),!n("LOGIN_HIDE_WELCOME")&&e(r,{children:`${_("Välkommen till")} ${n("INDEX_TITLE")}!`}),e(s,{size:400,children:_(n("LOGIN_WELCOME_TEXT")||"Logga in, eller registrera ett konto, för att komma igång.")}),e(i,{className:l(u.button,d.button),size:"large",appearance:"primary",onClick:()=>g(),children:_("Logga in")}),!n("HIDE_REGISTER_BUTTON")&&e(i,{className:l(u.button,d.button),size:"large",appearance:"primary",onClick:()=>g({authorizationParams:{screen_hint:"signup"}}),children:_("Registrera")})]})};export{g as default};
1
+ import{jsxs as o,jsx as e}from"react/jsx-runtime";import t from"react";import"../services/codicent.js";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as i}from"../components/Button.js";import{Title as r}from"../components/Title.js";import{Text as s}from"../components/Text.js";import"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as n}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/Page.js";import"./AppFrame.js";import"./Snap.js";import"./Search.js";import"./CrmPage.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"../stores/chatStore.js";import m from"../hooks/useLocalization.js";import a from"../hooks/useAppStyles.js";import{makeStyles as p}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Image as c}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{mergeClasses as l}from"../node_modules/@griffel/core/mergeClasses.esm.js";const j=p({container:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100vh",backgroundPosition:"calc(50% - 100px) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",gap:"20px",padding:"0 20px"},button:{minWidth:"15rem"},image:{maxHeight:"200px"}}),g=({state:p})=>{const{loginWithRedirect:g}=p.auth,d=j(),u=a(),{t:_}=m(),I=n("LOGIN_REDIRECT");return t.useEffect((()=>{I&&g()}),[I]),o("div",I?{className:d.container,style:{backgroundImage:`url(${n("HOME_BACKGROUND_IMAGE_URL")})`},children:[e(r,{children:`${_("Välkommen till")} ${n("INDEX_TITLE")}!`}),e(s,{size:400,children:_("Omdirigerar till inloggning...")})]}:{className:d.container,style:{backgroundImage:`url(${n("HOME_BACKGROUND_IMAGE_URL")})`},children:[n("LOGIN_LOGO_URL")&&e(c,{src:n("LOGIN_LOGO_URL"),alt:n("INDEX_TITLE"),className:d.image}),!n("LOGIN_HIDE_WELCOME")&&e(r,{children:`${_("Välkommen till")} ${n("INDEX_TITLE")}!`}),e(s,{size:400,children:_(n("LOGIN_WELCOME_TEXT")||"Logga in, eller registrera ett konto, för att komma igång.")}),e(i,{className:l(u.button,d.button),size:"large",appearance:"primary",onClick:()=>g(),children:_("Logga in")}),!n("HIDE_REGISTER_BUTTON")&&e(i,{className:l(u.button,d.button),size:"large",appearance:"primary",onClick:()=>g({authorizationParams:{screen_hint:"signup"}}),children:_("Registrera")})]})};export{g as default};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as o,Fragment as t}from"react/jsx-runtime";import{useState as n,useCallback as i,useEffect as r}from"react";import"../components/Markdown.js";import{Textarea as s}from"../components/Textarea.js";import{Button as a}from"../components/Button.js";import{Text as l}from"../components/Text.js";import"../components/Spinner.js";import{Input as c}from"../components/Input.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as m}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./AppFrame.js";import"./Snap.js";import"./Search.js";import"./Login.js";import"./CrmPage.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"../stores/chatStore.js";import"../hooks/useAppStyles.js";import p from"../hooks/useLocalization.js";import{Dialog as d,DialogTitle as h,DialogContent as g,DialogActions as u}from"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import{Page as f}from"../components/Page.js";import{makeStyles as j}from"../node_modules/@griffel/react/makeStyles.esm.js";import{tokens as x}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{shorthands as C}from"../node_modules/@griffel/core/index.esm.js";import{Image as _}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{mergeClasses as k}from"../node_modules/@griffel/core/mergeClasses.esm.js";const b=j({root:{display:"flex",flexDirection:"column",height:"100%",touchAction:"pan-y"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",backgroundColor:m("APP_HEADER_COLOR")||x.colorBrandBackground,color:x.colorNeutralForegroundOnBrand,...C.padding("10px","20px")},logo:{maxWidth:"100px",maxHeight:"50px",height:"auto",cursor:"pointer"},inputContainer:{display:"flex",justifyContent:"flex-end",alignItems:"center",maxWidth:"300px",width:"200px",paddingLeft:"10px"},dashboard:{display:"flex",justifyContent:"space-around",width:"100%",marginTop:"20px"},statBox:{...C.padding("10px"),...C.borderRadius("12px"),minWidth:"50px",textAlign:"center",color:"white"},buttonContainer:{display:"flex",flexDirection:"column",height:"100%",justifyContent:"center",gap:"30px",alignItems:"center",...C.padding("20px")},actionButton:{width:"14rem",minWidth:"15rem",height:"3rem"},textAreaContainer:{display:"flex",flexDirection:"column",gap:"10px"},opened:{backgroundColor:"#1a5614"},not_home:{backgroundColor:"#f44336"},sales:{backgroundColor:"#2196F3"},call_back:{backgroundColor:"#FF9800"}}),v={opened:"#1a5614",not_home:"#f44336",sales:"#2196F3",call_back:"#FF9800"},w=()=>{const j=b(),{t:x}=p(),[C,w]=n(""),[y,I]=n(),[A,F]=n({opened:0,not_home:0,sales:0,call_back:0}),[$,P]=n([]),[N,S]=n(!1),[B,M]=n(""),[D,H]=n(""),[O,T]=n(""),[L,z]=n(!1),[E,G]=n(!1),R=i((()=>new Promise((e=>{navigator.geolocation?navigator.geolocation.getCurrentPosition((o=>{const t=`#position (${o.coords.latitude},${o.coords.longitude})`;e(t)})):e(void 0)}))),[I]);r((()=>{window.Codicent.getDataMessages({codicent:m("APP_NAME"),tags:["sales_code"]}).then((e=>{e=e.filter((e=>"1"!==e.data.inactive)),P(e)})).catch(console.error),R()}),[]);const U=async()=>{if(!C)return;const e=["not_home","sales","call_back","opened"],o=new Date;o.setHours(0,0,0,0);const t={...A};for(const n of e){const e=await window.Codicent.getMessages({search:`#${n} #sales_code_${C}`,afterTimestamp:o,length:1e4});t[n]=e.filter((e=>e.content.includes(`#${n} `)&&e.content.includes(`#sales_code_${C}`))).length}F(t)},W=async(e,o="")=>{const t=await R();console.log("Got position",t);const n=`@${m("APP_NAME")} #sales_code_${C} #${e} ${t||""} ${o.trim().length>0?"#comment ":""}${o}`.trim();await window.Codicent.postMessage({message:n}),U()};return e(f,{hideHeader:!0,children:o("div",{className:j.root,children:[o("div",{className:j.header,children:[e(_,{src:D||m("APP_ICON_URL")||"https://via.placeholder.com/100",className:j.logo,onClick:()=>O&&G(!0)}),e("div",{className:j.inputContainer,children:e(c,{value:C,onChange:e=>w(e.target.value),onBlur:()=>{const e=$.find((e=>e.data.code===C));if(e)H(`https://codicent.com/app/GetImage?fileId=${e.fileId}&width=100`),T(e.data.link),z(!0),U();else{const e=$.find((e=>e.data.code2===C.toUpperCase()));e?(H(`https://codicent.com/app/GetImage?fileId=${e.fileIds&&e.fileIds.length>1?e.fileIds[1]:e.fileId}&width=100`),T(e.data.link2),z(!0),U()):(z(!1),alert(x("Fel försäljningskod!")))}},placeholder:x("Fyll i försäljningskod"),maxLength:16,size:"large"})})]}),L&&o(t,{children:[e("div",{className:j.dashboard,children:Object.keys(A).map((o=>{return e("div",{className:(t=o,k(j.statBox,j[t])),children:e(l,{weight:"bold",size:400,children:A[o]})},o);var t}))}),e("div",{className:j.buttonContainer,children:Object.entries(v).map((([o,t])=>e(a,{size:"large",className:j.actionButton,style:{backgroundColor:t,color:"white"},onClick:()=>{W(o),"opened"===o&&S(!0),"sales"===o&&G(!0)},children:o.charAt(0).toUpperCase()+o.slice(1).replace("_"," ")},o)))}),o(d,{open:N,children:[e(h,{children:x("Skriv in avvikelse")}),e(g,{children:e("div",{className:j.textAreaContainer,children:e(s,{value:B,onChange:e=>M(e.target.value),placeholder:x("Skriv din text här..."),rows:4,size:"large"})})}),e(u,{children:e(a,{appearance:"primary",onClick:()=>{W("anomaly",`\n${B}`),S(!1),M("")},children:x("Spara")})})]}),o(d,{open:E,children:[e(h,{children:x("Godkännande")}),e(g,{children:x("Är kunden över 23 år?")}),o(u,{children:[e(a,{appearance:"primary",onClick:()=>window.open(O,"_blank"),children:x("OK")}),e(a,{appearance:"secondary",onClick:()=>G(!1),children:x("Avbryt")})]})]})]})]})})};export{w as Sales,w as default};
1
+ import{jsx as e,jsxs as o,Fragment as t}from"react/jsx-runtime";import{useState as n,useCallback as i,useEffect as r}from"react";import"../components/Markdown.js";import{Textarea as s}from"../components/Textarea.js";import{Button as a}from"../components/Button.js";import{Text as l}from"../components/Text.js";import"../components/Spinner.js";import{Input as c}from"../components/Input.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import{Dialog as m,DialogTitle as p,DialogContent as d,DialogActions as h}from"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as g}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./AppFrame.js";import"./Snap.js";import"./Search.js";import"./Login.js";import"./CrmPage.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"../stores/chatStore.js";import u from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import{Page as f}from"../components/Page.js";import{makeStyles as j}from"../node_modules/@griffel/react/makeStyles.esm.js";import{tokens as x}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{shorthands as C}from"../node_modules/@griffel/core/index.esm.js";import{Image as _}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{mergeClasses as k}from"../node_modules/@griffel/core/mergeClasses.esm.js";const b=j({root:{display:"flex",flexDirection:"column",height:"100%",touchAction:"pan-y"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",backgroundColor:g("APP_HEADER_COLOR")||x.colorBrandBackground,color:x.colorNeutralForegroundOnBrand,...C.padding("10px","20px")},logo:{maxWidth:"100px",maxHeight:"50px",height:"auto",cursor:"pointer"},inputContainer:{display:"flex",justifyContent:"flex-end",alignItems:"center",maxWidth:"300px",width:"200px",paddingLeft:"10px"},dashboard:{display:"flex",justifyContent:"space-around",width:"100%",marginTop:"20px"},statBox:{...C.padding("10px"),...C.borderRadius("12px"),minWidth:"50px",textAlign:"center",color:"white"},buttonContainer:{display:"flex",flexDirection:"column",height:"100%",justifyContent:"center",gap:"30px",alignItems:"center",...C.padding("20px")},actionButton:{width:"14rem",minWidth:"15rem",height:"3rem"},textAreaContainer:{display:"flex",flexDirection:"column",gap:"10px"},opened:{backgroundColor:"#1a5614"},not_home:{backgroundColor:"#f44336"},sales:{backgroundColor:"#2196F3"},call_back:{backgroundColor:"#FF9800"}}),v={opened:"#1a5614",not_home:"#f44336",sales:"#2196F3",call_back:"#FF9800"},w=()=>{const j=b(),{t:x}=u(),[C,w]=n(""),[y,I]=n(),[A,F]=n({opened:0,not_home:0,sales:0,call_back:0}),[$,P]=n([]),[N,S]=n(!1),[B,M]=n(""),[D,H]=n(""),[O,T]=n(""),[L,z]=n(!1),[E,G]=n(!1),R=i((()=>new Promise((e=>{navigator.geolocation?navigator.geolocation.getCurrentPosition((o=>{const t=`#position (${o.coords.latitude},${o.coords.longitude})`;e(t)})):e(void 0)}))),[I]);r((()=>{window.Codicent.getDataMessages({codicent:g("APP_NAME"),tags:["sales_code"]}).then((e=>{e=e.filter((e=>"1"!==e.data.inactive)),P(e)})).catch(console.error),R()}),[]);const U=async()=>{if(!C)return;const e=["not_home","sales","call_back","opened"],o=new Date;o.setHours(0,0,0,0);const t={...A};for(const n of e){const e=await window.Codicent.getMessages({search:`#${n} #sales_code_${C}`,afterTimestamp:o,length:1e4});t[n]=e.filter((e=>e.content.includes(`#${n} `)&&e.content.includes(`#sales_code_${C}`))).length}F(t)},W=async(e,o="")=>{const t=await R();console.log("Got position",t);const n=`@${g("APP_NAME")} #sales_code_${C} #${e} ${t||""} ${o.trim().length>0?"#comment ":""}${o}`.trim();await window.Codicent.postMessage({message:n}),U()};return e(f,{hideHeader:!0,children:o("div",{className:j.root,children:[o("div",{className:j.header,children:[e(_,{src:D||g("APP_ICON_URL")||"https://via.placeholder.com/100",className:j.logo,onClick:()=>O&&G(!0)}),e("div",{className:j.inputContainer,children:e(c,{value:C,onChange:e=>w(e.target.value),onBlur:()=>{const e=$.find((e=>e.data.code===C));if(e)H(`https://codicent.com/app/GetImage?fileId=${e.fileId}&width=100`),T(e.data.link),z(!0),U();else{const e=$.find((e=>e.data.code2===C.toUpperCase()));e?(H(`https://codicent.com/app/GetImage?fileId=${e.fileIds&&e.fileIds.length>1?e.fileIds[1]:e.fileId}&width=100`),T(e.data.link2),z(!0),U()):(z(!1),alert(x("Fel försäljningskod!")))}},placeholder:x("Fyll i försäljningskod"),maxLength:16,size:"large"})})]}),L&&o(t,{children:[e("div",{className:j.dashboard,children:Object.keys(A).map((o=>{return e("div",{className:(t=o,k(j.statBox,j[t])),children:e(l,{weight:"bold",size:400,children:A[o]})},o);var t}))}),e("div",{className:j.buttonContainer,children:Object.entries(v).map((([o,t])=>e(a,{size:"large",className:j.actionButton,style:{backgroundColor:t,color:"white"},onClick:()=>{W(o),"opened"===o&&S(!0),"sales"===o&&G(!0)},children:o.charAt(0).toUpperCase()+o.slice(1).replace("_"," ")},o)))}),o(m,{open:N,children:[e(p,{children:x("Skriv in avvikelse")}),e(d,{children:e("div",{className:j.textAreaContainer,children:e(s,{value:B,onChange:e=>M(e.target.value),placeholder:x("Skriv din text här..."),rows:4,size:"large"})})}),e(h,{children:e(a,{appearance:"primary",onClick:()=>{W("anomaly",`\n${B}`),S(!1),M("")},children:x("Spara")})})]}),o(m,{open:E,children:[e(p,{children:x("Godkännande")}),e(d,{children:x("Är kunden över 23 år?")}),o(h,{children:[e(a,{appearance:"primary",onClick:()=>window.open(O,"_blank"),children:x("OK")}),e(a,{appearance:"secondary",onClick:()=>G(!1),children:x("Avbryt")})]})]})]})]})})};export{w as Sales,w as default};
@@ -1 +1 @@
1
- import{jsx as o,jsxs as e}from"react/jsx-runtime";import{useRef as t,useState as n,useEffect as i}from"react";import r from"../components/Markdown.js";import"../components/Textarea.js";import{Button as s}from"../components/Button.js";import{Title as a}from"../components/Title.js";import"../components/Spinner.js";import"../components/TextHeader.js";import m from"../components/TypingIndicator.js";import p from"../hooks/useStateWithLocalStorage.js";import{CodicentService as l}from"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as c}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./AppFrame.js";import"./Snap.js";import"./Login.js";import"./CrmPage.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import{useChat as d}from"../hooks/useChat.js";import{useTemplateVariables as g}from"../hooks/useTemplateVariables.js";import"../hooks/useAppStyles.js";import u from"../hooks/useLocalization.js";import"../components/Dialog.js";import f from"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import{Page as h}from"../components/Page.js";import{makeStyles as j}from"../node_modules/@griffel/react/makeStyles.esm.js";import{tokens as x}from"../node_modules/@fluentui/tokens/lib/tokens.js";const A=j({chatContainer:{width:"100%",flex:1,maxWidth:"800px",height:"100%",backgroundColor:"#ffffff",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},"@media (max-width: 480px)":{},backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",overflowY:"auto",marginBottom:"16px"},chatMessages:{display:"flex",flexDirection:"column",flex:1,padding:"16px",overflowY:"auto",touchAction:"pan-y"},inputArea:{display:"flex",flexDirection:"column",justifyContent:"start",alignItems:"center",height:"100%",padding:"0 16px"},promptButtons:{display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"start",alignItems:"center",gap:"8px",marginTop:"8px",marginLeft:"6px",marginRight:"2px",marginBottom:"12px"},answerArea:{width:"100%",marginLeft:"12px",marginRight:"12px",backgroundColor:c("CHAT_BOT_BACKGROUND_COLOR")||x.colorBrandBackground2,padding:"12px",borderRadius:"16px",marginBottom:"24px"},title:{marginLeft:"12px",padding:"16px"}}),C=({state:j})=>{const x=A(),{t:C}=u(),{messages:w,isBotTyping:T,handleSend:_,newChat:b}=d(j.stateMachine),v=t(null),{service:k}=j,[N,y]=p(j.context.selectedApp+"_searchprompts",["Leta information","Vad kan jag göra?","Sök supportställe"]),[S,I]=n(),[O,B]=n(null),[F,M]=n(!1);g(k.uploadFile);i((()=>{T&&M(!0)}),[T]),i((()=>{b();const o=c("APP_CONFIG"),e=c("APP_BUTTONS");e?o.apps[e].questions&&y(o.apps[e].questions.map((o=>C(o)))):console.error("APP_BUTTONS is not defined in the configuration."),void 0!==c("ANONYMOUS_CODICENT")&&void 0!==c("ANONYMOUS_TOKEN")?(k.codicent=c("ANONYMOUS_CODICENT"),k.setToken(c("ANONYMOUS_TOKEN"))):console.error("Anonymous Codicent or Token is not defined in the configuration.")}),[b,k,y,C]),i((()=>{setTimeout((()=>{v.current?.scrollIntoView({behavior:"smooth"})}),10)}),[w]);const P=o=>{I(o),_(o)};return i((()=>{const o=w.filter((o=>"bot"===o.sender));let e=o.length>0?o[o.length-1]:null;B({...e,createdAt:new Date}),e&&M(!1)}),[w]),o(h,{hideHeader:!0,hideFooter:!0,children:e("div",{id:"search-container",className:x.chatContainer,style:{backgroundImage:`url(${c("CHAT_BACKGROUND_IMAGE_URL")})`},children:[o("div",{className:x.title,children:o(a,{children:C(c("APP_SEARCH_TITLE")||"Frågor")})}),e("div",{className:x.inputArea,children:[o(f,{noMemory:!0,defaultText:S,codicent:j.context.selectedApp,disableSend:T,onSend:P,rows:3,getImageUrl:l.getImageUrl,getFileInfo:o=>k.getFileInfo(o),selectAll:!0}),o("div",{className:x.promptButtons,children:N.length>0&&N.map(((e,t)=>o(s,{onClick:()=>P(e),size:"large",appearance:"primary",shape:"circular",children:e},`search-prompt-${t}`)))}),F&&o(m,{}),O&&!T&&e("div",{className:x.answerArea,children:[o("div",{ref:v}),o(r,{content:O.content})]})]})]})})};export{C as default};
1
+ import{jsx as o,jsxs as e}from"react/jsx-runtime";import{useRef as t,useState as n,useEffect as i}from"react";import r from"../components/Markdown.js";import"../components/Textarea.js";import{Button as s}from"../components/Button.js";import{Title as a}from"../components/Title.js";import"../components/Spinner.js";import"../components/TextHeader.js";import m from"../components/TypingIndicator.js";import"../components/Dialog.js";import p from"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import l from"../hooks/useStateWithLocalStorage.js";import{CodicentService as c}from"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as d}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./AppFrame.js";import"./Snap.js";import"./Login.js";import"./CrmPage.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import{useChat as g}from"../hooks/useChat.js";import u from"../hooks/useLocalization.js";import{useTemplateVariables as f}from"../hooks/useTemplateVariables.js";import"../hooks/useAppStyles.js";import"../components/FileThumbnail.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/Content.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/HtmlView.js";import"../components/Footer.js";import{Page as h}from"../components/Page.js";import{makeStyles as j}from"../node_modules/@griffel/react/makeStyles.esm.js";import{tokens as x}from"../node_modules/@fluentui/tokens/lib/tokens.js";const A=j({chatContainer:{width:"100%",flex:1,maxWidth:"800px",height:"100%",backgroundColor:"#ffffff",display:"flex",flexDirection:"column",margin:"0 auto",overflow:"hidden","@media (max-width: 768px)":{maxWidth:"100%",borderRadius:"0"},"@media (max-width: 480px)":{},backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",overflowY:"auto",marginBottom:"16px"},chatMessages:{display:"flex",flexDirection:"column",flex:1,padding:"16px",overflowY:"auto",touchAction:"pan-y"},inputArea:{display:"flex",flexDirection:"column",justifyContent:"start",alignItems:"center",height:"100%",padding:"0 16px"},promptButtons:{display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"start",alignItems:"center",gap:"8px",marginTop:"8px",marginLeft:"6px",marginRight:"2px",marginBottom:"12px"},answerArea:{width:"100%",marginLeft:"12px",marginRight:"12px",backgroundColor:d("CHAT_BOT_BACKGROUND_COLOR")||x.colorBrandBackground2,padding:"12px",borderRadius:"16px",marginBottom:"24px"},title:{marginLeft:"12px",padding:"16px"}}),C=({state:j})=>{const x=A(),{t:C}=u(),{messages:w,isBotTyping:T,handleSend:_,newChat:b}=g(j.stateMachine),v=t(null),{service:k}=j,[N,y]=l(j.context.selectedApp+"_searchprompts",["Leta information","Vad kan jag göra?","Sök supportställe"]),[S,I]=n(),[O,B]=n(null),[F,M]=n(!1);f(k.uploadFile);i((()=>{T&&M(!0)}),[T]),i((()=>{b();const o=d("APP_CONFIG"),e=d("APP_BUTTONS");e?o.apps[e].questions&&y(o.apps[e].questions.map((o=>C(o)))):console.error("APP_BUTTONS is not defined in the configuration."),void 0!==d("ANONYMOUS_CODICENT")&&void 0!==d("ANONYMOUS_TOKEN")?(k.codicent=d("ANONYMOUS_CODICENT"),k.setToken(d("ANONYMOUS_TOKEN"))):console.error("Anonymous Codicent or Token is not defined in the configuration.")}),[b,k,y,C]),i((()=>{setTimeout((()=>{v.current?.scrollIntoView({behavior:"smooth"})}),10)}),[w]);const P=o=>{I(o),_(o)};return i((()=>{const o=w.filter((o=>"bot"===o.sender));let e=o.length>0?o[o.length-1]:null;B({...e,createdAt:new Date}),e&&M(!1)}),[w]),o(h,{hideHeader:!0,hideFooter:!0,children:e("div",{id:"search-container",className:x.chatContainer,style:{backgroundImage:`url(${d("CHAT_BACKGROUND_IMAGE_URL")})`},children:[o("div",{className:x.title,children:o(a,{children:C(d("APP_SEARCH_TITLE")||"Frågor")})}),e("div",{className:x.inputArea,children:[o(p,{noMemory:!0,defaultText:S,codicent:j.context.selectedApp,disableSend:T,onSend:P,rows:3,getImageUrl:c.getImageUrl,getFileInfo:o=>k.getFileInfo(o),selectAll:!0}),o("div",{className:x.promptButtons,children:N.length>0&&N.map(((e,t)=>o(s,{onClick:()=>P(e),size:"large",appearance:"primary",shape:"circular",children:e},`search-prompt-${t}`)))}),F&&o(m,{}),O&&!T&&e("div",{className:x.answerArea,children:[o("div",{ref:v}),o(r,{content:O.content})]})]})]})})};export{C as default};