apex-grid 2.0.0 → 3.0.1

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 (157) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +32 -22
  3. package/components/grid.d.ts +69 -40
  4. package/components/grid.js +34 -52
  5. package/components/grid.js.map +1 -1
  6. package/components/header.js +7 -13
  7. package/components/header.js.map +1 -1
  8. package/components/toolbar.js +13 -29
  9. package/components/toolbar.js.map +1 -1
  10. package/controllers/state.d.ts +15 -1
  11. package/controllers/state.js +11 -1
  12. package/controllers/state.js.map +1 -1
  13. package/custom-elements.json +320 -242
  14. package/define.js.map +1 -1
  15. package/docs/assets/hierarchy.js +1 -1
  16. package/docs/assets/highlight.css +9 -2
  17. package/docs/assets/icons.js +1 -1
  18. package/docs/assets/icons.svg +1 -1
  19. package/docs/assets/main.js +4 -4
  20. package/docs/assets/navigation.js +1 -1
  21. package/docs/assets/search.js +1 -1
  22. package/docs/assets/style.css +3 -3
  23. package/docs/classes/ApexGrid.html +115 -93
  24. package/docs/functions/setup.html +11 -17
  25. package/docs/hierarchy.html +1 -1
  26. package/docs/index.html +91 -47
  27. package/docs/interfaces/ApexCellValueChangedEvent.html +5 -5
  28. package/docs/interfaces/ApexCellValueChangingEvent.html +6 -6
  29. package/docs/interfaces/ApexColumnMovedEvent.html +4 -4
  30. package/docs/interfaces/ApexColumnMovingEvent.html +5 -5
  31. package/docs/interfaces/ApexColumnPinnedEvent.html +3 -3
  32. package/docs/interfaces/ApexColumnPinningEvent.html +4 -4
  33. package/docs/interfaces/ApexDetailContext.html +4 -4
  34. package/docs/interfaces/ApexFilteredEvent.html +3 -3
  35. package/docs/interfaces/ApexFilteringEvent.html +3 -3
  36. package/docs/interfaces/ApexGridEventMap.html +21 -16
  37. package/docs/interfaces/ApexHeaderContext.html +3 -3
  38. package/docs/interfaces/ApexPageChangedEvent.html +5 -5
  39. package/docs/interfaces/ApexPageChangingEvent.html +5 -5
  40. package/docs/interfaces/ApexQuickFilterChangedEvent.html +2 -2
  41. package/docs/interfaces/ApexQuickFilterChangingEvent.html +3 -3
  42. package/docs/interfaces/ApexRowEditEndedEvent.html +3 -3
  43. package/docs/interfaces/ApexRowEditStartedEvent.html +2 -2
  44. package/docs/interfaces/ApexRowExpandedEvent.html +4 -4
  45. package/docs/interfaces/ApexRowExpandingEvent.html +5 -5
  46. package/docs/interfaces/ApexRowSelectedEvent.html +4 -4
  47. package/docs/interfaces/ApexRowSelectingEvent.html +5 -5
  48. package/docs/interfaces/ApexTreeRowExpandedEvent.html +4 -4
  49. package/docs/interfaces/ApexTreeRowExpandingEvent.html +5 -5
  50. package/docs/interfaces/BaseApexCellContext.html +6 -6
  51. package/docs/interfaces/BaseApexEditorContext.html +8 -8
  52. package/docs/interfaces/BaseColumnConfiguration.html +34 -15
  53. package/docs/interfaces/BaseColumnSortConfiguration.html +3 -3
  54. package/docs/interfaces/BaseFilterExpression.html +4 -4
  55. package/docs/interfaces/BaseSortExpression.html +3 -3
  56. package/docs/interfaces/CSVExportOptions.html +9 -9
  57. package/docs/interfaces/ColumnFilterConfiguration.html +2 -2
  58. package/docs/interfaces/DataPipelineConfiguration.html +3 -3
  59. package/docs/interfaces/ExportFormat.html +10 -0
  60. package/docs/interfaces/ExportOptions.html +6 -6
  61. package/docs/interfaces/GridEditingConfiguration.html +4 -4
  62. package/docs/interfaces/GridExpansionConfiguration.html +5 -5
  63. package/docs/interfaces/GridSelectionConfiguration.html +4 -4
  64. package/docs/interfaces/GridSortConfiguration.html +3 -3
  65. package/docs/interfaces/GridTreeConfiguration.html +5 -5
  66. package/docs/interfaces/PaginationConfiguration.html +6 -6
  67. package/docs/interfaces/PaginationState.html +5 -5
  68. package/docs/media/LICENSE +80 -0
  69. package/docs/media/_tokens.scss +106 -0
  70. package/docs/media/package.json +14 -12
  71. package/docs/modules.html +1 -1
  72. package/docs/types/ApexCellContext.html +1 -1
  73. package/docs/types/ApexEditorContext.html +1 -1
  74. package/docs/types/BasePropertyType.html +1 -1
  75. package/docs/types/BaseSortComparer.html +1 -1
  76. package/docs/types/ColumnConfiguration.html +1 -1
  77. package/docs/types/ColumnDropPosition.html +1 -1
  78. package/docs/types/ColumnSortConfiguration.html +1 -1
  79. package/docs/types/DataPipelineHook.html +1 -1
  80. package/docs/types/DataPipelineParams.html +4 -4
  81. package/docs/types/DataType.html +18 -1
  82. package/docs/types/ExportSource.html +1 -1
  83. package/docs/types/FilterCriteria.html +1 -1
  84. package/docs/types/FilterExpression.html +1 -1
  85. package/docs/types/Keys.html +1 -1
  86. package/docs/types/PropertyType.html +1 -1
  87. package/docs/types/SortComparer.html +1 -1
  88. package/docs/types/SortExpression.html +1 -1
  89. package/docs/types/SortState.html +1 -1
  90. package/index.d.ts +1 -1
  91. package/index.js.map +1 -1
  92. package/internal/column-types.js +161 -1
  93. package/internal/column-types.js.map +1 -1
  94. package/internal/export.d.ts +12 -4
  95. package/internal/export.js.map +1 -1
  96. package/internal/feature-module.d.ts +27 -0
  97. package/internal/feature-module.js +2 -0
  98. package/internal/feature-module.js.map +1 -0
  99. package/internal/icons.d.ts +7 -0
  100. package/internal/icons.js +11 -0
  101. package/internal/icons.js.map +1 -1
  102. package/internal/index.d.ts +20 -0
  103. package/internal/index.js +6 -0
  104. package/internal/index.js.map +1 -0
  105. package/internal/types.d.ts +54 -5
  106. package/internal/types.js.map +1 -1
  107. package/operations/filter/tree.d.ts +1 -1
  108. package/operations/filter/types.js.map +1 -1
  109. package/operations/sort/types.js.map +1 -1
  110. package/package.json +5 -1
  111. package/setup.d.ts +19 -26
  112. package/setup.js +4 -2
  113. package/setup.js.map +1 -1
  114. package/styles/_checkbox.css.js +3 -0
  115. package/styles/_checkbox.css.js.map +1 -0
  116. package/styles/_tokens.css.js +3 -0
  117. package/styles/_tokens.css.js.map +1 -0
  118. package/styles/body-cell/body-cell.css.js +1 -1
  119. package/styles/body-cell/body-cell.css.js.map +1 -1
  120. package/styles/body-cell/cell-renderers.css.js +3 -0
  121. package/styles/body-cell/cell-renderers.css.js.map +1 -0
  122. package/styles/body-row/body-row.css.js +1 -1
  123. package/styles/body-row/body-row.css.js.map +1 -1
  124. package/styles/filter-row/filter-row.css.js +1 -1
  125. package/styles/filter-row/filter-row.css.js.map +1 -1
  126. package/styles/grid/_grid.base.css.js +1 -1
  127. package/styles/grid/_grid.base.css.js.map +1 -1
  128. package/styles/grid/grid.css.js +3 -0
  129. package/styles/grid/grid.css.js.map +1 -0
  130. package/styles/header-cell/header-cell.css.js +1 -1
  131. package/styles/header-cell/header-cell.css.js.map +1 -1
  132. package/styles/header-row/header-row.base.css.js +1 -1
  133. package/styles/header-row/header-row.base.css.js.map +1 -1
  134. package/styles/paginator/paginator.css.js +1 -1
  135. package/styles/paginator/paginator.css.js.map +1 -1
  136. package/styles/toolbar/toolbar.css.js +1 -1
  137. package/styles/toolbar/toolbar.css.js.map +1 -1
  138. package/docs/interfaces/XLSXExportOptions.html +0 -17
  139. package/docs/media/publish.yml +0 -111
  140. package/internal/theming.d.ts +0 -34
  141. package/internal/theming.js +0 -123
  142. package/internal/theming.js.map +0 -1
  143. package/internal/xlsx.d.ts +0 -22
  144. package/internal/xlsx.js +0 -228
  145. package/internal/xlsx.js.map +0 -1
  146. package/styles/grid/themes/light/grid.bootstrap.css.js +0 -3
  147. package/styles/grid/themes/light/grid.bootstrap.css.js.map +0 -1
  148. package/styles/grid/themes/light/grid.fluent.css.js +0 -3
  149. package/styles/grid/themes/light/grid.fluent.css.js.map +0 -1
  150. package/styles/grid/themes/light/grid.indigo.css.js +0 -3
  151. package/styles/grid/themes/light/grid.indigo.css.js.map +0 -1
  152. package/styles/grid/themes/light/grid.material.css.js +0 -3
  153. package/styles/grid/themes/light/grid.material.css.js.map +0 -1
  154. /package/styles/{grid/themes/light/grid.bootstrap.css.d.ts → _checkbox.css.d.ts} +0 -0
  155. /package/styles/{grid/themes/light/grid.fluent.css.d.ts → _tokens.css.d.ts} +0 -0
  156. /package/styles/{grid/themes/light/grid.indigo.css.d.ts → body-cell/cell-renderers.css.d.ts} +0 -0
  157. /package/styles/grid/{themes/light/grid.material.css.d.ts → grid.css.d.ts} +0 -0
