@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.
Files changed (70) hide show
  1. package/README.md +27 -0
  2. package/dist/ChartImageMenu-C6MwKKjc.js +1494 -0
  3. package/dist/{ChartView-Cehrcr05.js → ChartView-nS4f4EU_.js} +514 -514
  4. package/dist/{SummaryChart-y27q_BBN.js → SummaryChart-CVg6i2mx.js} +2 -2
  5. package/dist/{SummaryImage-DDNEEu_K.js → SummaryImage-OHJHjCqe.js} +2 -2
  6. package/dist/{SummarySeeAll-0dX-_LFe.js → SummarySeeAll-BYrvXSJ6.js} +5 -5
  7. package/dist/assets/fileTask.worker-BHT1olUk.js +1 -0
  8. package/dist/columnValue-K98ElfJc.js +610 -0
  9. package/dist/exportContext-CJaIv8R-.js +166 -0
  10. package/dist/{exportEngine-DL-jEXFU.js → exportEngine-S8JHzYbS.js} +355 -356
  11. package/dist/file-worker.js +1 -0
  12. package/dist/fileActions-COf5Q4Eg.js +144 -0
  13. package/dist/{geometry-CG2nOEnw.js → geometry-ChwYB45B.js} +433 -497
  14. package/dist/index.js +8817 -8596
  15. package/dist/{defaults-DL745PK1.js → labels-CnqqTrne.js} +3 -79
  16. package/dist/runFileTask--4YjQH7Y.js +210 -0
  17. package/dist/scrollArea-DAlVT5U7.js +214 -0
  18. package/dist/style.css +1 -1
  19. package/dist/{summaryChartData-Djo73zb8.js → summaryChartData-pNvzaEHp.js} +1 -1
  20. package/dist/types/components/Charts/parts.d.ts +1 -1
  21. package/dist/types/components/Collapsible/index.d.ts +1 -1
  22. package/dist/types/components/DataTable/DataTable.d.ts +1 -1
  23. package/dist/types/components/DataTable/cards/cardFields.d.ts +2 -4
  24. package/dist/types/components/DataTable/columnValue.d.ts +19 -0
  25. package/dist/types/components/DataTable/export/exportCells.d.ts +13 -0
  26. package/dist/types/components/DataTable/export/exportEngine.d.ts +13 -4
  27. package/dist/types/components/DataTable/export/useTableExport.d.ts +2 -0
  28. package/dist/types/components/DataTable/host.d.ts +2 -0
  29. package/dist/types/components/DataTable/index.d.ts +1 -1
  30. package/dist/types/components/DataTable/labels.d.ts +2 -0
  31. package/dist/types/components/DataTable/types.d.ts +11 -0
  32. package/dist/types/components/DataTable/useTable.d.ts +4 -1
  33. package/dist/types/components/DataTable/vendor/index.d.ts +1 -1
  34. package/dist/types/components/Dialog/DialogHost.d.ts +1 -0
  35. package/dist/types/components/EditableTable/EditableTableCell.d.ts +1 -1
  36. package/dist/types/components/FileEngine/FileEngineContext.d.ts +17 -0
  37. package/dist/types/components/FileEngine/FileEngineProvider.d.ts +31 -0
  38. package/dist/types/components/FileEngine/FileJobsTray.d.ts +10 -0
  39. package/dist/types/components/FileEngine/index.d.ts +8 -0
  40. package/dist/types/components/FileEngine/labels.d.ts +29 -0
  41. package/dist/types/components/Toast/ToastHost.d.ts +1 -0
  42. package/dist/types/components/UIProvider/UIFormatContext.d.ts +7 -0
  43. package/dist/types/components/UIProvider/UIHostContext.d.ts +20 -0
  44. package/dist/types/components/UIProvider/UILabelsContext.d.ts +116 -0
  45. package/dist/types/components/UIProvider/UIProvider.d.ts +8 -1
  46. package/dist/types/components/UIProvider/index.d.ts +6 -0
  47. package/dist/types/core/logic/collapsible.logic.d.ts +6 -1
  48. package/dist/types/core/logic/datePicker.logic.d.ts +5 -0
  49. package/dist/types/core/logic/exportSafety.logic.d.ts +1 -0
  50. package/dist/types/core/logic/fileQueue.logic.d.ts +28 -0
  51. package/dist/types/core/logic/format.logic.d.ts +4 -0
  52. package/dist/types/core/logic/index.d.ts +4 -0
  53. package/dist/types/core/logic/tableDate.logic.d.ts +7 -0
  54. package/dist/types/core/logic/tableSummary.logic.d.ts +2 -2
  55. package/dist/types/core/types/collapsible.types.d.ts +4 -16
  56. package/dist/types/core/types/fileEngine.types.d.ts +116 -0
  57. package/dist/types/core/types/form.types.d.ts +4 -0
  58. package/dist/types/core/types/format.types.d.ts +15 -0
  59. package/dist/types/core/types/index.d.ts +2 -0
  60. package/dist/types/core/types/table.types.d.ts +1 -0
  61. package/dist/types/{components/DataTable/vendor → file}/fileActions.d.ts +17 -7
  62. package/dist/types/file/fileEngine.d.ts +49 -0
  63. package/dist/types/file/tasks/fileTask.worker.d.ts +1 -0
  64. package/dist/types/file/tasks/runFileTask.d.ts +9 -0
  65. package/dist/types/file/workerPool.d.ts +18 -0
  66. package/dist/types/index.d.ts +11 -2
  67. package/package.json +3 -2
  68. package/dist/ChartImageMenu-HILSfn5A.js +0 -1115
  69. package/dist/exportContext-CdpsOzE8.js +0 -235
  70. 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 };