@slickgrid-universal/row-detail-view-plugin 4.1.0 → 4.3.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.
- package/dist/cjs/slickRowDetailView.js +37 -25
- package/dist/cjs/slickRowDetailView.js.map +1 -1
- package/dist/esm/slickRowDetailView.js +39 -27
- package/dist/esm/slickRowDetailView.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/slickRowDetailView.d.ts +4 -4
- package/dist/types/slickRowDetailView.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/slickRowDetailView.ts +44 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slickRowDetailView.d.ts","sourceRoot":"","sources":["../../src/slickRowDetailView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"slickRowDetailView.d.ts","sourceRoot":"","sources":["../../src/slickRowDetailView.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slickgrid-universal/row-detail-view-plugin",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0",
|
|
4
4
|
"description": "SlickRowDetail plugin - A plugin to add Row Detail Panel",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"not dead"
|
|
46
46
|
],
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@slickgrid-universal/common": "~4.
|
|
49
|
-
"@slickgrid-universal/utils": "~4.
|
|
48
|
+
"@slickgrid-universal/common": "~4.3.0",
|
|
49
|
+
"@slickgrid-universal/utils": "~4.3.0"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "42fb4d8bbf9a0199c99658c344c912ac3aaa9772"
|
|
52
52
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { createDomElement, SlickEvent, SlickEventHandler, Utils as SlickUtils } from '@slickgrid-universal/common';
|
|
1
2
|
import type {
|
|
2
3
|
Column,
|
|
3
|
-
DOMMouseOrTouchEvent,
|
|
4
4
|
ExternalResource,
|
|
5
5
|
FormatterResultWithHtml,
|
|
6
6
|
GridOption,
|
|
@@ -19,8 +19,7 @@ import type {
|
|
|
19
19
|
SlickEventData,
|
|
20
20
|
UsabilityOverrideFn,
|
|
21
21
|
} from '@slickgrid-universal/common';
|
|
22
|
-
import {
|
|
23
|
-
import { objectAssignAndExtend } from '@slickgrid-universal/utils';
|
|
22
|
+
import { extend } from '@slickgrid-universal/utils';
|
|
24
23
|
|
|
25
24
|
/**
|
|
26
25
|
* A plugin to add Row Detail Panel View (for example providing order detail info when clicking on the order row in the grid)
|
|
@@ -34,22 +33,22 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
34
33
|
pluginName = 'RowDetailView' as const;
|
|
35
34
|
|
|
36
35
|
/** Fired when the async response finished */
|
|
37
|
-
onAsyncEndUpdate = new SlickEvent<OnRowDetailAsyncEndUpdateArgs>();
|
|
36
|
+
onAsyncEndUpdate = new SlickEvent<OnRowDetailAsyncEndUpdateArgs>('onAsyncEndUpdate');
|
|
38
37
|
|
|
39
38
|
/** This event must be used with the "notify" by the end user once the Asynchronous Server call returns the item detail */
|
|
40
|
-
onAsyncResponse = new SlickEvent<OnRowDetailAsyncResponseArgs>();
|
|
39
|
+
onAsyncResponse = new SlickEvent<OnRowDetailAsyncResponseArgs>('onAsyncResponse');
|
|
41
40
|
|
|
42
41
|
/** Fired after the row detail gets toggled */
|
|
43
|
-
onAfterRowDetailToggle = new SlickEvent<OnAfterRowDetailToggleArgs>();
|
|
42
|
+
onAfterRowDetailToggle = new SlickEvent<OnAfterRowDetailToggleArgs>('onAfterRowDetailToggle');
|
|
44
43
|
|
|
45
44
|
/** Fired before the row detail gets toggled */
|
|
46
|
-
onBeforeRowDetailToggle = new SlickEvent<OnBeforeRowDetailToggleArgs>();
|
|
45
|
+
onBeforeRowDetailToggle = new SlickEvent<OnBeforeRowDetailToggleArgs>('onBeforeRowDetailToggle');
|
|
47
46
|
|
|
48
47
|
/** Fired after the row detail gets toggled */
|
|
49
|
-
onRowBackToViewportRange = new SlickEvent<OnRowBackToViewportRangeArgs>();
|
|
48
|
+
onRowBackToViewportRange = new SlickEvent<OnRowBackToViewportRangeArgs>('onRowBackToViewportRange');
|
|
50
49
|
|
|
51
50
|
/** Fired after a row becomes out of viewport range (when user can't see the row anymore) */
|
|
52
|
-
onRowOutOfViewportRange = new SlickEvent<OnRowOutOfViewportRangeArgs>();
|
|
51
|
+
onRowOutOfViewportRange = new SlickEvent<OnRowOutOfViewportRangeArgs>('onRowOutOfViewportRange');
|
|
53
52
|
|
|
54
53
|
// --
|
|
55
54
|
// protected props
|
|
@@ -77,6 +76,7 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
77
76
|
keyPrefix: '_',
|
|
78
77
|
loadOnce: false,
|
|
79
78
|
maxRows: undefined,
|
|
79
|
+
reorderable: false,
|
|
80
80
|
saveDetailViewOnScroll: true,
|
|
81
81
|
singleRowExpand: false,
|
|
82
82
|
useSimpleViewportCalc: false,
|
|
@@ -140,22 +140,26 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
140
140
|
this._grid = grid;
|
|
141
141
|
this._gridUid = grid.getUID();
|
|
142
142
|
if (!this._addonOptions) {
|
|
143
|
-
this._addonOptions =
|
|
143
|
+
this._addonOptions = extend(true, {}, this._defaults, this.gridOptions.rowDetailView) as RowDetailView;
|
|
144
144
|
}
|
|
145
145
|
this._keyPrefix = this._addonOptions?.keyPrefix || '_';
|
|
146
146
|
|
|
147
|
+
// add PubSub instance to all SlickEvent
|
|
148
|
+
SlickUtils.addSlickEventPubSubWhenDefined(this.pubSubService, this);
|
|
149
|
+
|
|
147
150
|
// Update the minRowBuffer so that the view doesn't disappear when it's at top of screen + the original default 3
|
|
148
151
|
this._gridRowBuffer = this.gridOptions.minRowBuffer || 0;
|
|
149
152
|
this.gridOptions.minRowBuffer = this._addonOptions.panelRows + 3;
|
|
150
153
|
|
|
151
154
|
this._eventHandler
|
|
152
|
-
.subscribe(this._grid.onClick, this.handleClick.bind(this)
|
|
155
|
+
.subscribe(this._grid.onClick, this.handleClick.bind(this))
|
|
153
156
|
.subscribe(this._grid.onBeforeEditCell, () => this.collapseAll())
|
|
154
|
-
.subscribe(this._grid.onScroll, this.handleScroll.bind(this)
|
|
157
|
+
.subscribe(this._grid.onScroll, this.handleScroll.bind(this));
|
|
155
158
|
|
|
156
159
|
// Sort will, by default, Collapse all of the open items (unless user implements his own onSort which deals with open row and padding)
|
|
157
160
|
if (this._addonOptions.collapseAllOnSort) {
|
|
158
|
-
|
|
161
|
+
// sort event can be triggered by column header click or from header menu
|
|
162
|
+
this.pubSubService.subscribe('onSortChanged', () => this.collapseAll());
|
|
159
163
|
this._expandedRows = [];
|
|
160
164
|
this._rowIdsOutOfViewport = [];
|
|
161
165
|
}
|
|
@@ -200,7 +204,7 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
200
204
|
throw new Error('[Slickgrid-Universal] The Row Detail View requires options to be passed via the "rowDetailView" property of the Grid Options');
|
|
201
205
|
}
|
|
202
206
|
|
|
203
|
-
this._addonOptions =
|
|
207
|
+
this._addonOptions = extend(true, {}, this._defaults, gridOptions.rowDetailView) as RowDetailView;
|
|
204
208
|
|
|
205
209
|
// user could override the expandable icon logic from within the options or after instantiating the plugin
|
|
206
210
|
if (typeof this._addonOptions.expandableOverride === 'function') {
|
|
@@ -239,7 +243,7 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
239
243
|
|
|
240
244
|
/** set or change some of the plugin options */
|
|
241
245
|
setOptions(options: Partial<RowDetailViewOption>) {
|
|
242
|
-
this._addonOptions =
|
|
246
|
+
this._addonOptions = extend(true, {}, this._addonOptions, options) as RowDetailView;
|
|
243
247
|
if (this._addonOptions?.singleRowExpand) {
|
|
244
248
|
this.collapseAll();
|
|
245
249
|
}
|
|
@@ -248,9 +252,9 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
248
252
|
/** Collapse all of the open items */
|
|
249
253
|
collapseAll() {
|
|
250
254
|
this.dataView.beginUpdate();
|
|
251
|
-
|
|
255
|
+
this._expandedRows.forEach(expandedRow => {
|
|
252
256
|
this.collapseDetailView(expandedRow, true);
|
|
253
|
-
}
|
|
257
|
+
});
|
|
254
258
|
this.dataView.endUpdate();
|
|
255
259
|
}
|
|
256
260
|
|
|
@@ -302,7 +306,8 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
302
306
|
this.onAsyncResponse.notify({
|
|
303
307
|
item,
|
|
304
308
|
itemDetail: item,
|
|
305
|
-
detailView: item[`${this._keyPrefix}detailContent`]
|
|
309
|
+
detailView: item[`${this._keyPrefix}detailContent`],
|
|
310
|
+
grid: this._grid
|
|
306
311
|
});
|
|
307
312
|
this.applyTemplateNewLineHeight(item);
|
|
308
313
|
this.dataView.updateItem(item[this._dataViewIdProperty], item);
|
|
@@ -331,7 +336,7 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
331
336
|
* subscribe to the onAsyncResponse so that the plugin knows when the user server side calls finished
|
|
332
337
|
* the response has to be as "args.item" (or "args.itemDetail") with it's data back
|
|
333
338
|
*/
|
|
334
|
-
handleOnAsyncResponse(
|
|
339
|
+
handleOnAsyncResponse(e: SlickEventData, args: { item: any; itemDetail: any; detailView?: any; }) {
|
|
335
340
|
if (!args || (!args.item && !args.itemDetail)) {
|
|
336
341
|
console.error('SlickRowDetailView plugin requires the onAsyncResponse() to supply "args.item" property.');
|
|
337
342
|
return;
|
|
@@ -350,7 +355,7 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
350
355
|
grid: this._grid,
|
|
351
356
|
item: itemDetail,
|
|
352
357
|
itemDetail,
|
|
353
|
-
});
|
|
358
|
+
}, e, this);
|
|
354
359
|
}
|
|
355
360
|
|
|
356
361
|
/**
|
|
@@ -384,6 +389,7 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
384
389
|
excludeFromQuery: true,
|
|
385
390
|
excludeFromHeaderMenu: true,
|
|
386
391
|
formatter: this.detailSelectionFormatter.bind(this),
|
|
392
|
+
reorderable: this._addonOptions.reorderable,
|
|
387
393
|
resizable: false,
|
|
388
394
|
sortable: false,
|
|
389
395
|
toolTip: this._addonOptions.toolTip,
|
|
@@ -605,7 +611,7 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
605
611
|
}
|
|
606
612
|
|
|
607
613
|
/** The Formatter of the toggling icon of the Row Detail */
|
|
608
|
-
protected detailSelectionFormatter(row: number,
|
|
614
|
+
protected detailSelectionFormatter(row: number, _cell: number, _val: any, _colDef: Column, dataContext: any, grid: SlickGrid): FormatterResultWithHtml | HTMLElement | '' {
|
|
609
615
|
if (!this.checkExpandableOverride(row, dataContext, grid)) {
|
|
610
616
|
return '';
|
|
611
617
|
} else {
|
|
@@ -648,13 +654,17 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
648
654
|
});
|
|
649
655
|
const innerContainerElm = createDomElement('div', { className: `detail-container detailViewContainer_${dataContext[this._dataViewIdProperty]}` });
|
|
650
656
|
const innerDetailViewElm = createDomElement('div', { className: `innerDetailView_${dataContext[this._dataViewIdProperty]}` });
|
|
651
|
-
|
|
657
|
+
if (dataContext[`${this._keyPrefix}detailContent`] instanceof HTMLElement) {
|
|
658
|
+
innerDetailViewElm.appendChild(dataContext[`${this._keyPrefix}detailContent`]);
|
|
659
|
+
} else {
|
|
660
|
+
innerDetailViewElm.innerHTML = this._grid.sanitizeHtmlString(dataContext[`${this._keyPrefix}detailContent`]);
|
|
661
|
+
}
|
|
652
662
|
|
|
653
663
|
innerContainerElm.appendChild(innerDetailViewElm);
|
|
654
664
|
cellDetailContainerElm.appendChild(innerContainerElm);
|
|
655
665
|
|
|
656
666
|
const result: FormatterResultWithHtml = {
|
|
657
|
-
html: createDomElement('div', { className: expandedClasses }),
|
|
667
|
+
html: createDomElement('div', { className: expandedClasses.trim() }),
|
|
658
668
|
insertElementAfterTarget: cellDetailContainerElm,
|
|
659
669
|
};
|
|
660
670
|
|
|
@@ -676,12 +686,13 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
676
686
|
}
|
|
677
687
|
|
|
678
688
|
/** Handle mouse click event */
|
|
679
|
-
protected handleClick(e:
|
|
689
|
+
protected handleClick(e: SlickEventData, args: { row: number; cell: number; }) {
|
|
680
690
|
const dataContext = this._grid.getDataItem(args.row);
|
|
691
|
+
|
|
681
692
|
if (this.checkExpandableOverride(args.row, dataContext, this._grid)) {
|
|
682
693
|
// clicking on a row select checkbox
|
|
683
694
|
const columnDef = this._grid.getColumns()[args.cell];
|
|
684
|
-
if (this._addonOptions.useRowClick || (columnDef.id === this._addonOptions.columnId && e.target
|
|
695
|
+
if (this._addonOptions.useRowClick || (columnDef.id === this._addonOptions.columnId && e.target!.classList.contains(this._addonOptions.cssClass || ''))) {
|
|
685
696
|
// if editing, try to commit
|
|
686
697
|
if (this._grid.getEditorLock().isActive() && !this._grid.getEditorLock().commitCurrentEdit()) {
|
|
687
698
|
e.preventDefault();
|
|
@@ -690,10 +701,11 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
690
701
|
}
|
|
691
702
|
|
|
692
703
|
// trigger an event before toggling
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
704
|
+
// user could cancel the Row Detail opening when event is returning false
|
|
705
|
+
const ignorePrevEventDataValue = true; // click event might return false from Row Selection canCellBeActive() validation, we need to ignore that
|
|
706
|
+
if (this.onBeforeRowDetailToggle.notify({ grid: this._grid, item: dataContext }, e, this, ignorePrevEventDataValue).getReturnValue() === false) {
|
|
707
|
+
return;
|
|
708
|
+
}
|
|
697
709
|
|
|
698
710
|
this.toggleRowSelection(args.row, dataContext);
|
|
699
711
|
|
|
@@ -702,7 +714,7 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
702
714
|
grid: this._grid,
|
|
703
715
|
item: dataContext,
|
|
704
716
|
expandedRows: this._expandedRows,
|
|
705
|
-
});
|
|
717
|
+
}, e, this);
|
|
706
718
|
|
|
707
719
|
e.stopPropagation();
|
|
708
720
|
e.stopImmediatePropagation();
|
|
@@ -728,7 +740,7 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
728
740
|
rowIndex,
|
|
729
741
|
expandedRows: this._expandedRows,
|
|
730
742
|
rowIdsOutOfViewport: this.syncOutOfViewportArray(rowId, true)
|
|
731
|
-
});
|
|
743
|
+
}, null, this);
|
|
732
744
|
}
|
|
733
745
|
|
|
734
746
|
protected notifyBackToViewportWhenDomExist(item: any, rowId: number | string) {
|
|
@@ -744,7 +756,7 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV
|
|
|
744
756
|
rowIndex,
|
|
745
757
|
expandedRows: this._expandedRows,
|
|
746
758
|
rowIdsOutOfViewport: this.syncOutOfViewportArray(rowId, false)
|
|
747
|
-
});
|
|
759
|
+
}, null, this);
|
|
748
760
|
}
|
|
749
761
|
}, 100);
|
|
750
762
|
}
|