@revolist/revogrid 4.2.0-next.1 → 4.2.0-next.2
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/custom-element/revo-grid.js +10 -4
- package/custom-element/revogr-focus2.js +8 -2
- package/custom-element/revogr-overlay-selection2.js +17 -15
- package/custom-element/revogr-row-headers2.js +2 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/revo-grid.cjs.js +1 -1
- package/dist/cjs/revo-grid_11.cjs.entry.js +34 -20
- package/dist/collection/components/overlay/revogr-overlay-selection.js +17 -15
- package/dist/collection/components/revoGrid/revo-grid.d.ts +8 -0
- package/dist/collection/components/revoGrid/revo-grid.js +42 -1
- package/dist/collection/components/revoGrid/viewport.section.d.ts +2 -1
- package/dist/collection/components/revoGrid/viewport.section.js +2 -2
- package/dist/collection/components/rowHeaders/revogr-row-headers.js +1 -1
- package/dist/collection/components/selectionFocus/revogr-focus.d.ts +1 -0
- package/dist/collection/components/selectionFocus/revogr-focus.js +26 -1
- package/dist/collection/components.d.ts +11 -0
- package/dist/collection/interfaces.d.ts +5 -4
- package/dist/collection/plugins/stretchPlugin.js +1 -1
- package/dist/collection/store/viewPort/viewport.store.js +2 -0
- package/dist/collection/{components/rowHeaders → utils}/row-header-utils.d.ts +1 -1
- package/dist/collection/{components/rowHeaders → utils}/row-header-utils.js +0 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/revo-grid.js +1 -1
- package/dist/esm/revo-grid_11.entry.js +34 -20
- package/dist/revo-grid/revo-grid.esm.js +1 -1
- package/dist/revo-grid/revo-grid_11.entry.js +1 -1
- package/dist/types/components/revoGrid/revo-grid.d.ts +8 -0
- package/dist/types/components/revoGrid/viewport.section.d.ts +2 -1
- package/dist/types/components/selectionFocus/revogr-focus.d.ts +1 -0
- package/dist/types/components.d.ts +11 -0
- package/dist/types/interfaces.d.ts +5 -4
- package/dist/types/{components/rowHeaders → utils}/row-header-utils.d.ts +1 -1
- package/package.json +1 -1
|
@@ -2645,7 +2645,7 @@ class ViewportService {
|
|
|
2645
2645
|
* First we render vertical parts - pinned start, data, pinned end
|
|
2646
2646
|
* Per each column we render data collections: headers, pinned top, center data, pinned bottom
|
|
2647
2647
|
*/
|
|
2648
|
-
const ViewPortSections = ({ resize, editors, rowClass, readonly, range, columns, useClipboard, columnFilter, applyEditorChangesOnClose, registerElement, onEdit, onScroll }) => {
|
|
2648
|
+
const ViewPortSections = ({ resize, editors, rowClass, readonly, range, columns, useClipboard, columnFilter, applyEditorChangesOnClose, registerElement, onEdit, onScroll, focusTemplate }) => {
|
|
2649
2649
|
const viewPortHtml = [];
|
|
2650
2650
|
/** render viewports columns */
|
|
2651
2651
|
for (let view of columns) {
|
|
@@ -2657,7 +2657,7 @@ const ViewPortSections = ({ resize, editors, rowClass, readonly, range, columns,
|
|
|
2657
2657
|
const dataView = (h("revogr-overlay-selection", Object.assign({}, data, { slot: data.slot, selectionStore: data.segmentSelectionStore, editors: editors, readonly: readonly, range: range, useClipboard: useClipboard, applyChangesOnClose: applyEditorChangesOnClose, onSetEdit: ({ detail }) => onEdit(detail) }),
|
|
2658
2658
|
h("revogr-data", Object.assign({}, data, { [UUID]: data.uuid }, { key: key, readonly: readonly, range: range, rowClass: rowClass, rowSelectionStore: data.rowSelectionStore, slot: DATA_SLOT })),
|
|
2659
2659
|
h("revogr-temp-range", { selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol }),
|
|
2660
|
-
h("revogr-focus", { rowType: data.type, colType: view.type, selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol })));
|
|
2660
|
+
h("revogr-focus", { focusTemplate: focusTemplate, rowType: data.type, colType: view.type, selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol })));
|
|
2661
2661
|
dataViews.push(dataView);
|
|
2662
2662
|
});
|
|
2663
2663
|
viewPortHtml.push(h("revogr-viewport-scroll", Object.assign({}, view.prop, { ref: el => registerElement(el, view.prop.key), onScrollViewport: e => onScroll(e.detail, view.prop.key) }), dataViews));
|
|
@@ -3076,6 +3076,7 @@ let RevoGridComponent = class extends HTMLElement {
|
|
|
3076
3076
|
this.beforerowdefinition = createEvent(this, "beforerowdefinition", 7);
|
|
3077
3077
|
this.filterconfigchanged = createEvent(this, "filterconfigchanged", 7);
|
|
3078
3078
|
this.mergechanged = createEvent(this, "mergechanged", 7);
|
|
3079
|
+
this.rowheaderschanged = createEvent(this, "rowheaderschanged", 7);
|
|
3079
3080
|
/**
|
|
3080
3081
|
* Defines how many rows/columns should be rendered outside visible area.
|
|
3081
3082
|
*/
|
|
@@ -3575,6 +3576,9 @@ let RevoGridComponent = class extends HTMLElement {
|
|
|
3575
3576
|
mergeChange(mergeVal) {
|
|
3576
3577
|
this.mergechanged.emit(mergeVal);
|
|
3577
3578
|
}
|
|
3579
|
+
rowHeadersChange(rowHeaders) {
|
|
3580
|
+
this.rowheaderschanged.emit(rowHeaders);
|
|
3581
|
+
}
|
|
3578
3582
|
dataSourceApply(source = [], type = 'rgRow') {
|
|
3579
3583
|
const beforesourceset = this.beforeAnySource.emit({
|
|
3580
3584
|
type,
|
|
@@ -3683,7 +3687,7 @@ let RevoGridComponent = class extends HTMLElement {
|
|
|
3683
3687
|
if (!event.defaultPrevented) {
|
|
3684
3688
|
this.selectionStoreConnector.setEdit(detail.isCancel ? false : detail.val);
|
|
3685
3689
|
}
|
|
3686
|
-
}, registerElement: (e, k) => this.scrollingService.registerElement(e, k), onScroll: (details, k) => this.scrollingService.onScroll(details, k) }));
|
|
3690
|
+
}, registerElement: (e, k) => this.scrollingService.registerElement(e, k), onScroll: (details, k) => this.scrollingService.onScroll(details, k), focusTemplate: this.focusTemplate }));
|
|
3687
3691
|
return (h(Host, Object.assign({}, { [`${UUID}`]: this.uuid }), h(RevoViewPort, { viewports: this.viewportProvider.stores, dimensions: this.dimensionProvider.stores, orderRef: e => (this.orderService = e), registerElement: (e, k) => this.scrollingService.registerElement(e, k), nakedClick: () => this.viewport.clearEdit(), onScroll: details => this.scrollingService.onScroll(details) }, views), this.extraElements));
|
|
3688
3692
|
}
|
|
3689
3693
|
get element() { return this; }
|
|
@@ -3698,7 +3702,8 @@ let RevoGridComponent = class extends HTMLElement {
|
|
|
3698
3702
|
"grouping": ["groupingChanged"],
|
|
3699
3703
|
"stretch": ["applyStretch"],
|
|
3700
3704
|
"filter": ["applyFilter"],
|
|
3701
|
-
"merged": ["mergeChange"]
|
|
3705
|
+
"merged": ["mergeChange"],
|
|
3706
|
+
"rowHeaders": ["rowHeadersChange"]
|
|
3702
3707
|
}; }
|
|
3703
3708
|
static get style() { return revoGridStyleCss; }
|
|
3704
3709
|
};
|
|
@@ -3725,6 +3730,7 @@ RevoGridComponent = /*@__PURE__*/ proxyCustomElement(RevoGridComponent, [0, "rev
|
|
|
3725
3730
|
"rowClass": [513, "row-class"],
|
|
3726
3731
|
"autoSizeColumn": [4, "auto-size-column"],
|
|
3727
3732
|
"filter": [4],
|
|
3733
|
+
"focusTemplate": [16],
|
|
3728
3734
|
"canMoveColumns": [4, "can-move-columns"],
|
|
3729
3735
|
"trimmedRows": [16],
|
|
3730
3736
|
"exporting": [4],
|
|
@@ -20,6 +20,10 @@ let RevogrFocus = class extends HTMLElement {
|
|
|
20
20
|
this.el && this.changed(this.el);
|
|
21
21
|
}
|
|
22
22
|
render() {
|
|
23
|
+
const editCell = this.selectionStore.get('edit');
|
|
24
|
+
if (editCell) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
23
27
|
const data = this.selectionStore.get('focus');
|
|
24
28
|
if (data) {
|
|
25
29
|
const event = this.beforeFocusRender.emit({
|
|
@@ -32,7 +36,8 @@ let RevogrFocus = class extends HTMLElement {
|
|
|
32
36
|
}
|
|
33
37
|
const { detail } = event;
|
|
34
38
|
const style = getElStyle(detail.range, this.dimensionRow.state, this.dimensionCol.state);
|
|
35
|
-
|
|
39
|
+
const extra = this.focusTemplate && this.focusTemplate(h, detail);
|
|
40
|
+
return h(Host, { class: FOCUS_CLASS, style: style }, extra);
|
|
36
41
|
}
|
|
37
42
|
}
|
|
38
43
|
get el() { return this; }
|
|
@@ -43,7 +48,8 @@ RevogrFocus = /*@__PURE__*/ proxyCustomElement(RevogrFocus, [0, "revogr-focus",
|
|
|
43
48
|
"dimensionRow": [16],
|
|
44
49
|
"dimensionCol": [16],
|
|
45
50
|
"colType": [1, "col-type"],
|
|
46
|
-
"rowType": [1, "row-type"]
|
|
51
|
+
"rowType": [1, "row-type"],
|
|
52
|
+
"focusTemplate": [16]
|
|
47
53
|
}]);
|
|
48
54
|
function defineCustomElement() {
|
|
49
55
|
if (typeof customElements === "undefined") {
|
|
@@ -560,13 +560,13 @@ let OverlaySelection = class extends HTMLElement {
|
|
|
560
560
|
// if can edit
|
|
561
561
|
const editCell = this.selectionStore.get('edit');
|
|
562
562
|
if (this.readonly || !editCell) {
|
|
563
|
-
return;
|
|
563
|
+
return null;
|
|
564
564
|
}
|
|
565
565
|
const val = editCell.val || this.columnService.getCellData(editCell.y, editCell.x);
|
|
566
566
|
const editable = Object.assign(Object.assign({}, editCell), this.columnService.getSaveData(editCell.y, editCell.x, val));
|
|
567
567
|
const renderEvent = this.beforeEditRender.emit(Object.assign({ range: Object.assign(Object.assign({}, editCell), { x1: editCell.x, y1: editCell.y }) }, this.types));
|
|
568
568
|
if (renderEvent.defaultPrevented) {
|
|
569
|
-
return;
|
|
569
|
+
return null;
|
|
570
570
|
}
|
|
571
571
|
const { detail: { range } } = renderEvent;
|
|
572
572
|
const style = getElStyle(range, this.dimensionRow.state, this.dimensionCol.state);
|
|
@@ -584,24 +584,26 @@ let OverlaySelection = class extends HTMLElement {
|
|
|
584
584
|
}, editCell: editable, saveOnClose: this.applyChangesOnClose, column: this.columnService.columns[editCell.x], editor: this.columnService.getCellEditor(editCell.y, editCell.x, this.editors), style: style }));
|
|
585
585
|
}
|
|
586
586
|
render() {
|
|
587
|
-
const range = this.selectionStoreService.ranged;
|
|
588
|
-
const selectionFocus = this.selectionStoreService.focused;
|
|
589
587
|
const els = [];
|
|
590
588
|
const editCell = this.renderEditCell();
|
|
591
|
-
if ((range || selectionFocus) && !editCell && this.useClipboard) {
|
|
592
|
-
els.push(this.clipboardService.renderClipboard());
|
|
593
|
-
}
|
|
594
|
-
if (range) {
|
|
595
|
-
els.push(...this.renderRange(range));
|
|
596
|
-
}
|
|
597
589
|
if (editCell) {
|
|
598
590
|
els.push(editCell);
|
|
599
591
|
}
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
592
|
+
else {
|
|
593
|
+
const range = this.selectionStoreService.ranged;
|
|
594
|
+
const selectionFocus = this.selectionStoreService.focused;
|
|
595
|
+
if ((range || selectionFocus) && this.useClipboard) {
|
|
596
|
+
els.push(this.clipboardService.renderClipboard());
|
|
597
|
+
}
|
|
598
|
+
if (range) {
|
|
599
|
+
els.push(...this.renderRange(range));
|
|
600
|
+
}
|
|
601
|
+
if (selectionFocus && !this.readonly && this.range) {
|
|
602
|
+
els.push(this.autoFillService.renderAutofill(range, selectionFocus));
|
|
603
|
+
}
|
|
604
|
+
if (this.canDrag) {
|
|
605
|
+
els.push(h("revogr-order-editor", { ref: e => (this.orderEditor = e), dataStore: this.dataStore, dimensionRow: this.dimensionRow, dimensionCol: this.dimensionCol, parent: this.element, onInternalRowDragStart: e => this.onRowDragStart(e) }));
|
|
606
|
+
}
|
|
605
607
|
}
|
|
606
608
|
return (h(Host, { onDblClick: () => this.doEdit(), onMouseDown: (e) => this.onElementMouseDown(e) }, els, h("slot", { name: "data" })));
|
|
607
609
|
}
|
|
@@ -280,11 +280,13 @@ class ViewportStore {
|
|
|
280
280
|
}
|
|
281
281
|
// change size
|
|
282
282
|
const size = sizes[item.itemIndex];
|
|
283
|
+
// size found
|
|
283
284
|
if (size) {
|
|
284
285
|
const changedSize = size - item.size;
|
|
285
286
|
changedCoordinate += changedSize;
|
|
286
287
|
item.size = size;
|
|
287
288
|
item.end = item.start + size;
|
|
289
|
+
// size lost
|
|
288
290
|
}
|
|
289
291
|
// loop by start index
|
|
290
292
|
start++;
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -28,7 +28,7 @@ const patchEsm = () => {
|
|
|
28
28
|
const defineCustomElements = (win, options) => {
|
|
29
29
|
if (typeof window === 'undefined') return Promise.resolve();
|
|
30
30
|
return patchEsm().then(() => {
|
|
31
|
-
return index.bootstrapLazy([["revogr-clipboard.cjs",[[0,"revogr-clipboard",{"doCopy":[64]},[[4,"paste","onPaste"],[4,"copy","copyStarted"]]]]],["revogr-filter-panel.cjs",[[0,"revogr-filter-panel",{"uuid":[1537],"filterItems":[16],"filterTypes":[16],"filterNames":[16],"filterEntities":[16],"filterCaptions":[16],"disableDynamicFiltering":[4,"disable-dynamic-filtering"],"isFilterIdSet":[32],"filterId":[32],"currentFilterId":[32],"currentFilterType":[32],"changes":[32],"show":[64],"getChanges":[64]},[[5,"mousedown","onMouseDown"]]]]],["revo-grid_11.cjs",[[0,"revo-grid",{"rowHeaders":[4,"row-headers"],"frameSize":[2,"frame-size"],"rowSize":[2,"row-size"],"colSize":[2,"col-size"],"range":[4],"readonly":[4],"resize":[4],"canFocus":[4,"can-focus"],"useClipboard":[4,"use-clipboard"],"columns":[16],"source":[16],"pinnedTopSource":[16],"pinnedBottomSource":[16],"rowDefinitions":[16],"editors":[16],"applyEditorChangesOnClose":[4,"apply-editor-changes-on-close"],"plugins":[16],"columnTypes":[16],"theme":[1537],"rowClass":[513,"row-class"],"autoSizeColumn":[4,"auto-size-column"],"filter":[4],"canMoveColumns":[4,"can-move-columns"],"trimmedRows":[16],"exporting":[4],"grouping":[16],"stretch":[8],"merged":[16],"extraElements":[32],"refresh":[64],"scrollToRow":[64],"scrollToColumnIndex":[64],"scrollToColumnProp":[64],"updateColumns":[64],"addTrimmed":[64],"scrollToCoordinate":[64],"setCellEdit":[64],"setCellsFocus":[64],"registerVNode":[64],"getSource":[64],"getVisibleSource":[64],"getSourceStore":[64],"getColumnStore":[64],"updateColumnSorting":[64],"clearSorting":[64],"getColumns":[64],"clearFocus":[64],"getPlugins":[64],"getFocused":[64],"getContentSize":[64],"getSelectedRange":[64]},[[0,"internalRowDragStart","onRowDragStarted"],[0,"internalRowDragEnd","onRowDragEnd"],[0,"internalRowDrag","onRowDrag"],[0,"internalRowMouseMove","onRowMouseMove"],[0,"internalCellEdit","onBeforeEdit"],[0,"internalRangeDataApply","onBeforeRangeEdit"],[0,"internalSelectionChanged","onRangeChanged"],[0,"initialRowDropped","onRowDropped"],[0,"initialHeaderClick","onHeaderClick"],[0,"beforeFocusCell","onCellFocus"]]],[0,"revogr-row-headers",{"height":[2],"dataPorts":[16],"headerProp":[16],"uiid":[1],"rowClass":[1,"row-class"],"resize":[4],"rowHeaderColumn":[16]}],[4,"revogr-overlay-selection",{"readonly":[4],"range":[4],"canDrag":[4,"can-drag"],"useClipboard":[4,"use-clipboard"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"lastCell":[16],"editors":[16],"applyChangesOnClose":[4,"apply-changes-on-close"]},[[5,"mousemove","onMouseMove"],[5,"mouseleave","onMouseOut"],[5,"mouseup","onMouseUp"],[0,"dragStartCell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]]],[0,"revogr-focus",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"colType":[1,"col-type"],"rowType":[1,"row-type"]}],[0,"revogr-scroll-virtual",{"dimension":[1],"viewportStore":[16],"dimensionStore":[16],"setScroll":[64],"changeScroll":[64]}],[0,"revogr-temp-range",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16]}],[0,"revogr-data",{"readonly":[4],"range":[4],"rowClass":[1,"row-class"],"rowSelectionStore":[16],"viewportRow":[16],"viewportCol":[16],"dimensionRow":[16],"colData":[16],"dataStore":[16],"type":[1]}],[0,"revogr-edit",{"editCell":[16],"column":[16],"editor":[16],"saveOnClose":[4,"save-on-close"],"cancel":[64]}],[0,"revogr-header",{"viewportCol":[16],"dimensionCol":[16],"selectionStore":[16],"parent":[1],"groups":[16],"groupingDepth":[2,"grouping-depth"],"canResize":[4,"can-resize"],"colData":[16],"columnFilter":[4,"column-filter"],"type":[1]}],[0,"revogr-order-editor",{"parent":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"dragStart":[64],"endOrder":[64],"clearOrder":[64]},[[5,"mouseleave","onMouseOut"],[5,"mouseup","onMouseUp"]]],[4,"revogr-viewport-scroll",{"contentWidth":[2,"content-width"],"contentHeight":[2,"content-height"],"setScroll":[64],"changeScroll":[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]]]]], options);
|
|
31
|
+
return index.bootstrapLazy([["revogr-clipboard.cjs",[[0,"revogr-clipboard",{"doCopy":[64]},[[4,"paste","onPaste"],[4,"copy","copyStarted"]]]]],["revogr-filter-panel.cjs",[[0,"revogr-filter-panel",{"uuid":[1537],"filterItems":[16],"filterTypes":[16],"filterNames":[16],"filterEntities":[16],"filterCaptions":[16],"disableDynamicFiltering":[4,"disable-dynamic-filtering"],"isFilterIdSet":[32],"filterId":[32],"currentFilterId":[32],"currentFilterType":[32],"changes":[32],"show":[64],"getChanges":[64]},[[5,"mousedown","onMouseDown"]]]]],["revo-grid_11.cjs",[[0,"revo-grid",{"rowHeaders":[4,"row-headers"],"frameSize":[2,"frame-size"],"rowSize":[2,"row-size"],"colSize":[2,"col-size"],"range":[4],"readonly":[4],"resize":[4],"canFocus":[4,"can-focus"],"useClipboard":[4,"use-clipboard"],"columns":[16],"source":[16],"pinnedTopSource":[16],"pinnedBottomSource":[16],"rowDefinitions":[16],"editors":[16],"applyEditorChangesOnClose":[4,"apply-editor-changes-on-close"],"plugins":[16],"columnTypes":[16],"theme":[1537],"rowClass":[513,"row-class"],"autoSizeColumn":[4,"auto-size-column"],"filter":[4],"focusTemplate":[16],"canMoveColumns":[4,"can-move-columns"],"trimmedRows":[16],"exporting":[4],"grouping":[16],"stretch":[8],"merged":[16],"extraElements":[32],"refresh":[64],"scrollToRow":[64],"scrollToColumnIndex":[64],"scrollToColumnProp":[64],"updateColumns":[64],"addTrimmed":[64],"scrollToCoordinate":[64],"setCellEdit":[64],"setCellsFocus":[64],"registerVNode":[64],"getSource":[64],"getVisibleSource":[64],"getSourceStore":[64],"getColumnStore":[64],"updateColumnSorting":[64],"clearSorting":[64],"getColumns":[64],"clearFocus":[64],"getPlugins":[64],"getFocused":[64],"getContentSize":[64],"getSelectedRange":[64]},[[0,"internalRowDragStart","onRowDragStarted"],[0,"internalRowDragEnd","onRowDragEnd"],[0,"internalRowDrag","onRowDrag"],[0,"internalRowMouseMove","onRowMouseMove"],[0,"internalCellEdit","onBeforeEdit"],[0,"internalRangeDataApply","onBeforeRangeEdit"],[0,"internalSelectionChanged","onRangeChanged"],[0,"initialRowDropped","onRowDropped"],[0,"initialHeaderClick","onHeaderClick"],[0,"beforeFocusCell","onCellFocus"]]],[0,"revogr-row-headers",{"height":[2],"dataPorts":[16],"headerProp":[16],"uiid":[1],"rowClass":[1,"row-class"],"resize":[4],"rowHeaderColumn":[16]}],[4,"revogr-overlay-selection",{"readonly":[4],"range":[4],"canDrag":[4,"can-drag"],"useClipboard":[4,"use-clipboard"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"lastCell":[16],"editors":[16],"applyChangesOnClose":[4,"apply-changes-on-close"]},[[5,"mousemove","onMouseMove"],[5,"mouseleave","onMouseOut"],[5,"mouseup","onMouseUp"],[0,"dragStartCell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]]],[0,"revogr-focus",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"colType":[1,"col-type"],"rowType":[1,"row-type"],"focusTemplate":[16]}],[0,"revogr-scroll-virtual",{"dimension":[1],"viewportStore":[16],"dimensionStore":[16],"setScroll":[64],"changeScroll":[64]}],[0,"revogr-temp-range",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16]}],[0,"revogr-data",{"readonly":[4],"range":[4],"rowClass":[1,"row-class"],"rowSelectionStore":[16],"viewportRow":[16],"viewportCol":[16],"dimensionRow":[16],"colData":[16],"dataStore":[16],"type":[1]}],[0,"revogr-edit",{"editCell":[16],"column":[16],"editor":[16],"saveOnClose":[4,"save-on-close"],"cancel":[64]}],[0,"revogr-header",{"viewportCol":[16],"dimensionCol":[16],"selectionStore":[16],"parent":[1],"groups":[16],"groupingDepth":[2,"grouping-depth"],"canResize":[4,"can-resize"],"colData":[16],"columnFilter":[4,"column-filter"],"type":[1]}],[0,"revogr-order-editor",{"parent":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"dragStart":[64],"endOrder":[64],"clearOrder":[64]},[[5,"mouseleave","onMouseOut"],[5,"mouseup","onMouseUp"]]],[4,"revogr-viewport-scroll",{"contentWidth":[2,"content-width"],"contentHeight":[2,"content-height"],"setScroll":[64],"changeScroll":[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]]]]], options);
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
|
|
@@ -72,5 +72,5 @@ const patchDynamicImport = (base, orgScriptElm) => {
|
|
|
72
72
|
};
|
|
73
73
|
|
|
74
74
|
patchBrowser().then(options => {
|
|
75
|
-
return index.bootstrapLazy([["revogr-clipboard.cjs",[[0,"revogr-clipboard",{"doCopy":[64]},[[4,"paste","onPaste"],[4,"copy","copyStarted"]]]]],["revogr-filter-panel.cjs",[[0,"revogr-filter-panel",{"uuid":[1537],"filterItems":[16],"filterTypes":[16],"filterNames":[16],"filterEntities":[16],"filterCaptions":[16],"disableDynamicFiltering":[4,"disable-dynamic-filtering"],"isFilterIdSet":[32],"filterId":[32],"currentFilterId":[32],"currentFilterType":[32],"changes":[32],"show":[64],"getChanges":[64]},[[5,"mousedown","onMouseDown"]]]]],["revo-grid_11.cjs",[[0,"revo-grid",{"rowHeaders":[4,"row-headers"],"frameSize":[2,"frame-size"],"rowSize":[2,"row-size"],"colSize":[2,"col-size"],"range":[4],"readonly":[4],"resize":[4],"canFocus":[4,"can-focus"],"useClipboard":[4,"use-clipboard"],"columns":[16],"source":[16],"pinnedTopSource":[16],"pinnedBottomSource":[16],"rowDefinitions":[16],"editors":[16],"applyEditorChangesOnClose":[4,"apply-editor-changes-on-close"],"plugins":[16],"columnTypes":[16],"theme":[1537],"rowClass":[513,"row-class"],"autoSizeColumn":[4,"auto-size-column"],"filter":[4],"canMoveColumns":[4,"can-move-columns"],"trimmedRows":[16],"exporting":[4],"grouping":[16],"stretch":[8],"merged":[16],"extraElements":[32],"refresh":[64],"scrollToRow":[64],"scrollToColumnIndex":[64],"scrollToColumnProp":[64],"updateColumns":[64],"addTrimmed":[64],"scrollToCoordinate":[64],"setCellEdit":[64],"setCellsFocus":[64],"registerVNode":[64],"getSource":[64],"getVisibleSource":[64],"getSourceStore":[64],"getColumnStore":[64],"updateColumnSorting":[64],"clearSorting":[64],"getColumns":[64],"clearFocus":[64],"getPlugins":[64],"getFocused":[64],"getContentSize":[64],"getSelectedRange":[64]},[[0,"internalRowDragStart","onRowDragStarted"],[0,"internalRowDragEnd","onRowDragEnd"],[0,"internalRowDrag","onRowDrag"],[0,"internalRowMouseMove","onRowMouseMove"],[0,"internalCellEdit","onBeforeEdit"],[0,"internalRangeDataApply","onBeforeRangeEdit"],[0,"internalSelectionChanged","onRangeChanged"],[0,"initialRowDropped","onRowDropped"],[0,"initialHeaderClick","onHeaderClick"],[0,"beforeFocusCell","onCellFocus"]]],[0,"revogr-row-headers",{"height":[2],"dataPorts":[16],"headerProp":[16],"uiid":[1],"rowClass":[1,"row-class"],"resize":[4],"rowHeaderColumn":[16]}],[4,"revogr-overlay-selection",{"readonly":[4],"range":[4],"canDrag":[4,"can-drag"],"useClipboard":[4,"use-clipboard"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"lastCell":[16],"editors":[16],"applyChangesOnClose":[4,"apply-changes-on-close"]},[[5,"mousemove","onMouseMove"],[5,"mouseleave","onMouseOut"],[5,"mouseup","onMouseUp"],[0,"dragStartCell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]]],[0,"revogr-focus",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"colType":[1,"col-type"],"rowType":[1,"row-type"]}],[0,"revogr-scroll-virtual",{"dimension":[1],"viewportStore":[16],"dimensionStore":[16],"setScroll":[64],"changeScroll":[64]}],[0,"revogr-temp-range",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16]}],[0,"revogr-data",{"readonly":[4],"range":[4],"rowClass":[1,"row-class"],"rowSelectionStore":[16],"viewportRow":[16],"viewportCol":[16],"dimensionRow":[16],"colData":[16],"dataStore":[16],"type":[1]}],[0,"revogr-edit",{"editCell":[16],"column":[16],"editor":[16],"saveOnClose":[4,"save-on-close"],"cancel":[64]}],[0,"revogr-header",{"viewportCol":[16],"dimensionCol":[16],"selectionStore":[16],"parent":[1],"groups":[16],"groupingDepth":[2,"grouping-depth"],"canResize":[4,"can-resize"],"colData":[16],"columnFilter":[4,"column-filter"],"type":[1]}],[0,"revogr-order-editor",{"parent":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"dragStart":[64],"endOrder":[64],"clearOrder":[64]},[[5,"mouseleave","onMouseOut"],[5,"mouseup","onMouseUp"]]],[4,"revogr-viewport-scroll",{"contentWidth":[2,"content-width"],"contentHeight":[2,"content-height"],"setScroll":[64],"changeScroll":[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]]]]], options);
|
|
75
|
+
return index.bootstrapLazy([["revogr-clipboard.cjs",[[0,"revogr-clipboard",{"doCopy":[64]},[[4,"paste","onPaste"],[4,"copy","copyStarted"]]]]],["revogr-filter-panel.cjs",[[0,"revogr-filter-panel",{"uuid":[1537],"filterItems":[16],"filterTypes":[16],"filterNames":[16],"filterEntities":[16],"filterCaptions":[16],"disableDynamicFiltering":[4,"disable-dynamic-filtering"],"isFilterIdSet":[32],"filterId":[32],"currentFilterId":[32],"currentFilterType":[32],"changes":[32],"show":[64],"getChanges":[64]},[[5,"mousedown","onMouseDown"]]]]],["revo-grid_11.cjs",[[0,"revo-grid",{"rowHeaders":[4,"row-headers"],"frameSize":[2,"frame-size"],"rowSize":[2,"row-size"],"colSize":[2,"col-size"],"range":[4],"readonly":[4],"resize":[4],"canFocus":[4,"can-focus"],"useClipboard":[4,"use-clipboard"],"columns":[16],"source":[16],"pinnedTopSource":[16],"pinnedBottomSource":[16],"rowDefinitions":[16],"editors":[16],"applyEditorChangesOnClose":[4,"apply-editor-changes-on-close"],"plugins":[16],"columnTypes":[16],"theme":[1537],"rowClass":[513,"row-class"],"autoSizeColumn":[4,"auto-size-column"],"filter":[4],"focusTemplate":[16],"canMoveColumns":[4,"can-move-columns"],"trimmedRows":[16],"exporting":[4],"grouping":[16],"stretch":[8],"merged":[16],"extraElements":[32],"refresh":[64],"scrollToRow":[64],"scrollToColumnIndex":[64],"scrollToColumnProp":[64],"updateColumns":[64],"addTrimmed":[64],"scrollToCoordinate":[64],"setCellEdit":[64],"setCellsFocus":[64],"registerVNode":[64],"getSource":[64],"getVisibleSource":[64],"getSourceStore":[64],"getColumnStore":[64],"updateColumnSorting":[64],"clearSorting":[64],"getColumns":[64],"clearFocus":[64],"getPlugins":[64],"getFocused":[64],"getContentSize":[64],"getSelectedRange":[64]},[[0,"internalRowDragStart","onRowDragStarted"],[0,"internalRowDragEnd","onRowDragEnd"],[0,"internalRowDrag","onRowDrag"],[0,"internalRowMouseMove","onRowMouseMove"],[0,"internalCellEdit","onBeforeEdit"],[0,"internalRangeDataApply","onBeforeRangeEdit"],[0,"internalSelectionChanged","onRangeChanged"],[0,"initialRowDropped","onRowDropped"],[0,"initialHeaderClick","onHeaderClick"],[0,"beforeFocusCell","onCellFocus"]]],[0,"revogr-row-headers",{"height":[2],"dataPorts":[16],"headerProp":[16],"uiid":[1],"rowClass":[1,"row-class"],"resize":[4],"rowHeaderColumn":[16]}],[4,"revogr-overlay-selection",{"readonly":[4],"range":[4],"canDrag":[4,"can-drag"],"useClipboard":[4,"use-clipboard"],"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"colData":[16],"lastCell":[16],"editors":[16],"applyChangesOnClose":[4,"apply-changes-on-close"]},[[5,"mousemove","onMouseMove"],[5,"mouseleave","onMouseOut"],[5,"mouseup","onMouseUp"],[0,"dragStartCell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]]],[0,"revogr-focus",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16],"colType":[1,"col-type"],"rowType":[1,"row-type"],"focusTemplate":[16]}],[0,"revogr-scroll-virtual",{"dimension":[1],"viewportStore":[16],"dimensionStore":[16],"setScroll":[64],"changeScroll":[64]}],[0,"revogr-temp-range",{"selectionStore":[16],"dimensionRow":[16],"dimensionCol":[16]}],[0,"revogr-data",{"readonly":[4],"range":[4],"rowClass":[1,"row-class"],"rowSelectionStore":[16],"viewportRow":[16],"viewportCol":[16],"dimensionRow":[16],"colData":[16],"dataStore":[16],"type":[1]}],[0,"revogr-edit",{"editCell":[16],"column":[16],"editor":[16],"saveOnClose":[4,"save-on-close"],"cancel":[64]}],[0,"revogr-header",{"viewportCol":[16],"dimensionCol":[16],"selectionStore":[16],"parent":[1],"groups":[16],"groupingDepth":[2,"grouping-depth"],"canResize":[4,"can-resize"],"colData":[16],"columnFilter":[4,"column-filter"],"type":[1]}],[0,"revogr-order-editor",{"parent":[16],"dimensionRow":[16],"dimensionCol":[16],"dataStore":[16],"dragStart":[64],"endOrder":[64],"clearOrder":[64]},[[5,"mouseleave","onMouseOut"],[5,"mouseup","onMouseUp"]]],[4,"revogr-viewport-scroll",{"contentWidth":[2,"content-width"],"contentHeight":[2,"content-height"],"setScroll":[64],"changeScroll":[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]]]]], options);
|
|
76
76
|
});
|
|
@@ -22007,11 +22007,13 @@ class ViewportStore {
|
|
|
22007
22007
|
}
|
|
22008
22008
|
// change size
|
|
22009
22009
|
const size = sizes[item.itemIndex];
|
|
22010
|
+
// size found
|
|
22010
22011
|
if (size) {
|
|
22011
22012
|
const changedSize = size - item.size;
|
|
22012
22013
|
changedCoordinate += changedSize;
|
|
22013
22014
|
item.size = size;
|
|
22014
22015
|
item.end = item.start + size;
|
|
22016
|
+
// size lost
|
|
22015
22017
|
}
|
|
22016
22018
|
// loop by start index
|
|
22017
22019
|
start++;
|
|
@@ -24641,7 +24643,7 @@ class ViewportService {
|
|
|
24641
24643
|
* First we render vertical parts - pinned start, data, pinned end
|
|
24642
24644
|
* Per each column we render data collections: headers, pinned top, center data, pinned bottom
|
|
24643
24645
|
*/
|
|
24644
|
-
const ViewPortSections = ({ resize, editors, rowClass, readonly, range, columns, useClipboard, columnFilter, applyEditorChangesOnClose, registerElement, onEdit, onScroll }) => {
|
|
24646
|
+
const ViewPortSections = ({ resize, editors, rowClass, readonly, range, columns, useClipboard, columnFilter, applyEditorChangesOnClose, registerElement, onEdit, onScroll, focusTemplate }) => {
|
|
24645
24647
|
const viewPortHtml = [];
|
|
24646
24648
|
/** render viewports columns */
|
|
24647
24649
|
for (let view of columns) {
|
|
@@ -24653,7 +24655,7 @@ const ViewPortSections = ({ resize, editors, rowClass, readonly, range, columns,
|
|
|
24653
24655
|
const dataView = (index.h("revogr-overlay-selection", Object.assign({}, data, { slot: data.slot, selectionStore: data.segmentSelectionStore, editors: editors, readonly: readonly, range: range, useClipboard: useClipboard, applyChangesOnClose: applyEditorChangesOnClose, onSetEdit: ({ detail }) => onEdit(detail) }),
|
|
24654
24656
|
index.h("revogr-data", Object.assign({}, data, { [UUID]: data.uuid }, { key: key, readonly: readonly, range: range, rowClass: rowClass, rowSelectionStore: data.rowSelectionStore, slot: DATA_SLOT })),
|
|
24655
24657
|
index.h("revogr-temp-range", { selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol }),
|
|
24656
|
-
index.h("revogr-focus", { rowType: data.type, colType: view.type, selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol })));
|
|
24658
|
+
index.h("revogr-focus", { focusTemplate: focusTemplate, rowType: data.type, colType: view.type, selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol })));
|
|
24657
24659
|
dataViews.push(dataView);
|
|
24658
24660
|
});
|
|
24659
24661
|
viewPortHtml.push(index.h("revogr-viewport-scroll", Object.assign({}, view.prop, { ref: el => registerElement(el, view.prop.key), onScrollViewport: e => onScroll(e.detail, view.prop.key) }), dataViews));
|
|
@@ -25089,6 +25091,7 @@ let RevoGridComponent = class {
|
|
|
25089
25091
|
this.beforerowdefinition = index.createEvent(this, "beforerowdefinition", 7);
|
|
25090
25092
|
this.filterconfigchanged = index.createEvent(this, "filterconfigchanged", 7);
|
|
25091
25093
|
this.mergechanged = index.createEvent(this, "mergechanged", 7);
|
|
25094
|
+
this.rowheaderschanged = index.createEvent(this, "rowheaderschanged", 7);
|
|
25092
25095
|
/**
|
|
25093
25096
|
* Defines how many rows/columns should be rendered outside visible area.
|
|
25094
25097
|
*/
|
|
@@ -25588,6 +25591,9 @@ let RevoGridComponent = class {
|
|
|
25588
25591
|
mergeChange(mergeVal) {
|
|
25589
25592
|
this.mergechanged.emit(mergeVal);
|
|
25590
25593
|
}
|
|
25594
|
+
rowHeadersChange(rowHeaders) {
|
|
25595
|
+
this.rowheaderschanged.emit(rowHeaders);
|
|
25596
|
+
}
|
|
25591
25597
|
dataSourceApply(source = [], type = 'rgRow') {
|
|
25592
25598
|
const beforesourceset = this.beforeAnySource.emit({
|
|
25593
25599
|
type,
|
|
@@ -25696,7 +25702,7 @@ let RevoGridComponent = class {
|
|
|
25696
25702
|
if (!event.defaultPrevented) {
|
|
25697
25703
|
this.selectionStoreConnector.setEdit(detail.isCancel ? false : detail.val);
|
|
25698
25704
|
}
|
|
25699
|
-
}, registerElement: (e, k) => this.scrollingService.registerElement(e, k), onScroll: (details, k) => this.scrollingService.onScroll(details, k) }));
|
|
25705
|
+
}, registerElement: (e, k) => this.scrollingService.registerElement(e, k), onScroll: (details, k) => this.scrollingService.onScroll(details, k), focusTemplate: this.focusTemplate }));
|
|
25700
25706
|
return (index.h(index.Host, Object.assign({}, { [`${UUID}`]: this.uuid }), index.h(RevoViewPort, { viewports: this.viewportProvider.stores, dimensions: this.dimensionProvider.stores, orderRef: e => (this.orderService = e), registerElement: (e, k) => this.scrollingService.registerElement(e, k), nakedClick: () => this.viewport.clearEdit(), onScroll: details => this.scrollingService.onScroll(details) }, views), this.extraElements));
|
|
25701
25707
|
}
|
|
25702
25708
|
get element() { return index.getElement(this); }
|
|
@@ -25711,7 +25717,8 @@ let RevoGridComponent = class {
|
|
|
25711
25717
|
"grouping": ["groupingChanged"],
|
|
25712
25718
|
"stretch": ["applyStretch"],
|
|
25713
25719
|
"filter": ["applyFilter"],
|
|
25714
|
-
"merged": ["mergeChange"]
|
|
25720
|
+
"merged": ["mergeChange"],
|
|
25721
|
+
"rowHeaders": ["rowHeadersChange"]
|
|
25715
25722
|
}; }
|
|
25716
25723
|
};
|
|
25717
25724
|
RevoGridComponent.style = revoGridStyleCss;
|
|
@@ -26666,6 +26673,10 @@ let RevogrFocus$1 = class {
|
|
|
26666
26673
|
this.el && this.changed(this.el);
|
|
26667
26674
|
}
|
|
26668
26675
|
render() {
|
|
26676
|
+
const editCell = this.selectionStore.get('edit');
|
|
26677
|
+
if (editCell) {
|
|
26678
|
+
return;
|
|
26679
|
+
}
|
|
26669
26680
|
const data = this.selectionStore.get('focus');
|
|
26670
26681
|
if (data) {
|
|
26671
26682
|
const event = this.beforeFocusRender.emit({
|
|
@@ -26678,7 +26689,8 @@ let RevogrFocus$1 = class {
|
|
|
26678
26689
|
}
|
|
26679
26690
|
const { detail } = event;
|
|
26680
26691
|
const style = getElStyle(detail.range, this.dimensionRow.state, this.dimensionCol.state);
|
|
26681
|
-
|
|
26692
|
+
const extra = this.focusTemplate && this.focusTemplate(index.h, detail);
|
|
26693
|
+
return index.h(index.Host, { class: FOCUS_CLASS, style: style }, extra);
|
|
26682
26694
|
}
|
|
26683
26695
|
}
|
|
26684
26696
|
get el() { return index.getElement(this); }
|
|
@@ -27944,13 +27956,13 @@ let OverlaySelection = class {
|
|
|
27944
27956
|
// if can edit
|
|
27945
27957
|
const editCell = this.selectionStore.get('edit');
|
|
27946
27958
|
if (this.readonly || !editCell) {
|
|
27947
|
-
return;
|
|
27959
|
+
return null;
|
|
27948
27960
|
}
|
|
27949
27961
|
const val = editCell.val || this.columnService.getCellData(editCell.y, editCell.x);
|
|
27950
27962
|
const editable = Object.assign(Object.assign({}, editCell), this.columnService.getSaveData(editCell.y, editCell.x, val));
|
|
27951
27963
|
const renderEvent = this.beforeEditRender.emit(Object.assign({ range: Object.assign(Object.assign({}, editCell), { x1: editCell.x, y1: editCell.y }) }, this.types));
|
|
27952
27964
|
if (renderEvent.defaultPrevented) {
|
|
27953
|
-
return;
|
|
27965
|
+
return null;
|
|
27954
27966
|
}
|
|
27955
27967
|
const { detail: { range } } = renderEvent;
|
|
27956
27968
|
const style = getElStyle(range, this.dimensionRow.state, this.dimensionCol.state);
|
|
@@ -27968,24 +27980,26 @@ let OverlaySelection = class {
|
|
|
27968
27980
|
}, editCell: editable, saveOnClose: this.applyChangesOnClose, column: this.columnService.columns[editCell.x], editor: this.columnService.getCellEditor(editCell.y, editCell.x, this.editors), style: style }));
|
|
27969
27981
|
}
|
|
27970
27982
|
render() {
|
|
27971
|
-
const range = this.selectionStoreService.ranged;
|
|
27972
|
-
const selectionFocus = this.selectionStoreService.focused;
|
|
27973
27983
|
const els = [];
|
|
27974
27984
|
const editCell = this.renderEditCell();
|
|
27975
|
-
if ((range || selectionFocus) && !editCell && this.useClipboard) {
|
|
27976
|
-
els.push(this.clipboardService.renderClipboard());
|
|
27977
|
-
}
|
|
27978
|
-
if (range) {
|
|
27979
|
-
els.push(...this.renderRange(range));
|
|
27980
|
-
}
|
|
27981
27985
|
if (editCell) {
|
|
27982
27986
|
els.push(editCell);
|
|
27983
27987
|
}
|
|
27984
|
-
|
|
27985
|
-
|
|
27986
|
-
|
|
27987
|
-
|
|
27988
|
-
|
|
27988
|
+
else {
|
|
27989
|
+
const range = this.selectionStoreService.ranged;
|
|
27990
|
+
const selectionFocus = this.selectionStoreService.focused;
|
|
27991
|
+
if ((range || selectionFocus) && this.useClipboard) {
|
|
27992
|
+
els.push(this.clipboardService.renderClipboard());
|
|
27993
|
+
}
|
|
27994
|
+
if (range) {
|
|
27995
|
+
els.push(...this.renderRange(range));
|
|
27996
|
+
}
|
|
27997
|
+
if (selectionFocus && !this.readonly && this.range) {
|
|
27998
|
+
els.push(this.autoFillService.renderAutofill(range, selectionFocus));
|
|
27999
|
+
}
|
|
28000
|
+
if (this.canDrag) {
|
|
28001
|
+
els.push(index.h("revogr-order-editor", { ref: e => (this.orderEditor = e), dataStore: this.dataStore, dimensionRow: this.dimensionRow, dimensionCol: this.dimensionCol, parent: this.element, onInternalRowDragStart: e => this.onRowDragStart(e) }));
|
|
28002
|
+
}
|
|
27989
28003
|
}
|
|
27990
28004
|
return (index.h(index.Host, { onDblClick: () => this.doEdit(), onMouseDown: (e) => this.onElementMouseDown(e) }, els, index.h("slot", { name: "data" })));
|
|
27991
28005
|
}
|
|
@@ -145,13 +145,13 @@ export class OverlaySelection {
|
|
|
145
145
|
// if can edit
|
|
146
146
|
const editCell = this.selectionStore.get('edit');
|
|
147
147
|
if (this.readonly || !editCell) {
|
|
148
|
-
return;
|
|
148
|
+
return null;
|
|
149
149
|
}
|
|
150
150
|
const val = editCell.val || this.columnService.getCellData(editCell.y, editCell.x);
|
|
151
151
|
const editable = Object.assign(Object.assign({}, editCell), this.columnService.getSaveData(editCell.y, editCell.x, val));
|
|
152
152
|
const renderEvent = this.beforeEditRender.emit(Object.assign({ range: Object.assign(Object.assign({}, editCell), { x1: editCell.x, y1: editCell.y }) }, this.types));
|
|
153
153
|
if (renderEvent.defaultPrevented) {
|
|
154
|
-
return;
|
|
154
|
+
return null;
|
|
155
155
|
}
|
|
156
156
|
const { detail: { range } } = renderEvent;
|
|
157
157
|
const style = getElStyle(range, this.dimensionRow.state, this.dimensionCol.state);
|
|
@@ -169,24 +169,26 @@ export class OverlaySelection {
|
|
|
169
169
|
}, editCell: editable, saveOnClose: this.applyChangesOnClose, column: this.columnService.columns[editCell.x], editor: this.columnService.getCellEditor(editCell.y, editCell.x, this.editors), style: style }));
|
|
170
170
|
}
|
|
171
171
|
render() {
|
|
172
|
-
const range = this.selectionStoreService.ranged;
|
|
173
|
-
const selectionFocus = this.selectionStoreService.focused;
|
|
174
172
|
const els = [];
|
|
175
173
|
const editCell = this.renderEditCell();
|
|
176
|
-
if ((range || selectionFocus) && !editCell && this.useClipboard) {
|
|
177
|
-
els.push(this.clipboardService.renderClipboard());
|
|
178
|
-
}
|
|
179
|
-
if (range) {
|
|
180
|
-
els.push(...this.renderRange(range));
|
|
181
|
-
}
|
|
182
174
|
if (editCell) {
|
|
183
175
|
els.push(editCell);
|
|
184
176
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
177
|
+
else {
|
|
178
|
+
const range = this.selectionStoreService.ranged;
|
|
179
|
+
const selectionFocus = this.selectionStoreService.focused;
|
|
180
|
+
if ((range || selectionFocus) && this.useClipboard) {
|
|
181
|
+
els.push(this.clipboardService.renderClipboard());
|
|
182
|
+
}
|
|
183
|
+
if (range) {
|
|
184
|
+
els.push(...this.renderRange(range));
|
|
185
|
+
}
|
|
186
|
+
if (selectionFocus && !this.readonly && this.range) {
|
|
187
|
+
els.push(this.autoFillService.renderAutofill(range, selectionFocus));
|
|
188
|
+
}
|
|
189
|
+
if (this.canDrag) {
|
|
190
|
+
els.push(h("revogr-order-editor", { ref: e => (this.orderEditor = e), dataStore: this.dataStore, dimensionRow: this.dimensionRow, dimensionCol: this.dimensionCol, parent: this.element, onInternalRowDragStart: e => this.onRowDragStart(e) }));
|
|
191
|
+
}
|
|
190
192
|
}
|
|
191
193
|
return (h(Host, { onDblClick: () => this.doEdit(), onMouseDown: (e) => this.onElementMouseDown(e) },
|
|
192
194
|
els,
|
|
@@ -93,6 +93,12 @@ export declare class RevoGridComponent {
|
|
|
93
93
|
* Can be filter collection
|
|
94
94
|
*/
|
|
95
95
|
filter: boolean | ColumnFilterConfig;
|
|
96
|
+
/**
|
|
97
|
+
* Apply changes typed in editor on editor close except Escape cases
|
|
98
|
+
* If custom editor in use @method getValue required
|
|
99
|
+
* Check interfaces.d.ts @EditorBase for more info
|
|
100
|
+
*/
|
|
101
|
+
focusTemplate: RevoGrid.FocusTemplateFunc;
|
|
96
102
|
/**
|
|
97
103
|
* Enables column move plugin
|
|
98
104
|
* Can be boolean
|
|
@@ -450,6 +456,8 @@ export declare class RevoGridComponent {
|
|
|
450
456
|
/** External subscribe */
|
|
451
457
|
mergechanged: EventEmitter<any[] | undefined>;
|
|
452
458
|
mergeChange(mergeVal: any[] | undefined): void;
|
|
459
|
+
rowheaderschanged: EventEmitter;
|
|
460
|
+
rowHeadersChange(rowHeaders?: RevoGrid.RowHeaders | boolean): void;
|
|
453
461
|
private dataSourceApply;
|
|
454
462
|
connectedCallback(): void;
|
|
455
463
|
disconnectedCallback(): void;
|
|
@@ -523,6 +523,9 @@ export class RevoGridComponent {
|
|
|
523
523
|
mergeChange(mergeVal) {
|
|
524
524
|
this.mergechanged.emit(mergeVal);
|
|
525
525
|
}
|
|
526
|
+
rowHeadersChange(rowHeaders) {
|
|
527
|
+
this.rowheaderschanged.emit(rowHeaders);
|
|
528
|
+
}
|
|
526
529
|
dataSourceApply(source = [], type = 'rgRow') {
|
|
527
530
|
const beforesourceset = this.beforeAnySource.emit({
|
|
528
531
|
type,
|
|
@@ -631,7 +634,7 @@ export class RevoGridComponent {
|
|
|
631
634
|
if (!event.defaultPrevented) {
|
|
632
635
|
this.selectionStoreConnector.setEdit(detail.isCancel ? false : detail.val);
|
|
633
636
|
}
|
|
634
|
-
}, registerElement: (e, k) => this.scrollingService.registerElement(e, k), onScroll: (details, k) => this.scrollingService.onScroll(details, k) }));
|
|
637
|
+
}, registerElement: (e, k) => this.scrollingService.registerElement(e, k), onScroll: (details, k) => this.scrollingService.onScroll(details, k), focusTemplate: this.focusTemplate }));
|
|
635
638
|
return (h(Host, Object.assign({}, { [`${UUID}`]: this.uuid }),
|
|
636
639
|
h(RevoViewPort, { viewports: this.viewportProvider.stores, dimensions: this.dimensionProvider.stores, orderRef: e => (this.orderService = e), registerElement: (e, k) => this.scrollingService.registerElement(e, k), nakedClick: () => this.viewport.clearEdit(), onScroll: details => this.scrollingService.onScroll(details) }, views),
|
|
637
640
|
this.extraElements));
|
|
@@ -1082,6 +1085,26 @@ export class RevoGridComponent {
|
|
|
1082
1085
|
"reflect": false,
|
|
1083
1086
|
"defaultValue": "false"
|
|
1084
1087
|
},
|
|
1088
|
+
"focusTemplate": {
|
|
1089
|
+
"type": "unknown",
|
|
1090
|
+
"mutable": false,
|
|
1091
|
+
"complexType": {
|
|
1092
|
+
"original": "RevoGrid.FocusTemplateFunc",
|
|
1093
|
+
"resolved": "(createElement: HyperFunc<VNode>, detail: FocusRenderEvent) => any",
|
|
1094
|
+
"references": {
|
|
1095
|
+
"RevoGrid": {
|
|
1096
|
+
"location": "import",
|
|
1097
|
+
"path": "../../interfaces"
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1100
|
+
},
|
|
1101
|
+
"required": false,
|
|
1102
|
+
"optional": false,
|
|
1103
|
+
"docs": {
|
|
1104
|
+
"tags": [],
|
|
1105
|
+
"text": "Apply changes typed in editor on editor close except Escape cases\nIf custom editor in use @method getValue required\nCheck interfaces.d.ts @EditorBase for more info"
|
|
1106
|
+
}
|
|
1107
|
+
},
|
|
1085
1108
|
"canMoveColumns": {
|
|
1086
1109
|
"type": "boolean",
|
|
1087
1110
|
"mutable": false,
|
|
@@ -1797,6 +1820,21 @@ export class RevoGridComponent {
|
|
|
1797
1820
|
"resolved": "any[]",
|
|
1798
1821
|
"references": {}
|
|
1799
1822
|
}
|
|
1823
|
+
}, {
|
|
1824
|
+
"method": "rowheaderschanged",
|
|
1825
|
+
"name": "rowheaderschanged",
|
|
1826
|
+
"bubbles": true,
|
|
1827
|
+
"cancelable": true,
|
|
1828
|
+
"composed": true,
|
|
1829
|
+
"docs": {
|
|
1830
|
+
"tags": [],
|
|
1831
|
+
"text": ""
|
|
1832
|
+
},
|
|
1833
|
+
"complexType": {
|
|
1834
|
+
"original": "any",
|
|
1835
|
+
"resolved": "any",
|
|
1836
|
+
"references": {}
|
|
1837
|
+
}
|
|
1800
1838
|
}]; }
|
|
1801
1839
|
static get methods() { return {
|
|
1802
1840
|
"refresh": {
|
|
@@ -2386,6 +2424,9 @@ export class RevoGridComponent {
|
|
|
2386
2424
|
}, {
|
|
2387
2425
|
"propName": "merged",
|
|
2388
2426
|
"methodName": "mergeChange"
|
|
2427
|
+
}, {
|
|
2428
|
+
"propName": "rowHeaders",
|
|
2429
|
+
"methodName": "rowHeadersChange"
|
|
2389
2430
|
}]; }
|
|
2390
2431
|
static get listeners() { return [{
|
|
2391
2432
|
"name": "internalRowDragStart",
|
|
@@ -12,6 +12,7 @@ declare type Props = {
|
|
|
12
12
|
resize: boolean;
|
|
13
13
|
columns: ViewportProps[];
|
|
14
14
|
columnFilter: boolean;
|
|
15
|
+
focusTemplate: RevoGrid.FocusTemplateFunc;
|
|
15
16
|
onScroll(e: RevoGrid.ViewPortScrollEvent, key?: RevoGrid.DimensionColPin | string): void;
|
|
16
17
|
onEdit(edit: Edition.BeforeEdit): void;
|
|
17
18
|
registerElement(el: ElementScroll | null, key: string): void;
|
|
@@ -21,5 +22,5 @@ declare type Props = {
|
|
|
21
22
|
* First we render vertical parts - pinned start, data, pinned end
|
|
22
23
|
* Per each column we render data collections: headers, pinned top, center data, pinned bottom
|
|
23
24
|
*/
|
|
24
|
-
export declare const ViewPortSections: ({ resize, editors, rowClass, readonly, range, columns, useClipboard, columnFilter, applyEditorChangesOnClose, registerElement, onEdit, onScroll }: Props) => VNode[];
|
|
25
|
+
export declare const ViewPortSections: ({ resize, editors, rowClass, readonly, range, columns, useClipboard, columnFilter, applyEditorChangesOnClose, registerElement, onEdit, onScroll, focusTemplate }: Props) => VNode[];
|
|
25
26
|
export {};
|
|
@@ -6,7 +6,7 @@ import { DATA_SLOT, HEADER_SLOT } from './viewport.helpers';
|
|
|
6
6
|
* First we render vertical parts - pinned start, data, pinned end
|
|
7
7
|
* Per each column we render data collections: headers, pinned top, center data, pinned bottom
|
|
8
8
|
*/
|
|
9
|
-
export const ViewPortSections = ({ resize, editors, rowClass, readonly, range, columns, useClipboard, columnFilter, applyEditorChangesOnClose, registerElement, onEdit, onScroll }) => {
|
|
9
|
+
export const ViewPortSections = ({ resize, editors, rowClass, readonly, range, columns, useClipboard, columnFilter, applyEditorChangesOnClose, registerElement, onEdit, onScroll, focusTemplate }) => {
|
|
10
10
|
const viewPortHtml = [];
|
|
11
11
|
/** render viewports columns */
|
|
12
12
|
for (let view of columns) {
|
|
@@ -18,7 +18,7 @@ export const ViewPortSections = ({ resize, editors, rowClass, readonly, range, c
|
|
|
18
18
|
const dataView = (h("revogr-overlay-selection", Object.assign({}, data, { slot: data.slot, selectionStore: data.segmentSelectionStore, editors: editors, readonly: readonly, range: range, useClipboard: useClipboard, applyChangesOnClose: applyEditorChangesOnClose, onSetEdit: ({ detail }) => onEdit(detail) }),
|
|
19
19
|
h("revogr-data", Object.assign({}, data, { [UUID]: data.uuid }, { key: key, readonly: readonly, range: range, rowClass: rowClass, rowSelectionStore: data.rowSelectionStore, slot: DATA_SLOT })),
|
|
20
20
|
h("revogr-temp-range", { selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol }),
|
|
21
|
-
h("revogr-focus", { rowType: data.type, colType: view.type, selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol })));
|
|
21
|
+
h("revogr-focus", { focusTemplate: focusTemplate, rowType: data.type, colType: view.type, selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol })));
|
|
22
22
|
dataViews.push(dataView);
|
|
23
23
|
});
|
|
24
24
|
viewPortHtml.push(h("revogr-viewport-scroll", Object.assign({}, view.prop, { ref: el => registerElement(el, view.prop.key), onScrollViewport: e => onScroll(e.detail, view.prop.key) }), dataViews));
|
|
@@ -4,7 +4,7 @@ import DataStore from '../../store/dataSource/data.store';
|
|
|
4
4
|
import ViewportStore from '../../store/viewPort/viewport.store';
|
|
5
5
|
import { ROW_HEADER_TYPE, UUID } from '../../utils/consts';
|
|
6
6
|
import { RowHeaderRender } from './row-header-render';
|
|
7
|
-
import { calculateRowHeaderSize } from '
|
|
7
|
+
import { calculateRowHeaderSize } from '../../utils/row-header-utils';
|
|
8
8
|
import { HEADER_SLOT } from '../revoGrid/viewport.helpers';
|
|
9
9
|
/**
|
|
10
10
|
* Row headers component
|
|
@@ -8,6 +8,7 @@ export declare class RevogrFocus {
|
|
|
8
8
|
dimensionCol: Observable<RevoGrid.DimensionSettingsState>;
|
|
9
9
|
colType: RevoGrid.DimensionCols;
|
|
10
10
|
rowType: RevoGrid.DimensionRows;
|
|
11
|
+
focusTemplate: RevoGrid.FocusTemplateFunc | null;
|
|
11
12
|
beforeFocusRender: EventEmitter<FocusRenderEvent>;
|
|
12
13
|
private changed;
|
|
13
14
|
componentDidRender(): void;
|
|
@@ -12,6 +12,10 @@ export class RevogrFocus {
|
|
|
12
12
|
this.el && this.changed(this.el);
|
|
13
13
|
}
|
|
14
14
|
render() {
|
|
15
|
+
const editCell = this.selectionStore.get('edit');
|
|
16
|
+
if (editCell) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
15
19
|
const data = this.selectionStore.get('focus');
|
|
16
20
|
if (data) {
|
|
17
21
|
const event = this.beforeFocusRender.emit({
|
|
@@ -24,7 +28,8 @@ export class RevogrFocus {
|
|
|
24
28
|
}
|
|
25
29
|
const { detail } = event;
|
|
26
30
|
const style = getElStyle(detail.range, this.dimensionRow.state, this.dimensionCol.state);
|
|
27
|
-
|
|
31
|
+
const extra = this.focusTemplate && this.focusTemplate(h, detail);
|
|
32
|
+
return h(Host, { class: FOCUS_CLASS, style: style }, extra);
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
35
|
static get is() { return "revogr-focus"; }
|
|
@@ -150,6 +155,26 @@ export class RevogrFocus {
|
|
|
150
155
|
},
|
|
151
156
|
"attribute": "row-type",
|
|
152
157
|
"reflect": false
|
|
158
|
+
},
|
|
159
|
+
"focusTemplate": {
|
|
160
|
+
"type": "unknown",
|
|
161
|
+
"mutable": false,
|
|
162
|
+
"complexType": {
|
|
163
|
+
"original": "RevoGrid.FocusTemplateFunc | null",
|
|
164
|
+
"resolved": "(createElement: HyperFunc<VNode>, detail: FocusRenderEvent) => any",
|
|
165
|
+
"references": {
|
|
166
|
+
"RevoGrid": {
|
|
167
|
+
"location": "import",
|
|
168
|
+
"path": "../../interfaces"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"required": false,
|
|
173
|
+
"optional": false,
|
|
174
|
+
"docs": {
|
|
175
|
+
"tags": [],
|
|
176
|
+
"text": ""
|
|
177
|
+
}
|
|
153
178
|
}
|
|
154
179
|
}; }
|
|
155
180
|
static get events() { return [{
|