@xiee/utils 1.14.33 → 1.14.35

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.
package/js/g2-patches.js CHANGED
@@ -53,13 +53,20 @@ G2.register("data.column", (options) => {
53
53
  const original = G2[name];
54
54
  if (typeof original !== "function") continue;
55
55
  let cache;
56
- G2[name] = (...args) => (cache ??= patchTheme(original(...args)));
56
+ const patched = (...args) => (cache ??= patchTheme(original(...args)));
57
57
  // Re-register in G2's internal library so charts pick up the patched theme.
58
58
  // The registry key is 'theme.light', 'theme.classicDark', etc.
59
59
  const key = "theme." + name[0].toLowerCase() + name.slice(1);
60
- // Wrap in structuredClone so deepMix() in G2 internals can't mutate
61
- // the cached patched theme back to original values.
62
- const cloneFn = (...args) => structuredClone(G2[name](...args));
60
+ // Previously, we used structuredClone on the theme object, but G2's Academy
61
+ // theme contains function values (like gridFilter) that can't be
62
+ // structurally cloned. To fix it, we wrote a recursive clone that copies
63
+ // functions by reference:
64
+ const safeClone = v => {
65
+ if (v === null || typeof v !== 'object') return v;
66
+ if (Array.isArray(v)) return v.map(safeClone);
67
+ return Object.fromEntries(Object.entries(v).map(([k, x]) => [k, safeClone(x)]));
68
+ };
69
+ const cloneFn = (...args) => safeClone(patched(...args));
63
70
  G2[name] = cloneFn;
64
71
  try { G2.register(key, cloneFn); } catch (_) {}
65
72
  }
@@ -1,2 +1,2 @@
1
- G2.register("data.column",e=>{const{value:t}=e;return async()=>{let e=t;if("string"==typeof t){const o=await fetch(t);e=await o.json()}const o=Object.keys(e);return 0===o.length?[]:Array.isArray(e[o[0]])?e[o[0]].map((t,r)=>o.reduce((t,o)=>(t[o]=e[o][r],t),{})):[e]}}),(()=>{const e=4/3,t=/[fF]ontSize$/,o=e=>e&&"object"==typeof e&&!Array.isArray(e),r=n=>{if(o(n))for(const[s,c]of Object.entries(n))o(c)?r(c):"number"==typeof c&&t.test(s)&&(n[s]=c*e)},n=t=>{if(r(t),o(t.legendCategory)&&"number"==typeof t.legendCategory.itemMarkerSize&&(t.legendCategory.itemMarkerSize*=e),o(t.point))for(const e of Object.values(t.point))o(e)&&"number"==typeof e.r&&(e.r=4);return o(t.axis)&&(t.axis.gridStrokeOpacity=.25),t.inset=16,t};for(const e of["Light","Dark","Classic","ClassicDark","Academy"]){const t=G2[e];if("function"!=typeof t)continue;let o;G2[e]=(...e)=>o??=n(t(...e));const r="theme."+e[0].toLowerCase()+e.slice(1),s=(...t)=>structuredClone(G2[e](...t));G2[e]=s;try{G2.register(r,s)}catch(e){}}const s=()=>(e,t)=>{if(void 0!==t.encode.size)return[e,t];const o=[];for(const t of e)o[t]=4;return[e,{...t,encode:{...t.encode,size:{type:"column",value:o,visual:!0}}}]};s.props={};const c=G2.corelib();for(const e of["mark.point","mark.beeswarm"])for(const[t,o]of(c[e]?.props?.postInference??[]).entries())o.type===G2.MaybeSize&&(c[e].props.postInference[t]={type:s});for(const e of["mark.point","mark.beeswarm"]){const t=c[e];if(!t?.props?.shape)continue;t.props.defaultShape="point";const o=Object.fromEntries(Object.entries(t.props.shape).sort(([e],[t])=>/^hollow/.test(e)-/^hollow/.test(t)));t.props.shape=o;for(const e of t.props.channels||[])"shape"===e.name&&(e.range=Object.keys(o))}const a=G2.graphlib?.()??{};for(const t of["mark.sankey","mark.chord","mark.treemap"]){const o=a[t];if("function"!=typeof o)continue;const r=function(...t){const r=o.apply(this,t);for(const t of Array.isArray(r)?r:[r])if(Array.isArray(t?.labels))for(const o of t.labels)"number"==typeof o?.fontSize&&(o.fontSize*=e);return r};r.props=o.props;try{G2.register(t,r)}catch(e){}}})();
1
+ G2.register("data.column",e=>{const{value:t}=e;return async()=>{let e=t;if("string"==typeof t){const o=await fetch(t);e=await o.json()}const o=Object.keys(e);return 0===o.length?[]:Array.isArray(e[o[0]])?e[o[0]].map((t,r)=>o.reduce((t,o)=>(t[o]=e[o][r],t),{})):[e]}}),(()=>{const e=4/3,t=/[fF]ontSize$/,o=e=>e&&"object"==typeof e&&!Array.isArray(e),r=n=>{if(o(n))for(const[s,a]of Object.entries(n))o(a)?r(a):"number"==typeof a&&t.test(s)&&(n[s]=a*e)},n=t=>{if(r(t),o(t.legendCategory)&&"number"==typeof t.legendCategory.itemMarkerSize&&(t.legendCategory.itemMarkerSize*=e),o(t.point))for(const e of Object.values(t.point))o(e)&&"number"==typeof e.r&&(e.r=4);return o(t.axis)&&(t.axis.gridStrokeOpacity=.25),t.inset=16,t};for(const e of["Light","Dark","Classic","ClassicDark","Academy"]){const t=G2[e];if("function"!=typeof t)continue;let o;const r=(...e)=>o??=n(t(...e)),s="theme."+e[0].toLowerCase()+e.slice(1),a=e=>null===e||"object"!=typeof e?e:Array.isArray(e)?e.map(a):Object.fromEntries(Object.entries(e).map(([e,t])=>[e,a(t)])),c=(...e)=>a(r(...e));G2[e]=c;try{G2.register(s,c)}catch(e){}}const s=()=>(e,t)=>{if(void 0!==t.encode.size)return[e,t];const o=[];for(const t of e)o[t]=4;return[e,{...t,encode:{...t.encode,size:{type:"column",value:o,visual:!0}}}]};s.props={};const a=G2.corelib();for(const e of["mark.point","mark.beeswarm"])for(const[t,o]of(a[e]?.props?.postInference??[]).entries())o.type===G2.MaybeSize&&(a[e].props.postInference[t]={type:s});for(const e of["mark.point","mark.beeswarm"]){const t=a[e];if(!t?.props?.shape)continue;t.props.defaultShape="point";const o=Object.fromEntries(Object.entries(t.props.shape).sort(([e],[t])=>/^hollow/.test(e)-/^hollow/.test(t)));t.props.shape=o;for(const e of t.props.channels||[])"shape"===e.name&&(e.range=Object.keys(o))}const c=G2.graphlib?.()??{};for(const t of["mark.sankey","mark.chord","mark.treemap"]){const o=c[t];if("function"!=typeof o)continue;const r=function(...t){const r=o.apply(this,t);for(const t of Array.isArray(r)?r:[r])if(Array.isArray(t?.labels))for(const o of t.labels)"number"==typeof o?.fontSize&&(o.fontSize*=e);return r};r.props=o.props;try{G2.register(t,r)}catch(e){}}})();
2
2
  //# sourceMappingURL=g2-patches.min.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["G2","register","options","value","async","d","resp","fetch","json","keys","Object","length","Array","isArray","map","_","i","reduce","row","key","FONT_SCALE","FONT_RE","isObj","v","scaleFontSizes","obj","entries","test","patchTheme","theme","legendCategory","itemMarkerSize","point","style","values","r","axis","gridStrokeOpacity","inset","name","original","cache","args","toLowerCase","slice","cloneFn","structuredClone","CustomMaybeSize","I","mark","undefined","encode","size","type","visual","props","lib","corelib","e","postInference","MaybeSize","shape","defaultShape","newShape","fromEntries","sort","a","b","ch","channels","range","graphLib","graphlib","orig","wrapped","result","apply","this","m","labels","l","fontSize"],"sources":["g2-patches.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["G2","register","options","value","async","d","resp","fetch","json","keys","Object","length","Array","isArray","map","_","i","reduce","row","key","FONT_SCALE","FONT_RE","isObj","v","scaleFontSizes","obj","entries","test","patchTheme","theme","legendCategory","itemMarkerSize","point","style","values","r","axis","gridStrokeOpacity","inset","name","original","cache","patched","args","toLowerCase","slice","safeClone","fromEntries","k","x","cloneFn","CustomMaybeSize","I","mark","undefined","encode","size","type","visual","props","lib","corelib","e","postInference","MaybeSize","shape","defaultShape","newShape","sort","a","b","ch","channels","range","graphLib","graphlib","orig","wrapped","result","apply","this","m","labels","l","fontSize"],"sources":["g2-patches.js"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiee/utils",
3
- "version": "1.14.33",
3
+ "version": "1.14.35",
4
4
  "description": "Miscellaneous tools and utilities to manipulate HTML pages",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"