angular-intlayer 8.11.1 → 8.11.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 (108) hide show
  1. package/dist/cjs/UI/IntlayerNode.component.cjs +2 -3
  2. package/dist/cjs/UI/IntlayerNode.component.cjs.map +1 -1
  3. package/dist/cjs/_virtual/{_@oxc-project_runtime@0.130.0 → _@oxc-project_runtime@0.132.0}/helpers/decorate.cjs +1 -1
  4. package/dist/cjs/_virtual/{_@oxc-project_runtime@0.130.0 → _@oxc-project_runtime@0.132.0}/helpers/decorateMetadata.cjs +1 -1
  5. package/dist/cjs/client/intlayerToken.cjs +0 -1
  6. package/dist/cjs/client/intlayerToken.cjs.map +1 -1
  7. package/dist/cjs/client/useDictionary.cjs +0 -1
  8. package/dist/cjs/client/useDictionary.cjs.map +1 -1
  9. package/dist/cjs/client/useDictionaryAsync.cjs +0 -1
  10. package/dist/cjs/client/useDictionaryAsync.cjs.map +1 -1
  11. package/dist/cjs/client/useDictionaryDynamic.cjs +0 -1
  12. package/dist/cjs/client/useDictionaryDynamic.cjs.map +1 -1
  13. package/dist/cjs/client/useIntlayer.cjs +0 -1
  14. package/dist/cjs/client/useIntlayer.cjs.map +1 -1
  15. package/dist/cjs/client/useLoadDynamic.cjs +0 -1
  16. package/dist/cjs/client/useLoadDynamic.cjs.map +1 -1
  17. package/dist/cjs/client/useLocale.cjs +0 -1
  18. package/dist/cjs/client/useLocale.cjs.map +1 -1
  19. package/dist/cjs/client/useLocaleStorage.cjs +0 -1
  20. package/dist/cjs/client/useLocaleStorage.cjs.map +1 -1
  21. package/dist/cjs/editor/ContentSelector.component.cjs +2 -3
  22. package/dist/cjs/editor/ContentSelector.component.cjs.map +1 -1
  23. package/dist/cjs/editor/EditorProvider.component.cjs +2 -3
  24. package/dist/cjs/editor/EditorProvider.component.cjs.map +1 -1
  25. package/dist/cjs/editor/useEditor.cjs +0 -1
  26. package/dist/cjs/editor/useEditor.cjs.map +1 -1
  27. package/dist/cjs/esbuild/plugin.cjs +0 -1
  28. package/dist/cjs/esbuild/plugin.cjs.map +1 -1
  29. package/dist/cjs/format/useCompact.cjs +0 -1
  30. package/dist/cjs/format/useCompact.cjs.map +1 -1
  31. package/dist/cjs/format/useCurrency.cjs +0 -1
  32. package/dist/cjs/format/useCurrency.cjs.map +1 -1
  33. package/dist/cjs/format/useDate.cjs +0 -1
  34. package/dist/cjs/format/useDate.cjs.map +1 -1
  35. package/dist/cjs/format/useIntl.cjs +0 -1
  36. package/dist/cjs/format/useIntl.cjs.map +1 -1
  37. package/dist/cjs/format/useList.cjs +0 -1
  38. package/dist/cjs/format/useList.cjs.map +1 -1
  39. package/dist/cjs/format/useNumber.cjs +0 -1
  40. package/dist/cjs/format/useNumber.cjs.map +1 -1
  41. package/dist/cjs/format/usePercentage.cjs +0 -1
  42. package/dist/cjs/format/usePercentage.cjs.map +1 -1
  43. package/dist/cjs/format/useRelativeTime.cjs +0 -1
  44. package/dist/cjs/format/useRelativeTime.cjs.map +1 -1
  45. package/dist/cjs/format/useUnit.cjs +0 -1
  46. package/dist/cjs/format/useUnit.cjs.map +1 -1
  47. package/dist/cjs/getDictionary.cjs +0 -1
  48. package/dist/cjs/getDictionary.cjs.map +1 -1
  49. package/dist/cjs/getIntlayer.cjs +0 -1
  50. package/dist/cjs/getIntlayer.cjs.map +1 -1
  51. package/dist/cjs/html/installIntlayerHTML.cjs +1 -2
  52. package/dist/cjs/html/installIntlayerHTML.cjs.map +1 -1
  53. package/dist/cjs/markdown/index.cjs +2 -0
  54. package/dist/cjs/markdown/installIntlayerMarkdown.cjs +29 -4
  55. package/dist/cjs/markdown/installIntlayerMarkdown.cjs.map +1 -1
  56. package/dist/cjs/webpack/mergeConfig.cjs +0 -1
  57. package/dist/cjs/webpack/mergeConfig.cjs.map +1 -1
  58. package/dist/esm/UI/IntlayerNode.component.mjs +2 -2
  59. package/dist/esm/_virtual/{_@oxc-project_runtime@0.130.0 → _@oxc-project_runtime@0.132.0}/helpers/decorate.mjs +1 -1
  60. package/dist/esm/_virtual/{_@oxc-project_runtime@0.130.0 → _@oxc-project_runtime@0.132.0}/helpers/decorateMetadata.mjs +1 -1
  61. package/dist/esm/client/useDictionary.mjs.map +1 -1
  62. package/dist/esm/client/useDictionaryAsync.mjs.map +1 -1
  63. package/dist/esm/client/useDictionaryDynamic.mjs.map +1 -1
  64. package/dist/esm/client/useIntlayer.mjs.map +1 -1
  65. package/dist/esm/editor/ContentSelector.component.mjs +2 -2
  66. package/dist/esm/editor/EditorProvider.component.mjs +2 -2
  67. package/dist/esm/esbuild/plugin.mjs +2 -2
  68. package/dist/esm/getDictionary.mjs.map +1 -1
  69. package/dist/esm/getIntlayer.mjs.map +1 -1
  70. package/dist/esm/html/installIntlayerHTML.mjs +1 -1
  71. package/dist/esm/markdown/index.mjs +2 -2
  72. package/dist/esm/markdown/installIntlayerMarkdown.mjs +29 -5
  73. package/dist/esm/markdown/installIntlayerMarkdown.mjs.map +1 -1
  74. package/dist/types/client/useDictionary.d.ts +1 -1
  75. package/dist/types/client/useDictionary.d.ts.map +1 -1
  76. package/dist/types/client/useDictionaryAsync.d.ts +1 -1
  77. package/dist/types/client/useDictionaryAsync.d.ts.map +1 -1
  78. package/dist/types/client/useDictionaryDynamic.d.ts +2 -1
  79. package/dist/types/client/useDictionaryDynamic.d.ts.map +1 -1
  80. package/dist/types/client/useIntlayer.d.ts +1 -1
  81. package/dist/types/client/useIntlayer.d.ts.map +1 -1
  82. package/dist/types/client/useLocaleStorage.d.ts +5 -4
  83. package/dist/types/client/useLocaleStorage.d.ts.map +1 -1
  84. package/dist/types/format/useCompact.d.ts +3 -1
  85. package/dist/types/format/useCompact.d.ts.map +1 -1
  86. package/dist/types/format/useCurrency.d.ts +3 -1
  87. package/dist/types/format/useCurrency.d.ts.map +1 -1
  88. package/dist/types/format/useDate.d.ts +3 -1
  89. package/dist/types/format/useDate.d.ts.map +1 -1
  90. package/dist/types/format/useList.d.ts +3 -1
  91. package/dist/types/format/useList.d.ts.map +1 -1
  92. package/dist/types/format/useNumber.d.ts +3 -1
  93. package/dist/types/format/useNumber.d.ts.map +1 -1
  94. package/dist/types/format/usePercentage.d.ts +3 -1
  95. package/dist/types/format/usePercentage.d.ts.map +1 -1
  96. package/dist/types/format/useRelativeTime.d.ts +3 -1
  97. package/dist/types/format/useRelativeTime.d.ts.map +1 -1
  98. package/dist/types/format/useUnit.d.ts +3 -1
  99. package/dist/types/format/useUnit.d.ts.map +1 -1
  100. package/dist/types/getDictionary.d.ts +1 -1
  101. package/dist/types/getDictionary.d.ts.map +1 -1
  102. package/dist/types/getIntlayer.d.ts +1 -1
  103. package/dist/types/getIntlayer.d.ts.map +1 -1
  104. package/dist/types/intlayer/dist/types/index.d.ts +4 -0
  105. package/dist/types/markdown/index.d.ts +2 -2
  106. package/dist/types/markdown/installIntlayerMarkdown.d.ts +6 -4
  107. package/dist/types/markdown/installIntlayerMarkdown.d.ts.map +1 -1
  108. package/package.json +9 -9
@@ -1,6 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
- const require_decorate = require('../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.cjs');
2
+ const require_decorate = require('../_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.cjs');
4
3
  let _intlayer_core_markdown = require("@intlayer/core/markdown");
5
4
  let _angular_core = require("@angular/core");
6
5
 
@@ -38,10 +37,34 @@ const htmlRuntime = {
38
37
  cloneElement: (element, _props) => element,
39
38
  Fragment: Symbol("Fragment")
40
39
  };
40
+ const parseMarkdown = (markdown = "", options = {}) => {
41
+ const { components, namedCodesToUnicode, sanitizer, slugify, ...compilerOptions } = options;
42
+ return (0, _intlayer_core_markdown.parseMarkdown)(markdown, {
43
+ runtime: htmlRuntime,
44
+ components,
45
+ namedCodesToUnicode,
46
+ sanitizer,
47
+ slugify
48
+ }, compilerOptions);
49
+ };
50
+ const compileMarkdown = (input = "", options = {}) => {
51
+ if (typeof input === "string") return (0, _intlayer_core_markdown.compile)(input, {
52
+ ...options,
53
+ runtime: htmlRuntime
54
+ });
55
+ const { components, namedCodesToUnicode, sanitizer, slugify, ...compilerOptions } = options;
56
+ return (0, _intlayer_core_markdown.renderMarkdownAst)(input, {
57
+ runtime: htmlRuntime,
58
+ components,
59
+ namedCodesToUnicode,
60
+ sanitizer,
61
+ slugify
62
+ }, compilerOptions);
63
+ };
41
64
  /**
42
65
  * Default markdown renderer that converts markdown to HTML string
43
66
  */
44
- const defaultMarkdownRenderer = (markdown) => (0, _intlayer_core_markdown.compile)(markdown, { runtime: htmlRuntime });
67
+ const defaultMarkdownRenderer = (markdown) => compileMarkdown(markdown);
45
68
  /**
46
69
  * Create IntlayerMarkdown provider configuration
47
70
  */
@@ -52,7 +75,7 @@ const createIntlayerMarkdownProvider = (renderMarkdown = defaultMarkdownRenderer
52
75
  let IntlayerMarkdownService = class IntlayerMarkdownService {
53
76
  markdownProvider = (0, _angular_core.inject)(INTLAYER_MARKDOWN_TOKEN, { optional: true });
54
77
  renderMarkdown(markdown, overrides) {
55
- if (!this.markdownProvider) return markdown;
78
+ if (!this.markdownProvider) return typeof markdown === "string" ? markdown : "";
56
79
  return this.markdownProvider.renderMarkdown(markdown, overrides);
57
80
  }
58
81
  };
@@ -74,7 +97,9 @@ Object.defineProperty(exports, 'IntlayerMarkdownService', {
74
97
  return IntlayerMarkdownService;
75
98
  }
76
99
  });
100
+ exports.compileMarkdown = compileMarkdown;
77
101
  exports.createIntlayerMarkdownProvider = createIntlayerMarkdownProvider;
78
102
  exports.htmlRuntime = htmlRuntime;