@@ -1,123 +0,0 @@
1
- import { adoptStyles, css, isServer } from 'lit';
2
- const CHANGE_THEME_EVENT = 'igc-change-theme';
3
- let theme;
4
- let themeVariant;
5
- function isStyleRule(rule) {
6
- return rule != null && 'style' in rule;
7
- }
8
- function cssKeyToJsKey(key) {
9
- return key.replace(/^--|-./g, (match) => {
10
- return match.startsWith('--') ? '' : match.charAt(1).toUpperCase();
11
- });
12
- }
13
- function getAllCssVariableNames() {
14
- const cssVars = new Set();
15
- const styleSheets = Array.from(document.styleSheets);
16
- for (const sheet of styleSheets) {
17
- let rules;
18
- try {
19
- rules = sheet.cssRules;
20
- }
21
- catch {
22
- continue;
23
- }
24
- if (!rules) {
25
- continue;
26
- }
27
- for (const rule of Array.from(rules)) {
28
- if (isStyleRule(rule)) {
29
- const length = rule.style.length;
30
- for (let i = 0; i < length; i++) {
31
- const style = rule.style[i];
32
- if (style.startsWith('--')) {
33
- cssVars.add(style);
34
- }
35
- }
36
- }
37
- }
38
- }
39
- return cssVars;
40
- }
41
- function getElementCssVariables(allCssVars, element, pseudo) {
42
- const cssVars = {};
43
- const styles = getComputedStyle(element, pseudo);
44
- for (const key of allCssVars) {
45
- const value = styles.getPropertyValue(key);
46
- if (value) {
47
- cssVars[cssKeyToJsKey(key)] = value.trim();
48
- }
49
- }
50
- return cssVars;
51
- }
52
- function getAllCssVariables() {
53
- return isServer ? {} : getElementCssVariables(getAllCssVariableNames(), document.documentElement);
54
- }
55
- function isOfTypeTheme(theme) {
56
- return ['bootstrap', 'material', 'indigo', 'fluent'].includes(theme);
57
- }
58
- function isOfTypeThemeVariant(variant) {
59
- return ['light', 'dark'].includes(variant);
60
- }
61
- function getTheme() {
62
- if (!(theme && themeVariant)) {
63
- const cssVars = getAllCssVariables();
64
- const foundTheme = cssVars.igTheme;
65
- const foundVariant = cssVars.igThemeVariant;
66
- theme = isOfTypeTheme(foundTheme) ? foundTheme : 'bootstrap';
67
- themeVariant = isOfTypeThemeVariant(foundVariant) ? foundVariant : 'light';
68
- }
69
- return { theme, themeVariant };
70
- }
71
- class ThemingController {
72
- get theme() {
73
- return this._theme;
74
- }
75
- constructor(host, themes, config) {
76
- this._theme = 'bootstrap';
77
- this._variant = 'light';
78
- this._host = host;
79
- this._themes = themes;
80
- this._options = config;
81
- this._host.addController(this);
82
- }
83
- hostConnected() {
84
- this._handleThemeChanged();
85
- globalThis.addEventListener(CHANGE_THEME_EVENT, this);
86
- }
87
- hostDisconnected() {
88
- globalThis.removeEventListener(CHANGE_THEME_EVENT, this);
89
- }
90
- handleEvent() {
91
- this._handleThemeChanged();
92
- }
93
- _getStyles() {
94
- const props = this._themes[this._variant];
95
- const styles = { shared: css ``, theme: css `` };
96
- for (const [name, sheet] of Object.entries(props)) {
97
- if (name === 'shared') {
98
- styles.shared = sheet;
99
- }
100
- if (name === this.theme) {
101
- styles.theme = sheet;
102
- }
103
- }
104
- return styles;
105
- }
106
- _adoptStyles() {
107
- const { theme: currentTheme, themeVariant } = getTheme();
108
- this._theme = currentTheme;
109
- this._variant = themeVariant;
110
- const ctor = this._host.constructor;
111
- const { shared, theme } = this._getStyles();
112
- adoptStyles(this._host.shadowRoot, [...ctor.elementStyles, shared, theme]);
113
- }
114
- _handleThemeChanged() {
115
- this._adoptStyles();
116
- this._options?.themeChange?.call(this._host, this._theme);
117
- this._host.requestUpdate();
118
- }
119
- }
120
- export function addThemingController(host, themes, config) {
121
- return new ThemingController(host, themes, config);
122
- }
123
- //# sourceMappingURL=theming.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theming.js","sourceRoot":"","sources":["../../src/internal/theming.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n CSSResult,\n LitElement,\n ReactiveController,\n ReactiveControllerHost,\n ReactiveElement,\n} from 'lit';\nimport { adoptStyles, css, isServer } from 'lit';\n\ntype Theme = 'material' | 'bootstrap' | 'indigo' | 'fluent';\ntype ThemeVariant = 'light' | 'dark';\n\ntype Themes = {\n light: {\n [K in Theme | 'shared']?: CSSResult;\n };\n dark: {\n [K in Theme | 'shared']?: CSSResult;\n };\n};\n\ntype ThemeChangedCallback = (theme: Theme) => unknown;\ntype ThemingControllerConfig = {\n themeChange?: ThemeChangedCallback;\n};\n\nconst CHANGE_THEME_EVENT = 'igc-change-theme';\nlet theme: Theme;\nlet themeVariant: ThemeVariant;\n\nfunction isStyleRule(rule: CSSRule): rule is CSSStyleRule {\n return rule != null && 'style' in rule;\n}\n\nfunction cssKeyToJsKey(key: string): string {\n return key.replace(/^--|-./g, (match) => {\n return match.startsWith('--') ? '' : match.charAt(1).toUpperCase();\n });\n}\n\nfunction getAllCssVariableNames(): Set<string> {\n const cssVars = new Set<string>();\n const styleSheets = Array.from(document.styleSheets);\n\n for (const sheet of styleSheets) {\n let rules: CSSRuleList | undefined;\n\n // Potential CORS or access errors\n try {\n rules = sheet.cssRules;\n } catch {\n continue;\n }\n\n if (!rules) {\n continue;\n }\n\n for (const rule of Array.from(rules)) {\n if (isStyleRule(rule)) {\n const length = rule.style.length;\n\n for (let i = 0; i < length; i++) {\n const style = rule.style[i];\n\n if (style.startsWith('--')) {\n cssVars.add(style);\n }\n }\n }\n }\n }\n\n return cssVars;\n}\n\nfunction getElementCssVariables(\n allCssVars: Set<string>,\n element: HTMLElement,\n pseudo?: string\n): Record<string, string> {\n const cssVars: Record<string, string> = {};\n const styles = getComputedStyle(element, pseudo);\n\n for (const key of allCssVars) {\n const value = styles.getPropertyValue(key);\n\n if (value) {\n cssVars[cssKeyToJsKey(key)] = value.trim();\n }\n }\n\n return cssVars;\n}\n\nfunction getAllCssVariables(): Record<string, string> {\n /* c8 ignore next 2 */\n return isServer ? {} : getElementCssVariables(getAllCssVariableNames(), document.documentElement);\n}\n\nfunction isOfTypeTheme(theme: string): theme is Theme {\n return ['bootstrap', 'material', 'indigo', 'fluent'].includes(theme);\n}\n\nfunction isOfTypeThemeVariant(variant: string): variant is ThemeVariant {\n return ['light', 'dark'].includes(variant);\n}\n\nfunction getTheme() {\n if (!(theme && themeVariant)) {\n const cssVars = getAllCssVariables();\n const foundTheme = cssVars.igTheme;\n const foundVariant = cssVars.igThemeVariant;\n\n theme = isOfTypeTheme(foundTheme) ? foundTheme : 'bootstrap';\n themeVariant = isOfTypeThemeVariant(foundVariant) ? foundVariant : 'light';\n }\n\n return { theme, themeVariant };\n}\n\nclass ThemingController implements ReactiveController {\n private readonly _host: ReactiveControllerHost & ReactiveElement;\n private readonly _themes: Themes;\n private readonly _options?: ThemingControllerConfig;\n\n private _theme: Theme = 'bootstrap';\n private _variant: ThemeVariant = 'light';\n\n public get theme(): Theme {\n return this._theme;\n }\n\n constructor(\n host: ReactiveControllerHost & ReactiveElement,\n themes: Themes,\n config?: ThemingControllerConfig\n ) {\n this._host = host;\n this._themes = themes;\n this._options = config;\n this._host.addController(this);\n }\n\n /** @internal */\n public hostConnected(): void {\n this._handleThemeChanged();\n globalThis.addEventListener(CHANGE_THEME_EVENT, this);\n }\n\n /** @internal */\n public hostDisconnected(): void {\n globalThis.removeEventListener(CHANGE_THEME_EVENT, this);\n }\n\n /** @internal */\n public handleEvent(): void {\n this._handleThemeChanged();\n }\n\n private _getStyles() {\n const props = this._themes[this._variant];\n const styles = { shared: css``, theme: css`` };\n\n for (const [name, sheet] of Object.entries(props)) {\n if (name === 'shared') {\n styles.shared = sheet;\n }\n if (name === this.theme) {\n styles.theme = sheet;\n }\n }\n\n return styles;\n }\n\n protected _adoptStyles(): void {\n const { theme: currentTheme, themeVariant } = getTheme();\n this._theme = currentTheme;\n this._variant = themeVariant;\n\n const ctor = this._host.constructor as typeof LitElement;\n const { shared, theme } = this._getStyles();\n\n adoptStyles(this._host.shadowRoot!, [...ctor.elementStyles, shared, theme]);\n }\n\n private _handleThemeChanged(): void {\n this._adoptStyles();\n this._options?.themeChange?.call(this._host, this._theme);\n this._host.requestUpdate();\n }\n}\n\nexport function addThemingController(\n host: ReactiveControllerHost & ReactiveElement,\n themes: Themes,\n config?: ThemingControllerConfig\n): ThemingController {\n return new ThemingController(host, themes, config);\n}\n\nexport type { ThemingController };\n"]}
@@ -1,22 +0,0 @@
1
- import type { ExportCellValue } from './export.js';
2
- /** Excel column letter for zero-based column index (0 → A, 26 → AA). */
3
- export declare function columnLetter(index: number): string;
4
- /**
5
- * Converts a `Date` to the Excel serial date number (days since the 1899-12-30
6
- * epoch, with the day rolling over at the user's local midnight). Time of day
7
- * is preserved as the fractional part.
8
- */
9
- export declare function toExcelSerial(date: Date): number;
10
- /** A worksheet representation passed to {@link buildXLSX}. */
11
- export interface XLSXSheetData {
12
- /** Worksheet tab name. */
13
- name?: string;
14
- /** Header row labels (rendered with bold styling). */
15
- headers: string[];
16
- /** Data rows. Each row is an array of cell values, aligned to `headers`. */
17
- rows: ExportCellValue[][];
18
- }
19
- /**
20
- * Builds the complete `.xlsx` bytes for a single-sheet workbook.
21
- */
22
- export declare function buildXLSX(sheet: XLSXSheetData): Uint8Array;
package/internal/xlsx.js DELETED
@@ -1,228 +0,0 @@
1
- const encoder = new TextEncoder();
2
- let _crcTable = null;
3
- function getCrcTable() {
4
- if (_crcTable)
5
- return _crcTable;
6
- const table = new Uint32Array(256);
7
- for (let i = 0; i < 256; i++) {
8
- let c = i;
9
- for (let k = 0; k < 8; k++) {
10
- c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
11
- }
12
- table[i] = c >>> 0;
13
- }
14
- _crcTable = table;
15
- return table;
16
- }
17
- function crc32(data) {
18
- const table = getCrcTable();
19
- let c = 0xffffffff;
20
- for (let i = 0; i < data.length; i++) {
21
- c = (c >>> 8) ^ table[(c ^ data[i]) & 0xff];
22
- }
23
- return (c ^ 0xffffffff) >>> 0;
24
- }
25
- function buildZip(files) {
26
- const parts = [];
27
- const entries = [];
28
- let offset = 0;
29
- for (const file of files) {
30
- const nameBytes = encoder.encode(file.name);
31
- const crc = crc32(file.data);
32
- const header = new Uint8Array(30 + nameBytes.length);
33
- const view = new DataView(header.buffer);
34
- view.setUint32(0, 0x04034b50, true);
35
- view.setUint16(4, 20, true);
36
- view.setUint16(6, 0x0800, true);
37
- view.setUint16(8, 0, true);
38
- view.setUint16(10, 0, true);
39
- view.setUint16(12, 0x0021, true);
40
- view.setUint32(14, crc, true);
41
- view.setUint32(18, file.data.length, true);
42
- view.setUint32(22, file.data.length, true);
43
- view.setUint16(26, nameBytes.length, true);
44
- view.setUint16(28, 0, true);
45
- header.set(nameBytes, 30);
46
- parts.push(header, file.data);
47
- entries.push({ ...file, crc, offset, nameBytes });
48
- offset += header.length + file.data.length;
49
- }
50
- const centralStart = offset;
51
- for (const entry of entries) {
52
- const cd = new Uint8Array(46 + entry.nameBytes.length);
53
- const view = new DataView(cd.buffer);
54
- view.setUint32(0, 0x02014b50, true);
55
- view.setUint16(4, 0x031e, true);
56
- view.setUint16(6, 20, true);
57
- view.setUint16(8, 0x0800, true);
58
- view.setUint16(10, 0, true);
59
- view.setUint16(12, 0, true);
60
- view.setUint16(14, 0x0021, true);
61
- view.setUint32(16, entry.crc, true);
62
- view.setUint32(20, entry.data.length, true);
63
- view.setUint32(24, entry.data.length, true);
64
- view.setUint16(28, entry.nameBytes.length, true);
65
- view.setUint16(30, 0, true);
66
- view.setUint16(32, 0, true);
67
- view.setUint16(34, 0, true);
68
- view.setUint16(36, 0, true);
69
- view.setUint32(38, 0, true);
70
- view.setUint32(42, entry.offset, true);
71
- cd.set(entry.nameBytes, 46);
72
- parts.push(cd);
73
- offset += cd.length;
74
- }
75
- const centralSize = offset - centralStart;
76
- const eocd = new Uint8Array(22);
77
- const eocdView = new DataView(eocd.buffer);
78
- eocdView.setUint32(0, 0x06054b50, true);
79
- eocdView.setUint16(8, entries.length, true);
80
- eocdView.setUint16(10, entries.length, true);
81
- eocdView.setUint32(12, centralSize, true);
82
- eocdView.setUint32(16, centralStart, true);
83
- parts.push(eocd);
84
- let total = 0;
85
- for (const part of parts)
86
- total += part.length;
87
- const result = new Uint8Array(total);
88
- let pos = 0;
89
- for (const part of parts) {
90
- result.set(part, pos);
91
- pos += part.length;
92
- }
93
- return result;
94
- }
95
- const XML_ESCAPES = {
96
- '<': '&lt;',
97
- '>': '&gt;',
98
- '&': '&amp;',
99
- '"': '&quot;',
100
- "'": '&apos;',
101
- };
102
- function escapeXml(value) {
103
- let out = '';
104
- for (let i = 0; i < value.length; i++) {
105
- const code = value.charCodeAt(i);
106
- if (code < 0x20 && code !== 0x09 && code !== 0x0a && code !== 0x0d)
107
- continue;
108
- const ch = value[i];
109
- out += XML_ESCAPES[ch] ?? ch;
110
- }
111
- return out;
112
- }
113
- export function columnLetter(index) {
114
- let result = '';
115
- let n = index;
116
- while (n >= 0) {
117
- result = String.fromCharCode(65 + (n % 26)) + result;
118
- n = Math.floor(n / 26) - 1;
119
- }
120
- return result;
121
- }
122
- export function toExcelSerial(date) {
123
- const localMs = date.getTime() - date.getTimezoneOffset() * 60_000 - Date.UTC(1899, 11, 30);
124
- return localMs / 86_400_000;
125
- }
126
- const STYLE_DEFAULT = 0;
127
- const STYLE_HEADER = 1;
128
- const STYLE_DATE = 2;
129
- function renderCell(ref, value, styleIndex) {
130
- const s = styleIndex && styleIndex !== STYLE_DEFAULT ? ` s="${styleIndex}"` : '';
131
- if (value === null || value === undefined || value === '') {
132
- return styleIndex ? `<c r="${ref}"${s}/>` : '';
133
- }
134
- if (typeof value === 'boolean') {
135
- return `<c r="${ref}"${s} t="b"><v>${value ? 1 : 0}</v></c>`;
136
- }
137
- if (value instanceof Date) {
138
- return `<c r="${ref}" s="${STYLE_DATE}"><v>${toExcelSerial(value)}</v></c>`;
139
- }
140
- if (typeof value === 'number' && Number.isFinite(value)) {
141
- return `<c r="${ref}"${s}><v>${value}</v></c>`;
142
- }
143
- return `<c r="${ref}"${s} t="inlineStr"><is><t xml:space="preserve">${escapeXml(String(value))}</t></is></c>`;
144
- }
145
- const SHEET_NAME_DISALLOWED = /[\\/?*[\]:]/g;
146
- function sanitizeSheetName(raw) {
147
- return raw.replace(SHEET_NAME_DISALLOWED, '_').slice(0, 31) || 'Sheet1';
148
- }
149
- export function buildXLSX(sheet) {
150
- const sheetName = sanitizeSheetName(sheet.name ?? 'Sheet1');
151
- const headerCount = sheet.headers.length;
152
- const maxRowWidth = sheet.rows.reduce((acc, row) => Math.max(acc, row.length), 0);
153
- const totalCols = Math.max(headerCount, maxRowWidth);
154
- const totalRows = sheet.rows.length + (headerCount ? 1 : 0);
155
- const sheetRows = [];
156
- let rowNum = 1;
157
- if (headerCount) {
158
- const cells = [];
159
- for (let c = 0; c < headerCount; c++) {
160
- cells.push(renderCell(`${columnLetter(c)}${rowNum}`, sheet.headers[c], STYLE_HEADER));
161
- }
162
- sheetRows.push(`<row r="${rowNum}">${cells.join('')}</row>`);
163
- rowNum++;
164
- }
165
- for (const row of sheet.rows) {
166
- const cells = [];
167
- for (let c = 0; c < row.length; c++) {
168
- const cell = renderCell(`${columnLetter(c)}${rowNum}`, row[c]);
169
- if (cell)
170
- cells.push(cell);
171
- }
172
- sheetRows.push(`<row r="${rowNum}">${cells.join('')}</row>`);
173
- rowNum++;
174
- }
175
- const dimension = totalRows > 0 && totalCols > 0 ? `A1:${columnLetter(totalCols - 1)}${totalRows}` : 'A1';
176
- const sheetXml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
177
- `<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">` +
178
- `<dimension ref="${dimension}"/>` +
179
- `<sheetData>${sheetRows.join('')}</sheetData>` +
180
- '</worksheet>';
181
- const styles = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
182
- `<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">` +
183
- `<numFmts count="1"><numFmt numFmtId="164" formatCode="yyyy-mm-dd"/></numFmts>` +
184
- `<fonts count="2">` +
185
- `<font><sz val="11"/><name val="Calibri"/></font>` +
186
- `<font><b/><sz val="11"/><name val="Calibri"/></font>` +
187
- '</fonts>' +
188
- `<fills count="1"><fill><patternFill patternType="none"/></fill></fills>` +
189
- `<borders count="1"><border/></borders>` +
190
- `<cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs>` +
191
- `<cellXfs count="3">` +
192
- `<xf numFmtId="0" fontId="0" fillId="0" borderId="0"/>` +
193
- `<xf numFmtId="0" fontId="1" fillId="0" borderId="0" applyFont="1"/>` +
194
- `<xf numFmtId="164" fontId="0" fillId="0" borderId="0" applyNumberFormat="1"/>` +
195
- '</cellXfs>' +
196
- '</styleSheet>';
197
- const workbook = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
198
- `<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" ` +
199
- `xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">` +
200
- `<sheets><sheet name="${escapeXml(sheetName)}" sheetId="1" r:id="rId1"/></sheets>` +
201
- '</workbook>';
202
- const contentTypes = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
203
- `<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">` +
204
- `<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>` +
205
- `<Default Extension="xml" ContentType="application/xml"/>` +
206
- `<Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>` +
207
- `<Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>` +
208
- `<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/>` +
209
- '</Types>';
210
- const rootRels = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
211
- `<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">` +
212
- `<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>` +
213
- '</Relationships>';
214
- const workbookRels = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>` +
215
- `<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">` +
216
- `<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/>` +
217
- `<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>` +
218
- '</Relationships>';
219
- return buildZip([
220
- { name: '[Content_Types].xml', data: encoder.encode(contentTypes) },
221
- { name: '_rels/.rels', data: encoder.encode(rootRels) },
222
- { name: 'xl/workbook.xml', data: encoder.encode(workbook) },
223
- { name: 'xl/_rels/workbook.xml.rels', data: encoder.encode(workbookRels) },
224
- { name: 'xl/styles.xml', data: encoder.encode(styles) },
225
- { name: 'xl/worksheets/sheet1.xml', data: encoder.encode(sheetXml) },
226
- ]);
227
- }
228
- //# sourceMappingURL=xlsx.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xlsx.js","sourceRoot":"","sources":["../../src/internal/xlsx.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExportCellValue } from './export.js';\n\n// Minimal write-only OOXML (XLSX) implementation. Produces a single-sheet\n// workbook with bold headers and a date cell format, packaged in a store-only\n// (no-compression) ZIP container. No external dependencies — the goal is to\n// keep the bundle footprint of the export feature near zero.\n\nconst encoder = new TextEncoder();\n\n// --- CRC-32 (IEEE 802.3) for ZIP entries -----------------------------------\n\nlet _crcTable: Uint32Array | null = null;\nfunction getCrcTable(): Uint32Array {\n if (_crcTable) return _crcTable;\n const table = new Uint32Array(256);\n for (let i = 0; i < 256; i++) {\n let c = i;\n for (let k = 0; k < 8; k++) {\n c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;\n }\n table[i] = c >>> 0;\n }\n _crcTable = table;\n return table;\n}\n\nfunction crc32(data: Uint8Array): number {\n const table = getCrcTable();\n let c = 0xffffffff;\n for (let i = 0; i < data.length; i++) {\n c = (c >>> 8) ^ table[(c ^ data[i]) & 0xff];\n }\n return (c ^ 0xffffffff) >>> 0;\n}\n\n// --- Store-only ZIP writer -------------------------------------------------\n\ninterface ZipFile {\n name: string;\n data: Uint8Array;\n}\n\ninterface ZipEntry extends ZipFile {\n crc: number;\n offset: number;\n nameBytes: Uint8Array;\n}\n\n/**\n * Builds a store-only (no compression) ZIP archive containing the given\n * files. The XLSX format permits stored entries, which keeps this writer\n * ~100 lines without pulling in a deflate implementation.\n */\nfunction buildZip(files: ReadonlyArray<ZipFile>): Uint8Array {\n const parts: Uint8Array[] = [];\n const entries: ZipEntry[] = [];\n let offset = 0;\n\n for (const file of files) {\n const nameBytes = encoder.encode(file.name);\n const crc = crc32(file.data);\n const header = new Uint8Array(30 + nameBytes.length);\n const view = new DataView(header.buffer);\n view.setUint32(0, 0x04034b50, true);\n view.setUint16(4, 20, true); // version needed to extract\n view.setUint16(6, 0x0800, true); // flag bit 11: UTF-8 filename\n view.setUint16(8, 0, true); // compression: stored\n view.setUint16(10, 0, true); // mod time\n view.setUint16(12, 0x0021, true); // mod date: 1980-01-01\n view.setUint32(14, crc, true);\n view.setUint32(18, file.data.length, true);\n view.setUint32(22, file.data.length, true);\n view.setUint16(26, nameBytes.length, true);\n view.setUint16(28, 0, true);\n header.set(nameBytes, 30);\n parts.push(header, file.data);\n entries.push({ ...file, crc, offset, nameBytes });\n offset += header.length + file.data.length;\n }\n\n const centralStart = offset;\n for (const entry of entries) {\n const cd = new Uint8Array(46 + entry.nameBytes.length);\n const view = new DataView(cd.buffer);\n view.setUint32(0, 0x02014b50, true);\n view.setUint16(4, 0x031e, true); // version made by (unix, v3.0)\n view.setUint16(6, 20, true);\n view.setUint16(8, 0x0800, true);\n view.setUint16(10, 0, true);\n view.setUint16(12, 0, true);\n view.setUint16(14, 0x0021, true);\n view.setUint32(16, entry.crc, true);\n view.setUint32(20, entry.data.length, true);\n view.setUint32(24, entry.data.length, true);\n view.setUint16(28, entry.nameBytes.length, true);\n view.setUint16(30, 0, true);\n view.setUint16(32, 0, true);\n view.setUint16(34, 0, true);\n view.setUint16(36, 0, true);\n view.setUint32(38, 0, true);\n view.setUint32(42, entry.offset, true);\n cd.set(entry.nameBytes, 46);\n parts.push(cd);\n offset += cd.length;\n }\n\n const centralSize = offset - centralStart;\n const eocd = new Uint8Array(22);\n const eocdView = new DataView(eocd.buffer);\n eocdView.setUint32(0, 0x06054b50, true);\n eocdView.setUint16(8, entries.length, true);\n eocdView.setUint16(10, entries.length, true);\n eocdView.setUint32(12, centralSize, true);\n eocdView.setUint32(16, centralStart, true);\n parts.push(eocd);\n\n let total = 0;\n for (const part of parts) total += part.length;\n const result = new Uint8Array(total);\n let pos = 0;\n for (const part of parts) {\n result.set(part, pos);\n pos += part.length;\n }\n return result;\n}\n\n// --- XML helpers -----------------------------------------------------------\n\nconst XML_ESCAPES: Record<string, string> = {\n '<': '&lt;',\n '>': '&gt;',\n '&': '&amp;',\n '\"': '&quot;',\n \"'\": '&apos;',\n};\n\nfunction escapeXml(value: string): string {\n // XLSX is intolerant of control chars below 0x20 (except tab, LF, CR).\n // Strip them rather than letting Excel report a \"corrupt file\" warning.\n let out = '';\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n if (code < 0x20 && code !== 0x09 && code !== 0x0a && code !== 0x0d) continue;\n const ch = value[i];\n out += XML_ESCAPES[ch] ?? ch;\n }\n return out;\n}\n\n/** Excel column letter for zero-based column index (0 → A, 26 → AA). */\nexport function columnLetter(index: number): string {\n let result = '';\n let n = index;\n while (n >= 0) {\n result = String.fromCharCode(65 + (n % 26)) + result;\n n = Math.floor(n / 26) - 1;\n }\n return result;\n}\n\n/**\n * Converts a `Date` to the Excel serial date number (days since the 1899-12-30\n * epoch, with the day rolling over at the user's local midnight). Time of day\n * is preserved as the fractional part.\n */\nexport function toExcelSerial(date: Date): number {\n const localMs = date.getTime() - date.getTimezoneOffset() * 60_000 - Date.UTC(1899, 11, 30);\n return localMs / 86_400_000;\n}\n\n// --- Sheet rendering -------------------------------------------------------\n\nconst STYLE_DEFAULT = 0;\nconst STYLE_HEADER = 1;\nconst STYLE_DATE = 2;\n\nfunction renderCell(ref: string, value: ExportCellValue, styleIndex?: number): string {\n const s = styleIndex && styleIndex !== STYLE_DEFAULT ? ` s=\"${styleIndex}\"` : '';\n if (value === null || value === undefined || value === '') {\n return styleIndex ? `<c r=\"${ref}\"${s}/>` : '';\n }\n if (typeof value === 'boolean') {\n return `<c r=\"${ref}\"${s} t=\"b\"><v>${value ? 1 : 0}</v></c>`;\n }\n if (value instanceof Date) {\n return `<c r=\"${ref}\" s=\"${STYLE_DATE}\"><v>${toExcelSerial(value)}</v></c>`;\n }\n if (typeof value === 'number' && Number.isFinite(value)) {\n return `<c r=\"${ref}\"${s}><v>${value}</v></c>`;\n }\n return `<c r=\"${ref}\"${s} t=\"inlineStr\"><is><t xml:space=\"preserve\">${escapeXml(\n String(value)\n )}</t></is></c>`;\n}\n\n/** A worksheet representation passed to {@link buildXLSX}. */\nexport interface XLSXSheetData {\n /** Worksheet tab name. */\n name?: string;\n /** Header row labels (rendered with bold styling). */\n headers: string[];\n /** Data rows. Each row is an array of cell values, aligned to `headers`. */\n rows: ExportCellValue[][];\n}\n\n/** Filename-illegal characters per the OOXML spec for sheet names. */\nconst SHEET_NAME_DISALLOWED = /[\\\\/?*[\\]:]/g;\n\nfunction sanitizeSheetName(raw: string): string {\n return raw.replace(SHEET_NAME_DISALLOWED, '_').slice(0, 31) || 'Sheet1';\n}\n\n/**\n * Builds the complete `.xlsx` bytes for a single-sheet workbook.\n */\nexport function buildXLSX(sheet: XLSXSheetData): Uint8Array {\n const sheetName = sanitizeSheetName(sheet.name ?? 'Sheet1');\n const headerCount = sheet.headers.length;\n const maxRowWidth = sheet.rows.reduce((acc, row) => Math.max(acc, row.length), 0);\n const totalCols = Math.max(headerCount, maxRowWidth);\n const totalRows = sheet.rows.length + (headerCount ? 1 : 0);\n\n const sheetRows: string[] = [];\n let rowNum = 1;\n if (headerCount) {\n const cells: string[] = [];\n for (let c = 0; c < headerCount; c++) {\n cells.push(renderCell(`${columnLetter(c)}${rowNum}`, sheet.headers[c], STYLE_HEADER));\n }\n sheetRows.push(`<row r=\"${rowNum}\">${cells.join('')}</row>`);\n rowNum++;\n }\n for (const row of sheet.rows) {\n const cells: string[] = [];\n for (let c = 0; c < row.length; c++) {\n const cell = renderCell(`${columnLetter(c)}${rowNum}`, row[c]);\n if (cell) cells.push(cell);\n }\n sheetRows.push(`<row r=\"${rowNum}\">${cells.join('')}</row>`);\n rowNum++;\n }\n\n const dimension =\n totalRows > 0 && totalCols > 0 ? `A1:${columnLetter(totalCols - 1)}${totalRows}` : 'A1';\n\n const sheetXml =\n `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>` +\n `<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">` +\n `<dimension ref=\"${dimension}\"/>` +\n `<sheetData>${sheetRows.join('')}</sheetData>` +\n '</worksheet>';\n\n const styles =\n `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>` +\n `<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">` +\n `<numFmts count=\"1\"><numFmt numFmtId=\"164\" formatCode=\"yyyy-mm-dd\"/></numFmts>` +\n `<fonts count=\"2\">` +\n `<font><sz val=\"11\"/><name val=\"Calibri\"/></font>` +\n `<font><b/><sz val=\"11\"/><name val=\"Calibri\"/></font>` +\n '</fonts>' +\n `<fills count=\"1\"><fill><patternFill patternType=\"none\"/></fill></fills>` +\n `<borders count=\"1\"><border/></borders>` +\n `<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>` +\n `<cellXfs count=\"3\">` +\n `<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/>` +\n `<xf numFmtId=\"0\" fontId=\"1\" fillId=\"0\" borderId=\"0\" applyFont=\"1\"/>` +\n `<xf numFmtId=\"164\" fontId=\"0\" fillId=\"0\" borderId=\"0\" applyNumberFormat=\"1\"/>` +\n '</cellXfs>' +\n '</styleSheet>';\n\n const workbook =\n `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>` +\n `<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" ` +\n `xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">` +\n `<sheets><sheet name=\"${escapeXml(sheetName)}\" sheetId=\"1\" r:id=\"rId1\"/></sheets>` +\n '</workbook>';\n\n const contentTypes =\n `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>` +\n `<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">` +\n `<Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/>` +\n `<Default Extension=\"xml\" ContentType=\"application/xml\"/>` +\n `<Override PartName=\"/xl/workbook.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\"/>` +\n `<Override PartName=\"/xl/worksheets/sheet1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\"/>` +\n `<Override PartName=\"/xl/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\"/>` +\n '</Types>';\n\n const rootRels =\n `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>` +\n `<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">` +\n `<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>` +\n '</Relationships>';\n\n const workbookRels =\n `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>` +\n `<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">` +\n `<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\" Target=\"worksheets/sheet1.xml\"/>` +\n `<Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\" Target=\"styles.xml\"/>` +\n '</Relationships>';\n\n return buildZip([\n { name: '[Content_Types].xml', data: encoder.encode(contentTypes) },\n { name: '_rels/.rels', data: encoder.encode(rootRels) },\n { name: 'xl/workbook.xml', data: encoder.encode(workbook) },\n { name: 'xl/_rels/workbook.xml.rels', data: encoder.encode(workbookRels) },\n { name: 'xl/styles.xml', data: encoder.encode(styles) },\n { name: 'xl/worksheets/sheet1.xml', data: encoder.encode(sheetXml) },\n ]);\n}\n"]}
@@ -1,3 +0,0 @@
1
- import { css } from 'lit';
2
- export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{display:grid;height:100%;position:relative;font-family:var(--ig-font-family);box-shadow:var(--ig-elevation-2);overflow:auto;grid-template-rows:[toolbar-row] max-content [header-row] max-content [filter-row] max-content [virtualized-container] auto [paginator-row] max-content;--scrollbar-offset: 0;--z-index-base: 1}apex-virtualizer{grid-row:virtualized-container;display:flex;flex-flow:column;flex:1;background:var(--igx-content-background, var(--content-background));color:var(--igx-content-text-color, var(--content-text-color))}apex-virtualizer:focus{outline:none}[part~=resize-indicator]{position:absolute;height:100%;background-color:var(--igx-grid-resize-line-color, var(--grid-resize-line-color));width:.125rem;inset-inline-start:0;top:0;z-index:calc(var(--z-index-base) + 1)}:host{--content-background: var(--ig-gray-50);--content-text-color: var(--ig-gray-50-contrast);--header-background: var(--ig-surface-500);--header-text-color: var(--ig-surface-500-contrast);--header-border-width: 0.0625rem;--header-border-style: solid;--header-border-color: hsl(from var(--ig-gray-400) h s l/0.38);--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--sorted-header-icon-color: var(--ig-primary-500);--icon-color: "currentColor";--row-hover-background: var(--ig-gray-200);--row-hover-text-color: var(--ig-gray-200-contrast);--row-even-background: var(--ig-gray-50);--row-even-text-color: var(--ig-gray-50-contrast);--row-odd-background: var(--ig-gray-50);--row-odd-text-color: var(--ig-gray-50-contrast);--row-border-color: hsl(from var(--ig-gray-300) h s l/0.38);--row-border-style: solid;--row-border-width: 0.0625rem;--cell-active-border-color: var(--ig-primary-500);--grid-resize-line-color: var(--ig-primary-500)}`;
3
- //# sourceMappingURL=grid.bootstrap.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/styles/grid/themes/light/grid.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,mnEAAmnE,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{display:grid;height:100%;position:relative;font-family:var(--ig-font-family);box-shadow:var(--ig-elevation-2);overflow:auto;grid-template-rows:[toolbar-row] max-content [header-row] max-content [filter-row] max-content [virtualized-container] auto [paginator-row] max-content;--scrollbar-offset: 0;--z-index-base: 1}apex-virtualizer{grid-row:virtualized-container;display:flex;flex-flow:column;flex:1;background:var(--igx-content-background, var(--content-background));color:var(--igx-content-text-color, var(--content-text-color))}apex-virtualizer:focus{outline:none}[part~=resize-indicator]{position:absolute;height:100%;background-color:var(--igx-grid-resize-line-color, var(--grid-resize-line-color));width:.125rem;inset-inline-start:0;top:0;z-index:calc(var(--z-index-base) + 1)}:host{--content-background: var(--ig-gray-50);--content-text-color: var(--ig-gray-50-contrast);--header-background: var(--ig-surface-500);--header-text-color: var(--ig-surface-500-contrast);--header-border-width: 0.0625rem;--header-border-style: solid;--header-border-color: hsl(from var(--ig-gray-400) h s l/0.38);--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--sorted-header-icon-color: var(--ig-primary-500);--icon-color: \"currentColor\";--row-hover-background: var(--ig-gray-200);--row-hover-text-color: var(--ig-gray-200-contrast);--row-even-background: var(--ig-gray-50);--row-even-text-color: var(--ig-gray-50-contrast);--row-odd-background: var(--ig-gray-50);--row-odd-text-color: var(--ig-gray-50-contrast);--row-border-color: hsl(from var(--ig-gray-300) h s l/0.38);--row-border-style: solid;--row-border-width: 0.0625rem;--cell-active-border-color: var(--ig-primary-500);--grid-resize-line-color: var(--ig-primary-500)}`;"]}
@@ -1,3 +0,0 @@
1
- import { css } from 'lit';
2
- export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{display:grid;height:100%;position:relative;font-family:var(--ig-font-family);box-shadow:var(--ig-elevation-2);overflow:auto;grid-template-rows:[toolbar-row] max-content [header-row] max-content [filter-row] max-content [virtualized-container] auto [paginator-row] max-content;--scrollbar-offset: 0;--z-index-base: 1}apex-virtualizer{grid-row:virtualized-container;display:flex;flex-flow:column;flex:1;background:var(--igx-content-background, var(--content-background));color:var(--igx-content-text-color, var(--content-text-color))}apex-virtualizer:focus{outline:none}[part~=resize-indicator]{position:absolute;height:100%;background-color:var(--igx-grid-resize-line-color, var(--grid-resize-line-color));width:.125rem;inset-inline-start:0;top:0;z-index:calc(var(--z-index-base) + 1)}:host{--content-background: var(var(--ig-gray-50));--content-text-color: var(var(--ig-gray-50-contrast));--header-background: var(--ig-surface-500);--header-text-color: var(--ig-surface-500-contrast);--header-border-width: 0.0625rem;--header-border-style: solid;--header-border-color: var(--ig-gray-100);--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--sorted-header-icon-color: var(--ig-secondary-500);--icon-color: "currentColor";--row-hover-background: var(--ig-gray-200);--row-hover-text-color: var(--ig-gray-200-contrast);--row-even-background: var(--ig-gray-50);--row-even-text-color: var(--ig-gray-50-contrast);--row-odd-background: var(--ig-gray-50);--row-odd-text-color: var(--ig-gray-50-contrast);--row-border-color: var(--ig-gray-100);--row-border-style: var(--header-border-style);--row-border-width: var(--header-border-width);--cell-active-border-color: var(--ig-primary-500);--grid-resize-line-color: var(--ig-primary-500)}`;
3
- //# sourceMappingURL=grid.fluent.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid.fluent.css.js","sourceRoot":"","sources":["../../../../../src/styles/grid/themes/light/grid.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,2nEAA2nE,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{display:grid;height:100%;position:relative;font-family:var(--ig-font-family);box-shadow:var(--ig-elevation-2);overflow:auto;grid-template-rows:[toolbar-row] max-content [header-row] max-content [filter-row] max-content [virtualized-container] auto [paginator-row] max-content;--scrollbar-offset: 0;--z-index-base: 1}apex-virtualizer{grid-row:virtualized-container;display:flex;flex-flow:column;flex:1;background:var(--igx-content-background, var(--content-background));color:var(--igx-content-text-color, var(--content-text-color))}apex-virtualizer:focus{outline:none}[part~=resize-indicator]{position:absolute;height:100%;background-color:var(--igx-grid-resize-line-color, var(--grid-resize-line-color));width:.125rem;inset-inline-start:0;top:0;z-index:calc(var(--z-index-base) + 1)}:host{--content-background: var(var(--ig-gray-50));--content-text-color: var(var(--ig-gray-50-contrast));--header-background: var(--ig-surface-500);--header-text-color: var(--ig-surface-500-contrast);--header-border-width: 0.0625rem;--header-border-style: solid;--header-border-color: var(--ig-gray-100);--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--sorted-header-icon-color: var(--ig-secondary-500);--icon-color: \"currentColor\";--row-hover-background: var(--ig-gray-200);--row-hover-text-color: var(--ig-gray-200-contrast);--row-even-background: var(--ig-gray-50);--row-even-text-color: var(--ig-gray-50-contrast);--row-odd-background: var(--ig-gray-50);--row-odd-text-color: var(--ig-gray-50-contrast);--row-border-color: var(--ig-gray-100);--row-border-style: var(--header-border-style);--row-border-width: var(--header-border-width);--cell-active-border-color: var(--ig-primary-500);--grid-resize-line-color: var(--ig-primary-500)}`;"]}
@@ -1,3 +0,0 @@
1
- import { css } from 'lit';
2
- export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{display:grid;height:100%;position:relative;font-family:var(--ig-font-family);box-shadow:var(--ig-elevation-2);overflow:auto;grid-template-rows:[toolbar-row] max-content [header-row] max-content [filter-row] max-content [virtualized-container] auto [paginator-row] max-content;--scrollbar-offset: 0;--z-index-base: 1}apex-virtualizer{grid-row:virtualized-container;display:flex;flex-flow:column;flex:1;background:var(--igx-content-background, var(--content-background));color:var(--igx-content-text-color, var(--content-text-color))}apex-virtualizer:focus{outline:none}[part~=resize-indicator]{position:absolute;height:100%;background-color:var(--igx-grid-resize-line-color, var(--grid-resize-line-color));width:.125rem;inset-inline-start:0;top:0;z-index:calc(var(--z-index-base) + 1)}:host{--content-background: var(var(--ig-gray-50));--content-text-color: var(var(--ig-gray-50-contrast));--header-background: var(--ig-gray-100);--header-text-color: var(--ig-primary-500);--header-border-width: 0.0625rem;--header-border-style: solid;--header-border-color: hsl(from var(--ig-primary-500) h s l/0.24);--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--sorted-header-icon-color: var(--ig-primary-500);--icon-color: "currentColor";--row-hover-background: var(--ig-primary-50);--row-hover-text-color: var(--ig-gray-200-contrast);--row-even-background: var(--ig-gray-50);--row-even-text-color: var(--ig-gray-50-contrast);--row-odd-background: var(--ig-gray-50);--row-odd-text-color: var(--ig-gray-50-contrast);--row-border-color: var(--ig-primary-50);--row-border-style: var(--header-border-style);--row-border-width: var(--header-border-width);--cell-active-border-color: var(--ig-primary-500);--grid-resize-line-color: var(--ig-primary-500)}`;
3
- //# sourceMappingURL=grid.indigo.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid.indigo.css.js","sourceRoot":"","sources":["../../../../../src/styles/grid/themes/light/grid.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,yoEAAyoE,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{display:grid;height:100%;position:relative;font-family:var(--ig-font-family);box-shadow:var(--ig-elevation-2);overflow:auto;grid-template-rows:[toolbar-row] max-content [header-row] max-content [filter-row] max-content [virtualized-container] auto [paginator-row] max-content;--scrollbar-offset: 0;--z-index-base: 1}apex-virtualizer{grid-row:virtualized-container;display:flex;flex-flow:column;flex:1;background:var(--igx-content-background, var(--content-background));color:var(--igx-content-text-color, var(--content-text-color))}apex-virtualizer:focus{outline:none}[part~=resize-indicator]{position:absolute;height:100%;background-color:var(--igx-grid-resize-line-color, var(--grid-resize-line-color));width:.125rem;inset-inline-start:0;top:0;z-index:calc(var(--z-index-base) + 1)}:host{--content-background: var(var(--ig-gray-50));--content-text-color: var(var(--ig-gray-50-contrast));--header-background: var(--ig-gray-100);--header-text-color: var(--ig-primary-500);--header-border-width: 0.0625rem;--header-border-style: solid;--header-border-color: hsl(from var(--ig-primary-500) h s l/0.24);--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--sorted-header-icon-color: var(--ig-primary-500);--icon-color: \"currentColor\";--row-hover-background: var(--ig-primary-50);--row-hover-text-color: var(--ig-gray-200-contrast);--row-even-background: var(--ig-gray-50);--row-even-text-color: var(--ig-gray-50-contrast);--row-odd-background: var(--ig-gray-50);--row-odd-text-color: var(--ig-gray-50-contrast);--row-border-color: var(--ig-primary-50);--row-border-style: var(--header-border-style);--row-border-width: var(--header-border-width);--cell-active-border-color: var(--ig-primary-500);--grid-resize-line-color: var(--ig-primary-500)}`;"]}
@@ -1,3 +0,0 @@
1
- import { css } from 'lit';
2
- export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{display:grid;height:100%;position:relative;font-family:var(--ig-font-family);box-shadow:var(--ig-elevation-2);overflow:auto;grid-template-rows:[toolbar-row] max-content [header-row] max-content [filter-row] max-content [virtualized-container] auto [paginator-row] max-content;--scrollbar-offset: 0;--z-index-base: 1}apex-virtualizer{grid-row:virtualized-container;display:flex;flex-flow:column;flex:1;background:var(--igx-content-background, var(--content-background));color:var(--igx-content-text-color, var(--content-text-color))}apex-virtualizer:focus{outline:none}[part~=resize-indicator]{position:absolute;height:100%;background-color:var(--igx-grid-resize-line-color, var(--grid-resize-line-color));width:.125rem;inset-inline-start:0;top:0;z-index:calc(var(--z-index-base) + 1)}:host{--content-background: var(var(--ig-gray-50));--content-text-color: var(var(--ig-gray-50-contrast));--header-background: var(--ig-gray-100);--header-text-color: hsl(from var(--ig-gray-800) h s l/0.7);--header-border-width: 0.0625rem;--header-border-style: solid;--header-border-color: hsl(from var(--ig-gray-400) h s l/0.38);--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--sorted-header-icon-color: var(--ig-secondary-500);--icon-color: "currentColor";--row-hover-background: var(--ig-gray-200);--row-hover-text-color: var(--ig-gray-200-contrast);--row-even-background: var(--ig-gray-50);--row-even-text-color: var(--ig-gray-800);--row-odd-background: var(--ig-gray-50);--row-odd-text-color: var(--ig-gray-800);--row-border-color: hsl(from var(--ig-gray-300) h s l/0.38);--row-border-style: var(--header-border-style);--row-border-width: var(--header-border-width);--cell-active-border-color: var(--ig-secondary-500);--grid-resize-line-color: var(--ig-secondary-500)}`;
3
- //# sourceMappingURL=grid.material.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid.material.css.js","sourceRoot":"","sources":["../../../../../src/styles/grid/themes/light/grid.material.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,8pEAA8pE,CAAC","sourcesContent":["import { css } from 'lit';\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);--component-size: 3}:host{display:grid;height:100%;position:relative;font-family:var(--ig-font-family);box-shadow:var(--ig-elevation-2);overflow:auto;grid-template-rows:[toolbar-row] max-content [header-row] max-content [filter-row] max-content [virtualized-container] auto [paginator-row] max-content;--scrollbar-offset: 0;--z-index-base: 1}apex-virtualizer{grid-row:virtualized-container;display:flex;flex-flow:column;flex:1;background:var(--igx-content-background, var(--content-background));color:var(--igx-content-text-color, var(--content-text-color))}apex-virtualizer:focus{outline:none}[part~=resize-indicator]{position:absolute;height:100%;background-color:var(--igx-grid-resize-line-color, var(--grid-resize-line-color));width:.125rem;inset-inline-start:0;top:0;z-index:calc(var(--z-index-base) + 1)}:host{--content-background: var(var(--ig-gray-50));--content-text-color: var(var(--ig-gray-50-contrast));--header-background: var(--ig-gray-100);--header-text-color: hsl(from var(--ig-gray-800) h s l/0.7);--header-border-width: 0.0625rem;--header-border-style: solid;--header-border-color: hsl(from var(--ig-gray-400) h s l/0.38);--filtering-header-background: var(--ig-gray-50);--filtering-row-background: var(--ig-gray-50);--filtering-row-text-color: var(--ig-gray-50-contrast);--sorted-header-icon-color: var(--ig-secondary-500);--icon-color: \"currentColor\";--row-hover-background: var(--ig-gray-200);--row-hover-text-color: var(--ig-gray-200-contrast);--row-even-background: var(--ig-gray-50);--row-even-text-color: var(--ig-gray-800);--row-odd-background: var(--ig-gray-50);--row-odd-text-color: var(--ig-gray-800);--row-border-color: hsl(from var(--ig-gray-300) h s l/0.38);--row-border-style: var(--header-border-style);--row-border-width: var(--header-border-width);--cell-active-border-color: var(--ig-secondary-500);--grid-resize-line-color: var(--ig-secondary-500)}`;"]}