@svgrid/grid-wc 3.0.1 → 3.0.3

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 (104) hide show
  1. package/README.md +24 -1
  2. package/dist/GridMenus-DMkf7UMn.js +1086 -0
  3. package/dist/SvChartMenu-DkSyLWYH.js +413 -0
  4. package/dist/SvDateRangeInput-BrYTQEMM.js +197 -0
  5. package/dist/SvDateTimePicker-Czin1Ead.js +766 -0
  6. package/dist/SvField-Bmzp3ObZ.js +147 -0
  7. package/dist/SvGridCellEditor-DhXEIlyE.js +560 -0
  8. package/dist/SvGridChart-BMdCbrqb.js +3702 -0
  9. package/dist/SvGridChartBuilder-Chp_MD1B.js +1166 -0
  10. package/dist/SvGridChartPanel-BIV2O2Lp.js +1743 -0
  11. package/dist/SvGridChartView-DyhkumD-.js +45 -0
  12. package/dist/SvGridDropdown-BwPpGwLz.js +257 -0
  13. package/dist/angular/fesm2022/svgrid-grid-wc-angular.mjs +212 -7
  14. package/dist/angular/fesm2022/svgrid-grid-wc-angular.mjs.map +1 -1
  15. package/dist/angular/types/svgrid-grid-wc-angular.d.ts +92 -2
  16. package/dist/{cell-formatting-Eypm-id0.js → cell-formatting-CBfgahv1.js} +1 -1
  17. package/dist/chart/SvChartMenu-DslxOgPN.js +590 -0
  18. package/dist/chart/chart-export-BHGuh_kZ.js +127 -0
  19. package/dist/chart/chart-export-pdf-BjkkIEkE.js +104 -0
  20. package/dist/chart/chart-summary-6Xu2JoNC.js +137 -0
  21. package/dist/chart/chart-trend-7fxtAqEl.js +56 -0
  22. package/dist/chart/chart-validate-CD6ptiwg.js +180 -0
  23. package/dist/chart/client-BuB0wIgc.js +2757 -0
  24. package/dist/chart/sv-chart-element.d.ts +98 -0
  25. package/dist/chart/sv-chart-element.js +7282 -0
  26. package/dist/chart-D_LKA1fr.js +4398 -0
  27. package/dist/chart-export-pdf-9OCvhzr0.js +104 -0
  28. package/dist/chart-summary-v3Lhe8YD.js +137 -0
  29. package/dist/chart-validate-CD6ptiwg.js +180 -0
  30. package/dist/{shadow/client-DjwUji8D.js → client-DEF0GRjE.js} +1 -1
  31. package/dist/{shadow/column-resize-DvCRUrN3.js → column-resize-DUPgynvc.js} +3 -3
  32. package/dist/date-format-DMTwV8NC.js +1128 -0
  33. package/dist/{shadow/dismissable-DvhBKm3q.js → dismissable-CQ6XFXsk.js} +5 -1
  34. package/dist/{export-format-uGayRKWM.js → export-format-CAi1mp-1.js} +1 -1
  35. package/dist/focus-trap-Dbb2tJxb.js +65 -0
  36. package/dist/list-option-DrRyivWp.js +82 -0
  37. package/dist/react/chart.d.ts +99 -0
  38. package/dist/react/chart.js +49 -0
  39. package/dist/react/index.d.ts +72 -0
  40. package/dist/react/index.js +8 -1
  41. package/dist/row-resize-limG_N1z.js +111 -0
  42. package/dist/shadow/GridMenus-DMkf7UMn.js +1086 -0
  43. package/dist/shadow/SvChartMenu-DkSyLWYH.js +413 -0
  44. package/dist/shadow/SvDateRangeInput-BrYTQEMM.js +197 -0
  45. package/dist/shadow/SvDateTimePicker-Czin1Ead.js +766 -0
  46. package/dist/shadow/SvField-Bmzp3ObZ.js +147 -0
  47. package/dist/shadow/SvGridCellEditor-DhXEIlyE.js +560 -0
  48. package/dist/shadow/SvGridChart-BMdCbrqb.js +3702 -0
  49. package/dist/shadow/SvGridChartBuilder-Chp_MD1B.js +1166 -0
  50. package/dist/shadow/SvGridChartPanel-BIV2O2Lp.js +1743 -0
  51. package/dist/shadow/SvGridChartView-DyhkumD-.js +45 -0
  52. package/dist/shadow/SvGridDropdown-BwPpGwLz.js +257 -0
  53. package/dist/shadow/{cell-formatting-Eypm-id0.js → cell-formatting-CBfgahv1.js} +1 -1
  54. package/dist/shadow/chart-D_LKA1fr.js +4398 -0
  55. package/dist/shadow/chart-export-pdf-9OCvhzr0.js +104 -0
  56. package/dist/shadow/chart-summary-v3Lhe8YD.js +137 -0
  57. package/dist/shadow/chart-validate-CD6ptiwg.js +180 -0
  58. package/dist/{client-DjwUji8D.js → shadow/client-DEF0GRjE.js} +1 -1
  59. package/dist/{column-resize-DvCRUrN3.js → shadow/column-resize-DUPgynvc.js} +3 -3
  60. package/dist/shadow/date-format-DMTwV8NC.js +1128 -0
  61. package/dist/{dismissable-DvhBKm3q.js → shadow/dismissable-CQ6XFXsk.js} +5 -1
  62. package/dist/shadow/{export-format-DhdZREP1.js → export-format-mnW_rVBZ.js} +1 -1
  63. package/dist/shadow/focus-trap-Dbb2tJxb.js +65 -0
  64. package/dist/shadow/list-option-DrRyivWp.js +82 -0
  65. package/dist/shadow/row-resize-limG_N1z.js +111 -0
  66. package/dist/shadow/sv-grid-shadow-element.d.ts +41 -0
  67. package/dist/shadow/sv-grid-shadow-element.js +5905 -3986
  68. package/dist/shadow/{svelte-virtualizer.svelte-DZ9UcyfT.js → svelte-virtualizer.svelte-CnGhFGDc.js} +37 -34
  69. package/dist/shadow/validate-BqDthkNr.js +88 -0
  70. package/dist/sv-grid-element.d.ts +41 -0
  71. package/dist/sv-grid-element.js +5874 -3985
  72. package/dist/{svelte-virtualizer.svelte-DZ9UcyfT.js → svelte-virtualizer.svelte-CnGhFGDc.js} +37 -34
  73. package/dist/validate-BqDthkNr.js +88 -0
  74. package/dist/vue/chart.d.ts +64 -0
  75. package/dist/vue/chart.js +41 -0
  76. package/dist/vue/index.d.ts +26 -2
  77. package/dist/vue/index.js +1 -22
  78. package/package.json +18 -5
  79. package/dist/GridMenus-YwTw9Upd.js +0 -1123
  80. package/dist/SvDateRangeInput-CrxeppBV.js +0 -196
  81. package/dist/SvDateTimePicker-xAO-Pb4S.js +0 -765
  82. package/dist/SvField-CE345DyF.js +0 -146
  83. package/dist/SvGridCellEditor-D7SyHtff.js +0 -550
  84. package/dist/SvGridChart-CMaVmlso.js +0 -1477
  85. package/dist/SvGridChartPanel-Pc_IW0eA.js +0 -833
  86. package/dist/SvGridChartView-DLhhzmFy.js +0 -52
  87. package/dist/SvGridDropdown-DUncHqM-.js +0 -256
  88. package/dist/chart-GRBAgN1M.js +0 -1658
  89. package/dist/date-format-D_oQ5Yw0.js +0 -1127
  90. package/dist/row-resize-D-8s3cqT.js +0 -94
  91. package/dist/shadow/GridMenus-YwTw9Upd.js +0 -1123
  92. package/dist/shadow/SvDateRangeInput-CrxeppBV.js +0 -196
  93. package/dist/shadow/SvDateTimePicker-xAO-Pb4S.js +0 -765
  94. package/dist/shadow/SvField-CE345DyF.js +0 -146
  95. package/dist/shadow/SvGridCellEditor-D7SyHtff.js +0 -550
  96. package/dist/shadow/SvGridChart-CMaVmlso.js +0 -1477
  97. package/dist/shadow/SvGridChartPanel-Pc_IW0eA.js +0 -833
  98. package/dist/shadow/SvGridChartView-DLhhzmFy.js +0 -52
  99. package/dist/shadow/SvGridDropdown-DUncHqM-.js +0 -256
  100. package/dist/shadow/chart-GRBAgN1M.js +0 -1658
  101. package/dist/shadow/date-format-D_oQ5Yw0.js +0 -1127
  102. package/dist/shadow/row-resize-D-8s3cqT.js +0 -94
  103. package/dist/shadow/validate-CgmAtX1A.js +0 -75
  104. package/dist/validate-CgmAtX1A.js +0 -75
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Output, Input, Component } from '@angular/core';
3
3
  import '@svgrid/grid-wc';
4
+ import '@svgrid/grid-wc/chart';
4
5
 
5
6
  /**
6
7
  * AUTO-GENERATED by scripts/generate-wrappers.mjs - DO NOT EDIT.
@@ -9,8 +10,8 @@ import '@svgrid/grid-wc';
9
10
  * Angular wrapper. Binds Angular @Input / @Output straight onto the custom element, which IS this component's host.
10
11
  */
