@taon-dev/i18n 0.0.1 → 0.0.6

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 (276) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +2 -2
  2. package/bin/start.js +1 -1
  3. package/browser/fesm2022/i18n-browser.mjs +1441 -406
  4. package/browser/fesm2022/i18n-browser.mjs.map +1 -1
  5. package/browser/package.json +1 -1
  6. package/browser/types/i18n-browser.d.ts +146 -305
  7. package/browser-prod/fesm2022/i18n-browser-prod.mjs +1429 -405
  8. package/browser-prod/fesm2022/i18n-browser-prod.mjs.map +1 -1
  9. package/browser-prod/package.json +1 -1
  10. package/browser-prod/types/i18n-browser-prod.d.ts +140 -305
  11. package/browser-prod.split-namespaces.json +26 -2
  12. package/html/app/main-page/main-page.container.html +4 -0
  13. package/html/assets/generated/pwa/html-pwa.html +53 -53
  14. package/lib/build-info._auto-generated_.d.ts +1 -1
  15. package/lib/build-info._auto-generated_.js +1 -1
  16. package/lib/index._auto-generated_.d.ts +9 -14
  17. package/lib/index._auto-generated_.js +9 -14
  18. package/lib/index._auto-generated_.js.map +1 -1
  19. package/lib/package.json +1 -1
  20. package/lib/start-cli.js +6 -4
  21. package/lib/start-cli.js.map +1 -1
  22. package/lib/translate.directive.d.ts +15 -0
  23. package/lib/translate.pipe.d.ts +10 -0
  24. package/lib/translate.service.d.ts +13 -0
  25. package/lib/translation-manager.d.ts +33 -0
  26. package/lib/translation-manager.js +119 -0
  27. package/lib/translation-manager.js.map +1 -0
  28. package/lib/translation.d.ts +44 -0
  29. package/lib/translation.js +253 -0
  30. package/lib/translation.js.map +1 -0
  31. package/lib/translation.models.d.ts +25 -0
  32. package/lib/{features/types.js → translation.models.js} +1 -1
  33. package/lib/translation.models.js.map +1 -0
  34. package/lib/utils-i18n-extract-gettext-translate-from-html.d.ts +4 -0
  35. package/lib/utils-i18n-extract-gettext-translate-from-html.js +465 -0
  36. package/lib/utils-i18n-extract-gettext-translate-from-html.js.map +1 -0
  37. package/lib/utils-i18n-extract-gettext-translate-from-html.test.d.ts +1 -0
  38. package/lib/utils-i18n-extract-gettext-translate-from-html.test.js +282 -0
  39. package/lib/utils-i18n-extract-gettext-translate-from-html.test.js.map +1 -0
  40. package/lib/utils-i18n-html.d.ts +5 -0
  41. package/lib/utils-i18n-html.js +120 -0
  42. package/lib/utils-i18n-html.js.map +1 -0
  43. package/lib/utils-i18n-html.test.d.ts +1 -0
  44. package/lib/utils-i18n-html.test.js +82 -0
  45. package/lib/utils-i18n-html.test.js.map +1 -0
  46. package/lib/utils-po-file.d.ts +8 -0
  47. package/lib/utils-po-file.js +245 -0
  48. package/lib/utils-po-file.js.map +1 -0
  49. package/lib/utils-po-file.test.d.ts +1 -0
  50. package/lib/utils-po-file.test.js +239 -0
  51. package/lib/utils-po-file.test.js.map +1 -0
  52. package/lib-esm/app/main-page/main-page.active.context.d.ts +19 -0
  53. package/lib-esm/app/main-page/main-page.active.context.js +19 -0
  54. package/lib-esm/app/main-page/main-page.active.context.js.map +1 -0
  55. package/lib-esm/app.electron.d.ts +1 -1
  56. package/lib-esm/app.electron.js +1 -1
  57. package/lib-esm/app.hosts.d.ts +54 -2
  58. package/lib-esm/app.hosts.js +64 -4
  59. package/lib-esm/app.hosts.js.map +1 -1
  60. package/lib-esm/app.js +9 -9
  61. package/lib-esm/app.js.map +1 -1
  62. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  63. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  64. package/lib-esm/lib/index._auto-generated_.d.ts +6 -14
  65. package/lib-esm/lib/index._auto-generated_.js +9 -14
  66. package/lib-esm/lib/index._auto-generated_.js.map +1 -1
  67. package/lib-esm/lib/start-cli.js +6 -4
  68. package/lib-esm/lib/start-cli.js.map +1 -1
  69. package/lib-esm/lib/translation-manager.d.ts +33 -0
  70. package/lib-esm/lib/translation-manager.js +115 -0
  71. package/lib-esm/lib/translation-manager.js.map +1 -0
  72. package/lib-esm/lib/translation.d.ts +43 -0
  73. package/lib-esm/lib/translation.js +249 -0
  74. package/lib-esm/lib/translation.js.map +1 -0
  75. package/lib-esm/lib/translation.models.d.ts +25 -0
  76. package/lib-esm/lib/translation.models.js +2 -0
  77. package/lib-esm/lib/translation.models.js.map +1 -0
  78. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.d.ts +4 -0
  79. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.js +462 -0
  80. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.js.map +1 -0
  81. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.test.d.ts +1 -0
  82. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.test.js +280 -0
  83. package/lib-esm/lib/utils-i18n-extract-gettext-translate-from-html.test.js.map +1 -0
  84. package/lib-esm/lib/utils-i18n-html.d.ts +5 -0
  85. package/lib-esm/lib/utils-i18n-html.js +117 -0
  86. package/lib-esm/lib/utils-i18n-html.js.map +1 -0
  87. package/lib-esm/lib/utils-i18n-html.test.d.ts +1 -0
  88. package/lib-esm/lib/utils-i18n-html.test.js +80 -0
  89. package/lib-esm/lib/utils-i18n-html.test.js.map +1 -0
  90. package/lib-esm/lib/utils-po-file.d.ts +8 -0
  91. package/lib-esm/lib/utils-po-file.js +242 -0
  92. package/lib-esm/lib/utils-po-file.js.map +1 -0
  93. package/lib-esm/lib/utils-po-file.test.d.ts +1 -0
  94. package/lib-esm/lib/utils-po-file.test.js +237 -0
  95. package/lib-esm/lib/utils-po-file.test.js.map +1 -0
  96. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  97. package/lib-prod/build-info._auto-generated_.js +1 -1
  98. package/lib-prod/index._auto-generated_.d.ts +6 -14
  99. package/lib-prod/index._auto-generated_.js +9 -14
  100. package/lib-prod/index._auto-generated_.js.map +1 -1
  101. package/lib-prod/package.json +1 -1
  102. package/lib-prod/start-cli.js +6 -4
  103. package/lib-prod/start-cli.js.map +1 -1
  104. package/lib-prod/translation-manager.d.ts +33 -0
  105. package/lib-prod/translation-manager.js +115 -0
  106. package/lib-prod/translation-manager.js.map +1 -0
  107. package/lib-prod/translation.d.ts +43 -0
  108. package/lib-prod/translation.js +249 -0
  109. package/lib-prod/translation.js.map +1 -0
  110. package/lib-prod/translation.models.d.ts +25 -0
  111. package/lib-prod/translation.models.js +2 -0
  112. package/lib-prod/translation.models.js.map +1 -0
  113. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.d.ts +2 -0
  114. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.js +460 -0
  115. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.js.map +1 -0
  116. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.test.d.ts +1 -0
  117. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.test.js +280 -0
  118. package/lib-prod/utils-i18n-extract-gettext-translate-from-html.test.js.map +1 -0
  119. package/lib-prod/utils-i18n-html.d.ts +3 -0
  120. package/lib-prod/utils-i18n-html.js +114 -0
  121. package/lib-prod/utils-i18n-html.js.map +1 -0
  122. package/lib-prod/utils-i18n-html.test.d.ts +1 -0
  123. package/lib-prod/utils-i18n-html.test.js +80 -0
  124. package/lib-prod/utils-i18n-html.test.js.map +1 -0
  125. package/lib-prod/utils-po-file.d.ts +6 -0
  126. package/lib-prod/utils-po-file.js +236 -0
  127. package/lib-prod/utils-po-file.js.map +1 -0
  128. package/lib-prod/utils-po-file.test.d.ts +1 -0
  129. package/lib-prod/utils-po-file.test.js +237 -0
  130. package/lib-prod/utils-po-file.test.js.map +1 -0
  131. package/lib-prod.split-namespaces.json +26 -2
  132. package/package.json +4 -2
  133. package/scss/app/main-page/main-page.container.scss +3 -0
  134. package/websql/fesm2022/i18n-websql.mjs +1441 -406
  135. package/websql/fesm2022/i18n-websql.mjs.map +1 -1
  136. package/websql/package.json +1 -1
  137. package/websql/types/i18n-websql.d.ts +146 -305
  138. package/websql-prod/fesm2022/i18n-websql-prod.mjs +1429 -405
  139. package/websql-prod/fesm2022/i18n-websql-prod.mjs.map +1 -1
  140. package/websql-prod/package.json +1 -1
  141. package/websql-prod/types/i18n-websql-prod.d.ts +140 -305
  142. package/websql-prod.split-namespaces.json +26 -2
  143. package/lib/features/index.d.ts +0 -4
  144. package/lib/features/index.js +0 -21
  145. package/lib/features/index.js.map +0 -1
  146. package/lib/features/types.d.ts +0 -4
  147. package/lib/features/types.js.map +0 -1
  148. package/lib/features/withLanguageLocalStorageSync.d.ts +0 -9
  149. package/lib/features/withLanguageLocalStorageSync.js +0 -39
  150. package/lib/features/withLanguageLocalStorageSync.js.map +0 -1
  151. package/lib/features/withNavigatorLanguage.d.ts +0 -6
  152. package/lib/features/withNavigatorLanguage.js +0 -29
  153. package/lib/features/withNavigatorLanguage.js.map +0 -1
  154. package/lib/features/withPreloadScopes.d.ts +0 -8
  155. package/lib/features/withPreloadScopes.js +0 -25
  156. package/lib/features/withPreloadScopes.js.map +0 -1
  157. package/lib/features/withServerSideLanguage.d.ts +0 -6
  158. package/lib/features/withServerSideLanguage.js +0 -29
  159. package/lib/features/withServerSideLanguage.js.map +0 -1
  160. package/lib/features/withTranslatedTitle.d.ts +0 -34
  161. package/lib/features/withTranslatedTitle.js +0 -69
  162. package/lib/features/withTranslatedTitle.js.map +0 -1
  163. package/lib/internals.d.ts +0 -2
  164. package/lib/internals.js +0 -6
  165. package/lib/internals.js.map +0 -1
  166. package/lib/transignal-config.d.ts +0 -34
  167. package/lib/transignal-config.js +0 -42
  168. package/lib/transignal-config.js.map +0 -1
  169. package/lib/transignal-param-handlers.d.ts +0 -11
  170. package/lib/transignal-param-handlers.js +0 -31
  171. package/lib/transignal-param-handlers.js.map +0 -1
  172. package/lib/transignal-service.d.ts +0 -32
  173. package/lib/transignal-service.js +0 -206
  174. package/lib/transignal-service.js.map +0 -1
  175. package/lib/transignal-testing.d.ts +0 -8
  176. package/lib/transignal-testing.js +0 -14
  177. package/lib/transignal-testing.js.map +0 -1
  178. package/lib/types.d.ts +0 -124
  179. package/lib/types.js +0 -3
  180. package/lib/types.js.map +0 -1
  181. package/lib/utility-types.d.ts +0 -29
  182. package/lib/utility-types.js +0 -3
  183. package/lib/utility-types.js.map +0 -1
  184. package/lib/utils.d.ts +0 -15
  185. package/lib/utils.js +0 -20
  186. package/lib/utils.js.map +0 -1
  187. package/lib-esm/lib/features/index.d.ts +0 -4
  188. package/lib-esm/lib/features/index.js +0 -5
  189. package/lib-esm/lib/features/index.js.map +0 -1
  190. package/lib-esm/lib/features/types.d.ts +0 -4
  191. package/lib-esm/lib/features/types.js +0 -2
  192. package/lib-esm/lib/features/types.js.map +0 -1
  193. package/lib-esm/lib/features/withLanguageLocalStorageSync.d.ts +0 -9
  194. package/lib-esm/lib/features/withLanguageLocalStorageSync.js +0 -35
  195. package/lib-esm/lib/features/withLanguageLocalStorageSync.js.map +0 -1
  196. package/lib-esm/lib/features/withNavigatorLanguage.d.ts +0 -6
  197. package/lib-esm/lib/features/withNavigatorLanguage.js +0 -25
  198. package/lib-esm/lib/features/withNavigatorLanguage.js.map +0 -1
  199. package/lib-esm/lib/features/withPreloadScopes.d.ts +0 -8
  200. package/lib-esm/lib/features/withPreloadScopes.js +0 -21
  201. package/lib-esm/lib/features/withPreloadScopes.js.map +0 -1
  202. package/lib-esm/lib/features/withServerSideLanguage.d.ts +0 -6
  203. package/lib-esm/lib/features/withServerSideLanguage.js +0 -25
  204. package/lib-esm/lib/features/withServerSideLanguage.js.map +0 -1
  205. package/lib-esm/lib/features/withTranslatedTitle.d.ts +0 -34
  206. package/lib-esm/lib/features/withTranslatedTitle.js +0 -65
  207. package/lib-esm/lib/features/withTranslatedTitle.js.map +0 -1
  208. package/lib-esm/lib/internals.d.ts +0 -2
  209. package/lib-esm/lib/internals.js +0 -3
  210. package/lib-esm/lib/internals.js.map +0 -1
  211. package/lib-esm/lib/transignal-config.d.ts +0 -34
  212. package/lib-esm/lib/transignal-config.js +0 -36
  213. package/lib-esm/lib/transignal-config.js.map +0 -1
  214. package/lib-esm/lib/transignal-param-handlers.d.ts +0 -11
  215. package/lib-esm/lib/transignal-param-handlers.js +0 -25
  216. package/lib-esm/lib/transignal-param-handlers.js.map +0 -1
  217. package/lib-esm/lib/transignal-service.d.ts +0 -32
  218. package/lib-esm/lib/transignal-service.js +0 -197
  219. package/lib-esm/lib/transignal-service.js.map +0 -1
  220. package/lib-esm/lib/transignal-testing.d.ts +0 -8
  221. package/lib-esm/lib/transignal-testing.js +0 -10
  222. package/lib-esm/lib/transignal-testing.js.map +0 -1
  223. package/lib-esm/lib/types.d.ts +0 -124
  224. package/lib-esm/lib/types.js +0 -2
  225. package/lib-esm/lib/types.js.map +0 -1
  226. package/lib-esm/lib/utility-types.d.ts +0 -29
  227. package/lib-esm/lib/utility-types.js +0 -2
  228. package/lib-esm/lib/utility-types.js.map +0 -1
  229. package/lib-esm/lib/utils.d.ts +0 -15
  230. package/lib-esm/lib/utils.js +0 -15
  231. package/lib-esm/lib/utils.js.map +0 -1
  232. package/lib-prod/features/index.d.ts +0 -4
  233. package/lib-prod/features/index.js +0 -5
  234. package/lib-prod/features/index.js.map +0 -1
  235. package/lib-prod/features/types.d.ts +0 -4
  236. package/lib-prod/features/types.js +0 -2
  237. package/lib-prod/features/types.js.map +0 -1
  238. package/lib-prod/features/withLanguageLocalStorageSync.d.ts +0 -9
  239. package/lib-prod/features/withLanguageLocalStorageSync.js +0 -35
  240. package/lib-prod/features/withLanguageLocalStorageSync.js.map +0 -1
  241. package/lib-prod/features/withNavigatorLanguage.d.ts +0 -6
  242. package/lib-prod/features/withNavigatorLanguage.js +0 -25
  243. package/lib-prod/features/withNavigatorLanguage.js.map +0 -1
  244. package/lib-prod/features/withPreloadScopes.d.ts +0 -8
  245. package/lib-prod/features/withPreloadScopes.js +0 -21
  246. package/lib-prod/features/withPreloadScopes.js.map +0 -1
  247. package/lib-prod/features/withServerSideLanguage.d.ts +0 -6
  248. package/lib-prod/features/withServerSideLanguage.js +0 -25
  249. package/lib-prod/features/withServerSideLanguage.js.map +0 -1
  250. package/lib-prod/features/withTranslatedTitle.d.ts +0 -34
  251. package/lib-prod/features/withTranslatedTitle.js +0 -65
  252. package/lib-prod/features/withTranslatedTitle.js.map +0 -1
  253. package/lib-prod/internals.d.ts +0 -2
  254. package/lib-prod/internals.js +0 -3
  255. package/lib-prod/internals.js.map +0 -1
  256. package/lib-prod/transignal-config.d.ts +0 -34
  257. package/lib-prod/transignal-config.js +0 -36
  258. package/lib-prod/transignal-config.js.map +0 -1
  259. package/lib-prod/transignal-param-handlers.d.ts +0 -11
  260. package/lib-prod/transignal-param-handlers.js +0 -25
  261. package/lib-prod/transignal-param-handlers.js.map +0 -1
  262. package/lib-prod/transignal-service.d.ts +0 -32
  263. package/lib-prod/transignal-service.js +0 -197
  264. package/lib-prod/transignal-service.js.map +0 -1
  265. package/lib-prod/transignal-testing.d.ts +0 -8
  266. package/lib-prod/transignal-testing.js +0 -10
  267. package/lib-prod/transignal-testing.js.map +0 -1
  268. package/lib-prod/types.d.ts +0 -124
  269. package/lib-prod/types.js +0 -2
  270. package/lib-prod/types.js.map +0 -1
  271. package/lib-prod/utility-types.d.ts +0 -29
  272. package/lib-prod/utility-types.js +0 -2
  273. package/lib-prod/utility-types.js.map +0 -1
  274. package/lib-prod/utils.d.ts +0 -15
  275. package/lib-prod/utils.js +0 -15
  276. package/lib-prod/utils.js.map +0 -1
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withNavigatorLanguage = void 0;
4
- const common_1 = require("@angular/common");
5
- const core_1 = require("@angular/core");
6
- const transignal_config_1 = require("../transignal-config");
7
- const transignal_service_1 = require("../transignal-service");
8
- /**
9
- * Sets active language depending on `navigator.language`, which represents user defined browser settings
10
- * Works only in browser environment
11
- */
12
- const withNavigatorLanguage = () => {
13
- return {
14
- providers: [
15
- (0, core_1.provideAppInitializer)(() => {
16
- if ((0, common_1.isPlatformBrowser)((0, core_1.inject)(core_1.PLATFORM_ID))) {
17
- const transignalService = (0, core_1.inject)(transignal_service_1.TransignalService);
18
- const { availableLangs } = (0, transignal_config_1.injectTransignalConfig)();
19
- const preferredLanguage = navigator.languages.map(language => language.split('-')[0].toLowerCase()).find(language => availableLangs.includes(language));
20
- if (preferredLanguage) {
21
- transignalService.activeLang.set(preferredLanguage);
22
- }
23
- }
24
- }),
25
- ],
26
- };
27
- };
28
- exports.withNavigatorLanguage = withNavigatorLanguage;
29
- //# sourceMappingURL=withNavigatorLanguage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withNavigatorLanguage.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,4CAAoD;AACpD,wCAA2E;AAG3E,4DAA8D;AAC9D,8DAA0D;AAE1D;;;GAGG;AACI,MAAM,qBAAqB,GAAG,GAGW,EAAE;IAChD,OAAO;QACL,SAAS,EAAE;YACT,IAAA,4BAAqB,EAAC,GAAG,EAAE;gBACzB,IAAI,IAAA,0BAAiB,EAAC,IAAA,aAAM,EAAC,kBAAW,CAAC,CAAC,EAAE,CAAC;oBAC3C,MAAM,iBAAiB,GAAG,IAAA,aAAM,EAAC,sCAAiB,CAAC,CAAC;oBACpD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,0CAAsB,GAAE,CAAC;oBACpD,MAAM,iBAAiB,GACrB,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CACzE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACtD,IAAI,iBAAiB,EAAE,CAAC;wBACtB,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;SACH;KACF,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,qBAAqB,yBAoBhC"}
@@ -1,8 +0,0 @@
1
- import { TransignalFeature } from './types';
2
- import { StringKeys } from '../utility-types';
3
- /**
4
- * Preloads selected scopes in default language
5
- * Use after language init by {@link withServerSideLanguage} or {@link withNavigatorLanguage}
6
- * @param scopes Scopes which should be preloaded
7
- */
8
- export declare const withPreloadScopes: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>(scopes: StringKeys<Translations>[]) => TransignalFeature<Languages, Translations>;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withPreloadScopes = void 0;
4
- const core_1 = require("@angular/core");
5
- const transignal_service_1 = require("../transignal-service");
6
- /**
7
- * Preloads selected scopes in default language
8
- * Use after language init by {@link withServerSideLanguage} or {@link withNavigatorLanguage}
9
- * @param scopes Scopes which should be preloaded
10
- */
11
- const withPreloadScopes = (scopes) => {
12
- return {
13
- providers: [
14
- (0, core_1.provideAppInitializer)(() => {
15
- const transignalService = (0, core_1.inject)(transignal_service_1.TransignalService);
16
- (0, core_1.effect)(() => {
17
- const _activeLang = transignalService.activeLang();
18
- scopes.forEach(scope => transignalService.t(scope)(''));
19
- });
20
- }),
21
- ],
22
- };
23
- };
24
- exports.withPreloadScopes = withPreloadScopes;
25
- //# sourceMappingURL=withPreloadScopes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withPreloadScopes.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,wCAAsE;AAGtE,8DAA0D;AAG1D;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,CAI/B,MAAkC,EACU,EAAE;IAC9C,OAAO;QACL,SAAS,EAAE;YACT,IAAA,4BAAqB,EAAC,GAAG,EAAE;gBACzB,MAAM,iBAAiB,GAAG,IAAA,aAAM,EAAC,sCAAiB,CAAC,CAAC;gBACpD,IAAA,aAAM,EAAC,GAAG,EAAE;oBACV,MAAM,WAAW,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;oBACnD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;SACH;KACF,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,iBAAiB,qBAiB5B"}
@@ -1,6 +0,0 @@
1
- import { TransignalFeature } from './types';
2
- /**
3
- * Sets active language depending on `document.lang` attribute which should be set by the server.ts depending on `Accept-language` header
4
- * Works only in SSR environment
5
- */
6
- export declare const withServerSideLanguage: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>() => TransignalFeature<Languages, Translations>;
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withServerSideLanguage = void 0;
4
- const common_1 = require("@angular/common");
5
- const core_1 = require("@angular/core");
6
- const transignal_config_1 = require("../transignal-config");
7
- const transignal_service_1 = require("../transignal-service");
8
- /**
9
- * Sets active language depending on `document.lang` attribute which should be set by the server.ts depending on `Accept-language` header
10
- * Works only in SSR environment
11
- */
12
- const withServerSideLanguage = () => {
13
- return {
14
- providers: [
15
- (0, core_1.provideAppInitializer)(() => {
16
- if ((0, common_1.isPlatformServer)((0, core_1.inject)(core_1.PLATFORM_ID))) {
17
- const transignalService = (0, core_1.inject)(transignal_service_1.TransignalService);
18
- const { documentElement } = (0, core_1.inject)(core_1.DOCUMENT);
19
- const { availableLangs } = (0, transignal_config_1.injectTransignalConfig)();
20
- if (availableLangs.includes(documentElement.lang)) {
21
- transignalService.activeLang.set(documentElement.lang);
22
- }
23
- }
24
- }),
25
- ],
26
- };
27
- };
28
- exports.withServerSideLanguage = withServerSideLanguage;
29
- //# sourceMappingURL=withServerSideLanguage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withServerSideLanguage.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,4CAAmD;AACnD,wCAAqF;AAGrF,4DAA8D;AAC9D,8DAA0D;AAE1D;;;GAGG;AACI,MAAM,sBAAsB,GAAG,GAGU,EAAE;IAChD,OAAO;QACL,SAAS,EAAE;YACT,IAAA,4BAAqB,EAAC,GAAG,EAAE;gBACzB,IAAI,IAAA,yBAAgB,EAAC,IAAA,aAAM,EAAC,kBAAW,CAAC,CAAC,EAAE,CAAC;oBAC1C,MAAM,iBAAiB,GAAG,IAAA,aAAM,EAAC,sCAAiB,CAAC,CAAC;oBACpD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,aAAM,EAAC,eAAQ,CAAC,CAAC;oBAC7C,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,0CAAsB,GAAE,CAAC;oBACpD,IAAI,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClD,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;SACH;KACF,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,sBAAsB,0BAkBjC"}
@@ -1,34 +0,0 @@
1
- import { TransignalFeature } from './types';
2
- import { StringKeys } from '../utility-types';
3
- /**
4
- * Enables translation of title param in route definition with use of prepared {@link TitleStrategy}
5
- * Automatically translates `title` param form route definition, sets website title and updates on language changes
6
- * Also it is possible to use parameters from `navigation.extras.state`
7
- *
8
- * @example
9
- * ```typescript
10
- * // src/app/app.routes.ts
11
- * export const routes = [
12
- * { path: 'base', title: 'base', children: [
13
- * { path: 'child', title: 'child' },
14
- * ],
15
- * { path: 'aux', outlet: 'popup', title: 'popupTitle' }
16
- * ];
17
- *
18
- * // src/app/transignal.ts
19
- * export const transignal = prepareTransignal(<config>, withTranslatedTitle('global'));
20
- *
21
- * // src/app/i18n/global/en.ts
22
- * export default {
23
- * title: {
24
- * base: 'Base title',
25
- * child: 'Child title'
26
- * popupTitle: 'Popup title'
27
- * }
28
- * };
29
- * ```
30
- *
31
- * @param scope scope under which there are title translations
32
- * @param translationKey translation key under which there are translations, `title` by default
33
- */
34
- export declare const withTranslatedTitle: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>(scope: StringKeys<Translations>, translationKey?: string) => TransignalFeature<Languages, Translations>;
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withTranslatedTitle = void 0;
4
- const core_1 = require("@angular/core");
5
- const platform_browser_1 = require("@angular/platform-browser");
6
- const router_1 = require("@angular/router");
7
- const transignal_service_1 = require("../transignal-service");
8
- class TransignalTitleStrategy extends router_1.TitleStrategy {
9
- t;
10
- title = (0, core_1.inject)(platform_browser_1.Title);
11
- injector = (0, core_1.inject)(core_1.EnvironmentInjector);
12
- effectRef;
13
- constructor(t) {
14
- super();
15
- this.t = t;
16
- }
17
- updateTitle(routerState) {
18
- this.effectRef?.destroy();
19
- const router = this.injector.get(router_1.Router);
20
- const title = this.buildTitle(routerState) || 'default';
21
- const translation = (0, core_1.computed)(() => this.t(title, router.getCurrentNavigation()?.extras.state));
22
- this.effectRef = (0, core_1.runInInjectionContext)(this.injector, () => (0, core_1.effect)(() => this.title.setTitle(translation()), { manualCleanup: true }));
23
- }
24
- }
25
- /**
26
- * Enables translation of title param in route definition with use of prepared {@link TitleStrategy}
27
- * Automatically translates `title` param form route definition, sets website title and updates on language changes
28
- * Also it is possible to use parameters from `navigation.extras.state`
29
- *
30
- * @example
31
- * ```typescript
32
- * // src/app/app.routes.ts
33
- * export const routes = [
34
- * { path: 'base', title: 'base', children: [
35
- * { path: 'child', title: 'child' },
36
- * ],
37
- * { path: 'aux', outlet: 'popup', title: 'popupTitle' }
38
- * ];
39
- *
40
- * // src/app/transignal.ts
41
- * export const transignal = prepareTransignal(<config>, withTranslatedTitle('global'));
42
- *
43
- * // src/app/i18n/global/en.ts
44
- * export default {
45
- * title: {
46
- * base: 'Base title',
47
- * child: 'Child title'
48
- * popupTitle: 'Popup title'
49
- * }
50
- * };
51
- * ```
52
- *
53
- * @param scope scope under which there are title translations
54
- * @param translationKey translation key under which there are translations, `title` by default
55
- */
56
- const withTranslatedTitle = (scope, translationKey = 'title') => {
57
- return {
58
- providers: [
59
- (0, core_1.makeEnvironmentProviders)([
60
- {
61
- provide: router_1.TitleStrategy,
62
- useFactory: (service = (0, core_1.inject)(transignal_service_1.TransignalService)) => new TransignalTitleStrategy(service.t(scope).prefix(translationKey)),
63
- },
64
- ]),
65
- ],
66
- };
67
- };
68
- exports.withTranslatedTitle = withTranslatedTitle;
69
- //# sourceMappingURL=withTranslatedTitle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withTranslatedTitle.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,wCAQuB;AACvB,gEAAkD;AAClD,4CAA6E;AAG7E,8DAA0D;AAI1D,MAAM,uBAAwB,SAAQ,sBAAa;IAMpB;IALZ,KAAK,GAAG,IAAA,aAAM,EAAC,wBAAK,CAAC,CAAC;IACtB,QAAQ,GAAG,IAAA,aAAM,EAAC,0BAAmB,CAAC,CAAC;IAEhD,SAAS,CAAwB;IAEzC,YAA6B,CAAuC;QAClE,KAAK,EAAE,CAAC;QADmB,MAAC,GAAD,CAAC,CAAsC;IAEpE,CAAC;IAED,WAAW,CAAC,WAAgC;QAC1C,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAM,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;QACxD,MAAM,WAAW,GAAG,IAAA,eAAQ,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,oBAAoB,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAE/F,IAAI,CAAC,SAAS,GAAG,IAAA,4BAAqB,EAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CACzD,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC1E,CAAC;IACJ,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACI,MAAM,mBAAmB,GAAG,CAIjC,KAA+B,EAC/B,cAAc,GAAG,OAAO,EACoB,EAAE;IAC9C,OAAO;QACL,SAAS,EAAE;YACT,IAAA,+BAAwB,EAAC;gBACvB;oBACE,OAAO,EAAE,sBAAa;oBACtB,UAAU,EAAE,CAAC,OAAO,GAAG,IAAA,aAAM,EAAC,sCAAiB,CAAC,EAAE,EAAE,CAClD,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;iBACvE;aACF,CAAC;SACH;KACF,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B"}
@@ -1,2 +0,0 @@
1
- export declare const INTERNAL_TRANSIGNAL_CONFIG: unique symbol;
2
- export declare const TREE_SHAKED_TRANSLATIONS: unique symbol;
package/lib/internals.js DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TREE_SHAKED_TRANSLATIONS = exports.INTERNAL_TRANSIGNAL_CONFIG = void 0;
4
- exports.INTERNAL_TRANSIGNAL_CONFIG = Symbol('INTERNAL_TRANSIGNAL_CONFIG');
5
- exports.TREE_SHAKED_TRANSLATIONS = Symbol('TREE_SHAKED_TRANSLATIONS');
6
- //# sourceMappingURL=internals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internals.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAa,QAAA,0BAA0B,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AAClE,QAAA,wBAAwB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC"}
@@ -1,34 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { TransignalFeature } from './features/types';
3
- import { INTERNAL_TRANSIGNAL_CONFIG } from './internals';
4
- import { TransignalService } from './transignal-service';
5
- import { TransignalConfig } from './types';
6
- import { StringKeys } from './utility-types';
7
- /**
8
- * Utility function to define a type of translations for type inference
9
- */
10
- export declare const treeShakedTranslations: <Translations extends Record<string, Record<string, unknown>>>() => Translations;
11
- export declare const TRANSIGNAL_CONFIG: InjectionToken<unknown>;
12
- /**
13
- * Use to inject transignal config
14
- */
15
- export declare const injectTransignalConfig: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>() => TransignalConfig<Languages, Translations>;
16
- /**
17
- * Prepares type-safe transignal object
18
- * @param config Transignal configruation {@link TransignalConfig}
19
- * @param features Extra tree-shakeable features
20
- * - {@link withPreloadScopes} - preloads selected scopes
21
- * - {@link withServerSideLanguage} - sets language based on `document.lang` in SSR environment
22
- * - {@link withNavigatorLanguage} - sets language based on `navigator.language` in browser environment
23
- * - {@link withLanguageLocalStorageSync} - syncs language with localStorage
24
- * - {@link withTranslatedTitle} - enables translation of page title
25
- */
26
- export declare const prepareTransignal: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>(config: TransignalConfig<Languages, Translations>, ...features: NoInfer<TransignalFeature<Languages, Translations>[]>) => {
27
- [INTERNAL_TRANSIGNAL_CONFIG]: {
28
- config: TransignalConfig<Languages, Translations>;
29
- features: TransignalFeature<Languages, Translations>[];
30
- };
31
- provide: () => import("@angular/core", { with: { "resolution-mode": "import" } }).EnvironmentProviders;
32
- service: () => TransignalService<Languages, Translations, StringKeys<Translations>>;
33
- t: <Scope extends StringKeys<Translations>>(scope: Scope) => import("./types").TranslateObj<Translations[Scope]>;
34
- };
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.prepareTransignal = exports.injectTransignalConfig = exports.TRANSIGNAL_CONFIG = exports.treeShakedTranslations = void 0;
4
- const core_1 = require("@angular/core");
5
- const internals_1 = require("./internals");
6
- const transignal_service_1 = require("./transignal-service");
7
- /**
8
- * Utility function to define a type of translations for type inference
9
- */
10
- const treeShakedTranslations = () => internals_1.TREE_SHAKED_TRANSLATIONS;
11
- exports.treeShakedTranslations = treeShakedTranslations;
12
- exports.TRANSIGNAL_CONFIG = new core_1.InjectionToken('TRANSIGNAL_CONFIG');
13
- /**
14
- * Use to inject transignal config
15
- */
16
- const injectTransignalConfig = () => (0, core_1.inject)(exports.TRANSIGNAL_CONFIG);
17
- exports.injectTransignalConfig = injectTransignalConfig;
18
- /**
19
- * Prepares type-safe transignal object
20
- * @param config Transignal configruation {@link TransignalConfig}
21
- * @param features Extra tree-shakeable features
22
- * - {@link withPreloadScopes} - preloads selected scopes
23
- * - {@link withServerSideLanguage} - sets language based on `document.lang` in SSR environment
24
- * - {@link withNavigatorLanguage} - sets language based on `navigator.language` in browser environment
25
- * - {@link withLanguageLocalStorageSync} - syncs language with localStorage
26
- * - {@link withTranslatedTitle} - enables translation of page title
27
- */
28
- const prepareTransignal = (config, ...features) => {
29
- const service = () => (0, core_1.inject)(transignal_service_1.TransignalService);
30
- return {
31
- [internals_1.INTERNAL_TRANSIGNAL_CONFIG]: { config, features },
32
- provide: () => (0, core_1.makeEnvironmentProviders)([
33
- { provide: exports.TRANSIGNAL_CONFIG, useValue: config },
34
- transignal_service_1.TransignalService,
35
- features.map(feature => feature.providers),
36
- ]),
37
- service,
38
- t: (scope) => service().t(scope),
39
- };
40
- };
41
- exports.prepareTransignal = prepareTransignal;
42
- //# sourceMappingURL=transignal-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transignal-config.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,wCAAiF;AAGjF,2CAAmF;AACnF,6DAAyD;AAIzD;;GAEG;AACI,MAAM,sBAAsB,GAAG,GAElC,EAAE,CAAC,oCAAmD,CAAC;AAF9C,QAAA,sBAAsB,0BAEwB;AAE9C,QAAA,iBAAiB,GAAG,IAAI,qBAAc,CAAC,mBAAmB,CAAC,CAAC;AAEzE;;GAEG;AACI,MAAM,sBAAsB,GAAG,GAGlC,EAAE,CAAC,IAAA,aAAM,EAA4C,yBAAiB,CAAC,CAAC;AAH/D,QAAA,sBAAsB,0BAGyC;AAE5E;;;;;;;;;GASG;AACI,MAAM,iBAAiB,GAAG,CAI/B,MAAiD,EACjD,GAAG,QAA+D,EAClE,EAAE;IACF,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,IAAA,aAAM,EAAuE,sCAAiB,CAAC,CAAC;IAClG,OAAO;QACL,CAAC,sCAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAClD,OAAO,EAAE,GAAG,EAAE,CACZ,IAAA,+BAAwB,EAAC;YACvB,EAAE,OAAO,EAAE,yBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE;YAChD,sCAAiB;YACjB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;SAC3C,CAAC;QACJ,OAAO;QACP,CAAC,EAAE,CAAyC,KAAY,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;KAChF,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,iBAAiB,qBAoB5B"}
@@ -1,11 +0,0 @@
1
- import { TranslateParams } from './types';
2
- export type ParamHandler = (translation: string, params?: TranslateParams) => string;
3
- /**
4
- * Param handler which allows for specification of basic params: `{name}`
5
- *
6
- * @param translation Translated text
7
- * @param params Params provided to translation function
8
- */
9
- export declare const simpleParamsHandler: ParamHandler;
10
- export declare const noParamsHandler: ParamHandler;
11
- export declare const simpleParamValueStringify: (paramValue: unknown) => any;
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.simpleParamValueStringify = exports.noParamsHandler = exports.simpleParamsHandler = void 0;
4
- /**
5
- * Param handler which allows for specification of basic params: `{name}`
6
- *
7
- * @param translation Translated text
8
- * @param params Params provided to translation function
9
- */
10
- const simpleParamsHandler = (translation, params) => {
11
- if (!params)
12
- return translation;
13
- for (const [key, value] of Object.entries(params)) {
14
- translation = translation.replaceAll(`{${key}}`, (0, exports.simpleParamValueStringify)(value));
15
- }
16
- return translation;
17
- };
18
- exports.simpleParamsHandler = simpleParamsHandler;
19
- const noParamsHandler = translation => translation;
20
- exports.noParamsHandler = noParamsHandler;
21
- const simpleParamValueStringify = (paramValue) => {
22
- if (typeof paramValue === 'string') {
23
- return paramValue;
24
- }
25
- if (paramValue == null) {
26
- return '';
27
- }
28
- return paramValue.toString();
29
- };
30
- exports.simpleParamValueStringify = simpleParamValueStringify;
31
- //# sourceMappingURL=transignal-param-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transignal-param-handlers.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAIA;;;;;GAKG;AACI,MAAM,mBAAmB,GAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE;IACvE,IAAI,CAAC,MAAM;QAAE,OAAO,WAAW,CAAC;IAChC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,EAAE,IAAA,iCAAyB,EAAC,KAAK,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AANW,QAAA,mBAAmB,uBAM9B;AAEK,MAAM,eAAe,GAAiB,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC;AAA3D,QAAA,eAAe,mBAA4C;AAEjE,MAAM,yBAAyB,GAAG,CAAC,UAAmB,EAAE,EAAE;IAC/D,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAQ,UAAkB,CAAC,QAAQ,EAAE,CAAC;AACxC,CAAC,CAAC;AARW,QAAA,yBAAyB,6BAQpC"}
@@ -1,32 +0,0 @@
1
- import { TranslateObj, TranslateParams } from './types';
2
- import { StringKeys } from './utility-types';
3
- /**
4
- * Main transignal service, used to process and cache translations
5
- * Can be injected directly or with use of transignal object created with {@link prepareTransignal} function (recommended)
6
- */
7
- export declare class TransignalService<Languages extends string, Translations extends Record<string, Record<string, any>>, Scopes extends StringKeys<Translations>> {
8
- private readonly injector;
9
- private readonly config;
10
- private readonly paramsHandler;
11
- private readonly loadingFn;
12
- private readonly errorHandler;
13
- private readonly loadingCount;
14
- private readonly scopeMap;
15
- private readonly languageMap;
16
- /**
17
- * Use to set or get active language
18
- */
19
- readonly activeLang: import("@angular/core", { with: { "resolution-mode": "import" } }).WritableSignal<Languages>;
20
- /**
21
- * Use to determine whether service is currently loading translation files
22
- */
23
- readonly isLoading: import("@angular/core", { with: { "resolution-mode": "import" } }).Signal<boolean>;
24
- t<Scope extends Scopes>(scope: Scope): TranslateObj<Translations[Scope]>;
25
- private initT;
26
- private preparePrefixFn;
27
- private preparePluralFn;
28
- private prepareSelectFn;
29
- protected replaceParams<T>(translation: T, params?: TranslateParams): T;
30
- private fetchLanguage;
31
- private resolveObjectPath;
32
- }
@@ -1,206 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.TransignalService = void 0;
10
- const core_1 = require("@angular/core");
11
- const internals_1 = require("./internals");
12
- const transignal_config_1 = require("./transignal-config");
13
- const transignal_param_handlers_1 = require("./transignal-param-handlers");
14
- /**
15
- * Main transignal service, used to process and cache translations
16
- * Can be injected directly or with use of transignal object created with {@link prepareTransignal} function (recommended)
17
- */
18
- let TransignalService = class TransignalService {
19
- injector = (0, core_1.inject)(core_1.EnvironmentInjector);
20
- config = (0, transignal_config_1.injectTransignalConfig)();
21
- paramsHandler = this.config.paramHandler ?? transignal_param_handlers_1.simpleParamsHandler;
22
- loadingFn = this.config.loadingFn ?? (() => '...');
23
- // eslint-disable-next-line no-console
24
- errorHandler = this.config.errorHandler ?? console.error; // TODO maybe add a link to error page in docs
25
- loadingCount = (0, core_1.signal)(0);
26
- scopeMap = new Map();
27
- languageMap = new Map();
28
- /**
29
- * Use to set or get active language
30
- */
31
- activeLang = (0, core_1.signal)(this.config.defaultLang);
32
- /**
33
- * Use to determine whether service is currently loading translation files
34
- */
35
- isLoading = (0, core_1.computed)(() => this.loadingCount() > 0);
36
- t(scope) {
37
- const existing = this.scopeMap.get(scope);
38
- if (existing) {
39
- return existing;
40
- }
41
- const scopeObj = this.initT(scope);
42
- this.scopeMap.set(scope, scopeObj);
43
- return scopeObj;
44
- }
45
- initT(scope) {
46
- const cache = new Map();
47
- const t = ((key, params) => {
48
- const lang = this.activeLang();
49
- const baseKey = `${lang}/${key}`;
50
- const memoKey = params ? `${baseKey}_${JSON.stringify(params)}` : baseKey;
51
- const alreadyComputed = cache.get(memoKey);
52
- if (alreadyComputed) {
53
- return alreadyComputed;
54
- }
55
- const { isLoading, error, value } = this.fetchLanguage(scope, lang);
56
- if (isLoading()) {
57
- return this.loadingFn?.(key);
58
- }
59
- if (error() || !value()) {
60
- this.errorHandler('missing_file', error());
61
- return '';
62
- }
63
- const result = this.replaceParams(this.resolveObjectPath(value(), key), params);
64
- cache.set(memoKey, result);
65
- return result;
66
- }); // needed as other props are assigned below
67
- t.arr = t;
68
- t.obj = t;
69
- t.prefix = this.preparePrefixFn(t, 1);
70
- t.plural = this.preparePluralFn(t);
71
- t.select = this.prepareSelectFn(t);
72
- return t;
73
- }
74
- preparePrefixFn(t, depth) {
75
- return (prefix) => {
76
- const prefixedT = (key, params) => t(`${prefix}.${key}`, params);
77
- prefixedT.arr = prefixedT;
78
- prefixedT.obj = prefixedT;
79
- prefixedT.plural = this.preparePluralFn(prefixedT);
80
- prefixedT.select = this.prepareSelectFn(prefixedT);
81
- prefixedT.prefix =
82
- this.config.maxPrefixDepth || 3 >= depth
83
- ? this.preparePrefixFn(prefixedT, depth + 1)
84
- : () => {
85
- this.errorHandler('prefix_too_deep');
86
- const t = () => '';
87
- t.arr = () => [];
88
- t.obj = () => ({});
89
- t.plural = () => '';
90
- return t;
91
- };
92
- return prefixedT;
93
- };
94
- }
95
- preparePluralFn(t) {
96
- return (key, count, params) => {
97
- const plurals = t(key, { count, ...params });
98
- if (typeof plurals === 'string') {
99
- if (plurals === this.loadingFn(key)) {
100
- return plurals;
101
- }
102
- this.errorHandler('invalid_plural', key, plurals);
103
- return plurals;
104
- }
105
- if (plurals[count]) {
106
- return plurals[count];
107
- }
108
- const valueLastDigit = +count.toFixed(0).at(-1);
109
- if (plurals.one && valueLastDigit === 1) {
110
- return plurals.one;
111
- }
112
- if (plurals.many && valueLastDigit >= 5) {
113
- return plurals.many;
114
- }
115
- if (plurals.few && valueLastDigit > 1 && valueLastDigit < 5) {
116
- return plurals.few;
117
- }
118
- if (plurals.other) {
119
- return plurals.other;
120
- }
121
- this.errorHandler('missing_plural', key, plurals, count);
122
- return '';
123
- };
124
- }
125
- prepareSelectFn(t) {
126
- return (key, value, params) => {
127
- const selects = t(key, { value, ...params });
128
- if (typeof selects === 'string') {
129
- if (selects === this.loadingFn(key)) {
130
- return selects;
131
- }
132
- this.errorHandler('invalid_select', key, selects);
133
- return selects;
134
- }
135
- if (value !== null) {
136
- if (selects[value]) {
137
- return selects[value];
138
- }
139
- }
140
- else if (selects['null']) {
141
- return selects['null'];
142
- }
143
- this.errorHandler('missing_select', key, selects, value);
144
- return '';
145
- };
146
- }
147
- replaceParams(translation, params) {
148
- if (!translation)
149
- return translation;
150
- if (typeof translation === 'string') {
151
- return this.paramsHandler(translation, params);
152
- }
153
- if (Array.isArray(translation)) {
154
- return translation.map(val => this.replaceParams(val, params));
155
- }
156
- if (typeof translation === 'object') {
157
- return Object.entries(translation).reduce((prev, [objKey, objVal]) => {
158
- prev[objKey] = this.replaceParams(objVal, params);
159
- return prev;
160
- }, {});
161
- }
162
- return translation;
163
- }
164
- fetchLanguage(scope, lang) {
165
- const cacheKey = `${scope}/${lang}`;
166
- const existing = this.languageMap.get(cacheKey);
167
- if (existing)
168
- return existing;
169
- const { translations, loader } = this.config;
170
- const translation = (0, core_1.runInInjectionContext)(this.injector, () => translations === internals_1.TREE_SHAKED_TRANSLATIONS
171
- ? (0, core_1.untracked)(() => (0, core_1.resource)({
172
- loader: async () => {
173
- this.loadingCount.update(count => ++count);
174
- const file = await (0, core_1.runInInjectionContext)(this.injector, () => loader(scope, lang));
175
- this.loadingCount.update(count => --count);
176
- return file;
177
- },
178
- }))
179
- : {
180
- value: (0, core_1.signal)(translations[scope]),
181
- isLoading: (0, core_1.signal)(false),
182
- error: (0, core_1.signal)(undefined),
183
- });
184
- this.languageMap.set(cacheKey, translation);
185
- return translation;
186
- }
187
- resolveObjectPath(obj, path) {
188
- const keys = path.split('.');
189
- let current = obj;
190
- for (const key of keys) {
191
- if (current && typeof current === 'object') {
192
- current = current[key];
193
- }
194
- else {
195
- this.errorHandler('missing_key', { obj, path });
196
- return undefined;
197
- }
198
- }
199
- return current;
200
- }
201
- };
202
- exports.TransignalService = TransignalService;
203
- exports.TransignalService = TransignalService = __decorate([
204
- (0, core_1.Injectable)()
205
- ], TransignalService);
206
- //# sourceMappingURL=transignal-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transignal-service.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { prepareTransignal } from './transignal-config';
2
- /**
3
- * Provides unit-test version of transignal that loads translation instantly without loading
4
- *
5
- * @param transignal existing transignal instance
6
- * @param translations real translations in a selected language
7
- */
8
- export declare const provideTransignalTesting: <Languages extends string, Translations extends Record<string, Record<string, unknown>>>(transignal: ReturnType<typeof prepareTransignal<Languages, Translations>>, translations: Translations) => import("@angular/core", { with: { "resolution-mode": "import" } }).EnvironmentProviders;