@dcs-tech/ui 0.4.0 → 0.7.0
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/README.md +27 -0
- package/dist/ChartImageMenu-C6MwKKjc.js +1494 -0
- package/dist/{ChartView-Cehrcr05.js → ChartView-nS4f4EU_.js} +514 -514
- package/dist/{SummaryChart-y27q_BBN.js → SummaryChart-CVg6i2mx.js} +2 -2
- package/dist/{SummaryImage-DDNEEu_K.js → SummaryImage-OHJHjCqe.js} +2 -2
- package/dist/{SummarySeeAll-0dX-_LFe.js → SummarySeeAll-BYrvXSJ6.js} +5 -5
- package/dist/assets/fileTask.worker-BHT1olUk.js +1 -0
- package/dist/columnValue-K98ElfJc.js +610 -0
- package/dist/exportContext-CJaIv8R-.js +166 -0
- package/dist/{exportEngine-DL-jEXFU.js → exportEngine-S8JHzYbS.js} +355 -356
- package/dist/file-worker.js +1 -0
- package/dist/fileActions-COf5Q4Eg.js +144 -0
- package/dist/{geometry-CG2nOEnw.js → geometry-ChwYB45B.js} +433 -497
- package/dist/index.js +8817 -8596
- package/dist/{defaults-DL745PK1.js → labels-CnqqTrne.js} +3 -79
- package/dist/runFileTask--4YjQH7Y.js +210 -0
- package/dist/scrollArea-DAlVT5U7.js +214 -0
- package/dist/style.css +1 -1
- package/dist/{summaryChartData-Djo73zb8.js → summaryChartData-pNvzaEHp.js} +1 -1
- package/dist/types/components/Charts/parts.d.ts +1 -1
- package/dist/types/components/Collapsible/index.d.ts +1 -1
- package/dist/types/components/DataTable/DataTable.d.ts +1 -1
- package/dist/types/components/DataTable/cards/cardFields.d.ts +2 -4
- package/dist/types/components/DataTable/columnValue.d.ts +19 -0
- package/dist/types/components/DataTable/export/exportCells.d.ts +13 -0
- package/dist/types/components/DataTable/export/exportEngine.d.ts +13 -4
- package/dist/types/components/DataTable/export/useTableExport.d.ts +2 -0
- package/dist/types/components/DataTable/host.d.ts +2 -0
- package/dist/types/components/DataTable/index.d.ts +1 -1
- package/dist/types/components/DataTable/labels.d.ts +2 -0
- package/dist/types/components/DataTable/types.d.ts +11 -0
- package/dist/types/components/DataTable/useTable.d.ts +4 -1
- package/dist/types/components/DataTable/vendor/index.d.ts +1 -1
- package/dist/types/components/Dialog/DialogHost.d.ts +1 -0
- package/dist/types/components/EditableTable/EditableTableCell.d.ts +1 -1
- package/dist/types/components/FileEngine/FileEngineContext.d.ts +17 -0
- package/dist/types/components/FileEngine/FileEngineProvider.d.ts +31 -0
- package/dist/types/components/FileEngine/FileJobsTray.d.ts +10 -0
- package/dist/types/components/FileEngine/index.d.ts +8 -0
- package/dist/types/components/FileEngine/labels.d.ts +29 -0
- package/dist/types/components/Toast/ToastHost.d.ts +1 -0
- package/dist/types/components/UIProvider/UIFormatContext.d.ts +7 -0
- package/dist/types/components/UIProvider/UIHostContext.d.ts +20 -0
- package/dist/types/components/UIProvider/UILabelsContext.d.ts +116 -0
- package/dist/types/components/UIProvider/UIProvider.d.ts +8 -1
- package/dist/types/components/UIProvider/index.d.ts +6 -0
- package/dist/types/core/logic/collapsible.logic.d.ts +6 -1
- package/dist/types/core/logic/datePicker.logic.d.ts +5 -0
- package/dist/types/core/logic/exportSafety.logic.d.ts +1 -0
- package/dist/types/core/logic/fileQueue.logic.d.ts +28 -0
- package/dist/types/core/logic/format.logic.d.ts +4 -0
- package/dist/types/core/logic/index.d.ts +4 -0
- package/dist/types/core/logic/tableDate.logic.d.ts +7 -0
- package/dist/types/core/logic/tableSummary.logic.d.ts +2 -2
- package/dist/types/core/types/collapsible.types.d.ts +4 -16
- package/dist/types/core/types/fileEngine.types.d.ts +116 -0
- package/dist/types/core/types/form.types.d.ts +4 -0
- package/dist/types/core/types/format.types.d.ts +15 -0
- package/dist/types/core/types/index.d.ts +2 -0
- package/dist/types/core/types/table.types.d.ts +1 -0
- package/dist/types/{components/DataTable/vendor → file}/fileActions.d.ts +17 -7
- package/dist/types/file/fileEngine.d.ts +49 -0
- package/dist/types/file/tasks/fileTask.worker.d.ts +1 -0
- package/dist/types/file/tasks/runFileTask.d.ts +9 -0
- package/dist/types/file/workerPool.d.ts +18 -0
- package/dist/types/index.d.ts +11 -2
- package/package.json +3 -2
- package/dist/ChartImageMenu-HILSfn5A.js +0 -1115
- package/dist/exportContext-CdpsOzE8.js +0 -235
- package/dist/scrollArea-CkPGDYH2.js +0 -210
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=()=>new DOMException(`Aborted`,`AbortError`);async function t(t,n){if(n.signal?.aborted)throw e();switch(t.kind){case`xlsx`:return l(t.workbook,n);case`pdf`:return p(t,n);default:throw Error(`Unknown file task: ${t.kind}`)}}const n=globalThis;async function r(){let e=await import(`exceljs`),t=[e.default?.default,e.default,e,n.ExcelJS].find(e=>e&&typeof e.Workbook==`function`);if(!t)throw Error(`ExcelJS did not load`);return t}async function i(){let e=await import(`pdfmake/build/pdfmake.js`),t=[e.default?.default,e.default,e,n.pdfMake].find(e=>e&&typeof e.createPdf==`function`);if(!t)throw Error(`pdfmake did not load`);let r=await import(`pdfmake/build/vfs_fonts.js`);return{pdfMake:t,vfs:[r?.default,r,r?.pdfMake?.vfs,r?.default?.pdfMake?.vfs,t.vfs,n.pdfMake?.vfs].find(e=>e&&e[`Roboto-Regular.ttf`])}}const a=e=>ArrayBuffer.isView(e)?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):e,o=e=>`FF`+e.replace(`#`,``).toUpperCase();function s(e,t){if(t&&((t.bold!==void 0||t.italic!==void 0||t.size||t.color)&&(e.font={...e.font??{},...t.bold===void 0?{}:{bold:t.bold},...t.italic===void 0?{}:{italic:t.italic},...t.size?{size:t.size}:{},...t.color?{color:{argb:o(t.color)}}:{}}),t.fill&&(e.fill={type:`pattern`,pattern:`solid`,fgColor:{argb:o(t.fill)}}),t.align&&(e.alignment={horizontal:t.align,vertical:`middle`}),t.numFmt&&(typeof e.value==`number`||e.value instanceof Date)&&(e.numFmt=t.numFmt),t.borderTop||t.borderBottom)){let n=e=>({style:e.style,...e.color?{color:{argb:o(e.color)}}:{}});e.border={...t.borderTop?{top:n(t.borderTop)}:{},...t.borderBottom?{bottom:n(t.borderBottom)}:{}}}}function c(e,t,n){let r=e.addRow(t.values);t.style?.bold&&(r.font={bold:!0}),t.merge&&n>1&&e.mergeCells(r.number,1,r.number,n);let i=t.merge?1:Math.max(t.values.length,0);for(let e=0;e<i;e++){let n=r.getCell(e+1);s(n,t.style),s(n,t.cells?.[e])}}async function l(t,n){let i=new(await(r())).Workbook,l=Math.max(1,t.sheets.reduce((e,t)=>e+t.rows.length,0)),u=Math.max(1,Math.floor(l/50)),d=0;for(let r of t.sheets){let t=i.addWorksheet(r.name),a=r.columns.length;t.columns=r.columns.map((e,t)=>({key:String(t),width:e.width}));for(let e of r.before??[])c(t,e,a);let f=t.addRow(r.columns.map(e=>e.header));f.font={bold:r.headerStyle?.bold??!0},f.eachCell((e,t)=>{let n=r.columns[t-1]?.align;n&&(e.alignment={horizontal:n,vertical:`middle`}),s(e,r.headerStyle)});let p=f.number;r.freeze?t.views=[{state:`frozen`,ySplit:r.freeze.rows??0,xSplit:r.freeze.cols??0}]:r.freezeHeader!==!1&&(t.views=[{state:`frozen`,ySplit:p}]),r.rows.forEach((i,a)=>{let c=t.addRow(i),f=r.cellStyles?.[a],p=r.stripe&&a%2==1;if(r.columns.forEach((e,t)=>{let n=c.getCell(t+1);e.numFmt&&(typeof n.value==`number`||n.value instanceof Date)&&(n.numFmt=e.numFmt),e.align&&(n.alignment={horizontal:e.align,vertical:`middle`}),p&&(n.fill={type:`pattern`,pattern:`solid`,fgColor:{argb:o(r.stripe)}}),s(n,e.style),s(n,f?.[t])}),++d%u===0){if(n.signal?.aborted)throw e();n.progress(d/l*.9)}}),r.autoFilter&&r.rows.length>0&&(t.autoFilter={from:{row:p,column:1},to:{row:p,column:a}});for(let e of r.after??[])c(t,e,a)}let f=await i.xlsx.writeBuffer();return n.progress(1),a(f)}const u={Roboto:{normal:`Roboto-Regular.ttf`,bold:`Roboto-Medium.ttf`,italics:`Roboto-Italic.ttf`,bolditalics:`Roboto-MediumItalic.ttf`}};function d(e){let t=e.hLineWidth??1,n=e.edgeLineWidth??t;return{hLineWidth:(e,r)=>e===0||e===(r.table.headerRows??0)||e===r.table.body.length?n:t,vLineWidth:()=>e.vLineWidth??1,...e.hLineColor?{hLineColor:()=>e.hLineColor}:{},...e.vLineColor?{vLineColor:()=>e.vLineColor}:{},...e.paddingX===void 0?{}:{paddingLeft:()=>e.paddingX,paddingRight:()=>e.paddingX},...e.paddingY===void 0?{}:{paddingTop:()=>e.paddingY,paddingBottom:()=>e.paddingY}}}function f(e){return(t,n)=>({text:e.text.replace(/\{page\}/g,String(t)).replace(/\{pages\}/g,String(n)),...e.font?{font:e.font}:{},alignment:e.alignment??`center`,fontSize:e.fontSize??8,...e.color?{color:e.color}:{},...e.margin?{margin:e.margin}:{}})}async function p(t,n){let r=n.pdfFonts?{fonts:{...n.pdfFonts.fonts,...t.fonts?.fonts},vfs:n.pdfFonts.vfs||t.fonts?.vfs?{...n.pdfFonts.vfs,...t.fonts?.vfs}:void 0}:t.fonts,a=t.footer?{...t.document,footer:f(t.footer)}:t.document,o=t.tableLayouts?Object.fromEntries(Object.entries(t.tableLayouts).map(([e,t])=>[e,d(t)])):void 0,{pdfMake:s,vfs:c}=await i();if(n.progress(.1),n.signal?.aborted)throw e();let l={...u,...r?.fonts??{}},p=r?.vfs?{...c??{},...r.vfs}:c,m=await new Promise((e,t)=>{try{let n=s.createPdf(a,o,l,p).getStream(),r=[];n.on(`data`,e=>r.push(e)),n.on(`error`,t),n.on(`end`,()=>{let t=new Uint8Array(r.reduce((e,t)=>e+t.byteLength,0)),n=0;for(let e of r)t.set(e,n),n+=e.byteLength;e(t.buffer)}),n.end()}catch(e){t(e)}});return n.progress(1),m}let m;const h=self;h.onmessage=async e=>{if(e.data.type===`init`){m=e.data.pdfFonts;return}let{id:n,task:r}=e.data;try{let e=await t(r,{progress:e=>h.postMessage({type:`progress`,id:n,fraction:e}),pdfFonts:m});h.postMessage({type:`done`,id:n,buffer:e},[e])}catch(e){h.postMessage({type:`error`,id:n,message:e instanceof Error?e.message:String(e)})}};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
// src/file/fileActions.ts
|
|
3
|
+
var e = {
|
|
4
|
+
pdf: ".pdf",
|
|
5
|
+
xlsx: ".xlsx",
|
|
6
|
+
csv: ".csv",
|
|
7
|
+
html: ".html",
|
|
8
|
+
json: ".json",
|
|
9
|
+
xml: ".xml",
|
|
10
|
+
png: ".png"
|
|
11
|
+
}, t = {
|
|
12
|
+
pdf: "application/pdf",
|
|
13
|
+
xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
14
|
+
csv: "text/csv;charset=utf-8;",
|
|
15
|
+
html: "text/html;charset=utf-8;",
|
|
16
|
+
json: "application/json",
|
|
17
|
+
xml: "application/xml;charset=utf-8;",
|
|
18
|
+
png: "image/png"
|
|
19
|
+
};
|
|
20
|
+
async function n(e, n) {
|
|
21
|
+
let { runFileTask: r } = await import("./runFileTask--4YjQH7Y.js").then((e) => e.n), i = await r({
|
|
22
|
+
kind: "pdf",
|
|
23
|
+
document: e,
|
|
24
|
+
fonts: n ? {
|
|
25
|
+
fonts: n.fonts,
|
|
26
|
+
vfs: n.vfs
|
|
27
|
+
} : void 0
|
|
28
|
+
}, { progress: () => {} });
|
|
29
|
+
return new Blob([i], { type: t.pdf });
|
|
30
|
+
}
|
|
31
|
+
async function r(e, r, i) {
|
|
32
|
+
if (r instanceof Blob) return r;
|
|
33
|
+
switch (e) {
|
|
34
|
+
case "pdf": return n(r, i);
|
|
35
|
+
case "json": return new Blob([JSON.stringify(r, null, 2)], { type: t.json });
|
|
36
|
+
case "csv":
|
|
37
|
+
case "html":
|
|
38
|
+
case "xml": return new Blob([typeof r == "string" ? r : String(r)], { type: t[e] });
|
|
39
|
+
case "xlsx": return new Blob([r], { type: t.xlsx });
|
|
40
|
+
default: return new Blob([typeof r == "string" ? r : JSON.stringify(r)]);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function i(e) {
|
|
44
|
+
return String(e ?? "").replace(/[\\/:*?"<>|\u0000-\u001F]/g, " ").replace(/\./g, " ").replace(/\s+/g, " ").replace(/[\s.]+$/, "").trim().slice(0, 120) || "file";
|
|
45
|
+
}
|
|
46
|
+
function a(e) {
|
|
47
|
+
let t = String(e ?? ""), n = t.lastIndexOf("."), r = n > 0 && /^\.[A-Za-z0-9]{1,5}$/.test(t.slice(n)) ? t.slice(n) : "";
|
|
48
|
+
return i(r ? t.slice(0, n) : t) + r;
|
|
49
|
+
}
|
|
50
|
+
function o(e, t) {
|
|
51
|
+
let n = URL.createObjectURL(e), r = document.createElement("a");
|
|
52
|
+
r.href = n, r.download = a(t), document.body.appendChild(r), r.click(), document.body.removeChild(r), URL.revokeObjectURL(n);
|
|
53
|
+
}
|
|
54
|
+
async function s(e, t, n) {
|
|
55
|
+
let r = new File([e], a(t), { type: e.type });
|
|
56
|
+
if (navigator.share && navigator.canShare?.({ files: [r] })) try {
|
|
57
|
+
return await navigator.share({
|
|
58
|
+
title: n || t,
|
|
59
|
+
files: [r]
|
|
60
|
+
}), !0;
|
|
61
|
+
} catch (e) {
|
|
62
|
+
if (e?.name === "AbortError") return !1;
|
|
63
|
+
}
|
|
64
|
+
if (e.type.includes("text") || e.type.includes("json") || e.type.includes("csv")) try {
|
|
65
|
+
let t = await e.text();
|
|
66
|
+
return await navigator.clipboard.writeText(t), !0;
|
|
67
|
+
} catch {}
|
|
68
|
+
return o(e, t), !0;
|
|
69
|
+
}
|
|
70
|
+
function c(e, t, n) {
|
|
71
|
+
if (t === "html" || t === "pdf" || t === "json" || t === "xml") {
|
|
72
|
+
let t = URL.createObjectURL(e), r = window.open(t, "_blank");
|
|
73
|
+
if (r) {
|
|
74
|
+
if (n) {
|
|
75
|
+
let e = () => {
|
|
76
|
+
try {
|
|
77
|
+
r.document.title = n;
|
|
78
|
+
} catch {}
|
|
79
|
+
};
|
|
80
|
+
r.addEventListener("load", e), setTimeout(e, 100);
|
|
81
|
+
}
|
|
82
|
+
setTimeout(() => URL.revokeObjectURL(t), 6e4);
|
|
83
|
+
}
|
|
84
|
+
return { type: "new_tab" };
|
|
85
|
+
}
|
|
86
|
+
return { type: "modal" };
|
|
87
|
+
}
|
|
88
|
+
async function l(e, t, n) {
|
|
89
|
+
if (t === "pdf") u(e);
|
|
90
|
+
else if (t === "html") {
|
|
91
|
+
let t = URL.createObjectURL(e), n = window.open(t, "_blank");
|
|
92
|
+
n && (n.addEventListener("load", () => n.print()), setTimeout(() => URL.revokeObjectURL(t), 6e4));
|
|
93
|
+
} else o(e, n);
|
|
94
|
+
}
|
|
95
|
+
function u(e) {
|
|
96
|
+
let t = URL.createObjectURL(e), n = document.createElement("iframe");
|
|
97
|
+
n.style.display = "none", n.src = t, document.body.appendChild(n), n.addEventListener("load", () => {
|
|
98
|
+
try {
|
|
99
|
+
n.contentWindow?.print();
|
|
100
|
+
} catch {
|
|
101
|
+
window.open(t, "_blank");
|
|
102
|
+
}
|
|
103
|
+
setTimeout(() => {
|
|
104
|
+
n.remove(), URL.revokeObjectURL(t);
|
|
105
|
+
}, 6e4);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
async function d(e, t, n, i, a, u) {
|
|
109
|
+
let d = await r(n, e, u);
|
|
110
|
+
switch (i) {
|
|
111
|
+
case "download":
|
|
112
|
+
o(d, t);
|
|
113
|
+
break;
|
|
114
|
+
case "share":
|
|
115
|
+
await s(d, t, a);
|
|
116
|
+
break;
|
|
117
|
+
case "preview":
|
|
118
|
+
c(d, n, a || t);
|
|
119
|
+
break;
|
|
120
|
+
case "print":
|
|
121
|
+
await l(d, n, t);
|
|
122
|
+
break;
|
|
123
|
+
case "open": {
|
|
124
|
+
let e = URL.createObjectURL(d);
|
|
125
|
+
window.open(e, "_blank"), setTimeout(() => URL.revokeObjectURL(e), 6e4);
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function f(t) {
|
|
131
|
+
return e[t] || "";
|
|
132
|
+
}
|
|
133
|
+
function p(e) {
|
|
134
|
+
return {
|
|
135
|
+
csv: "CSV",
|
|
136
|
+
xlsx: "Excel",
|
|
137
|
+
json: "JSON",
|
|
138
|
+
pdf: "PDF",
|
|
139
|
+
html: "HTML",
|
|
140
|
+
xml: "XML",
|
|
141
|
+
png: "Image"
|
|
142
|
+
}[e] || e.toUpperCase();
|
|
143
|
+
}
|
|
144
|
+
export { d as a, c, a as d, s as f, o as i, r as l, t as n, f as o, n as r, p as s, e as t, i as u };
|