11
12
  /* eslint-disable @typescript-eslint/no-explicit-any */
12
- const PROP_NAMES = ["data", "columns", "board", "scheduler", "chart", "pivot", "pivotMode", "contextMenu", "selectionBar", "features", "sortable", "filterable", "editable", "treeData", "groupable", "groupBy", "expanded", "groupFooters", "grandTotalRow", "groupDisplayMode", "autoGroupColumnHeader", "autoGroupColumnWidth", "pageable", "loading", "loadingOverlay", "loadingSkeletonRows", "error", "emptyMessage", "localization", "showGlobalFilter", "showColumnFilters", "filterMode", "showGroupingControls", "showRowSelection", "showPagination", "pageSize", "pageSizeOptions", "paginationPosition", "externalPagination", "rowCount", "pageIndex", "virtualization", "rowHeight", "autoRowHeight", "rowResize", "headerHeight", "overscan", "containerHeight", "columnVirtualization", "columnOverscan", "columnWidth", "initialColumnPinning", "fitColumns", "columnResize", "responsive", "showFilterMenu", "showFilterRow", "enableCellSelection", "moveCells", "enableRowHover", "copyHeadersToClipboard", "processCellForClipboard", "enableInlineEditing", "fullRowEditing", "enableRowSummaries", "summary", "statusBar", "toolPanel", "charting", "columnMenuTabs", "toolPanelDefaultOpen", "toolPanelDefaultTab", "selectionMode", "showRowNumbers", "zebraRows", "rowNumberWidth", "externalSort", "initialSorting", "initialAdvancedFilter", "externalFilter", "getRowId", "rowClass", "notes", "editableComments", "conditionalFormats", "conditionalStatScope", "isDetailRow", "serverGroup", "serverFilterValues", "pinnedTopRows", "pinnedBottomRows", "enableColumnReorder", "columnOrder", "inferColumnTypes", "rowDragManaged", "rowDragGroup", "alignedGridGroup", "filterLocale"];
13
- const EVENT_NAMES = ["pivotmodechange", "expandedchange", "paginationchange", "apiready", "rowselectionchange", "cellselectionchange", "sortingchange", "advancedfilterchange", "filterschange", "notechange", "cellvaluechange", "activecellchange", "cellclick", "rowclick", "celldoubleclick", "rowdoubleclick", "scrollbottomreached", "columnorderchange", "rowdragend", "selectionchange"];
13
+ const PROP_NAMES$1 = ["data", "columns", "board", "scheduler", "gantt", "chart", "pivot", "pivotMode", "contextMenu", "selectionBar", "features", "sortable", "filterable", "editable", "treeData", "groupable", "groupBy", "expanded", "groupFooters", "grandTotalRow", "groupDisplayMode", "autoGroupColumnHeader", "autoGroupColumnWidth", "pageable", "loading", "loadingOverlay", "loadingSkeletonRows", "error", "emptyMessage", "localization", "showGlobalFilter", "showColumnFilters", "filterMode", "showGroupingControls", "showRowSelection", "showPagination", "pageSize", "pageSizeOptions", "paginationPosition", "externalPagination", "rowCount", "pageIndex", "virtualization", "rowHeight", "autoRowHeight", "rowResize", "headerHeight", "overscan", "containerHeight", "columnVirtualization", "columnOverscan", "columnWidth", "initialColumnPinning", "fitColumns", "columnResize", "responsive", "showFilterMenu", "showFilterRow", "enableCellSelection", "moveCells", "enableRowHover", "copyHeadersToClipboard", "processCellForFill", "processCellForClipboard", "includeCollapsedRows", "clipboardHtml", "processCellFromClipboard", "enableInlineEditing", "editOnSecondClick", "fullRowEditing", "enableRowSummaries", "summary", "statusBar", "toolPanel", "charting", "columnMenuTabs", "toolPanelDefaultOpen", "toolPanelDefaultTab", "selectionMode", "showRowNumbers", "zebraRows", "rowNumberWidth", "externalSort", "initialSorting", "initialAdvancedFilter", "externalFilter", "getRowId", "rowClass", "notes", "editableComments", "conditionalFormats", "conditionalStatScope", "rowPlaceholder", "rowModel", "pivotResultColumns", "rowSelectionModel", "isDetailRow", "detailRowHeight", "showDetailToggle", "isDetailOpen", "hasDetail", "serverGroup", "serverFilterValues", "pinnedTopRows", "frozenRows", "stickyGroupRows", "mergedCells", "pinnedBottomRows", "enableColumnReorder", "columnOrder", "inferColumnTypes", "rowDragManaged", "rowDragGroup", "alignedGridGroup", "filterLocale"];
14
+ const EVENT_NAMES = ["pivotmodechange", "expandedchange", "paginationchange", "columnresize", "rowresize", "pasteclipboard", "apiready", "rowselectionchange", "cellselectionchange", "sortingchange", "advancedfilterchange", "filterschange", "notechange", "cellvaluechange", "activecellchange", "cellclick", "rowclick", "celldoubleclick", "rowdoubleclick", "scrollbottomreached", "visiblerangechange", "retryrow", "detailtoggle", "columnorderchange", "rowdragend", "rowdrop", "selectionchange"];
14
15
  /**
15
16
  * SvGrid as an Angular component.
16
17
  *
@@ -34,6 +35,9 @@ class SvGridComponent {
34
35
  this.pivotmodechange = new EventEmitter();
35
36
  this.expandedchange = new EventEmitter();
36
37
  this.paginationchange = new EventEmitter();
38
+ this.columnresize = new EventEmitter();
39
+ this.rowresize = new EventEmitter();
40
+ this.pasteclipboard = new EventEmitter();
37
41
  this.apiready = new EventEmitter();
38
42
  this.rowselectionchange = new EventEmitter();
39
43
  this.cellselectionchange = new EventEmitter();
@@ -48,8 +52,12 @@ class SvGridComponent {
48
52
  this.celldoubleclick = new EventEmitter();
49
53
  this.rowdoubleclick = new EventEmitter();
50
54
  this.scrollbottomreached = new EventEmitter();
55
+ this.visiblerangechange = new EventEmitter();
56
+ this.retryrow = new EventEmitter();
57
+ this.detailtoggle = new EventEmitter();
51
58
  this.columnorderchange = new EventEmitter();
52
59
  this.rowdragend = new EventEmitter();
60
+ this.rowdrop = new EventEmitter();
53
61
  this.selectionchange = new EventEmitter();
54
62
  this.listeners = [];
55
63
  }
@@ -60,13 +68,13 @@ class SvGridComponent {
60
68
  // are shadowed by the class fields the upgrade installs - so re-sync once
61
69
  // the definition lands.
62
70
  if (el.tagName === 'SV-GRID-SHADOW')
63
- void import('@svgrid/grid-wc/shadow').then(() => this.sync(PROP_NAMES));
71
+ void import('@svgrid/grid-wc/shadow').then(() => this.sync(PROP_NAMES$1));
64
72
  for (const name of EVENT_NAMES) {
65
73
  const listener = (e) => this[name]?.emit(e.detail);
66
74
  el.addEventListener(name, listener);
67
75
  this.listeners.push([name, listener]);
68
76
  }
69
- this.sync(PROP_NAMES);
77
+ this.sync(PROP_NAMES$1);
70
78
  // `apiready` fires once, during the element's own mount, so a listener
71
79
  // bound here can miss it. The element parks the handle for that reason.
72
80
  const api = el.api;
@@ -74,7 +82,7 @@ class SvGridComponent {
74
82
  this.apiready.emit(api);
75
83
  }
76
84
  ngOnChanges(changes) {
77
- this.sync(Object.keys(changes).filter((k) => PROP_NAMES.includes(k)));
85
+ this.sync(Object.keys(changes).filter((k) => PROP_NAMES$1.includes(k)));
78
86
  }
79
87
  ngOnDestroy() {
80
88
  const el = this.elementRef.nativeElement;
@@ -96,7 +104,7 @@ class SvGridComponent {
96
104
  return this.elementRef.nativeElement.api ?? null;
97
105
  }
98
106
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: SvGridComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.5", type: SvGridComponent, isStandalone: true, selector: "sv-grid, sv-grid-shadow", inputs: { data: "data", columns: "columns", board: "board", scheduler: "scheduler", chart: "chart", pivot: "pivot", pivotMode: "pivotMode", contextMenu: "contextMenu", selectionBar: "selectionBar", features: "features", sortable: "sortable", filterable: "filterable", editable: "editable", treeData: "treeData", groupable: "groupable", groupBy: "groupBy", expanded: "expanded", groupFooters: "groupFooters", grandTotalRow: "grandTotalRow", groupDisplayMode: "groupDisplayMode", autoGroupColumnHeader: "autoGroupColumnHeader", autoGroupColumnWidth: "autoGroupColumnWidth", pageable: "pageable", loading: "loading", loadingOverlay: "loadingOverlay", loadingSkeletonRows: "loadingSkeletonRows", error: "error", emptyMessage: "emptyMessage", localization: "localization", showGlobalFilter: "showGlobalFilter", showColumnFilters: "showColumnFilters", filterMode: "filterMode", showGroupingControls: "showGroupingControls", showRowSelection: "showRowSelection", showPagination: "showPagination", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", paginationPosition: "paginationPosition", externalPagination: "externalPagination", rowCount: "rowCount", pageIndex: "pageIndex", virtualization: "virtualization", rowHeight: "rowHeight", autoRowHeight: "autoRowHeight", rowResize: "rowResize", headerHeight: "headerHeight", overscan: "overscan", containerHeight: "containerHeight", columnVirtualization: "columnVirtualization", columnOverscan: "columnOverscan", columnWidth: "columnWidth", initialColumnPinning: "initialColumnPinning", fitColumns: "fitColumns", columnResize: "columnResize", responsive: "responsive", showFilterMenu: "showFilterMenu", showFilterRow: "showFilterRow", enableCellSelection: "enableCellSelection", moveCells: "moveCells", enableRowHover: "enableRowHover", copyHeadersToClipboard: "copyHeadersToClipboard", processCellForClipboard: "processCellForClipboard", enableInlineEditing: "enableInlineEditing", fullRowEditing: "fullRowEditing", enableRowSummaries: "enableRowSummaries", summary: "summary", statusBar: "statusBar", toolPanel: "toolPanel", charting: "charting", columnMenuTabs: "columnMenuTabs", toolPanelDefaultOpen: "toolPanelDefaultOpen", toolPanelDefaultTab: "toolPanelDefaultTab", selectionMode: "selectionMode", showRowNumbers: "showRowNumbers", zebraRows: "zebraRows", rowNumberWidth: "rowNumberWidth", externalSort: "externalSort", initialSorting: "initialSorting", initialAdvancedFilter: "initialAdvancedFilter", externalFilter: "externalFilter", getRowId: "getRowId", rowClass: "rowClass", notes: "notes", editableComments: "editableComments", conditionalFormats: "conditionalFormats", conditionalStatScope: "conditionalStatScope", isDetailRow: "isDetailRow", serverGroup: "serverGroup", serverFilterValues: "serverFilterValues", pinnedTopRows: "pinnedTopRows", pinnedBottomRows: "pinnedBottomRows", enableColumnReorder: "enableColumnReorder", columnOrder: "columnOrder", inferColumnTypes: "inferColumnTypes", rowDragManaged: "rowDragManaged", rowDragGroup: "rowDragGroup", alignedGridGroup: "alignedGridGroup", filterLocale: "filterLocale" }, outputs: { pivotmodechange: "pivotmodechange", expandedchange: "expandedchange", paginationchange: "paginationchange", apiready: "apiready", rowselectionchange: "rowselectionchange", cellselectionchange: "cellselectionchange", sortingchange: "sortingchange", advancedfilterchange: "advancedfilterchange", filterschange: "filterschange", notechange: "notechange", cellvaluechange: "cellvaluechange", activecellchange: "activecellchange", cellclick: "cellclick", rowclick: "rowclick", celldoubleclick: "celldoubleclick", rowdoubleclick: "rowdoubleclick", scrollbottomreached: "scrollbottomreached", columnorderchange: "columnorderchange", rowdragend: "rowdragend", selectionchange: "selectionchange" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.5", type: SvGridComponent, isStandalone: true, selector: "sv-grid, sv-grid-shadow", inputs: { data: "data", columns: "columns", board: "board", scheduler: "scheduler", gantt: "gantt", chart: "chart", pivot: "pivot", pivotMode: "pivotMode", contextMenu: "contextMenu", selectionBar: "selectionBar", features: "features", sortable: "sortable", filterable: "filterable", editable: "editable", treeData: "treeData", groupable: "groupable", groupBy: "groupBy", expanded: "expanded", groupFooters: "groupFooters", grandTotalRow: "grandTotalRow", groupDisplayMode: "groupDisplayMode", autoGroupColumnHeader: "autoGroupColumnHeader", autoGroupColumnWidth: "autoGroupColumnWidth", pageable: "pageable", loading: "loading", loadingOverlay: "loadingOverlay", loadingSkeletonRows: "loadingSkeletonRows", error: "error", emptyMessage: "emptyMessage", localization: "localization", showGlobalFilter: "showGlobalFilter", showColumnFilters: "showColumnFilters", filterMode: "filterMode", showGroupingControls: "showGroupingControls", showRowSelection: "showRowSelection", showPagination: "showPagination", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", paginationPosition: "paginationPosition", externalPagination: "externalPagination", rowCount: "rowCount", pageIndex: "pageIndex", virtualization: "virtualization", rowHeight: "rowHeight", autoRowHeight: "autoRowHeight", rowResize: "rowResize", headerHeight: "headerHeight", overscan: "overscan", containerHeight: "containerHeight", columnVirtualization: "columnVirtualization", columnOverscan: "columnOverscan", columnWidth: "columnWidth", initialColumnPinning: "initialColumnPinning", fitColumns: "fitColumns", columnResize: "columnResize", responsive: "responsive", showFilterMenu: "showFilterMenu", showFilterRow: "showFilterRow", enableCellSelection: "enableCellSelection", moveCells: "moveCells", enableRowHover: "enableRowHover", copyHeadersToClipboard: "copyHeadersToClipboard", processCellForFill: "processCellForFill", processCellForClipboard: "processCellForClipboard", includeCollapsedRows: "includeCollapsedRows", clipboardHtml: "clipboardHtml", processCellFromClipboard: "processCellFromClipboard", enableInlineEditing: "enableInlineEditing", editOnSecondClick: "editOnSecondClick", fullRowEditing: "fullRowEditing", enableRowSummaries: "enableRowSummaries", summary: "summary", statusBar: "statusBar", toolPanel: "toolPanel", charting: "charting", columnMenuTabs: "columnMenuTabs", toolPanelDefaultOpen: "toolPanelDefaultOpen", toolPanelDefaultTab: "toolPanelDefaultTab", selectionMode: "selectionMode", showRowNumbers: "showRowNumbers", zebraRows: "zebraRows", rowNumberWidth: "rowNumberWidth", externalSort: "externalSort", initialSorting: "initialSorting", initialAdvancedFilter: "initialAdvancedFilter", externalFilter: "externalFilter", getRowId: "getRowId", rowClass: "rowClass", notes: "notes", editableComments: "editableComments", conditionalFormats: "conditionalFormats", conditionalStatScope: "conditionalStatScope", rowPlaceholder: "rowPlaceholder", rowModel: "rowModel", pivotResultColumns: "pivotResultColumns", rowSelectionModel: "rowSelectionModel", isDetailRow: "isDetailRow", detailRowHeight: "detailRowHeight", showDetailToggle: "showDetailToggle", isDetailOpen: "isDetailOpen", hasDetail: "hasDetail", serverGroup: "serverGroup", serverFilterValues: "serverFilterValues", pinnedTopRows: "pinnedTopRows", frozenRows: "frozenRows", stickyGroupRows: "stickyGroupRows", mergedCells: "mergedCells", pinnedBottomRows: "pinnedBottomRows", enableColumnReorder: "enableColumnReorder", columnOrder: "columnOrder", inferColumnTypes: "inferColumnTypes", rowDragManaged: "rowDragManaged", rowDragGroup: "rowDragGroup", alignedGridGroup: "alignedGridGroup", filterLocale: "filterLocale" }, outputs: { pivotmodechange: "pivotmodechange", expandedchange: "expandedchange", paginationchange: "paginationchange", columnresize: "columnresize", rowresize: "rowresize", pasteclipboard: "pasteclipboard", apiready: "apiready", rowselectionchange: "rowselectionchange", cellselectionchange: "cellselectionchange", sortingchange: "sortingchange", advancedfilterchange: "advancedfilterchange", filterschange: "filterschange", notechange: "notechange", cellvaluechange: "cellvaluechange", activecellchange: "activecellchange", cellclick: "cellclick", rowclick: "rowclick", celldoubleclick: "celldoubleclick", rowdoubleclick: "rowdoubleclick", scrollbottomreached: "scrollbottomreached", visiblerangechange: "visiblerangechange", retryrow: "retryrow", detailtoggle: "detailtoggle", columnorderchange: "columnorderchange", rowdragend: "rowdragend", rowdrop: "rowdrop", selectionchange: "selectionchange" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
100
108
  }
101
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: SvGridComponent, decorators: [{
102
110
  type: Component,
@@ -113,6 +121,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
113
121
  type: Input
114
122
  }], scheduler: [{
115
123
  type: Input
124
+ }], gantt: [{
125
+ type: Input
116
126
  }], chart: [{
117
127
  type: Input
118
128
  }], pivot: [{
@@ -227,10 +237,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
227
237
  type: Input
228
238
  }], copyHeadersToClipboard: [{
229
239
  type: Input
240
+ }], processCellForFill: [{
241
+ type: Input
230
242
  }], processCellForClipboard: [{
231
243
  type: Input
244
+ }], includeCollapsedRows: [{
245
+ type: Input
246
+ }], clipboardHtml: [{
247
+ type: Input
248
+ }], processCellFromClipboard: [{
249
+ type: Input
232
250
  }], enableInlineEditing: [{
233
251
  type: Input
252
+ }], editOnSecondClick: [{
253
+ type: Input
234
254
  }], fullRowEditing: [{
235
255
  type: Input
236
256
  }], enableRowSummaries: [{
@@ -277,14 +297,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
277
297
  type: Input
278
298
  }], conditionalStatScope: [{
279
299
  type: Input
300
+ }], rowPlaceholder: [{
301
+ type: Input
302
+ }], rowModel: [{
303
+ type: Input
304
+ }], pivotResultColumns: [{
305
+ type: Input
306
+ }], rowSelectionModel: [{
307
+ type: Input
280
308
  }], isDetailRow: [{
281
309
  type: Input
310
+ }], detailRowHeight: [{
311
+ type: Input
312
+ }], showDetailToggle: [{
313
+ type: Input
314
+ }], isDetailOpen: [{
315
+ type: Input
316
+ }], hasDetail: [{
317
+ type: Input
282
318
  }], serverGroup: [{
283
319
  type: Input
284
320
  }], serverFilterValues: [{
285
321
  type: Input
286
322
  }], pinnedTopRows: [{
287
323
  type: Input
324
+ }], frozenRows: [{
325
+ type: Input
326
+ }], stickyGroupRows: [{
327
+ type: Input
328
+ }], mergedCells: [{
329
+ type: Input
288
330
  }], pinnedBottomRows: [{
289
331
  type: Input
290
332
  }], enableColumnReorder: [{
@@ -307,6 +349,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
307
349
  type: Output
308
350
  }], paginationchange: [{
309
351
  type: Output
352
+ }], columnresize: [{
353
+ type: Output
354
+ }], rowresize: [{
355
+ type: Output
356
+ }], pasteclipboard: [{
357
+ type: Output
310
358
  }], apiready: [{
311
359
  type: Output
312
360
  }], rowselectionchange: [{
@@ -335,12 +383,169 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
335
383
  type: Output
336
384
  }], scrollbottomreached: [{
337
385
  type: Output
386
+ }], visiblerangechange: [{
387
+ type: Output
388
+ }], retryrow: [{
389
+ type: Output
390
+ }], detailtoggle: [{
391
+ type: Output
338
392
  }], columnorderchange: [{
339
393
  type: Output
340
394
  }], rowdragend: [{
341
395
  type: Output
396
+ }], rowdrop: [{
397
+ type: Output
398
+ }], selectionchange: [{
399
+ type: Output
400
+ }] } });
401
+
402
+ /**
403
+ * AUTO-GENERATED by scripts/generate-wrappers.mjs - DO NOT EDIT.
404
+ * Regenerate: pnpm --filter @svgrid/grid-wc generate:wrappers
405
+ *
406
+ * Angular wrapper for <sv-chart>. Binds @Input / @Output straight onto the custom element, which IS this component's host.
407
+ */
408
+ /* eslint-disable @typescript-eslint/no-explicit-any */
409
+ const PROP_NAMES = ["spec", "legend", "interactive", "dataLabels", "formatValue", "tooltipFormat", "tooltipMode", "tooltipPosition", "tooltipSticky", "zoomable", "zoom", "rangePresets", "syncGroup", "contextMenu", "animate", "live", "drillable", "drillPath", "selectable", "selected", "hoverHighlight", "announce", "describe", "localeText", "crosshairLabels", "brush", "brushHeight", "toolbar", "width", "height", "autosize", "annotatable", "drawable"];
410
+ /** DOM event -> output name (`zoom` -> `zoomChange`, the two-way convention). */
411
+ const EVENTS = [["select", "select"], ["drill", "drill"], ["zoom", "zoomChange"], ["selectionchange", "selectionchange"], ["hover", "hover"], ["annotate", "annotate"], ["annotationremove", "annotationremove"], ["drawingschange", "drawingschange"]];
412
+ /**
413
+ * SvChart as an Angular component. The selector is the custom element's own
414
+ * tag and the component has no template: its host IS the `<sv-chart>` the
415
+ * browser upgrades, exactly like the grid wrapper.
416
+ */
417
+ class SvChartComponent {
418
+ constructor(elementRef) {
419
+ this.elementRef = elementRef;
420
+ this.select = new EventEmitter();
421
+ this.drill = new EventEmitter();
422
+ this.zoomChange = new EventEmitter();
423
+ this.selectionchange = new EventEmitter();
424
+ this.hover = new EventEmitter();
425
+ this.annotate = new EventEmitter();
426
+ this.annotationremove = new EventEmitter();
427
+ this.drawingschange = new EventEmitter();
428
+ this.listeners = [];
429
+ }
430
+ ngOnInit() {
431
+ const el = this.elementRef.nativeElement;
432
+ for (const [name, output] of EVENTS) {
433
+ const listener = (e) => this[output]?.emit(e.detail);
434
+ el.addEventListener(name, listener);
435
+ this.listeners.push([name, listener]);
436
+ }
437
+ this.sync(PROP_NAMES);
438
+ }
439
+ ngOnChanges(changes) {
440
+ this.sync(Object.keys(changes).filter((k) => PROP_NAMES.includes(k)));
441
+ }
442
+ ngOnDestroy() {
443
+ const el = this.elementRef.nativeElement;
444
+ for (const [name, listener] of this.listeners)
445
+ el.removeEventListener(name, listener);
446
+ this.listeners = [];
447
+ }
448
+ /** Assign as DOM PROPERTIES - an attribute is a string, and the spec is not. */
449
+ sync(names) {
450
+ const el = this.elementRef.nativeElement;
451
+ for (const name of names) {
452
+ const value = this[name];
453
+ if (value !== undefined)
454
+ el[name] = value;
455
+ }
456
+ }
457
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: SvChartComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
458
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.5", type: SvChartComponent, isStandalone: true, selector: "sv-chart", inputs: { spec: "spec", legend: "legend", interactive: "interactive", dataLabels: "dataLabels", formatValue: "formatValue", tooltipFormat: "tooltipFormat", tooltipMode: "tooltipMode", tooltipPosition: "tooltipPosition", tooltipSticky: "tooltipSticky", zoomable: "zoomable", zoom: "zoom", rangePresets: "rangePresets", syncGroup: "syncGroup", contextMenu: "contextMenu", animate: "animate", live: "live", drillable: "drillable", drillPath: "drillPath", selectable: "selectable", selected: "selected", hoverHighlight: "hoverHighlight", announce: "announce", describe: "describe", localeText: "localeText", crosshairLabels: "crosshairLabels", brush: "brush", brushHeight: "brushHeight", toolbar: "toolbar", width: "width", height: "height", autosize: "autosize", annotatable: "annotatable", drawable: "drawable" }, outputs: { select: "select", drill: "drill", zoomChange: "zoomChange", selectionchange: "selectionchange", hover: "hover", annotate: "annotate", annotationremove: "annotationremove", drawingschange: "drawingschange" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
459
+ }
460
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: SvChartComponent, decorators: [{
461
+ type: Component,
462
+ args: [{
463
+ selector: 'sv-chart',
464
+ standalone: true,
465
+ template: '',
466
+ }]
467
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { spec: [{
468
+ type: Input
469
+ }], legend: [{
470
+ type: Input
471
+ }], interactive: [{
472
+ type: Input
473
+ }], dataLabels: [{
474
+ type: Input
475
+ }], formatValue: [{
476
+ type: Input
477
+ }], tooltipFormat: [{
478
+ type: Input
479
+ }], tooltipMode: [{
480
+ type: Input
481
+ }], tooltipPosition: [{
482
+ type: Input
483
+ }], tooltipSticky: [{
484
+ type: Input
485
+ }], zoomable: [{
486
+ type: Input
487
+ }], zoom: [{
488
+ type: Input
489
+ }], rangePresets: [{
490
+ type: Input
491
+ }], syncGroup: [{
492
+ type: Input
493
+ }], contextMenu: [{
494
+ type: Input
495
+ }], animate: [{
496
+ type: Input
497
+ }], live: [{
498
+ type: Input
499
+ }], drillable: [{
500
+ type: Input
501
+ }], drillPath: [{
502
+ type: Input
503
+ }], selectable: [{
504
+ type: Input
505
+ }], selected: [{
506
+ type: Input
507
+ }], hoverHighlight: [{
508
+ type: Input
509
+ }], announce: [{
510
+ type: Input
511
+ }], describe: [{
512
+ type: Input
513
+ }], localeText: [{
514
+ type: Input
515
+ }], crosshairLabels: [{
516
+ type: Input
517
+ }], brush: [{
518
+ type: Input
519
+ }], brushHeight: [{
520
+ type: Input
521
+ }], toolbar: [{
522
+ type: Input
523
+ }], width: [{
524
+ type: Input
525
+ }], height: [{
526
+ type: Input
527
+ }], autosize: [{
528
+ type: Input
529
+ }], annotatable: [{
530
+ type: Input
531
+ }], drawable: [{
532
+ type: Input
533
+ }], select: [{
534
+ type: Output
535
+ }], drill: [{
536
+ type: Output
537
+ }], zoomChange: [{
538
+ type: Output
342
539
  }], selectionchange: [{
343
540
  type: Output
541
+ }], hover: [{
542
+ type: Output
543
+ }], annotate: [{
544
+ type: Output
545
+ }], annotationremove: [{
546
+ type: Output
547
+ }], drawingschange: [{
548
+ type: Output
344
549
  }] } });
