@highcharts/grid-pro 2.0.0 → 2.1.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 (166) hide show
  1. package/css/grid-pro.css +93 -90
  2. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +2 -0
  3. package/es-modules/Accessibility/Options/LangDefaults.js +6 -1
  4. package/es-modules/Accessibility/Utils/ChartUtilities.js +3 -3
  5. package/es-modules/Core/Chart/Chart.js +1 -1
  6. package/es-modules/Core/Color/ColorString.d.ts +25 -0
  7. package/es-modules/Core/Color/ColorType.d.ts +43 -0
  8. package/es-modules/Core/Color/GradientColor.d.ts +57 -0
  9. package/es-modules/Core/Globals.js +1 -1
  10. package/es-modules/Core/Renderer/AlignObject.d.ts +37 -0
  11. package/es-modules/Core/Renderer/BBoxObject.d.ts +40 -0
  12. package/es-modules/Core/Renderer/CSSObject.d.ts +130 -0
  13. package/es-modules/Core/Renderer/DOMElementType.d.ts +36 -0
  14. package/es-modules/Core/Renderer/DashStyleValue.d.ts +28 -0
  15. package/es-modules/Core/Renderer/FontMetricsObject.d.ts +38 -0
  16. package/es-modules/Core/Renderer/HTML/HTMLAttributes.d.ts +57 -0
  17. package/es-modules/Core/Renderer/PolygonBoxObject.d.ts +19 -0
  18. package/es-modules/Core/Renderer/Position3DObject.d.ts +35 -0
  19. package/es-modules/Core/Renderer/PositionObject.d.ts +28 -0
  20. package/es-modules/Core/Renderer/RectangleObject.d.ts +35 -0
  21. package/es-modules/Core/Renderer/RendererType.d.ts +53 -0
  22. package/es-modules/Core/Renderer/SVG/ButtonThemeObject.d.ts +43 -0
  23. package/es-modules/Core/Renderer/SVG/SVGArc3D.d.ts +44 -0
  24. package/es-modules/Core/Renderer/SVG/SVGAttributes.d.ts +147 -0
  25. package/es-modules/Core/Renderer/SVG/SVGAttributes3D.d.ts +42 -0
  26. package/es-modules/Core/Renderer/SVG/SVGCuboid.d.ts +42 -0
  27. package/es-modules/Core/Renderer/SVG/SVGElementBase.d.ts +31 -0
  28. package/es-modules/Core/Renderer/SVG/SVGPath.d.ts +97 -0
  29. package/es-modules/Core/Renderer/SVG/SVGPath3D.d.ts +40 -0
  30. package/es-modules/Core/Renderer/SVG/SVGRendererBase.d.ts +31 -0
  31. package/es-modules/Core/Renderer/SVG/SymbolOptions.d.ts +41 -0
  32. package/es-modules/Core/Renderer/SVG/SymbolType.d.ts +50 -0
  33. package/es-modules/Core/Renderer/ShadowOptionsObject.d.ts +40 -0
  34. package/es-modules/Core/Renderer/SizeObject.d.ts +28 -0
  35. package/es-modules/Core/Templating.js +6 -7
  36. package/es-modules/Data/Connectors/DataConnector.js +3 -2
  37. package/es-modules/Data/Connectors/DataConnectorOptions.d.ts +1 -1
  38. package/es-modules/Data/DataTable.d.ts +1 -1
  39. package/es-modules/Data/DataTable.js +3 -2
  40. package/es-modules/Data/DataTableCore.js +15 -6
  41. package/es-modules/Grid/Core/Accessibility/Accessibility.d.ts +13 -15
  42. package/es-modules/Grid/Core/Credits.d.ts +0 -2
  43. package/es-modules/Grid/Core/Defaults.d.ts +20 -17
  44. package/es-modules/Grid/Core/Defaults.js +116 -114
  45. package/es-modules/Grid/Core/Globals.d.ts +108 -32
  46. package/es-modules/Grid/Core/Globals.js +98 -111
  47. package/es-modules/Grid/Core/Grid.d.ts +51 -17
  48. package/es-modules/Grid/Core/Grid.js +369 -79
  49. package/es-modules/Grid/Core/GridUtils.d.ts +96 -89
  50. package/es-modules/Grid/Core/GridUtils.js +143 -155
  51. package/es-modules/Grid/Core/Options.d.ts +3 -7
  52. package/es-modules/Grid/Core/Pagination/Icons.d.ts +4 -4
  53. package/es-modules/Grid/Core/Pagination/Pagination.d.ts +32 -57
  54. package/es-modules/Grid/Core/Pagination/Pagination.js +206 -214
  55. package/es-modules/Grid/Core/Pagination/PaginationOptions.d.ts +22 -15
  56. package/es-modules/Grid/Core/Querying/PaginationController.d.ts +32 -9
  57. package/es-modules/Grid/Core/Querying/PaginationController.js +58 -18
  58. package/es-modules/Grid/Core/Querying/SortingController.d.ts +7 -15
  59. package/es-modules/Grid/Core/Querying/SortingController.js +2 -3
  60. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.d.ts +1 -1
  61. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.js +32 -4
  62. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilteringTypes.d.ts +3 -3
  63. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.d.ts +3 -5
  64. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.js +1 -5
  65. package/es-modules/Grid/Core/Table/Body/TableCell.d.ts +14 -10
  66. package/es-modules/Grid/Core/Table/Body/TableCell.js +22 -25
  67. package/es-modules/Grid/Core/Table/Body/TableRow.d.ts +0 -2
  68. package/es-modules/Grid/Core/Table/Cell.js +30 -0
  69. package/es-modules/Grid/Core/Table/CellContent/TextContent.d.ts +2 -7
  70. package/es-modules/Grid/Core/Table/CellContent/TextContent.js +25 -14
  71. package/es-modules/Grid/Core/Table/Column.d.ts +7 -9
  72. package/es-modules/Grid/Core/Table/Column.js +23 -1
  73. package/es-modules/Grid/Core/Table/ColumnResizing/AdjacentResizingMode.js +2 -2
  74. package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.d.ts +30 -23
  75. package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.js +39 -39
  76. package/es-modules/Grid/Core/Table/ColumnResizing/DistributedResizingMode.js +1 -1
  77. package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.js +2 -2
  78. package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.d.ts +6 -1
  79. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.js +10 -0
  80. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.d.ts +2 -2
  81. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.d.ts +26 -24
  82. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.js +37 -39
  83. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.d.ts +1 -1
  84. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.d.ts +1 -1
  85. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.d.ts +1 -1
  86. package/es-modules/Grid/Core/Table/Header/HeaderCell.js +3 -4
  87. package/es-modules/Grid/Core/Table/Header/HeaderRow.d.ts +0 -2
  88. package/es-modules/Grid/Core/Table/Header/TableHeader.d.ts +0 -2
  89. package/es-modules/Grid/Core/Table/Table.d.ts +11 -13
  90. package/es-modules/Grid/Core/Table/Table.js +9 -5
  91. package/es-modules/Grid/Core/UI/Button.d.ts +1 -1
  92. package/es-modules/Grid/Core/UI/ContextMenu.d.ts +1 -1
  93. package/es-modules/Grid/Core/UI/ContextMenu.js +1 -1
  94. package/es-modules/Grid/Core/UI/ContextMenuButton.d.ts +39 -44
  95. package/es-modules/Grid/Core/UI/ContextMenuButton.js +4 -4
  96. package/es-modules/Grid/Core/UI/Popup.d.ts +17 -19
  97. package/es-modules/Grid/Core/UI/Popup.js +2 -1
  98. package/es-modules/Grid/Core/UI/SvgIcons.d.ts +49 -50
  99. package/es-modules/Grid/Core/UI/SvgIcons.js +114 -123
  100. package/es-modules/Grid/Core/UI/ToolbarButton.d.ts +46 -52
  101. package/es-modules/Grid/Core/UI/ToolbarButton.js +4 -3
  102. package/es-modules/Grid/Pro/CellEditing/CellEditing.d.ts +6 -8
  103. package/es-modules/Grid/Pro/CellEditing/CellEditing.js +8 -11
  104. package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.d.ts +27 -1
  105. package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.js +149 -149
  106. package/es-modules/Grid/Pro/CellRendering/CellRenderer.d.ts +18 -20
  107. package/es-modules/Grid/Pro/CellRendering/CellRenderer.js +1 -1
  108. package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.d.ts +19 -17
  109. package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.js +28 -34
  110. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.d.ts +12 -1
  111. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.js +41 -46
  112. package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.js +2 -2
  113. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContent.d.ts +2 -2
  114. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.d.ts +2 -2
  115. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.js +4 -2
  116. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateTimeInputContent.d.ts +2 -2
  117. package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.js +3 -1
  118. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.js +3 -1
  119. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.d.ts +19 -8
  120. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.js +17 -13
  121. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.js +3 -1
  122. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TimeInputContent.d.ts +2 -2
  123. package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.d.ts +18 -20
  124. package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.js +3 -3
  125. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.d.ts +10 -12
  126. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.js +3 -3
  127. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRendererBase.d.ts +17 -20
  128. package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.d.ts +10 -12
  129. package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.js +3 -3
  130. package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.d.ts +20 -22
  131. package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.js +3 -3
  132. package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.d.ts +40 -42
  133. package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.js +3 -3
  134. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.d.ts +16 -18
  135. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.js +14 -22
  136. package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.d.ts +22 -24
  137. package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.js +3 -3
  138. package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.d.ts +10 -12
  139. package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.js +3 -3
  140. package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.d.ts +10 -12
  141. package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.js +3 -3
  142. package/es-modules/Grid/Pro/ColumnTypes/Validator.d.ts +46 -51
  143. package/es-modules/Grid/Pro/ColumnTypes/Validator.js +62 -77
  144. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.d.ts +16 -3
  145. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.js +26 -31
  146. package/es-modules/Grid/Pro/Credits/CreditsPro.d.ts +0 -2
  147. package/es-modules/Grid/Pro/Credits/CreditsProComposition.d.ts +12 -11
  148. package/es-modules/Grid/Pro/Credits/CreditsProComposition.js +29 -31
  149. package/es-modules/Grid/Pro/Export/Exporting.d.ts +3 -3
  150. package/es-modules/Grid/Pro/Export/Exporting.js +35 -29
  151. package/es-modules/Grid/Pro/Export/ExportingComposition.d.ts +12 -11
  152. package/es-modules/Grid/Pro/Export/ExportingComposition.js +24 -26
  153. package/es-modules/Grid/Pro/GridEvents.d.ts +19 -1
  154. package/es-modules/Grid/Pro/GridEvents.js +6 -2
  155. package/es-modules/Grid/Pro/Pagination/PaginationComposition.d.ts +4 -11
  156. package/es-modules/Grid/Pro/Pagination/PaginationComposition.js +44 -45
  157. package/es-modules/Grid/index.d.ts +1 -0
  158. package/es-modules/masters/grid-pro.src.d.ts +62 -37
  159. package/es-modules/masters/grid-pro.src.js +37 -39
  160. package/grid-pro.d.ts +122 -48
  161. package/grid-pro.js +3 -6
  162. package/grid-pro.js.map +1 -1
  163. package/grid-pro.src.d.ts +122 -48
  164. package/grid-pro.src.js +6650 -6277
  165. package/package.json +13 -4
  166. package/es-modules/Grid/Pro/ColumnTypes/ColumnDataType.d.ts +0 -29