103
+ exports.parseMarkdown = parseMarkdown;
79
104
  exports.useMarkdown = useMarkdown;
80
105
  //# sourceMappingURL=installIntlayerMarkdown.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"installIntlayerMarkdown.cjs","names":["InjectionToken"],"sources":["../../../src/markdown/installIntlayerMarkdown.ts"],"sourcesContent":["import {\n Injectable,\n InjectionToken,\n inject,\n type TemplateRef,\n} from '@angular/core';\nimport type { MarkdownRuntime } from '@intlayer/core/markdown';\nimport { compile } from '@intlayer/core/markdown';\n\nexport const INTLAYER_MARKDOWN_TOKEN =\n new InjectionToken<IntlayerMarkdownProvider>('intlayerMarkdown');\n\ntype RenderMarkdownOptions = {\n components?: any;\n wrapper?: string;\n options?: any;\n};\n\ntype RenderMarkdownFunction = (\n markdown: string,\n overrides?: any | RenderMarkdownOptions\n) => string | TemplateRef<any> | Promise<string | TemplateRef<any>>;\n\nexport type IntlayerMarkdownProvider = {\n renderMarkdown: RenderMarkdownFunction;\n};\n\n// Minimal runtime to generate HTML strings\nexport const htmlRuntime: MarkdownRuntime = {\n createElement: (tag: string | any, props: any, ...children: any[]) => {\n if (typeof tag !== 'string') {\n // Handle non-string tags if necessary (e.g. components), or fallback to div\n if (tag === htmlRuntime.Fragment) {\n return children.join('');\n }\n return '';\n }\n\n const attrs = props\n ? Object.entries(props)\n .map(([k, v]) => {\n if (k === 'key' || v === undefined || v === null) return '';\n const key = k === 'className' ? 'class' : k;\n return `${key}=\"${String(v).replace(/\"/g, '&quot;')}\"`;\n })\n .filter(Boolean)\n .join(' ')\n : '';\n\n const childrenStr = children.join('');\n const voidTags = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ];\n\n if (voidTags.includes(tag)) {\n return `<${tag} ${attrs} />`;\n }\n\n return `<${tag}${attrs ? ` ${attrs}` : ''}>${childrenStr}</${tag}>`;\n },\n cloneElement: (element: any, _props: any) => element, // Not really supported for strings\n Fragment: Symbol('Fragment'),\n};\n\n/**\n * Default markdown renderer that converts markdown to HTML string\n */\nconst defaultMarkdownRenderer: RenderMarkdownFunction = (markdown: string) =>\n compile(markdown, { runtime: htmlRuntime }) as string;\n\n/**\n * Create IntlayerMarkdown provider configuration\n */\nexport const createIntlayerMarkdownProvider = (\n renderMarkdown: RenderMarkdownFunction = defaultMarkdownRenderer\n) => ({\n provide: INTLAYER_MARKDOWN_TOKEN,\n useValue: {\n renderMarkdown,\n } as IntlayerMarkdownProvider,\n});\n\n/**\n * Injectable service for markdown rendering\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class IntlayerMarkdownService {\n private markdownProvider = inject(INTLAYER_MARKDOWN_TOKEN, {\n optional: true,\n });\n\n renderMarkdown(\n markdown: string,\n overrides?: any\n ): string | TemplateRef<any> | Promise<string | TemplateRef<any>> {\n if (!this.markdownProvider) {\n return markdown; // Fallback to returning markdown as is\n }\n return this.markdownProvider.renderMarkdown(markdown, overrides);\n }\n}\n\n/**\n * Function to inject markdown provider\n */\nexport const useMarkdown = (): IntlayerMarkdownProvider => {\n const markdownProvider = inject(INTLAYER_MARKDOWN_TOKEN, { optional: true });\n\n if (!markdownProvider) {\n return {\n renderMarkdown: defaultMarkdownRenderer,\n };\n }\n\n return markdownProvider;\n};\n"],"mappings":";;;;;;;AASA,MAAa,0BACX,IAAIA,6BAAyC,kBAAkB;AAkBjE,MAAa,cAA+B;CAC1C,gBAAgB,KAAmB,OAAY,GAAG,aAAoB;EACpE,IAAI,OAAO,QAAQ,UAAU;GAE3B,IAAI,QAAQ,YAAY,UACtB,OAAO,SAAS,KAAK,EAAE;GAEzB,OAAO;EACT;EAEA,MAAM,QAAQ,QACV,OAAO,QAAQ,KAAK,EACjB,KAAK,CAAC,GAAG,OAAO;GACf,IAAI,MAAM,SAAS,MAAM,UAAa,MAAM,MAAM,OAAO;GAEzD,OAAO,GADK,MAAM,cAAc,UAAU,EAC5B,IAAI,OAAO,CAAC,EAAE,QAAQ,MAAM,QAAQ,EAAE;EACtD,CAAC,EACA,OAAO,OAAO,EACd,KAAK,GAAG,IACX;EAEJ,MAAM,cAAc,SAAS,KAAK,EAAE;EAkBpC,IAAI;GAhBF;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EAGS,EAAE,SAAS,GAAG,GACvB,OAAO,IAAI,IAAI,GAAG,MAAM;EAG1B,OAAO,IAAI,MAAM,QAAQ,IAAI,UAAU,GAAG,GAAG,YAAY,IAAI,IAAI;CACnE;CACA,eAAe,SAAc,WAAgB;CAC7C,UAAU,OAAO,UAAU;AAC7B;;;;AAKA,MAAM,2BAAmD,kDAC/C,UAAU,EAAE,SAAS,YAAY,CAAC;;;;AAK5C,MAAa,kCACX,iBAAyC,6BACrC;CACJ,SAAS;CACT,UAAU,EACR,eACF;AACF;AAQO,oCAAM,wBAAwB;CACnC,AAAQ,6CAA0B,yBAAyB,EACzD,UAAU,KACZ,CAAC;CAED,eACE,UACA,WACgE;EAChE,IAAI,CAAC,KAAK,kBACR,OAAO;EAET,OAAO,KAAK,iBAAiB,eAAe,UAAU,SAAS;CACjE;AACF;qFAjBY,EACV,YAAY,OACd,CAAC;;;;AAoBD,MAAa,oBAA8C;CACzD,MAAM,6CAA0B,yBAAyB,EAAE,UAAU,KAAK,CAAC;CAE3E,IAAI,CAAC,kBACH,OAAO,EACL,gBAAgB,wBAClB;CAGF,OAAO;AACT"}
1
+ {"version":3,"file":"installIntlayerMarkdown.cjs","names":["InjectionToken"],"sources":["../../../src/markdown/installIntlayerMarkdown.ts"],"sourcesContent":["import {\n Injectable,\n InjectionToken,\n inject,\n type TemplateRef,\n} from '@angular/core';\nimport type {\n MarkdownContext,\n MarkdownRuntime,\n ParsedMarkdown,\n} from '@intlayer/core/markdown';\nimport {\n compile,\n parseMarkdown as coreParseMarkdown,\n renderMarkdownAst as coreRenderMarkdownAst,\n} from '@intlayer/core/markdown';\n\nexport const INTLAYER_MARKDOWN_TOKEN =\n new InjectionToken<IntlayerMarkdownProvider>('intlayerMarkdown');\n\ntype RenderMarkdownOptions = {\n components?: any;\n wrapper?: string;\n options?: any;\n};\n\ntype RenderMarkdownFunction = (\n markdown: string | ParsedMarkdown,\n overrides?: any | RenderMarkdownOptions\n) => string | TemplateRef<any> | Promise<string | TemplateRef<any>>;\n\nexport type IntlayerMarkdownProvider = {\n renderMarkdown: RenderMarkdownFunction;\n};\n\n// Minimal runtime to generate HTML strings\nexport const htmlRuntime: MarkdownRuntime = {\n createElement: (tag: string | any, props: any, ...children: any[]) => {\n if (typeof tag !== 'string') {\n // Handle non-string tags if necessary (e.g. components), or fallback to div\n if (tag === htmlRuntime.Fragment) {\n return children.join('');\n }\n return '';\n }\n\n const attrs = props\n ? Object.entries(props)\n .map(([k, v]) => {\n if (k === 'key' || v === undefined || v === null) return '';\n const key = k === 'className' ? 'class' : k;\n return `${key}=\"${String(v).replace(/\"/g, '&quot;')}\"`;\n })\n .filter(Boolean)\n .join(' ')\n : '';\n\n const childrenStr = children.join('');\n const voidTags = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ];\n\n if (voidTags.includes(tag)) {\n return `<${tag} ${attrs} />`;\n }\n\n return `<${tag}${attrs ? ` ${attrs}` : ''}>${childrenStr}</${tag}>`;\n },\n cloneElement: (element: any, _props: any) => element, // Not really supported for strings\n Fragment: Symbol('Fragment'),\n};\n\nexport type { ParsedMarkdown };\n\nexport const parseMarkdown = (\n markdown: string = '',\n options: any = {}\n): ParsedMarkdown => {\n const {\n components,\n namedCodesToUnicode,\n sanitizer,\n slugify,\n ...compilerOptions\n } = options;\n\n const ctx: MarkdownContext<any> = {\n runtime: htmlRuntime,\n components,\n namedCodesToUnicode,\n sanitizer: sanitizer as any,\n slugify,\n };\n\n return coreParseMarkdown(markdown, ctx, compilerOptions);\n};\n\nexport const compileMarkdown = (\n input: string | ParsedMarkdown = '',\n options: any = {}\n): string => {\n if (typeof input === 'string') {\n return compile(input, { ...options, runtime: htmlRuntime }) as string;\n }\n\n const {\n components,\n namedCodesToUnicode,\n sanitizer,\n slugify,\n ...compilerOptions\n } = options;\n\n const ctx: MarkdownContext<any> = {\n runtime: htmlRuntime,\n components,\n namedCodesToUnicode,\n sanitizer: sanitizer as any,\n slugify,\n };\n\n return coreRenderMarkdownAst(input, ctx, compilerOptions) as string;\n};\n\n/**\n * Default markdown renderer that converts markdown to HTML string\n */\nconst defaultMarkdownRenderer: RenderMarkdownFunction = (\n markdown: string | ParsedMarkdown\n) => compileMarkdown(markdown) as string;\n\n/**\n * Create IntlayerMarkdown provider configuration\n */\nexport const createIntlayerMarkdownProvider = (\n renderMarkdown: RenderMarkdownFunction = defaultMarkdownRenderer\n) => ({\n provide: INTLAYER_MARKDOWN_TOKEN,\n useValue: {\n renderMarkdown,\n } as IntlayerMarkdownProvider,\n});\n\n/**\n * Injectable service for markdown rendering\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class IntlayerMarkdownService {\n private markdownProvider = inject(INTLAYER_MARKDOWN_TOKEN, {\n optional: true,\n });\n\n renderMarkdown(\n markdown: string | ParsedMarkdown,\n overrides?: any\n ): string | TemplateRef<any> | Promise<string | TemplateRef<any>> {\n if (!this.markdownProvider) {\n return typeof markdown === 'string' ? markdown : ''; // Fallback to returning markdown as is\n }\n return this.markdownProvider.renderMarkdown(markdown, overrides);\n }\n}\n\n/**\n * Function to inject markdown provider\n */\nexport const useMarkdown = (): IntlayerMarkdownProvider => {\n const markdownProvider = inject(INTLAYER_MARKDOWN_TOKEN, { optional: true });\n\n if (!markdownProvider) {\n return {\n renderMarkdown: defaultMarkdownRenderer,\n };\n }\n\n return markdownProvider;\n};\n"],"mappings":";;;;;;AAiBA,MAAa,0BACX,IAAIA,6BAAyC,kBAAkB;AAkBjE,MAAa,cAA+B;CAC1C,gBAAgB,KAAmB,OAAY,GAAG,aAAoB;EACpE,IAAI,OAAO,QAAQ,UAAU;GAE3B,IAAI,QAAQ,YAAY,UACtB,OAAO,SAAS,KAAK,EAAE;GAEzB,OAAO;EACT;EAEA,MAAM,QAAQ,QACV,OAAO,QAAQ,KAAK,EACjB,KAAK,CAAC,GAAG,OAAO;GACf,IAAI,MAAM,SAAS,MAAM,UAAa,MAAM,MAAM,OAAO;GAEzD,OAAO,GADK,MAAM,cAAc,UAAU,EAC5B,IAAI,OAAO,CAAC,EAAE,QAAQ,MAAM,QAAQ,EAAE;EACtD,CAAC,EACA,OAAO,OAAO,EACd,KAAK,GAAG,IACX;EAEJ,MAAM,cAAc,SAAS,KAAK,EAAE;EAkBpC,IAAI;GAhBF;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EAGS,EAAE,SAAS,GAAG,GACvB,OAAO,IAAI,IAAI,GAAG,MAAM;EAG1B,OAAO,IAAI,MAAM,QAAQ,IAAI,UAAU,GAAG,GAAG,YAAY,IAAI,IAAI;CACnE;CACA,eAAe,SAAc,WAAgB;CAC7C,UAAU,OAAO,UAAU;AAC7B;AAIA,MAAa,iBACX,WAAmB,IACnB,UAAe,CAAC,MACG;CACnB,MAAM,EACJ,YACA,qBACA,WACA,SACA,GAAG,oBACD;CAUJ,kDAAyB,UAAU;EAPjC,SAAS;EACT;EACA;EACW;EACX;CAGmC,GAAG,eAAe;AACzD;AAEA,MAAa,mBACX,QAAiC,IACjC,UAAe,CAAC,MACL;CACX,IAAI,OAAO,UAAU,UACnB,4CAAe,OAAO;EAAE,GAAG;EAAS,SAAS;CAAY,CAAC;CAG5D,MAAM,EACJ,YACA,qBACA,WACA,SACA,GAAG,oBACD;CAUJ,sDAA6B,OAAO;EAPlC,SAAS;EACT;EACA;EACW;EACX;CAGoC,GAAG,eAAe;AAC1D;;;;AAKA,MAAM,2BACJ,aACG,gBAAgB,QAAQ;;;;AAK7B,MAAa,kCACX,iBAAyC,6BACrC;CACJ,SAAS;CACT,UAAU,EACR,eACF;AACF;AAQO,oCAAM,wBAAwB;CACnC,AAAQ,6CAA0B,yBAAyB,EACzD,UAAU,KACZ,CAAC;CAED,eACE,UACA,WACgE;EAChE,IAAI,CAAC,KAAK,kBACR,OAAO,OAAO,aAAa,WAAW,WAAW;EAEnD,OAAO,KAAK,iBAAiB,eAAe,UAAU,SAAS;CACjE;AACF;qFAjBY,EACV,YAAY,OACd,CAAC;;;;AAoBD,MAAa,oBAA8C;CACzD,MAAM,6CAA0B,yBAAyB,EAAE,UAAU,KAAK,CAAC;CAE3E,IAAI,CAAC,kBACH,OAAO,EACL,gBAAgB,wBAClB;CAGF,OAAO;AACT"}
@@ -1,5 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
2
  let node_path = require("node:path");