345
550
 
346
551
  /**
@@ -354,5 +559,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImpor
354
559
  * Generated bundle index. Do not edit.
355
560
  */
356
561
 
357
- export { SvGridComponent };
562
+ export { SvChartComponent, SvGridComponent };
358
563
  //# sourceMappingURL=svgrid-grid-wc-angular.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"svgrid-grid-wc-angular.mjs","sources":["../../../src/angular/svgrid.component.ts","../../../src/angular/public-api.ts","../../../src/angular/svgrid-grid-wc-angular.ts"],"sourcesContent":["/**\n * AUTO-GENERATED by scripts/generate-wrappers.mjs - DO NOT EDIT.\n * Regenerate: pnpm --filter @svgrid/grid-wc generate:wrappers\n *\n * Angular wrapper. Binds Angular @Input / @Output straight onto the custom element, which IS this component's host.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core'\nimport '@svgrid/grid-wc'\n\nconst PROP_NAMES: string[] = [\"data\",\"columns\",\"board\",\"scheduler\",\"chart\",\"pivot\",\"pivotMode\",\"contextMenu\",\"selectionBar\",\"features\",\"sortable\",\"filterable\",\"editable\",\"treeData\",\"groupable\",\"groupBy\",\"expanded\",\"groupFooters\",\"grandTotalRow\",\"groupDisplayMode\",\"autoGroupColumnHeader\",\"autoGroupColumnWidth\",\"pageable\",\"loading\",\"loadingOverlay\",\"loadingSkeletonRows\",\"error\",\"emptyMessage\",\"localization\",\"showGlobalFilter\",\"showColumnFilters\",\"filterMode\",\"showGroupingControls\",\"showRowSelection\",\"showPagination\",\"pageSize\",\"pageSizeOptions\",\"paginationPosition\",\"externalPagination\",\"rowCount\",\"pageIndex\",\"virtualization\",\"rowHeight\",\"autoRowHeight\",\"rowResize\",\"headerHeight\",\"overscan\",\"containerHeight\",\"columnVirtualization\",\"columnOverscan\",\"columnWidth\",\"initialColumnPinning\",\"fitColumns\",\"columnResize\",\"responsive\",\"showFilterMenu\",\"showFilterRow\",\"enableCellSelection\",\"moveCells\",\"enableRowHover\",\"copyHeadersToClipboard\",\"processCellForClipboard\",\"enableInlineEditing\",\"fullRowEditing\",\"enableRowSummaries\",\"summary\",\"statusBar\",\"toolPanel\",\"charting\",\"columnMenuTabs\",\"toolPanelDefaultOpen\",\"toolPanelDefaultTab\",\"selectionMode\",\"showRowNumbers\",\"zebraRows\",\"rowNumberWidth\",\"externalSort\",\"initialSorting\",\"initialAdvancedFilter\",\"externalFilter\",\"getRowId\",\"rowClass\",\"notes\",\"editableComments\",\"conditionalFormats\",\"conditionalStatScope\",\"isDetailRow\",\"serverGroup\",\"serverFilterValues\",\"pinnedTopRows\",\"pinnedBottomRows\",\"enableColumnReorder\",\"columnOrder\",\"inferColumnTypes\",\"rowDragManaged\",\"rowDragGroup\",\"alignedGridGroup\",\"filterLocale\"]\nconst EVENT_NAMES: string[] = [\"pivotmodechange\",\"expandedchange\",\"paginationchange\",\"apiready\",\"rowselectionchange\",\"cellselectionchange\",\"sortingchange\",\"advancedfilterchange\",\"filterschange\",\"notechange\",\"cellvaluechange\",\"activecellchange\",\"cellclick\",\"rowclick\",\"celldoubleclick\",\"rowdoubleclick\",\"scrollbottomreached\",\"columnorderchange\",\"rowdragend\",\"selectionchange\"]\n\n/**\n * SvGrid as an Angular component.\n *\n * The selector is the custom element's own tag, and the component has NO\n * template: its host element IS the `<sv-grid>` the browser upgrades. So a\n * consumer writes the same tag they would write in plain HTML, and there is no\n * second wrapper element in the DOM.\n *\n * A wrapper with its own tag (`<svgrid-grid>`) rendering `<sv-grid>` inside\n * it was the first shape. It works, but it puts a redundant element in every\n * consumer's DOM and gives the same grid two different names depending on which\n * framework you came from.\n *\n * Matching `sv-grid-shadow` too means the shadow-root variant is the same\n * choice it is everywhere else - the tag you write - rather than an input that\n * only this framework has.\n */\n@Component({\n selector: 'sv-grid, sv-grid-shadow',\n standalone: true,\n template: '',\n})\nexport class SvGridComponent implements OnInit, OnChanges, OnDestroy {\n @Input() data?: readonly unknown[]\n @Input() columns?: readonly unknown[]\n @Input() board?: unknown\n @Input() scheduler?: unknown\n @Input() chart?: unknown\n @Input() pivot?: unknown\n @Input() pivotMode?: boolean\n @Input() contextMenu?: boolean\n @Input() selectionBar?: boolean\n @Input() features?: unknown\n @Input() sortable?: boolean\n @Input() filterable?: boolean\n @Input() editable?: boolean\n @Input() treeData?: unknown\n @Input() groupable?: boolean\n @Input() groupBy?: readonly unknown[]\n @Input() expanded?: unknown\n @Input() groupFooters?: boolean\n @Input() grandTotalRow?: boolean\n @Input() groupDisplayMode?: string\n @Input() autoGroupColumnHeader?: string\n @Input() autoGroupColumnWidth?: number\n @Input() pageable?: boolean\n @Input() loading?: boolean\n @Input() loadingOverlay?: boolean\n @Input() loadingSkeletonRows?: number\n @Input() error?: string | null\n @Input() emptyMessage?: string\n @Input() localization?: unknown\n @Input() showGlobalFilter?: boolean\n @Input() showColumnFilters?: boolean\n @Input() filterMode?: \"row\" | \"menu\" | \"global\" | \"none\"\n @Input() showGroupingControls?: boolean\n @Input() showRowSelection?: boolean\n @Input() showPagination?: boolean\n @Input() pageSize?: number\n @Input() pageSizeOptions?: readonly unknown[]\n @Input() paginationPosition?: \"top\" | \"bottom\" | \"both\"\n @Input() externalPagination?: boolean\n @Input() rowCount?: number\n @Input() pageIndex?: number\n @Input() virtualization?: boolean\n @Input() rowHeight?: number\n @Input() autoRowHeight?: boolean\n @Input() rowResize?: boolean\n @Input() headerHeight?: number\n @Input() overscan?: number\n @Input() containerHeight?: string\n @Input() columnVirtualization?: boolean\n @Input() columnOverscan?: number\n @Input() columnWidth?: number\n @Input() initialColumnPinning?: unknown\n @Input() fitColumns?: boolean\n @Input() columnResize?: boolean\n @Input() responsive?: boolean\n @Input() showFilterMenu?: boolean\n @Input() showFilterRow?: boolean\n @Input() enableCellSelection?: boolean\n @Input() moveCells?: boolean\n @Input() enableRowHover?: boolean\n @Input() copyHeadersToClipboard?: boolean\n @Input() processCellForClipboard?: unknown\n @Input() enableInlineEditing?: boolean\n @Input() fullRowEditing?: boolean\n @Input() enableRowSummaries?: boolean\n @Input() summary?: boolean\n @Input() statusBar?: boolean\n @Input() toolPanel?: boolean\n @Input() charting?: boolean\n @Input() columnMenuTabs?: boolean\n @Input() toolPanelDefaultOpen?: boolean\n @Input() toolPanelDefaultTab?: \"columns\" | \"filters\"\n @Input() selectionMode?: \"row\" | \"cell\" | \"both\" | \"none\"\n @Input() showRowNumbers?: boolean\n @Input() zebraRows?: boolean\n @Input() rowNumberWidth?: number\n @Input() externalSort?: boolean\n @Input() initialSorting?: readonly unknown[]\n @Input() initialAdvancedFilter?: unknown\n @Input() externalFilter?: boolean\n @Input() getRowId?: unknown\n @Input() rowClass?: unknown\n @Input() notes?: unknown\n @Input() editableComments?: boolean\n @Input() conditionalFormats?: readonly unknown[]\n @Input() conditionalStatScope?: \"filtered\" | \"visible\" | \"all\"\n @Input() isDetailRow?: unknown\n @Input() serverGroup?: unknown\n @Input() serverFilterValues?: unknown\n @Input() pinnedTopRows?: readonly unknown[]\n @Input() pinnedBottomRows?: readonly unknown[]\n @Input() enableColumnReorder?: boolean\n @Input() columnOrder?: readonly unknown[]\n @Input() inferColumnTypes?: boolean\n @Input() rowDragManaged?: boolean\n @Input() rowDragGroup?: string\n @Input() alignedGridGroup?: string\n @Input() filterLocale?: string\n\n @Output() pivotmodechange = new EventEmitter<unknown>()\n @Output() expandedchange = new EventEmitter<unknown>()\n @Output() paginationchange = new EventEmitter<unknown>()\n @Output() apiready = new EventEmitter<unknown>()\n @Output() rowselectionchange = new EventEmitter<unknown>()\n @Output() cellselectionchange = new EventEmitter<unknown>()\n @Output() sortingchange = new EventEmitter<unknown>()\n @Output() advancedfilterchange = new EventEmitter<unknown>()\n @Output() filterschange = new EventEmitter<unknown>()\n @Output() notechange = new EventEmitter<unknown>()\n @Output() cellvaluechange = new EventEmitter<unknown>()\n @Output() activecellchange = new EventEmitter<unknown>()\n @Output() cellclick = new EventEmitter<unknown>()\n @Output() rowclick = new EventEmitter<unknown>()\n @Output() celldoubleclick = new EventEmitter<unknown>()\n @Output() rowdoubleclick = new EventEmitter<unknown>()\n @Output() scrollbottomreached = new EventEmitter<unknown>()\n @Output() columnorderchange = new EventEmitter<unknown>()\n @Output() rowdragend = new EventEmitter<unknown>()\n @Output() selectionchange = new EventEmitter<unknown>()\n\n private listeners: Array<[string, EventListener]> = []\n\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit(): void {\n const el = this.elementRef.nativeElement\n\n // The shadow element is a separate bundle. Loading it lazily means the tag\n // is not upgraded yet, and properties assigned to an un-upgraded element\n // are shadowed by the class fields the upgrade installs - so re-sync once\n // the definition lands.\n if (el.tagName === 'SV-GRID-SHADOW')\n void import('@svgrid/grid-wc/shadow').then(() => this.sync(PROP_NAMES))\n\n for (const name of EVENT_NAMES) {\n const listener: EventListener = (e) =>\n (this as any)[name]?.emit((e as CustomEvent).detail)\n el.addEventListener(name, listener)\n this.listeners.push([name, listener])\n }\n\n this.sync(PROP_NAMES)\n\n // `apiready` fires once, during the element's own mount, so a listener\n // bound here can miss it. The element parks the handle for that reason.\n const api = (el as HTMLElement & { api?: unknown }).api\n if (api != null) this.apiready.emit(api)\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.sync(Object.keys(changes).filter((k) => PROP_NAMES.includes(k)))\n }\n\n ngOnDestroy(): void {\n const el = this.elementRef.nativeElement\n for (const [name, listener] of this.listeners) el.removeEventListener(name, listener)\n this.listeners = []\n }\n\n /** Assign as DOM PROPERTIES - an attribute is a string, and most of these are not. */\n private sync(names: string[]): void {\n const el = this.elementRef.nativeElement as HTMLElement & Record<string, unknown>\n for (const name of names) {\n const value = (this as any)[name]\n if (value !== undefined) el[name] = value\n }\n }\n\n /** The grid api, once it is ready. */\n get api(): unknown {\n return (this.elementRef.nativeElement as HTMLElement & { api?: unknown }).api ?? null\n }\n}\n","/**\n * AUTO-GENERATED by scripts/generate-wrappers.mjs - DO NOT EDIT.\n * Regenerate: pnpm --filter @svgrid/grid-wc generate:wrappers\n *\n * Angular entry point.\n */\nexport { SvGridComponent } from './svgrid.component'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAAA;;;;;AAKG;AACH;AAcA,MAAM,UAAU,GAAa,CAAC,MAAM,EAAC,SAAS,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,OAAO,EAAC,WAAW,EAAC,aAAa,EAAC,cAAc,EAAC,UAAU,EAAC,UAAU,EAAC,YAAY,EAAC,UAAU,EAAC,UAAU,EAAC,WAAW,EAAC,SAAS,EAAC,UAAU,EAAC,cAAc,EAAC,eAAe,EAAC,kBAAkB,EAAC,uBAAuB,EAAC,sBAAsB,EAAC,UAAU,EAAC,SAAS,EAAC,gBAAgB,EAAC,qBAAqB,EAAC,OAAO,EAAC,cAAc,EAAC,cAAc,EAAC,kBAAkB,EAAC,mBAAmB,EAAC,YAAY,EAAC,sBAAsB,EAAC,kBAAkB,EAAC,gBAAgB,EAAC,UAAU,EAAC,iBAAiB,EAAC,oBAAoB,EAAC,oBAAoB,EAAC,UAAU,EAAC,WAAW,EAAC,gBAAgB,EAAC,WAAW,EAAC,eAAe,EAAC,WAAW,EAAC,cAAc,EAAC,UAAU,EAAC,iBAAiB,EAAC,sBAAsB,EAAC,gBAAgB,EAAC,aAAa,EAAC,sBAAsB,EAAC,YAAY,EAAC,cAAc,EAAC,YAAY,EAAC,gBAAgB,EAAC,eAAe,EAAC,qBAAqB,EAAC,WAAW,EAAC,gBAAgB,EAAC,wBAAwB,EAAC,yBAAyB,EAAC,qBAAqB,EAAC,gBAAgB,EAAC,oBAAoB,EAAC,SAAS,EAAC,WAAW,EAAC,WAAW,EAAC,UAAU,EAAC,gBAAgB,EAAC,sBAAsB,EAAC,qBAAqB,EAAC,eAAe,EAAC,gBAAgB,EAAC,WAAW,EAAC,gBAAgB,EAAC,cAAc,EAAC,gBAAgB,EAAC,uBAAuB,EAAC,gBAAgB,EAAC,UAAU,EAAC,UAAU,EAAC,OAAO,EAAC,kBAAkB,EAAC,oBAAoB,EAAC,sBAAsB,EAAC,aAAa,EAAC,aAAa,EAAC,oBAAoB,EAAC,eAAe,EAAC,kBAAkB,EAAC,qBAAqB,EAAC,aAAa,EAAC,kBAAkB,EAAC,gBAAgB,EAAC,cAAc,EAAC,kBAAkB,EAAC,cAAc,CAAC;AAChiD,MAAM,WAAW,GAAa,CAAC,iBAAiB,EAAC,gBAAgB,EAAC,kBAAkB,EAAC,UAAU,EAAC,oBAAoB,EAAC,qBAAqB,EAAC,eAAe,EAAC,sBAAsB,EAAC,eAAe,EAAC,YAAY,EAAC,iBAAiB,EAAC,kBAAkB,EAAC,WAAW,EAAC,UAAU,EAAC,iBAAiB,EAAC,gBAAgB,EAAC,qBAAqB,EAAC,mBAAmB,EAAC,YAAY,EAAC,iBAAiB,CAAC;AAEvX;;;;;;;;;;;;;;;;AAgBG;MAMU,eAAe,CAAA;AA2H1B,IAAA,WAAA,CAA6B,UAAmC,EAAA;QAAnC,IAAA,CAAA,UAAU,GAAV,UAAU;AAvB7B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW;AAC7C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAW;AAC5C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAW;AAC9C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAW;AACtC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAW;AAChD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAW;AACjD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW;AAC3C,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAW;AAClD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW;AAC3C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAW;AACxC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW;AAC7C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAW;AAC9C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAW;AACvC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAW;AACtC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW;AAC7C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAW;AAC5C,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAW;AACjD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAW;AAC/C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAW;AACxC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW;QAE/C,IAAA,CAAA,SAAS,GAAmC,EAAE;IAEa;IAEnE,QAAQ,GAAA;AACN,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;;;;;AAMxC,QAAA,IAAI,EAAE,CAAC,OAAO,KAAK,gBAAgB;AACjC,YAAA,KAAK,OAAO,wBAAwB,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAEzE,QAAA,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;AAC9B,YAAA,MAAM,QAAQ,GAAkB,CAAC,CAAC,KAC/B,IAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAE,CAAiB,CAAC,MAAM,CAAC;AACtD,YAAA,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvC;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;;AAIrB,QAAA,MAAM,GAAG,GAAI,EAAsC,CAAC,GAAG;QACvD,IAAI,GAAG,IAAI,IAAI;AAAE,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1C;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE;IAEA,WAAW,GAAA;AACT,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;QACxC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC;AACrF,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;;AAGQ,IAAA,IAAI,CAAC,KAAe,EAAA;AAC1B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAsD;AACjF,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,YAAA,MAAM,KAAK,GAAI,IAAY,CAAC,IAAI,CAAC;YACjC,IAAI,KAAK,KAAK,SAAS;AAAE,gBAAA,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK;QAC3C;IACF;;AAGA,IAAA,IAAI,GAAG,GAAA;QACL,OAAQ,IAAI,CAAC,UAAU,CAAC,aAAiD,CAAC,GAAG,IAAI,IAAI;IACvF;8GA5KW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,qzHAFhB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAED,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;;sBAEE;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;ACpKH;;;;;AAKG;;ACLH;;AAEG;;"}