@@ -1,19 +1,14 @@
1
- import type Column from '../Column';
1
+ import type { ColumnDataType } from '../Column';
2
2
  import CellContent from './CellContent.js';
3
3
  import TableCell from '../Body/TableCell';
4
4
  /**
5
5
  * Represents a text type of content.
6
6
  */
7
7
  declare class TextContent extends CellContent {
8
+ static readonly defaultFormatsForDataTypes: Record<ColumnDataType, string>;
8
9
  constructor(cell: TableCell);
9
10
  protected add(): void;
10
11
  destroy(): void;
11
12
  update(): void;
12
13
  }
13
- declare namespace TextContent {
14
- /**
15
- * Default formats for data types.
16
- */
17
- const defaultFormatsForDataTypes: Record<Column.DataType, string>;
18
- }
19
14
  export default TextContent;
@@ -18,7 +18,7 @@ import CellContent from './CellContent.js';
18
18
  import GridUtils from '../../GridUtils.js';
19
19
  const { setHTMLContent } = GridUtils;
20
20
  import Utils from '../../../../Core/Utilities.js';
21
- const { defined } = Utils;
21
+ const { defined, isString } = Utils;
22
22
  /* *
23
23
  *
24
24
  * Class
@@ -28,10 +28,20 @@ const { defined } = Utils;
28
28
  * Represents a text type of content.
29
29
  */
