@coreui/data-grid 0.3.0-rc.0 → 0.4.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 (122) hide show
  1. package/dist/css/data-grid.css +1 -1
  2. package/dist/css/data-grid.css.map +1 -1
  3. package/dist/css/data-grid.min.css +1 -1
  4. package/dist/css/data-grid.min.css.map +1 -1
  5. package/dist/css/data-grid.standalone.css +6 -6
  6. package/dist/css/data-grid.standalone.css.map +1 -1
  7. package/dist/css/data-grid.standalone.min.css +1 -1
  8. package/dist/css/data-grid.standalone.min.css.map +1 -1
  9. package/dist/js/clipboard.cjs +2 -3
  10. package/dist/js/clipboard.mjs +2 -3
  11. package/dist/js/csv.cjs +5 -6
  12. package/dist/js/csv.cjs.map +1 -1
  13. package/dist/js/csv.mjs +5 -6
  14. package/dist/js/csv.mjs.map +1 -1
  15. package/dist/js/data-grid.esm.js +5899 -5667
  16. package/dist/js/data-grid.esm.js.map +1 -1
  17. package/dist/js/data-grid.esm.min.js +2 -2
  18. package/dist/js/data-grid.esm.min.js.map +1 -1
  19. package/dist/js/data-grid.js +5899 -5668
  20. package/dist/js/data-grid.js.map +1 -1
  21. package/dist/js/data-grid.lite.esm.js +2669 -2622
  22. package/dist/js/data-grid.lite.esm.js.map +1 -1
  23. package/dist/js/data-grid.lite.esm.min.js +2 -2
  24. package/dist/js/data-grid.lite.esm.min.js.map +1 -1
  25. package/dist/js/data-grid.lite.js +2669 -2623
  26. package/dist/js/data-grid.lite.js.map +1 -1
  27. package/dist/js/data-grid.lite.min.js +2 -2
  28. package/dist/js/data-grid.lite.min.js.map +1 -1
  29. package/dist/js/data-grid.lite.mjs +2669 -2622
  30. package/dist/js/data-grid.lite.mjs.map +1 -1
  31. package/dist/js/data-grid.min.js +2 -2
  32. package/dist/js/data-grid.min.js.map +1 -1
  33. package/dist/js/data-grid.mjs +5899 -5667
  34. package/dist/js/data-grid.mjs.map +1 -1
  35. package/dist/js/direction.cjs +3 -4
  36. package/dist/js/direction.cjs.map +1 -1
  37. package/dist/js/direction.mjs +3 -4
  38. package/dist/js/direction.mjs.map +1 -1
  39. package/dist/js/drag.cjs +6 -6
  40. package/dist/js/drag.cjs.map +1 -1
  41. package/dist/js/drag.mjs +6 -6
  42. package/dist/js/drag.mjs.map +1 -1
  43. package/dist/js/{export-table-BdabEbJG.mjs → export-table-BggGRmzQ.mjs} +3 -4
  44. package/dist/js/{export-table-BdabEbJG.mjs.map → export-table-BggGRmzQ.mjs.map} +1 -1
  45. package/dist/js/{export-table-D762wrZ1.cjs → export-table-BiB3_lVo.cjs} +3 -4
  46. package/dist/js/{export-table-D762wrZ1.cjs.map → export-table-BiB3_lVo.cjs.map} +1 -1
  47. package/dist/js/filters.cjs +2 -3
  48. package/dist/js/filters.mjs +2 -3
  49. package/dist/js/labels.cjs +2 -3
  50. package/dist/js/labels.mjs +2 -3
  51. package/dist/js/print.cjs +2 -3
  52. package/dist/js/print.mjs +2 -3
  53. package/dist/js/selector.cjs +22 -0
  54. package/dist/js/selector.cjs.map +1 -0
  55. package/dist/js/selector.mjs +21 -0
  56. package/dist/js/selector.mjs.map +1 -0
  57. package/dist/js/validate.cjs +2 -3
  58. package/dist/js/validate.mjs +2 -3
  59. package/dist/js/xlsx.cjs +5 -7
  60. package/dist/js/xlsx.cjs.map +1 -1
  61. package/dist/js/xlsx.mjs +5 -7
  62. package/dist/js/xlsx.mjs.map +1 -1
  63. package/dist/types/base-component.d.mts +29 -0
  64. package/dist/types/data-grid.d.mts +141 -0
  65. package/dist/types/dom/data.d.mts +15 -0
  66. package/dist/types/dom/event-handler.d.mts +22 -0
  67. package/dist/types/dom/manipulator.d.mts +16 -0
  68. package/dist/types/engine/active-cell.d.mts +33 -0
  69. package/dist/types/engine/data-source.d.mts +19 -0
  70. package/dist/types/engine/features-lite.d.mts +25 -0
  71. package/dist/types/engine/features.d.mts +35 -0
  72. package/dist/types/engine/scheduler.d.mts +11 -0
  73. package/dist/types/engine/table.d.mts +9 -0
  74. package/dist/types/engine/validate.d.mts +20 -1
  75. package/dist/types/engine/virtualizer.d.mts +23 -0
  76. package/dist/types/filters.d.mts +13 -1
  77. package/dist/types/icons.d.mts +23 -0
  78. package/dist/types/index-lite.d.mts +19 -1
  79. package/dist/types/index.d.mts +21 -1
  80. package/dist/types/labels.d.mts +9 -1
  81. package/dist/types/types.d.mts +284 -0
  82. package/dist/types/ui/body.d.mts +37 -0
  83. package/dist/types/ui/column-chooser.d.mts +27 -0
  84. package/dist/types/ui/editor.d.mts +8 -0
  85. package/dist/types/ui/filter-menu.d.mts +21 -0
  86. package/dist/types/ui/header.d.mts +51 -0
  87. package/dist/types/ui/loading.d.mts +12 -0
  88. package/dist/types/ui/menu.d.mts +17 -0
  89. package/dist/types/ui/pagination.d.mts +17 -0
  90. package/dist/types/ui/pinning.d.mts +17 -0
  91. package/dist/types/ui/toolbar.d.mts +42 -0
  92. package/dist/types/ui/tooltip.d.mts +10 -0
  93. package/dist/types/util/clipboard.d.mts +29 -1
  94. package/dist/types/util/config.d.mts +28 -0
  95. package/dist/types/util/csv.d.mts +19 -1
  96. package/dist/types/util/debounce.d.mts +7 -0
  97. package/dist/types/util/direction.d.mts +17 -1
  98. package/dist/types/util/drag.d.mts +48 -1
  99. package/dist/types/util/export-table.d.mts +47 -0
  100. package/dist/types/util/index.d.mts +66 -0
  101. package/dist/types/util/print.d.mts +32 -1
  102. package/dist/types/util/sanitizer.d.mts +15 -0
  103. package/dist/types/util/selector.d.mts +12 -0
  104. package/dist/types/util/selector.d.ts +12 -0
  105. package/dist/types/util/xlsx.d.mts +17 -1
  106. package/dist/types/util/zip.d.mts +11 -0
  107. package/package.json +29 -16
  108. package/scss/data-grid.scss +1 -1
  109. package/src/data-grid.ts +4 -3
  110. package/src/engine/active-cell.ts +2 -6
  111. package/src/index-lite.ts +1 -1
  112. package/src/index.ts +1 -1
  113. package/src/ui/column-chooser.ts +4 -4
  114. package/src/ui/filter-menu.ts +5 -5
  115. package/src/ui/menu.ts +4 -4
  116. package/src/ui/pagination.ts +1 -1
  117. package/src/ui/tooltip.ts +2 -2
  118. package/src/util/csv.ts +2 -2
  119. package/src/util/direction.ts +4 -3
  120. package/src/util/drag.ts +5 -3
  121. package/src/util/selector.ts +16 -0
  122. package/src/util/xlsx.ts +1 -1
