slickgrid-react 5.14.1 → 9.0.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 (186) hide show
  1. package/README.md +12 -42
  2. package/dist/{types/components → components}/slickgrid-react.d.ts +26 -22
  3. package/dist/{esm/components → components}/slickgrid-react.js +367 -327
  4. package/dist/components/slickgrid-react.js.map +1 -0
  5. package/dist/{types/components → components}/slickgridReactProps.d.ts +19 -19
  6. package/dist/components/slickgridReactProps.js.map +1 -0
  7. package/dist/{types/constants.d.ts → constants.d.ts} +0 -1
  8. package/dist/constants.js +89 -0
  9. package/dist/constants.js.map +1 -0
  10. package/dist/contexts/i18nextContext.d.ts +5 -0
  11. package/dist/contexts/i18nextContext.js +5 -0
  12. package/dist/contexts/i18nextContext.js.map +1 -0
  13. package/dist/{types/extensions → extensions}/slickRowDetailView.d.ts +3 -4
  14. package/dist/{esm/extensions → extensions}/slickRowDetailView.js +35 -43
  15. package/dist/extensions/slickRowDetailView.js.map +1 -0
  16. package/dist/{types/global-grid-options.d.ts → global-grid-options.d.ts} +1 -2
  17. package/dist/{esm/global-grid-options.js → global-grid-options.js} +19 -19
  18. package/dist/global-grid-options.js.map +1 -0
  19. package/dist/i18n/en/translation.json +109 -0
  20. package/dist/i18n/fr/translation.json +110 -0
  21. package/dist/{types/index.d.ts → index.d.ts} +6 -6
  22. package/dist/index.js +9 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/{types/models → models}/gridOption.interface.d.ts +3 -4
  25. package/dist/models/gridOption.interface.js.map +1 -0
  26. package/dist/models/i18next.interface.d.ts +27 -0
  27. package/dist/models/i18next.interface.js +2 -0
  28. package/dist/models/i18next.interface.js.map +1 -0
  29. package/dist/models/index.d.ts +7 -0
  30. package/dist/models/index.js.map +1 -0
  31. package/dist/{types/models → models}/reactComponentOutput.interface.d.ts +0 -1
  32. package/dist/models/reactComponentOutput.interface.js.map +1 -0
  33. package/dist/{types/models → models}/rowDetailView.interface.d.ts +1 -2
  34. package/dist/models/rowDetailView.interface.js.map +1 -0
  35. package/dist/{types/models → models}/slickgridReactInstance.interface.d.ts +0 -3
  36. package/dist/models/slickgridReactInstance.interface.js.map +1 -0
  37. package/dist/{types/models → models}/viewModelBindableData.interface.d.ts +1 -2
  38. package/dist/models/viewModelBindableData.interface.js.map +1 -0
  39. package/dist/{types/models → models}/viewModelBindableInputData.interface.d.ts +1 -2
  40. package/dist/models/viewModelBindableInputData.interface.js.map +1 -0
  41. package/dist/{types/services → services}/container.service.d.ts +0 -1
  42. package/dist/{esm/services → services}/container.service.js +1 -3
  43. package/dist/services/container.service.js.map +1 -0
  44. package/dist/services/index.d.ts +3 -0
  45. package/dist/services/index.js +4 -0
  46. package/dist/services/index.js.map +1 -0
  47. package/dist/{types/services → services}/reactUtils.d.ts +0 -1
  48. package/dist/{esm/services → services}/reactUtils.js +4 -5
  49. package/dist/services/reactUtils.js.map +1 -0
  50. package/dist/{types/services → services}/singletons.d.ts +1 -2
  51. package/dist/{esm/services → services}/singletons.js +1 -1
  52. package/dist/services/singletons.js.map +1 -0
  53. package/dist/{types/services/translater.service.d.ts → services/translaterI18Next.service.d.ts} +5 -3
  54. package/dist/{esm/services/translater.service.js → services/translaterI18Next.service.js} +9 -8
  55. package/dist/services/translaterI18Next.service.js.map +1 -0
  56. package/dist/{types/services → services}/utilities.d.ts +0 -1
  57. package/dist/{esm/services → services}/utilities.js +1 -1
  58. package/dist/services/utilities.js.map +1 -0
  59. package/dist/slickgrid-config.d.ts +5 -0
  60. package/dist/slickgrid-config.js +8 -0
  61. package/dist/slickgrid-config.js.map +1 -0
  62. package/package.json +15 -101
  63. package/src/assets/locales/en/translation.json +109 -0
  64. package/src/assets/locales/fr/translation.json +110 -0
  65. package/src/{slickgrid-react/components → components}/slickgrid-react.tsx +365 -240
  66. package/src/{slickgrid-react/components → components}/slickgridReactProps.ts +72 -73
  67. package/src/{slickgrid-react/constants.ts → constants.ts} +11 -5
  68. package/src/contexts/i18nextContext.ts +7 -0
  69. package/src/{slickgrid-react/extensions → extensions}/slickRowDetailView.ts +38 -36
  70. package/src/{slickgrid-react/global-grid-options.ts → global-grid-options.ts} +18 -16
  71. package/src/index.ts +21 -0
  72. package/src/{slickgrid-react/models → models}/gridOption.interface.ts +7 -4
  73. package/src/models/i18next.interface.ts +34 -0
  74. package/src/models/index.ts +7 -0
  75. package/src/{slickgrid-react/models → models}/rowDetailView.interface.ts +1 -1
  76. package/src/{slickgrid-react/models → models}/slickgridReactInstance.interface.ts +1 -4
  77. package/src/{slickgrid-react/models → models}/viewModelBindableData.interface.ts +1 -1
  78. package/src/{slickgrid-react/models → models}/viewModelBindableInputData.interface.ts +1 -1
  79. package/src/services/index.ts +3 -0
  80. package/src/{slickgrid-react/services → services}/reactUtils.ts +14 -5
  81. package/src/{slickgrid-react/services → services}/singletons.ts +2 -1
  82. package/src/{slickgrid-react/services/translater.service.ts → services/translaterI18Next.service.ts} +12 -6
  83. package/src/slickgrid-config.ts +10 -0
  84. package/src/vite-env.d.ts +1 -0
  85. package/dist/cjs/components/slickgrid-react.js +0 -1375
  86. package/dist/cjs/components/slickgrid-react.js.map +0 -1
  87. package/dist/cjs/components/slickgridReactProps.js +0 -3
  88. package/dist/cjs/components/slickgridReactProps.js.map +0 -1
  89. package/dist/cjs/constants.js +0 -92
  90. package/dist/cjs/constants.js.map +0 -1
  91. package/dist/cjs/extensions/slickRowDetailView.js +0 -345
  92. package/dist/cjs/extensions/slickRowDetailView.js.map +0 -1
  93. package/dist/cjs/global-grid-options.js +0 -281
  94. package/dist/cjs/global-grid-options.js.map +0 -1
  95. package/dist/cjs/index.js +0 -28
  96. package/dist/cjs/index.js.map +0 -1
  97. package/dist/cjs/models/gridOption.interface.js +0 -3
  98. package/dist/cjs/models/gridOption.interface.js.map +0 -1
  99. package/dist/cjs/models/index.js +0 -3
  100. package/dist/cjs/models/index.js.map +0 -1
  101. package/dist/cjs/models/reactComponentOutput.interface.js +0 -3
  102. package/dist/cjs/models/reactComponentOutput.interface.js.map +0 -1
  103. package/dist/cjs/models/rowDetailView.interface.js +0 -3
  104. package/dist/cjs/models/rowDetailView.interface.js.map +0 -1
  105. package/dist/cjs/models/slickgridReactInstance.interface.js +0 -3
  106. package/dist/cjs/models/slickgridReactInstance.interface.js.map +0 -1
  107. package/dist/cjs/models/viewModelBindableData.interface.js +0 -3
  108. package/dist/cjs/models/viewModelBindableData.interface.js.map +0 -1
  109. package/dist/cjs/models/viewModelBindableInputData.interface.js +0 -3
  110. package/dist/cjs/models/viewModelBindableInputData.interface.js.map +0 -1
  111. package/dist/cjs/services/container.service.js +0 -16
  112. package/dist/cjs/services/container.service.js.map +0 -1
  113. package/dist/cjs/services/index.js +0 -20
  114. package/dist/cjs/services/index.js.map +0 -1
  115. package/dist/cjs/services/reactUtils.js +0 -26
  116. package/dist/cjs/services/reactUtils.js.map +0 -1
  117. package/dist/cjs/services/singletons.js +0 -10
  118. package/dist/cjs/services/singletons.js.map +0 -1
  119. package/dist/cjs/services/translater.service.js +0 -41
  120. package/dist/cjs/services/translater.service.js.map +0 -1
  121. package/dist/cjs/services/utilities.js +0 -20
  122. package/dist/cjs/services/utilities.js.map +0 -1
  123. package/dist/cjs/slickgrid-config.js +0 -11
  124. package/dist/cjs/slickgrid-config.js.map +0 -1
  125. package/dist/esm/components/slickgrid-react.js.map +0 -1
  126. package/dist/esm/components/slickgridReactProps.js.map +0 -1
  127. package/dist/esm/constants.js +0 -88
  128. package/dist/esm/constants.js.map +0 -1
  129. package/dist/esm/extensions/slickRowDetailView.js.map +0 -1
  130. package/dist/esm/global-grid-options.js.map +0 -1
  131. package/dist/esm/index.js +0 -8
  132. package/dist/esm/index.js.map +0 -1
  133. package/dist/esm/models/gridOption.interface.js.map +0 -1
  134. package/dist/esm/models/index.js.map +0 -1
  135. package/dist/esm/models/reactComponentOutput.interface.js.map +0 -1
  136. package/dist/esm/models/rowDetailView.interface.js.map +0 -1
  137. package/dist/esm/models/slickgridReactInstance.interface.js.map +0 -1
  138. package/dist/esm/models/viewModelBindableData.interface.js.map +0 -1
  139. package/dist/esm/models/viewModelBindableInputData.interface.js.map +0 -1
  140. package/dist/esm/services/container.service.js.map +0 -1
  141. package/dist/esm/services/index.js +0 -4
  142. package/dist/esm/services/index.js.map +0 -1
  143. package/dist/esm/services/reactUtils.js.map +0 -1
  144. package/dist/esm/services/singletons.js.map +0 -1
  145. package/dist/esm/services/translater.service.js.map +0 -1
  146. package/dist/esm/services/utilities.js.map +0 -1
  147. package/dist/esm/slickgrid-config.js +0 -7
  148. package/dist/esm/slickgrid-config.js.map +0 -1
  149. package/dist/types/components/slickgrid-react.d.ts.map +0 -1
  150. package/dist/types/components/slickgridReactProps.d.ts.map +0 -1
  151. package/dist/types/constants.d.ts.map +0 -1
  152. package/dist/types/extensions/slickRowDetailView.d.ts.map +0 -1
  153. package/dist/types/global-grid-options.d.ts.map +0 -1
  154. package/dist/types/index.d.ts.map +0 -1
  155. package/dist/types/models/gridOption.interface.d.ts.map +0 -1
  156. package/dist/types/models/index.d.ts +0 -7
  157. package/dist/types/models/index.d.ts.map +0 -1
  158. package/dist/types/models/reactComponentOutput.interface.d.ts.map +0 -1
  159. package/dist/types/models/rowDetailView.interface.d.ts.map +0 -1
  160. package/dist/types/models/slickgridReactInstance.interface.d.ts.map +0 -1
  161. package/dist/types/models/viewModelBindableData.interface.d.ts.map +0 -1
  162. package/dist/types/models/viewModelBindableInputData.interface.d.ts.map +0 -1
  163. package/dist/types/services/container.service.d.ts.map +0 -1
  164. package/dist/types/services/index.d.ts +0 -4
  165. package/dist/types/services/index.d.ts.map +0 -1
  166. package/dist/types/services/reactUtils.d.ts.map +0 -1
  167. package/dist/types/services/singletons.d.ts.map +0 -1
  168. package/dist/types/services/translater.service.d.ts.map +0 -1
  169. package/dist/types/services/utilities.d.ts.map +0 -1
  170. package/dist/types/slickgrid-config.d.ts +0 -6
  171. package/dist/types/slickgrid-config.d.ts.map +0 -1
  172. package/src/slickgrid-react/index.ts +0 -29
  173. package/src/slickgrid-react/models/index.ts +0 -6
  174. package/src/slickgrid-react/services/index.ts +0 -3
  175. package/src/slickgrid-react/slickgrid-config.ts +0 -10
  176. /package/dist/{esm/components → components}/slickgridReactProps.js +0 -0
  177. /package/dist/{esm/models → models}/gridOption.interface.js +0 -0
  178. /package/dist/{esm/models → models}/index.js +0 -0
  179. /package/dist/{esm/models → models}/reactComponentOutput.interface.js +0 -0
  180. /package/dist/{esm/models → models}/rowDetailView.interface.js +0 -0
  181. /package/dist/{esm/models → models}/slickgridReactInstance.interface.js +0 -0
  182. /package/dist/{esm/models → models}/viewModelBindableData.interface.js +0 -0
  183. /package/dist/{esm/models → models}/viewModelBindableInputData.interface.js +0 -0
  184. /package/src/{slickgrid-react/models → models}/reactComponentOutput.interface.ts +0 -0
  185. /package/src/{slickgrid-react/services → services}/container.service.ts +0 -0
  186. /package/src/{slickgrid-react/services → services}/utilities.ts +0 -0