4
3
  let _intlayer_config_node = require("@intlayer/config/node");
5
4
  let _intlayer_config_utils = require("@intlayer/config/utils");
@@ -1 +1 @@
1
- {"version":3,"file":"mergeConfig.cjs","names":["IntlayerPlugin"],"sources":["../../../src/webpack/mergeConfig.ts"],"sourcesContent":["import { resolve } from 'node:path';\nimport { getConfiguration } from '@intlayer/config/node';\nimport { getAlias } from '@intlayer/config/utils';\nimport { IntlayerPlugin } from '@intlayer/webpack'; // adjust path if needed\nimport { defu } from 'defu';\n\nexport const mergeConfig = (\n baseConfig: import('webpack').Configuration\n): import('webpack').Configuration => {\n const intlayerConfig = getConfiguration();\n\n const config = {\n resolve: {\n alias: getAlias({\n configuration: intlayerConfig,\n formatter: (value: string) => resolve(value), // get absolute path\n }),\n },\n externals: {\n esbuild: 'esbuild',\n module: 'module',\n fs: 'fs',\n chokidar: 'chokidar',\n fsevents: 'fsevents',\n },\n module: {\n rules: [\n {\n test: /\\.node$/,\n loader: 'node-loader',\n },\n\n // Fix `import _48DQ2FD8DPGT8SPgqAmt from '../dictionary/app.json' with { type: 'json' };` syntax\n {\n test: /\\.mjs$/,\n include: [/[\\\\/]\\.intlayer[\\\\/]/],\n type: 'javascript/auto',\n enforce: 'pre',\n use: {\n loader: 'babel-loader',\n options: {\n presets: [['@babel/preset-env', { modules: 'commonjs' }]],\n plugins: [\n [\n '@babel/plugin-syntax-import-attributes',\n { deprecatedAssert: true },\n ],\n ],\n },\n },\n },\n ],\n },\n plugins: [new IntlayerPlugin(intlayerConfig)],\n };\n\n return defu(config, baseConfig) as import('webpack').Configuration;\n};\n"],"mappings":";;;;;;;;;AAMA,MAAa,eACX,eACoC;CACpC,MAAM,6DAAkC;CA+CxC,sBAAY;EA5CV,SAAS,EACP,4CAAgB;GACd,eAAe;GACf,YAAY,iCAA0B,KAAK;EAC7C,CAAC,EACH;EACA,WAAW;GACT,SAAS;GACT,QAAQ;GACR,IAAI;GACJ,UAAU;GACV,UAAU;EACZ;EACA,QAAQ,EACN,OAAO,CACL;GACE,MAAM;GACN,QAAQ;EACV,GAGA;GACE,MAAM;GACN,SAAS,CAAC,sBAAsB;GAChC,MAAM;GACN,SAAS;GACT,KAAK;IACH,QAAQ;IACR,SAAS;KACP,SAAS,CAAC,CAAC,qBAAqB,EAAE,SAAS,WAAW,CAAC,CAAC;KACxD,SAAS,CACP,CACE,0CACA,EAAE,kBAAkB,KAAK,CAC3B,CACF;IACF;GACF;EACF,CACF,EACF;EACA,SAAS,CAAC,IAAIA,iCAAe,cAAc,CAAC;CAG7B,GAAG,UAAU;AAChC"}
1
+ {"version":3,"file":"mergeConfig.cjs","names":["IntlayerPlugin"],"sources":["../../../src/webpack/mergeConfig.ts"],"sourcesContent":["import { resolve } from 'node:path';\nimport { getConfiguration } from '@intlayer/config/node';\nimport { getAlias } from '@intlayer/config/utils';\nimport { IntlayerPlugin } from '@intlayer/webpack'; // adjust path if needed\nimport { defu } from 'defu';\n\nexport const mergeConfig = (\n baseConfig: import('webpack').Configuration\n): import('webpack').Configuration => {\n const intlayerConfig = getConfiguration();\n\n const config = {\n resolve: {\n alias: getAlias({\n configuration: intlayerConfig,\n formatter: (value: string) => resolve(value), // get absolute path\n }),\n },\n externals: {\n esbuild: 'esbuild',\n module: 'module',\n fs: 'fs',\n chokidar: 'chokidar',\n fsevents: 'fsevents',\n },\n module: {\n rules: [\n {\n test: /\\.node$/,\n loader: 'node-loader',\n },\n\n // Fix `import _48DQ2FD8DPGT8SPgqAmt from '../dictionary/app.json' with { type: 'json' };` syntax\n {\n test: /\\.mjs$/,\n include: [/[\\\\/]\\.intlayer[\\\\/]/],\n type: 'javascript/auto',\n enforce: 'pre',\n use: {\n loader: 'babel-loader',\n options: {\n presets: [['@babel/preset-env', { modules: 'commonjs' }]],\n plugins: [\n [\n '@babel/plugin-syntax-import-attributes',\n { deprecatedAssert: true },\n ],\n ],\n },\n },\n },\n ],\n },\n plugins: [new IntlayerPlugin(intlayerConfig)],\n };\n\n return defu(config, baseConfig) as import('webpack').Configuration;\n};\n"],"mappings":";;;;;;;;AAMA,MAAa,eACX,eACoC;CACpC,MAAM,6DAAkC;CA+CxC,sBAAY;EA5CV,SAAS,EACP,4CAAgB;GACd,eAAe;GACf,YAAY,iCAA0B,KAAK;EAC7C,CAAC,EACH;EACA,WAAW;GACT,SAAS;GACT,QAAQ;GACR,IAAI;GACJ,UAAU;GACV,UAAU;EACZ;EACA,QAAQ,EACN,OAAO,CACL;GACE,MAAM;GACN,QAAQ;EACV,GAGA;GACE,MAAM;GACN,SAAS,CAAC,sBAAsB;GAChC,MAAM;GACN,SAAS;GACT,KAAK;IACH,QAAQ;IACR,SAAS;KACP,SAAS,CAAC,CAAC,qBAAqB,EAAE,SAAS,WAAW,CAAC,CAAC;KACxD,SAAS,CACP,CACE,0CACA,EAAE,kBAAkB,KAAK,CAC3B,CACF;IACF;GACF;EACF,CACF,EACF;EACA,SAAS,CAAC,IAAIA,iCAAe,cAAc,CAAC;CAG7B,GAAG,UAAU;AAChC"}
@@ -1,5 +1,5 @@
1
- import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorateMetadata.mjs";
2
- import { __decorate } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.mjs";
1
+ import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.132.0/helpers/decorateMetadata.mjs";
2
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.mjs";
3
3
  import { ChangeDetectorRef, Component, ElementRef, Input, ViewContainerRef, inject } from "@angular/core";
4
4
 
5
5
  //#region src/UI/IntlayerNode.component.ts
