@burdenoff/microfe-assethandler 2026.826.14 → 2026.826.15

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.
@@ -1 +1 @@
1
- {"version":3,"file":"useCopy.d.ts","sourceRoot":"","sources":["../../../src/assethandler/hooks/useCopy.ts"],"names":[],"mappings":"AAKA,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,KAAK,MAAM,CAAC;AAK3F;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAiChC"}
1
+ {"version":3,"file":"useCopy.d.ts","sourceRoot":"","sources":["../../../src/assethandler/hooks/useCopy.ts"],"names":[],"mappings":"AAKA,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,KAAK,MAAM,CAAC;AAM3F;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAwChC"}
@@ -2,32 +2,34 @@ import { useAssetHandler as e, useAssetTerminology as t } from "../providers/Ass
2
2
  import { useCallback as n } from "react";
3
3
  import { useI18n as r } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
4
4
  //#region src/assethandler/hooks/useCopy.ts
5
- var i = /\{\{(asset|assets|assetLower|assetsLower)\}\}/g;
6
- function a() {
7
- let { t: a } = r(), { copy: o } = e(), { asset: s, assets: c } = t();
5
+ var i = /\{\{(asset|assets|assetLower|assetsLower)\}\}/g, a = /\{\{([^{}]+)\}\}/g;
6
+ function o() {
7
+ let { t: o } = r(), { copy: s } = e(), { asset: c, assets: l } = t();
8
8
  return n((e, t, n) => {
9
- let r = o?.[e];
9
+ let r = s?.[e];
10
10
  if (r === void 0) {
11
- let i = a(e, n);
11
+ let i = o(e, n);
12
12
  r = i === e ? t : i;
13
13
  }
14
- return r.includes("{{") ? r.replace(i, (e, t) => {
14
+ if (!r.includes("{{")) return r;
15
+ let u = r.replace(i, (e, t) => {
15
16
  switch (t) {
16
- case "asset": return s;
17
- case "assets": return c;
18
- case "assetLower": return s.toLowerCase();
19
- case "assetsLower": return c.toLowerCase();
17
+ case "asset": return c;
18
+ case "assets": return l;
19
+ case "assetLower": return c.toLowerCase();
20
+ case "assetsLower": return l.toLowerCase();
20
21
  default: return e;
21
22
  }
22
- }) : r;
23
+ });
24
+ return !n || !u.includes("{{") ? u : u.replace(a, (e, t) => Object.prototype.hasOwnProperty.call(n, t) ? String(n[t]) : e);
23
25
  }, [
24
- o,
25
- a,
26
26
  s,
27
- c
27
+ o,
28
+ c,
29
+ l
28
30
  ]);
29
31
  }
30
32
  //#endregion
31
- export { a as useCopy };
33
+ export { o as useCopy };
32
34
 
33
35
  //# sourceMappingURL=useCopy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCopy.js","names":[],"sources":["../../../src/assethandler/hooks/useCopy.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nimport { useAssetHandler, useAssetTerminology } from '../providers/AssetHandlerProvider';\n\ntype TranslationParams = Record<string, string | number>;\n\n/**\n * Resolves a single piece of module copy.\n *\n * @param key i18n key, e.g. \"assethandler.dashboard.metrics.totalAssets\".\n * @param fallback The module's own English copy, used when neither the host nor\n * the platform provides a string. May contain terminology\n * tokens (see {@link useCopy}).\n */\nexport type CopyFn = (key: string, fallback: string, params?: TranslationParams) => string;\n\n/** Terminology tokens substituted into resolved copy. */\nconst TOKEN_PATTERN = /\\{\\{(asset|assets|assetLower|assetsLower)\\}\\}/g;\n\n/**\n * Copy resolver for the module, in precedence order:\n *\n * 1. the host's `copy[key]` override (the `copy` prop on `AssetHandlerRoot`),\n * 2. the platform translation for `key`, when the locale provides one,\n * 3. the module's own default fallback.\n *\n * The resolved string then has its `{{asset}}` / `{{assets}}` /\n * `{{assetLower}}` / `{{assetsLower}}` tokens substituted with the terminology\n * from the `terminology` prop.\n *\n * With no `copy` and no `terminology` props the tokens resolve to\n * \"Asset\"/\"Assets\"/\"asset\"/\"assets\", so output is identical to the module's\n * previous `tWithFallback(t, key, fallback)` behaviour.\n */\nexport function useCopy(): CopyFn {\n const { t } = useI18n();\n const { copy } = useAssetHandler();\n const { asset, assets } = useAssetTerminology();\n\n return useCallback(\n (key: string, fallback: string, params?: TranslationParams): string => {\n // 1. host override, 2. platform translation, 3. module fallback.\n let resolved = copy?.[key];\n if (resolved === undefined) {\n const translated = t(key, params);\n resolved = translated === key ? fallback : translated;\n }\n\n if (!resolved.includes('{{')) return resolved;\n\n return resolved.replace(TOKEN_PATTERN, (_match, token: string) => {\n switch (token) {\n case 'asset':\n return asset;\n case 'assets':\n return assets;\n case 'assetLower':\n return asset.toLowerCase();\n case 'assetsLower':\n return assets.toLowerCase();\n default:\n return _match;\n }\n });\n },\n [copy, t, asset, assets]\n );\n}\n"],"mappings":";;;;AAkBA,IAAM,IAAgB;AAiBtB,SAAgB,IAAkB;CAChC,IAAM,EAAE,SAAM,EAAQ,GAChB,EAAE,YAAS,EAAgB,GAC3B,EAAE,UAAO,cAAW,EAAoB;CAE9C,OAAO,GACJ,GAAa,GAAkB,MAAuC;EAErE,IAAI,IAAW,IAAO;EACtB,IAAI,MAAa,KAAA,GAAW;GAC1B,IAAM,IAAa,EAAE,GAAK,CAAM;GAChC,IAAW,MAAe,IAAM,IAAW;EAC7C;EAIA,OAFK,EAAS,SAAS,IAAI,IAEpB,EAAS,QAAQ,IAAgB,GAAQ,MAAkB;GAChE,QAAQ,GAAR;IACE,KAAK,SACH,OAAO;IACT,KAAK,UACH,OAAO;IACT,KAAK,cACH,OAAO,EAAM,YAAY;IAC3B,KAAK,eACH,OAAO,EAAO,YAAY;IAC5B,SACE,OAAO;GACX;EACF,CAAC,IAfoC;CAgBvC,GACA;EAAC;EAAM;EAAG;EAAO;CAAM,CACzB;AACF"}
1
+ {"version":3,"file":"useCopy.js","names":[],"sources":["../../../src/assethandler/hooks/useCopy.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nimport { useAssetHandler, useAssetTerminology } from '../providers/AssetHandlerProvider';\n\ntype TranslationParams = Record<string, string | number>;\n\n/**\n * Resolves a single piece of module copy.\n *\n * @param key i18n key, e.g. \"assethandler.dashboard.metrics.totalAssets\".\n * @param fallback The module's own English copy, used when neither the host nor\n * the platform provides a string. May contain terminology\n * tokens (see {@link useCopy}).\n */\nexport type CopyFn = (key: string, fallback: string, params?: TranslationParams) => string;\n\n/** Terminology tokens substituted into resolved copy. */\nconst TOKEN_PATTERN = /\\{\\{(asset|assets|assetLower|assetsLower)\\}\\}/g;\nconst PARAM_PATTERN = /\\{\\{([^{}]+)\\}\\}/g;\n\n/**\n * Copy resolver for the module, in precedence order:\n *\n * 1. the host's `copy[key]` override (the `copy` prop on `AssetHandlerRoot`),\n * 2. the platform translation for `key`, when the locale provides one,\n * 3. the module's own default fallback.\n *\n * The resolved string then has its `{{asset}}` / `{{assets}}` /\n * `{{assetLower}}` / `{{assetsLower}}` tokens substituted with the terminology\n * from the `terminology` prop.\n *\n * With no `copy` and no `terminology` props the tokens resolve to\n * \"Asset\"/\"Assets\"/\"asset\"/\"assets\", so output is identical to the module's\n * previous `tWithFallback(t, key, fallback)` behaviour.\n */\nexport function useCopy(): CopyFn {\n const { t } = useI18n();\n const { copy } = useAssetHandler();\n const { asset, assets } = useAssetTerminology();\n\n return useCallback(\n (key: string, fallback: string, params?: TranslationParams): string => {\n // 1. host override, 2. platform translation, 3. module fallback.\n let resolved = copy?.[key];\n if (resolved === undefined) {\n const translated = t(key, params);\n resolved = translated === key ? fallback : translated;\n }\n\n if (!resolved.includes('{{')) return resolved;\n\n const withTerminology = resolved.replace(TOKEN_PATTERN, (_match, token: string) => {\n switch (token) {\n case 'asset':\n return asset;\n case 'assets':\n return assets;\n case 'assetLower':\n return asset.toLowerCase();\n case 'assetsLower':\n return assets.toLowerCase();\n default:\n return _match;\n }\n });\n\n if (!params || !withTerminology.includes('{{')) return withTerminology;\n\n return withTerminology.replace(PARAM_PATTERN, (match, token: string) => {\n if (!Object.prototype.hasOwnProperty.call(params, token)) return match;\n return String(params[token]);\n });\n },\n [copy, t, asset, assets]\n );\n}\n"],"mappings":";;;;AAkBA,IAAM,IAAgB,kDAChB,IAAgB;AAiBtB,SAAgB,IAAkB;CAChC,IAAM,EAAE,SAAM,EAAQ,GAChB,EAAE,YAAS,EAAgB,GAC3B,EAAE,UAAO,cAAW,EAAoB;CAE9C,OAAO,GACJ,GAAa,GAAkB,MAAuC;EAErE,IAAI,IAAW,IAAO;EACtB,IAAI,MAAa,KAAA,GAAW;GAC1B,IAAM,IAAa,EAAE,GAAK,CAAM;GAChC,IAAW,MAAe,IAAM,IAAW;EAC7C;EAEA,IAAI,CAAC,EAAS,SAAS,IAAI,GAAG,OAAO;EAErC,IAAM,IAAkB,EAAS,QAAQ,IAAgB,GAAQ,MAAkB;GACjF,QAAQ,GAAR;IACE,KAAK,SACH,OAAO;IACT,KAAK,UACH,OAAO;IACT,KAAK,cACH,OAAO,EAAM,YAAY;IAC3B,KAAK,eACH,OAAO,EAAO,YAAY;IAC5B,SACE,OAAO;GACX;EACF,CAAC;EAID,OAFI,CAAC,KAAU,CAAC,EAAgB,SAAS,IAAI,IAAU,IAEhD,EAAgB,QAAQ,IAAgB,GAAO,MAC/C,OAAO,UAAU,eAAe,KAAK,GAAQ,CAAK,IAChD,OAAO,EAAO,EAAM,IADsC,CAElE;CACH,GACA;EAAC;EAAM;EAAG;EAAO;CAAM,CACzB;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-assethandler",
3
- "version": "2026.826.14",
3
+ "version": "2026.826.15",
4
4
  "description": "Burdenoff AssetHandler Microfrontend",
5
5
  "type": "module",
6
6
  "files": [