@@ -1,15 +1,22 @@
1
1
  import { addToArrayWhenNotExists, createDomElement, SlickEventData, SlickRowSelectionModel, unsubscribeAll, } from '@slickgrid-universal/common';
2
2
  import { SlickRowDetailView as UniversalSlickRowDetailView } from '@slickgrid-universal/row-detail-view-plugin';
3
- import { createReactComponentDynamically } from '../services/reactUtils';
3
+ import { createReactComponentDynamically } from '../services/reactUtils.js';
4
4
  const ROW_DETAIL_CONTAINER_PREFIX = 'container_';
5
5
  const PRELOAD_CONTAINER_PREFIX = 'container_loading';
6
6
  // interface SRDV extends React.Component<Props, State>, UniversalSlickRowDetailView {}s
7
7
  export class SlickRowDetailView extends UniversalSlickRowDetailView {
8
+ eventPubSubService;
9
+ _component;
10
+ _preloadComponent;
11
+ _preloadRoot;
12
+ _views = [];
13
+ _subscriptions = [];
14
+ _userProcessFn;
15
+ gridContainerElement;
16
+ _root;
8
17
  constructor(eventPubSubService) {
9
18
  super(eventPubSubService);
10
19
  this.eventPubSubService = eventPubSubService;
11
- this._views = [];
12
- this._subscriptions = [];
13
20
  }
14
21
  get addonOptions() {
15
22
  return this.getOptions();
@@ -18,8 +25,7 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
18
25
  return this.gridOptions.datasetIdPropertyName || 'id';
19
26
  }
20
27
  get gridOptions() {
21
- var _a;
22
- return (((_a = this._grid) === null || _a === void 0 ? void 0 : _a.getOptions()) || {});
28
+ return (this._grid?.getOptions() || {});
23
29
  }
24
30
  get rowDetailViewOptions() {
25
31
  return this.gridOptions.rowDetailView;
@@ -47,15 +53,14 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
47
53
  this._grid = grid;
48
54
  super.init(this._grid);
49
55
  this.gridContainerElement = grid.getContainerNode();
50
- this.register(grid === null || grid === void 0 ? void 0 : grid.getSelectionModel());
56
+ this.register(grid?.getSelectionModel());
51
57
  }
52
58
  /**
53
59
  * Create the plugin before the Grid creation, else it will behave oddly.
54
60
  * Mostly because the column definitions might change after the grid creation
55
61
  */
56
62
  register(rowSelectionPlugin) {
57
- var _a, _b, _c, _d, _f, _g, _h;
58
- if (typeof ((_a = this.gridOptions.rowDetailView) === null || _a === void 0 ? void 0 : _a.process) === 'function') {
63
+ if (typeof this.gridOptions.rowDetailView?.process === 'function') {
59
64
  // we need to keep the user "process" method and replace it with our own execution method
60
65
  // we do this because when we get the item detail, we need to call "onAsyncResponse.notify" for the plugin to work
61
66
  this._userProcessFn = this.gridOptions.rowDetailView.process; // keep user's process method
@@ -64,15 +69,15 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
64
69
  else {
65
70
  throw new Error('[Slickgrid-React] You need to provide a "process" function for the Row Detail Extension to work properly');
66
71
  }
67
- if (this._grid && ((_b = this.gridOptions) === null || _b === void 0 ? void 0 : _b.rowDetailView)) {
72
+ if (this._grid && this.gridOptions?.rowDetailView) {
68
73
  // load the Preload & RowDetail Templates (could be straight HTML or React Components)
69
74
  // when those are React Components, we need to create View Component & provide the html containers to the Plugin (preTemplate/postTemplate methods)
70
75
  if (!this.gridOptions.rowDetailView.preTemplate) {
71
- this._preloadComponent = (_d = (_c = this.gridOptions) === null || _c === void 0 ? void 0 : _c.rowDetailView) === null || _d === void 0 ? void 0 : _d.preloadComponent;
76
+ this._preloadComponent = this.gridOptions?.rowDetailView?.preloadComponent;
72
77
  this.addonOptions.preTemplate = () => createDomElement('div', { className: `${PRELOAD_CONTAINER_PREFIX}` });
73
78
  }
74
79
  if (!this.gridOptions.rowDetailView.postTemplate) {
75
- this._component = (_g = (_f = this.gridOptions) === null || _f === void 0 ? void 0 : _f.rowDetailView) === null || _g === void 0 ? void 0 : _g.viewComponent;
80
+ this._component = this.gridOptions?.rowDetailView?.viewComponent;
76
81
  this.addonOptions.postTemplate = (itemDetail) => createDomElement('div', { className: `${ROW_DETAIL_CONTAINER_PREFIX}${itemDetail[this.datasetIdPropName]}` });
77
82
  }
78
83
  if (this._grid && this.gridOptions) {
@@ -87,61 +92,53 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
87
92
  this.rowDetailViewOptions.onExtensionRegistered(this);
88
93
  }
89
94
  this._eventHandler.subscribe(this.onAsyncResponse, (event, args) => {
90
- var _a;
91
- if (typeof ((_a = this.rowDetailViewOptions) === null || _a === void 0 ? void 0 : _a.onAsyncResponse) === 'function') {
95
+ if (typeof this.rowDetailViewOptions?.onAsyncResponse === 'function') {
92
96
  this.rowDetailViewOptions.onAsyncResponse(event, args);
93
97
  }
94
98
  });
95
99
  this._eventHandler.subscribe(this.onAsyncEndUpdate, async (event, args) => {
96
- var _a;
97
100
  // dispose preload if exists
98
- (_a = this._preloadRoot) === null || _a === void 0 ? void 0 : _a.unmount();
101
+ this._preloadRoot?.unmount();
99
102
  // triggers after backend called "onAsyncResponse.notify()"
100
103
  // because of the preload destroy above, we need a small delay to make sure the DOM element is ready to render the Row Detail
101
104
  queueMicrotask(() => {
102
- var _a;
103
- this.renderViewModel(args === null || args === void 0 ? void 0 : args.item);
104
- if (typeof ((_a = this.rowDetailViewOptions) === null || _a === void 0 ? void 0 : _a.onAsyncEndUpdate) === 'function') {
105
+ this.renderViewModel(args?.item);
106
+ if (typeof this.rowDetailViewOptions?.onAsyncEndUpdate === 'function') {
105
107
  this.rowDetailViewOptions.onAsyncEndUpdate(event, args);
106
108
  }
107
109
  });
108
110
  });
109
111
  this._eventHandler.subscribe(this.onAfterRowDetailToggle, async (event, args) => {
110
- var _a;
111
112
  // display preload template & re-render all the other Detail Views after toggling
112
113
  // the preload View will eventually go away once the data gets loaded after the "onAsyncEndUpdate" event
113
114
  this.renderPreloadView(args.item);
114
- if (typeof ((_a = this.rowDetailViewOptions) === null || _a === void 0 ? void 0 : _a.onAfterRowDetailToggle) === 'function') {
115
+ if (typeof this.rowDetailViewOptions?.onAfterRowDetailToggle === 'function') {
115
116
  this.rowDetailViewOptions.onAfterRowDetailToggle(event, args);
116
117
  }
117
118
  });
118
119
  this._eventHandler.subscribe(this.onBeforeRowDetailToggle, (event, args) => {
119
- var _a;
120
120
  // before toggling row detail, we need to create View Component if it doesn't exist
121
121
  this.handleOnBeforeRowDetailToggle(event, args);
122
- if (typeof ((_a = this.rowDetailViewOptions) === null || _a === void 0 ? void 0 : _a.onBeforeRowDetailToggle) === 'function') {
122
+ if (typeof this.rowDetailViewOptions?.onBeforeRowDetailToggle === 'function') {
123
123
  return this.rowDetailViewOptions.onBeforeRowDetailToggle(event, args);
124
124
  }
125
125
  return true;
126
126
  });
127
127
  this._eventHandler.subscribe(this.onRowBackToViewportRange, async (event, args) => {
128
- var _a;
129
128
  // when row is back to viewport range, we will re-render the View Component(s)
130
129
  this.handleOnRowBackToViewportRange(event, args);
131
- if (typeof ((_a = this.rowDetailViewOptions) === null || _a === void 0 ? void 0 : _a.onRowBackToViewportRange) === 'function') {
130
+ if (typeof this.rowDetailViewOptions?.onRowBackToViewportRange === 'function') {
132
131
  this.rowDetailViewOptions.onRowBackToViewportRange(event, args);
133
132
  }
134
133
  });
135
134
  this._eventHandler.subscribe(this.onBeforeRowOutOfViewportRange, (event, args) => {
136
- var _a;
137
- if (typeof ((_a = this.rowDetailViewOptions) === null || _a === void 0 ? void 0 : _a.onBeforeRowOutOfViewportRange) === 'function') {
135
+ if (typeof this.rowDetailViewOptions?.onBeforeRowOutOfViewportRange === 'function') {
138
136
  this.rowDetailViewOptions.onBeforeRowOutOfViewportRange(event, args);
139
137
  }
140
138
  this.disposeViewByItem(args.item);
141
139
  });
142
140
  this._eventHandler.subscribe(this.onRowOutOfViewportRange, (event, args) => {
143
- var _a;
144
- if (typeof ((_a = this.rowDetailViewOptions) === null || _a === void 0 ? void 0 : _a.onRowOutOfViewportRange) === 'function') {
141
+ if (typeof this.rowDetailViewOptions?.onRowOutOfViewportRange === 'function') {
145
142
  this.rowDetailViewOptions.onRowOutOfViewportRange(event, args);
146
143
  }
147
144
  });
@@ -156,12 +153,12 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
156
153
  // on column sort/reorder, all row detail are collapsed so we can dispose of all the Views as well
157
154
  this._eventHandler.subscribe(this._grid.onSort, this.disposeAllViewComponents.bind(this));
158
155
  // on filter changed, we need to re-render all Views
159
- this._subscriptions.push((_h = this.eventPubSubService) === null || _h === void 0 ? void 0 : _h.subscribe([
156
+ this._subscriptions.push(this.eventPubSubService?.subscribe([
160
157
  'onFilterChanged',
161
158
  'onGridMenuColumnsChanged',
162
159
  'onColumnPickerColumnsChanged',
163
160
  'onGridMenuClearAllFilters',
164
- 'onGridMenuClearAllSorting'
161
+ 'onGridMenuClearAllSorting',
165
162
  ], () => this.redrawAllViewComponents(true)));
166
163
  }
167
164
  }
@@ -182,9 +179,7 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
182
179
  }
183
180
  /** Render all the expanded row detail View Components */
184
181
  async renderAllViewModels() {
185
- this._views
186
- .filter((x) => x === null || x === void 0 ? void 0 : x.dataContext)
187
- .forEach((x) => this.renderViewModel(x.dataContext));
182
+ this._views.filter((x) => x?.dataContext).forEach((x) => this.renderViewModel(x.dataContext));
188
183
  }
189
184
  /** Redraw the necessary View Component */
190
185
  redrawViewComponent(view) {
@@ -195,7 +190,6 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
195
190
  }
196
191
  /** Render (or re-render) the View Component (Row Detail) */
197
192
  renderPreloadView(item) {
198
- var _a;
199
193
  const containerElement = this.gridContainerElement.querySelector(`.${PRELOAD_CONTAINER_PREFIX}`);
200
194
  if (this._preloadComponent && containerElement) {
201
195
  // render row detail
@@ -204,7 +198,7 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
204
198
  addon: this,
205
199
  grid: this._grid,
206
200
  dataView: this.dataView,
207
- parent: (_a = this.rowDetailViewOptions) === null || _a === void 0 ? void 0 : _a.parent,
201
+ parentRef: this.rowDetailViewOptions?.parentRef,
208
202
  };
209
203
  const detailContainer = document.createElement('section');
210
204
  containerElement.appendChild(detailContainer);
@@ -214,7 +208,6 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
214
208
  }
215
209
  /** Render (or re-render) the View Component (Row Detail) */
216
210
  renderViewModel(item) {
217
- var _a;
218
211
  const containerElement = this.gridContainerElement.querySelector(`.${ROW_DETAIL_CONTAINER_PREFIX}${item[this.datasetIdPropName]}`);
219
212
  if (this._component && containerElement) {
220
213
  const bindableData = {
@@ -222,12 +215,12 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
222
215
  addon: this,
223
216
  grid: this._grid,
224
217
  dataView: this.dataView,
225
- parent: (_a = this.rowDetailViewOptions) === null || _a === void 0 ? void 0 : _a.parent,
218
+ parentRef: this.rowDetailViewOptions?.parentRef,
226
219
  };
227
220
  // load our Row Detail React Component dynamically, typically we would want to use `root.render()` after the preload component (last argument below)
228
221
  // BUT the root render doesn't seem to work and shows a blank element, so we'll use `createRoot()` every time even though it shows a console log in Dev
229
222
  // that is the only way I got it working so let's use it anyway and console warnings are removed in production anyway
230
- const viewObj = this._views.find(obj => obj.id === item[this.datasetIdPropName]);
223
+ const viewObj = this._views.find((obj) => obj.id === item[this.datasetIdPropName]);
231
224
  const { root } = createReactComponentDynamically(this._component, containerElement, bindableData);
232
225
  if (viewObj) {
233
226
  viewObj.root = root;
@@ -242,7 +235,7 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
242
235
  // protected functions
243
236
  // ------------------
244
237
  upsertViewRefs(item, root) {
245
- const viewIdx = this._views.findIndex(obj => obj.id === item[this.datasetIdPropName]);
238
+ const viewIdx = this._views.findIndex((obj) => obj.id === item[this.datasetIdPropName]);
246
239
  const viewInfo = {
247
240
  id: item[this.datasetIdPropName],
248
241
  dataContext: item,
@@ -268,7 +261,7 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
268
261
  }
269
262
  disposeViewComponent(expandedView) {
270
263
  expandedView.rendered = false;
271
- if (expandedView === null || expandedView === void 0 ? void 0 : expandedView.root) {
264
+ if (expandedView?.root) {
272
265
  const container = this.gridContainerElement.querySelector(`.${ROW_DETAIL_CONTAINER_PREFIX}${expandedView.id}`);
273
266
  if (container) {
274
267
  expandedView.root.unmount();
@@ -284,9 +277,8 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
284
277
  * if we don't already have it or if it's collapsing we will remove it from our View Components reference array
285
278
  */
286
279
  handleOnBeforeRowDetailToggle(_e, args) {
287
- var _a;
288
280
  // expanding
289
- if ((_a = args === null || args === void 0 ? void 0 : args.item) === null || _a === void 0 ? void 0 : _a.__collapsed) {
281
+ if (args?.item?.__collapsed) {
290
282
  // expanding row detail
291
283
  this.upsertViewRefs(args.item, null);
292
284
  }
@@ -308,7 +300,7 @@ export class SlickRowDetailView extends UniversalSlickRowDetailView {
308
300
  * @param item
309
301
  */
310
302
  notifyTemplate(item) {
311
- this.onAsyncResponse.notify({ item, itemDetail: item }, new SlickEventData(), this);
303
+ this.onAsyncResponse.notify({ item }, new SlickEventData(), this);
312
304
  }
313
305
  /**
314
306
  * On Processing, we will notify the plugin with the new item detail once backend server call completes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slickRowDetailView.js","sourceRoot":"","sources":["../../src/extensions/slickRowDetailView.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n addToArrayWhenNotExists,\n createDomElement,\n type EventSubscription,\n type OnBeforeRowDetailToggleArgs,\n type OnRowBackOrOutOfViewportRangeArgs,\n SlickEventData,\n type SlickGrid,\n SlickRowSelectionModel,\n unsubscribeAll,\n} from '@slickgrid-universal/common';\nimport { type EventPubSubService } from '@slickgrid-universal/event-pub-sub';\nimport { SlickRowDetailView as UniversalSlickRowDetailView } from '@slickgrid-universal/row-detail-view-plugin';\nimport type { Root } from 'react-dom/client';\n\nimport type { GridOption, RowDetailView, ViewModelBindableInputData } from '../models/index.js';\nimport { createReactComponentDynamically } from '../services/reactUtils.js';\n\nconst ROW_DETAIL_CONTAINER_PREFIX = 'container_';\nconst PRELOAD_CONTAINER_PREFIX = 'container_loading';\n\nexport interface CreatedView {\n id: string | number;\n dataContext: any;\n root: Root | null;\n rendered?: boolean;\n}\n// interface SRDV extends React.Component<Props, State>, UniversalSlickRowDetailView {}s\n\nexport class SlickRowDetailView extends UniversalSlickRowDetailView {\n protected _component?: any;\n protected _preloadComponent?: any;\n protected _preloadRoot?: Root;\n protected _views: CreatedView[] = [];\n protected _subscriptions: EventSubscription[] = [];\n protected _userProcessFn?: (item: any) => Promise<any>;\n protected gridContainerElement!: HTMLElement;\n _root?: Root;\n\n constructor(private readonly eventPubSubService: EventPubSubService) {\n super(eventPubSubService);\n }\n\n get addonOptions() {\n return this.getOptions();\n }\n\n protected get datasetIdPropName(): string {\n return this.gridOptions.datasetIdPropertyName || 'id';\n }\n\n get gridOptions(): GridOption {\n return (this._grid?.getOptions() || {}) as GridOption;\n }\n\n get rowDetailViewOptions(): RowDetailView | undefined {\n return this.gridOptions.rowDetailView;\n }\n\n /** Dispose of the RowDetailView Extension */\n dispose() {\n this.disposeAllViewComponents();\n unsubscribeAll(this._subscriptions);\n super.dispose();\n }\n\n /** Dispose of all the opened Row Detail Panels Components */\n disposeAllViewComponents() {\n do {\n const view = this._views.pop();\n if (view) {\n this.disposeViewByItem(view);\n }\n } while (this._views.length > 0);\n }\n\n /** Get the instance of the SlickGrid addon (control or plugin). */\n getAddonInstance(): SlickRowDetailView | null {\n return this;\n }\n\n init(grid: SlickGrid) {\n this._grid = grid;\n super.init(this._grid);\n this.gridContainerElement = grid.getContainerNode();\n this.register(grid?.getSelectionModel() as SlickRowSelectionModel);\n }\n\n /**\n * Create the plugin before the Grid creation, else it will behave oddly.\n * Mostly because the column definitions might change after the grid creation\n */\n register(rowSelectionPlugin?: SlickRowSelectionModel) {\n if (typeof this.gridOptions.rowDetailView?.process === 'function') {\n // we need to keep the user \"process\" method and replace it with our own execution method\n // we do this because when we get the item detail, we need to call \"onAsyncResponse.notify\" for the plugin to work\n this._userProcessFn = this.gridOptions.rowDetailView.process as (item: any) => Promise<any>; // keep user's process method\n this.addonOptions.process = (item) => this.onProcessing(item); // replace process method & run our internal one\n } else {\n throw new Error('[Slickgrid-React] You need to provide a \"process\" function for the Row Detail Extension to work properly');\n }\n\n if (this._grid && this.gridOptions?.rowDetailView) {\n // load the Preload & RowDetail Templates (could be straight HTML or React Components)\n // when those are React Components, we need to create View Component & provide the html containers to the Plugin (preTemplate/postTemplate methods)\n if (!this.gridOptions.rowDetailView.preTemplate) {\n this._preloadComponent = this.gridOptions?.rowDetailView?.preloadComponent;\n this.addonOptions.preTemplate = () => createDomElement('div', { className: `${PRELOAD_CONTAINER_PREFIX}` });\n }\n if (!this.gridOptions.rowDetailView.postTemplate) {\n this._component = this.gridOptions?.rowDetailView?.viewComponent;\n this.addonOptions.postTemplate = (itemDetail: any) =>\n createDomElement('div', { className: `${ROW_DETAIL_CONTAINER_PREFIX}${itemDetail[this.datasetIdPropName]}` });\n }\n\n if (this._grid && this.gridOptions) {\n // this also requires the Row Selection Model to be registered as well\n if (!rowSelectionPlugin || !this._grid.getSelectionModel()) {\n rowSelectionPlugin = new SlickRowSelectionModel(this.gridOptions.rowSelectionOptions || { selectActiveRow: true });\n this._grid.setSelectionModel(rowSelectionPlugin);\n }\n\n // hook all events\n if (this._grid && this.rowDetailViewOptions) {\n if (this.rowDetailViewOptions.onExtensionRegistered) {\n this.rowDetailViewOptions.onExtensionRegistered(this);\n }\n\n this._eventHandler.subscribe(this.onAsyncResponse, (event, args) => {\n if (typeof this.rowDetailViewOptions?.onAsyncResponse === 'function') {\n this.rowDetailViewOptions.onAsyncResponse(event, args);\n }\n });\n\n this._eventHandler.subscribe(this.onAsyncEndUpdate, async (event, args) => {\n // dispose preload if exists\n this._preloadRoot?.unmount();\n\n // triggers after backend called \"onAsyncResponse.notify()\"\n // because of the preload destroy above, we need a small delay to make sure the DOM element is ready to render the Row Detail\n queueMicrotask(() => {\n this.renderViewModel(args?.item);\n\n if (typeof this.rowDetailViewOptions?.onAsyncEndUpdate === 'function') {\n this.rowDetailViewOptions.onAsyncEndUpdate(event, args);\n }\n });\n });\n\n this._eventHandler.subscribe(this.onAfterRowDetailToggle, async (event, args) => {\n // display preload template & re-render all the other Detail Views after toggling\n // the preload View will eventually go away once the data gets loaded after the \"onAsyncEndUpdate\" event\n this.renderPreloadView(args.item);\n\n if (typeof this.rowDetailViewOptions?.onAfterRowDetailToggle === 'function') {\n this.rowDetailViewOptions.onAfterRowDetailToggle(event, args);\n }\n });\n\n this._eventHandler.subscribe(this.onBeforeRowDetailToggle, (event, args) => {\n // before toggling row detail, we need to create View Component if it doesn't exist\n this.handleOnBeforeRowDetailToggle(event, args);\n\n if (typeof this.rowDetailViewOptions?.onBeforeRowDetailToggle === 'function') {\n return this.rowDetailViewOptions.onBeforeRowDetailToggle(event, args);\n }\n return true;\n });\n\n this._eventHandler.subscribe(this.onRowBackToViewportRange, async (event, args) => {\n // when row is back to viewport range, we will re-render the View Component(s)\n this.handleOnRowBackToViewportRange(event, args);\n\n if (typeof this.rowDetailViewOptions?.onRowBackToViewportRange === 'function') {\n this.rowDetailViewOptions.onRowBackToViewportRange(event, args);\n }\n });\n\n this._eventHandler.subscribe(this.onBeforeRowOutOfViewportRange, (event, args) => {\n if (typeof this.rowDetailViewOptions?.onBeforeRowOutOfViewportRange === 'function') {\n this.rowDetailViewOptions.onBeforeRowOutOfViewportRange(event, args);\n }\n this.disposeViewByItem(args.item);\n });\n\n this._eventHandler.subscribe(this.onRowOutOfViewportRange, (event, args) => {\n if (typeof this.rowDetailViewOptions?.onRowOutOfViewportRange === 'function') {\n this.rowDetailViewOptions.onRowOutOfViewportRange(event, args);\n }\n });\n\n // --\n // hook some events needed by the Plugin itself\n\n // we need to redraw the open detail views if we change column position (column reorder)\n this.eventHandler.subscribe(this._grid.onColumnsReordered, () => this.redrawAllViewComponents(false));\n\n // on row selection changed, we also need to redraw\n if (this.gridOptions.enableRowSelection || this.gridOptions.enableCheckboxSelector) {\n this._eventHandler.subscribe(this._grid.onSelectedRowsChanged, () => this.redrawAllViewComponents(false));\n }\n\n // on column sort/reorder, all row detail are collapsed so we can dispose of all the Views as well\n this._eventHandler.subscribe(this._grid.onSort, this.disposeAllViewComponents.bind(this));\n\n // on filter changed, we need to re-render all Views\n this._subscriptions.push(\n this.eventPubSubService?.subscribe(\n [\n 'onFilterChanged',\n 'onGridMenuColumnsChanged',\n 'onColumnPickerColumnsChanged',\n 'onGridMenuClearAllFilters',\n 'onGridMenuClearAllSorting',\n ],\n () => this.redrawAllViewComponents(true)\n )\n );\n }\n }\n }\n\n return this;\n }\n\n /** Redraw (re-render) all the expanded row detail View Components */\n async redrawAllViewComponents(forceRedraw = false) {\n setTimeout(() => {\n this.resetRenderedRows();\n this._views.forEach((view) => {\n if (!view.rendered || forceRedraw) {\n forceRedraw && this.disposeViewComponent(view);\n this.redrawViewComponent(view);\n }\n });\n });\n }\n\n /** Render all the expanded row detail View Components */\n async renderAllViewModels() {\n this._views.filter((x) => x?.dataContext).forEach((x) => this.renderViewModel(x.dataContext));\n }\n\n /** Redraw the necessary View Component */\n redrawViewComponent(view: CreatedView) {\n const containerElement = this.gridContainerElement.querySelector(`.${ROW_DETAIL_CONTAINER_PREFIX}${view.id}`);\n if (containerElement) {\n this.renderViewModel(view.dataContext);\n }\n }\n\n /** Render (or re-render) the View Component (Row Detail) */\n renderPreloadView(item: any) {\n const containerElement = this.gridContainerElement.querySelector(`.${PRELOAD_CONTAINER_PREFIX}`);\n if (this._preloadComponent && containerElement) {\n // render row detail\n const bindableData = {\n model: item,\n addon: this,\n grid: this._grid,\n dataView: this.dataView,\n parentRef: this.rowDetailViewOptions?.parentRef,\n } as ViewModelBindableInputData;\n const detailContainer = document.createElement('section');\n containerElement.appendChild(detailContainer);\n\n const { root } = createReactComponentDynamically(this._preloadComponent, detailContainer, bindableData);\n this._preloadRoot = root;\n }\n }\n\n /** Render (or re-render) the View Component (Row Detail) */\n renderViewModel(item: any) {\n const containerElement = this.gridContainerElement.querySelector<HTMLElement>(\n `.${ROW_DETAIL_CONTAINER_PREFIX}${item[this.datasetIdPropName]}`\n );\n if (this._component && containerElement) {\n const bindableData = {\n model: item,\n addon: this,\n grid: this._grid,\n dataView: this.dataView,\n parentRef: this.rowDetailViewOptions?.parentRef,\n } as ViewModelBindableInputData;\n\n // load our Row Detail React Component dynamically, typically we would want to use `root.render()` after the preload component (last argument below)\n // BUT the root render doesn't seem to work and shows a blank element, so we'll use `createRoot()` every time even though it shows a console log in Dev\n // that is the only way I got it working so let's use it anyway and console warnings are removed in production anyway\n const viewObj = this._views.find((obj) => obj.id === item[this.datasetIdPropName]);\n const { root } = createReactComponentDynamically(this._component, containerElement, bindableData);\n if (viewObj) {\n viewObj.root = root;\n viewObj.rendered = true;\n } else {\n this.upsertViewRefs(item, root);\n }\n }\n }\n\n // --\n // protected functions\n // ------------------\n\n protected upsertViewRefs(item: any, root: Root | null) {\n const viewIdx = this._views.findIndex((obj) => obj.id === item[this.datasetIdPropName]);\n const viewInfo: CreatedView = {\n id: item[this.datasetIdPropName],\n dataContext: item,\n root,\n rendered: !!root,\n };\n if (viewIdx >= 0) {\n this._views[viewIdx] = viewInfo;\n } else {\n this._views.push(viewInfo);\n }\n addToArrayWhenNotExists(this._views, viewInfo, this.datasetIdPropName);\n }\n\n protected disposeViewByItem(item: any, removeFromArray = false): void {\n const foundViewIdx = this._views.findIndex((view: CreatedView) => view.id === item[this.datasetIdPropName]);\n if (foundViewIdx >= 0) {\n this.disposeViewComponent(this._views[foundViewIdx]);\n if (removeFromArray) {\n this._views.splice(foundViewIdx, 1);\n }\n }\n }\n\n protected disposeViewComponent(expandedView: CreatedView): CreatedView | void {\n expandedView.rendered = false;\n if (expandedView?.root) {\n const container = this.gridContainerElement.querySelector(`.${ROW_DETAIL_CONTAINER_PREFIX}${expandedView.id}`);\n if (container) {\n expandedView.root.unmount();\n container.textContent = '';\n return expandedView;\n }\n }\n }\n\n /**\n * Just before the row get expanded or collapsed we will do the following\n * First determine if the row is expanding or collapsing,\n * if it's expanding we will add it to our View Components reference array,\n * if we don't already have it or if it's collapsing we will remove it from our View Components reference array\n */\n protected handleOnBeforeRowDetailToggle(_e: SlickEventData<OnBeforeRowDetailToggleArgs>, args: { grid: SlickGrid; item: any }) {\n // expanding\n if (args?.item?.__collapsed) {\n // expanding row detail\n this.upsertViewRefs(args.item, null);\n } else {\n // collapsing, so dispose of the View\n this.disposeViewByItem(args.item, true);\n }\n }\n\n /** When Row comes back to Viewport Range, we need to redraw the View */\n protected async handleOnRowBackToViewportRange(\n _e: SlickEventData<OnRowBackOrOutOfViewportRangeArgs>,\n args: {\n item: any;\n rowId: string | number;\n rowIndex: number;\n expandedRows: (string | number)[];\n rowIdsOutOfViewport: (string | number)[];\n grid: SlickGrid;\n }\n ) {\n const viewModel = this._views.find((x) => x.id === args.rowId);\n if (viewModel && !viewModel.rendered) {\n this.redrawViewComponent(viewModel);\n }\n }\n\n /**\n * notify the onAsyncResponse with the \"args.item\" (required property)\n * the plugin will then use item to populate the row detail panel with the \"postTemplate\"\n * @param item\n */\n protected notifyTemplate(item: any) {\n this.onAsyncResponse.notify({ item }, new SlickEventData(), this);\n }\n\n /**\n * On Processing, we will notify the plugin with the new item detail once backend server call completes\n * @param item\n */\n protected async onProcessing(item: any) {\n if (item && typeof this._userProcessFn === 'function') {\n let awaitedItemDetail: any;\n const userProcessFn = this._userProcessFn(item);\n\n // wait for the \"userProcessFn\", once resolved we will save it into the \"collection\"\n const response: any | any[] = await userProcessFn;\n\n if (response.hasOwnProperty(this.datasetIdPropName)) {\n awaitedItemDetail = response; // from Promise\n } else if (response instanceof Response && typeof response['json'] === 'function') {\n awaitedItemDetail = await response['json'](); // from Fetch\n } else if (response && response['content']) {\n awaitedItemDetail = response['content']; // from http-client\n }\n\n if (!awaitedItemDetail || !awaitedItemDetail.hasOwnProperty(this.datasetIdPropName)) {\n throw new Error(\n '[Slickgrid-React] could not process the Row Detail, please make sure that your \"process\" callback ' +\n `returns an item object that has an \"${this.datasetIdPropName}\" property`\n );\n }\n\n // notify the plugin with the new item details\n this.notifyTemplate(awaitedItemDetail || {});\n }\n }\n}\n"]}
@@ -1,6 +1,5 @@
1
- import type { GridOption } from './models/index';
1
+ import type { GridOption } from './models/index.js';
2
2
  /**
3
3
  * Default Options that can be passed to the Slickgrid-React
4
4
  */
5
5
  export declare const GlobalGridOptions: Partial<GridOption>;
6
- //# sourceMappingURL=global-grid-options.d.ts.map
@@ -1,4 +1,4 @@
1
- import { DelimiterType, EventNamingStyle, FileType, Filters, OperatorType } from '@slickgrid-universal/common';
1
+ import { DelimiterType, EventNamingStyle, Filters } from '@slickgrid-universal/common';
2
2
  /**
3
3
  * Default Options that can be passed to the Slickgrid-React
4
4
  */
@@ -15,12 +15,12 @@ export const GlobalGridOptions = {
15
15
  bottomPadding: 20,
16
16
  minHeight: 250,
17
17
  minWidth: 300,
18
- rightPadding: 0
18
+ rightPadding: 0,
19
19
  },
20
20
  cellHighlightCssClass: 'slick-cell-modified',
21
21
  checkboxSelector: {
22
22
  cssClass: 'slick-cell-checkboxsel',
23
- width: 40
23
+ width: 40,
24
24
  },
25
25
  cellMenu: {
26
26
  autoAdjustDrop: true,
@@ -33,7 +33,7 @@ export const GlobalGridOptions = {
33
33
  columnPicker: {
34
34
  hideForceFitButton: false,
35
35
  hideSyncResizeButton: true,
36
- headerColumnValueExtractor: pickerHeaderColumnValueExtractor
36
+ headerColumnValueExtractor: pickerHeaderColumnValueExtractor,
37
37
  },
38
38
  compositeEditorOptions: {
39
39
  labels: {
@@ -87,14 +87,14 @@ export const GlobalGridOptions = {
87
87
  of: 'of',
88
88
  ofKey: 'OF',
89
89
  itemsSelected: 'items selected',
90
- itemsSelectedKey: 'ITEMS_SELECTED'
91
- }
90
+ itemsSelectedKey: 'ITEMS_SELECTED',
91
+ },
92
92
  },
93
93
  dataView: {
94
94
  // when enabled, this will preserve the row selection even after filtering/sorting/grouping
95
95
  syncGridSelection: {
96
96
  preserveHidden: false,
97
- preserveHiddenOnSelectionChange: true
97
+ preserveHiddenOnSelectionChange: true,
98
98
  },
99
99
  syncGridSelectionWithBackendService: false, // but disable it when using backend services
100
100
  },
@@ -103,7 +103,7 @@ export const GlobalGridOptions = {
103
103
  defaultBackendServiceFilterTypingDebounce: 500,
104
104
  defaultColumnSortFieldId: 'id',
105
105
  defaultFilterPlaceholder: '🔎︎', // magnifying glass icon
106
- defaultFilterRangeOperator: OperatorType.rangeInclusive,
106
+ defaultFilterRangeOperator: 'RangeInclusive',
107
107
  editable: false,
108
108
  editorTypingDebounce: 450,
109
109
  filterTypingDebounce: 0,
@@ -140,7 +140,7 @@ export const GlobalGridOptions = {
140
140
  addGroupIndentation: true,
141
141
  exportWithFormatter: false,
142
142
  filename: 'export',
143
- format: FileType.xlsx,
143
+ format: 'xlsx',
144
144
  groupingColumnHeaderTitle: 'Group By',
145
145
  groupCollapsedSymbol: '⮞',
146
146
  groupExpandedSymbol: '⮟',
@@ -151,11 +151,11 @@ export const GlobalGridOptions = {
151
151
  delimiter: DelimiterType.comma,
152
152
  exportWithFormatter: false,
153
153
  filename: 'export',
154
- format: FileType.csv,
154
+ format: 'csv',
155
155
  groupingColumnHeaderTitle: 'Group By',
156
156
  groupingAggregatorRowText: '',
157
157
  sanitizeDataExport: false,
158
- useUtf8WithBom: true
158
+ useUtf8WithBom: true,
159
159
  },
160
160
  forceFitColumns: false,
161
161
  frozenHeaderWidthCalcDifferential: 1,
@@ -197,7 +197,7 @@ export const GlobalGridOptions = {
197
197
  iconTogglePreHeaderCommand: 'mdi mdi-flip-vertical',
198
198
  menuWidth: 16,
199
199
  resizeOnShowHeaderRow: true,
200
- headerColumnValueExtractor: pickerHeaderColumnValueExtractor
200
+ headerColumnValueExtractor: pickerHeaderColumnValueExtractor,
201
201
  },
202
202
  headerMenu: {
203
203
  autoAlign: true,
@@ -215,7 +215,7 @@ export const GlobalGridOptions = {
215
215
  hideClearFilterCommand: false,
216
216
  hideClearSortCommand: false,
217
217
  hideFreezeColumnsCommand: true, // opt-in command
218
- hideSortCommands: false
218
+ hideSortCommands: false,
219
219
  },
220
220
  multiColumnSort: true,
221
221
  numberedMultiColumnSort: true,
@@ -225,7 +225,7 @@ export const GlobalGridOptions = {
225
225
  pagination: {
226
226
  pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],
227
227
  pageSize: 25,
228
- totalItems: 0
228
+ totalItems: 0,
229
229
  },
230
230
  rowDetailView: {
231
231
  collapseAllOnSort: true,
@@ -252,10 +252,11 @@ export const GlobalGridOptions = {
252
252
  maxItemToInspectSingleColumnWidthByContent: 5000,
253
253
  widthToRemoveFromExceededWidthReadjustment: 50,
254
254
  },
255
+ rowTopOffsetRenderType: 'transform',
255
256
  treeDataOptions: {
256
257
  exportIndentMarginLeft: 5,
257
258
  exportIndentationLeadingChar: '͏͏͏͏͏͏͏͏͏·',
258
- }
259
+ },
259
260
  };
260
261
  /**
261
262
  * Value Extractor for both ColumnPicker & GridMenu Picker
@@ -263,13 +264,12 @@ export const GlobalGridOptions = {
263
264
  * else we'll simply return the column name title
264
265
  */
265
266
  function pickerHeaderColumnValueExtractor(column, gridOptions) {
266
- var _a, _b, _c;
267
- let colName = (_b = (_a = column === null || column === void 0 ? void 0 : column.columnPickerLabel) !== null && _a !== void 0 ? _a : column === null || column === void 0 ? void 0 : column.name) !== null && _b !== void 0 ? _b : '';
267
+ let colName = column?.columnPickerLabel ?? column?.name ?? '';
268
268
  if (colName instanceof HTMLElement || colName instanceof DocumentFragment) {
269
269
  colName = colName.textContent || '';
270
270
  }
271
- const headerGroup = (column === null || column === void 0 ? void 0 : column.columnGroup) || '';
272
- const columnGroupSeparator = (_c = gridOptions === null || gridOptions === void 0 ? void 0 : gridOptions.columnGroupSeparator) !== null && _c !== void 0 ? _c : ' - ';
271
+ const headerGroup = column?.columnGroup || '';
272
+ const columnGroupSeparator = gridOptions?.columnGroupSeparator ?? ' - ';
273
273
  if (headerGroup) {
274
274
  return headerGroup + columnGroupSeparator + colName;
275
275
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-grid-options.js","sourceRoot":"","sources":["../src/global-grid-options.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Column, DelimiterType, EventNamingStyle, Filters, type TreeDataOption } from '@slickgrid-universal/common';\n\nimport type { GridOption, RowDetailView } from './models/index.js';\n\n/**\n * Default Options that can be passed to the Slickgrid-React\n */\nexport const GlobalGridOptions: Partial<GridOption> = {\n alwaysShowVerticalScroll: true,\n autoEdit: false,\n asyncEditorLoading: false,\n autoFitColumnsOnFirstLoad: true,\n autoResize: {\n applyResizeToContainer: true,\n autoHeight: true,\n autoHeightRecalcRow: 100,\n calculateAvailableSizeBy: 'window',\n bottomPadding: 20,\n minHeight: 250,\n minWidth: 300,\n rightPadding: 0,\n },\n cellHighlightCssClass: 'slick-cell-modified',\n checkboxSelector: {\n cssClass: 'slick-cell-checkboxsel',\n width: 40,\n },\n cellMenu: {\n autoAdjustDrop: true,\n autoAlignSide: true,\n hideCloseButton: true,\n hideCommandSection: false,\n hideOptionSection: false,\n },\n columnGroupSeparator: ' - ',\n columnPicker: {\n hideForceFitButton: false,\n hideSyncResizeButton: true,\n headerColumnValueExtractor: pickerHeaderColumnValueExtractor,\n },\n compositeEditorOptions: {\n labels: {\n cancelButtonKey: 'CANCEL',\n cloneButtonKey: 'CLONE',\n resetEditorButtonTooltipKey: 'RESET_INPUT_VALUE',\n resetFormButtonKey: 'RESET_FORM',\n massSelectionButtonKey: 'APPLY_TO_SELECTION',\n massSelectionStatusKey: 'X_OF_Y_MASS_SELECTED',\n massUpdateButtonKey: 'APPLY_MASS_UPDATE',\n massUpdateStatusKey: 'ALL_X_RECORDS_SELECTED',\n saveButtonKey: 'SAVE',\n },\n resetEditorButtonCssClass: 'mdi mdi-refresh mdi-15px',\n resetFormButtonIconCssClass: 'mdi mdi-refresh mdi-16px mdi-flip-h',\n },\n contextMenu: {\n autoAdjustDrop: true,\n autoAlignSide: true,\n hideCloseButton: true,\n hideClearAllGrouping: false,\n hideCollapseAllGroups: false,\n hideCommandSection: false,\n hideCopyCellValueCommand: false,\n hideExpandAllGroups: false,\n hideExportCsvCommand: false,\n hideExportExcelCommand: false,\n hideExportTextDelimitedCommand: true,\n hideMenuOnScroll: true,\n hideOptionSection: false,\n iconCollapseAllGroupsCommand: 'mdi mdi-arrow-collapse',\n iconExpandAllGroupsCommand: 'mdi mdi-arrow-expand',\n iconClearGroupingCommand: 'mdi mdi-close',\n iconCopyCellValueCommand: 'mdi mdi-content-copy',\n iconExportCsvCommand: 'mdi mdi-download',\n iconExportExcelCommand: 'mdi mdi-file-excel-outline text-success',\n iconExportTextDelimitedCommand: 'mdi mdi-download',\n },\n customFooterOptions: {\n dateFormat: 'YYYY-MM-DD, hh:mm a',\n hideRowSelectionCount: false,\n hideTotalItemCount: false,\n hideLastUpdateTimestamp: true,\n footerHeight: 25,\n leftContainerClass: 'col-xs-12 col-sm-5',\n rightContainerClass: 'col-xs-6 col-sm-7',\n metricSeparator: '|',\n metricTexts: {\n items: 'items',\n itemsKey: 'ITEMS',\n of: 'of',\n ofKey: 'OF',\n itemsSelected: 'items selected',\n itemsSelectedKey: 'ITEMS_SELECTED',\n },\n },\n dataView: {\n // when enabled, this will preserve the row selection even after filtering/sorting/grouping\n syncGridSelection: {\n preserveHidden: false,\n preserveHiddenOnSelectionChange: true,\n },\n syncGridSelectionWithBackendService: false, // but disable it when using backend services\n },\n datasetIdPropertyName: 'id',\n defaultFilter: Filters.input,\n defaultBackendServiceFilterTypingDebounce: 500,\n defaultColumnSortFieldId: 'id',\n defaultFilterPlaceholder: '🔎︎', // magnifying glass icon\n defaultFilterRangeOperator: 'RangeInclusive',\n editable: false,\n editorTypingDebounce: 450,\n filterTypingDebounce: 0,\n enableEmptyDataWarningMessage: true,\n enableFilterTrimWhiteSpace: false, // do we want to trim white spaces on all Filters?\n emptyDataWarning: {\n className: 'slick-empty-data-warning',\n message: 'No data to display.',\n messageKey: 'EMPTY_DATA_WARNING_MESSAGE',\n hideFrozenLeftWarning: false,\n hideFrozenRightWarning: false,\n leftViewportMarginLeft: '40%',\n rightViewportMarginLeft: '40%',\n frozenLeftViewportMarginLeft: '0px',\n frozenRightViewportMarginLeft: '40%',\n },\n enableAutoResize: true,\n enableAutoSizeColumns: true,\n enableCellNavigation: false,\n enableColumnPicker: true,\n enableColumnReorder: true,\n enableColumnResizeOnDoubleClick: true,\n enableContextMenu: true,\n enableExcelExport: false,\n enableTextExport: false,\n enableGridMenu: true,\n enableHeaderMenu: true,\n enableMouseHoverHighlightRow: true,\n enableSorting: true,\n enableTextSelectionOnCells: true,\n eventNamingStyle: EventNamingStyle.camelCase,\n explicitInitialization: true,\n excelExportOptions: {\n addGroupIndentation: true,\n exportWithFormatter: false,\n filename: 'export',\n format: 'xlsx',\n groupingColumnHeaderTitle: 'Group By',\n groupCollapsedSymbol: '⮞',\n groupExpandedSymbol: '⮟',\n groupingAggregatorRowText: '',\n sanitizeDataExport: false,\n },\n textExportOptions: {\n delimiter: DelimiterType.comma,\n exportWithFormatter: false,\n filename: 'export',\n format: 'csv',\n groupingColumnHeaderTitle: 'Group By',\n groupingAggregatorRowText: '',\n sanitizeDataExport: false,\n useUtf8WithBom: true,\n },\n forceFitColumns: false,\n frozenHeaderWidthCalcDifferential: 1,\n gridMenu: {\n commandLabels: {\n clearAllFiltersCommandKey: 'CLEAR_ALL_FILTERS',\n clearAllSortingCommandKey: 'CLEAR_ALL_SORTING',\n clearFrozenColumnsCommandKey: 'CLEAR_PINNING',\n exportCsvCommandKey: 'EXPORT_TO_CSV',\n exportExcelCommandKey: 'EXPORT_TO_EXCEL',\n exportTextDelimitedCommandKey: 'EXPORT_TO_TAB_DELIMITED',\n refreshDatasetCommandKey: 'REFRESH_DATASET',\n toggleDarkModeCommandKey: 'TOGGLE_DARK_MODE',\n toggleFilterCommandKey: 'TOGGLE_FILTER_ROW',\n togglePreHeaderCommandKey: 'TOGGLE_PRE_HEADER_ROW',\n },\n hideClearAllFiltersCommand: false,\n hideClearAllSortingCommand: false,\n hideClearFrozenColumnsCommand: true, // opt-in command\n hideExportCsvCommand: false,\n hideExportExcelCommand: false,\n hideExportTextDelimitedCommand: true,\n hideForceFitButton: false,\n hideRefreshDatasetCommand: false,\n hideSyncResizeButton: true,\n hideToggleDarkModeCommand: true,\n hideToggleFilterCommand: false,\n hideTogglePreHeaderCommand: false,\n iconCssClass: 'mdi mdi-menu',\n iconClearAllFiltersCommand: 'mdi mdi-filter-remove-outline',\n iconClearAllSortingCommand: 'mdi mdi-sort-variant-off',\n iconClearFrozenColumnsCommand: 'mdi mdi-close',\n iconExportCsvCommand: 'mdi mdi-download',\n iconExportExcelCommand: 'mdi mdi-file-excel-outline',\n iconExportTextDelimitedCommand: 'mdi mdi-download',\n iconRefreshDatasetCommand: 'mdi mdi-sync',\n iconToggleDarkModeCommand: 'mdi mdi-brightness-4 mdi mdi-brightness-4',\n iconToggleFilterCommand: 'mdi mdi-flip-vertical',\n iconTogglePreHeaderCommand: 'mdi mdi-flip-vertical',\n menuWidth: 16,\n resizeOnShowHeaderRow: true,\n headerColumnValueExtractor: pickerHeaderColumnValueExtractor,\n },\n headerMenu: {\n autoAlign: true,\n autoAlignOffset: 12,\n minWidth: 140,\n iconClearFilterCommand: 'mdi mdi-filter-remove-outline',\n iconClearSortCommand: 'mdi mdi-sort-variant-off',\n iconFreezeColumns: 'mdi mdi-pin-outline',\n iconSortAscCommand: 'mdi mdi-sort-ascending',\n iconSortDescCommand: 'mdi mdi-sort-descending',\n iconColumnHideCommand: 'mdi mdi-close',\n iconColumnResizeByContentCommand: 'mdi mdi-arrow-expand-horizontal',\n hideColumnResizeByContentCommand: false,\n hideColumnHideCommand: false,\n hideClearFilterCommand: false,\n hideClearSortCommand: false,\n hideFreezeColumnsCommand: true, // opt-in command\n hideSortCommands: false,\n },\n multiColumnSort: true,\n numberedMultiColumnSort: true,\n tristateMultiColumnSort: false,\n sortColNumberInSeparateSpan: true,\n suppressActiveCellChangeOnEdit: false,\n pagination: {\n pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],\n pageSize: 25,\n totalItems: 0,\n },\n rowDetailView: {\n collapseAllOnSort: true,\n cssClass: 'detail-view-toggle',\n panelRows: 1,\n keyPrefix: '__',\n useRowClick: false,\n saveDetailViewOnScroll: false,\n } as RowDetailView,\n headerRowHeight: 35,\n rowHeight: 35,\n topPanelHeight: 30,\n preHeaderPanelWidth: '100%', // mostly useful for Draggable Grouping dropzone to take full width\n translationNamespaceSeparator: ':',\n resetFilterSearchValueAfterOnBeforeCancellation: true,\n resizeByContentOnlyOnFirstLoad: true,\n resizeByContentOptions: {\n alwaysRecalculateColumnWidth: false,\n cellCharWidthInPx: 7.8,\n cellPaddingWidthInPx: 14,\n defaultRatioForStringType: 0.88,\n formatterPaddingWidthInPx: 0,\n maxItemToInspectCellContentWidth: 1000,\n maxItemToInspectSingleColumnWidthByContent: 5000,\n widthToRemoveFromExceededWidthReadjustment: 50,\n },\n rowTopOffsetRenderType: 'transform',\n treeDataOptions: {\n exportIndentMarginLeft: 5,\n exportIndentationLeadingChar: '͏͏͏͏͏͏͏͏͏·',\n } as unknown as TreeDataOption,\n};\n\n/**\n * Value Extractor for both ColumnPicker & GridMenu Picker\n * when using Column Header Grouping, we'll prefix the column group title\n * else we'll simply return the column name title\n */\nfunction pickerHeaderColumnValueExtractor(column: Column, gridOptions?: GridOption) {\n let colName = column?.columnPickerLabel ?? column?.name ?? '';\n if (colName instanceof HTMLElement || colName instanceof DocumentFragment) {\n colName = colName.textContent || '';\n }\n const headerGroup = column?.columnGroup || '';\n const columnGroupSeparator = gridOptions?.columnGroupSeparator ?? ' - ';\n if (headerGroup) {\n return headerGroup + columnGroupSeparator + colName;\n }\n return colName;\n}\n"]}
@@ -0,0 +1,109 @@
1
+ {
2
+ "ALL_SELECTED": "All Selected",
3
+ "ALL_X_RECORDS_SELECTED": "All {{x}} records selected",
4
+ "APPLY_MASS_UPDATE": "Apply Mass Update",
5
+ "APPLY_TO_SELECTION": "Update Selection",
6
+ "CANCEL": "Cancel",
7
+ "CLEAR_ALL_FILTERS": "Clear all Filters",
8
+ "CLEAR_ALL_GROUPING": "Clear all Grouping",
9
+ "CLEAR_ALL_SORTING": "Clear all Sorting",
10
+ "CLEAR_PINNING": "Unfreeze Columns/Rows",
11
+ "CLONE": "Clone",
12
+ "COLLAPSE_ALL_GROUPS": "Collapse all Groups",
13
+ "COLUMNS": "Columns",
14
+ "COLUMN_RESIZE_BY_CONTENT": "Resize by Content",
15
+ "COMMANDS": "Commands",
16
+ "CONTAINS": "Contains",
17
+ "COPY": "Copy",
18
+ "EMPTY_DATA_WARNING_MESSAGE": "No data to display.",
19
+ "ENDS_WITH": "Ends With",
20
+ "EQUALS": "Equals",
21
+ "EQUAL_TO": "Equal to",
22
+ "EXPAND_ALL_GROUPS": "Expand all Groups",
23
+ "EXPORT_TO_CSV": "Export in CSV format",
24
+ "EXPORT_TO_EXCEL": "Export to Excel",
25
+ "EXPORT_TO_TAB_DELIMITED": "Export in Text format (Tab delimited)",
26
+ "EXPORT_TO_TEXT_FORMAT": "Export in Text format",
27
+ "FILTER_SHORTCUTS": "Filter Shortcuts",
28
+ "FROM_TO_OF_TOTAL_ITEMS": "{{from}}-{{to}} of {{totalItems}} items",
29
+ "FORCE_FIT_COLUMNS": "Force fit columns",
30
+ "FREEZE_COLUMNS": "Freeze Columns",
31
+ "INVALID_FLOAT": "The number must be valid and have a maximum of {{maxDecimal}} decimals.",
32
+ "GREATER_THAN": "Greater than",
33
+ "GREATER_THAN_OR_EQUAL_TO": "Greater than or equal to",
34
+ "GROUP_BY": "Group by",
35
+ "HIDE_COLUMN": "Hide Column",
36
+ "IN_COLLECTION_SEPERATED_BY_COMMA": "Search items in a collection, must be separated by a comma (a,b)",
37
+ "ITEMS": "items",
38
+ "ITEMS_PER_PAGE": "items per page",
39
+ "ITEMS_SELECTED": "items selected",
40
+ "NO_ELEMENTS_FOUND": "No elements found",
41
+ "LAST_UPDATE": "Last Update",
42
+ "LESS_THAN": "Less than",
43
+ "LESS_THAN_OR_EQUAL_TO": "Less than or equal to",
44
+ "LOADING": "Loading...",
45
+ "NOT_CONTAINS": "Not contains",
46
+ "NOT_EQUAL_TO": "Not equal to",
47
+ "NOT_IN_COLLECTION_SEPERATED_BY_COMMA": "Search items not in a collection, must be separated by a comma (a,b)",
48
+ "OF": "of",
49
+ "OK": "OK",
50
+ "PAGE": "Page",
51
+ "PAGE_X_OF_Y": "page {{x}} of {{y}}",
52
+ "REFRESH_DATASET": "Refresh Dataset",
53
+ "REMOVE_FILTER": "Remove Filter",
54
+ "REMOVE_SORT": "Remove Sort",
55
+ "RESET_INPUT_VALUE": "Reset Input Value",
56
+ "RESET_FORM": "Reset Form",
57
+ "SAVE": "Save",
58
+ "SELECT_ALL": "Select All",
59
+ "SORT_ASCENDING": "Sort Ascending",
60
+ "SORT_DESCENDING": "Sort Descending",
61
+ "STARTS_WITH": "Starts With",
62
+ "SYNCHRONOUS_RESIZE": "Synchronous resize",
63
+ "TOGGLE_FILTER_ROW": "Toggle Filter Row",
64
+ "TOGGLE_PRE_HEADER_ROW": "Toggle Pre-Header Row",
65
+ "X_OF_Y_SELECTED": "# of % selected",
66
+ "X_OF_Y_MASS_SELECTED": "{{x}} of {{y}} selected",
67
+ "BILLING": {
68
+ "ADDRESS": {
69
+ "STREET": "Billing Address Street",
70
+ "ZIP": "Billing Address Zip"
71
+ },
72
+ "INFORMATION": "Billing Information"
73
+ },
74
+ "BLANK_VALUES": "Blank Values",
75
+ "NON_BLANK_VALUES": "Non-Blank Values",
76
+ "CUSTOM_COMMANDS": "Custom Commands",
77
+ "DURATION": "Duration",
78
+ "COMPANY": "Company",
79
+ "COMPLETED": "Completed",
80
+ "CHANGE_COMPLETED_FLAG": "Change Completed Flag",
81
+ "CHANGE_PRIORITY": "Change Priority",
82
+ "CUSTOMER_INFORMATION": "Customer Information",
83
+ "DELETE_ROW": "Delete Row",
84
+ "DISABLED_COMMAND": "Disabled Command",
85
+ "FALSE": "False",
86
+ "FEMALE": "Female",
87
+ "FINISH": "Finish",
88
+ "FUTURE": "Future",
89
+ "GENDER": "Gender",
90
+ "HELP": "Help",
91
+ "HIGH": "High",
92
+ "LOW": "Low",
93
+ "MEDIUM": "Medium",
94
+ "MALE": "Male",
95
+ "NAME": "Name",
96
+ "NEXT_20_DAYS": "Next 20 days",
97
+ "NONE": "None",
98
+ "PAST": "Past",
99
+ "PERCENT_COMPLETE": "% Complete",
100
+ "PRIORITY": "Priority",
101
+ "START": "Start",
102
+ "TASK_X": "Task {{x}}",
103
+ "TITLE": "Title",
104
+ "TODAY": "Today",
105
+ "TRUE": "True",
106
+ "X_DAY_PLURAL": "{{x}} day{{plural}}",
107
+ "RBE_BTN_UPDATE": "Update the current row",
108
+ "RBE_BTN_CANCEL": "Cancel changes of the current row"
109
+ }