30
30
  class TextContent extends CellContent {
31
+ /* *
32
+ *
33
+ * Constructor
34
+ *
35
+ * */
31
36
  constructor(cell) {
32
37
  super(cell);
33
38
  this.add();
34
39
  }
40
+ /* *
41
+ *
42
+ * Methods
43
+ *
44
+ * */
35
45
  add() {
36
46
  this.update();
37
47
  }
@@ -66,7 +76,13 @@ class TextContent extends CellContent {
66
76
  (format ? cell.format(format) : value + '');
67
77
  }
68
78
  else if (isDefaultFormat) {
69
- cellContent = formatter?.call(cell).toString() || value + '';
79
+ const formattedValue = formatter?.call(cell);
80
+ if (isString(formattedValue)) {
81
+ cellContent = formattedValue;
82
+ }
83
+ else {
84
+ cellContent = value + '';
85
+ }
70
86
  }
71
87
  else if (isDefaultFormatter) {
72
88
  cellContent = format ? cell.format(format) : value + '';
@@ -76,20 +92,15 @@ class TextContent extends CellContent {
76
92
  }
77
93
  /* *
78
94
  *
79
- * Namespace
95
+ * Static Properties
80
96
  *
81
97
  * */
82
- (function (TextContent) {
83
- /**
84
- * Default formats for data types.
85
- */
86
- TextContent.defaultFormatsForDataTypes = {
87
- string: '{value}',
88
- number: '{value}',
89
- 'boolean': '{value}',
90
- datetime: '{value:%Y-%m-%d %H:%M:%S}'
91
- };
92
- })(TextContent || (TextContent = {}));
98
+ TextContent.defaultFormatsForDataTypes = {
99
+ string: '{value}',
100
+ number: '{value}',
101
+ 'boolean': '{value}',
102
+ datetime: '{value:%Y-%m-%d %H:%M:%S}'
103
+ };
93
104
  /* *
94
105
  *
95
106
  * Default Export
@@ -10,7 +10,7 @@ import TableCell from './Body/TableCell';
10
10
  /**
11
11
  * Represents a column in the data grid.
12
12
  */
13
- declare class Column {
13
+ export declare class Column {
14
14
  /**
15
15
  * The viewport (table) the column belongs to.
16
16
  */
@@ -18,7 +18,7 @@ declare class Column {
18
18
  /**
19
19
  * Type of the data in the column.
20
20
  */
21
- readonly dataType: Column.DataType;
21
+ readonly dataType: ColumnDataType;
22
22
  /**
23
23
  * The cells of the column.
24
24
  */
@@ -35,7 +35,7 @@ declare class Column {
35
35
  * The options of the column as a proxy that provides merged access to
36
36
  * original options and defaults if not defined in the individual options.
37
37
  */
38
- readonly options: Column.Options;
38
+ readonly options: NoIdColumnOptions;
39
39
  /**
40
40
  * The index of the column in the viewport.
41
41
  */
@@ -126,11 +126,9 @@ declare class Column {
126
126
  * The formatted string.
127
127
  */
128
128
  format(template: string): string;
129
- update(options: Column.Options, render?: boolean): void;
130
- update(options: Column.Options, render?: true): Promise<void>;
131
- }
132
- declare namespace Column {
133
- type Options = Omit<IndividualColumnOptions, 'id'>;
134
- type DataType = 'string' | 'number' | 'boolean' | 'datetime';
129
+ update(options: NoIdColumnOptions, render?: boolean): void;
130
+ update(options: NoIdColumnOptions, render?: true): Promise<void>;
135
131
  }
132
+ export type NoIdColumnOptions = Omit<IndividualColumnOptions, 'id'>;
133
+ export type ColumnDataType = 'string' | 'number' | 'boolean' | 'datetime';
136
134
  export default Column;
@@ -30,7 +30,7 @@ const { createOptionsProxy } = GridUtils;
30
30
  /**
31
31
  * Represents a column in the data grid.
32
32
  */
33
- class Column {
33
+ export class Column {
34
34
  /* *
35
35
  *
36
36
  * Constructor
@@ -208,6 +208,28 @@ class Column {
208
208
  format(template) {
209
209
  return Templating.format(template, this, this.viewport.grid);
210
210
  }
211
+ /**
212
+ * Sets the new column options to the userOptions field.
213
+ *
214
+ * @param options
215
+ * The options to set.
216
+ *
217
+ * @param overwrite
218
+ * Whether to overwrite the existing column options with the new ones.
219
+ * Default is `false`.
220
+ *
221
+ * @returns
222
+ * The difference between the previous and the new column options in form
223
+ * of a record of `[column.id]: column.options`.
224
+ *
225
+ * @internal
226
+ */
227
+ setOptions(options, overwrite = false) {
228
+ return this.viewport.grid.setColumnOptions([{
229
+ id: this.id,
230
+ ...options
231
+ }], overwrite);
232
+ }
211
233
  /**
212
234
  * Updates the column with new options.
213
235
  *
@@ -46,11 +46,11 @@ class AdjacentResizingMode extends ResizingMode {
46
46
  const newW = Math.round(Math.max(colW + diff, minWidth) * 10) / 10;
47
47
  this.columnWidths[column.id] = newW;
48
48
  this.columnWidthUnits[column.id] = 0; // Always save in px
49
- column.update({ width: newW }, false);
49
+ column.setOptions({ width: newW });
50
50
  if (nextCol) {
51
51
  const newNextW = this.columnWidths[nextCol.id] = Math.round(Math.max((resizer.nextColumnStartWidth ?? 0) + colW - newW, minWidth) * 10) / 10;
52
52
  this.columnWidthUnits[nextCol.id] = 0; // Always save in px
53
- nextCol.update({ width: newNextW }, false);
53
+ nextCol.setOptions({ width: newNextW });
54
54
  }
55
55
  }
56
56
  }
@@ -3,30 +3,37 @@ import ResizingMode from './ResizingMode.js';
3
3
  import AdjacentResizingMode from './AdjacentResizingMode.js';
4
4
  import IndependentResizingMode from './IndependentResizingMode.js';
5
5
  import DistributedResizingMode from './DistributedResizingMode.js';
6
- declare namespace ColumnResizing {
7
- /**
8
- * Abstract class representing a column resizing mode.
9
- */
10
- const AbstractStrategy: typeof ResizingMode;
11
- /**
12
- * Registry of column resizing modes.
13
- */
14
- const types: {
6
+ export type ColumnResizingMode = keyof typeof types;
7
+ /**
8
+ * Abstract class representing a column resizing mode.
9
+ */
10
+ export declare const AbstractStrategy: typeof ResizingMode;
11
+ /**
12
+ * Registry of column resizing modes.
13
+ */
14
+ export declare const types: {
15
+ adjacent: typeof AdjacentResizingMode;
16
+ distributed: typeof DistributedResizingMode;
17
+ independent: typeof IndependentResizingMode;
18
+ };
19
+ /**
20
+ * Creates a new column resizing mode instance based on the
21
+ * viewport's options.
22
+ *
23
+ * @param viewport
24
+ * The table that the column resizing mode is applied to.
25
+ *
26
+ * @returns
27
+ * The proper column resizing mode.
28
+ */
29
+ export declare function initMode(viewport: Table): ResizingMode;
30
+ declare const _default: {
31
+ readonly initMode: typeof initMode;
32
+ readonly types: {
15
33
  adjacent: typeof AdjacentResizingMode;
16
34
  distributed: typeof DistributedResizingMode;
17
35
  independent: typeof IndependentResizingMode;
18
36
  };
19
- type ModeType = keyof typeof types;
20
- /**
21
- * Creates a new column resizing mode instance based on the
22
- * viewport's options.
23
- *
24
- * @param viewport
25
- * The table that the column resizing mode is applied to.
26
- *
27
- * @returns
28
- * The proper column resizing mode.
29
- */
30
- function initMode(viewport: Table): ResizingMode;
31
- }
32
- export default ColumnResizing;
37
+ readonly AbstractStrategy: typeof ResizingMode;
38
+ };
39
+ export default _default;
@@ -19,50 +19,50 @@ import IndependentResizingMode from './IndependentResizingMode.js';
19
19
  import DistributedResizingMode from './DistributedResizingMode.js';
20
20
  /* *
21
21
  *
22
- * Namespace
22
+ * Definitions
23
23
  *
24
24
  * */
25
- var ColumnResizing;
26
- (function (ColumnResizing) {
27
- /**
28
- * Abstract class representing a column resizing mode.
29
- */
30
- ColumnResizing.AbstractStrategy = ResizingMode;
31
- /**
32
- * Registry of column resizing modes.
33
- */
34
- ColumnResizing.types = {
35
- adjacent: AdjacentResizingMode,
36
- distributed: DistributedResizingMode,
37
- independent: IndependentResizingMode
38
- };
39
- /**
40
- * Creates a new column resizing mode instance based on the
41
- * viewport's options.
42
- *
43
- * @param viewport
44
- * The table that the column resizing mode is applied to.
45
- *
46
- * @returns
47
- * The proper column resizing mode.
48
- */
49
- function initMode(viewport) {
50
- const modeName = viewport.grid.options?.rendering?.columns?.resizing?.mode ||
51
- 'adjacent';
52
- let ModeConstructor = ColumnResizing.types[modeName];
53
- if (!ModeConstructor) {
54
- // eslint-disable-next-line no-console
55
- console.warn(`Unknown column resizing mode: '${modeName}'. Applied ` +
56
- 'default \'adjacent\' mode.');
57
- ModeConstructor = ColumnResizing.types.adjacent;
58
- }
59
- return new ModeConstructor(viewport);
25
+ /**
26
+ * Abstract class representing a column resizing mode.
27
+ */
28
+ export const AbstractStrategy = ResizingMode;
29
+ /**
30
+ * Registry of column resizing modes.
31
+ */
32
+ export const types = {
33
+ adjacent: AdjacentResizingMode,
34
+ distributed: DistributedResizingMode,
35
+ independent: IndependentResizingMode
36
+ };
37
+ /**
38
+ * Creates a new column resizing mode instance based on the
39
+ * viewport's options.
40
+ *
41
+ * @param viewport
42
+ * The table that the column resizing mode is applied to.
43
+ *
44
+ * @returns
45
+ * The proper column resizing mode.
46
+ */
47
+ export function initMode(viewport) {
48
+ const modeName = viewport.grid.options?.rendering?.columns?.resizing?.mode ||
49
+ 'adjacent';
50
+ let ModeConstructor = types[modeName];
51
+ if (!ModeConstructor) {
52
+ // eslint-disable-next-line no-console
53
+ console.warn(`Unknown column resizing mode: '${modeName}'. Applied ` +
54
+ 'default \'adjacent\' mode.');
55
+ ModeConstructor = types.adjacent;
60
56
  }
61
- ColumnResizing.initMode = initMode;
62
- })(ColumnResizing || (ColumnResizing = {}));
57
+ return new ModeConstructor(viewport);
58
+ }
63
59
  /* *
64
60
  *
65
61
  * Default Export
66
62
  *
67
63
  * */
68
- export default ColumnResizing;
64
+ export default {
65
+ initMode,
66
+ types,
67
+ AbstractStrategy
68
+ };
@@ -42,7 +42,7 @@ class DistributedResizingMode extends ResizingMode {
42
42
  // Set the width of the resized column.
43
43
  const width = this.columnWidths[column.id] = Math.round(Math.max((resizer.columnStartWidth || 0) + diff, ResizingMode.getMinWidth(column)) * 10) / 10;
44
44
  this.columnWidthUnits[column.id] = 0; // Set to px
45
- column.update({ width }, false);
45
+ column.setOptions({ width });
46
46
  }
47
47
  }
48
48
  /* *
@@ -50,9 +50,9 @@ class IndependentResizingMode extends ResizingMode {
50
50
  const rcWidth = this.columnWidths[rightCol.id] =
51
51
  rightCol.getWidth();
52
52
  this.columnWidthUnits[rightCol.id] = 0; // Set to px
53
- rightCol.update({ width: rcWidth }, false);
53
+ rightCol.setOptions({ width: rcWidth });
54
54
  }
55
- column.update({ width }, false);
55
+ column.setOptions({ width });
56
56
  }
57
57
  }
58
58
  /* *
@@ -1,4 +1,4 @@
1
- import type { ColumnResizingMode } from '../../Options';
1
+ import type { ColumnResizingMode } from './ColumnResizing';
2
2
  import type Table from '../Table';
3
3
  import type Column from '../Column.js';
4
4
  import type ColumnsResizer from '../Actions/ColumnsResizer';
@@ -30,6 +30,11 @@ declare abstract class ResizingMode {
30
30
  * should be maintained when the table is destroyed and recreated.
31
31
  */
32
32
  invalidated?: boolean;
33
+ /**
34
+ * Whether the column distribution strategy is dirty. This flag is used to
35
+ * determine whether the column widths should be re-loaded.
36
+ */
37
+ isDirty?: boolean;
33
38
  /**
34
39
  * Creates a new column distribution strategy.
35
40
  *
@@ -92,6 +92,15 @@ class HeaderCellToolbar {
92
92
  container.removeEventListener('keydown', onKeyDown);
93
93
  });
94
94
  }
95
+ /**
96
+ * Refreshes the state of the toolbar buttons.
97
+ * @internal
98
+ */
99
+ refreshState() {
100
+ for (const button of this.buttons) {
101
+ button.refreshState();
102
+ }
103
+ }
95
104
  /**
96
105
  * Destroys all buttons of the toolbar.
97
106
  */
@@ -142,6 +151,7 @@ class HeaderCellToolbar {
142
151
  destroyer();
143
152
  }
144
153
  this.eventListenerDestroyers.length = 0;
154
+ this.clearButtons();
145
155
  this.columnResizeObserver?.disconnect();
146
156
  delete this.columnResizeObserver;
147
157
  }
@@ -1,6 +1,6 @@
1
1
  import type Button from '../../../UI/Button';
2
2
  import ColumnFiltering from '../../Actions/ColumnFiltering/ColumnFiltering.js';
3
- import Popup from '../../../UI/Popup.js';
3
+ import Popup, { PopupOptions } from '../../../UI/Popup.js';
4
4
  /**
5
5
  * The column filtering popup.
6
6
  */
@@ -21,7 +21,7 @@ declare class FilterPopup extends Popup {
21
21
  * @param options
22
22
  * Popup options.
23
23
  */
24
- constructor(filtering: ColumnFiltering, button: Button, options?: Popup.Options);
24
+ constructor(filtering: ColumnFiltering, button: Button, options?: PopupOptions);
25
25
  show(anchorElement?: HTMLElement): void;
26
26
  protected renderContent(contentElement: HTMLElement): void;
27
27
  protected onKeyDown(event: KeyboardEvent): void;
@@ -1,25 +1,27 @@
1
1
  import type Column from '../../Column';
2
- declare namespace StateHelpers {
3
- /**
4
- * Checks if the column is filtered.
5
- *
6
- * @param column
7
- * The column to check.
8
- */
9
- function isFiltered(column: Column): boolean;
10
- /**
11
- * Checks if the column is sorted.
12
- *
13
- * @param column
14
- * The column to check.
15
- *
16
- * @param order
17
- * Optional sorting order to check for.
18
- *
19
- * @returns
20
- * True if the column is sorted. In case of `order` is provided, true
21
- * only if the column is sorted in the provided order.
22
- */
23
- function isSorted(column: Column, order?: ('asc' | 'desc')): boolean;
24
- }
25
- export default StateHelpers;
2
+ /**
3
+ * Checks if the column is filtered.
4
+ *
5
+ * @param column
6
+ * The column to check.
7
+ */
8
+ export declare function isFiltered(column: Column): boolean;
9
+ /**
10
+ * Checks if the column is sorted.
11
+ *
12
+ * @param column
13
+ * The column to check.
14
+ *
15
+ * @param order
16
+ * Optional sorting order to check for.
17
+ *
18
+ * @returns
19
+ * True if the column is sorted. In case of `order` is provided, true
20
+ * only if the column is sorted in the provided order.
21
+ */
22
+ export declare function isSorted(column: Column, order?: ('asc' | 'desc')): boolean;
23
+ declare const _default: {
24
+ readonly isFiltered: typeof isFiltered;
25
+ readonly isSorted: typeof isSorted;
26
+ };
27
+ export default _default;
@@ -18,48 +18,46 @@
18
18
  * Namespace
19
19
  *
20
20
  * */
21
- var StateHelpers;
22
- (function (StateHelpers) {
23
- /**
24
- * Checks if the column is filtered.
25
- *
26
- * @param column
27
- * The column to check.
28
- */
29
- function isFiltered(column) {
30
- const { condition, value } = column.options.filtering || {};
31
- return !!(condition && (['empty', 'notEmpty', 'true', 'false'].includes(condition) ||
32
- (value !== void 0 && value !== '') // Accept null and 0
33
- ));
21
+ /**
22
+ * Checks if the column is filtered.
23
+ *
24
+ * @param column
25
+ * The column to check.
26
+ */
27
+ export function isFiltered(column) {
28
+ const { condition, value } = column.options.filtering || {};
29
+ return !!(condition && (['empty', 'notEmpty', 'true', 'false'].includes(condition) ||
30
+ (value !== void 0 && value !== '') // Accept null and 0
31
+ ));
32
+ }
33
+ /**
34
+ * Checks if the column is sorted.
35
+ *
36
+ * @param column
37
+ * The column to check.
38
+ *
39
+ * @param order
40
+ * Optional sorting order to check for.
41
+ *
42
+ * @returns
43
+ * True if the column is sorted. In case of `order` is provided, true
44
+ * only if the column is sorted in the provided order.
45
+ */
46
+ export function isSorted(column, order) {
47
+ const { currentSorting } = column.viewport.grid.querying.sorting || {};
48
+ if (currentSorting?.columnId !== column.id) {
49
+ return false;
34
50
  }
35
- StateHelpers.isFiltered = isFiltered;
36
- /**
37
- * Checks if the column is sorted.
38
- *
39
- * @param column
40
- * The column to check.
41
- *
42
- * @param order
43
- * Optional sorting order to check for.
44
- *
45
- * @returns
46
- * True if the column is sorted. In case of `order` is provided, true
47
- * only if the column is sorted in the provided order.
48
- */
49
- function isSorted(column, order) {
50
- const { currentSorting } = column.viewport.grid.querying.sorting || {};
51
- if (currentSorting?.columnId !== column.id) {
52
- return false;
53
- }
54
- return order ?
55
- currentSorting?.order === order :
56
- !!currentSorting?.order;
57
- }
58
- StateHelpers.isSorted = isSorted;
59
- })(StateHelpers || (StateHelpers = {}));
51
+ return order ?
52
+ currentSorting?.order === order :
53
+ !!currentSorting?.order;
54
+ }
60
55
  /* *
61
56
  *
62
57
  * Default Export
63
58
  *
64
59
  * */
65
- export default StateHelpers;
60
+ export default {
61
+ isFiltered,
62
+ isSorted
63
+ };
@@ -5,7 +5,7 @@ declare class FilterToolbarButton extends ToolbarButton {
5
5
  toolbar?: ColumnToolbar;
6
6
  popup?: FilterPopup;
7
7
  constructor();
8
- protected refreshState(): void;
8
+ refreshState(): void;
9
9
  protected addEventListeners(): void;
10
10
  protected clickHandler(event: MouseEvent): void;
11
11
  }
@@ -6,7 +6,7 @@ declare class MenuToolbarButton extends ToolbarButton {
6
6
  popup?: MenuPopup;
7
7
  constructor();
8
8
  protected clickHandler(event: MouseEvent): void;
9
- protected refreshState(): void;
9
+ refreshState(): void;
10
10
  protected addEventListeners(): void;
11
11
  }
12
12
  export default MenuToolbarButton;
@@ -4,7 +4,7 @@ declare class SortToolbarButton extends ToolbarButton {
4
4
  toolbar?: ColumnToolbar;
5
5
  constructor();
6
6
  protected clickHandler(event: MouseEvent): void;
7
- protected refreshState(): void;
7
+ refreshState(): void;
8
8
  protected addEventListeners(): void;
9
9
  protected renderActiveIndicator(): void;
10
10
  }
@@ -147,11 +147,10 @@ class HeaderCell extends Cell {
147
147
  // Add sorting
148
148
  this.initColumnSorting();
149
149
  }
150
+ // Set alignment in column cells based on column data type
151
+ this.htmlElement.classList[column?.dataType === 'number' ? 'add' : 'remove'](Globals.getClassName('rightAlign'));
152
+ // Add custom class name from column options
150
153
  this.setCustomClassName(options.header?.className);
151
- // Add alignment to number column
152
- if (column?.dataType === 'number') {
153
- this.setCustomClassName(Globals.getClassName('rightAlign'));
154
- }
155
154
  fireEvent(this, 'afterRender', { column });
156
155
  }
157
156
  reflow() {
@@ -48,6 +48,4 @@ declare class HeaderRow extends Row {
48
48
  */
49
49
  private setRowAttributes;
50
50
  }
51
- declare namespace HeaderRow {
52
- }
53
51
  export default HeaderRow;
@@ -60,6 +60,4 @@ declare class TableHeader {
60
60
  */
61
61
  destroy(): void;
62
62
  }
63
- declare namespace TableHeader {
64
- }
65
63
  export default TableHeader;