@angular/localize 13.0.0-next.9 → 13.0.0-rc.3

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 (138) hide show
  1. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  2. package/esm2020/init/index.mjs +12 -0
  3. package/{esm2015/localize.js → esm2020/localize.mjs} +0 -0
  4. package/{esm2015/private.js → esm2020/private.mjs} +0 -0
  5. package/{esm2015/src/localize/index.js → esm2020/src/localize/index.mjs} +0 -0
  6. package/{esm2015/src/localize/src/global.js → esm2020/src/localize/src/global.mjs} +0 -0
  7. package/{esm2015/src/localize/src/localize.js → esm2020/src/localize/src/localize.mjs} +2 -2
  8. package/{esm2015/src/translate.js → esm2020/src/translate.mjs} +0 -0
  9. package/{esm2015/src/utils/index.js → esm2020/src/utils/index.mjs} +0 -0
  10. package/{esm2015/src/utils/src/constants.js → esm2020/src/utils/src/constants.mjs} +0 -0
  11. package/esm2020/src/utils/src/messages.mjs +159 -0
  12. package/{esm2015/src/utils/src/translations.js → esm2020/src/utils/src/translations.mjs} +0 -0
  13. package/fesm2015/{init.js → init.mjs} +3 -3
  14. package/fesm2015/init.mjs.map +1 -0
  15. package/fesm2015/{localize.js → localize.mjs} +7 -7
  16. package/fesm2015/localize.mjs.map +1 -0
  17. package/fesm2020/init.mjs +204 -0
  18. package/fesm2020/init.mjs.map +1 -0
  19. package/fesm2020/localize.mjs +449 -0
  20. package/fesm2020/localize.mjs.map +1 -0
  21. package/init/index.d.ts +1 -1
  22. package/init/package.json +5 -5
  23. package/package.json +43 -18
  24. package/schematics/ng-add/index.js +1 -1
  25. package/src/localize/src/localize.d.ts +1 -1
  26. package/src/utils/src/messages.d.ts +1 -1
  27. package/tools/README.md +4 -0
  28. package/tools/bundles/index.js +1929 -0
  29. package/tools/bundles/index.js.map +6 -0
  30. package/tools/bundles/src/extract/cli.js +1278 -0
  31. package/tools/bundles/src/extract/cli.js.map +6 -0
  32. package/tools/bundles/src/migrate/cli.js +77 -0
  33. package/tools/bundles/src/migrate/cli.js.map +6 -0
  34. package/tools/bundles/src/translate/cli.js +1340 -0
  35. package/tools/bundles/src/translate/cli.js.map +6 -0
  36. package/tools/bundles_metadata.json +1 -0
  37. package/tools/index.d.ts +26 -0
  38. package/tools/src/babel_core.d.ts +38 -0
  39. package/{src/tools → tools}/src/diagnostics.d.ts +1 -1
  40. package/tools/src/extract/cli.d.ts +10 -0
  41. package/{src/tools → tools}/src/extract/duplicates.d.ts +2 -2
  42. package/{src/tools → tools}/src/extract/extraction.d.ts +2 -3
  43. package/{src/tools/src/extract/main.d.ts → tools/src/extract/index.d.ts} +2 -4
  44. package/{src/tools → tools}/src/extract/source_files/es2015_extract_plugin.d.ts +3 -3
  45. package/{src/tools → tools}/src/extract/source_files/es5_extract_plugin.d.ts +3 -3
  46. package/{src/tools → tools}/src/extract/translation_files/arb_translation_serializer.d.ts +2 -2
  47. package/{src/tools → tools}/src/extract/translation_files/format_options.d.ts +1 -1
  48. package/{src/tools → tools}/src/extract/translation_files/icu_parsing.d.ts +1 -1
  49. package/{src/tools → tools}/src/extract/translation_files/json_translation_serializer.d.ts +1 -1
  50. package/{src/tools → tools}/src/extract/translation_files/legacy_message_id_migration_serializer.d.ts +1 -1
  51. package/{src/tools → tools}/src/extract/translation_files/translation_serializer.d.ts +1 -1
  52. package/{src/tools → tools}/src/extract/translation_files/utils.d.ts +1 -1
  53. package/{src/tools → tools}/src/extract/translation_files/xliff1_translation_serializer.d.ts +2 -2
  54. package/{src/tools → tools}/src/extract/translation_files/xliff2_translation_serializer.d.ts +2 -2
  55. package/{src/tools → tools}/src/extract/translation_files/xmb_translation_serializer.d.ts +2 -2
  56. package/{src/tools → tools}/src/extract/translation_files/xml_file.d.ts +1 -1
  57. package/tools/src/migrate/cli.d.ts +10 -0
  58. package/{src/tools/src/migrate/main.d.ts → tools/src/migrate/index.d.ts} +9 -3
  59. package/{src/tools → tools}/src/migrate/migrate.d.ts +1 -1
  60. package/{src/tools → tools}/src/source_file_utils.d.ts +3 -3
  61. package/{src/tools → tools}/src/translate/asset_files/asset_translation_handler.d.ts +2 -2
  62. package/tools/src/translate/cli.d.ts +3 -0
  63. package/{src/tools/src/translate/main.d.ts → tools/src/translate/index.d.ts} +1 -2
  64. package/{src/tools → tools}/src/translate/output_path.d.ts +2 -2
  65. package/{src/tools → tools}/src/translate/source_files/es2015_translate_plugin.d.ts +3 -3
  66. package/{src/tools → tools}/src/translate/source_files/es5_translate_plugin.d.ts +3 -3
  67. package/{src/tools → tools}/src/translate/source_files/locale_plugin.d.ts +2 -2
  68. package/{src/tools → tools}/src/translate/source_files/source_file_translation_handler.d.ts +2 -2
  69. package/{src/tools → tools}/src/translate/translation_files/base_visitor.d.ts +1 -1
  70. package/{src/tools → tools}/src/translate/translation_files/message_serialization/message_renderer.d.ts +1 -1
  71. package/{src/tools → tools}/src/translate/translation_files/message_serialization/message_serializer.d.ts +1 -1
  72. package/{src/tools → tools}/src/translate/translation_files/message_serialization/target_message_renderer.d.ts +1 -1
  73. package/{src/tools → tools}/src/translate/translation_files/translation_loader.d.ts +2 -2
  74. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/arb_translation_parser.d.ts +1 -1
  75. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/serialize_translation_message.d.ts +1 -1
  76. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/simple_json_translation_parser.d.ts +1 -1
  77. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/translation_parse_error.d.ts +1 -1
  78. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/translation_parser.d.ts +2 -2
  79. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/translation_utils.d.ts +1 -1
  80. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/xliff1_translation_parser.d.ts +1 -1
  81. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/xliff2_translation_parser.d.ts +1 -1
  82. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/xtb_translation_parser.d.ts +1 -1
  83. package/{src/tools → tools}/src/translate/translator.d.ts +2 -2
  84. package/bundles/localize-init.umd.js +0 -218
  85. package/bundles/localize-init.umd.js.map +0 -1
  86. package/bundles/localize.umd.js +0 -782
  87. package/bundles/localize.umd.js.map +0 -1
  88. package/esm2015/init/index.js +0 -12
  89. package/esm2015/init/init.externs.js +0 -0
  90. package/esm2015/localize.externs.js +0 -0
  91. package/esm2015/src/localize/localize.externs.js +0 -0
  92. package/esm2015/src/utils/src/messages.js +0 -159
  93. package/esm2015/src/utils/utils.externs.js +0 -0
  94. package/fesm2015/init.js.map +0 -1
  95. package/fesm2015/localize.js.map +0 -1
  96. package/init.d.ts +0 -7
  97. package/src/tools/src/diagnostics.js +0 -68
  98. package/src/tools/src/extract/duplicates.js +0 -84
  99. package/src/tools/src/extract/extraction.js +0 -134
  100. package/src/tools/src/extract/main.js +0 -184
  101. package/src/tools/src/extract/source_files/es2015_extract_plugin.js +0 -36
  102. package/src/tools/src/extract/source_files/es5_extract_plugin.js +0 -49
  103. package/src/tools/src/extract/translation_files/arb_translation_serializer.js +0 -107
  104. package/src/tools/src/extract/translation_files/format_options.js +0 -52
  105. package/src/tools/src/extract/translation_files/icu_parsing.js +0 -224
  106. package/src/tools/src/extract/translation_files/json_translation_serializer.js +0 -47
  107. package/src/tools/src/extract/translation_files/legacy_message_id_migration_serializer.js +0 -63
  108. package/src/tools/src/extract/translation_files/translation_serializer.js +0 -13
  109. package/src/tools/src/extract/translation_files/utils.js +0 -102
  110. package/src/tools/src/extract/translation_files/xliff1_translation_serializer.js +0 -242
  111. package/src/tools/src/extract/translation_files/xliff2_translation_serializer.js +0 -231
  112. package/src/tools/src/extract/translation_files/xmb_translation_serializer.js +0 -139
  113. package/src/tools/src/extract/translation_files/xml_file.js +0 -117
  114. package/src/tools/src/migrate/main.js +0 -79
  115. package/src/tools/src/migrate/migrate.js +0 -48
  116. package/src/tools/src/source_file_utils.js +0 -443
  117. package/src/tools/src/translate/asset_files/asset_translation_handler.js +0 -65
  118. package/src/tools/src/translate/main.js +0 -157
  119. package/src/tools/src/translate/output_path.js +0 -28
  120. package/src/tools/src/translate/source_files/es2015_translate_plugin.js +0 -60
  121. package/src/tools/src/translate/source_files/es5_translate_plugin.js +0 -58
  122. package/src/tools/src/translate/source_files/locale_plugin.js +0 -95
  123. package/src/tools/src/translate/source_files/source_file_translation_handler.js +0 -127
  124. package/src/tools/src/translate/translation_files/base_visitor.js +0 -31
  125. package/src/tools/src/translate/translation_files/message_serialization/message_renderer.js +0 -20
  126. package/src/tools/src/translate/translation_files/message_serialization/message_serializer.js +0 -100
  127. package/src/tools/src/translate/translation_files/message_serialization/target_message_renderer.js +0 -84
  128. package/src/tools/src/translate/translation_files/translation_loader.js +0 -148
  129. package/src/tools/src/translate/translation_files/translation_parsers/arb_translation_parser.js +0 -111
  130. package/src/tools/src/translate/translation_files/translation_parsers/serialize_translation_message.js +0 -32
  131. package/src/tools/src/translate/translation_files/translation_parsers/simple_json_translation_parser.js +0 -96
  132. package/src/tools/src/translate/translation_files/translation_parsers/translation_parse_error.js +0 -47
  133. package/src/tools/src/translate/translation_files/translation_parsers/translation_parser.js +0 -13
  134. package/src/tools/src/translate/translation_files/translation_parsers/translation_utils.js +0 -175
  135. package/src/tools/src/translate/translation_files/translation_parsers/xliff1_translation_parser.js +0 -175
  136. package/src/tools/src/translate/translation_files/translation_parsers/xliff2_translation_parser.js +0 -166
  137. package/src/tools/src/translate/translation_files/translation_parsers/xtb_translation_parser.js +0 -133
  138. package/src/tools/src/translate/translator.js +0 -53