1
+ {"version":3,"file":"svgrid-grid-wc-angular.mjs","sources":["../../../src/angular/svgrid.component.ts","../../../src/angular/svchart.component.ts","../../../src/angular/public-api.ts","../../../src/angular/svgrid-grid-wc-angular.ts"],"sourcesContent":["/**\n * AUTO-GENERATED by scripts/generate-wrappers.mjs - DO NOT EDIT.\n * Regenerate: pnpm --filter @svgrid/grid-wc generate:wrappers\n *\n * Angular wrapper. Binds Angular @Input / @Output straight onto the custom element, which IS this component's host.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core'\nimport '@svgrid/grid-wc'\n\nconst PROP_NAMES: string[] = [\"data\",\"columns\",\"board\",\"scheduler\",\"gantt\",\"chart\",\"pivot\",\"pivotMode\",\"contextMenu\",\"selectionBar\",\"features\",\"sortable\",\"filterable\",\"editable\",\"treeData\",\"groupable\",\"groupBy\",\"expanded\",\"groupFooters\",\"grandTotalRow\",\"groupDisplayMode\",\"autoGroupColumnHeader\",\"autoGroupColumnWidth\",\"pageable\",\"loading\",\"loadingOverlay\",\"loadingSkeletonRows\",\"error\",\"emptyMessage\",\"localization\",\"showGlobalFilter\",\"showColumnFilters\",\"filterMode\",\"showGroupingControls\",\"showRowSelection\",\"showPagination\",\"pageSize\",\"pageSizeOptions\",\"paginationPosition\",\"externalPagination\",\"rowCount\",\"pageIndex\",\"virtualization\",\"rowHeight\",\"autoRowHeight\",\"rowResize\",\"headerHeight\",\"overscan\",\"containerHeight\",\"columnVirtualization\",\"columnOverscan\",\"columnWidth\",\"initialColumnPinning\",\"fitColumns\",\"columnResize\",\"responsive\",\"showFilterMenu\",\"showFilterRow\",\"enableCellSelection\",\"moveCells\",\"enableRowHover\",\"copyHeadersToClipboard\",\"processCellForFill\",\"processCellForClipboard\",\"includeCollapsedRows\",\"clipboardHtml\",\"processCellFromClipboard\",\"enableInlineEditing\",\"editOnSecondClick\",\"fullRowEditing\",\"enableRowSummaries\",\"summary\",\"statusBar\",\"toolPanel\",\"charting\",\"columnMenuTabs\",\"toolPanelDefaultOpen\",\"toolPanelDefaultTab\",\"selectionMode\",\"showRowNumbers\",\"zebraRows\",\"rowNumberWidth\",\"externalSort\",\"initialSorting\",\"initialAdvancedFilter\",\"externalFilter\",\"getRowId\",\"rowClass\",\"notes\",\"editableComments\",\"conditionalFormats\",\"conditionalStatScope\",\"rowPlaceholder\",\"rowModel\",\"pivotResultColumns\",\"rowSelectionModel\",\"isDetailRow\",\"detailRowHeight\",\"showDetailToggle\",\"isDetailOpen\",\"hasDetail\",\"serverGroup\",\"serverFilterValues\",\"pinnedTopRows\",\"frozenRows\",\"stickyGroupRows\",\"mergedCells\",\"pinnedBottomRows\",\"enableColumnReorder\",\"columnOrder\",\"inferColumnTypes\",\"rowDragManaged\",\"rowDragGroup\",\"alignedGridGroup\",\"filterLocale\"]\nconst EVENT_NAMES: string[] = [\"pivotmodechange\",\"expandedchange\",\"paginationchange\",\"columnresize\",\"rowresize\",\"pasteclipboard\",\"apiready\",\"rowselectionchange\",\"cellselectionchange\",\"sortingchange\",\"advancedfilterchange\",\"filterschange\",\"notechange\",\"cellvaluechange\",\"activecellchange\",\"cellclick\",\"rowclick\",\"celldoubleclick\",\"rowdoubleclick\",\"scrollbottomreached\",\"visiblerangechange\",\"retryrow\",\"detailtoggle\",\"columnorderchange\",\"rowdragend\",\"rowdrop\",\"selectionchange\"]\n\n/**\n * SvGrid as an Angular component.\n *\n * The selector is the custom element's own tag, and the component has NO\n * template: its host element IS the `<sv-grid>` the browser upgrades. So a\n * consumer writes the same tag they would write in plain HTML, and there is no\n * second wrapper element in the DOM.\n *\n * A wrapper with its own tag (`<svgrid-grid>`) rendering `<sv-grid>` inside\n * it was the first shape. It works, but it puts a redundant element in every\n * consumer's DOM and gives the same grid two different names depending on which\n * framework you came from.\n *\n * Matching `sv-grid-shadow` too means the shadow-root variant is the same\n * choice it is everywhere else - the tag you write - rather than an input that\n * only this framework has.\n */\n@Component({\n selector: 'sv-grid, sv-grid-shadow',\n standalone: true,\n template: '',\n})\nexport class SvGridComponent implements OnInit, OnChanges, OnDestroy {\n @Input() data?: readonly unknown[]\n @Input() columns?: readonly unknown[]\n @Input() board?: unknown\n @Input() scheduler?: unknown\n @Input() gantt?: unknown\n @Input() chart?: unknown\n @Input() pivot?: unknown\n @Input() pivotMode?: boolean\n @Input() contextMenu?: boolean\n @Input() selectionBar?: boolean\n @Input() features?: unknown\n @Input() sortable?: boolean\n @Input() filterable?: boolean\n @Input() editable?: boolean\n @Input() treeData?: unknown\n @Input() groupable?: boolean\n @Input() groupBy?: readonly unknown[]\n @Input() expanded?: unknown\n @Input() groupFooters?: boolean\n @Input() grandTotalRow?: boolean\n @Input() groupDisplayMode?: string\n @Input() autoGroupColumnHeader?: string\n @Input() autoGroupColumnWidth?: number\n @Input() pageable?: boolean\n @Input() loading?: boolean\n @Input() loadingOverlay?: boolean\n @Input() loadingSkeletonRows?: number\n @Input() error?: string | null\n @Input() emptyMessage?: string\n @Input() localization?: unknown\n @Input() showGlobalFilter?: boolean\n @Input() showColumnFilters?: boolean\n @Input() filterMode?: \"row\" | \"menu\" | \"global\" | \"none\"\n @Input() showGroupingControls?: boolean\n @Input() showRowSelection?: boolean\n @Input() showPagination?: boolean\n @Input() pageSize?: number\n @Input() pageSizeOptions?: readonly unknown[]\n @Input() paginationPosition?: \"top\" | \"bottom\" | \"both\"\n @Input() externalPagination?: boolean\n @Input() rowCount?: number\n @Input() pageIndex?: number\n @Input() virtualization?: boolean\n @Input() rowHeight?: number\n @Input() autoRowHeight?: boolean\n @Input() rowResize?: boolean\n @Input() headerHeight?: number\n @Input() overscan?: number\n @Input() containerHeight?: string\n @Input() columnVirtualization?: boolean\n @Input() columnOverscan?: number\n @Input() columnWidth?: number\n @Input() initialColumnPinning?: unknown\n @Input() fitColumns?: boolean\n @Input() columnResize?: boolean\n @Input() responsive?: boolean\n @Input() showFilterMenu?: boolean\n @Input() showFilterRow?: boolean\n @Input() enableCellSelection?: boolean\n @Input() moveCells?: boolean\n @Input() enableRowHover?: boolean\n @Input() copyHeadersToClipboard?: boolean\n @Input() processCellForFill?: unknown\n @Input() processCellForClipboard?: unknown\n @Input() includeCollapsedRows?: unknown\n @Input() clipboardHtml?: unknown\n @Input() processCellFromClipboard?: unknown\n @Input() enableInlineEditing?: boolean\n @Input() editOnSecondClick?: boolean\n @Input() fullRowEditing?: boolean\n @Input() enableRowSummaries?: boolean\n @Input() summary?: boolean\n @Input() statusBar?: boolean\n @Input() toolPanel?: boolean\n @Input() charting?: boolean\n @Input() columnMenuTabs?: boolean\n @Input() toolPanelDefaultOpen?: boolean\n @Input() toolPanelDefaultTab?: \"columns\" | \"filters\"\n @Input() selectionMode?: \"row\" | \"cell\" | \"both\" | \"none\"\n @Input() showRowNumbers?: boolean\n @Input() zebraRows?: boolean\n @Input() rowNumberWidth?: number\n @Input() externalSort?: boolean\n @Input() initialSorting?: readonly unknown[]\n @Input() initialAdvancedFilter?: unknown\n @Input() externalFilter?: boolean\n @Input() getRowId?: unknown\n @Input() rowClass?: unknown\n @Input() notes?: unknown\n @Input() editableComments?: boolean\n @Input() conditionalFormats?: readonly unknown[]\n @Input() conditionalStatScope?: \"filtered\" | \"visible\" | \"all\"\n @Input() rowPlaceholder?: unknown\n @Input() rowModel?: unknown\n @Input() pivotResultColumns?: readonly unknown[]\n @Input() rowSelectionModel?: unknown\n @Input() isDetailRow?: unknown\n @Input() detailRowHeight?: number\n @Input() showDetailToggle?: boolean\n @Input() isDetailOpen?: unknown\n @Input() hasDetail?: unknown\n @Input() serverGroup?: unknown\n @Input() serverFilterValues?: unknown\n @Input() pinnedTopRows?: readonly unknown[]\n @Input() frozenRows?: number\n @Input() stickyGroupRows?: boolean\n @Input() mergedCells?: readonly unknown[]\n @Input() pinnedBottomRows?: readonly unknown[]\n @Input() enableColumnReorder?: boolean\n @Input() columnOrder?: readonly unknown[]\n @Input() inferColumnTypes?: boolean\n @Input() rowDragManaged?: boolean\n @Input() rowDragGroup?: string\n @Input() alignedGridGroup?: string\n @Input() filterLocale?: string\n\n @Output() pivotmodechange = new EventEmitter<unknown>()\n @Output() expandedchange = new EventEmitter<unknown>()\n @Output() paginationchange = new EventEmitter<unknown>()\n @Output() columnresize = new EventEmitter<unknown>()\n @Output() rowresize = new EventEmitter<unknown>()\n @Output() pasteclipboard = new EventEmitter<unknown>()\n @Output() apiready = new EventEmitter<unknown>()\n @Output() rowselectionchange = new EventEmitter<unknown>()\n @Output() cellselectionchange = new EventEmitter<unknown>()\n @Output() sortingchange = new EventEmitter<unknown>()\n @Output() advancedfilterchange = new EventEmitter<unknown>()\n @Output() filterschange = new EventEmitter<unknown>()\n @Output() notechange = new EventEmitter<unknown>()\n @Output() cellvaluechange = new EventEmitter<unknown>()\n @Output() activecellchange = new EventEmitter<unknown>()\n @Output() cellclick = new EventEmitter<unknown>()\n @Output() rowclick = new EventEmitter<unknown>()\n @Output() celldoubleclick = new EventEmitter<unknown>()\n @Output() rowdoubleclick = new EventEmitter<unknown>()\n @Output() scrollbottomreached = new EventEmitter<unknown>()\n @Output() visiblerangechange = new EventEmitter<unknown>()\n @Output() retryrow = new EventEmitter<unknown>()\n @Output() detailtoggle = new EventEmitter<unknown>()\n @Output() columnorderchange = new EventEmitter<unknown>()\n @Output() rowdragend = new EventEmitter<unknown>()\n @Output() rowdrop = new EventEmitter<unknown>()\n @Output() selectionchange = new EventEmitter<unknown>()\n\n private listeners: Array<[string, EventListener]> = []\n\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit(): void {\n const el = this.elementRef.nativeElement\n\n // The shadow element is a separate bundle. Loading it lazily means the tag\n // is not upgraded yet, and properties assigned to an un-upgraded element\n // are shadowed by the class fields the upgrade installs - so re-sync once\n // the definition lands.\n if (el.tagName === 'SV-GRID-SHADOW')\n void import('@svgrid/grid-wc/shadow').then(() => this.sync(PROP_NAMES))\n\n for (const name of EVENT_NAMES) {\n const listener: EventListener = (e) =>\n (this as any)[name]?.emit((e as CustomEvent).detail)\n el.addEventListener(name, listener)\n this.listeners.push([name, listener])\n }\n\n this.sync(PROP_NAMES)\n\n // `apiready` fires once, during the element's own mount, so a listener\n // bound here can miss it. The element parks the handle for that reason.\n const api = (el as HTMLElement & { api?: unknown }).api\n if (api != null) this.apiready.emit(api)\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.sync(Object.keys(changes).filter((k) => PROP_NAMES.includes(k)))\n }\n\n ngOnDestroy(): void {\n const el = this.elementRef.nativeElement\n for (const [name, listener] of this.listeners) el.removeEventListener(name, listener)\n this.listeners = []\n }\n\n /** Assign as DOM PROPERTIES - an attribute is a string, and most of these are not. */\n private sync(names: string[]): void {\n const el = this.elementRef.nativeElement as HTMLElement & Record<string, unknown>\n for (const name of names) {\n const value = (this as any)[name]\n if (value !== undefined) el[name] = value\n }\n }\n\n /** The grid api, once it is ready. */\n get api(): unknown {\n return (this.elementRef.nativeElement as HTMLElement & { api?: unknown }).api ?? null\n }\n}\n","/**\n * AUTO-GENERATED by scripts/generate-wrappers.mjs - DO NOT EDIT.\n * Regenerate: pnpm --filter @svgrid/grid-wc generate:wrappers\n *\n * Angular wrapper for <sv-chart>. Binds @Input / @Output straight onto the custom element, which IS this component's host.\n */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core'\nimport '@svgrid/grid-wc/chart'\n\nconst PROP_NAMES: string[] = [\"spec\",\"legend\",\"interactive\",\"dataLabels\",\"formatValue\",\"tooltipFormat\",\"tooltipMode\",\"tooltipPosition\",\"tooltipSticky\",\"zoomable\",\"zoom\",\"rangePresets\",\"syncGroup\",\"contextMenu\",\"animate\",\"live\",\"drillable\",\"drillPath\",\"selectable\",\"selected\",\"hoverHighlight\",\"announce\",\"describe\",\"localeText\",\"crosshairLabels\",\"brush\",\"brushHeight\",\"toolbar\",\"width\",\"height\",\"autosize\",\"annotatable\",\"drawable\"]\n/** DOM event -> output name (`zoom` -> `zoomChange`, the two-way convention). */\nconst EVENTS: Array<[string, string]> = [[\"select\",\"select\"],[\"drill\",\"drill\"],[\"zoom\",\"zoomChange\"],[\"selectionchange\",\"selectionchange\"],[\"hover\",\"hover\"],[\"annotate\",\"annotate\"],[\"annotationremove\",\"annotationremove\"],[\"drawingschange\",\"drawingschange\"]]\n\n/**\n * SvChart as an Angular component. The selector is the custom element's own\n * tag and the component has no template: its host IS the `<sv-chart>` the\n * browser upgrades, exactly like the grid wrapper.\n */\n@Component({\n selector: 'sv-chart',\n standalone: true,\n template: '',\n})\nexport class SvChartComponent implements OnInit, OnChanges, OnDestroy {\n @Input() spec?: unknown\n @Input() legend?: string\n @Input() interactive?: boolean\n @Input() dataLabels?: boolean\n @Input() formatValue?: unknown\n @Input() tooltipFormat?: unknown\n @Input() tooltipMode?: \"shared\" | \"single\"\n @Input() tooltipPosition?: \"follow\" | \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\"\n @Input() tooltipSticky?: boolean\n @Input() zoomable?: boolean\n @Input() zoom?: unknown\n @Input() rangePresets?: boolean\n @Input() syncGroup?: string\n @Input() contextMenu?: boolean\n @Input() animate?: boolean\n @Input() live?: boolean\n @Input() drillable?: boolean\n @Input() drillPath?: readonly unknown[]\n @Input() selectable?: string\n @Input() selected?: readonly unknown[]\n @Input() hoverHighlight?: boolean\n @Input() announce?: boolean\n @Input() describe?: boolean\n @Input() localeText?: unknown\n @Input() crosshairLabels?: boolean\n @Input() brush?: boolean\n @Input() brushHeight?: number\n @Input() toolbar?: boolean\n @Input() width?: number\n @Input() height?: number\n @Input() autosize?: boolean\n @Input() annotatable?: boolean\n @Input() drawable?: boolean\n\n @Output() select = new EventEmitter<unknown>()\n @Output() drill = new EventEmitter<unknown>()\n @Output() zoomChange = new EventEmitter<unknown>()\n @Output() selectionchange = new EventEmitter<unknown>()\n @Output() hover = new EventEmitter<unknown>()\n @Output() annotate = new EventEmitter<unknown>()\n @Output() annotationremove = new EventEmitter<unknown>()\n @Output() drawingschange = new EventEmitter<unknown>()\n\n private listeners: Array<[string, EventListener]> = []\n\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit(): void {\n const el = this.elementRef.nativeElement\n for (const [name, output] of EVENTS) {\n const listener: EventListener = (e) =>\n (this as any)[output]?.emit((e as CustomEvent).detail)\n el.addEventListener(name, listener)\n this.listeners.push([name, listener])\n }\n this.sync(PROP_NAMES)\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.sync(Object.keys(changes).filter((k) => PROP_NAMES.includes(k)))\n }\n\n ngOnDestroy(): void {\n const el = this.elementRef.nativeElement\n for (const [name, listener] of this.listeners) el.removeEventListener(name, listener)\n this.listeners = []\n }\n\n /** Assign as DOM PROPERTIES - an attribute is a string, and the spec is not. */\n private sync(names: string[]): void {\n const el = this.elementRef.nativeElement as unknown as Record<string, unknown>\n for (const name of names) {\n const value = (this as any)[name]\n if (value !== undefined) el[name] = value\n }\n }\n}\n","/**\n * AUTO-GENERATED by scripts/generate-wrappers.mjs - DO NOT EDIT.\n * Regenerate: pnpm --filter @svgrid/grid-wc generate:wrappers\n *\n * Angular entry point.\n */\nexport { SvGridComponent } from './svgrid.component'\nexport { SvChartComponent } from './svchart.component'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["PROP_NAMES"],"mappings":"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IAAI;AAChB,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;;sBAEE;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;sBACA;;;AC5LH;;;;;AAKG;AACH;AAcA,MAAM,UAAU,GAAa,CAAC,MAAM,EAAC,QAAQ,EAAC,aAAa,EAAC,YAAY,EAAC,aAAa,EAAC,eAAe,EAAC,aAAa,EAAC,iBAAiB,EAAC,eAAe,EAAC,UAAU,EAAC,MAAM,EAAC,cAAc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"}