@xiee/utils 1.14.80 → 1.14.82

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/css/lt-plot.css CHANGED
@@ -25,4 +25,32 @@
25
25
  text { fill: #666; font-size: 11px; }
26
26
  .lt-eb-axis-label { fill: #333; font-size: 12px; }
27
27
  }
28
+ .lt-spark {
29
+ vertical-align: middle;
30
+ color: #4682b4; /* line/bars inherit this via currentColor; override inline */
31
+ .lt-spark-line { fill: none; stroke: currentColor; stroke-width: 1; }
32
+ .lt-spark-bar { fill: currentColor; }
33
+ }
34
+ .lt-dot {
35
+ position: relative; /* paint above the absolutely-positioned gridlines */
36
+ vertical-align: middle;
37
+ color: #333;
38
+ /* default only the dots without a per-column fill= attribute, so that
39
+ attribute still shows; override either via `color` or `.lt-dot circle` */
40
+ circle:not([fill]) { fill: currentColor; }
41
+ }
42
+ .lt-dot-legend {
43
+ margin-top: 3px; /* small gap below the axis, since the cell has no padding */
44
+ font-size: 11px;
45
+ color: #666;
46
+ i {
47
+ display: inline-block;
48
+ width: 8px;
49
+ height: 8px;
50
+ margin-right: 2px;
51
+ border-radius: 50%;
52
+ vertical-align: middle;
53
+ }
54
+ span { margin-right: 6px; white-space: nowrap; }
55
+ }
28
56
  }