@@ -1,4 +1,4 @@
1
- //#region \0@oxc-project+runtime@0.130.0/helpers/decorate.js
1
+ //#region \0@oxc-project+runtime@0.132.0/helpers/decorate.js
2
2
  function __decorate(decorators, target, key, desc) {
3
3
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
4
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -1,4 +1,4 @@
1
- //#region \0@oxc-project+runtime@0.130.0/helpers/decorateMetadata.js
1
+ //#region \0@oxc-project+runtime@0.132.0/helpers/decorateMetadata.js
2
2
  function __decorateMetadata(k, v) {
3
3
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useDictionary.mjs","names":[],"sources":["../../../src/client/useDictionary.ts"],"sourcesContent":["import { computed, inject, type Signal } from '@angular/core';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\nimport { getDictionary } from '../getDictionary';\nimport type { DeepTransformContent } from '../plugins';\nimport { INTLAYER_TOKEN, type IntlayerProvider } from './installIntlayer';\n\nexport const useDictionary = <T extends Dictionary>(\n dictionary: T,\n locale?: LocalesValues\n): Signal<DeepTransformContent<T['content']>> => {\n const intlayer = inject<IntlayerProvider>(INTLAYER_TOKEN);\n\n const localeTarget = computed(() => locale ?? intlayer?.locale());\n\n /** a *stable* reactive dictionary object */\n const content = computed(\n () => getDictionary<T, LocalesValues>(dictionary, localeTarget()) as any\n );\n\n return content; // all consumers keep full reactivity\n};\n"],"mappings":";;;;;AAOA,MAAa,iBACX,YACA,WAC+C;CAC/C,MAAM,WAAW,OAAyB,cAAc;CAExD,MAAM,eAAe,eAAe,UAAU,UAAU,OAAO,CAAC;CAOhE,OAJgB,eACR,cAAgC,YAAY,aAAa,CAAC,CAGrD;AACf"}
1
+ {"version":3,"file":"useDictionary.mjs","names":[],"sources":["../../../src/client/useDictionary.ts"],"sourcesContent":["import { computed, inject, type Signal } from '@angular/core';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\nimport { getDictionary } from '../getDictionary';\nimport type { DeepTransformContent } from '../plugins';\nimport { INTLAYER_TOKEN, type IntlayerProvider } from './installIntlayer';\n\nexport const useDictionary = <const T extends Dictionary>(\n dictionary: T,\n locale?: LocalesValues\n): Signal<DeepTransformContent<T['content']>> => {\n const intlayer = inject<IntlayerProvider>(INTLAYER_TOKEN);\n\n const localeTarget = computed(() => locale ?? intlayer?.locale());\n\n /** a *stable* reactive dictionary object */\n const content = computed(\n () => getDictionary<T, LocalesValues>(dictionary, localeTarget()) as any\n );\n\n return content; // all consumers keep full reactivity\n};\n"],"mappings":";;;;;AAOA,MAAa,iBACX,YACA,WAC+C;CAC/C,MAAM,WAAW,OAAyB,cAAc;CAExD,MAAM,eAAe,eAAe,UAAU,UAAU,OAAO,CAAC;CAOhE,OAJgB,eACR,cAAgC,YAAY,aAAa,CAAC,CAGrD;AACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDictionaryAsync.mjs","names":[],"sources":["../../../src/client/useDictionaryAsync.ts"],"sourcesContent":["'use client';\n\nimport { computed, inject } from '@angular/core';\nimport { internationalization } from '@intlayer/config/built';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport type {\n LocalesValues,\n StrictModeLocaleMap,\n} from '@intlayer/types/module_augmentation';\nimport { INTLAYER_TOKEN, type IntlayerProvider } from './installIntlayer';\nimport { useDictionary } from './useDictionary';\n\n/**\n * On the server side, Hook that transform a dictionary and return the content\n *\n * If the locale is not provided, it will use the locale from the client context\n */\nexport const useDictionaryAsync = async <T extends Dictionary>(\n dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>,\n locale?: LocalesValues\n) => {\n const intlayer = inject<IntlayerProvider>(INTLAYER_TOKEN);\n\n const localeTarget = computed(\n () => locale ?? intlayer?.locale() ?? internationalization.defaultLocale\n );\n\n const dictionary = await (dictionaryPromise as any)[localeTarget()]?.();\n\n return useDictionary(dictionary, localeTarget() as any);\n};\n"],"mappings":";;;;;;;;;;;;;AAiBA,MAAa,qBAAqB,OAChC,mBACA,WACG;CACH,MAAM,WAAW,OAAyB,cAAc;CAExD,MAAM,eAAe,eACb,UAAU,UAAU,OAAO,KAAK,qBAAqB,aAC7D;CAIA,OAAO,cAAc,MAFK,kBAA0B,aAAa,KAAK,GAErC,aAAa,CAAQ;AACxD"}
1
+ {"version":3,"file":"useDictionaryAsync.mjs","names":[],"sources":["../../../src/client/useDictionaryAsync.ts"],"sourcesContent":["'use client';\n\nimport { computed, inject } from '@angular/core';\nimport { internationalization } from '@intlayer/config/built';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport type {\n LocalesValues,\n StrictModeLocaleMap,\n} from '@intlayer/types/module_augmentation';\nimport { INTLAYER_TOKEN, type IntlayerProvider } from './installIntlayer';\nimport { useDictionary } from './useDictionary';\n\n/**\n * On the server side, Hook that transform a dictionary and return the content\n *\n * If the locale is not provided, it will use the locale from the client context\n */\nexport const useDictionaryAsync = async <const T extends Dictionary>(\n dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>,\n locale?: LocalesValues\n) => {\n const intlayer = inject<IntlayerProvider>(INTLAYER_TOKEN);\n\n const localeTarget = computed(\n () => locale ?? intlayer?.locale() ?? internationalization.defaultLocale\n );\n\n const dictionary = await (dictionaryPromise as any)[localeTarget()]?.();\n\n return useDictionary(dictionary, localeTarget() as any);\n};\n"],"mappings":";;;;;;;;;;;;;AAiBA,MAAa,qBAAqB,OAChC,mBACA,WACG;CACH,MAAM,WAAW,OAAyB,cAAc;CAExD,MAAM,eAAe,eACb,UAAU,UAAU,OAAO,KAAK,qBAAqB,aAC7D;CAIA,OAAO,cAAc,MAFK,kBAA0B,aAAa,KAAK,GAErC,aAAa,CAAQ;AACxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDictionaryDynamic.mjs","names":[],"sources":["../../../src/client/useDictionaryDynamic.ts"],"sourcesContent":["'use client';\n\nimport { computed, inject } from '@angular/core';\nimport { internationalization } from '@intlayer/config/built';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport type {\n DictionaryKeys,\n LocalesValues,\n StrictModeLocaleMap,\n} from '@intlayer/types/module_augmentation';\nimport { INTLAYER_TOKEN, type IntlayerProvider } from './installIntlayer';\nimport { useDictionary } from './useDictionary';\nimport { useLoadDynamic } from './useLoadDynamic';\n\n/**\n * On the server side, Hook that transform a dictionary and return the content\n *\n * If the locale is not provided, it will use the locale from the client context\n */\nexport const useDictionaryDynamic = <\n T extends Dictionary,\n K extends DictionaryKeys,\n>(\n dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>,\n key: K,\n locale?: LocalesValues\n) => {\n const intlayer = inject<IntlayerProvider>(INTLAYER_TOKEN);\n\n const localeTarget = computed(\n () => locale ?? intlayer?.locale() ?? internationalization.defaultLocale\n );\n\n const dictionary = useLoadDynamic<T>(\n `${String(key)}.${localeTarget()}`,\n (dictionaryPromise as any)[localeTarget()]?.()\n ) as T;\n\n return useDictionary(dictionary, localeTarget() as any);\n};\n"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAa,wBAIX,mBACA,KACA,WACG;CACH,MAAM,WAAW,OAAyB,cAAc;CAExD,MAAM,eAAe,eACb,UAAU,UAAU,OAAO,KAAK,qBAAqB,aAC7D;CAOA,OAAO,cALY,eACjB,GAAG,OAAO,GAAG,EAAE,GAAG,aAAa,KAC9B,kBAA0B,aAAa,KAAK,CAGjB,GAAG,aAAa,CAAQ;AACxD"}
1
+ {"version":3,"file":"useDictionaryDynamic.mjs","names":[],"sources":["../../../src/client/useDictionaryDynamic.ts"],"sourcesContent":["'use client';\n\nimport { computed, inject } from '@angular/core';\nimport { internationalization } from '@intlayer/config/built';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport type {\n DictionaryKeys,\n LocalesValues,\n StrictModeLocaleMap,\n} from '@intlayer/types/module_augmentation';\nimport { INTLAYER_TOKEN, type IntlayerProvider } from './installIntlayer';\nimport { useDictionary } from './useDictionary';\nimport { useLoadDynamic } from './useLoadDynamic';\n\n/**\n * On the server side, Hook that transform a dictionary and return the content\n *\n * If the locale is not provided, it will use the locale from the client context\n */\nexport const useDictionaryDynamic = <\n const T extends Dictionary,\n const K extends DictionaryKeys,\n>(\n dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>,\n key: K,\n locale?: LocalesValues\n) => {\n const intlayer = inject<IntlayerProvider>(INTLAYER_TOKEN);\n\n const localeTarget = computed(\n () => locale ?? intlayer?.locale() ?? internationalization.defaultLocale\n );\n\n const dictionary = useLoadDynamic<T>(\n `${String(key)}.${localeTarget()}`,\n (dictionaryPromise as any)[localeTarget()]?.()\n ) as T;\n\n return useDictionary(dictionary, localeTarget() as any);\n};\n"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAa,wBAIX,mBACA,KACA,WACG;CACH,MAAM,WAAW,OAAyB,cAAc;CAExD,MAAM,eAAe,eACb,UAAU,UAAU,OAAO,KAAK,qBAAqB,aAC7D;CAOA,OAAO,cALY,eACjB,GAAG,OAAO,GAAG,EAAE,GAAG,aAAa,KAC9B,kBAA0B,aAAa,KAAK,CAGjB,GAAG,aAAa,CAAQ;AACxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useIntlayer.mjs","names":[],"sources":["../../../src/client/useIntlayer.ts"],"sourcesContent":["import { computed, inject, type Signal } from '@angular/core';\nimport type {\n DictionaryKeys,\n DictionaryRegistryContent,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport { getIntlayer } from '../getIntlayer';\nimport type { DeepTransformContent } from '../plugins';\nimport { INTLAYER_TOKEN, type IntlayerProvider } from './installIntlayer';\n\n/** guard utility - true only for objects generated by `renderIntlayerNode()` */\nexport const isUpdatableNode = (\n val: unknown\n): val is { __update: (n: unknown) => void } =>\n !!val &&\n typeof val === 'object' &&\n typeof (val as any).__update === 'function';\n\n/**\n * Angular hook that picks one dictionary by its key and returns its reactive content.\n *\n * It utilizes Angular signals to provide deep reactivity, ensuring your components\n * update automatically when the locale changes.\n *\n * @param key - The unique key of the dictionary to retrieve.\n * @param locale - Optional locale to override the current context locale.\n * @returns The transformed dictionary content.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n * import { useIntlayer } from 'angular-intlayer';\n *\n * @Component({\n * standalone: true,\n * selector: 'app-my-component',\n * template: `<div>{{ content().myField.value }}</div>`,\n * })\n * export class MyComponent {\n * content = useIntlayer('my-dictionary-key');\n * }\n * ```\n */\nexport const useIntlayer = <T extends DictionaryKeys, L extends LocalesValues>(\n key: T,\n locale?: LocalesValues\n): Signal<DeepTransformContent<DictionaryRegistryContent<T>>> => {\n const intlayer = inject<IntlayerProvider>(INTLAYER_TOKEN)!;\n\n /** which locale should we use right now? */\n const localeTarget = computed(() => locale ?? intlayer.locale());\n\n /** a *stable* reactive dictionary object */\n // @ts-ignore Type instantiation is excessively deep and possibly infinite\n const content = computed(\n () => getIntlayer<T, L>(key, localeTarget() as L) as any\n );\n\n return content; // all consumers keep full reactivity\n};\n"],"mappings":";;;;;;AAWA,MAAa,mBACX,QAEA,CAAC,CAAC,OACF,OAAO,QAAQ,YACf,OAAQ,IAAY,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BnC,MAAa,eACX,KACA,WAC+D;CAC/D,MAAM,WAAW,OAAyB,cAAc;;CAGxD,MAAM,eAAe,eAAe,UAAU,SAAS,OAAO,CAAC;CAQ/D,OAJgB,eACR,YAAkB,KAAK,aAAa,CAAM,CAGrC;AACf"}
1
+ {"version":3,"file":"useIntlayer.mjs","names":[],"sources":["../../../src/client/useIntlayer.ts"],"sourcesContent":["import { computed, inject, type Signal } from '@angular/core';\nimport type {\n DictionaryKeys,\n DictionaryRegistryContent,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport { getIntlayer } from '../getIntlayer';\nimport type { DeepTransformContent } from '../plugins';\nimport { INTLAYER_TOKEN, type IntlayerProvider } from './installIntlayer';\n\n/** guard utility - true only for objects generated by `renderIntlayerNode()` */\nexport const isUpdatableNode = (\n val: unknown\n): val is { __update: (n: unknown) => void } =>\n !!val &&\n typeof val === 'object' &&\n typeof (val as any).__update === 'function';\n\n/**\n * Angular hook that picks one dictionary by its key and returns its reactive content.\n *\n * It utilizes Angular signals to provide deep reactivity, ensuring your components\n * update automatically when the locale changes.\n *\n * @param key - The unique key of the dictionary to retrieve.\n * @param locale - Optional locale to override the current context locale.\n * @returns The transformed dictionary content.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n * import { useIntlayer } from 'angular-intlayer';\n *\n * @Component({\n * standalone: true,\n * selector: 'app-my-component',\n * template: `<div>{{ content().myField.value }}</div>`,\n * })\n * export class MyComponent {\n * content = useIntlayer('my-dictionary-key');\n * }\n * ```\n */\nexport const useIntlayer = <\n const T extends DictionaryKeys,\n const L extends LocalesValues,\n>(\n key: T,\n locale?: LocalesValues\n): Signal<DeepTransformContent<DictionaryRegistryContent<T>>> => {\n const intlayer = inject<IntlayerProvider>(INTLAYER_TOKEN)!;\n\n /** which locale should we use right now? */\n const localeTarget = computed(() => locale ?? intlayer.locale());\n\n /** a *stable* reactive dictionary object */\n // @ts-ignore Type instantiation is excessively deep and possibly infinite\n const content = computed(\n () => getIntlayer<T, L>(key, localeTarget() as L) as any\n );\n\n return content; // all consumers keep full reactivity\n};\n"],"mappings":";;;;;;AAWA,MAAa,mBACX,QAEA,CAAC,CAAC,OACF,OAAO,QAAQ,YACf,OAAQ,IAAY,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BnC,MAAa,eAIX,KACA,WAC+D;CAC/D,MAAM,WAAW,OAAyB,cAAc;;CAGxD,MAAM,eAAe,eAAe,UAAU,SAAS,OAAO,CAAC;CAQ/D,OAJgB,eACR,YAAkB,KAAK,aAAa,CAAM,CAGrC;AACf"}
@@ -1,5 +1,5 @@
1
- import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorateMetadata.mjs";
2
- import { __decorate } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.mjs";
1
+ import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.132.0/helpers/decorateMetadata.mjs";
2
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.mjs";
3
3
  import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from "@angular/core";
4
4
 
5
5
  //#region src/editor/ContentSelector.component.ts
@@ -1,5 +1,5 @@
1
- import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorateMetadata.mjs";
2
- import { __decorate } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.mjs";
1
+ import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.132.0/helpers/decorateMetadata.mjs";
2
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.mjs";
3
3
  import { useEditor } from "./useEditor.mjs";
4
4
  import { Component } from "@angular/core";
5
5
 
@@ -1,11 +1,11 @@
1
1
  import { join } from "node:path";
2
- import { getConfiguration } from "@intlayer/config/node";
3
- import { getAlias, getUnusedNodeTypesAsync } from "@intlayer/config/utils";
4
2
  import { prepareIntlayer } from "@intlayer/chokidar/build";
5
3
  import { logConfigDetails } from "@intlayer/chokidar/cli";
6
4
  import { watch } from "@intlayer/chokidar/watcher";
7
5
  import { formatNodeTypeToEnvVar, getConfigEnvVars } from "@intlayer/config/envVars";
8
6
  import { getAppLogger } from "@intlayer/config/logger";
7
+ import { getConfiguration } from "@intlayer/config/node";
8
+ import { getAlias, getUnusedNodeTypesAsync } from "@intlayer/config/utils";
9
9
  import { getDictionaries } from "@intlayer/dictionaries-entry";
10
10
 
11
11
  //#region src/esbuild/plugin.ts
@@ -1 +1 @@
1
- {"version":3,"file":"getDictionary.mjs","names":["getDictionaryCore"],"sources":["../../src/getDictionary.ts"],"sourcesContent":["import { getDictionary as getDictionaryCore } from '@intlayer/core/interpreter';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport { getPlugins } from './plugins';\n\nexport const getDictionary = <\n T extends Dictionary,\n L extends LocalesValues = DeclaredLocales,\n>(\n dictionary: T,\n locale?: L\n) => getDictionaryCore<T, L>(dictionary, locale, getPlugins(locale));\n"],"mappings":";;;;AAQA,MAAa,iBAIX,YACA,WACGA,gBAAwB,YAAY,QAAQ,WAAW,MAAM,CAAC"}
1
+ {"version":3,"file":"getDictionary.mjs","names":["getDictionaryCore"],"sources":["../../src/getDictionary.ts"],"sourcesContent":["import { getDictionary as getDictionaryCore } from '@intlayer/core/interpreter';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport { getPlugins } from './plugins';\n\nexport const getDictionary = <\n const T extends Dictionary,\n const L extends LocalesValues = DeclaredLocales,\n>(\n dictionary: T,\n locale?: L\n) => getDictionaryCore<T, L>(dictionary, locale, getPlugins(locale));\n"],"mappings":";;;;AAQA,MAAa,iBAIX,YACA,WACGA,gBAAwB,YAAY,QAAQ,WAAW,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getIntlayer.mjs","names":["getIntlayerCore"],"sources":["../../src/getIntlayer.ts"],"sourcesContent":["import { getIntlayer as getIntlayerCore } from '@intlayer/core/interpreter';\nimport type {\n DeclaredLocales,\n DictionaryKeys,\n DictionaryRegistryContent,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport { type DeepTransformContent, getPlugins } from './plugins';\n\nexport const getIntlayer = <\n T extends DictionaryKeys,\n L extends LocalesValues = DeclaredLocales,\n>(\n key: T,\n locale?: L\n) =>\n getIntlayerCore<T, L>(\n key,\n locale,\n getPlugins(locale)\n ) as DeepTransformContent<DictionaryRegistryContent<T>>;\n"],"mappings":";;;;AASA,MAAa,eAIX,KACA,WAEAA,cACE,KACA,QACA,WAAW,MAAM,CACnB"}
1
+ {"version":3,"file":"getIntlayer.mjs","names":["getIntlayerCore"],"sources":["../../src/getIntlayer.ts"],"sourcesContent":["import { getIntlayer as getIntlayerCore } from '@intlayer/core/interpreter';\nimport type {\n DeclaredLocales,\n DictionaryKeys,\n DictionaryRegistryContent,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport { type DeepTransformContent, getPlugins } from './plugins';\n\nexport const getIntlayer = <\n const T extends DictionaryKeys,\n const L extends LocalesValues = DeclaredLocales,\n>(\n key: T,\n locale?: L\n) =>\n getIntlayerCore<T, L>(\n key,\n locale,\n getPlugins(locale)\n ) as DeepTransformContent<DictionaryRegistryContent<T>>;\n"],"mappings":";;;;AASA,MAAa,eAIX,KACA,WAEAA,cACE,KACA,QACA,WAAW,MAAM,CACnB"}
@@ -1,4 +1,4 @@
1
- import { __decorate } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.mjs";
1
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.mjs";
2
2
  import { Injectable, InjectionToken, inject } from "@angular/core";
3
3
 
4
4
  //#region src/html/installIntlayerHTML.ts
@@ -1,3 +1,3 @@
1
- import { INTLAYER_MARKDOWN_TOKEN, IntlayerMarkdownService, createIntlayerMarkdownProvider, useMarkdown } from "./installIntlayerMarkdown.mjs";
1
+ import { INTLAYER_MARKDOWN_TOKEN, IntlayerMarkdownService, compileMarkdown, createIntlayerMarkdownProvider, parseMarkdown, useMarkdown } from "./installIntlayerMarkdown.mjs";
2
2
 
3
- export { INTLAYER_MARKDOWN_TOKEN, IntlayerMarkdownService, createIntlayerMarkdownProvider, useMarkdown };
3
+ export { INTLAYER_MARKDOWN_TOKEN, IntlayerMarkdownService, compileMarkdown, createIntlayerMarkdownProvider, parseMarkdown, useMarkdown };
@@ -1,5 +1,5 @@
1
- import { __decorate } from "../_virtual/_@oxc-project_runtime@0.130.0/helpers/decorate.mjs";
2
- import { compile } from "@intlayer/core/markdown";
1
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.132.0/helpers/decorate.mjs";
2
+ import { compile, parseMarkdown as parseMarkdown$1, renderMarkdownAst } from "@intlayer/core/markdown";
3
3
  import { Injectable, InjectionToken, inject } from "@angular/core";
4
4
 
5
5
  //#region src/markdown/installIntlayerMarkdown.ts
@@ -36,10 +36,34 @@ const htmlRuntime = {
36
36
  cloneElement: (element, _props) => element,
37
37
  Fragment: Symbol("Fragment")
38
38
  };
39
+ const parseMarkdown = (markdown = "", options = {}) => {
40
+ const { components, namedCodesToUnicode, sanitizer, slugify, ...compilerOptions } = options;
41
+ return parseMarkdown$1(markdown, {
42
+ runtime: htmlRuntime,
43
+ components,
44
+ namedCodesToUnicode,
45
+ sanitizer,
46
+ slugify
47
+ }, compilerOptions);
48
+ };
49
+ const compileMarkdown = (input = "", options = {}) => {
50
+ if (typeof input === "string") return compile(input, {
51
+ ...options,
52
+ runtime: htmlRuntime
53
+ });
54
+ const { components, namedCodesToUnicode, sanitizer, slugify, ...compilerOptions } = options;
55
+ return renderMarkdownAst(input, {
56
+ runtime: htmlRuntime,
57
+ components,
58
+ namedCodesToUnicode,
59
+ sanitizer,
60
+ slugify
61
+ }, compilerOptions);
62
+ };
39
63
  /**
40
64
  * Default markdown renderer that converts markdown to HTML string
41
65
  */
42
- const defaultMarkdownRenderer = (markdown) => compile(markdown, { runtime: htmlRuntime });
66
+ const defaultMarkdownRenderer = (markdown) => compileMarkdown(markdown);
43
67
  /**
44
68
  * Create IntlayerMarkdown provider configuration
45
69
  */
@@ -50,7 +74,7 @@ const createIntlayerMarkdownProvider = (renderMarkdown = defaultMarkdownRenderer
50
74
  let IntlayerMarkdownService = class IntlayerMarkdownService {
51
75
  markdownProvider = inject(INTLAYER_MARKDOWN_TOKEN, { optional: true });
52
76
  renderMarkdown(markdown, overrides) {
53
- if (!this.markdownProvider) return markdown;
77
+ if (!this.markdownProvider) return typeof markdown === "string" ? markdown : "";
54
78
  return this.markdownProvider.renderMarkdown(markdown, overrides);
55
79
  }
56
80
  };
@@ -65,5 +89,5 @@ const useMarkdown = () => {
65
89
  };
66
90
 
67
91
  //#endregion
68
- export { INTLAYER_MARKDOWN_TOKEN, IntlayerMarkdownService, createIntlayerMarkdownProvider, htmlRuntime, useMarkdown };
92
+ export { INTLAYER_MARKDOWN_TOKEN, IntlayerMarkdownService, compileMarkdown, createIntlayerMarkdownProvider, htmlRuntime, parseMarkdown, useMarkdown };
69
93
  //# sourceMappingURL=installIntlayerMarkdown.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"installIntlayerMarkdown.mjs","names":[],"sources":["../../../src/markdown/installIntlayerMarkdown.ts"],"sourcesContent":["import {\n Injectable,\n InjectionToken,\n inject,\n type TemplateRef,\n} from '@angular/core';\nimport type { MarkdownRuntime } from '@intlayer/core/markdown';\nimport { compile } from '@intlayer/core/markdown';\n\nexport const INTLAYER_MARKDOWN_TOKEN =\n new InjectionToken<IntlayerMarkdownProvider>('intlayerMarkdown');\n\ntype RenderMarkdownOptions = {\n components?: any;\n wrapper?: string;\n options?: any;\n};\n\ntype RenderMarkdownFunction = (\n markdown: string,\n overrides?: any | RenderMarkdownOptions\n) => string | TemplateRef<any> | Promise<string | TemplateRef<any>>;\n\nexport type IntlayerMarkdownProvider = {\n renderMarkdown: RenderMarkdownFunction;\n};\n\n// Minimal runtime to generate HTML strings\nexport const htmlRuntime: MarkdownRuntime = {\n createElement: (tag: string | any, props: any, ...children: any[]) => {\n if (typeof tag !== 'string') {\n // Handle non-string tags if necessary (e.g. components), or fallback to div\n if (tag === htmlRuntime.Fragment) {\n return children.join('');\n }\n return '';\n }\n\n const attrs = props\n ? Object.entries(props)\n .map(([k, v]) => {\n if (k === 'key' || v === undefined || v === null) return '';\n const key = k === 'className' ? 'class' : k;\n return `${key}=\"${String(v).replace(/\"/g, '&quot;')}\"`;\n })\n .filter(Boolean)\n .join(' ')\n : '';\n\n const childrenStr = children.join('');\n const voidTags = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ];\n\n if (voidTags.includes(tag)) {\n return `<${tag} ${attrs} />`;\n }\n\n return `<${tag}${attrs ? ` ${attrs}` : ''}>${childrenStr}</${tag}>`;\n },\n cloneElement: (element: any, _props: any) => element, // Not really supported for strings\n Fragment: Symbol('Fragment'),\n};\n\n/**\n * Default markdown renderer that converts markdown to HTML string\n */\nconst defaultMarkdownRenderer: RenderMarkdownFunction = (markdown: string) =>\n compile(markdown, { runtime: htmlRuntime }) as string;\n\n/**\n * Create IntlayerMarkdown provider configuration\n */\nexport const createIntlayerMarkdownProvider = (\n renderMarkdown: RenderMarkdownFunction = defaultMarkdownRenderer\n) => ({\n provide: INTLAYER_MARKDOWN_TOKEN,\n useValue: {\n renderMarkdown,\n } as IntlayerMarkdownProvider,\n});\n\n/**\n * Injectable service for markdown rendering\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class IntlayerMarkdownService {\n private markdownProvider = inject(INTLAYER_MARKDOWN_TOKEN, {\n optional: true,\n });\n\n renderMarkdown(\n markdown: string,\n overrides?: any\n ): string | TemplateRef<any> | Promise<string | TemplateRef<any>> {\n if (!this.markdownProvider) {\n return markdown; // Fallback to returning markdown as is\n }\n return this.markdownProvider.renderMarkdown(markdown, overrides);\n }\n}\n\n/**\n * Function to inject markdown provider\n */\nexport const useMarkdown = (): IntlayerMarkdownProvider => {\n const markdownProvider = inject(INTLAYER_MARKDOWN_TOKEN, { optional: true });\n\n if (!markdownProvider) {\n return {\n renderMarkdown: defaultMarkdownRenderer,\n };\n }\n\n return markdownProvider;\n};\n"],"mappings":";;;;;AASA,MAAa,0BACX,IAAI,eAAyC,kBAAkB;AAkBjE,MAAa,cAA+B;CAC1C,gBAAgB,KAAmB,OAAY,GAAG,aAAoB;EACpE,IAAI,OAAO,QAAQ,UAAU;GAE3B,IAAI,QAAQ,YAAY,UACtB,OAAO,SAAS,KAAK,EAAE;GAEzB,OAAO;EACT;EAEA,MAAM,QAAQ,QACV,OAAO,QAAQ,KAAK,EACjB,KAAK,CAAC,GAAG,OAAO;GACf,IAAI,MAAM,SAAS,MAAM,UAAa,MAAM,MAAM,OAAO;GAEzD,OAAO,GADK,MAAM,cAAc,UAAU,EAC5B,IAAI,OAAO,CAAC,EAAE,QAAQ,MAAM,QAAQ,EAAE;EACtD,CAAC,EACA,OAAO,OAAO,EACd,KAAK,GAAG,IACX;EAEJ,MAAM,cAAc,SAAS,KAAK,EAAE;EAkBpC,IAAI;GAhBF;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EAGS,EAAE,SAAS,GAAG,GACvB,OAAO,IAAI,IAAI,GAAG,MAAM;EAG1B,OAAO,IAAI,MAAM,QAAQ,IAAI,UAAU,GAAG,GAAG,YAAY,IAAI,IAAI;CACnE;CACA,eAAe,SAAc,WAAgB;CAC7C,UAAU,OAAO,UAAU;AAC7B;;;;AAKA,MAAM,2BAAmD,aACvD,QAAQ,UAAU,EAAE,SAAS,YAAY,CAAC;;;;AAK5C,MAAa,kCACX,iBAAyC,6BACrC;CACJ,SAAS;CACT,UAAU,EACR,eACF;AACF;AAQO,oCAAM,wBAAwB;CACnC,AAAQ,mBAAmB,OAAO,yBAAyB,EACzD,UAAU,KACZ,CAAC;CAED,eACE,UACA,WACgE;EAChE,IAAI,CAAC,KAAK,kBACR,OAAO;EAET,OAAO,KAAK,iBAAiB,eAAe,UAAU,SAAS;CACjE;AACF;sCAjBC,WAAW,EACV,YAAY,OACd,CAAC;;;;AAoBD,MAAa,oBAA8C;CACzD,MAAM,mBAAmB,OAAO,yBAAyB,EAAE,UAAU,KAAK,CAAC;CAE3E,IAAI,CAAC,kBACH,OAAO,EACL,gBAAgB,wBAClB;CAGF,OAAO;AACT"}
1
+ {"version":3,"file":"installIntlayerMarkdown.mjs","names":["coreParseMarkdown","coreRenderMarkdownAst"],"sources":["../../../src/markdown/installIntlayerMarkdown.ts"],"sourcesContent":["import {\n Injectable,\n InjectionToken,\n inject,\n type TemplateRef,\n} from '@angular/core';\nimport type {\n MarkdownContext,\n MarkdownRuntime,\n ParsedMarkdown,\n} from '@intlayer/core/markdown';\nimport {\n compile,\n parseMarkdown as coreParseMarkdown,\n renderMarkdownAst as coreRenderMarkdownAst,\n} from '@intlayer/core/markdown';\n\nexport const INTLAYER_MARKDOWN_TOKEN =\n new InjectionToken<IntlayerMarkdownProvider>('intlayerMarkdown');\n\ntype RenderMarkdownOptions = {\n components?: any;\n wrapper?: string;\n options?: any;\n};\n\ntype RenderMarkdownFunction = (\n markdown: string | ParsedMarkdown,\n overrides?: any | RenderMarkdownOptions\n) => string | TemplateRef<any> | Promise<string | TemplateRef<any>>;\n\nexport type IntlayerMarkdownProvider = {\n renderMarkdown: RenderMarkdownFunction;\n};\n\n// Minimal runtime to generate HTML strings\nexport const htmlRuntime: MarkdownRuntime = {\n createElement: (tag: string | any, props: any, ...children: any[]) => {\n if (typeof tag !== 'string') {\n // Handle non-string tags if necessary (e.g. components), or fallback to div\n if (tag === htmlRuntime.Fragment) {\n return children.join('');\n }\n return '';\n }\n\n const attrs = props\n ? Object.entries(props)\n .map(([k, v]) => {\n if (k === 'key' || v === undefined || v === null) return '';\n const key = k === 'className' ? 'class' : k;\n return `${key}=\"${String(v).replace(/\"/g, '&quot;')}\"`;\n })\n .filter(Boolean)\n .join(' ')\n : '';\n\n const childrenStr = children.join('');\n const voidTags = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ];\n\n if (voidTags.includes(tag)) {\n return `<${tag} ${attrs} />`;\n }\n\n return `<${tag}${attrs ? ` ${attrs}` : ''}>${childrenStr}</${tag}>`;\n },\n cloneElement: (element: any, _props: any) => element, // Not really supported for strings\n Fragment: Symbol('Fragment'),\n};\n\nexport type { ParsedMarkdown };\n\nexport const parseMarkdown = (\n markdown: string = '',\n options: any = {}\n): ParsedMarkdown => {\n const {\n components,\n namedCodesToUnicode,\n sanitizer,\n slugify,\n ...compilerOptions\n } = options;\n\n const ctx: MarkdownContext<any> = {\n runtime: htmlRuntime,\n components,\n namedCodesToUnicode,\n sanitizer: sanitizer as any,\n slugify,\n };\n\n return coreParseMarkdown(markdown, ctx, compilerOptions);\n};\n\nexport const compileMarkdown = (\n input: string | ParsedMarkdown = '',\n options: any = {}\n): string => {\n if (typeof input === 'string') {\n return compile(input, { ...options, runtime: htmlRuntime }) as string;\n }\n\n const {\n components,\n namedCodesToUnicode,\n sanitizer,\n slugify,\n ...compilerOptions\n } = options;\n\n const ctx: MarkdownContext<any> = {\n runtime: htmlRuntime,\n components,\n namedCodesToUnicode,\n sanitizer: sanitizer as any,\n slugify,\n };\n\n return coreRenderMarkdownAst(input, ctx, compilerOptions) as string;\n};\n\n/**\n * Default markdown renderer that converts markdown to HTML string\n */\nconst defaultMarkdownRenderer: RenderMarkdownFunction = (\n markdown: string | ParsedMarkdown\n) => compileMarkdown(markdown) as string;\n\n/**\n * Create IntlayerMarkdown provider configuration\n */\nexport const createIntlayerMarkdownProvider = (\n renderMarkdown: RenderMarkdownFunction = defaultMarkdownRenderer\n) => ({\n provide: INTLAYER_MARKDOWN_TOKEN,\n useValue: {\n renderMarkdown,\n } as IntlayerMarkdownProvider,\n});\n\n/**\n * Injectable service for markdown rendering\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class IntlayerMarkdownService {\n private markdownProvider = inject(INTLAYER_MARKDOWN_TOKEN, {\n optional: true,\n });\n\n renderMarkdown(\n markdown: string | ParsedMarkdown,\n overrides?: any\n ): string | TemplateRef<any> | Promise<string | TemplateRef<any>> {\n if (!this.markdownProvider) {\n return typeof markdown === 'string' ? markdown : ''; // Fallback to returning markdown as is\n }\n return this.markdownProvider.renderMarkdown(markdown, overrides);\n }\n}\n\n/**\n * Function to inject markdown provider\n */\nexport const useMarkdown = (): IntlayerMarkdownProvider => {\n const markdownProvider = inject(INTLAYER_MARKDOWN_TOKEN, { optional: true });\n\n if (!markdownProvider) {\n return {\n renderMarkdown: defaultMarkdownRenderer,\n };\n }\n\n return markdownProvider;\n};\n"],"mappings":";;;;;AAiBA,MAAa,0BACX,IAAI,eAAyC,kBAAkB;AAkBjE,MAAa,cAA+B;CAC1C,gBAAgB,KAAmB,OAAY,GAAG,aAAoB;EACpE,IAAI,OAAO,QAAQ,UAAU;GAE3B,IAAI,QAAQ,YAAY,UACtB,OAAO,SAAS,KAAK,EAAE;GAEzB,OAAO;EACT;EAEA,MAAM,QAAQ,QACV,OAAO,QAAQ,KAAK,EACjB,KAAK,CAAC,GAAG,OAAO;GACf,IAAI,MAAM,SAAS,MAAM,UAAa,MAAM,MAAM,OAAO;GAEzD,OAAO,GADK,MAAM,cAAc,UAAU,EAC5B,IAAI,OAAO,CAAC,EAAE,QAAQ,MAAM,QAAQ,EAAE;EACtD,CAAC,EACA,OAAO,OAAO,EACd,KAAK,GAAG,IACX;EAEJ,MAAM,cAAc,SAAS,KAAK,EAAE;EAkBpC,IAAI;GAhBF;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EAGS,EAAE,SAAS,GAAG,GACvB,OAAO,IAAI,IAAI,GAAG,MAAM;EAG1B,OAAO,IAAI,MAAM,QAAQ,IAAI,UAAU,GAAG,GAAG,YAAY,IAAI,IAAI;CACnE;CACA,eAAe,SAAc,WAAgB;CAC7C,UAAU,OAAO,UAAU;AAC7B;AAIA,MAAa,iBACX,WAAmB,IACnB,UAAe,CAAC,MACG;CACnB,MAAM,EACJ,YACA,qBACA,WACA,SACA,GAAG,oBACD;CAUJ,OAAOA,gBAAkB,UAAU;EAPjC,SAAS;EACT;EACA;EACW;EACX;CAGmC,GAAG,eAAe;AACzD;AAEA,MAAa,mBACX,QAAiC,IACjC,UAAe,CAAC,MACL;CACX,IAAI,OAAO,UAAU,UACnB,OAAO,QAAQ,OAAO;EAAE,GAAG;EAAS,SAAS;CAAY,CAAC;CAG5D,MAAM,EACJ,YACA,qBACA,WACA,SACA,GAAG,oBACD;CAUJ,OAAOC,kBAAsB,OAAO;EAPlC,SAAS;EACT;EACA;EACW;EACX;CAGoC,GAAG,eAAe;AAC1D;;;;AAKA,MAAM,2BACJ,aACG,gBAAgB,QAAQ;;;;AAK7B,MAAa,kCACX,iBAAyC,6BACrC;CACJ,SAAS;CACT,UAAU,EACR,eACF;AACF;AAQO,oCAAM,wBAAwB;CACnC,AAAQ,mBAAmB,OAAO,yBAAyB,EACzD,UAAU,KACZ,CAAC;CAED,eACE,UACA,WACgE;EAChE,IAAI,CAAC,KAAK,kBACR,OAAO,OAAO,aAAa,WAAW,WAAW;EAEnD,OAAO,KAAK,iBAAiB,eAAe,UAAU,SAAS;CACjE;AACF;sCAjBC,WAAW,EACV,YAAY,OACd,CAAC;;;;AAoBD,MAAa,oBAA8C;CACzD,MAAM,mBAAmB,OAAO,yBAAyB,EAAE,UAAU,KAAK,CAAC;CAE3E,IAAI,CAAC,kBACH,OAAO,EACL,gBAAgB,wBAClB;CAGF,OAAO;AACT"}
@@ -4,7 +4,7 @@ import { LocalesValues } from "@intlayer/types/module_augmentation";
4
4
  import { Dictionary } from "@intlayer/types/dictionary";
5
5
 
6
6
  //#region src/client/useDictionary.d.ts
7
- declare const useDictionary: <T extends Dictionary>(dictionary: T, locale?: LocalesValues) => Signal<DeepTransformContent<T["content"]>>;
7
+ declare const useDictionary: <const T extends Dictionary>(dictionary: T, locale?: LocalesValues) => Signal<DeepTransformContent<T["content"]>>;
8
8
  //#endregion
9
9
  export { useDictionary };
10
10
  //# sourceMappingURL=useDictionary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDictionary.d.ts","names":[],"sources":["../../../src/client/useDictionary.ts"],"mappings":";;;;;;cAOa,aAAA,aAA2B,UAAA,EACtC,UAAA,EAAY,CAAA,EACZ,MAAA,GAAS,aAAA,KACR,MAAA,CAAO,oBAAA,CAAqB,CAAA"}
1
+ {"version":3,"file":"useDictionary.d.ts","names":[],"sources":["../../../src/client/useDictionary.ts"],"mappings":";;;;;;cAOa,aAAA,mBAAiC,UAAA,EAC5C,UAAA,EAAY,CAAA,EACZ,MAAA,GAAS,aAAA,KACR,MAAA,CAAO,oBAAA,CAAqB,CAAA"}
@@ -7,7 +7,7 @@ import { Dictionary } from "@intlayer/types/dictionary";
7
7
  *
8
8
  * If the locale is not provided, it will use the locale from the client context
9
9
  */
10
- declare const useDictionaryAsync: <T extends Dictionary>(dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>, locale?: LocalesValues) => Promise<import("@angular/core").Signal<any>>;
10
+ declare const useDictionaryAsync: <const T extends Dictionary>(dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>, locale?: LocalesValues) => Promise<import("@angular/core").Signal<any>>;
11
11
  //#endregion
12
12
  export { useDictionaryAsync };
13
13
  //# sourceMappingURL=useDictionaryAsync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDictionaryAsync.d.ts","names":[],"sources":["../../../src/client/useDictionaryAsync.ts"],"mappings":";;;;;;AAiBA;;;cAAa,kBAAA,aAAsC,UAAA,EACjD,iBAAA,EAAmB,mBAAA,OAA0B,OAAA,CAAQ,CAAA,IACrD,MAAA,GAAS,aAAA,KAAa,OAAA,yBAAA,MAAA"}
1
+ {"version":3,"file":"useDictionaryAsync.d.ts","names":[],"sources":["../../../src/client/useDictionaryAsync.ts"],"mappings":";;;;;;AAiBA;;;cAAa,kBAAA,mBAA4C,UAAA,EACvD,iBAAA,EAAmB,mBAAA,OAA0B,OAAA,CAAQ,CAAA,IACrD,MAAA,GAAS,aAAA,KAAa,OAAA,yBAAA,MAAA"}
@@ -1,4 +1,5 @@
1
1
  import { IInterpreterPluginState } from "../plugins.js";
2
+ import { Locale } from "../intlayer/dist/types/index.js";
2
3
  import { DictionaryKeys, LocalesValues, StrictModeLocaleMap } from "@intlayer/types/module_augmentation";
3
4
  import { Dictionary } from "@intlayer/types/dictionary";
4
5
 
@@ -8,7 +9,7 @@ import { Dictionary } from "@intlayer/types/dictionary";
8
9
  *
9
10
  * If the locale is not provided, it will use the locale from the client context
10
11
  */
11
- declare const useDictionaryDynamic: <T extends Dictionary, K extends DictionaryKeys>(dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>, key: K, locale?: LocalesValues) => import("@angular/core").Signal<import("@intlayer/core/interpreter").DeepTransformContent<T["content"], IInterpreterPluginState, import("@intlayer/types").Locale>>;
12
+ declare const useDictionaryDynamic: <const T extends Dictionary, const K extends DictionaryKeys>(dictionaryPromise: StrictModeLocaleMap<() => Promise<T>>, key: K, locale?: LocalesValues) => import("@angular/core").Signal<import("@intlayer/core/interpreter").DeepTransformContent<T["content"], IInterpreterPluginState, Locale>>;
12
13
  //#endregion
13
14
  export { useDictionaryDynamic };
14
15
  //# sourceMappingURL=useDictionaryDynamic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDictionaryDynamic.d.ts","names":[],"sources":["../../../src/client/useDictionaryDynamic.ts"],"mappings":";;;;;;;;;AAmBA;cAAa,oBAAA,aACD,UAAA,YACA,cAAA,EAEV,iBAAA,EAAmB,mBAAA,OAA0B,OAAA,CAAQ,CAAA,IACrD,GAAA,EAAK,CAAA,EACL,MAAA,GAAS,aAAA,6BAAa,MAAA,sCAAA,oBAAA,CAAA,CAAA,aAAA,uBAAA,4BAAA,MAAA"}
1
+ {"version":3,"file":"useDictionaryDynamic.d.ts","names":[],"sources":["../../../src/client/useDictionaryDynamic.ts"],"mappings":";;;;;;;;;;;cAmBa,oBAAA,mBACK,UAAA,kBACA,cAAA,EAEhB,iBAAA,EAAmB,mBAAA,OAA0B,OAAA,CAAQ,CAAA,IACrD,GAAA,EAAK,CAAA,EACL,MAAA,GAAS,aAAA,6BAAa,MAAA,sCAAA,oBAAA,CAAA,CAAA,aAAA,uBAAA,EAAA,MAAA"}
@@ -32,7 +32,7 @@ declare const isUpdatableNode: (val: unknown) => val is {
32
32
  * }
33
33
  * ```
34
34
  */
35
- declare const useIntlayer: <T extends DictionaryKeys, L extends LocalesValues>(key: T, locale?: LocalesValues) => Signal<DeepTransformContent<DictionaryRegistryContent<T>>>;
35
+ declare const useIntlayer: <const T extends DictionaryKeys, const L extends LocalesValues>(key: T, locale?: LocalesValues) => Signal<DeepTransformContent<DictionaryRegistryContent<T>>>;
36
36
  //#endregion
37
37
  export { isUpdatableNode, useIntlayer };
38
38
  //# sourceMappingURL=useIntlayer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIntlayer.d.ts","names":[],"sources":["../../../src/client/useIntlayer.ts"],"mappings":";;;;;;cAWa,eAAA,GACX,GAAA,cACC,GAAA;EAAS,QAAA,GAAW,CAAA;AAAA;;;;;;;;AAAU;AA8BjC;;;;;;;;;;;;;;;;;cAAa,WAAA,aAAyB,cAAA,YAA0B,aAAA,EAC9D,GAAA,EAAK,CAAA,EACL,MAAA,GAAS,aAAA,KACR,MAAA,CAAO,oBAAA,CAAqB,yBAAA,CAA0B,CAAA"}
1
+ {"version":3,"file":"useIntlayer.d.ts","names":[],"sources":["../../../src/client/useIntlayer.ts"],"mappings":";;;;;;cAWa,eAAA,GACX,GAAA,cACC,GAAA;EAAS,QAAA,GAAW,CAAA;AAAA;;;;;;;;AAAU;AA8BjC;;;;;;;;;;;;;;;;;cAAa,WAAA,mBACK,cAAA,kBACA,aAAA,EAEhB,GAAA,EAAK,CAAA,EACL,MAAA,GAAS,aAAA,KACR,MAAA,CAAO,oBAAA,CAAqB,yBAAA,CAA0B,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { Locale } from "../intlayer/dist/types/index.js";
1
2
  import { LocalesValues } from "@intlayer/types/module_augmentation";
2
3
 
3
4
  //#region src/client/useLocaleStorage.d.ts
@@ -7,13 +8,13 @@ import { LocalesValues } from "@intlayer/types/module_augmentation";
7
8
  /**
8
9
  * Get the locale cookie
9
10
  */
10
- declare const localeInStorage: import("@intlayer/types").Locale;
11
+ declare const localeInStorage: Locale;
11
12
  /**
12
13
  * @deprecated Use localeInStorage instead
13
14
  *
14
15
  * Get the locale cookie
15
16
  */
16
- declare const localeCookie: import("@intlayer/types").Locale;
17
+ declare const localeCookie: Locale;
17
18
  /**
18
19
  * Set the locale cookie
19
20
  */
@@ -28,7 +29,7 @@ declare const setLocaleCookie: (locale: LocalesValues, isCookieEnabled: boolean)
28
29
  * Hook that provides the locale storage and a function to set it
29
30
  */
30
31
  declare const useLocaleStorage: (isCookieEnabled?: boolean) => {
31
- getLocale: () => import("@intlayer/types").Locale;
32
+ getLocale: () => Locale;
32
33
  setLocale: (locale: LocalesValues) => void;
33
34
  };
34
35
  /**
@@ -39,7 +40,7 @@ declare const useLocaleStorage: (isCookieEnabled?: boolean) => {
39
40
  * Hook that provides the locale cookie and a function to set it
40
41
  */
41
42
  declare const useLocaleCookie: (isCookieEnabled?: boolean) => {
42
- localeCookie: import("@intlayer/types").Locale;
43
+ localeCookie: Locale;
43
44
  setLocaleCookie: (locale: LocalesValues) => void;
44
45
  };
45
46
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"useLocaleStorage.d.ts","names":[],"sources":["../../../src/client/useLocaleStorage.ts"],"mappings":";;;;;AAcA;;;;cAAa,eAAA,4BAAe,MAAmD;AAM/E;;;;AAA2C;AAA3C,cAAa,YAAA,4BAAY,MAAkB;;;;cAK9B,kBAAA,GACX,MAAA,EAAQ,aAAa,EACrB,eAAA;;;;AAAwB;AAY1B;cAAa,eAAA,GAAe,MAAA,EAblB,aAAa,EAAA,eAAA;;;;cAkBV,gBAAA,GAAoB,eAAA;;sBAI7B,aAAA;AAAA;AAJJ;;;;;;;AAAA,cAaa,eAAA,GAAmB,eAAA;;4BAO/B,aAAA;AAAA"}
1
+ {"version":3,"file":"useLocaleStorage.d.ts","names":[],"sources":["../../../src/client/useLocaleStorage.ts"],"mappings":";;;;;;;AAcA;;;AAAA,cAAa,eAAA,EAAkE,MAAA;AAAA;AAM/E;;;;AAN+E,cAMlE,YAAA,EAA8B,MAAA;AAK3C;;;AAAA,cAAa,kBAAA,GACX,MAAA,EAAQ,aAAa,EACrB,eAAA;;;;;AAAwB;cAYb,eAAA,GAAe,MAAA,EAblB,aAAa,EAAA,eAAA;;;;cAkBV,gBAAA,GAAoB,eAAA;mBAI7B,MAAA;sBAAA,aAAA;AAAA;AArBsB;AAiB1B;;;;;;AAjB0B,cA8Bb,eAAA,GAAmB,eAAA;gBAO/B,MAAA;4BAAA,aAAA;AAAA"}
@@ -1,6 +1,8 @@
1
+ import { LocalesValues } from "../intlayer/dist/types/index.js";
2
+
1
3
  //#region src/format/useCompact.d.ts
2
4
  declare const useCompact: () => import("@angular/core").Signal<(value: string | number, options?: Intl.NumberFormatOptions & {
3
- locale?: import("@intlayer/types").LocalesValues;
5
+ locale?: LocalesValues;
4
6
  }) => string>;
5
7
  //#endregion
6
8
  export { useCompact };
@@ -1 +1 @@
1
- {"version":3,"file":"useCompact.d.ts","names":[],"sources":["../../../src/format/useCompact.ts"],"mappings":";cAIa,UAAA,gCAAU,MAAA,EAAA,KAAA,mBAAA,OAAA,GAAA,IAAA,CAAA,mBAAA"}
1
+ {"version":3,"file":"useCompact.d.ts","names":[],"sources":["../../../src/format/useCompact.ts"],"mappings":";;;cAIa,UAAA,gCAAU,MAAA,EAAA,KAAA,mBAAA,OAAA,GAAA,IAAA,CAAA,mBAAA;WAAA,aAAA;AAAA"}
@@ -1,6 +1,8 @@
1
+ import { LocalesValues } from "../intlayer/dist/types/index.js";
2
+
1
3
  //#region src/format/useCurrency.d.ts
2
4
  declare const useCurrency: () => import("@angular/core").Signal<(value: string | number, options?: Intl.NumberFormatOptions & {
3
- locale?: import("@intlayer/types").LocalesValues;
5
+ locale?: LocalesValues;
4
6
  }) => string>;
5
7
  //#endregion
6
8
  export { useCurrency };
@@ -1 +1 @@
1
- {"version":3,"file":"useCurrency.d.ts","names":[],"sources":["../../../src/format/useCurrency.ts"],"mappings":";cAIa,WAAA,gCAAW,MAAA,EAAA,KAAA,mBAAA,OAAA,GAAA,IAAA,CAAA,mBAAA"}
1
+ {"version":3,"file":"useCurrency.d.ts","names":[],"sources":["../../../src/format/useCurrency.ts"],"mappings":";;;cAIa,WAAA,gCAAW,MAAA,EAAA,KAAA,mBAAA,OAAA,GAAA,IAAA,CAAA,mBAAA;WAAA,aAAA;AAAA"}
@@ -1,9 +1,11 @@
1
+ import { LocalesValues } from "../intlayer/dist/types/index.js";
2
+
1
3
  //#region src/format/useDate.d.ts
2
4
  /**
3
5
  * Angular client hook that provides a localized date/time formatter.
4
6
  */
5
7
  declare const useDate: () => import("@angular/core").Signal<(date: string | number | Date, options?: (Intl.DateTimeFormatOptions & {
6
- locale?: import("@intlayer/types").LocalesValues;
8
+ locale?: LocalesValues;
7
9
  }) | import("@intlayer/core/formatters").DateTimePreset) => string>;
8
10
  //#endregion
9
11
  export { useDate };
@@ -1 +1 @@
1
- {"version":3,"file":"useDate.d.ts","names":[],"sources":["../../../src/format/useDate.ts"],"mappings":";;AAOA;;cAAa,OAAA,gCAAO,MAAA,EAAA,IAAA,oBAAA,IAAA,EAAA,OAAA,IAAA,IAAA,CAAA,qBAAA"}
1
+ {"version":3,"file":"useDate.d.ts","names":[],"sources":["../../../src/format/useDate.ts"],"mappings":";;;;;;cAOa,OAAA,gCAAO,MAAA,EAAA,IAAA,oBAAA,IAAA,EAAA,OAAA,IAAA,IAAA,CAAA,qBAAA;WAAA,aAAA;AAAA"}
@@ -1,10 +1,12 @@
1
+ import { LocalesValues } from "../intlayer/dist/types/index.js";
2
+
1
3
  //#region src/format/useList.d.ts
2
4
  declare const useList: () => import("@angular/core").Signal<(values: (string | number)[], options?: {
3
5
  localeMatcher?: "lookup" | "best fit";
4
6
  type?: "conjunction" | "disjunction" | "unit";
5
7
  style?: "long" | "short" | "narrow";
6
8
  } & {
7
- locale?: import("@intlayer/types").LocalesValues;
9
+ locale?: LocalesValues;
8
10
  }) => string>;
9
11
  //#endregion
10
12
  export { useList };
@@ -1 +1 @@
1
- {"version":3,"file":"useList.d.ts","names":[],"sources":["../../../src/format/useList.ts"],"mappings":";cAIa,OAAA,gCAAO,MAAA,EAAA,MAAA,uBAAA,OAAA"}
1
+ {"version":3,"file":"useList.d.ts","names":[],"sources":["../../../src/format/useList.ts"],"mappings":";;;cAIa,OAAA,gCAAO,MAAA,EAAA,MAAA,uBAAA,OAAA;;;;;WAWnB,aAAA;AAAA"}
@@ -1,9 +1,11 @@
1
+ import { LocalesValues } from "../intlayer/dist/types/index.js";
2
+
1
3
  //#region src/format/useNumber.d.ts
2
4
  /**
3
5
  * Angular client hook that provides a localized number formatter.
4
6
  */
5
7
  declare const useNumber: () => import("@angular/core").Signal<(value: string | number, args_1?: Intl.NumberFormatOptions & {
6
- locale?: import("@intlayer/types").LocalesValues;
8
+ locale?: LocalesValues;
7
9
  }) => string>;
8
10
  //#endregion
9
11
  export { useNumber };
@@ -1 +1 @@
1
- {"version":3,"file":"useNumber.d.ts","names":[],"sources":["../../../src/format/useNumber.ts"],"mappings":";;AAOA;;cAAa,SAAA,gCAAS,MAAA,EAAA,KAAA,mBAAA,MAAA,GAAA,IAAA,CAAA,mBAAA"}
1
+ {"version":3,"file":"useNumber.d.ts","names":[],"sources":["../../../src/format/useNumber.ts"],"mappings":";;;;;;cAOa,SAAA,gCAAS,MAAA,EAAA,KAAA,mBAAA,MAAA,GAAA,IAAA,CAAA,mBAAA;WAAA,aAAA;AAAA"}
@@ -1,6 +1,8 @@
1
+ import { LocalesValues } from "../intlayer/dist/types/index.js";
2
+
1
3
  //#region src/format/usePercentage.d.ts
2
4
  declare const usePercentage: () => import("@angular/core").Signal<(value: string | number, args_1?: Intl.NumberFormatOptions & {
3
- locale?: import("@intlayer/types").LocalesValues;
5
+ locale?: LocalesValues;
4
6
  }) => string>;
5
7
  //#endregion
6
8
  export { usePercentage };
@@ -1 +1 @@
1
- {"version":3,"file":"usePercentage.d.ts","names":[],"sources":["../../../src/format/usePercentage.ts"],"mappings":";cAIa,aAAA,gCAAa,MAAA,EAAA,KAAA,mBAAA,MAAA,GAAA,IAAA,CAAA,mBAAA"}
1
+ {"version":3,"file":"usePercentage.d.ts","names":[],"sources":["../../../src/format/usePercentage.ts"],"mappings":";;;cAIa,aAAA,gCAAa,MAAA,EAAA,KAAA,mBAAA,MAAA,GAAA,IAAA,CAAA,mBAAA;WAAA,aAAA;AAAA"}
@@ -1,6 +1,8 @@
1
+ import { LocalesValues } from "../intlayer/dist/types/index.js";
2
+
1
3
  //#region src/format/useRelativeTime.d.ts
2
4
  declare const useRelativeTime: () => import("@angular/core").Signal<(from: string | number | Date, to?: string | number | Date, options?: Intl.RelativeTimeFormatOptions & {
3
- locale?: import("@intlayer/types").LocalesValues;
5
+ locale?: LocalesValues;
4
6
  unit?: Intl.RelativeTimeFormatUnit;
5
7
  }) => string>;
6
8
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"useRelativeTime.d.ts","names":[],"sources":["../../../src/format/useRelativeTime.ts"],"mappings":";cAIa,eAAA,gCAAe,MAAA,EAAA,IAAA,oBAAA,IAAA,EAAA,EAAA,qBAAA,IAAA,EAAA,OAAA,GAAA,IAAA,CAAA,yBAAA"}
1
+ {"version":3,"file":"useRelativeTime.d.ts","names":[],"sources":["../../../src/format/useRelativeTime.ts"],"mappings":";;;cAIa,eAAA,gCAAe,MAAA,EAAA,IAAA,oBAAA,IAAA,EAAA,EAAA,qBAAA,IAAA,EAAA,OAAA,GAAA,IAAA,CAAA,yBAAA;WAAA,aAAA"}
@@ -1,6 +1,8 @@
1
+ import { LocalesValues } from "../intlayer/dist/types/index.js";
2
+
1
3
  //#region src/format/useUnit.d.ts
2
4
  declare const useUnit: () => import("@angular/core").Signal<(value: string | number, options?: Intl.NumberFormatOptions & {
3
- locale?: import("@intlayer/types").LocalesValues;
5
+ locale?: LocalesValues;
4
6
  }) => string>;
5
7
  //#endregion
6
8
  export { useUnit };