package/dist/js/csv.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * CoreUI PRO data-grid v0.3.0-rc.0 (https://coreui.io)
2
+ * CoreUI PRO data-grid v0.4.0 (https://coreui.io)
3
3
  * Copyright 2026 The CoreUI Team (https://github.com/orgs/coreui/people)
4
4
  * License (https://coreui.io/pro/license/)
5
5
  */
6
- import { i as rowsFor, n as formatterFor, r as headerFor, t as columnsFor } from "./export-table-BdabEbJG.mjs";
7
- //#region src/util/csv.ts
6
+ import { i as rowsFor, n as formatterFor, r as headerFor, t as columnsFor } from "./export-table-BggGRmzQ.mjs";
7
+ // src/util/csv.ts
8
8
  /**
9
9
  * --------------------------------------------------------------------------
10
10
  * CoreUI PRO data-grid util/csv.ts
@@ -21,9 +21,9 @@ const exportCsv = (table, options = {}) => {
21
21
  const csv = [line(columns.map((column) => headerFor(column))), ...rowsFor(table, options.scope).map((row) => line(columns.map((column) => {
22
22
  const value = row.getValue(column.id);
23
23
  const formatter = formatterFor(column);
24
- return formatter ? String(formatter(value, row.original) ?? "") : String(value ?? "");
24
+ return String(formatter ? formatter(value, row.original) ?? "" : value ?? "");
25
25
  })))].join("\r\n");
26
- return options.bom ? `\uFEFF${csv}` : csv;
26
+ return options.bom ? `\u{FEFF}${csv}` : csv;
27
27
  };
28
28
  const downloadCsv = (table, options = {}) => {
29
29
  const blob = new Blob([exportCsv(table, options)], { type: "text/csv;charset=utf-8;" });
@@ -37,7 +37,6 @@ const downloadCsv = (table, options = {}) => {
37
37
  anchor.remove();
38
38
  setTimeout(() => URL.revokeObjectURL(url));
39
39
  };
40
- //#endregion
41
40
  export { downloadCsv, exportCsv };
42
41
 
43
42
  //# sourceMappingURL=csv.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"csv.mjs","names":[],"sources":["../../src/util/csv.ts"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid util/csv.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport {\n columnsFor, formatterFor, headerFor, rowsFor, type ExportScope, type ExportTable\n} from './export-table'\n\nexport interface CsvOptions {\n scope?: ExportScope\n delimiter?: string\n bom?: boolean\n sanitize?: boolean\n}\n\nexport interface CsvDownloadOptions extends CsvOptions {\n filename?: string\n}\n\nexport type CsvTable = ExportTable\n\nconst escapeField = (value: string, delimiter: string): string =>\n /[\"\\r\\n]/.test(value) || value.includes(delimiter) ? `\"${value.replace(/\"/g, '\"\"')}\"` : value\n\n// CSV formula injection: a leading =, +, -, @, tab or CR makes spreadsheets treat\n// the cell as a formula. Opt-in guard prefixes such fields with an apostrophe.\nconst sanitizeField = (value: string): string =>\n /^[=+\\-@\\t\\r]/.test(value) ? `'${value}` : value\n\nexport const exportCsv = (table: CsvTable, options: CsvOptions = {}): string => {\n const delimiter = options.delimiter ?? ','\n const columns = columnsFor(table)\n\n const process = (field: string) => escapeField(options.sanitize ? sanitizeField(field) : field, delimiter)\n const line = (fields: string[]) => fields.map(process).join(delimiter)\n\n const header = line(columns.map(column => headerFor(column)))\n const body = rowsFor(table, options.scope).map(row =>\n line(columns.map(column => {\n const value = row.getValue(column.id)\n const formatter = formatterFor(column)\n // Coerce: a formatter may return a number/null in plain-JS usage.\n return formatter ? String(formatter(value, row.original) ?? '') : String(value ?? '')\n }))\n )\n\n const csv = [header, ...body].join('\\r\\n')\n return options.bom ? `\\uFEFF${csv}` : csv\n}\n\nexport const downloadCsv = (table: CsvTable, options: CsvDownloadOptions = {}): void => {\n const blob = new Blob([exportCsv(table, options)], { type: 'text/csv;charset=utf-8;' })\n const url = URL.createObjectURL(blob)\n const anchor = document.createElement('a')\n anchor.href = url\n anchor.download = options.filename ?? 'export.csv'\n anchor.style.display = 'none'\n // Attach before clicking (older Firefox) and defer revoke (Safari race).\n document.body.append(anchor)\n anchor.click()\n anchor.remove()\n setTimeout(() => URL.revokeObjectURL(url))\n}\n"],"mappings":";;;;;;;;;;;;;AAwBA,MAAM,eAAe,OAAe,cAClC,UAAU,KAAK,KAAK,KAAK,MAAM,SAAS,SAAS,IAAI,IAAI,MAAM,QAAQ,MAAM,MAAI,EAAE,KAAK;AAI1F,MAAM,iBAAiB,UACrB,eAAe,KAAK,KAAK,IAAI,IAAI,UAAU;AAE7C,MAAa,aAAa,OAAiB,UAAsB,CAAC,MAAc;CAC9E,MAAM,YAAY,QAAQ,aAAa;CACvC,MAAM,UAAU,WAAW,KAAK;CAEhC,MAAM,WAAW,UAAkB,YAAY,QAAQ,WAAW,cAAc,KAAK,IAAI,OAAO,SAAS;CACzG,MAAM,QAAQ,WAAqB,OAAO,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS;CAYrE,MAAM,MAAM,CAVG,KAAK,QAAQ,KAAI,WAAU,UAAU,MAAM,CAAC,CAUzC,GAAG,GATR,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAI,QAC7C,KAAK,QAAQ,KAAI,WAAU;EACzB,MAAM,QAAQ,IAAI,SAAS,OAAO,EAAE;EACpC,MAAM,YAAY,aAAa,MAAM;EAErC,OAAO,YAAY,OAAO,UAAU,OAAO,IAAI,QAAQ,KAAK,EAAE,IAAI,OAAO,SAAS,EAAE;CACtF,CAAC,CAAC,CAGuB,CAAC,CAAC,CAAC,KAAK,MAAM;CACzC,OAAO,QAAQ,MAAM,SAAS,QAAQ;AACxC;AAEA,MAAa,eAAe,OAAiB,UAA8B,CAAC,MAAY;CACtF,MAAM,OAAO,IAAI,KAAK,CAAC,UAAU,OAAO,OAAO,CAAC,GAAG,EAAE,MAAM,0BAA0B,CAAC;CACtF,MAAM,MAAM,IAAI,gBAAgB,IAAI;CACpC,MAAM,SAAS,SAAS,cAAc,GAAG;CACzC,OAAO,OAAO;CACd,OAAO,WAAW,QAAQ,YAAY;CACtC,OAAO,MAAM,UAAU;CAEvB,SAAS,KAAK,OAAO,MAAM;CAC3B,OAAO,MAAM;CACb,OAAO,OAAO;CACd,iBAAiB,IAAI,gBAAgB,GAAG,CAAC;AAC3C"}
1
+ {"version":3,"file":"csv.mjs","names":[],"sources":["../../src/util/csv.ts"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * CoreUI PRO data-grid util/csv.ts\n * License (https://coreui.io/pro/license/)\n * --------------------------------------------------------------------------\n */\n\nimport {\n columnsFor, formatterFor, headerFor, rowsFor, type ExportScope, type ExportTable\n} from './export-table'\n\nexport interface CsvOptions {\n scope?: ExportScope\n delimiter?: string\n bom?: boolean\n sanitize?: boolean\n}\n\nexport interface CsvDownloadOptions extends CsvOptions {\n filename?: string\n}\n\nexport type CsvTable = ExportTable\n\nconst escapeField = (value: string, delimiter: string): string =>\n /[\"\\r\\n]/.test(value) || value.includes(delimiter) ? `\"${value.replace(/\"/g, '\"\"')}\"` : value\n\n// CSV formula injection: a leading =, +, -, @, tab or CR makes spreadsheets treat\n// the cell as a formula. Opt-in guard prefixes such fields with an apostrophe.\nconst sanitizeField = (value: string): string =>\n /^[=+\\-@\\t\\r]/.test(value) ? `'${value}` : value\n\nexport const exportCsv = (table: CsvTable, options: CsvOptions = {}): string => {\n const delimiter = options.delimiter ?? ','\n const columns = columnsFor(table)\n\n const process = (field: string) => escapeField(options.sanitize ? sanitizeField(field) : field, delimiter)\n const line = (fields: string[]) => fields.map(process).join(delimiter)\n\n const header = line(columns.map(column => headerFor(column)))\n const body = rowsFor(table, options.scope).map(row =>\n line(columns.map(column => {\n const value = row.getValue(column.id)\n const formatter = formatterFor(column)\n // Coerce: a formatter may return a number/null in plain-JS usage.\n return String(formatter ? formatter(value, row.original) ?? '' : value ?? '')\n }))\n )\n\n const csv = [header, ...body].join('\\r\\n')\n return options.bom ? `\\u{FEFF}${csv}` : csv\n}\n\nexport const downloadCsv = (table: CsvTable, options: CsvDownloadOptions = {}): void => {\n const blob = new Blob([exportCsv(table, options)], { type: 'text/csv;charset=utf-8;' })\n const url = URL.createObjectURL(blob)\n const anchor = document.createElement('a')\n anchor.href = url\n anchor.download = options.filename ?? 'export.csv'\n anchor.style.display = 'none'\n // Attach before clicking (older Firefox) and defer revoke (Safari race).\n document.body.append(anchor)\n anchor.click()\n anchor.remove()\n setTimeout(() => URL.revokeObjectURL(url))\n}\n"],"mappings":";;;;;;;;;;;;;AAwBA,MAAM,eAAe,OAAe,cAClC,UAAU,KAAK,KAAK,KAAK,MAAM,SAAS,SAAS,IAAI,IAAI,MAAM,QAAQ,MAAM,MAAI,EAAE,KAAK;AAI1F,MAAM,iBAAiB,UACrB,eAAe,KAAK,KAAK,IAAI,IAAI,UAAU;AAE7C,MAAa,aAAa,OAAiB,UAAsB,CAAC,MAAc;CAC9E,MAAM,YAAY,QAAQ,aAAa;CACvC,MAAM,UAAU,WAAW,KAAK;CAEhC,MAAM,WAAW,UAAkB,YAAY,QAAQ,WAAW,cAAc,KAAK,IAAI,OAAO,SAAS;CACzG,MAAM,QAAQ,WAAqB,OAAO,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS;CAYrE,MAAM,MAAM,CAVG,KAAK,QAAQ,KAAI,WAAU,UAAU,MAAM,CAAC,CAUzC,GAAG,GATR,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAI,QAC7C,KAAK,QAAQ,KAAI,WAAU;EACzB,MAAM,QAAQ,IAAI,SAAS,OAAO,EAAE;EACpC,MAAM,YAAY,aAAa,MAAM;EAErC,OAAO,OAAO,YAAY,UAAU,OAAO,IAAI,QAAQ,KAAK,KAAK,SAAS,EAAE;CAC9E,CAAC,CAAC,CAGuB,CAAC,CAAC,CAAC,KAAK,MAAM;CACzC,OAAO,QAAQ,MAAM,WAAW,QAAQ;AAC1C;AAEA,MAAa,eAAe,OAAiB,UAA8B,CAAC,MAAY;CACtF,MAAM,OAAO,IAAI,KAAK,CAAC,UAAU,OAAO,OAAO,CAAC,GAAG,EAAE,MAAM,0BAA0B,CAAC;CACtF,MAAM,MAAM,IAAI,gBAAgB,IAAI;CACpC,MAAM,SAAS,SAAS,cAAc,GAAG;CACzC,OAAO,OAAO;CACd,OAAO,WAAW,QAAQ,YAAY;CACtC,OAAO,MAAM,UAAU;CAEvB,SAAS,KAAK,OAAO,MAAM;CAC3B,OAAO,MAAM;CACb,OAAO,OAAO;CACd,iBAAiB,IAAI,gBAAgB,GAAG,CAAC;AAC3C"}