@@ -1,2 +1,2 @@
1
- .lt-table{& .lt-eb-cell{text-align:left;padding:0;position:relative}& .lt-eb-grid-bg{position:absolute;top:0;left:0;& line{stroke:#eee}}& .lt-eb{vertical-align:middle;position:relative;& line{stroke:#888}& circle{fill:#333}& .lt-eb-ref{stroke:#ccc}}& .lt-eb-axis{margin-top:3px;display:block;& line{stroke:#888}& text{fill:#666;font-size:11px}& .lt-eb-axis-label{fill:#333;font-size:12px}}}
1
+ .lt-table{& .lt-eb-cell{text-align:left;padding:0;position:relative}& .lt-eb-grid-bg{position:absolute;top:0;left:0;& line{stroke:#eee}}& .lt-eb{vertical-align:middle;position:relative;& line{stroke:#888}& circle{fill:#333}& .lt-eb-ref{stroke:#ccc}}& .lt-eb-axis{margin-top:3px;display:block;& line{stroke:#888}& text{fill:#666;font-size:11px}& .lt-eb-axis-label{fill:#333;font-size:12px}}& .lt-spark{vertical-align:middle;color:#4682b4;& .lt-spark-line{fill:none;stroke:currentColor;stroke-width:1px}& .lt-spark-bar{fill:currentColor}}& .lt-dot{vertical-align:middle;color:#333;position:relative;& circle:not([fill]){fill:currentColor}}& .lt-dot-legend{color:#666;margin-top:3px;font-size:11px;& i{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:2px;display:inline-block}& span{white-space:nowrap;margin-right:6px}}}
2
2
  /*# sourceMappingURL=lt-plot.min.css.map */
@@ -1 +1 @@
1
- {"version":3,"mappings":"AACA,UACE,0DAKA,gDAIE,oBAEF,iDAGE,mBACA,mBACA,0BAEF,2CAGE,mBACA,gCACA","sources":["lt-plot.css"],"sourcesContent":["/* lt-plot.css — styles for inline graphics cells (see lt-plot.js). */\n.lt-table {\n .lt-eb-cell {\n position: relative;\n padding: 0; /* so the gridline background fills the whole cell */\n text-align: left; /* keep the plot flush left, aligned with the gridlines */\n }\n .lt-eb-grid-bg {\n position: absolute;\n left: 0;\n top: 0;\n line { stroke: #eee; }\n }\n .lt-eb {\n position: relative;\n vertical-align: middle;\n line { stroke: #888; }\n circle { fill: #333; }\n .lt-eb-ref { stroke: #ccc; }\n }\n .lt-eb-axis {\n display: block;\n margin-top: 3px; /* small gap below the body, since the cell has no padding */\n line { stroke: #888; }\n text { fill: #666; font-size: 11px; }\n .lt-eb-axis-label { fill: #333; font-size: 12px; }\n }\n}\n"],"names":[]}
1
+ {"version":3,"mappings":"AACA,UACE,0DAKA,gDAIE,oBAEF,iDAGE,mBACA,mBACA,0BAEF,2CAGE,mBACA,gCACA,8CAEF,gDAGE,gEACA,mCAEF,6DAME,wCAEF,0DAIE,uGAQA","sources":["lt-plot.css"],"sourcesContent":["/* lt-plot.css — styles for inline graphics cells (see lt-plot.js). */\n.lt-table {\n .lt-eb-cell {\n position: relative;\n padding: 0; /* so the gridline background fills the whole cell */\n text-align: left; /* keep the plot flush left, aligned with the gridlines */\n }\n .lt-eb-grid-bg {\n position: absolute;\n left: 0;\n top: 0;\n line { stroke: #eee; }\n }\n .lt-eb {\n position: relative;\n vertical-align: middle;\n line { stroke: #888; }\n circle { fill: #333; }\n .lt-eb-ref { stroke: #ccc; }\n }\n .lt-eb-axis {\n display: block;\n margin-top: 3px; /* small gap below the body, since the cell has no padding */\n line { stroke: #888; }\n text { fill: #666; font-size: 11px; }\n .lt-eb-axis-label { fill: #333; font-size: 12px; }\n }\n .lt-spark {\n vertical-align: middle;\n color: #4682b4; /* line/bars inherit this via currentColor; override inline */\n .lt-spark-line { fill: none; stroke: currentColor; stroke-width: 1; }\n .lt-spark-bar { fill: currentColor; }\n }\n .lt-dot {\n position: relative; /* paint above the absolutely-positioned gridlines */\n vertical-align: middle;\n color: #333;\n /* default only the dots without a per-column fill= attribute, so that\n attribute still shows; override either via `color` or `.lt-dot circle` */\n circle:not([fill]) { fill: currentColor; }\n }\n .lt-dot-legend {\n margin-top: 3px; /* small gap below the axis, since the cell has no padding */\n font-size: 11px;\n color: #666;\n i {\n display: inline-block;\n width: 8px;\n height: 8px;\n margin-right: 2px;\n border-radius: 50%;\n vertical-align: middle;\n }\n span { margin-right: 6px; white-space: nowrap; }\n }\n}\n"],"names":[]}
package/js/lt-plot.js CHANGED
@@ -1,4 +1,5 @@
1
- /* lt-plot.js — inline graphics cells for lt tables (error bars, sparklines, …).
1
+ /* lt-plot.js — inline graphics cells for lt tables (error bars, sparklines,
2
+ * dot plots, …).
2
3
  * Registers cell renderers on LT.cells; the core runtime (lt.js) consults them
3
4
  * while building the <table>, so a plot draws for every render path (static,
4
5
  * Node-baked, and the interactive per-page rebuild) with no plot code in core.
@@ -141,6 +142,129 @@
141
142
  foot: (eb, u) => eb.axis ? svgAxis(eb, u) : ""
142
143
  };
143
144
 
145
+ // Padding (px) inside a sparkline SVG, so the line/bars never touch the edge.
146
+ const SP_PAD = 2;
147
+ const round1 = n => Math.round(n * 10) / 10; // 0.1px, to keep coords short
148
+ const q = v => `"${v}"`; // double-quote an SVG attribute value
149
+
150
+ // A row's series for a sparkline: when a single column is named and its cell
151
+ // is an array (a list-column), that array is the series; otherwise each named
152
+ // column contributes one point, read left to right across the row. Non-finite
153
+ // entries become null (a gap in the line, a skipped bar). `u` carries the core
154
+ // helpers (esc/isNum/str).
155
+ function spSeries(sp, data, r, u) {
156
+ const cell = data[sp.cols[0]]?.[r - 1];
157
+ const raw = sp.cols.length === 1 && Array.isArray(cell)
158
+ ? cell : sp.cols.map(c => data[c]?.[r - 1]);
159
+ return raw.map(v => u.isNum(v) ? +v : null);
160
+ }
161
+
162
+ // Inline SVG sparkline (line or bar) for a cell. The series is scaled to the
163
+ // shared [min,max] when the spec gives one, else to the row's own finite
164
+ // range; a flat series sits on the mid-line. Points are spaced evenly across
165
+ // the width. Nulls break the line into separate subpaths (and drop bars).
166
+ function svgSparkline(sp, data, r, u) {
167
+ const vals = spSeries(sp, data, r, u), fin = vals.filter(v => v != null);
168
+ if (!fin.length) return "";
169
+ const W = sp.width, H = sp.height, n = vals.length;
170
+ const lo = sp.min != null ? sp.min : Math.min(...fin),
171
+ hi = sp.max != null ? sp.max : Math.max(...fin);
172
+ const xAt = i => round1(n > 1 ? SP_PAD + i / (n - 1) * (W - 2 * SP_PAD) : W / 2),
173
+ yAt = v => round1(hi > lo
174
+ ? H - SP_PAD - (v - lo) / (hi - lo) * (H - 2 * SP_PAD) : H / 2);
175
+ // the line/bars inherit `currentColor`, so one color prop styles either
176
+ const style = sp.color ? ` style="color:${u.esc(sp.color)}"` : "";
177
+ let body;
178
+ if (sp.kind === "bar") {
179
+ // one equal-width slot per value; each bar is centered in its slot and
180
+ // grows from a zero baseline when the scale straddles 0, else the bottom.
181
+ const slot = (W - 2 * SP_PAD) / n, bw = round1(Math.max(1, slot * 0.8)),
182
+ base = yAt(lo < 0 && hi > 0 ? 0 : lo);
183
+ body = vals.map((v, i) => {
184
+ if (v == null) return "";
185
+ const yv = yAt(v), x = round1(SP_PAD + i * slot + (slot - bw) / 2);
186
+ return `<rect class="lt-spark-bar" x=${q(x)} y=${q(Math.min(yv, base))} ` +
187
+ `width=${q(bw)} height=${q(Math.max(1, Math.abs(base - yv)))}/>`;
188
+ }).join("");
189
+ } else {
190
+ let d = "", pen = false;
191
+ vals.forEach((v, i) => {
192
+ if (v == null) { pen = false; return; }
193
+ d += `${pen ? "L" : "M"}${xAt(i)} ${yAt(v)}`;
194
+ pen = true;
195
+ });
196
+ body = `<path class="lt-spark-line" d="${d}"/>`;
197
+ }
198
+ return `<svg class="lt-spark" width="${W}" height="${H}"${style}>${body}` +
199
+ `<title>${u.esc(fin.map(u.str).join(", "))}</title></svg>`;
200
+ }
201
+
202
+ // Sparkline cell renderer. columns = one list-column, or several numeric
203
+ // columns read across the row; the plot is drawn in the first column's cells.
204
+ cells.sparkline = {
205
+ resolve(op) {
206
+ const cols = op.columns || [], v = cols[0];
207
+ if (!v) return {};
208
+ return { [v]: {
209
+ col: v, cols, kind: op.kind, min: op.min, max: op.max,
210
+ color: op.color, width: op.width || 120, height: op.height || 20
211
+ } };
212
+ },
213
+ cell: (sp, data, r, u) => svgSparkline(sp, data, r, u)
214
+ };
215
+
216
+ // Inline SVG dot plot for a cell: one dot per column, each at its value on the
217
+ // column group's shared [min,max] scale, so a row with N columns shows N dots
218
+ // laid out horizontally on one baseline. When colors are given, each dot takes
219
+ // its column's color (see dotLegend for the key). Non-finite values draw no
220
+ // dot. Reuses the error-bar scale (ebX) and padding.
221
+ function svgDotplot(dp, data, r, u) {
222
+ const H = dp.height, y = H / 2, x = v => ebX(dp, v);
223
+ let s = `<svg class="lt-dot" width="${dp.width}" height="${H}">`;
224
+ const titles = [];
225
+ dp.cols.forEach((c, i) => {
226
+ const v = data[c]?.[r - 1];
227
+ if (!u.isNum(v)) return;
228
+ // the per-column color is a fill= presentation attribute; the stylesheet
229
+ // only defaults dots that lack it (:not([fill])), so this color shows but
230
+ // user CSS (a stylesheet rule) can still override it
231
+ const col = dp.colors?.[i], fl = col ? ` fill="${u.esc(col)}"` : "";
232
+ s += `<circle${fl} cx="${x(v)}" cy="${y}" r="3"/>`;
233
+ titles.push((dp.labels?.[i] ? dp.labels[i] + ": " : "") + u.str(v));
234
+ });
235
+ return s + `<title>${u.esc(titles.join("\n"))}</title></svg>`;
236
+ }
237
+
238
+ // Color key for a colored dot plot, drawn once in the footer under the axis: a
239
+ // swatch + label per column. "" when the plot is monochrome (no colors).
240
+ function dotLegend(dp, u) {
241
+ if (!dp.colors) return "";
242
+ const items = dp.cols.map((c, i) =>
243
+ `<span><i style="background:${u.esc(dp.colors[i])}"></i>` +
244
+ `${u.esc(dp.labels?.[i] ?? c)}</span>`).join("");
245
+ return `<div class="lt-dot-legend">${items}</div>`;
246
+ }
247
+
248
+ // Dot-plot cell renderer. columns = the value columns (one dot each); the plot
249
+ // is drawn in the first column's cells on a scale shared across them. Shares
250
+ // the error-bar axis/gridline machinery (ticks, svgGrid, svgAxis, lt-eb-cell).
251
+ cells.dotplot = {
252
+ resolve(op) {
253
+ const cols = op.columns || [], v = cols[0];
254
+ if (!v) return {};
255
+ const dp = {
256
+ col: v, cols, colors: op.colors, labels: op.labels,
257
+ min: op.min, max: op.max, axisLabel: op.axis_label,
258
+ width: op.width || 160, height: op.height || 16
259
+ };
260
+ if (op.axis) dp.ticks = niceTicks(dp.min, dp.max, nAxisTicks(dp));
261
+ return { [v]: dp };
262
+ },
263
+ cellClass: dp => dp.ticks ? "lt-eb-cell" : "",
264
+ cell: (dp, data, r, u) => (dp.ticks ? svgGrid(dp) : "") + svgDotplot(dp, data, r, u),
265
+ foot: (dp, u) => (dp.ticks ? svgAxis(dp, u) : "") + dotLegend(dp, u)
266
+ };
267
+
144
268
  // If core already built a table before this module loaded (a doc where an
145
269
  // earlier plain table pulled in lt.js first, so its renderer was missing),
146
270
  // re-render any mounted table that uses a renderer we just registered. Tables
package/js/lt-plot.min.js CHANGED
@@ -1,2 +1,2 @@
1
- (t=>{"use strict";const e=t.LT||(t.LT={}),l=e.cells||(e.cells={});if(l.errorbar)return;const n=(t,e)=>{const l=t.width-8,n=t.max-t.min,i=n>0?4+(e-t.min)/n*l:t.width/2;return Math.round(10*Math.max(4,Math.min(t.width-4,i)))/10};l.errorbar={resolve(t){const[e,l,n]=t.columns||[];if(!e)return{};const i={col:e,lo:l,hi:n,min:t.min,max:t.max,ref:t.ref,axis:t.axis,axisLabel:t.axis_label,width:t.width||160,height:t.height||16};return t.axis&&(i.ticks=function(t,e,l=5){if(!(e>t))return[t];const n=(t,e)=>{const l=Math.floor(Math.log10(t)),n=t/10**l;return(e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*10**l},i=n(n(e-t,!1)/(l-1),!0),s=Math.max(0,-Math.floor(Math.log10(i))),r=[];for(let l=Math.ceil(t/i)*i;l<=e+i/2;l+=i)r.push(+l.toFixed(s));return r}(i.min,i.max,function(t){const e=t.width-8,l=11*Math.max(String(t.min).length,String(t.max).length)*.6+11;return Math.max(2,Math.min(8,Math.floor(e/l)+1))}(i))),{[e]:i}},cellClass:t=>t.ticks?"lt-eb-cell":"",cell:(t,e,l,i)=>(t.ticks?function(t){let e=`<svg class="lt-eb-grid-bg" width="${t.width}" height="100%" viewBox="0 0 ${t.width} 10" preserveAspectRatio="none">`;for(const l of t.ticks)e+=`<line x1="${n(t,l)}" y1="0" x2="${n(t,l)}" y2="10"/>`;return e+"</svg>"}(t):"")+function(t,e,l,i){const s=t=>{const n=e[t]?.[l-1];return i.isNum(n)?n:null},r=s(t.col),o=s(t.lo),c=s(t.hi);if(null==r&&null==o&&null==c)return"";const a=t.height,h=a/2,x=e=>n(t,e),$=Math.min(4,(a-1)/2);let u=`<svg class="lt-eb" width="${t.width}" height="${a}">`;if(null!=t.ref&&(u+=`<line class="lt-eb-ref" x1="${x(t.ref)}" y1="0" x2="${x(t.ref)}" y2="${a}"/>`),null!=o&&null!=c){const t=x(o),e=x(c);u+=`<line x1="${t}" y1="${h}" x2="${e}" y2="${h}"/><line x1="${t}" y1="${h-$}" x2="${t}" y2="${h+$}"/><line x1="${e}" y1="${h-$}" x2="${e}" y2="${h+$}"/>`}null!=r&&(u+=`<circle cx="${x(r)}" cy="${h}" r="3"/>`);const f=null!=o&&null!=c?` (${i.str(o)}, ${i.str(c)})`:"";return u+=`<title>${i.esc((null!=r?i.str(r):"")+f)}</title></svg>`,u}(t,e,l,i),foot:(t,e)=>t.axis?function(t,e){const l=t.width,i=t.axisLabel,s=i?32:18,r=e=>n(t,e);let o=`<svg class="lt-eb-axis" width="${l}" height="${s}" overflow="visible"><line x1="4" y1="1" x2="${l-4}" y2="1"/>`;for(const n of t.ticks||[]){const t=r(n);o+=`<line x1="${t}" y1="0" x2="${t}" y2="4"/><text x="${t}" y="15" text-anchor="${t<=4?"start":t>=l-4?"end":"middle"}">${e.esc(e.str(n))}</text>`}return i&&(o+=`<text class="lt-eb-axis-label" x="${l/2}" y="${s-4}" text-anchor="middle">${e.esc(i)}</text>`),o+"</svg>"}(t,e):""};const i=t.document;if(i)for(const t of i.querySelectorAll(".lt-table"))(t._ltSpec?.ops||[]).some(t=>l[t.type])&&e.refresh?.(t)})(window);
1
+ (t=>{"use strict";const l=t.LT||(t.LT={}),e=l.cells||(l.cells={});if(e.errorbar)return;function s(t,l,e=5){if(!(l>t))return[t];const s=(t,l)=>{const e=Math.floor(Math.log10(t)),s=t/10**e;return(l?s<1.5?1:s<3?2:s<7?5:10:s<=1?1:s<=2?2:s<=5?5:10)*10**e},n=s(s(l-t,!1)/(e-1),!0),i=Math.max(0,-Math.floor(Math.log10(n))),o=[];for(let e=Math.ceil(t/n)*n;e<=l+n/2;e+=n)o.push(+e.toFixed(i));return o}function n(t){const l=t.width-8,e=11*Math.max(String(t.min).length,String(t.max).length)*.6+11;return Math.max(2,Math.min(8,Math.floor(l/e)+1))}const i=(t,l)=>{const e=t.width-8,s=t.max-t.min,n=s>0?4+(l-t.min)/s*e:t.width/2;return Math.round(10*Math.max(4,Math.min(t.width-4,n)))/10};function o(t){let l=`<svg class="lt-eb-grid-bg" width="${t.width}" height="100%" viewBox="0 0 ${t.width} 10" preserveAspectRatio="none">`;for(const e of t.ticks)l+=`<line x1="${i(t,e)}" y1="0" x2="${i(t,e)}" y2="10"/>`;return l+"</svg>"}function r(t,l){const e=t.width,s=t.axisLabel,n=s?32:18,o=l=>i(t,l);let r=`<svg class="lt-eb-axis" width="${e}" height="${n}" overflow="visible"><line x1="4" y1="1" x2="${e-4}" y2="1"/>`;for(const s of t.ticks||[]){const t=o(s);r+=`<line x1="${t}" y1="0" x2="${t}" y2="4"/><text x="${t}" y="15" text-anchor="${t<=4?"start":t>=e-4?"end":"middle"}">${l.esc(l.str(s))}</text>`}return s&&(r+=`<text class="lt-eb-axis-label" x="${e/2}" y="${n-4}" text-anchor="middle">${l.esc(s)}</text>`),r+"</svg>"}e.errorbar={resolve(t){const[l,e,i]=t.columns||[];if(!l)return{};const o={col:l,lo:e,hi:i,min:t.min,max:t.max,ref:t.ref,axis:t.axis,axisLabel:t.axis_label,width:t.width||160,height:t.height||16};return t.axis&&(o.ticks=s(o.min,o.max,n(o))),{[l]:o}},cellClass:t=>t.ticks?"lt-eb-cell":"",cell:(t,l,e,s)=>(t.ticks?o(t):"")+function(t,l,e,s){const n=t=>{const n=l[t]?.[e-1];return s.isNum(n)?n:null},o=n(t.col),r=n(t.lo),c=n(t.hi);if(null==o&&null==r&&null==c)return"";const a=t.height,h=a/2,u=l=>i(t,l),$=Math.min(4,(a-1)/2);let x=`<svg class="lt-eb" width="${t.width}" height="${a}">`;if(null!=t.ref&&(x+=`<line class="lt-eb-ref" x1="${u(t.ref)}" y1="0" x2="${u(t.ref)}" y2="${a}"/>`),null!=r&&null!=c){const t=u(r),l=u(c);x+=`<line x1="${t}" y1="${h}" x2="${l}" y2="${h}"/><line x1="${t}" y1="${h-$}" x2="${t}" y2="${h+$}"/><line x1="${l}" y1="${h-$}" x2="${l}" y2="${h+$}"/>`}null!=o&&(x+=`<circle cx="${u(o)}" cy="${h}" r="3"/>`);const m=null!=r&&null!=c?` (${s.str(r)}, ${s.str(c)})`:"";return x+=`<title>${s.esc((null!=o?s.str(o):"")+m)}</title></svg>`,x}(t,l,e,s),foot:(t,l)=>t.axis?r(t,l):""};const c=t=>Math.round(10*t)/10,a=t=>`"${t}"`;function h(t,l,e,s){const n=function(t,l,e,s){const n=l[t.cols[0]]?.[e-1];return(1===t.cols.length&&Array.isArray(n)?n:t.cols.map(t=>l[t]?.[e-1])).map(t=>s.isNum(t)?+t:null)}(t,l,e,s),i=n.filter(t=>null!=t);if(!i.length)return"";const o=t.width,r=t.height,h=n.length,u=null!=t.min?t.min:Math.min(...i),$=null!=t.max?t.max:Math.max(...i),x=t=>c($>u?r-2-(t-u)/($-u)*(r-4):r/2),m=t.color?` style="color:${s.esc(t.color)}"`:"";let d;if("bar"===t.kind){const t=(o-4)/h,l=c(Math.max(1,.8*t)),e=x(u<0&&$>0?0:u);d=n.map((s,n)=>{if(null==s)return"";const i=x(s),o=c(2+n*t+(t-l)/2);return`<rect class="lt-spark-bar" x=${a(o)} y=${a(Math.min(i,e))} width=${a(l)} height=${a(Math.max(1,Math.abs(e-i)))}/>`}).join("")}else{let t="",l=!1;n.forEach((e,s)=>{null!=e?(t+=`${l?"L":"M"}${(t=>c(h>1?2+t/(h-1)*(o-4):o/2))(s)} ${x(e)}`,l=!0):l=!1}),d=`<path class="lt-spark-line" d="${t}"/>`}return`<svg class="lt-spark" width="${o}" height="${r}"${m}>${d}<title>${s.esc(i.map(s.str).join(", "))}</title></svg>`}function u(t,l,e,s){const n=t.height,o=n/2;let r=`<svg class="lt-dot" width="${t.width}" height="${n}">`;const c=[];return t.cols.forEach((n,a)=>{const h=l[n]?.[e-1];if(!s.isNum(h))return;const u=t.colors?.[a],$=u?` fill="${s.esc(u)}"`:"";r+=`<circle${$} cx="${(l=>i(t,l))(h)}" cy="${o}" r="3"/>`,c.push((t.labels?.[a]?t.labels[a]+": ":"")+s.str(h))}),r+`<title>${s.esc(c.join("\n"))}</title></svg>`}e.sparkline={resolve(t){const l=t.columns||[],e=l[0];return e?{[e]:{col:e,cols:l,kind:t.kind,min:t.min,max:t.max,color:t.color,width:t.width||120,height:t.height||20}}:{}},cell:(t,l,e,s)=>h(t,l,e,s)},e.dotplot={resolve(t){const l=t.columns||[],e=l[0];if(!e)return{};const i={col:e,cols:l,colors:t.colors,labels:t.labels,min:t.min,max:t.max,axisLabel:t.axis_label,width:t.width||160,height:t.height||16};return t.axis&&(i.ticks=s(i.min,i.max,n(i))),{[e]:i}},cellClass:t=>t.ticks?"lt-eb-cell":"",cell:(t,l,e,s)=>(t.ticks?o(t):"")+u(t,l,e,s),foot:(t,l)=>(t.ticks?r(t,l):"")+function(t,l){return t.colors?`<div class="lt-dot-legend">${t.cols.map((e,s)=>`<span><i style="background:${l.esc(t.colors[s])}"></i>${l.esc(t.labels?.[s]??e)}</span>`).join("")}</div>`:""}(t,l)};const $=t.document;if($)for(const t of $.querySelectorAll(".lt-table"))(t._ltSpec?.ops||[]).some(t=>e[t.type])&&l.refresh?.(t)})(window);
2
2
  //# sourceMappingURL=lt-plot.min.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["root","LT","cells","errorbar","ebX","eb","v","inner","width","span","max","min","p","Math","round","resolve","op","lo","hi","columns","col","ref","axis","axisLabel","axis_label","height","ticks","n","niceNum","x","e","floor","log10","f","d","dec","ceil","push","toFixed","niceTicks","per","String","length","nAxisTicks","cellClass","cell","data","r","u","s","t","svgGrid","num","k","isNum","est","H","y","cap","xl","xh","ci","str","esc","svgErrorbar","foot","W","lbl","xt","svgAxis","doc","document","tbl","querySelectorAll","_ltSpec","ops","some","o","type","refresh","window"],"sources":["lt-plot.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["root","LT","cells","errorbar","niceTicks","lo","hi","n","niceNum","x","round","e","Math","floor","log10","f","d","dec","max","ticks","v","ceil","push","toFixed","nAxisTicks","eb","inner","width","per","String","min","length","ebX","span","p","svgGrid","s","t","svgAxis","u","W","lbl","axisLabel","H","xt","esc","str","resolve","op","columns","col","ref","axis","axis_label","height","cellClass","cell","data","r","num","k","isNum","est","y","cap","xl","xh","ci","svgErrorbar","foot","round1","q","svgSparkline","sp","vals","cols","Array","isArray","map","c","spSeries","fin","filter","yAt","style","color","body","kind","slot","bw","base","i","yv","abs","join","pen","forEach","xAt","svgDotplot","dp","titles","colors","fl","labels","sparkline","dotplot","dotLegend","doc","document","tbl","querySelectorAll","_ltSpec","ops","some","o","type","refresh","window"],"sources":["lt-plot.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.80",
3
+ "version": "1.14.82",
4
4
  "description": "Miscellaneous tools and utilities to manipulate HTML pages",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"