@@ -1,107 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define("@angular/localize/src/tools/src/extract/translation_files/arb_translation_serializer", ["require", "exports", "tslib", "@angular/localize/src/tools/src/extract/translation_files/utils"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ArbTranslationSerializer = void 0;
13
- var tslib_1 = require("tslib");
14
- var utils_1 = require("@angular/localize/src/tools/src/extract/translation_files/utils");
15
- /**
16
- * A translation serializer that can render JSON formatted as an Application Resource Bundle (ARB).
17
- *
18
- * See https://github.com/google/app-resource-bundle/wiki/ApplicationResourceBundleSpecification
19
- *
20
- * ```
21
- * {
22
- * "@@locale": "en-US",
23
- * "message-id": "Target message string",
24
- * "@message-id": {
25
- * "type": "text",
26
- * "description": "Some description text",
27
- * "x-locations": [
28
- * {
29
- * "start": {"line": 23, "column": 145},
30
- * "end": {"line": 24, "column": 53},
31
- * "file": "some/file.ts"
32
- * },
33
- * ...
34
- * ]
35
- * },
36
- * ...
37
- * }
38
- * ```
39
- */
40
- var ArbTranslationSerializer = /** @class */ (function () {
41
- function ArbTranslationSerializer(sourceLocale, basePath, fs) {
42
- this.sourceLocale = sourceLocale;
43
- this.basePath = basePath;
44
- this.fs = fs;
45
- }
46
- ArbTranslationSerializer.prototype.serialize = function (messages) {
47
- var e_1, _a;
48
- var messageGroups = (0, utils_1.consolidateMessages)(messages, function (message) { return getMessageId(message); });
49
- var output = "{\n \"@@locale\": " + JSON.stringify(this.sourceLocale);
50
- try {
51
- for (var messageGroups_1 = (0, tslib_1.__values)(messageGroups), messageGroups_1_1 = messageGroups_1.next(); !messageGroups_1_1.done; messageGroups_1_1 = messageGroups_1.next()) {
52
- var duplicateMessages = messageGroups_1_1.value;
53
- var message = duplicateMessages[0];
54
- var id = getMessageId(message);
55
- output += this.serializeMessage(id, message);
56
- output += this.serializeMeta(id, message.description, message.meaning, duplicateMessages.filter(utils_1.hasLocation).map(function (m) { return m.location; }));
57
- }
58
- }
59
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
60
- finally {
61
- try {
62
- if (messageGroups_1_1 && !messageGroups_1_1.done && (_a = messageGroups_1.return)) _a.call(messageGroups_1);
63
- }
64
- finally { if (e_1) throw e_1.error; }
65
- }
66
- output += '\n}';
67
- return output;
68
- };
69
- ArbTranslationSerializer.prototype.serializeMessage = function (id, message) {
70
- return ",\n " + JSON.stringify(id) + ": " + JSON.stringify(message.text);
71
- };
72
- ArbTranslationSerializer.prototype.serializeMeta = function (id, description, meaning, locations) {
73
- var meta = [];
74
- if (description) {
75
- meta.push("\n \"description\": " + JSON.stringify(description));
76
- }
77
- if (meaning) {
78
- meta.push("\n \"x-meaning\": " + JSON.stringify(meaning));
79
- }
80
- if (locations.length > 0) {
81
- var locationStr = "\n \"x-locations\": [";
82
- for (var i = 0; i < locations.length; i++) {
83
- locationStr += (i > 0 ? ',\n' : '\n') + this.serializeLocation(locations[i]);
84
- }
85
- locationStr += '\n ]';
86
- meta.push(locationStr);
87
- }
88
- return meta.length > 0 ? ",\n " + JSON.stringify('@' + id) + ": {" + meta.join(',') + "\n }" : '';
89
- };
90
- ArbTranslationSerializer.prototype.serializeLocation = function (_a) {
91
- var file = _a.file, start = _a.start, end = _a.end;
92
- return [
93
- " {",
94
- " \"file\": " + JSON.stringify(this.fs.relative(this.basePath, file)) + ",",
95
- " \"start\": { \"line\": \"" + start.line + "\", \"column\": \"" + start.column + "\" },",
96
- " \"end\": { \"line\": \"" + end.line + "\", \"column\": \"" + end.column + "\" }",
97
- " }",
98
- ].join('\n');
99
- };
100
- return ArbTranslationSerializer;
101
- }());
102
- exports.ArbTranslationSerializer = ArbTranslationSerializer;
103
- function getMessageId(message) {
104
- return message.customId || message.id;
105
- }
106
- });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJiX3RyYW5zbGF0aW9uX3NlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9zcmMvdG9vbHMvc3JjL2V4dHJhY3QvdHJhbnNsYXRpb25fZmlsZXMvYXJiX3RyYW5zbGF0aW9uX3NlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQVVBLHlGQUF5RDtJQUV6RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bd0JHO0lBQ0g7UUFDRSxrQ0FDWSxZQUFvQixFQUFVLFFBQXdCLEVBQ3RELEVBQW9CO1lBRHBCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1lBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7WUFDdEQsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFBRyxDQUFDO1FBRXBDLDRDQUFTLEdBQVQsVUFBVSxRQUEwQjs7WUFDbEMsSUFBTSxhQUFhLEdBQUcsSUFBQSwyQkFBbUIsRUFBQyxRQUFRLEVBQUUsVUFBQSxPQUFPLElBQUksT0FBQSxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQXJCLENBQXFCLENBQUMsQ0FBQztZQUV0RixJQUFJLE1BQU0sR0FBRyx3QkFBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFHLENBQUM7O2dCQUVyRSxLQUFnQyxJQUFBLGtCQUFBLHNCQUFBLGFBQWEsQ0FBQSw0Q0FBQSx1RUFBRTtvQkFBMUMsSUFBTSxpQkFBaUIsMEJBQUE7b0JBQzFCLElBQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNyQyxJQUFNLEVBQUUsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2pDLE1BQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUM3QyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FDeEIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFDeEMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLG1CQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsUUFBUSxFQUFWLENBQVUsQ0FBQyxDQUFDLENBQUM7aUJBQ2pFOzs7Ozs7Ozs7WUFFRCxNQUFNLElBQUksS0FBSyxDQUFDO1lBRWhCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFFTyxtREFBZ0IsR0FBeEIsVUFBeUIsRUFBVSxFQUFFLE9BQXVCO1lBQzFELE9BQU8sVUFBUSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBRyxDQUFDO1FBQ3ZFLENBQUM7UUFFTyxnREFBYSxHQUFyQixVQUNJLEVBQVUsRUFBRSxXQUE2QixFQUFFLE9BQXlCLEVBQ3BFLFNBQTRCO1lBQzlCLElBQU0sSUFBSSxHQUFhLEVBQUUsQ0FBQztZQUUxQixJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLENBQUMsSUFBSSxDQUFDLDRCQUF3QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBRyxDQUFDLENBQUM7YUFDbEU7WUFFRCxJQUFJLE9BQU8sRUFBRTtnQkFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLDBCQUFzQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBRyxDQUFDLENBQUM7YUFDNUQ7WUFFRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN4QixJQUFJLFdBQVcsR0FBRywwQkFBd0IsQ0FBQztnQkFDM0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3pDLFdBQVcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM5RTtnQkFDRCxXQUFXLElBQUksU0FBUyxDQUFDO2dCQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3hCO1lBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBUSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsV0FBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM1RixDQUFDO1FBRU8sb0RBQWlCLEdBQXpCLFVBQTBCLEVBQW1DO2dCQUFsQyxJQUFJLFVBQUEsRUFBRSxLQUFLLFdBQUEsRUFBRSxHQUFHLFNBQUE7WUFDekMsT0FBTztnQkFDTCxTQUFTO2dCQUNULHVCQUFtQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBRztnQkFDM0Usc0NBQStCLEtBQUssQ0FBQyxJQUFJLDBCQUFpQixLQUFLLENBQUMsTUFBTSxVQUFNO2dCQUM1RSxvQ0FBNkIsR0FBRyxDQUFDLElBQUksMEJBQWlCLEdBQUcsQ0FBQyxNQUFNLFNBQUs7Z0JBQ3JFLFNBQVM7YUFDVixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDSCwrQkFBQztJQUFELENBQUMsQUE5REQsSUE4REM7SUE5RFksNERBQXdCO0lBZ0VyQyxTQUFTLFlBQVksQ0FBQyxPQUF1QjtRQUMzQyxPQUFPLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0Fic29sdXRlRnNQYXRoLCBQYXRoTWFuaXB1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7ybVQYXJzZWRNZXNzYWdlLCDJtVNvdXJjZUxvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9sb2NhbGl6ZSc7XG5pbXBvcnQge1RyYW5zbGF0aW9uU2VyaWFsaXplcn0gZnJvbSAnLi90cmFuc2xhdGlvbl9zZXJpYWxpemVyJztcbmltcG9ydCB7Y29uc29saWRhdGVNZXNzYWdlcywgaGFzTG9jYXRpb259IGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIEEgdHJhbnNsYXRpb24gc2VyaWFsaXplciB0aGF0IGNhbiByZW5kZXIgSlNPTiBmb3JtYXR0ZWQgYXMgYW4gQXBwbGljYXRpb24gUmVzb3VyY2UgQnVuZGxlIChBUkIpLlxuICpcbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2FwcC1yZXNvdXJjZS1idW5kbGUvd2lraS9BcHBsaWNhdGlvblJlc291cmNlQnVuZGxlU3BlY2lmaWNhdGlvblxuICpcbiAqIGBgYFxuICoge1xuICogICBcIkBAbG9jYWxlXCI6IFwiZW4tVVNcIixcbiAqICAgXCJtZXNzYWdlLWlkXCI6IFwiVGFyZ2V0IG1lc3NhZ2Ugc3RyaW5nXCIsXG4gKiAgIFwiQG1lc3NhZ2UtaWRcIjoge1xuICogICAgIFwidHlwZVwiOiBcInRleHRcIixcbiAqICAgICBcImRlc2NyaXB0aW9uXCI6IFwiU29tZSBkZXNjcmlwdGlvbiB0ZXh0XCIsXG4gKiAgICAgXCJ4LWxvY2F0aW9uc1wiOiBbXG4gKiAgICAgICB7XG4gKiAgICAgICAgIFwic3RhcnRcIjoge1wibGluZVwiOiAyMywgXCJjb2x1bW5cIjogMTQ1fSxcbiAqICAgICAgICAgXCJlbmRcIjoge1wibGluZVwiOiAyNCwgXCJjb2x1bW5cIjogNTN9LFxuICogICAgICAgICBcImZpbGVcIjogXCJzb21lL2ZpbGUudHNcIlxuICogICAgICAgfSxcbiAqICAgICAgIC4uLlxuICogICAgIF1cbiAqICAgfSxcbiAqICAgLi4uXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEFyYlRyYW5zbGF0aW9uU2VyaWFsaXplciBpbXBsZW1lbnRzIFRyYW5zbGF0aW9uU2VyaWFsaXplciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBzb3VyY2VMb2NhbGU6IHN0cmluZywgcHJpdmF0ZSBiYXNlUGF0aDogQWJzb2x1dGVGc1BhdGgsXG4gICAgICBwcml2YXRlIGZzOiBQYXRoTWFuaXB1bGF0aW9uKSB7fVxuXG4gIHNlcmlhbGl6ZShtZXNzYWdlczogybVQYXJzZWRNZXNzYWdlW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IG1lc3NhZ2VHcm91cHMgPSBjb25zb2xpZGF0ZU1lc3NhZ2VzKG1lc3NhZ2VzLCBtZXNzYWdlID0+IGdldE1lc3NhZ2VJZChtZXNzYWdlKSk7XG5cbiAgICBsZXQgb3V0cHV0ID0gYHtcXG4gIFwiQEBsb2NhbGVcIjogJHtKU09OLnN0cmluZ2lmeSh0aGlzLnNvdXJjZUxvY2FsZSl9YDtcblxuICAgIGZvciAoY29uc3QgZHVwbGljYXRlTWVzc2FnZXMgb2YgbWVzc2FnZUdyb3Vwcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGR1cGxpY2F0ZU1lc3NhZ2VzWzBdO1xuICAgICAgY29uc3QgaWQgPSBnZXRNZXNzYWdlSWQobWVzc2FnZSk7XG4gICAgICBvdXRwdXQgKz0gdGhpcy5zZXJpYWxpemVNZXNzYWdlKGlkLCBtZXNzYWdlKTtcbiAgICAgIG91dHB1dCArPSB0aGlzLnNlcmlhbGl6ZU1ldGEoXG4gICAgICAgICAgaWQsIG1lc3NhZ2UuZGVzY3JpcHRpb24sIG1lc3NhZ2UubWVhbmluZyxcbiAgICAgICAgICBkdXBsaWNhdGVNZXNzYWdlcy5maWx0ZXIoaGFzTG9jYXRpb24pLm1hcChtID0+IG0ubG9jYXRpb24pKTtcbiAgICB9XG5cbiAgICBvdXRwdXQgKz0gJ1xcbn0nO1xuXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG4gIHByaXZhdGUgc2VyaWFsaXplTWVzc2FnZShpZDogc3RyaW5nLCBtZXNzYWdlOiDJtVBhcnNlZE1lc3NhZ2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBgLFxcbiAgJHtKU09OLnN0cmluZ2lmeShpZCl9OiAke0pTT04uc3RyaW5naWZ5KG1lc3NhZ2UudGV4dCl9YDtcbiAgfVxuXG4gIHByaXZhdGUgc2VyaWFsaXplTWV0YShcbiAgICAgIGlkOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmd8dW5kZWZpbmVkLCBtZWFuaW5nOiBzdHJpbmd8dW5kZWZpbmVkLFxuICAgICAgbG9jYXRpb25zOiDJtVNvdXJjZUxvY2F0aW9uW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGE6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgIG1ldGEucHVzaChgXFxuICAgIFwiZGVzY3JpcHRpb25cIjogJHtKU09OLnN0cmluZ2lmeShkZXNjcmlwdGlvbil9YCk7XG4gICAgfVxuXG4gICAgaWYgKG1lYW5pbmcpIHtcbiAgICAgIG1ldGEucHVzaChgXFxuICAgIFwieC1tZWFuaW5nXCI6ICR7SlNPTi5zdHJpbmdpZnkobWVhbmluZyl9YCk7XG4gICAgfVxuXG4gICAgaWYgKGxvY2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgbG9jYXRpb25TdHIgPSBgXFxuICAgIFwieC1sb2NhdGlvbnNcIjogW2A7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxvY2F0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsb2NhdGlvblN0ciArPSAoaSA+IDAgPyAnLFxcbicgOiAnXFxuJykgKyB0aGlzLnNlcmlhbGl6ZUxvY2F0aW9uKGxvY2F0aW9uc1tpXSk7XG4gICAgICB9XG4gICAgICBsb2NhdGlvblN0ciArPSAnXFxuICAgIF0nO1xuICAgICAgbWV0YS5wdXNoKGxvY2F0aW9uU3RyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YS5sZW5ndGggPiAwID8gYCxcXG4gICR7SlNPTi5zdHJpbmdpZnkoJ0AnICsgaWQpfTogeyR7bWV0YS5qb2luKCcsJyl9XFxuICB9YCA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXJpYWxpemVMb2NhdGlvbih7ZmlsZSwgc3RhcnQsIGVuZH06IMm1U291cmNlTG9jYXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICBgICAgICAge2AsXG4gICAgICBgICAgICAgICBcImZpbGVcIjogJHtKU09OLnN0cmluZ2lmeSh0aGlzLmZzLnJlbGF0aXZlKHRoaXMuYmFzZVBhdGgsIGZpbGUpKX0sYCxcbiAgICAgIGAgICAgICAgIFwic3RhcnRcIjogeyBcImxpbmVcIjogXCIke3N0YXJ0LmxpbmV9XCIsIFwiY29sdW1uXCI6IFwiJHtzdGFydC5jb2x1bW59XCIgfSxgLFxuICAgICAgYCAgICAgICAgXCJlbmRcIjogeyBcImxpbmVcIjogXCIke2VuZC5saW5lfVwiLCBcImNvbHVtblwiOiBcIiR7ZW5kLmNvbHVtbn1cIiB9YCxcbiAgICAgIGAgICAgICB9YCxcbiAgICBdLmpvaW4oJ1xcbicpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldE1lc3NhZ2VJZChtZXNzYWdlOiDJtVBhcnNlZE1lc3NhZ2UpOiBzdHJpbmcge1xuICByZXR1cm4gbWVzc2FnZS5jdXN0b21JZCB8fCBtZXNzYWdlLmlkO1xufVxuIl19
@@ -1,52 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- (function (factory) {
9
- if (typeof module === "object" && typeof module.exports === "object") {
10
- var v = factory(require, exports);
11
- if (v !== undefined) module.exports = v;
12
- }
13
- else if (typeof define === "function" && define.amd) {
14
- define("@angular/localize/src/tools/src/extract/translation_files/format_options", ["require", "exports"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.parseFormatOptions = exports.validateOptions = void 0;
20
- /**
21
- * Check that the given `options` are allowed based on the given `validOptions`.
22
- * @param name The name of the serializer that is receiving the options.
23
- * @param validOptions An array of valid options and their allowed values.
24
- * @param options The options to be validated.
25
- */
26
- function validateOptions(name, validOptions, options) {
27
- var validOptionsMap = new Map(validOptions);
28
- for (var option in options) {
29
- if (!validOptionsMap.has(option)) {
30
- throw new Error("Invalid format option for " + name + ": \"" + option + "\".\n" +
31
- ("Allowed options are " + JSON.stringify(Array.from(validOptionsMap.keys())) + "."));
32
- }
33
- var validOptionValues = validOptionsMap.get(option);
34
- var optionValue = options[option];
35
- if (!validOptionValues.includes(optionValue)) {
36
- throw new Error("Invalid format option value for " + name + ": \"" + option + "\".\n" +
37
- ("Allowed option values are " + JSON.stringify(validOptionValues) + " but received \"" + optionValue + "\"."));
38
- }
39
- }
40
- }
41
- exports.validateOptions = validateOptions;
42
- /**
43
- * Parse the given `optionString` into a collection of `FormatOptions`.
44
- * @param optionString The string to parse.
45
- */
46
- function parseFormatOptions(optionString) {
47
- if (optionString === void 0) { optionString = '{}'; }
48
- return JSON.parse(optionString);
49
- }
50
- exports.parseFormatOptions = parseFormatOptions;
51
- });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0X29wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9zcmMvdG9vbHMvc3JjL2V4dHJhY3QvdHJhbnNsYXRpb25fZmlsZXMvZm9ybWF0X29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBTUg7Ozs7O09BS0c7SUFDSCxTQUFnQixlQUFlLENBQUMsSUFBWSxFQUFFLFlBQTBCLEVBQUUsT0FBc0I7UUFDOUYsSUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQWlDLFlBQVksQ0FBQyxDQUFDO1FBQzlFLEtBQUssSUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1lBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNoQyxNQUFNLElBQUksS0FBSyxDQUNYLCtCQUE2QixJQUFJLFlBQU0sTUFBTSxVQUFNO3FCQUNuRCx5QkFBdUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQUcsQ0FBQSxDQUFDLENBQUM7YUFDbkY7WUFDRCxJQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFFLENBQUM7WUFDdkQsSUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSxLQUFLLENBQ1gscUNBQW1DLElBQUksWUFBTSxNQUFNLFVBQU07cUJBQ3pELCtCQUE2QixJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLHdCQUMxRCxXQUFXLFFBQUksQ0FBQSxDQUFDLENBQUM7YUFDMUI7U0FDRjtJQUNILENBQUM7SUFqQkQsMENBaUJDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsWUFBMkI7UUFBM0IsNkJBQUEsRUFBQSxtQkFBMkI7UUFDNUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBa0IsQ0FBQztJQUNuRCxDQUFDO0lBRkQsZ0RBRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0IHR5cGUgRm9ybWF0T3B0aW9ucyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5leHBvcnQgdHlwZSBWYWxpZE9wdGlvbiA9IFtrZXk6IHN0cmluZywgdmFsdWVzOiBzdHJpbmdbXV07XG5leHBvcnQgdHlwZSBWYWxpZE9wdGlvbnMgPSBWYWxpZE9wdGlvbltdO1xuXG4vKipcbiAqIENoZWNrIHRoYXQgdGhlIGdpdmVuIGBvcHRpb25zYCBhcmUgYWxsb3dlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gYHZhbGlkT3B0aW9uc2AuXG4gKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgc2VyaWFsaXplciB0aGF0IGlzIHJlY2VpdmluZyB0aGUgb3B0aW9ucy5cbiAqIEBwYXJhbSB2YWxpZE9wdGlvbnMgQW4gYXJyYXkgb2YgdmFsaWQgb3B0aW9ucyBhbmQgdGhlaXIgYWxsb3dlZCB2YWx1ZXMuXG4gKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyB0byBiZSB2YWxpZGF0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU9wdGlvbnMobmFtZTogc3RyaW5nLCB2YWxpZE9wdGlvbnM6IFZhbGlkT3B0aW9ucywgb3B0aW9uczogRm9ybWF0T3B0aW9ucykge1xuICBjb25zdCB2YWxpZE9wdGlvbnNNYXAgPSBuZXcgTWFwPFZhbGlkT3B0aW9uWzBdLCBWYWxpZE9wdGlvblsxXT4odmFsaWRPcHRpb25zKTtcbiAgZm9yIChjb25zdCBvcHRpb24gaW4gb3B0aW9ucykge1xuICAgIGlmICghdmFsaWRPcHRpb25zTWFwLmhhcyhvcHRpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgZm9ybWF0IG9wdGlvbiBmb3IgJHtuYW1lfTogXCIke29wdGlvbn1cIi5cXG5gICtcbiAgICAgICAgICBgQWxsb3dlZCBvcHRpb25zIGFyZSAke0pTT04uc3RyaW5naWZ5KEFycmF5LmZyb20odmFsaWRPcHRpb25zTWFwLmtleXMoKSkpfS5gKTtcbiAgICB9XG4gICAgY29uc3QgdmFsaWRPcHRpb25WYWx1ZXMgPSB2YWxpZE9wdGlvbnNNYXAuZ2V0KG9wdGlvbikhO1xuICAgIGNvbnN0IG9wdGlvblZhbHVlID0gb3B0aW9uc1tvcHRpb25dO1xuICAgIGlmICghdmFsaWRPcHRpb25WYWx1ZXMuaW5jbHVkZXMob3B0aW9uVmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgZm9ybWF0IG9wdGlvbiB2YWx1ZSBmb3IgJHtuYW1lfTogXCIke29wdGlvbn1cIi5cXG5gICtcbiAgICAgICAgICBgQWxsb3dlZCBvcHRpb24gdmFsdWVzIGFyZSAke0pTT04uc3RyaW5naWZ5KHZhbGlkT3B0aW9uVmFsdWVzKX0gYnV0IHJlY2VpdmVkIFwiJHtcbiAgICAgICAgICAgICAgb3B0aW9uVmFsdWV9XCIuYCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGBvcHRpb25TdHJpbmdgIGludG8gYSBjb2xsZWN0aW9uIG9mIGBGb3JtYXRPcHRpb25zYC5cbiAqIEBwYXJhbSBvcHRpb25TdHJpbmcgVGhlIHN0cmluZyB0byBwYXJzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRm9ybWF0T3B0aW9ucyhvcHRpb25TdHJpbmc6IHN0cmluZyA9ICd7fScpOiBGb3JtYXRPcHRpb25zIHtcbiAgcmV0dXJuIEpTT04ucGFyc2Uob3B0aW9uU3RyaW5nKSBhcyBGb3JtYXRPcHRpb25zO1xufVxuIl19
@@ -1,224 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- (function (factory) {
9
- if (typeof module === "object" && typeof module.exports === "object") {
10
- var v = factory(require, exports);
11
- if (v !== undefined) module.exports = v;
12
- }
13
- else if (typeof define === "function" && define.amd) {
14
- define("@angular/localize/src/tools/src/extract/translation_files/icu_parsing", ["require", "exports"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.extractIcuPlaceholders = void 0;
20
- /**
21
- * Split the given `text` into an array of "static strings" and ICU "placeholder names".
22
- *
23
- * This is required because ICU expressions in `$localize` tagged messages may contain "dynamic"
24
- * piece (e.g. interpolations or element markers). These markers need to be translated to
25
- * placeholders in extracted translation files. So we must parse ICUs to identify them and separate
26
- * them out so that the translation serializers can render them appropriately.
27
- *
28
- * An example of an ICU with interpolations:
29
- *
30
- * ```
31
- * {VAR_PLURAL, plural, one {{INTERPOLATION}} other {{INTERPOLATION_1} post}}
32
- * ```
33
- *
34
- * In this ICU, `INTERPOLATION` and `INTERPOLATION_1` are actually placeholders that will be
35
- * replaced with dynamic content at runtime.
36
- *
37
- * Such placeholders are identifiable as text wrapped in curly braces, within an ICU case
38
- * expression.
39
- *
40
- * To complicate matters, it is possible for ICUs to be nested indefinitely within each other. In
41
- * such cases, the nested ICU expression appears enclosed in a set of curly braces in the same way
42
- * as a placeholder. The nested ICU expressions can be differentiated from placeholders as they
43
- * contain a comma `,`, which separates the ICU value from the ICU type.
44
- *
45
- * Furthermore, nested ICUs can have placeholders of their own, which need to be extracted.
46
- *
47
- * An example of a nested ICU containing its own placeholders:
48
- *
49
- * ```
50
- * {VAR_SELECT_1, select,
51
- * invoice {Invoice for {INTERPOLATION}}
52
- * payment {{VAR_SELECT, select,
53
- * processor {Payment gateway}
54
- * other {{INTERPOLATION_1}}
55
- * }}
56
- * ```
57
- *
58
- * @param text Text to be broken.
59
- * @returns an array of strings, where
60
- * - even values are static strings (e.g. 0, 2, 4, etc)
61
- * - odd values are placeholder names (e.g. 1, 3, 5, etc)
62
- */
63
- function extractIcuPlaceholders(text) {
64
- var state = new StateStack();
65
- var pieces = new IcuPieces();
66
- var braces = /[{}]/g;
67
- var lastPos = 0;
68
- var match;
69
- while (match = braces.exec(text)) {
70
- if (match[0] == '{') {
71
- state.enterBlock();
72
- }
73
- else {
74
- // We must have hit a `}`
75
- state.leaveBlock();
76
- }
77
- if (state.getCurrent() === 'placeholder') {
78
- var name = tryParsePlaceholder(text, braces.lastIndex);
79
- if (name) {
80
- // We found a placeholder so store it in the pieces;
81
- // store the current static text (minus the opening curly brace);
82
- // skip the closing brace and leave the placeholder block.
83
- pieces.addText(text.substring(lastPos, braces.lastIndex - 1));
84
- pieces.addPlaceholder(name);
85
- braces.lastIndex += name.length + 1;
86
- state.leaveBlock();
87
- }
88
- else {
89
- // This is not a placeholder, so it must be a nested ICU;
90
- // store the current static text (including the opening curly brace).
91
- pieces.addText(text.substring(lastPos, braces.lastIndex));
92
- state.nestedIcu();
93
- }
94
- }
95
- else {
96
- pieces.addText(text.substring(lastPos, braces.lastIndex));
97
- }
98
- lastPos = braces.lastIndex;
99
- }
100
- // Capture the last piece of text after the ICUs (if any).
101
- pieces.addText(text.substring(lastPos));
102
- return pieces.toArray();
103
- }
104
- exports.extractIcuPlaceholders = extractIcuPlaceholders;
105
- /**
106
- * A helper class to store the pieces ("static text" or "placeholder name") in an ICU.
107
- */
108
- var IcuPieces = /** @class */ (function () {
109
- function IcuPieces() {
110
- this.pieces = [''];
111
- }
112
- /**
113
- * Add the given `text` to the current "static text" piece.
114
- *
115
- * Sequential calls to `addText()` will append to the current text piece.
116
- */
117
- IcuPieces.prototype.addText = function (text) {
118
- this.pieces[this.pieces.length - 1] += text;
119
- };
120
- /**
121
- * Add the given placeholder `name` to the stored pieces.
122
- */
123
- IcuPieces.prototype.addPlaceholder = function (name) {
124
- this.pieces.push(name);
125
- this.pieces.push('');
126
- };
127
- /**
128
- * Return the stored pieces as an array of strings.
129
- *
130
- * Even values are static strings (e.g. 0, 2, 4, etc)
131
- * Odd values are placeholder names (e.g. 1, 3, 5, etc)
132
- */
133
- IcuPieces.prototype.toArray = function () {
134
- return this.pieces;
135
- };
136
- return IcuPieces;
137
- }());
138
- /**
139
- * A helper class to track the current state of parsing the strings for ICU placeholders.
140
- *
141
- * State changes happen when we enter or leave a curly brace block.
142
- * Since ICUs can be nested the state is stored as a stack.
143
- */
144
- var StateStack = /** @class */ (function () {
145
- function StateStack() {
146
- this.stack = [];
147
- }
148
- /**
149
- * Update the state upon entering a block.
150
- *
151
- * The new state is computed from the current state and added to the stack.
152
- */
153
- StateStack.prototype.enterBlock = function () {
154
- var current = this.getCurrent();
155
- switch (current) {
156
- case 'icu':
157
- this.stack.push('case');
158
- break;
159
- case 'case':
160
- this.stack.push('placeholder');
161
- break;
162
- case 'placeholder':
163
- this.stack.push('case');
164
- break;
165
- default:
166
- this.stack.push('icu');
167
- break;
168
- }
169
- };
170
- /**
171
- * Update the state upon leaving a block.
172
- *
173
- * The previous state is popped off the stack.
174
- */
175
- StateStack.prototype.leaveBlock = function () {
176
- return this.stack.pop();
177
- };
178
- /**
179
- * Update the state upon arriving at a nested ICU.
180
- *
181
- * In this case, the current state of "placeholder" is incorrect, so this is popped off and the
182
- * correct "icu" state is stored.
183
- */
184
- StateStack.prototype.nestedIcu = function () {
185
- var current = this.stack.pop();
186
- assert(current === 'placeholder', 'A nested ICU must replace a placeholder but got ' + current);
187
- this.stack.push('icu');
188
- };
189
- /**
190
- * Get the current (most recent) state from the stack.
191
- */
192
- StateStack.prototype.getCurrent = function () {
193
- return this.stack[this.stack.length - 1];
194
- };
195
- return StateStack;
196
- }());
197
- /**
198
- * Attempt to parse a simple placeholder name from a curly braced block.
199
- *
200
- * If the block contains a comma `,` then it cannot be a placeholder - and is probably a nest ICU
201
- * instead.
202
- *
203
- * @param text the whole string that is being parsed.
204
- * @param start the index of the character in the `text` string where this placeholder may start.
205
- * @returns the placeholder name or `null` if it is not a placeholder.
206
- */
207
- function tryParsePlaceholder(text, start) {
208
- for (var i = start; i < text.length; i++) {
209
- if (text[i] === ',') {
210
- break;
211
- }
212
- if (text[i] === '}') {
213
- return text.substring(start, i);
214
- }
215
- }
216
- return null;
217
- }
218
- function assert(test, message) {
219
- if (!test) {
220
- throw new Error('Assertion failure: ' + message);
221
- }
222
- }
223
- });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWN1X3BhcnNpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9zcmMvdG9vbHMvc3JjL2V4dHJhY3QvdHJhbnNsYXRpb25fZmlsZXMvaWN1X3BhcnNpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBRUg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBDRztJQUNILFNBQWdCLHNCQUFzQixDQUFDLElBQVk7UUFDakQsSUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMvQixJQUFNLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQy9CLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUV2QixJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxLQUE0QixDQUFDO1FBQ2pDLE9BQU8sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFO2dCQUNuQixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDcEI7aUJBQU07Z0JBQ0wseUJBQXlCO2dCQUN6QixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDcEI7WUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxhQUFhLEVBQUU7Z0JBQ3hDLElBQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3pELElBQUksSUFBSSxFQUFFO29CQUNSLG9EQUFvRDtvQkFDcEQsaUVBQWlFO29CQUNqRSwwREFBMEQ7b0JBQzFELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM5RCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM1QixNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO29CQUNwQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7aUJBQ3BCO3FCQUFNO29CQUNMLHlEQUF5RDtvQkFDekQscUVBQXFFO29CQUNyRSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO29CQUMxRCxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7aUJBQ25CO2FBQ0Y7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUMzRDtZQUNELE9BQU8sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQzVCO1FBRUQsMERBQTBEO1FBQzFELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUF4Q0Qsd0RBd0NDO0lBRUQ7O09BRUc7SUFDSDtRQUFBO1lBQ1UsV0FBTSxHQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUE0QmxDLENBQUM7UUExQkM7Ozs7V0FJRztRQUNILDJCQUFPLEdBQVAsVUFBUSxJQUFZO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQzlDLENBQUM7UUFFRDs7V0FFRztRQUNILGtDQUFjLEdBQWQsVUFBZSxJQUFZO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFFRDs7Ozs7V0FLRztRQUNILDJCQUFPLEdBQVA7WUFDRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQztRQUNILGdCQUFDO0lBQUQsQ0FBQyxBQTdCRCxJQTZCQztJQUVEOzs7OztPQUtHO0lBQ0g7UUFBQTtZQUNVLFVBQUssR0FBa0IsRUFBRSxDQUFDO1FBb0RwQyxDQUFDO1FBbERDOzs7O1dBSUc7UUFDSCwrQkFBVSxHQUFWO1lBQ0UsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xDLFFBQVEsT0FBTyxFQUFFO2dCQUNmLEtBQUssS0FBSztvQkFDUixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEIsTUFBTTtnQkFDUixLQUFLLE1BQU07b0JBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQy9CLE1BQU07Z0JBQ1IsS0FBSyxhQUFhO29CQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEIsTUFBTTtnQkFDUjtvQkFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdkIsTUFBTTthQUNUO1FBQ0gsQ0FBQztRQUVEOzs7O1dBSUc7UUFDSCwrQkFBVSxHQUFWO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFFRDs7Ozs7V0FLRztRQUNILDhCQUFTLEdBQVQ7WUFDRSxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxPQUFPLEtBQUssYUFBYSxFQUFFLGtEQUFrRCxHQUFHLE9BQU8sQ0FBQyxDQUFDO1lBQ2hHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFFRDs7V0FFRztRQUNILCtCQUFVLEdBQVY7WUFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNILGlCQUFDO0lBQUQsQ0FBQyxBQXJERCxJQXFEQztJQUdEOzs7Ozs7Ozs7T0FTRztJQUNILFNBQVMsbUJBQW1CLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDdEQsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO2dCQUNuQixNQUFNO2FBQ1A7WUFDRCxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDakM7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVMsTUFBTSxDQUFDLElBQWEsRUFBRSxPQUFlO1FBQzVDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIFNwbGl0IHRoZSBnaXZlbiBgdGV4dGAgaW50byBhbiBhcnJheSBvZiBcInN0YXRpYyBzdHJpbmdzXCIgYW5kIElDVSBcInBsYWNlaG9sZGVyIG5hbWVzXCIuXG4gKlxuICogVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIElDVSBleHByZXNzaW9ucyBpbiBgJGxvY2FsaXplYCB0YWdnZWQgbWVzc2FnZXMgbWF5IGNvbnRhaW4gXCJkeW5hbWljXCJcbiAqIHBpZWNlIChlLmcuIGludGVycG9sYXRpb25zIG9yIGVsZW1lbnQgbWFya2VycykuIFRoZXNlIG1hcmtlcnMgbmVlZCB0byBiZSB0cmFuc2xhdGVkIHRvXG4gKiBwbGFjZWhvbGRlcnMgaW4gZXh0cmFjdGVkIHRyYW5zbGF0aW9uIGZpbGVzLiBTbyB3ZSBtdXN0IHBhcnNlIElDVXMgdG8gaWRlbnRpZnkgdGhlbSBhbmQgc2VwYXJhdGVcbiAqIHRoZW0gb3V0IHNvIHRoYXQgdGhlIHRyYW5zbGF0aW9uIHNlcmlhbGl6ZXJzIGNhbiByZW5kZXIgdGhlbSBhcHByb3ByaWF0ZWx5LlxuICpcbiAqIEFuIGV4YW1wbGUgb2YgYW4gSUNVIHdpdGggaW50ZXJwb2xhdGlvbnM6XG4gKlxuICogYGBgXG4gKiB7VkFSX1BMVVJBTCwgcGx1cmFsLCBvbmUge3tJTlRFUlBPTEFUSU9OfX0gb3RoZXIge3tJTlRFUlBPTEFUSU9OXzF9IHBvc3R9fVxuICogYGBgXG4gKlxuICogSW4gdGhpcyBJQ1UsIGBJTlRFUlBPTEFUSU9OYCBhbmQgYElOVEVSUE9MQVRJT05fMWAgYXJlIGFjdHVhbGx5IHBsYWNlaG9sZGVycyB0aGF0IHdpbGwgYmVcbiAqIHJlcGxhY2VkIHdpdGggZHluYW1pYyBjb250ZW50IGF0IHJ1bnRpbWUuXG4gKlxuICogU3VjaCBwbGFjZWhvbGRlcnMgYXJlIGlkZW50aWZpYWJsZSBhcyB0ZXh0IHdyYXBwZWQgaW4gY3VybHkgYnJhY2VzLCB3aXRoaW4gYW4gSUNVIGNhc2VcbiAqIGV4cHJlc3Npb24uXG4gKlxuICogVG8gY29tcGxpY2F0ZSBtYXR0ZXJzLCBpdCBpcyBwb3NzaWJsZSBmb3IgSUNVcyB0byBiZSBuZXN0ZWQgaW5kZWZpbml0ZWx5IHdpdGhpbiBlYWNoIG90aGVyLiBJblxuICogc3VjaCBjYXNlcywgdGhlIG5lc3RlZCBJQ1UgZXhwcmVzc2lvbiBhcHBlYXJzIGVuY2xvc2VkIGluIGEgc2V0IG9mIGN1cmx5IGJyYWNlcyBpbiB0aGUgc2FtZSB3YXlcbiAqIGFzIGEgcGxhY2Vob2xkZXIuIFRoZSBuZXN0ZWQgSUNVIGV4cHJlc3Npb25zIGNhbiBiZSBkaWZmZXJlbnRpYXRlZCBmcm9tIHBsYWNlaG9sZGVycyBhcyB0aGV5XG4gKiBjb250YWluIGEgY29tbWEgYCxgLCB3aGljaCBzZXBhcmF0ZXMgdGhlIElDVSB2YWx1ZSBmcm9tIHRoZSBJQ1UgdHlwZS5cbiAqXG4gKiBGdXJ0aGVybW9yZSwgbmVzdGVkIElDVXMgY2FuIGhhdmUgcGxhY2Vob2xkZXJzIG9mIHRoZWlyIG93biwgd2hpY2ggbmVlZCB0byBiZSBleHRyYWN0ZWQuXG4gKlxuICogQW4gZXhhbXBsZSBvZiBhIG5lc3RlZCBJQ1UgY29udGFpbmluZyBpdHMgb3duIHBsYWNlaG9sZGVyczpcbiAqXG4gKiBgYGBcbiAqIHtWQVJfU0VMRUNUXzEsIHNlbGVjdCxcbiAqICAgaW52b2ljZSB7SW52b2ljZSBmb3Ige0lOVEVSUE9MQVRJT059fVxuICogICBwYXltZW50IHt7VkFSX1NFTEVDVCwgc2VsZWN0LFxuICogICAgIHByb2Nlc3NvciB7UGF5bWVudCBnYXRld2F5fVxuICogICAgIG90aGVyIHt7SU5URVJQT0xBVElPTl8xfX1cbiAqICAgfX1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB0ZXh0IFRleHQgdG8gYmUgYnJva2VuLlxuICogQHJldHVybnMgYW4gYXJyYXkgb2Ygc3RyaW5ncywgd2hlcmVcbiAqICAtIGV2ZW4gdmFsdWVzIGFyZSBzdGF0aWMgc3RyaW5ncyAoZS5nLiAwLCAyLCA0LCBldGMpXG4gKiAgLSBvZGQgdmFsdWVzIGFyZSBwbGFjZWhvbGRlciBuYW1lcyAoZS5nLiAxLCAzLCA1LCBldGMpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0SWN1UGxhY2Vob2xkZXJzKHRleHQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3Qgc3RhdGUgPSBuZXcgU3RhdGVTdGFjaygpO1xuICBjb25zdCBwaWVjZXMgPSBuZXcgSWN1UGllY2VzKCk7XG4gIGNvbnN0IGJyYWNlcyA9IC9be31dL2c7XG5cbiAgbGV0IGxhc3RQb3MgPSAwO1xuICBsZXQgbWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXl8bnVsbDtcbiAgd2hpbGUgKG1hdGNoID0gYnJhY2VzLmV4ZWModGV4dCkpIHtcbiAgICBpZiAobWF0Y2hbMF0gPT0gJ3snKSB7XG4gICAgICBzdGF0ZS5lbnRlckJsb2NrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFdlIG11c3QgaGF2ZSBoaXQgYSBgfWBcbiAgICAgIHN0YXRlLmxlYXZlQmxvY2soKTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUuZ2V0Q3VycmVudCgpID09PSAncGxhY2Vob2xkZXInKSB7XG4gICAgICBjb25zdCBuYW1lID0gdHJ5UGFyc2VQbGFjZWhvbGRlcih0ZXh0LCBicmFjZXMubGFzdEluZGV4KTtcbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIC8vIFdlIGZvdW5kIGEgcGxhY2Vob2xkZXIgc28gc3RvcmUgaXQgaW4gdGhlIHBpZWNlcztcbiAgICAgICAgLy8gc3RvcmUgdGhlIGN1cnJlbnQgc3RhdGljIHRleHQgKG1pbnVzIHRoZSBvcGVuaW5nIGN1cmx5IGJyYWNlKTtcbiAgICAgICAgLy8gc2tpcCB0aGUgY2xvc2luZyBicmFjZSBhbmQgbGVhdmUgdGhlIHBsYWNlaG9sZGVyIGJsb2NrLlxuICAgICAgICBwaWVjZXMuYWRkVGV4dCh0ZXh0LnN1YnN0cmluZyhsYXN0UG9zLCBicmFjZXMubGFzdEluZGV4IC0gMSkpO1xuICAgICAgICBwaWVjZXMuYWRkUGxhY2Vob2xkZXIobmFtZSk7XG4gICAgICAgIGJyYWNlcy5sYXN0SW5kZXggKz0gbmFtZS5sZW5ndGggKyAxO1xuICAgICAgICBzdGF0ZS5sZWF2ZUJsb2NrKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGlzIGlzIG5vdCBhIHBsYWNlaG9sZGVyLCBzbyBpdCBtdXN0IGJlIGEgbmVzdGVkIElDVTtcbiAgICAgICAgLy8gc3RvcmUgdGhlIGN1cnJlbnQgc3RhdGljIHRleHQgKGluY2x1ZGluZyB0aGUgb3BlbmluZyBjdXJseSBicmFjZSkuXG4gICAgICAgIHBpZWNlcy5hZGRUZXh0KHRleHQuc3Vic3RyaW5nKGxhc3RQb3MsIGJyYWNlcy5sYXN0SW5kZXgpKTtcbiAgICAgICAgc3RhdGUubmVzdGVkSWN1KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBpZWNlcy5hZGRUZXh0KHRleHQuc3Vic3RyaW5nKGxhc3RQb3MsIGJyYWNlcy5sYXN0SW5kZXgpKTtcbiAgICB9XG4gICAgbGFzdFBvcyA9IGJyYWNlcy5sYXN0SW5kZXg7XG4gIH1cblxuICAvLyBDYXB0dXJlIHRoZSBsYXN0IHBpZWNlIG9mIHRleHQgYWZ0ZXIgdGhlIElDVXMgKGlmIGFueSkuXG4gIHBpZWNlcy5hZGRUZXh0KHRleHQuc3Vic3RyaW5nKGxhc3RQb3MpKTtcbiAgcmV0dXJuIHBpZWNlcy50b0FycmF5KCk7XG59XG5cbi8qKlxuICogQSBoZWxwZXIgY2xhc3MgdG8gc3RvcmUgdGhlIHBpZWNlcyAoXCJzdGF0aWMgdGV4dFwiIG9yIFwicGxhY2Vob2xkZXIgbmFtZVwiKSBpbiBhbiBJQ1UuXG4gKi9cbmNsYXNzIEljdVBpZWNlcyB7XG4gIHByaXZhdGUgcGllY2VzOiBzdHJpbmdbXSA9IFsnJ107XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgZ2l2ZW4gYHRleHRgIHRvIHRoZSBjdXJyZW50IFwic3RhdGljIHRleHRcIiBwaWVjZS5cbiAgICpcbiAgICogU2VxdWVudGlhbCBjYWxscyB0byBgYWRkVGV4dCgpYCB3aWxsIGFwcGVuZCB0byB0aGUgY3VycmVudCB0ZXh0IHBpZWNlLlxuICAgKi9cbiAgYWRkVGV4dCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBpZWNlc1t0aGlzLnBpZWNlcy5sZW5ndGggLSAxXSArPSB0ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgZ2l2ZW4gcGxhY2Vob2xkZXIgYG5hbWVgIHRvIHRoZSBzdG9yZWQgcGllY2VzLlxuICAgKi9cbiAgYWRkUGxhY2Vob2xkZXIobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5waWVjZXMucHVzaChuYW1lKTtcbiAgICB0aGlzLnBpZWNlcy5wdXNoKCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHN0b3JlZCBwaWVjZXMgYXMgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAgICpcbiAgICogRXZlbiB2YWx1ZXMgYXJlIHN0YXRpYyBzdHJpbmdzIChlLmcuIDAsIDIsIDQsIGV0YylcbiAgICogT2RkIHZhbHVlcyBhcmUgcGxhY2Vob2xkZXIgbmFtZXMgKGUuZy4gMSwgMywgNSwgZXRjKVxuICAgKi9cbiAgdG9BcnJheSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMucGllY2VzO1xuICB9XG59XG5cbi8qKlxuICogQSBoZWxwZXIgY2xhc3MgdG8gdHJhY2sgdGhlIGN1cnJlbnQgc3RhdGUgb2YgcGFyc2luZyB0aGUgc3RyaW5ncyBmb3IgSUNVIHBsYWNlaG9sZGVycy5cbiAqXG4gKiBTdGF0ZSBjaGFuZ2VzIGhhcHBlbiB3aGVuIHdlIGVudGVyIG9yIGxlYXZlIGEgY3VybHkgYnJhY2UgYmxvY2suXG4gKiBTaW5jZSBJQ1VzIGNhbiBiZSBuZXN0ZWQgdGhlIHN0YXRlIGlzIHN0b3JlZCBhcyBhIHN0YWNrLlxuICovXG5jbGFzcyBTdGF0ZVN0YWNrIHtcbiAgcHJpdmF0ZSBzdGFjazogUGFyc2VyU3RhdGVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHN0YXRlIHVwb24gZW50ZXJpbmcgYSBibG9jay5cbiAgICpcbiAgICogVGhlIG5ldyBzdGF0ZSBpcyBjb21wdXRlZCBmcm9tIHRoZSBjdXJyZW50IHN0YXRlIGFuZCBhZGRlZCB0byB0aGUgc3RhY2suXG4gICAqL1xuICBlbnRlckJsb2NrKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmdldEN1cnJlbnQoKTtcbiAgICBzd2l0Y2ggKGN1cnJlbnQpIHtcbiAgICAgIGNhc2UgJ2ljdSc6XG4gICAgICAgIHRoaXMuc3RhY2sucHVzaCgnY2FzZScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Nhc2UnOlxuICAgICAgICB0aGlzLnN0YWNrLnB1c2goJ3BsYWNlaG9sZGVyJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncGxhY2Vob2xkZXInOlxuICAgICAgICB0aGlzLnN0YWNrLnB1c2goJ2Nhc2UnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnN0YWNrLnB1c2goJ2ljdScpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBzdGF0ZSB1cG9uIGxlYXZpbmcgYSBibG9jay5cbiAgICpcbiAgICogVGhlIHByZXZpb3VzIHN0YXRlIGlzIHBvcHBlZCBvZmYgdGhlIHN0YWNrLlxuICAgKi9cbiAgbGVhdmVCbG9jaygpOiBQYXJzZXJTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2sucG9wKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBzdGF0ZSB1cG9uIGFycml2aW5nIGF0IGEgbmVzdGVkIElDVS5cbiAgICpcbiAgICogSW4gdGhpcyBjYXNlLCB0aGUgY3VycmVudCBzdGF0ZSBvZiBcInBsYWNlaG9sZGVyXCIgaXMgaW5jb3JyZWN0LCBzbyB0aGlzIGlzIHBvcHBlZCBvZmYgYW5kIHRoZVxuICAgKiBjb3JyZWN0IFwiaWN1XCIgc3RhdGUgaXMgc3RvcmVkLlxuICAgKi9cbiAgbmVzdGVkSWN1KCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnN0YWNrLnBvcCgpO1xuICAgIGFzc2VydChjdXJyZW50ID09PSAncGxhY2Vob2xkZXInLCAnQSBuZXN0ZWQgSUNVIG11c3QgcmVwbGFjZSBhIHBsYWNlaG9sZGVyIGJ1dCBnb3QgJyArIGN1cnJlbnQpO1xuICAgIHRoaXMuc3RhY2sucHVzaCgnaWN1Jyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IChtb3N0IHJlY2VudCkgc3RhdGUgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBnZXRDdXJyZW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV07XG4gIH1cbn1cbnR5cGUgUGFyc2VyU3RhdGUgPSAnaWN1J3wnY2FzZSd8J3BsYWNlaG9sZGVyJ3x1bmRlZmluZWQ7XG5cbi8qKlxuICogQXR0ZW1wdCB0byBwYXJzZSBhIHNpbXBsZSBwbGFjZWhvbGRlciBuYW1lIGZyb20gYSBjdXJseSBicmFjZWQgYmxvY2suXG4gKlxuICogSWYgdGhlIGJsb2NrIGNvbnRhaW5zIGEgY29tbWEgYCxgIHRoZW4gaXQgY2Fubm90IGJlIGEgcGxhY2Vob2xkZXIgLSBhbmQgaXMgcHJvYmFibHkgYSBuZXN0IElDVVxuICogaW5zdGVhZC5cbiAqXG4gKiBAcGFyYW0gdGV4dCB0aGUgd2hvbGUgc3RyaW5nIHRoYXQgaXMgYmVpbmcgcGFyc2VkLlxuICogQHBhcmFtIHN0YXJ0IHRoZSBpbmRleCBvZiB0aGUgY2hhcmFjdGVyIGluIHRoZSBgdGV4dGAgc3RyaW5nIHdoZXJlIHRoaXMgcGxhY2Vob2xkZXIgbWF5IHN0YXJ0LlxuICogQHJldHVybnMgdGhlIHBsYWNlaG9sZGVyIG5hbWUgb3IgYG51bGxgIGlmIGl0IGlzIG5vdCBhIHBsYWNlaG9sZGVyLlxuICovXG5mdW5jdGlvbiB0cnlQYXJzZVBsYWNlaG9sZGVyKHRleHQ6IHN0cmluZywgc3RhcnQ6IG51bWJlcik6IHN0cmluZ3xudWxsIHtcbiAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGlmICh0ZXh0W2ldID09PSAnLCcpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAodGV4dFtpXSA9PT0gJ30nKSB7XG4gICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoc3RhcnQsIGkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0KHRlc3Q6IGJvb2xlYW4sIG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoIXRlc3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fzc2VydGlvbiBmYWlsdXJlOiAnICsgbWVzc2FnZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,47 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define("@angular/localize/src/tools/src/extract/translation_files/json_translation_serializer", ["require", "exports", "tslib", "@angular/localize/src/tools/src/extract/translation_files/utils"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SimpleJsonTranslationSerializer = void 0;
13
- var tslib_1 = require("tslib");
14
- var utils_1 = require("@angular/localize/src/tools/src/extract/translation_files/utils");
15
- /**
16
- * This is a semi-public bespoke serialization format that is used for testing and sometimes as a
17
- * format for storing translations that will be inlined at runtime.
18
- *
19
- * @see SimpleJsonTranslationParser
20
- */
21
- var SimpleJsonTranslationSerializer = /** @class */ (function () {
22
- function SimpleJsonTranslationSerializer(sourceLocale) {
23
- this.sourceLocale = sourceLocale;
24
- }
25
- SimpleJsonTranslationSerializer.prototype.serialize = function (messages) {
26
- var e_1, _a;
27
- var fileObj = { locale: this.sourceLocale, translations: {} };
28
- try {
29
- for (var _b = (0, tslib_1.__values)((0, utils_1.consolidateMessages)(messages, function (message) { return message.id; })), _c = _b.next(); !_c.done; _c = _b.next()) {
30
- var _d = (0, tslib_1.__read)(_c.value, 1), message = _d[0];
31
- fileObj.translations[message.id] = message.text;
32
- }
33
- }
34
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
35
- finally {
36
- try {
37
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
38
- }
39
- finally { if (e_1) throw e_1.error; }
40
- }
41
- return JSON.stringify(fileObj, null, 2);
42
- };
43
- return SimpleJsonTranslationSerializer;
44
- }());
45
- exports.SimpleJsonTranslationSerializer = SimpleJsonTranslationSerializer;
46
- });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbl90cmFuc2xhdGlvbl9zZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbG9jYWxpemUvc3JjL3Rvb2xzL3NyYy9leHRyYWN0L3RyYW5zbGF0aW9uX2ZpbGVzL2pzb25fdHJhbnNsYXRpb25fc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBU0EseUZBQTRDO0lBUTVDOzs7OztPQUtHO0lBQ0g7UUFDRSx5Q0FBb0IsWUFBb0I7WUFBcEIsaUJBQVksR0FBWixZQUFZLENBQVE7UUFBRyxDQUFDO1FBQzVDLG1EQUFTLEdBQVQsVUFBVSxRQUEwQjs7WUFDbEMsSUFBTSxPQUFPLEdBQThCLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBQyxDQUFDOztnQkFDekYsS0FBd0IsSUFBQSxLQUFBLHNCQUFBLElBQUEsMkJBQW1CLEVBQUMsUUFBUSxFQUFFLFVBQUEsT0FBTyxJQUFJLE9BQUEsT0FBTyxDQUFDLEVBQUUsRUFBVixDQUFVLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBbkUsSUFBQSxLQUFBLGdDQUFTLEVBQVIsT0FBTyxRQUFBO29CQUNqQixPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO2lCQUNqRDs7Ozs7Ozs7O1lBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNILHNDQUFDO0lBQUQsQ0FBQyxBQVRELElBU0M7SUFUWSwwRUFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7ybVNZXNzYWdlSWQsIMm1UGFyc2VkTWVzc2FnZSwgybVTb3VyY2VNZXNzYWdlfSBmcm9tICdAYW5ndWxhci9sb2NhbGl6ZSc7XG5pbXBvcnQge1RyYW5zbGF0aW9uU2VyaWFsaXplcn0gZnJvbSAnLi90cmFuc2xhdGlvbl9zZXJpYWxpemVyJztcbmltcG9ydCB7Y29uc29saWRhdGVNZXNzYWdlc30gZnJvbSAnLi91dGlscyc7XG5cblxuaW50ZXJmYWNlIFNpbXBsZUpzb25UcmFuc2xhdGlvbkZpbGUge1xuICBsb2NhbGU6IHN0cmluZztcbiAgdHJhbnNsYXRpb25zOiBSZWNvcmQ8ybVNZXNzYWdlSWQsIMm1U291cmNlTWVzc2FnZT47XG59XG5cbi8qKlxuICogVGhpcyBpcyBhIHNlbWktcHVibGljIGJlc3Bva2Ugc2VyaWFsaXphdGlvbiBmb3JtYXQgdGhhdCBpcyB1c2VkIGZvciB0ZXN0aW5nIGFuZCBzb21ldGltZXMgYXMgYVxuICogZm9ybWF0IGZvciBzdG9yaW5nIHRyYW5zbGF0aW9ucyB0aGF0IHdpbGwgYmUgaW5saW5lZCBhdCBydW50aW1lLlxuICpcbiAqIEBzZWUgU2ltcGxlSnNvblRyYW5zbGF0aW9uUGFyc2VyXG4gKi9cbmV4cG9ydCBjbGFzcyBTaW1wbGVKc29uVHJhbnNsYXRpb25TZXJpYWxpemVyIGltcGxlbWVudHMgVHJhbnNsYXRpb25TZXJpYWxpemVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzb3VyY2VMb2NhbGU6IHN0cmluZykge31cbiAgc2VyaWFsaXplKG1lc3NhZ2VzOiDJtVBhcnNlZE1lc3NhZ2VbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlsZU9iajogU2ltcGxlSnNvblRyYW5zbGF0aW9uRmlsZSA9IHtsb2NhbGU6IHRoaXMuc291cmNlTG9jYWxlLCB0cmFuc2xhdGlvbnM6IHt9fTtcbiAgICBmb3IgKGNvbnN0IFttZXNzYWdlXSBvZiBjb25zb2xpZGF0ZU1lc3NhZ2VzKG1lc3NhZ2VzLCBtZXNzYWdlID0+IG1lc3NhZ2UuaWQpKSB7XG4gICAgICBmaWxlT2JqLnRyYW5zbGF0aW9uc1ttZXNzYWdlLmlkXSA9IG1lc3NhZ2UudGV4dDtcbiAgICB9XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGZpbGVPYmosIG51bGwsIDIpO1xuICB9XG59XG4iXX0=
@@ -1,63 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define("@angular/localize/src/tools/src/extract/translation_files/legacy_message_id_migration_serializer", ["require", "exports", "tslib"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.LegacyMessageIdMigrationSerializer = void 0;
13
- var tslib_1 = require("tslib");
14
- /**
15
- * A translation serializer that generates the mapping file for the legacy message ID migration.
16
- * The file is used by the `localize-migrate` script to migrate existing translation files from
17
- * the legacy message IDs to the canonical ones.
18
- */
19
- var LegacyMessageIdMigrationSerializer = /** @class */ (function () {
20
- function LegacyMessageIdMigrationSerializer(_diagnostics) {
21
- this._diagnostics = _diagnostics;
22
- }
23
- LegacyMessageIdMigrationSerializer.prototype.serialize = function (messages) {
24
- var _this = this;
25
- var hasMessages = false;
26
- var mapping = messages.reduce(function (output, message) {
27
- var e_1, _a;
28
- if (shouldMigrate(message)) {
29
- try {
30
- for (var _b = (0, tslib_1.__values)(message.legacyIds), _c = _b.next(); !_c.done; _c = _b.next()) {
31
- var legacyId = _c.value;
32
- if (output.hasOwnProperty(legacyId)) {
33
- _this._diagnostics.warn("Detected duplicate legacy ID " + legacyId + ".");
34
- }
35
- output[legacyId] = message.id;
36
- hasMessages = true;
37
- }
38
- }
39
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
40
- finally {
41
- try {
42
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
43
- }
44
- finally { if (e_1) throw e_1.error; }
45
- }
46
- }
47
- return output;
48
- }, {});
49
- if (!hasMessages) {
50
- this._diagnostics.warn('Could not find any legacy message IDs in source files while generating ' +
51
- 'the legacy message migration file.');
52
- }
53
- return JSON.stringify(mapping, null, 2);
54
- };
55
- return LegacyMessageIdMigrationSerializer;
56
- }());
57
- exports.LegacyMessageIdMigrationSerializer = LegacyMessageIdMigrationSerializer;
58
- /** Returns true if a message needs to be migrated. */
59
- function shouldMigrate(message) {
60
- return !message.customId && !!message.legacyIds && message.legacyIds.length > 0;
61
- }
62
- });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWN5X21lc3NhZ2VfaWRfbWlncmF0aW9uX3NlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9zcmMvdG9vbHMvc3JjL2V4dHJhY3QvdHJhbnNsYXRpb25fZmlsZXMvbGVnYWN5X21lc3NhZ2VfaWRfbWlncmF0aW9uX3NlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQVlBOzs7O09BSUc7SUFDSDtRQUNFLDRDQUFvQixZQUF5QjtZQUF6QixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUFHLENBQUM7UUFFakQsc0RBQVMsR0FBVCxVQUFVLFFBQXlCO1lBQW5DLGlCQXVCQztZQXRCQyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFDLE1BQU0sRUFBRSxPQUFPOztnQkFDOUMsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUU7O3dCQUMxQixLQUF1QixJQUFBLEtBQUEsc0JBQUEsT0FBTyxDQUFDLFNBQVUsQ0FBQSxnQkFBQSw0QkFBRTs0QkFBdEMsSUFBTSxRQUFRLFdBQUE7NEJBQ2pCLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQ0FDbkMsS0FBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0NBQWdDLFFBQVEsTUFBRyxDQUFDLENBQUM7NkJBQ3JFOzRCQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOzRCQUM5QixXQUFXLEdBQUcsSUFBSSxDQUFDO3lCQUNwQjs7Ozs7Ozs7O2lCQUNGO2dCQUNELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUMsRUFBRSxFQUE0QixDQUFDLENBQUM7WUFFakMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ2xCLHlFQUF5RTtvQkFDekUsb0NBQW9DLENBQUMsQ0FBQzthQUMzQztZQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDSCx5Q0FBQztJQUFELENBQUMsQUEzQkQsSUEyQkM7SUEzQlksZ0ZBQWtDO0lBNkIvQyxzREFBc0Q7SUFDdEQsU0FBUyxhQUFhLENBQUMsT0FBc0I7UUFDM0MsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7ybVQYXJzZWRNZXNzYWdlIGFzIFBhcnNlZE1lc3NhZ2V9IGZyb20gJ0Bhbmd1bGFyL2xvY2FsaXplJztcbmltcG9ydCB7RGlhZ25vc3RpY3N9IGZyb20gJy4uLy4uL2RpYWdub3N0aWNzJztcbmltcG9ydCB7VHJhbnNsYXRpb25TZXJpYWxpemVyfSBmcm9tICcuL3RyYW5zbGF0aW9uX3NlcmlhbGl6ZXInO1xuXG5cbi8qKlxuICogQSB0cmFuc2xhdGlvbiBzZXJpYWxpemVyIHRoYXQgZ2VuZXJhdGVzIHRoZSBtYXBwaW5nIGZpbGUgZm9yIHRoZSBsZWdhY3kgbWVzc2FnZSBJRCBtaWdyYXRpb24uXG4gKiBUaGUgZmlsZSBpcyB1c2VkIGJ5IHRoZSBgbG9jYWxpemUtbWlncmF0ZWAgc2NyaXB0IHRvIG1pZ3JhdGUgZXhpc3RpbmcgdHJhbnNsYXRpb24gZmlsZXMgZnJvbVxuICogdGhlIGxlZ2FjeSBtZXNzYWdlIElEcyB0byB0aGUgY2Fub25pY2FsIG9uZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBMZWdhY3lNZXNzYWdlSWRNaWdyYXRpb25TZXJpYWxpemVyIGltcGxlbWVudHMgVHJhbnNsYXRpb25TZXJpYWxpemVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlhZ25vc3RpY3M6IERpYWdub3N0aWNzKSB7fVxuXG4gIHNlcmlhbGl6ZShtZXNzYWdlczogUGFyc2VkTWVzc2FnZVtdKTogc3RyaW5nIHtcbiAgICBsZXQgaGFzTWVzc2FnZXMgPSBmYWxzZTtcbiAgICBjb25zdCBtYXBwaW5nID0gbWVzc2FnZXMucmVkdWNlKChvdXRwdXQsIG1lc3NhZ2UpID0+IHtcbiAgICAgIGlmIChzaG91bGRNaWdyYXRlKG1lc3NhZ2UpKSB7XG4gICAgICAgIGZvciAoY29uc3QgbGVnYWN5SWQgb2YgbWVzc2FnZS5sZWdhY3lJZHMhKSB7XG4gICAgICAgICAgaWYgKG91dHB1dC5oYXNPd25Qcm9wZXJ0eShsZWdhY3lJZCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWdub3N0aWNzLndhcm4oYERldGVjdGVkIGR1cGxpY2F0ZSBsZWdhY3kgSUQgJHtsZWdhY3lJZH0uYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgb3V0cHV0W2xlZ2FjeUlkXSA9IG1lc3NhZ2UuaWQ7XG4gICAgICAgICAgaGFzTWVzc2FnZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xuXG4gICAgaWYgKCFoYXNNZXNzYWdlcykge1xuICAgICAgdGhpcy5fZGlhZ25vc3RpY3Mud2FybihcbiAgICAgICAgICAnQ291bGQgbm90IGZpbmQgYW55IGxlZ2FjeSBtZXNzYWdlIElEcyBpbiBzb3VyY2UgZmlsZXMgd2hpbGUgZ2VuZXJhdGluZyAnICtcbiAgICAgICAgICAndGhlIGxlZ2FjeSBtZXNzYWdlIG1pZ3JhdGlvbiBmaWxlLicpO1xuICAgIH1cblxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShtYXBwaW5nLCBudWxsLCAyKTtcbiAgfVxufVxuXG4vKiogUmV0dXJucyB0cnVlIGlmIGEgbWVzc2FnZSBuZWVkcyB0byBiZSBtaWdyYXRlZC4gKi9cbmZ1bmN0aW9uIHNob3VsZE1pZ3JhdGUobWVzc2FnZTogUGFyc2VkTWVzc2FnZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gIW1lc3NhZ2UuY3VzdG9tSWQgJiYgISFtZXNzYWdlLmxlZ2FjeUlkcyAmJiBtZXNzYWdlLmxlZ2FjeUlkcy5sZW5ndGggPiAwO1xufVxuIl19
@@ -1,13 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define("@angular/localize/src/tools/src/extract/translation_files/translation_serializer", ["require", "exports"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25fc2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvY2FsaXplL3NyYy90b29scy9zcmMvZXh0cmFjdC90cmFuc2xhdGlvbl9maWxlcy90cmFuc2xhdGlvbl9zZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7ybVQYXJzZWRNZXNzYWdlfSBmcm9tICdAYW5ndWxhci9sb2NhbGl6ZSc7XG5cbi8qKlxuICogSW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlIHRvIHByb3ZpZGUgYSBjbGFzcyB0aGF0IGNhbiByZW5kZXIgbWVzc2FnZXMgaW50byBhIHRyYW5zbGF0aW9uIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNsYXRpb25TZXJpYWxpemVyIHtcbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSB0aGUgY29udGVudHMgb2YgYSB0cmFuc2xhdGlvbiBmaWxlIGNvbnRhaW5pbmcgdGhlIGdpdmVuIGBtZXNzYWdlc2AuXG4gICAqXG4gICAqIEBwYXJhbSBtZXNzYWdlcyBUaGUgbWVzc2FnZXMgdG8gcmVuZGVyIHRvIHRoZSBmaWxlLlxuICAgKiBAcmV0dXJucyBUaGUgY29udGVudHMgb2YgdGhlIHNlcmlhbGl6ZWQgZmlsZS5cbiAgICovXG4gIHNlcmlhbGl6ZShtZXNzYWdlczogybVQYXJzZWRNZXNzYWdlW10pOiBzdHJpbmc7XG59XG4iXX0=