@angular/localize 19.0.0-next.0 → 19.0.0-next.10

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 (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -1
  3. package/fesm2022/init.mjs +1 -1
  4. package/fesm2022/init.mjs.map +1 -1
  5. package/fesm2022/localize.mjs +2 -2
  6. package/fesm2022/localize.mjs.map +1 -1
  7. package/index.d.ts +1 -1
  8. package/init/index.d.ts +1 -1
  9. package/package.json +3 -8
  10. package/schematics/ng-add/ng_add_bundle.js +5 -4
  11. package/schematics/ng-add/ng_add_bundle.js.map +2 -2
  12. package/schematics/ng-add/schema.json +0 -5
  13. package/tools/bundles/{chunk-NCEP4OH2.js → chunk-P52LUQCG.js} +3 -3
  14. package/tools/bundles/{chunk-URWRI34O.js → chunk-P5UMW3G2.js} +3 -3
  15. package/tools/bundles/{chunk-URWRI34O.js.map → chunk-P5UMW3G2.js.map} +1 -1
  16. package/tools/bundles/{chunk-GGL5GE7J.js → chunk-YINHXBYF.js} +2 -2
  17. package/tools/bundles/index.js +4 -4
  18. package/tools/bundles/src/extract/cli.js +3 -3
  19. package/tools/bundles/src/migrate/cli.js +1 -1
  20. package/tools/bundles/src/translate/cli.js +3 -3
  21. package/tools/bundles_metadata.json +1 -1
  22. package/tools/index.d.ts +1 -1
  23. package/tools/src/diagnostics.d.ts +1 -1
  24. package/tools/src/extract/cli.d.ts +1 -1
  25. package/tools/src/extract/duplicates.d.ts +1 -1
  26. package/tools/src/extract/extraction.d.ts +1 -1
  27. package/tools/src/extract/index.d.ts +1 -1
  28. package/tools/src/extract/source_files/es2015_extract_plugin.d.ts +1 -1
  29. package/tools/src/extract/source_files/es5_extract_plugin.d.ts +1 -1
  30. package/tools/src/extract/translation_files/arb_translation_serializer.d.ts +1 -1
  31. package/tools/src/extract/translation_files/format_options.d.ts +1 -1
  32. package/tools/src/extract/translation_files/icu_parsing.d.ts +1 -1
  33. package/tools/src/extract/translation_files/json_translation_serializer.d.ts +1 -1
  34. package/tools/src/extract/translation_files/legacy_message_id_migration_serializer.d.ts +1 -1
  35. package/tools/src/extract/translation_files/translation_serializer.d.ts +1 -1
  36. package/tools/src/extract/translation_files/utils.d.ts +1 -1
  37. package/tools/src/extract/translation_files/xliff1_translation_serializer.d.ts +1 -1
  38. package/tools/src/extract/translation_files/xliff2_translation_serializer.d.ts +1 -1
  39. package/tools/src/extract/translation_files/xmb_translation_serializer.d.ts +1 -1
  40. package/tools/src/extract/translation_files/xml_file.d.ts +1 -1
  41. package/tools/src/migrate/cli.d.ts +1 -1
  42. package/tools/src/migrate/index.d.ts +1 -1
  43. package/tools/src/migrate/migrate.d.ts +1 -1
  44. package/tools/src/source_file_utils.d.ts +1 -1
  45. package/tools/src/translate/asset_files/asset_translation_handler.d.ts +1 -1
  46. package/tools/src/translate/output_path.d.ts +1 -1
  47. package/tools/src/translate/source_files/es2015_translate_plugin.d.ts +1 -1
  48. package/tools/src/translate/source_files/es5_translate_plugin.d.ts +1 -1
  49. package/tools/src/translate/source_files/locale_plugin.d.ts +1 -1
  50. package/tools/src/translate/source_files/source_file_translation_handler.d.ts +1 -1
  51. package/tools/src/translate/translation_files/base_visitor.d.ts +1 -1
  52. package/tools/src/translate/translation_files/message_serialization/message_renderer.d.ts +1 -1
  53. package/tools/src/translate/translation_files/message_serialization/message_serializer.d.ts +1 -1
  54. package/tools/src/translate/translation_files/message_serialization/target_message_renderer.d.ts +1 -1
  55. package/tools/src/translate/translation_files/translation_loader.d.ts +1 -1
  56. package/tools/src/translate/translation_files/translation_parsers/arb_translation_parser.d.ts +1 -1
  57. package/tools/src/translate/translation_files/translation_parsers/serialize_translation_message.d.ts +1 -1
  58. package/tools/src/translate/translation_files/translation_parsers/translation_parse_error.d.ts +1 -1
  59. package/tools/src/translate/translation_files/translation_parsers/translation_parser.d.ts +1 -1
  60. package/tools/src/translate/translation_files/translation_parsers/translation_utils.d.ts +1 -1
  61. package/tools/src/translate/translator.d.ts +1 -1
  62. package/esm2022/index.mjs +0 -12
  63. package/esm2022/init/index.mjs +0 -12
  64. package/esm2022/localize.mjs +0 -12
  65. package/esm2022/private.mjs +0 -12
  66. package/esm2022/src/localize/doc_index.mjs +0 -9
  67. package/esm2022/src/localize/index.mjs +0 -9
  68. package/esm2022/src/localize/src/localize.mjs +0 -136
  69. package/esm2022/src/translate.mjs +0 -81
  70. package/esm2022/src/utils/index.mjs +0 -11
  71. package/esm2022/src/utils/src/constants.mjs +0 -58
  72. package/esm2022/src/utils/src/messages.mjs +0 -193
  73. package/esm2022/src/utils/src/translations.mjs +0 -119
  74. /package/tools/bundles/{chunk-NCEP4OH2.js.map → chunk-P52LUQCG.js.map} +0 -0
  75. /package/tools/bundles/{chunk-GGL5GE7J.js.map → chunk-YINHXBYF.js.map} +0 -0
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  /** Mapping between legacy message IDs and their canonical counterparts. */
9
9
  export type MigrationMapping = {
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { PathManipulation } from '@angular/compiler-cli/private/localize';
9
9
  import { ɵParsedTranslation, ɵSourceLocation } from '@angular/localize';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { AbsoluteFsPath, FileSystem, PathSegment } from '@angular/compiler-cli/private/localize';
9
9
  import { Diagnostics } from '../../diagnostics';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { AbsoluteFsPath, PathManipulation } from '@angular/compiler-cli/private/localize';
9
9
  /**
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { PathManipulation } from '@angular/compiler-cli/private/localize';
9
9
  import { ɵParsedTranslation } from '@angular/localize';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { PathManipulation } from '@angular/compiler-cli/private/localize';
9
9
  import { ɵParsedTranslation } from '@angular/localize';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { PluginObj } from '@babel/core';
9
9
  import { TranslatePluginOptions } from '../../source_file_utils';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { AbsoluteFsPath, FileSystem, PathSegment } from '@angular/compiler-cli/private/localize';
9
9
  import { Diagnostics } from '../../diagnostics';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { Attribute, Block, BlockParameter, Comment, Element, Expansion, ExpansionCase, LetDeclaration, Text, Visitor } from '@angular/compiler';
9
9
  /**
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  export interface MessageRenderer<T> {
9
9
  message: T;
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { Element, Expansion, ExpansionCase, Node, Text } from '@angular/compiler';
9
9
  import { BaseVisitor } from '../base_visitor';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { ɵParsedTranslation } from '@angular/localize';
9
9
  import { MessageRenderer } from './message_renderer';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { AbsoluteFsPath, ReadonlyFileSystem } from '@angular/compiler-cli/private/localize';
9
9
  import { DiagnosticHandlingStrategy, Diagnostics } from '../../diagnostics';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { MessageId, ɵSourceMessage } from '@angular/localize';
9
9
  import { ParseAnalysis, ParsedTranslationBundle, TranslationParser } from './translation_parser';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { Element, ParseError } from '@angular/compiler';
9
9
  import { ɵParsedTranslation } from '@angular/localize';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { ParseErrorLevel, ParseSourceSpan } from '@angular/compiler';
9
9
  /**
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { MessageId, ɵParsedTranslation } from '@angular/localize';
9
9
  import { Diagnostics } from '../../../diagnostics';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { Element, Node, ParseError, ParseErrorLevel, ParseSourceSpan, ParseTreeResult } from '@angular/compiler';
9
9
  import { Diagnostics } from '../../../diagnostics';
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
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
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { AbsoluteFsPath, PathSegment, ReadonlyFileSystem } from '@angular/compiler-cli/private/localize';
9
9
  import { MessageId, ɵParsedTranslation } from '@angular/localize';
package/esm2022/index.mjs DELETED
@@ -1,12 +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
- // DO NOT ADD public exports to this file.
9
- // The public API exports are specified in the `./localize` module, which is checked by the
10
- // public_api_guard rules
11
- export * from './localize';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCwwQ0FBMEM7QUFDMUMsMkZBQTJGO0FBQzNGLHlCQUF5QjtBQUV6QixjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vLyBETyBOT1QgQUREIHB1YmxpYyBleHBvcnRzIHRvIHRoaXMgZmlsZS5cbi8vIFRoZSBwdWJsaWMgQVBJIGV4cG9ydHMgYXJlIHNwZWNpZmllZCBpbiB0aGUgYC4vbG9jYWxpemVgIG1vZHVsZSwgd2hpY2ggaXMgY2hlY2tlZCBieSB0aGVcbi8vIHB1YmxpY19hcGlfZ3VhcmQgcnVsZXNcblxuZXhwb3J0ICogZnJvbSAnLi9sb2NhbGl6ZSc7XG5cbi8vIFRoZSBnbG9iYWwgZGVjbGFyYXRpb24gbXVzdCBiZSBpbiB0aGUgaW5kZXguZC50cyBhcyBvdGhlcndpc2UgaXQgd2lsbCBub3QgYmUgcGlja2VkIHVwIHdoZW4gdXNlZFxuLy8gd2l0aFxuLy8gLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJAYW5ndWxhci9sb2NhbGl6ZVwiIC8+XG5cbmltcG9ydCB7ybVMb2NhbGl6ZUZufSBmcm9tICcuL2xvY2FsaXplJztcblxuLy8gYGRlY2xhcmUgZ2xvYmFsYCBhbGxvd3MgdXMgdG8gZXNjYXBlIHRoZSBjdXJyZW50IG1vZHVsZSBhbmQgcGxhY2UgdHlwZXMgb24gdGhlIGdsb2JhbCBuYW1lc3BhY2VcbmRlY2xhcmUgZ2xvYmFsIHtcbiAgLyoqXG4gICAqIFRhZyBhIHRlbXBsYXRlIGxpdGVyYWwgc3RyaW5nIGZvciBsb2NhbGl6YXRpb24uXG4gICAqXG4gICAqIEZvciBleGFtcGxlOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAkbG9jYWxpemUgYHNvbWUgc3RyaW5nIHRvIGxvY2FsaXplYFxuICAgKiBgYGBcbiAgICpcbiAgICogKipQcm92aWRpbmcgbWVhbmluZywgZGVzY3JpcHRpb24gYW5kIGlkKipcbiAgICpcbiAgICogWW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgb25lIG9yIG1vcmUgb2YgYG1lYW5pbmdgLCBgZGVzY3JpcHRpb25gIGFuZCBgaWRgIGZvciBhIGxvY2FsaXplZFxuICAgKiBzdHJpbmcgYnkgcHJlLXBlbmRpbmcgaXQgd2l0aCBhIGNvbG9uIGRlbGltaXRlZCBibG9jayBvZiB0aGUgZm9ybTpcbiAgICpcbiAgICogYGBgdHNcbiAgICogJGxvY2FsaXplYDptZWFuaW5nfGRlc2NyaXB0aW9uQEBpZDpzb3VyY2UgbWVzc2FnZSB0ZXh0YDtcbiAgICpcbiAgICogJGxvY2FsaXplYDptZWFuaW5nfDpzb3VyY2UgbWVzc2FnZSB0ZXh0YDtcbiAgICogJGxvY2FsaXplYDpkZXNjcmlwdGlvbjpzb3VyY2UgbWVzc2FnZSB0ZXh0YDtcbiAgICogJGxvY2FsaXplYDpAQGlkOnNvdXJjZSBtZXNzYWdlIHRleHRgO1xuICAgKiBgYGBcbiAgICpcbiAgICogVGhpcyBmb3JtYXQgaXMgdGhlIHNhbWUgYXMgdGhhdCB1c2VkIGZvciBgaTE4bmAgbWFya2VycyBpbiBBbmd1bGFyIHRlbXBsYXRlcy4gU2VlIHRoZVxuICAgKiBbQW5ndWxhciBpMThuIGd1aWRlXShndWlkZS9pMThuL3ByZXBhcmUjbWFyay10ZXh0LWluLWNvbXBvbmVudC10ZW1wbGF0ZSkuXG4gICAqXG4gICAqICoqTmFtaW5nIHBsYWNlaG9sZGVycyoqXG4gICAqXG4gICAqIElmIHRoZSB0ZW1wbGF0ZSBsaXRlcmFsIHN0cmluZyBjb250YWlucyBleHByZXNzaW9ucywgdGhlbiB0aGUgZXhwcmVzc2lvbnMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5XG4gICAqIGFzc29jaWF0ZWQgd2l0aCBwbGFjZWhvbGRlciBuYW1lcyBmb3IgeW91LlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZTpcbiAgICpcbiAgICogYGBgdHNcbiAgICogJGxvY2FsaXplIGBIaSAke25hbWV9ISBUaGVyZSBhcmUgJHtpdGVtcy5sZW5ndGh9IGl0ZW1zLmA7XG4gICAqIGBgYFxuICAgKlxuICAgKiB3aWxsIGdlbmVyYXRlIGEgbWVzc2FnZS1zb3VyY2Ugb2YgYEhpIHskUEh9ISBUaGVyZSBhcmUgeyRQSF8xfSBpdGVtc2AuXG4gICAqXG4gICAqIFRoZSByZWNvbW1lbmRlZCBwcmFjdGljZSBpcyB0byBuYW1lIHRoZSBwbGFjZWhvbGRlciBhc3NvY2lhdGVkIHdpdGggZWFjaCBleHByZXNzaW9uIHRob3VnaC5cbiAgICpcbiAgICogRG8gdGhpcyBieSBwcm92aWRpbmcgdGhlIHBsYWNlaG9sZGVyIG5hbWUgd3JhcHBlZCBpbiBgOmAgY2hhcmFjdGVycyBkaXJlY3RseSBhZnRlciB0aGVcbiAgICogZXhwcmVzc2lvbi4gVGhlc2UgcGxhY2Vob2xkZXIgbmFtZXMgYXJlIHN0cmlwcGVkIG91dCBvZiB0aGUgcmVuZGVyZWQgbG9jYWxpemVkIHN0cmluZy5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIHRvIG5hbWUgdGhlIGBpdGVtcy5sZW5ndGhgIGV4cHJlc3Npb24gcGxhY2Vob2xkZXIgYGl0ZW1Db3VudGAgeW91IHdyaXRlOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAkbG9jYWxpemUgYFRoZXJlIGFyZSAke2l0ZW1zLmxlbmd0aH06aXRlbUNvdW50OiBpdGVtc2A7XG4gICAqIGBgYFxuICAgKlxuICAgKiAqKkVzY2FwaW5nIGNvbG9uIG1hcmtlcnMqKlxuICAgKlxuICAgKiBJZiB5b3UgbmVlZCB0byB1c2UgYSBgOmAgY2hhcmFjdGVyIGRpcmVjdGx5IGF0IHRoZSBzdGFydCBvZiBhIHRhZ2dlZCBzdHJpbmcgdGhhdCBoYXMgbm9cbiAgICogbWV0YWRhdGEgYmxvY2ssIG9yIGRpcmVjdGx5IGFmdGVyIGEgc3Vic3RpdHV0aW9uIGV4cHJlc3Npb24gdGhhdCBoYXMgbm8gbmFtZSB5b3UgbXVzdCBlc2NhcGVcbiAgICogdGhlIGA6YCBieSBwcmVjZWRpbmcgaXQgd2l0aCBhIGJhY2tzbGFzaDpcbiAgICpcbiAgICogRm9yIGV4YW1wbGU6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIG1lc3NhZ2UgaGFzIGEgbWV0YWRhdGEgYmxvY2sgc28gbm8gbmVlZCB0byBlc2NhcGUgY29sb25cbiAgICogJGxvY2FsaXplIGA6c29tZSBkZXNjcmlwdGlvbjo6dGhpcyBtZXNzYWdlIHN0YXJ0cyB3aXRoIGEgY29sb24gKDopYDtcbiAgICogLy8gbm8gbWV0YWRhdGEgYmxvY2sgc28gdGhlIGNvbG9uIG11c3QgYmUgZXNjYXBlZFxuICAgKiAkbG9jYWxpemUgYFxcOnRoaXMgbWVzc2FnZSBzdGFydHMgd2l0aCBhIGNvbG9uICg6KWA7XG4gICAqIGBgYFxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBuYW1lZCBzdWJzdGl0dXRpb24gc28gbm8gbmVlZCB0byBlc2NhcGUgY29sb25cbiAgICogJGxvY2FsaXplIGAke2xhYmVsfTpsYWJlbDo6ICR7fWBcbiAgICogLy8gYW5vbnltb3VzIHN1YnN0aXR1dGlvbiBzbyBjb2xvbiBtdXN0IGJlIGVzY2FwZWRcbiAgICogJGxvY2FsaXplIGAke2xhYmVsfVxcOiAke31gXG4gICAqIGBgYFxuICAgKlxuICAgKiAqKlByb2Nlc3NpbmcgbG9jYWxpemVkIHN0cmluZ3M6KipcbiAgICpcbiAgICogVGhlcmUgYXJlIHRocmVlIHNjZW5hcmlvczpcbiAgICpcbiAgICogKiAqKmNvbXBpbGUtdGltZSBpbmxpbmluZyoqOiB0aGUgYCRsb2NhbGl6ZWAgdGFnIGlzIHRyYW5zZm9ybWVkIGF0IGNvbXBpbGUgdGltZSBieSBhXG4gICAqIHRyYW5zcGlsZXIsIHJlbW92aW5nIHRoZSB0YWcgYW5kIHJlcGxhY2luZyB0aGUgdGVtcGxhdGUgbGl0ZXJhbCBzdHJpbmcgd2l0aCBhIHRyYW5zbGF0ZWRcbiAgICogbGl0ZXJhbCBzdHJpbmcgZnJvbSBhIGNvbGxlY3Rpb24gb2YgdHJhbnNsYXRpb25zIHByb3ZpZGVkIHRvIHRoZSB0cmFuc3BpbGF0aW9uIHRvb2wuXG4gICAqXG4gICAqICogKipydW4tdGltZSBldmFsdWF0aW9uKio6IHRoZSBgJGxvY2FsaXplYCB0YWcgaXMgYSBydW4tdGltZSBmdW5jdGlvbiB0aGF0IHJlcGxhY2VzIGFuZFxuICAgKiByZW9yZGVycyB0aGUgcGFydHMgKHN0YXRpYyBzdHJpbmdzIGFuZCBleHByZXNzaW9ucykgb2YgdGhlIHRlbXBsYXRlIGxpdGVyYWwgc3RyaW5nIHdpdGggc3RyaW5nc1xuICAgKiBmcm9tIGEgY29sbGVjdGlvbiBvZiB0cmFuc2xhdGlvbnMgbG9hZGVkIGF0IHJ1bi10aW1lLlxuICAgKlxuICAgKiAqICoqcGFzcy10aHJvdWdoIGV2YWx1YXRpb24qKjogdGhlIGAkbG9jYWxpemVgIHRhZyBpcyBhIHJ1bi10aW1lIGZ1bmN0aW9uIHRoYXQgc2ltcGx5IGV2YWx1YXRlc1xuICAgKiB0aGUgb3JpZ2luYWwgdGVtcGxhdGUgbGl0ZXJhbCBzdHJpbmcgd2l0aG91dCBhcHBseWluZyBhbnkgdHJhbnNsYXRpb25zIHRvIHRoZSBwYXJ0cy4gVGhpc1xuICAgKiB2ZXJzaW9uIGlzIHVzZWQgZHVyaW5nIGRldmVsb3BtZW50IG9yIHdoZXJlIHRoZXJlIGlzIG5vIG5lZWQgdG8gdHJhbnNsYXRlIHRoZSBsb2NhbGl6ZWRcbiAgICogdGVtcGxhdGUgbGl0ZXJhbHMuXG4gICAqXG4gICAqIEBwYXJhbSBtZXNzYWdlUGFydHMgYSBjb2xsZWN0aW9uIG9mIHRoZSBzdGF0aWMgcGFydHMgb2YgdGhlIHRlbXBsYXRlIHN0cmluZy5cbiAgICogQHBhcmFtIGV4cHJlc3Npb25zIGEgY29sbGVjdGlvbiBvZiB0aGUgdmFsdWVzIG9mIGVhY2ggcGxhY2Vob2xkZXIgaW4gdGhlIHRlbXBsYXRlIHN0cmluZy5cbiAgICogQHJldHVybnMgdGhlIHRyYW5zbGF0ZWQgc3RyaW5nLCB3aXRoIHRoZSBgbWVzc2FnZVBhcnRzYCBhbmQgYGV4cHJlc3Npb25zYCBpbnRlcmxlYXZlZCB0b2dldGhlci5cbiAgICovXG4gIGNvbnN0ICRsb2NhbGl6ZTogybVMb2NhbGl6ZUZuO1xufVxuIl19
@@ -1,12 +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
- import { ɵ$localize as $localize, } from '@angular/localize';
9
- export { $localize };
10
- // Attach $localize to the global context, as a side-effect of this module.
11
- globalThis.$localize = $localize;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9pbml0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFDTCxVQUFVLElBQUksU0FBUyxHQUd4QixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFBQyxTQUFTLEVBQTBCLENBQUM7QUFFNUMsMkVBQTJFO0FBQzFFLFVBQWtCLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtcbiAgybUkbG9jYWxpemUgYXMgJGxvY2FsaXplLFxuICDJtUxvY2FsaXplRm4gYXMgTG9jYWxpemVGbixcbiAgybVUcmFuc2xhdGVGbiBhcyBUcmFuc2xhdGVGbixcbn0gZnJvbSAnQGFuZ3VsYXIvbG9jYWxpemUnO1xuXG5leHBvcnQgeyRsb2NhbGl6ZSwgTG9jYWxpemVGbiwgVHJhbnNsYXRlRm59O1xuXG4vLyBBdHRhY2ggJGxvY2FsaXplIHRvIHRoZSBnbG9iYWwgY29udGV4dCwgYXMgYSBzaWRlLWVmZmVjdCBvZiB0aGlzIG1vZHVsZS5cbihnbG9iYWxUaGlzIGFzIGFueSkuJGxvY2FsaXplID0gJGxvY2FsaXplO1xuIl19
@@ -1,12 +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
- // This file contains the public API of the `@angular/localize` entry-point
9
- export { clearTranslations, loadTranslations } from './src/translate';
10
- // Exports that are not part of the public API
11
- export * from './private';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9sb2NhbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCwyRUFBMkU7QUFFM0UsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHcEUsOENBQThDO0FBQzlDLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8vIFRoaXMgZmlsZSBjb250YWlucyB0aGUgcHVibGljIEFQSSBvZiB0aGUgYEBhbmd1bGFyL2xvY2FsaXplYCBlbnRyeS1wb2ludFxuXG5leHBvcnQge2NsZWFyVHJhbnNsYXRpb25zLCBsb2FkVHJhbnNsYXRpb25zfSBmcm9tICcuL3NyYy90cmFuc2xhdGUnO1xuZXhwb3J0IHtNZXNzYWdlSWQsIFRhcmdldE1lc3NhZ2V9IGZyb20gJy4vc3JjL3V0aWxzJztcblxuLy8gRXhwb3J0cyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSVxuZXhwb3J0ICogZnJvbSAnLi9wcml2YXRlJztcbiJdfQ==
@@ -1,12 +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
- // This file exports all the `utils` as private exports so that other parts of `@angular/localize`
9
- // can make use of them.
10
- export { $localize as ɵ$localize, } from './src/localize';
11
- export { computeMsgId as ɵcomputeMsgId, findEndOfBlock as ɵfindEndOfBlock, isMissingTranslationError as ɵisMissingTranslationError, makeParsedTranslation as ɵmakeParsedTranslation, makeTemplateObject as ɵmakeTemplateObject, MissingTranslationError as ɵMissingTranslationError, parseMessage as ɵparseMessage, parseMetadata as ɵparseMetadata, parseTranslation as ɵparseTranslation, splitBlock as ɵsplitBlock, translate as ɵtranslate, } from './src/utils';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvY2FsaXplL3ByaXZhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsa0dBQWtHO0FBQ2xHLHdCQUF3QjtBQUN4QixPQUFPLEVBQ0wsU0FBUyxJQUFJLFVBQVUsR0FHeEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsWUFBWSxJQUFJLGFBQWEsRUFDN0IsY0FBYyxJQUFJLGVBQWUsRUFDakMseUJBQXlCLElBQUksMEJBQTBCLEVBQ3ZELHFCQUFxQixJQUFJLHNCQUFzQixFQUMvQyxrQkFBa0IsSUFBSSxtQkFBbUIsRUFDekMsdUJBQXVCLElBQUksd0JBQXdCLEVBSW5ELFlBQVksSUFBSSxhQUFhLEVBQzdCLGFBQWEsSUFBSSxjQUFjLEVBQy9CLGdCQUFnQixJQUFJLGlCQUFpQixFQUdyQyxVQUFVLElBQUksV0FBVyxFQUN6QixTQUFTLElBQUksVUFBVSxHQUN4QixNQUFNLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vLyBUaGlzIGZpbGUgZXhwb3J0cyBhbGwgdGhlIGB1dGlsc2AgYXMgcHJpdmF0ZSBleHBvcnRzIHNvIHRoYXQgb3RoZXIgcGFydHMgb2YgYEBhbmd1bGFyL2xvY2FsaXplYFxuLy8gY2FuIG1ha2UgdXNlIG9mIHRoZW0uXG5leHBvcnQge1xuICAkbG9jYWxpemUgYXMgybUkbG9jYWxpemUsXG4gIExvY2FsaXplRm4gYXMgybVMb2NhbGl6ZUZuLFxuICBUcmFuc2xhdGVGbiBhcyDJtVRyYW5zbGF0ZUZuLFxufSBmcm9tICcuL3NyYy9sb2NhbGl6ZSc7XG5leHBvcnQge1xuICBjb21wdXRlTXNnSWQgYXMgybVjb21wdXRlTXNnSWQsXG4gIGZpbmRFbmRPZkJsb2NrIGFzIMm1ZmluZEVuZE9mQmxvY2ssXG4gIGlzTWlzc2luZ1RyYW5zbGF0aW9uRXJyb3IgYXMgybVpc01pc3NpbmdUcmFuc2xhdGlvbkVycm9yLFxuICBtYWtlUGFyc2VkVHJhbnNsYXRpb24gYXMgybVtYWtlUGFyc2VkVHJhbnNsYXRpb24sXG4gIG1ha2VUZW1wbGF0ZU9iamVjdCBhcyDJtW1ha2VUZW1wbGF0ZU9iamVjdCxcbiAgTWlzc2luZ1RyYW5zbGF0aW9uRXJyb3IgYXMgybVNaXNzaW5nVHJhbnNsYXRpb25FcnJvcixcbiAgUGFyc2VkTWVzc2FnZSBhcyDJtVBhcnNlZE1lc3NhZ2UsXG4gIFBhcnNlZFRyYW5zbGF0aW9uIGFzIMm1UGFyc2VkVHJhbnNsYXRpb24sXG4gIFBhcnNlZFRyYW5zbGF0aW9ucyBhcyDJtVBhcnNlZFRyYW5zbGF0aW9ucyxcbiAgcGFyc2VNZXNzYWdlIGFzIMm1cGFyc2VNZXNzYWdlLFxuICBwYXJzZU1ldGFkYXRhIGFzIMm1cGFyc2VNZXRhZGF0YSxcbiAgcGFyc2VUcmFuc2xhdGlvbiBhcyDJtXBhcnNlVHJhbnNsYXRpb24sXG4gIFNvdXJjZUxvY2F0aW9uIGFzIMm1U291cmNlTG9jYXRpb24sXG4gIFNvdXJjZU1lc3NhZ2UgYXMgybVTb3VyY2VNZXNzYWdlLFxuICBzcGxpdEJsb2NrIGFzIMm1c3BsaXRCbG9jayxcbiAgdHJhbnNsYXRlIGFzIMm1dHJhbnNsYXRlLFxufSBmcm9tICcuL3NyYy91dGlscyc7XG4iXX0=
@@ -1,9 +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
- export { $localize } from './src/localize';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jX2luZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbG9jYWxpemUvc3JjL2xvY2FsaXplL2RvY19pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmV4cG9ydCB7JGxvY2FsaXplfSBmcm9tICcuL3NyYy9sb2NhbGl6ZSc7XG4iXX0=
@@ -1,9 +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
- export { $localize } from './src/localize';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9zcmMvbG9jYWxpemUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuZXhwb3J0IHskbG9jYWxpemUsIExvY2FsaXplRm4sIFRyYW5zbGF0ZUZufSBmcm9tICcuL3NyYy9sb2NhbGl6ZSc7XG4iXX0=
@@ -1,136 +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
- import { findEndOfBlock } from '../../utils';
9
- /**
10
- * Tag a template literal string for localization.
11
- *
12
- * For example:
13
- *
14
- * ```ts
15
- * $localize `some string to localize`
16
- * ```
17
- *
18
- * **Providing meaning, description and id**
19
- *
20
- * You can optionally specify one or more of `meaning`, `description` and `id` for a localized
21
- * string by pre-pending it with a colon delimited block of the form:
22
- *
23
- * ```ts
24
- * $localize`:meaning|description@@id:source message text`;
25
- *
26
- * $localize`:meaning|:source message text`;
27
- * $localize`:description:source message text`;
28
- * $localize`:@@id:source message text`;
29
- * ```
30
- *
31
- * This format is the same as that used for `i18n` markers in Angular templates. See the
32
- * [Angular i18n guide](guide/i18n/prepare#mark-text-in-component-template).
33
- *
34
- * **Naming placeholders**
35
- *
36
- * If the template literal string contains expressions, then the expressions will be automatically
37
- * associated with placeholder names for you.
38
- *
39
- * For example:
40
- *
41
- * ```ts
42
- * $localize `Hi ${name}! There are ${items.length} items.`;
43
- * ```
44
- *
45
- * will generate a message-source of `Hi {$PH}! There are {$PH_1} items`.
46
- *
47
- * The recommended practice is to name the placeholder associated with each expression though.
48
- *
49
- * Do this by providing the placeholder name wrapped in `:` characters directly after the
50
- * expression. These placeholder names are stripped out of the rendered localized string.
51
- *
52
- * For example, to name the `items.length` expression placeholder `itemCount` you write:
53
- *
54
- * ```ts
55
- * $localize `There are ${items.length}:itemCount: items`;
56
- * ```
57
- *
58
- * **Escaping colon markers**
59
- *
60
- * If you need to use a `:` character directly at the start of a tagged string that has no
61
- * metadata block, or directly after a substitution expression that has no name you must escape
62
- * the `:` by preceding it with a backslash:
63
- *
64
- * For example:
65
- *
66
- * ```ts
67
- * // message has a metadata block so no need to escape colon
68
- * $localize `:some description::this message starts with a colon (:)`;
69
- * // no metadata block so the colon must be escaped
70
- * $localize `\:this message starts with a colon (:)`;
71
- * ```
72
- *
73
- * ```ts
74
- * // named substitution so no need to escape colon
75
- * $localize `${label}:label:: ${}`
76
- * // anonymous substitution so colon must be escaped
77
- * $localize `${label}\: ${}`
78
- * ```
79
- *
80
- * **Processing localized strings:**
81
- *
82
- * There are three scenarios:
83
- *
84
- * * **compile-time inlining**: the `$localize` tag is transformed at compile time by a
85
- * transpiler, removing the tag and replacing the template literal string with a translated
86
- * literal string from a collection of translations provided to the transpilation tool.
87
- *
88
- * * **run-time evaluation**: the `$localize` tag is a run-time function that replaces and
89
- * reorders the parts (static strings and expressions) of the template literal string with strings
90
- * from a collection of translations loaded at run-time.
91
- *
92
- * * **pass-through evaluation**: the `$localize` tag is a run-time function that simply evaluates
93
- * the original template literal string without applying any translations to the parts. This
94
- * version is used during development or where there is no need to translate the localized
95
- * template literals.
96
- *
97
- * @param messageParts a collection of the static parts of the template string.
98
- * @param expressions a collection of the values of each placeholder in the template string.
99
- * @returns the translated string, with the `messageParts` and `expressions` interleaved together.
100
- *
101
- * @globalApi
102
- * @publicApi
103
- */
104
- export const $localize = function (messageParts, ...expressions) {
105
- if ($localize.translate) {
106
- // Don't use array expansion here to avoid the compiler adding `__read()` helper unnecessarily.
107
- const translation = $localize.translate(messageParts, expressions);
108
- messageParts = translation[0];
109
- expressions = translation[1];
110
- }
111
- let message = stripBlock(messageParts[0], messageParts.raw[0]);
112
- for (let i = 1; i < messageParts.length; i++) {
113
- message += expressions[i - 1] + stripBlock(messageParts[i], messageParts.raw[i]);
114
- }
115
- return message;
116
- };
117
- const BLOCK_MARKER = ':';
118
- /**
119
- * Strip a delimited "block" from the start of the `messagePart`, if it is found.
120
- *
121
- * If a marker character (:) actually appears in the content at the start of a tagged string or
122
- * after a substitution expression, where a block has not been provided the character must be
123
- * escaped with a backslash, `\:`. This function checks for this by looking at the `raw`
124
- * messagePart, which should still contain the backslash.
125
- *
126
- * @param messagePart The cooked message part to process.
127
- * @param rawMessagePart The raw message part to check.
128
- * @returns the message part with the placeholder name stripped, if found.
129
- * @throws an error if the block is unterminated
130
- */
131
- function stripBlock(messagePart, rawMessagePart) {
132
- return rawMessagePart.charAt(0) === BLOCK_MARKER
133
- ? messagePart.substring(findEndOfBlock(messagePart, rawMessagePart) + 1)
134
- : messagePart;
135
- }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9zcmMvbG9jYWxpemUvc3JjL2xvY2FsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUEyQzNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEZHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFlLFVBQ25DLFlBQWtDLEVBQ2xDLEdBQUcsV0FBMkI7SUFFOUIsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEIsK0ZBQStGO1FBQy9GLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ25FLFlBQVksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxPQUFPLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM3QyxPQUFPLElBQUksV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDO0FBRXpCOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQVMsVUFBVSxDQUFDLFdBQW1CLEVBQUUsY0FBc0I7SUFDN0QsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVk7UUFDOUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDLFdBQVcsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7ZmluZEVuZE9mQmxvY2t9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuLyoqIEBub2RvYyAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhbGl6ZUZuIHtcbiAgKG1lc3NhZ2VQYXJ0czogVGVtcGxhdGVTdHJpbmdzQXJyYXksIC4uLmV4cHJlc3Npb25zOiByZWFkb25seSBhbnlbXSk6IHN0cmluZztcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGNvbnZlcnRzIGFuIGlucHV0IFwibWVzc2FnZSB3aXRoIGV4cHJlc3Npb25zXCIgaW50byBhIHRyYW5zbGF0ZWQgXCJtZXNzYWdlIHdpdGhcbiAgICogZXhwcmVzc2lvbnNcIi5cbiAgICpcbiAgICogVGhlIGNvbnZlcnNpb24gbWF5IGJlIGRvbmUgaW4gcGxhY2UsIG1vZGlmeWluZyB0aGUgYXJyYXkgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiwgc29cbiAgICogZG9uJ3QgYXNzdW1lIHRoYXQgdGhpcyBoYXMgbm8gc2lkZS1lZmZlY3RzLlxuICAgKlxuICAgKiBUaGUgZXhwcmVzc2lvbnMgbXVzdCBiZSBwYXNzZWQgaW4gc2luY2UgaXQgbWlnaHQgYmUgdGhleSBuZWVkIHRvIGJlIHJlb3JkZXJlZCBmb3JcbiAgICogZGlmZmVyZW50IHRyYW5zbGF0aW9ucy5cbiAgICovXG4gIHRyYW5zbGF0ZT86IFRyYW5zbGF0ZUZuO1xuICAvKipcbiAgICogVGhlIGN1cnJlbnQgbG9jYWxlIG9mIHRoZSB0cmFuc2xhdGVkIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBUaGUgY29tcGlsZS10aW1lIHRyYW5zbGF0aW9uIGlubGluZXIgaXMgYWJsZSB0byByZXBsYWNlIHRoZSBmb2xsb3dpbmcgY29kZTpcbiAgICpcbiAgICogYGBgXG4gICAqIHR5cGVvZiAkbG9jYWxpemUgIT09IFwidW5kZWZpbmVkXCIgJiYgJGxvY2FsaXplLmxvY2FsZVxuICAgKiBgYGBcbiAgICpcbiAgICogd2l0aCBhIHN0cmluZyBsaXRlcmFsIG9mIHRoZSBjdXJyZW50IGxvY2FsZS4gRS5nLlxuICAgKlxuICAgKiBgYGBcbiAgICogXCJmclwiXG4gICAqIGBgYFxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nO1xufVxuXG4vKiogQG5vZG9jICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zbGF0ZUZuIHtcbiAgKFxuICAgIG1lc3NhZ2VQYXJ0czogVGVtcGxhdGVTdHJpbmdzQXJyYXksXG4gICAgZXhwcmVzc2lvbnM6IHJlYWRvbmx5IGFueVtdLFxuICApOiBbVGVtcGxhdGVTdHJpbmdzQXJyYXksIHJlYWRvbmx5IGFueVtdXTtcbn1cblxuLyoqXG4gKiBUYWcgYSB0ZW1wbGF0ZSBsaXRlcmFsIHN0cmluZyBmb3IgbG9jYWxpemF0aW9uLlxuICpcbiAqIEZvciBleGFtcGxlOlxuICpcbiAqIGBgYHRzXG4gKiAkbG9jYWxpemUgYHNvbWUgc3RyaW5nIHRvIGxvY2FsaXplYFxuICogYGBgXG4gKlxuICogKipQcm92aWRpbmcgbWVhbmluZywgZGVzY3JpcHRpb24gYW5kIGlkKipcbiAqXG4gKiBZb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSBvbmUgb3IgbW9yZSBvZiBgbWVhbmluZ2AsIGBkZXNjcmlwdGlvbmAgYW5kIGBpZGAgZm9yIGEgbG9jYWxpemVkXG4gKiBzdHJpbmcgYnkgcHJlLXBlbmRpbmcgaXQgd2l0aCBhIGNvbG9uIGRlbGltaXRlZCBibG9jayBvZiB0aGUgZm9ybTpcbiAqXG4gKiBgYGB0c1xuICogJGxvY2FsaXplYDptZWFuaW5nfGRlc2NyaXB0aW9uQEBpZDpzb3VyY2UgbWVzc2FnZSB0ZXh0YDtcbiAqXG4gKiAkbG9jYWxpemVgOm1lYW5pbmd8OnNvdXJjZSBtZXNzYWdlIHRleHRgO1xuICogJGxvY2FsaXplYDpkZXNjcmlwdGlvbjpzb3VyY2UgbWVzc2FnZSB0ZXh0YDtcbiAqICRsb2NhbGl6ZWA6QEBpZDpzb3VyY2UgbWVzc2FnZSB0ZXh0YDtcbiAqIGBgYFxuICpcbiAqIFRoaXMgZm9ybWF0IGlzIHRoZSBzYW1lIGFzIHRoYXQgdXNlZCBmb3IgYGkxOG5gIG1hcmtlcnMgaW4gQW5ndWxhciB0ZW1wbGF0ZXMuIFNlZSB0aGVcbiAqIFtBbmd1bGFyIGkxOG4gZ3VpZGVdKGd1aWRlL2kxOG4vcHJlcGFyZSNtYXJrLXRleHQtaW4tY29tcG9uZW50LXRlbXBsYXRlKS5cbiAqXG4gKiAqKk5hbWluZyBwbGFjZWhvbGRlcnMqKlxuICpcbiAqIElmIHRoZSB0ZW1wbGF0ZSBsaXRlcmFsIHN0cmluZyBjb250YWlucyBleHByZXNzaW9ucywgdGhlbiB0aGUgZXhwcmVzc2lvbnMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5XG4gKiBhc3NvY2lhdGVkIHdpdGggcGxhY2Vob2xkZXIgbmFtZXMgZm9yIHlvdS5cbiAqXG4gKiBGb3IgZXhhbXBsZTpcbiAqXG4gKiBgYGB0c1xuICogJGxvY2FsaXplIGBIaSAke25hbWV9ISBUaGVyZSBhcmUgJHtpdGVtcy5sZW5ndGh9IGl0ZW1zLmA7XG4gKiBgYGBcbiAqXG4gKiB3aWxsIGdlbmVyYXRlIGEgbWVzc2FnZS1zb3VyY2Ugb2YgYEhpIHskUEh9ISBUaGVyZSBhcmUgeyRQSF8xfSBpdGVtc2AuXG4gKlxuICogVGhlIHJlY29tbWVuZGVkIHByYWN0aWNlIGlzIHRvIG5hbWUgdGhlIHBsYWNlaG9sZGVyIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGV4cHJlc3Npb24gdGhvdWdoLlxuICpcbiAqIERvIHRoaXMgYnkgcHJvdmlkaW5nIHRoZSBwbGFjZWhvbGRlciBuYW1lIHdyYXBwZWQgaW4gYDpgIGNoYXJhY3RlcnMgZGlyZWN0bHkgYWZ0ZXIgdGhlXG4gKiBleHByZXNzaW9uLiBUaGVzZSBwbGFjZWhvbGRlciBuYW1lcyBhcmUgc3RyaXBwZWQgb3V0IG9mIHRoZSByZW5kZXJlZCBsb2NhbGl6ZWQgc3RyaW5nLlxuICpcbiAqIEZvciBleGFtcGxlLCB0byBuYW1lIHRoZSBgaXRlbXMubGVuZ3RoYCBleHByZXNzaW9uIHBsYWNlaG9sZGVyIGBpdGVtQ291bnRgIHlvdSB3cml0ZTpcbiAqXG4gKiBgYGB0c1xuICogJGxvY2FsaXplIGBUaGVyZSBhcmUgJHtpdGVtcy5sZW5ndGh9Oml0ZW1Db3VudDogaXRlbXNgO1xuICogYGBgXG4gKlxuICogKipFc2NhcGluZyBjb2xvbiBtYXJrZXJzKipcbiAqXG4gKiBJZiB5b3UgbmVlZCB0byB1c2UgYSBgOmAgY2hhcmFjdGVyIGRpcmVjdGx5IGF0IHRoZSBzdGFydCBvZiBhIHRhZ2dlZCBzdHJpbmcgdGhhdCBoYXMgbm9cbiAqIG1ldGFkYXRhIGJsb2NrLCBvciBkaXJlY3RseSBhZnRlciBhIHN1YnN0aXR1dGlvbiBleHByZXNzaW9uIHRoYXQgaGFzIG5vIG5hbWUgeW91IG11c3QgZXNjYXBlXG4gKiB0aGUgYDpgIGJ5IHByZWNlZGluZyBpdCB3aXRoIGEgYmFja3NsYXNoOlxuICpcbiAqIEZvciBleGFtcGxlOlxuICpcbiAqIGBgYHRzXG4gKiAvLyBtZXNzYWdlIGhhcyBhIG1ldGFkYXRhIGJsb2NrIHNvIG5vIG5lZWQgdG8gZXNjYXBlIGNvbG9uXG4gKiAkbG9jYWxpemUgYDpzb21lIGRlc2NyaXB0aW9uOjp0aGlzIG1lc3NhZ2Ugc3RhcnRzIHdpdGggYSBjb2xvbiAoOilgO1xuICogLy8gbm8gbWV0YWRhdGEgYmxvY2sgc28gdGhlIGNvbG9uIG11c3QgYmUgZXNjYXBlZFxuICogJGxvY2FsaXplIGBcXDp0aGlzIG1lc3NhZ2Ugc3RhcnRzIHdpdGggYSBjb2xvbiAoOilgO1xuICogYGBgXG4gKlxuICogYGBgdHNcbiAqIC8vIG5hbWVkIHN1YnN0aXR1dGlvbiBzbyBubyBuZWVkIHRvIGVzY2FwZSBjb2xvblxuICogJGxvY2FsaXplIGAke2xhYmVsfTpsYWJlbDo6ICR7fWBcbiAqIC8vIGFub255bW91cyBzdWJzdGl0dXRpb24gc28gY29sb24gbXVzdCBiZSBlc2NhcGVkXG4gKiAkbG9jYWxpemUgYCR7bGFiZWx9XFw6ICR7fWBcbiAqIGBgYFxuICpcbiAqICoqUHJvY2Vzc2luZyBsb2NhbGl6ZWQgc3RyaW5nczoqKlxuICpcbiAqIFRoZXJlIGFyZSB0aHJlZSBzY2VuYXJpb3M6XG4gKlxuICogKiAqKmNvbXBpbGUtdGltZSBpbmxpbmluZyoqOiB0aGUgYCRsb2NhbGl6ZWAgdGFnIGlzIHRyYW5zZm9ybWVkIGF0IGNvbXBpbGUgdGltZSBieSBhXG4gKiB0cmFuc3BpbGVyLCByZW1vdmluZyB0aGUgdGFnIGFuZCByZXBsYWNpbmcgdGhlIHRlbXBsYXRlIGxpdGVyYWwgc3RyaW5nIHdpdGggYSB0cmFuc2xhdGVkXG4gKiBsaXRlcmFsIHN0cmluZyBmcm9tIGEgY29sbGVjdGlvbiBvZiB0cmFuc2xhdGlvbnMgcHJvdmlkZWQgdG8gdGhlIHRyYW5zcGlsYXRpb24gdG9vbC5cbiAqXG4gKiAqICoqcnVuLXRpbWUgZXZhbHVhdGlvbioqOiB0aGUgYCRsb2NhbGl6ZWAgdGFnIGlzIGEgcnVuLXRpbWUgZnVuY3Rpb24gdGhhdCByZXBsYWNlcyBhbmRcbiAqIHJlb3JkZXJzIHRoZSBwYXJ0cyAoc3RhdGljIHN0cmluZ3MgYW5kIGV4cHJlc3Npb25zKSBvZiB0aGUgdGVtcGxhdGUgbGl0ZXJhbCBzdHJpbmcgd2l0aCBzdHJpbmdzXG4gKiBmcm9tIGEgY29sbGVjdGlvbiBvZiB0cmFuc2xhdGlvbnMgbG9hZGVkIGF0IHJ1bi10aW1lLlxuICpcbiAqICogKipwYXNzLXRocm91Z2ggZXZhbHVhdGlvbioqOiB0aGUgYCRsb2NhbGl6ZWAgdGFnIGlzIGEgcnVuLXRpbWUgZnVuY3Rpb24gdGhhdCBzaW1wbHkgZXZhbHVhdGVzXG4gKiB0aGUgb3JpZ2luYWwgdGVtcGxhdGUgbGl0ZXJhbCBzdHJpbmcgd2l0aG91dCBhcHBseWluZyBhbnkgdHJhbnNsYXRpb25zIHRvIHRoZSBwYXJ0cy4gVGhpc1xuICogdmVyc2lvbiBpcyB1c2VkIGR1cmluZyBkZXZlbG9wbWVudCBvciB3aGVyZSB0aGVyZSBpcyBubyBuZWVkIHRvIHRyYW5zbGF0ZSB0aGUgbG9jYWxpemVkXG4gKiB0ZW1wbGF0ZSBsaXRlcmFscy5cbiAqXG4gKiBAcGFyYW0gbWVzc2FnZVBhcnRzIGEgY29sbGVjdGlvbiBvZiB0aGUgc3RhdGljIHBhcnRzIG9mIHRoZSB0ZW1wbGF0ZSBzdHJpbmcuXG4gKiBAcGFyYW0gZXhwcmVzc2lvbnMgYSBjb2xsZWN0aW9uIG9mIHRoZSB2YWx1ZXMgb2YgZWFjaCBwbGFjZWhvbGRlciBpbiB0aGUgdGVtcGxhdGUgc3RyaW5nLlxuICogQHJldHVybnMgdGhlIHRyYW5zbGF0ZWQgc3RyaW5nLCB3aXRoIHRoZSBgbWVzc2FnZVBhcnRzYCBhbmQgYGV4cHJlc3Npb25zYCBpbnRlcmxlYXZlZCB0b2dldGhlci5cbiAqXG4gKiBAZ2xvYmFsQXBpXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBjb25zdCAkbG9jYWxpemU6IExvY2FsaXplRm4gPSBmdW5jdGlvbiAoXG4gIG1lc3NhZ2VQYXJ0czogVGVtcGxhdGVTdHJpbmdzQXJyYXksXG4gIC4uLmV4cHJlc3Npb25zOiByZWFkb25seSBhbnlbXVxuKSB7XG4gIGlmICgkbG9jYWxpemUudHJhbnNsYXRlKSB7XG4gICAgLy8gRG9uJ3QgdXNlIGFycmF5IGV4cGFuc2lvbiBoZXJlIHRvIGF2b2lkIHRoZSBjb21waWxlciBhZGRpbmcgYF9fcmVhZCgpYCBoZWxwZXIgdW5uZWNlc3NhcmlseS5cbiAgICBjb25zdCB0cmFuc2xhdGlvbiA9ICRsb2NhbGl6ZS50cmFuc2xhdGUobWVzc2FnZVBhcnRzLCBleHByZXNzaW9ucyk7XG4gICAgbWVzc2FnZVBhcnRzID0gdHJhbnNsYXRpb25bMF07XG4gICAgZXhwcmVzc2lvbnMgPSB0cmFuc2xhdGlvblsxXTtcbiAgfVxuICBsZXQgbWVzc2FnZSA9IHN0cmlwQmxvY2sobWVzc2FnZVBhcnRzWzBdLCBtZXNzYWdlUGFydHMucmF3WzBdKTtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPCBtZXNzYWdlUGFydHMubGVuZ3RoOyBpKyspIHtcbiAgICBtZXNzYWdlICs9IGV4cHJlc3Npb25zW2kgLSAxXSArIHN0cmlwQmxvY2sobWVzc2FnZVBhcnRzW2ldLCBtZXNzYWdlUGFydHMucmF3W2ldKTtcbiAgfVxuICByZXR1cm4gbWVzc2FnZTtcbn07XG5cbmNvbnN0IEJMT0NLX01BUktFUiA9ICc6JztcblxuLyoqXG4gKiBTdHJpcCBhIGRlbGltaXRlZCBcImJsb2NrXCIgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGBtZXNzYWdlUGFydGAsIGlmIGl0IGlzIGZvdW5kLlxuICpcbiAqIElmIGEgbWFya2VyIGNoYXJhY3RlciAoOikgYWN0dWFsbHkgYXBwZWFycyBpbiB0aGUgY29udGVudCBhdCB0aGUgc3RhcnQgb2YgYSB0YWdnZWQgc3RyaW5nIG9yXG4gKiBhZnRlciBhIHN1YnN0aXR1dGlvbiBleHByZXNzaW9uLCB3aGVyZSBhIGJsb2NrIGhhcyBub3QgYmVlbiBwcm92aWRlZCB0aGUgY2hhcmFjdGVyIG11c3QgYmVcbiAqIGVzY2FwZWQgd2l0aCBhIGJhY2tzbGFzaCwgYFxcOmAuIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGZvciB0aGlzIGJ5IGxvb2tpbmcgYXQgdGhlIGByYXdgXG4gKiBtZXNzYWdlUGFydCwgd2hpY2ggc2hvdWxkIHN0aWxsIGNvbnRhaW4gdGhlIGJhY2tzbGFzaC5cbiAqXG4gKiBAcGFyYW0gbWVzc2FnZVBhcnQgVGhlIGNvb2tlZCBtZXNzYWdlIHBhcnQgdG8gcHJvY2Vzcy5cbiAqIEBwYXJhbSByYXdNZXNzYWdlUGFydCBUaGUgcmF3IG1lc3NhZ2UgcGFydCB0byBjaGVjay5cbiAqIEByZXR1cm5zIHRoZSBtZXNzYWdlIHBhcnQgd2l0aCB0aGUgcGxhY2Vob2xkZXIgbmFtZSBzdHJpcHBlZCwgaWYgZm91bmQuXG4gKiBAdGhyb3dzIGFuIGVycm9yIGlmIHRoZSBibG9jayBpcyB1bnRlcm1pbmF0ZWRcbiAqL1xuZnVuY3Rpb24gc3RyaXBCbG9jayhtZXNzYWdlUGFydDogc3RyaW5nLCByYXdNZXNzYWdlUGFydDogc3RyaW5nKSB7XG4gIHJldHVybiByYXdNZXNzYWdlUGFydC5jaGFyQXQoMCkgPT09IEJMT0NLX01BUktFUlxuICAgID8gbWVzc2FnZVBhcnQuc3Vic3RyaW5nKGZpbmRFbmRPZkJsb2NrKG1lc3NhZ2VQYXJ0LCByYXdNZXNzYWdlUGFydCkgKyAxKVxuICAgIDogbWVzc2FnZVBhcnQ7XG59XG4iXX0=
@@ -1,81 +0,0 @@
1
- import { parseTranslation, translate as _translate, } from './utils';
2
- /**
3
- * Load translations for use by `$localize`, if doing runtime translation.
4
- *
5
- * If the `$localize` tagged strings are not going to be replaced at compiled time, it is possible
6
- * to load a set of translations that will be applied to the `$localize` tagged strings at runtime,
7
- * in the browser.
8
- *
9
- * Loading a new translation will overwrite a previous translation if it has the same `MessageId`.
10
- *
11
- * Note that `$localize` messages are only processed once, when the tagged string is first
12
- * encountered, and does not provide dynamic language changing without refreshing the browser.
13
- * Loading new translations later in the application life-cycle will not change the translated text
14
- * of messages that have already been translated.
15
- *
16
- * The message IDs and translations are in the same format as that rendered to "simple JSON"
17
- * translation files when extracting messages. In particular, placeholders in messages are rendered
18
- * using the `{$PLACEHOLDER_NAME}` syntax. For example the message from the following template:
19
- *
20
- * ```html
21
- * <div i18n>pre<span>inner-pre<b>bold</b>inner-post</span>post</div>
22
- * ```
23
- *
24
- * would have the following form in the `translations` map:
25
- *
26
- * ```ts
27
- * {
28
- * "2932901491976224757":
29
- * "pre{$START_TAG_SPAN}inner-pre{$START_BOLD_TEXT}bold{$CLOSE_BOLD_TEXT}inner-post{$CLOSE_TAG_SPAN}post"
30
- * }
31
- * ```
32
- *
33
- * @param translations A map from message ID to translated message.
34
- *
35
- * These messages are processed and added to a lookup based on their `MessageId`.
36
- *
37
- * @see {@link clearTranslations} for removing translations loaded using this function.
38
- * @see {@link $localize} for tagging messages as needing to be translated.
39
- * @publicApi
40
- */
41
- export function loadTranslations(translations) {
42
- // Ensure the translate function exists
43
- if (!$localize.translate) {
44
- $localize.translate = translate;
45
- }
46
- if (!$localize.TRANSLATIONS) {
47
- $localize.TRANSLATIONS = {};
48
- }
49
- Object.keys(translations).forEach((key) => {
50
- $localize.TRANSLATIONS[key] = parseTranslation(translations[key]);
51
- });
52
- }
53
- /**
54
- * Remove all translations for `$localize`, if doing runtime translation.
55
- *
56
- * All translations that had been loading into memory using `loadTranslations()` will be removed.
57
- *
58
- * @see {@link loadTranslations} for loading translations at runtime.
59
- * @see {@link $localize} for tagging messages as needing to be translated.
60
- *
61
- * @publicApi
62
- */
63
- export function clearTranslations() {
64
- $localize.translate = undefined;
65
- $localize.TRANSLATIONS = {};
66
- }
67
- /**
68
- * Translate the text of the given message, using the loaded translations.
69
- *
70
- * This function may reorder (or remove) substitutions as indicated in the matching translation.
71
- */
72
- export function translate(messageParts, substitutions) {
73
- try {
74
- return _translate($localize.TRANSLATIONS, messageParts, substitutions);
75
- }
76
- catch (e) {
77
- console.warn(e.message);
78
- return [messageParts, substitutions];
79
- }
80
- }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbG9jYWxpemUvc3JjL3RyYW5zbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBR0wsZ0JBQWdCLEVBRWhCLFNBQVMsSUFBSSxVQUFVLEdBQ3hCLE1BQU0sU0FBUyxDQUFDO0FBVWpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxZQUE4QztJQUM3RSx1Q0FBdUM7SUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN6QixTQUFTLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QixTQUFTLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUN4QyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsU0FBUyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDaEMsU0FBUyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUN2QixZQUFrQyxFQUNsQyxhQUE2QjtJQUU3QixJQUFJLENBQUM7UUFDSCxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUUsQ0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdkMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7TG9jYWxpemVGbn0gZnJvbSAnLi9sb2NhbGl6ZSc7XG5pbXBvcnQge1xuICBNZXNzYWdlSWQsXG4gIFBhcnNlZFRyYW5zbGF0aW9uLFxuICBwYXJzZVRyYW5zbGF0aW9uLFxuICBUYXJnZXRNZXNzYWdlLFxuICB0cmFuc2xhdGUgYXMgX3RyYW5zbGF0ZSxcbn0gZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogV2UgYXVnbWVudCB0aGUgYCRsb2NhbGl6ZWAgb2JqZWN0IHRvIGFsc28gc3RvcmUgdGhlIHRyYW5zbGF0aW9ucy5cbiAqXG4gKiBOb3RlIHRoYXQgYmVjYXVzZSB0aGUgVFJBTlNMQVRJT05TIGFyZSBhdHRhY2hlZCB0byBhIGdsb2JhbCBvYmplY3QsIHRoZXkgd2lsbCBiZSBzaGFyZWQgYmV0d2VlblxuICogYWxsIGFwcGxpY2F0aW9ucyB0aGF0IGFyZSBydW5uaW5nIGluIGEgc2luZ2xlIHBhZ2Ugb2YgdGhlIGJyb3dzZXIuXG4gKi9cbmRlY2xhcmUgY29uc3QgJGxvY2FsaXplOiBMb2NhbGl6ZUZuICYge1RSQU5TTEFUSU9OUzogUmVjb3JkPE1lc3NhZ2VJZCwgUGFyc2VkVHJhbnNsYXRpb24+fTtcblxuLyoqXG4gKiBMb2FkIHRyYW5zbGF0aW9ucyBmb3IgdXNlIGJ5IGAkbG9jYWxpemVgLCBpZiBkb2luZyBydW50aW1lIHRyYW5zbGF0aW9uLlxuICpcbiAqIElmIHRoZSBgJGxvY2FsaXplYCB0YWdnZWQgc3RyaW5ncyBhcmUgbm90IGdvaW5nIHRvIGJlIHJlcGxhY2VkIGF0IGNvbXBpbGVkIHRpbWUsIGl0IGlzIHBvc3NpYmxlXG4gKiB0byBsb2FkIGEgc2V0IG9mIHRyYW5zbGF0aW9ucyB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgYCRsb2NhbGl6ZWAgdGFnZ2VkIHN0cmluZ3MgYXQgcnVudGltZSxcbiAqIGluIHRoZSBicm93c2VyLlxuICpcbiAqIExvYWRpbmcgYSBuZXcgdHJhbnNsYXRpb24gd2lsbCBvdmVyd3JpdGUgYSBwcmV2aW91cyB0cmFuc2xhdGlvbiBpZiBpdCBoYXMgdGhlIHNhbWUgYE1lc3NhZ2VJZGAuXG4gKlxuICogTm90ZSB0aGF0IGAkbG9jYWxpemVgIG1lc3NhZ2VzIGFyZSBvbmx5IHByb2Nlc3NlZCBvbmNlLCB3aGVuIHRoZSB0YWdnZWQgc3RyaW5nIGlzIGZpcnN0XG4gKiBlbmNvdW50ZXJlZCwgYW5kIGRvZXMgbm90IHByb3ZpZGUgZHluYW1pYyBsYW5ndWFnZSBjaGFuZ2luZyB3aXRob3V0IHJlZnJlc2hpbmcgdGhlIGJyb3dzZXIuXG4gKiBMb2FkaW5nIG5ldyB0cmFuc2xhdGlvbnMgbGF0ZXIgaW4gdGhlIGFwcGxpY2F0aW9uIGxpZmUtY3ljbGUgd2lsbCBub3QgY2hhbmdlIHRoZSB0cmFuc2xhdGVkIHRleHRcbiAqIG9mIG1lc3NhZ2VzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gdHJhbnNsYXRlZC5cbiAqXG4gKiBUaGUgbWVzc2FnZSBJRHMgYW5kIHRyYW5zbGF0aW9ucyBhcmUgaW4gdGhlIHNhbWUgZm9ybWF0IGFzIHRoYXQgcmVuZGVyZWQgdG8gXCJzaW1wbGUgSlNPTlwiXG4gKiB0cmFuc2xhdGlvbiBmaWxlcyB3aGVuIGV4dHJhY3RpbmcgbWVzc2FnZXMuIEluIHBhcnRpY3VsYXIsIHBsYWNlaG9sZGVycyBpbiBtZXNzYWdlcyBhcmUgcmVuZGVyZWRcbiAqIHVzaW5nIHRoZSBgeyRQTEFDRUhPTERFUl9OQU1FfWAgc3ludGF4LiBGb3IgZXhhbXBsZSB0aGUgbWVzc2FnZSBmcm9tIHRoZSBmb2xsb3dpbmcgdGVtcGxhdGU6XG4gKlxuICogYGBgaHRtbFxuICogPGRpdiBpMThuPnByZTxzcGFuPmlubmVyLXByZTxiPmJvbGQ8L2I+aW5uZXItcG9zdDwvc3Bhbj5wb3N0PC9kaXY+XG4gKiBgYGBcbiAqXG4gKiB3b3VsZCBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybSBpbiB0aGUgYHRyYW5zbGF0aW9uc2AgbWFwOlxuICpcbiAqIGBgYHRzXG4gKiB7XG4gKiAgIFwiMjkzMjkwMTQ5MTk3NjIyNDc1N1wiOlxuICogICAgICBcInByZXskU1RBUlRfVEFHX1NQQU59aW5uZXItcHJleyRTVEFSVF9CT0xEX1RFWFR9Ym9sZHskQ0xPU0VfQk9MRF9URVhUfWlubmVyLXBvc3R7JENMT1NFX1RBR19TUEFOfXBvc3RcIlxuICogfVxuICogYGBgXG4gKlxuICogQHBhcmFtIHRyYW5zbGF0aW9ucyBBIG1hcCBmcm9tIG1lc3NhZ2UgSUQgdG8gdHJhbnNsYXRlZCBtZXNzYWdlLlxuICpcbiAqIFRoZXNlIG1lc3NhZ2VzIGFyZSBwcm9jZXNzZWQgYW5kIGFkZGVkIHRvIGEgbG9va3VwIGJhc2VkIG9uIHRoZWlyIGBNZXNzYWdlSWRgLlxuICpcbiAqIEBzZWUge0BsaW5rIGNsZWFyVHJhbnNsYXRpb25zfSBmb3IgcmVtb3ZpbmcgdHJhbnNsYXRpb25zIGxvYWRlZCB1c2luZyB0aGlzIGZ1bmN0aW9uLlxuICogQHNlZSB7QGxpbmsgJGxvY2FsaXplfSBmb3IgdGFnZ2luZyBtZXNzYWdlcyBhcyBuZWVkaW5nIHRvIGJlIHRyYW5zbGF0ZWQuXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkVHJhbnNsYXRpb25zKHRyYW5zbGF0aW9uczogUmVjb3JkPE1lc3NhZ2VJZCwgVGFyZ2V0TWVzc2FnZT4pIHtcbiAgLy8gRW5zdXJlIHRoZSB0cmFuc2xhdGUgZnVuY3Rpb24gZXhpc3RzXG4gIGlmICghJGxvY2FsaXplLnRyYW5zbGF0ZSkge1xuICAgICRsb2NhbGl6ZS50cmFuc2xhdGUgPSB0cmFuc2xhdGU7XG4gIH1cbiAgaWYgKCEkbG9jYWxpemUuVFJBTlNMQVRJT05TKSB7XG4gICAgJGxvY2FsaXplLlRSQU5TTEFUSU9OUyA9IHt9O1xuICB9XG4gIE9iamVjdC5rZXlzKHRyYW5zbGF0aW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgJGxvY2FsaXplLlRSQU5TTEFUSU9OU1trZXldID0gcGFyc2VUcmFuc2xhdGlvbih0cmFuc2xhdGlvbnNba2V5XSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbW92ZSBhbGwgdHJhbnNsYXRpb25zIGZvciBgJGxvY2FsaXplYCwgaWYgZG9pbmcgcnVudGltZSB0cmFuc2xhdGlvbi5cbiAqXG4gKiBBbGwgdHJhbnNsYXRpb25zIHRoYXQgaGFkIGJlZW4gbG9hZGluZyBpbnRvIG1lbW9yeSB1c2luZyBgbG9hZFRyYW5zbGF0aW9ucygpYCB3aWxsIGJlIHJlbW92ZWQuXG4gKlxuICogQHNlZSB7QGxpbmsgbG9hZFRyYW5zbGF0aW9uc30gZm9yIGxvYWRpbmcgdHJhbnNsYXRpb25zIGF0IHJ1bnRpbWUuXG4gKiBAc2VlIHtAbGluayAkbG9jYWxpemV9IGZvciB0YWdnaW5nIG1lc3NhZ2VzIGFzIG5lZWRpbmcgdG8gYmUgdHJhbnNsYXRlZC5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclRyYW5zbGF0aW9ucygpIHtcbiAgJGxvY2FsaXplLnRyYW5zbGF0ZSA9IHVuZGVmaW5lZDtcbiAgJGxvY2FsaXplLlRSQU5TTEFUSU9OUyA9IHt9O1xufVxuXG4vKipcbiAqIFRyYW5zbGF0ZSB0aGUgdGV4dCBvZiB0aGUgZ2l2ZW4gbWVzc2FnZSwgdXNpbmcgdGhlIGxvYWRlZCB0cmFuc2xhdGlvbnMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtYXkgcmVvcmRlciAob3IgcmVtb3ZlKSBzdWJzdGl0dXRpb25zIGFzIGluZGljYXRlZCBpbiB0aGUgbWF0Y2hpbmcgdHJhbnNsYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGUoXG4gIG1lc3NhZ2VQYXJ0czogVGVtcGxhdGVTdHJpbmdzQXJyYXksXG4gIHN1YnN0aXR1dGlvbnM6IHJlYWRvbmx5IGFueVtdLFxuKTogW1RlbXBsYXRlU3RyaW5nc0FycmF5LCByZWFkb25seSBhbnlbXV0ge1xuICB0cnkge1xuICAgIHJldHVybiBfdHJhbnNsYXRlKCRsb2NhbGl6ZS5UUkFOU0xBVElPTlMsIG1lc3NhZ2VQYXJ0cywgc3Vic3RpdHV0aW9ucyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLndhcm4oKGUgYXMgRXJyb3IpLm1lc3NhZ2UpO1xuICAgIHJldHVybiBbbWVzc2FnZVBhcnRzLCBzdWJzdGl0dXRpb25zXTtcbiAgfVxufVxuIl19
@@ -1,11 +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
- export * from './src/constants';
9
- export * from './src/messages';
10
- export * from './src/translations';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vc3JjL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9tZXNzYWdlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy90cmFuc2xhdGlvbnMnO1xuIl19
@@ -1,58 +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
- /**
9
- * The character used to mark the start and end of a "block" in a `$localize` tagged string.
10
- * A block can indicate metadata about the message or specify a name of a placeholder for a
11
- * substitution expressions.
12
- *
13
- * For example:
14
- *
15
- * ```ts
16
- * $localize`Hello, ${title}:title:!`;
17
- * $localize`:meaning|description@@id:source message text`;
18
- * ```
19
- */
20
- export const BLOCK_MARKER = ':';
21
- /**
22
- * The marker used to separate a message's "meaning" from its "description" in a metadata block.
23
- *
24
- * For example:
25
- *
26
- * ```ts
27
- * $localize `:correct|Indicates that the user got the answer correct: Right!`;
28
- * $localize `:movement|Button label for moving to the right: Right!`;
29
- * ```
30
- */
31
- export const MEANING_SEPARATOR = '|';
32
- /**
33
- * The marker used to separate a message's custom "id" from its "description" in a metadata block.
34
- *
35
- * For example:
36
- *
37
- * ```ts
38
- * $localize `:A welcome message on the home page@@myApp-homepage-welcome: Welcome!`;
39
- * ```
40
- */
41
- export const ID_SEPARATOR = '@@';
42
- /**
43
- * The marker used to separate legacy message ids from the rest of a metadata block.
44
- *
45
- * For example:
46
- *
47
- * ```ts
48
- * $localize `:@@custom-id␟2df64767cd895a8fabe3e18b94b5b6b6f9e2e3f0: Welcome!`;
49
- * ```
50
- *
51
- * Note that this character is the "symbol for the unit separator" (␟) not the "unit separator
52
- * character" itself, since that has no visual representation. See https://graphemica.com/%E2%90%9F.
53
- *
54
- * Here is some background for the original "unit separator character":
55
- * https://stackoverflow.com/questions/8695118/whats-the-file-group-record-unit-separator-control-characters-and-its-usage
56
- */
57
- export const LEGACY_ID_INDICATOR = '\u241F';
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbG9jYWxpemUvc3JjL3V0aWxzL3NyYy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDO0FBRWhDOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUVyQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUM7QUFFakM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBUaGUgY2hhcmFjdGVyIHVzZWQgdG8gbWFyayB0aGUgc3RhcnQgYW5kIGVuZCBvZiBhIFwiYmxvY2tcIiBpbiBhIGAkbG9jYWxpemVgIHRhZ2dlZCBzdHJpbmcuXG4gKiBBIGJsb2NrIGNhbiBpbmRpY2F0ZSBtZXRhZGF0YSBhYm91dCB0aGUgbWVzc2FnZSBvciBzcGVjaWZ5IGEgbmFtZSBvZiBhIHBsYWNlaG9sZGVyIGZvciBhXG4gKiBzdWJzdGl0dXRpb24gZXhwcmVzc2lvbnMuXG4gKlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogYGBgdHNcbiAqICRsb2NhbGl6ZWBIZWxsbywgJHt0aXRsZX06dGl0bGU6IWA7XG4gKiAkbG9jYWxpemVgOm1lYW5pbmd8ZGVzY3JpcHRpb25AQGlkOnNvdXJjZSBtZXNzYWdlIHRleHRgO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBCTE9DS19NQVJLRVIgPSAnOic7XG5cbi8qKlxuICogVGhlIG1hcmtlciB1c2VkIHRvIHNlcGFyYXRlIGEgbWVzc2FnZSdzIFwibWVhbmluZ1wiIGZyb20gaXRzIFwiZGVzY3JpcHRpb25cIiBpbiBhIG1ldGFkYXRhIGJsb2NrLlxuICpcbiAqIEZvciBleGFtcGxlOlxuICpcbiAqIGBgYHRzXG4gKiAkbG9jYWxpemUgYDpjb3JyZWN0fEluZGljYXRlcyB0aGF0IHRoZSB1c2VyIGdvdCB0aGUgYW5zd2VyIGNvcnJlY3Q6IFJpZ2h0IWA7XG4gKiAkbG9jYWxpemUgYDptb3ZlbWVudHxCdXR0b24gbGFiZWwgZm9yIG1vdmluZyB0byB0aGUgcmlnaHQ6IFJpZ2h0IWA7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IE1FQU5JTkdfU0VQQVJBVE9SID0gJ3wnO1xuXG4vKipcbiAqIFRoZSBtYXJrZXIgdXNlZCB0byBzZXBhcmF0ZSBhIG1lc3NhZ2UncyBjdXN0b20gXCJpZFwiIGZyb20gaXRzIFwiZGVzY3JpcHRpb25cIiBpbiBhIG1ldGFkYXRhIGJsb2NrLlxuICpcbiAqIEZvciBleGFtcGxlOlxuICpcbiAqIGBgYHRzXG4gKiAkbG9jYWxpemUgYDpBIHdlbGNvbWUgbWVzc2FnZSBvbiB0aGUgaG9tZSBwYWdlQEBteUFwcC1ob21lcGFnZS13ZWxjb21lOiBXZWxjb21lIWA7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IElEX1NFUEFSQVRPUiA9ICdAQCc7XG5cbi8qKlxuICogVGhlIG1hcmtlciB1c2VkIHRvIHNlcGFyYXRlIGxlZ2FjeSBtZXNzYWdlIGlkcyBmcm9tIHRoZSByZXN0IG9mIGEgbWV0YWRhdGEgYmxvY2suXG4gKlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogYGBgdHNcbiAqICRsb2NhbGl6ZSBgOkBAY3VzdG9tLWlk4pCfMmRmNjQ3NjdjZDg5NWE4ZmFiZTNlMThiOTRiNWI2YjZmOWUyZTNmMDogV2VsY29tZSFgO1xuICogYGBgXG4gKlxuICogTm90ZSB0aGF0IHRoaXMgY2hhcmFjdGVyIGlzIHRoZSBcInN5bWJvbCBmb3IgdGhlIHVuaXQgc2VwYXJhdG9yXCIgKOKQnykgbm90IHRoZSBcInVuaXQgc2VwYXJhdG9yXG4gKiBjaGFyYWN0ZXJcIiBpdHNlbGYsIHNpbmNlIHRoYXQgaGFzIG5vIHZpc3VhbCByZXByZXNlbnRhdGlvbi4gU2VlIGh0dHBzOi8vZ3JhcGhlbWljYS5jb20vJUUyJTkwJTlGLlxuICpcbiAqIEhlcmUgaXMgc29tZSBiYWNrZ3JvdW5kIGZvciB0aGUgb3JpZ2luYWwgXCJ1bml0IHNlcGFyYXRvciBjaGFyYWN0ZXJcIjpcbiAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzg2OTUxMTgvd2hhdHMtdGhlLWZpbGUtZ3JvdXAtcmVjb3JkLXVuaXQtc2VwYXJhdG9yLWNvbnRyb2wtY2hhcmFjdGVycy1hbmQtaXRzLXVzYWdlXG4gKi9cbmV4cG9ydCBjb25zdCBMRUdBQ1lfSURfSU5ESUNBVE9SID0gJ1xcdTI0MUYnO1xuIl19