@taon-dev/i18n 21.0.21 → 21.0.23

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