@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
@@ -0,0 +1,462 @@
1
+ //#region imports
2
+ import { parseTemplate, } from '@angular/compiler';
3
+ //#endregion
4
+ export var UtilsI18nExtractGettextTranslateFromHtml;
5
+ (function (UtilsI18nExtractGettextTranslateFromHtml) {
6
+ function extractGettextTranslateFromHtml(html, fileName = 'template.html') {
7
+ //#region @backendFunc
8
+ const parsed = parseTemplate(html, fileName, {
9
+ preserveWhitespaces: true,
10
+ });
11
+ const messages = [];
12
+ const pushMessage = (node, gettextString, params, context) => {
13
+ const normalized = normalizeHtmlText(gettextString);
14
+ if (!normalized)
15
+ return;
16
+ messages.push({
17
+ lineNumber: node.sourceSpan.start.line + 1,
18
+ gettextString: normalized,
19
+ // params: params ?? null,
20
+ context,
21
+ });
22
+ };
23
+ const visit = (node) => {
24
+ const attrs = getNodeAttributes(node);
25
+ const inputs = getNodeInputs(node);
26
+ const translateAttr = attrs.find((a) => a.name === 'translate');
27
+ if (translateAttr) {
28
+ const params = extractTranslateParams(inputs) ??
29
+ extractTranslateParamsFromSource(node.sourceSpan.toString());
30
+ // pushMessage(
31
+ // node,
32
+ // collectText(node.children ?? []),
33
+ // extractTranslateParams(inputs),
34
+ // translateAttr.value || undefined,
35
+ // );
36
+ pushMessage(node, collectText(node.children ?? []), params, translateAttr.value || undefined);
37
+ }
38
+ for (const input of inputs) {
39
+ for (const text of extractTranslatePipeStrings(input.value)) {
40
+ pushMessage(node, text);
41
+ }
42
+ }
43
+ if (isBoundText(node)) {
44
+ // for (const text of extractTranslatePipeStrings(node.value)) {
45
+ // pushMessage(node, text);
46
+ // }
47
+ for (const item of extractGettextCallsFromHtmlExpression(node.sourceSpan.toString())) {
48
+ pushMessage(node, item.gettextString, null, item.context);
49
+ }
50
+ const fromAst = extractTranslatePipeStrings(node.value);
51
+ const fromSource = extractTranslatePipeStringsFromSource(node.sourceSpan.toString());
52
+ for (const text of [...fromAst, ...fromSource]) {
53
+ pushMessage(node, text);
54
+ }
55
+ }
56
+ for (const child of node.children ?? []) {
57
+ visit(child);
58
+ }
59
+ };
60
+ for (const node of parsed.nodes) {
61
+ visit(node);
62
+ }
63
+ if (messages.length === 0) {
64
+ messages.push(...extractTranslateDirectiveFromSource(html));
65
+ }
66
+ messages.push(...extractGettextCallsFromSource(html));
67
+ return uniqueMessages(messages);
68
+ //#endregion
69
+ }
70
+ UtilsI18nExtractGettextTranslateFromHtml.extractGettextTranslateFromHtml = extractGettextTranslateFromHtml;
71
+ function extractGettextCallsFromSource(html) {
72
+ //#region @backendFunc
73
+ const messages = [];
74
+ const regex = /(?:^|[\s([{?:=])(?:[a-zA-Z_$][\w$]*\.)*gettext\s*\(/g;
75
+ for (const match of html.matchAll(regex)) {
76
+ const matchIndex = match.index ?? 0;
77
+ const openParenIndex = matchIndex + match[0].lastIndexOf('(');
78
+ const argsSource = readBalancedParenthesesContent(html, openParenIndex);
79
+ if (!argsSource)
80
+ continue;
81
+ const args = splitTopLevel(argsSource, ',');
82
+ const gettextString = readStaticStringArg(args[0]);
83
+ if (!gettextString)
84
+ continue;
85
+ const context = readStaticStringArg(args[2]);
86
+ messages.push({
87
+ lineNumber: html.slice(0, matchIndex).split(/\r?\n/).length,
88
+ gettextString,
89
+ context,
90
+ });
91
+ }
92
+ return messages;
93
+ //#endregion
94
+ }
95
+ function extractGettextCallsFromHtmlExpression(source) {
96
+ //#region @backendFunc
97
+ const result = [];
98
+ const expression = source
99
+ .replace(/^\s*\{\{\s*/, '')
100
+ .replace(/\s*\}\}\s*$/, '')
101
+ .trim();
102
+ const gettextCallRegex = /(?:^|[\s(])(?:[a-zA-Z_$][\w$]*\.)*gettext\s*\(/g;
103
+ for (const match of expression.matchAll(gettextCallRegex)) {
104
+ const openParenIndex = match.index + match[0].lastIndexOf('(');
105
+ const argsSource = readBalancedParenthesesContent(expression, openParenIndex);
106
+ if (!argsSource)
107
+ continue;
108
+ const args = splitTopLevel(argsSource, ',');
109
+ const gettextString = readStaticStringArg(args[0]);
110
+ if (!gettextString)
111
+ continue;
112
+ const context = readStaticStringArg(args[2]);
113
+ result.push({
114
+ gettextString,
115
+ context,
116
+ });
117
+ }
118
+ return result;
119
+ //#endregion
120
+ }
121
+ function readBalancedParenthesesContent(source, openParenIndex) {
122
+ //#region @backendFunc
123
+ let depth = 0;
124
+ let quote = null;
125
+ let result = '';
126
+ for (let i = openParenIndex; i < source.length; i++) {
127
+ const char = source[i];
128
+ if (quote) {
129
+ if (i !== openParenIndex)
130
+ result += char;
131
+ if (char === quote && source[i - 1] !== '\\') {
132
+ quote = null;
133
+ }
134
+ continue;
135
+ }
136
+ if (char === '"' || char === "'" || char === '`') {
137
+ quote = char;
138
+ if (i !== openParenIndex)
139
+ result += char;
140
+ continue;
141
+ }
142
+ if (char === '(') {
143
+ depth++;
144
+ if (depth > 1)
145
+ result += char;
146
+ continue;
147
+ }
148
+ if (char === ')') {
149
+ depth--;
150
+ if (depth === 0) {
151
+ return result.trim();
152
+ }
153
+ result += char;
154
+ continue;
155
+ }
156
+ if (i !== openParenIndex) {
157
+ result += char;
158
+ }
159
+ }
160
+ return null;
161
+ //#endregion
162
+ }
163
+ function readStaticStringArg(arg) {
164
+ //#region @backendFunc
165
+ if (!arg)
166
+ return undefined;
167
+ const trimmed = arg.trim();
168
+ const match = trimmed.match(/^(['"`])([\s\S]*)\1$/);
169
+ if (!match)
170
+ return undefined;
171
+ const quote = match[1];
172
+ const value = match[2];
173
+ if (quote === '`' && value.includes('${')) {
174
+ return undefined;
175
+ }
176
+ return value;
177
+ //#endregion
178
+ }
179
+ function extractTranslateParamsFromSource(source) {
180
+ //#region @backendFunc
181
+ const match = source.match(/\[translate-params\]\s*=\s*"([\s\S]*?)"/);
182
+ if (!match)
183
+ return null;
184
+ return extractObjectLiteralParams(match[1]);
185
+ //#endregion
186
+ }
187
+ function extractObjectLiteralParams(raw) {
188
+ //#region @backendFunc
189
+ const body = raw.trim().replace(/^\{/, '').replace(/\}$/, '').trim();
190
+ if (!body)
191
+ return null;
192
+ const result = {};
193
+ for (const part of splitTopLevel(body, ',')) {
194
+ const colonIndex = part.indexOf(':');
195
+ if (colonIndex === -1)
196
+ continue;
197
+ const key = part
198
+ .slice(0, colonIndex)
199
+ .trim()
200
+ .replace(/^['"]|['"]$/g, '');
201
+ const value = part.slice(colonIndex + 1).trim();
202
+ if (key && value) {
203
+ result[key] = value;
204
+ }
205
+ }
206
+ return Object.keys(result).length ? result : null;
207
+ //#endregion
208
+ }
209
+ function splitTopLevel(input, separator) {
210
+ //#region @backendFunc
211
+ const result = [];
212
+ let current = '';
213
+ let depth = 0;
214
+ let quote = null;
215
+ for (let i = 0; i < input.length; i++) {
216
+ const char = input[i];
217
+ if (quote) {
218
+ current += char;
219
+ if (char === quote && input[i - 1] !== '\\')
220
+ quote = null;
221
+ continue;
222
+ }
223
+ if (char === '"' || char === "'" || char === '`') {
224
+ quote = char;
225
+ current += char;
226
+ continue;
227
+ }
228
+ if (char === '{' || char === '(' || char === '[')
229
+ depth++;
230
+ if (char === '}' || char === ')' || char === ']')
231
+ depth--;
232
+ if (char === separator && depth === 0) {
233
+ result.push(current.trim());
234
+ current = '';
235
+ continue;
236
+ }
237
+ current += char;
238
+ }
239
+ if (current.trim())
240
+ result.push(current.trim());
241
+ return result;
242
+ //#endregion
243
+ }
244
+ function extractTranslatePipeStringsFromSource(source) {
245
+ //#region @backendFunc
246
+ const expression = source
247
+ .replace(/^\s*\{\{\s*/, '')
248
+ .replace(/\s*\}\}\s*$/, '')
249
+ .trim();
250
+ if (!expression.includes('| translate'))
251
+ return [];
252
+ // {{ (cond ? 'Yes' : 'No') | translate }}
253
+ const wrappedConditional = expression.match(/^\(([\s\S]+)\)\s*\|\s*translate\b/);
254
+ if (wrappedConditional) {
255
+ return extractStringLiterals(wrappedConditional[1]);
256
+ }
257
+ // {{ row.x ? 'Yes' : 'No' | translate }}
258
+ // Angular means only 'No' is translated
259
+ const directStringPipe = expression.match(/(['"`])((?:\\.|(?!\1)[\s\S])*)\1\s*\|\s*translate\b/);
260
+ if (directStringPipe) {
261
+ return [directStringPipe[2].trim()];
262
+ }
263
+ return [];
264
+ //#endregion
265
+ }
266
+ function extractStringLiterals(source) {
267
+ //#region @backendFunc
268
+ const result = [];
269
+ for (const match of source.matchAll(/(['"`])((?:\\.|(?!\1)[\s\S])*)\1/g)) {
270
+ const value = match[2].trim();
271
+ if (value)
272
+ result.push(value);
273
+ }
274
+ return result;
275
+ //#endregion
276
+ }
277
+ function getNodeAttributes(node) {
278
+ //#region @backendFunc
279
+ return [
280
+ ...(node.attributes ?? []),
281
+ ...(node.templateAttrs ?? []).filter((a) => a.name),
282
+ ];
283
+ //#endregion
284
+ }
285
+ function getNodeInputs(node) {
286
+ //#region @backendFunc
287
+ return [
288
+ ...(node.inputs ?? []),
289
+ ...(node.templateAttrs ?? []).filter((a) => a.value),
290
+ ];
291
+ //#endregion
292
+ }
293
+ function isText(node) {
294
+ //#region @backendFunc
295
+ return (node?.constructor?.name === 'Text' || typeof node?.value === 'string');
296
+ //#endregion
297
+ }
298
+ function isBoundText(node) {
299
+ //#region @backendFunc
300
+ return node?.constructor?.name === 'BoundText' && node?.value;
301
+ //#endregion
302
+ }
303
+ function collectText(nodes) {
304
+ //#region @backendFunc
305
+ let result = '';
306
+ for (const node of nodes) {
307
+ if (isText(node) && typeof node.value === 'string') {
308
+ result += node.value;
309
+ continue;
310
+ }
311
+ if (isBoundText(node)) {
312
+ result += node.sourceSpan.toString();
313
+ continue;
314
+ }
315
+ if (node.children) {
316
+ result += collectText(node.children);
317
+ }
318
+ }
319
+ return result;
320
+ //#endregion
321
+ }
322
+ function extractTranslateDirectiveFromSource(html) {
323
+ //#region @backendFunc
324
+ const messages = [];
325
+ const regex = /<([a-zA-Z0-9-]+)(?=[^>]*\stranslate(?:\s|>|=))[^>]*>([\s\S]*?)<\/\1>/g;
326
+ for (const match of html.matchAll(regex)) {
327
+ const fullMatch = match[0];
328
+ const innerHtml = match[2];
329
+ const index = match.index ?? 0;
330
+ const lineNumber = html.slice(0, index).split(/\r?\n/).length;
331
+ const text = normalizeHtmlText(stripHtml(innerHtml));
332
+ if (!text)
333
+ continue;
334
+ const contextMatch = fullMatch.match(/\stranslate\s*=\s*["']([^"']+)["']/);
335
+ messages.push({
336
+ lineNumber,
337
+ gettextString: text,
338
+ context: contextMatch?.[1],
339
+ });
340
+ }
341
+ return messages;
342
+ //#endregion
343
+ }
344
+ function stripHtml(html) {
345
+ //#region @backendFunc
346
+ return html.replace(/<[^>]+>/g, '');
347
+ //#endregion
348
+ }
349
+ function extractTranslateParams(inputs) {
350
+ //#region @backendFunc
351
+ const input = inputs.find((i) => i.name === 'translate-params' || i.name === 'translateParams');
352
+ if (!input?.value)
353
+ return null;
354
+ return extractObjectLiteralFromAst(input.value);
355
+ //#endregion
356
+ }
357
+ function extractObjectLiteralFromAst(ast) {
358
+ //#region @backendFunc
359
+ if (ast?.constructor?.name !== 'LiteralMap')
360
+ return null;
361
+ const result = {};
362
+ ast.keys.forEach((keyItem, index) => {
363
+ const key = typeof keyItem === 'string' ? keyItem : keyItem.key;
364
+ const value = ast.values[index];
365
+ if (key && value) {
366
+ result[key] = astToSource(value);
367
+ }
368
+ });
369
+ return Object.keys(result).length ? result : null;
370
+ //#endregion
371
+ }
372
+ function extractTranslatePipeStrings(ast) {
373
+ //#region @backendFunc
374
+ const result = [];
375
+ const visit = (node) => {
376
+ if (!node || typeof node !== 'object')
377
+ return;
378
+ if (node.constructor?.name === 'BindingPipe' &&
379
+ node.name === 'translate') {
380
+ result.push(...extractStaticStringsFromExpression(node.exp));
381
+ return;
382
+ }
383
+ for (const value of Object.values(node)) {
384
+ if (Array.isArray(value)) {
385
+ for (const item of value)
386
+ visit(item);
387
+ }
388
+ else if (value && typeof value === 'object') {
389
+ visit(value);
390
+ }
391
+ }
392
+ };
393
+ visit(ast);
394
+ return result;
395
+ //#endregion
396
+ }
397
+ function extractStaticStringsFromExpression(ast) {
398
+ //#region @backendFunc
399
+ if (!ast)
400
+ return [];
401
+ if (ast.constructor?.name === 'LiteralPrimitive' &&
402
+ typeof ast.value === 'string') {
403
+ return [ast.value];
404
+ }
405
+ if (ast.constructor?.name === 'Conditional') {
406
+ return [
407
+ ...extractStaticStringsFromExpression(ast.trueExp),
408
+ ...extractStaticStringsFromExpression(ast.falseExp),
409
+ ];
410
+ }
411
+ if (ast.constructor?.name === 'BindingPipe' && ast.name === 'translate') {
412
+ return extractStaticStringsFromExpression(ast.exp);
413
+ }
414
+ return [];
415
+ //#endregion
416
+ }
417
+ function astToSource(ast) {
418
+ //#region @backendFunc
419
+ if (!ast)
420
+ return '';
421
+ if (typeof ast.source === 'string') {
422
+ return ast.source;
423
+ }
424
+ if (ast.constructor?.name === 'PropertyRead') {
425
+ const receiver = astToSource(ast.receiver);
426
+ return receiver ? `${receiver}.${ast.name}` : ast.name;
427
+ }
428
+ if (ast.constructor?.name === 'ImplicitReceiver') {
429
+ return '';
430
+ }
431
+ if (ast.constructor?.name === 'LiteralPrimitive') {
432
+ return typeof ast.value === 'string'
433
+ ? `'${ast.value}'`
434
+ : String(ast.value);
435
+ }
436
+ return ast.toString?.() === '[object Object]' ? '' : String(ast);
437
+ //#endregion
438
+ }
439
+ function normalizeHtmlText(text) {
440
+ //#region @backendFunc
441
+ return text.replace(/\s+/g, ' ').trim();
442
+ //#endregion
443
+ }
444
+ function uniqueMessages(messages) {
445
+ //#region @backendFunc
446
+ const seen = new Set();
447
+ return messages.filter(message => {
448
+ const key = JSON.stringify([
449
+ message.lineNumber,
450
+ message.gettextString,
451
+ message.context,
452
+ ]);
453
+ if (seen.has(key))
454
+ return false;
455
+ seen.add(key);
456
+ return true;
457
+ });
458
+ //#endregion
459
+ }
460
+ //#endregion
461
+ })(UtilsI18nExtractGettextTranslateFromHtml || (UtilsI18nExtractGettextTranslateFromHtml = {}));
462
+ //# sourceMappingURL=utils-i18n-extract-gettext-translate-from-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-i18n-extract-gettext-translate-from-html.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}