neo.mjs 8.7.1 → 8.9.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/apps/ServiceWorker.mjs +2 -2
- package/apps/portal/index.html +1 -1
- package/apps/portal/view/home/FooterContainer.mjs +1 -1
- package/examples/ServiceWorker.mjs +2 -2
- package/examples/grid/nestedRecordFields/EditUserDialog.mjs +154 -0
- package/examples/grid/nestedRecordFields/MainModel.mjs +54 -0
- package/examples/grid/nestedRecordFields/MainStore.mjs +54 -0
- package/examples/grid/nestedRecordFields/Viewport.mjs +152 -0
- package/examples/grid/nestedRecordFields/ViewportStateProvider.mjs +62 -0
- package/examples/grid/nestedRecordFields/app.mjs +6 -0
- package/examples/grid/nestedRecordFields/index.html +11 -0
- package/examples/grid/nestedRecordFields/neo-config.json +8 -0
- package/examples/table/nestedRecordFields/{MainContainer.mjs → Viewport.mjs} +50 -21
- package/examples/table/nestedRecordFields/{MainContainerStateProvider.mjs → ViewportStateProvider.mjs} +5 -5
- package/examples/table/nestedRecordFields/app.mjs +3 -3
- package/examples/table/nestedRecordFields/neo-config.json +2 -1
- package/package.json +1 -1
- package/resources/scss/src/grid/View.scss +16 -0
- package/resources/scss/src/grid/header/Button.scss +3 -1
- package/resources/scss/src/table/View.scss +2 -2
- package/resources/scss/src/table/header/Button.scss +1 -2
- package/resources/scss/theme-dark/grid/View.scss +2 -0
- package/resources/scss/theme-dark/table/View.scss +2 -0
- package/resources/scss/theme-light/grid/View.scss +2 -0
- package/resources/scss/theme-light/table/View.scss +2 -0
- package/resources/scss/theme-neo-light/grid/View.scss +2 -0
- package/resources/scss/theme-neo-light/table/View.scss +2 -0
- package/src/DefaultConfig.mjs +2 -2
- package/src/Neo.mjs +48 -19
- package/src/component/Base.mjs +16 -4
- package/src/container/Base.mjs +16 -0
- package/src/data/RecordFactory.mjs +41 -48
- package/src/grid/View.mjs +23 -5
- package/src/table/View.mjs +1 -1
package/src/grid/View.mjs
CHANGED
@@ -72,6 +72,10 @@ class GridView extends Component {
|
|
72
72
|
* @protected
|
73
73
|
*/
|
74
74
|
columnPositions_: [],
|
75
|
+
/**
|
76
|
+
* @member {Boolean} highlightModifiedCells_=false
|
77
|
+
*/
|
78
|
+
highlightModifiedCells_: false,
|
75
79
|
/**
|
76
80
|
* @member {Boolean} isScrolling_=false
|
77
81
|
*/
|
@@ -432,6 +436,12 @@ class GridView extends Component {
|
|
432
436
|
cellCls.push('neo-' + column.cellAlign)
|
433
437
|
}
|
434
438
|
|
439
|
+
if (me.highlightModifiedCells) {
|
440
|
+
if (record.isModifiedField(dataField)) {
|
441
|
+
cellCls.push('neo-is-modified')
|
442
|
+
}
|
443
|
+
}
|
444
|
+
|
435
445
|
if (!cellId) {
|
436
446
|
cellId = me.getCellId(record, column.dataField)
|
437
447
|
}
|
@@ -803,9 +813,9 @@ class GridView extends Component {
|
|
803
813
|
fieldNames = fields.map(field => field.name),
|
804
814
|
needsUpdate = false,
|
805
815
|
{gridContainer} = me,
|
806
|
-
{selectionModel} = gridContainer,
|
816
|
+
{selectionModel} = gridContainer.view,
|
807
817
|
{vdom} = me,
|
808
|
-
cellId, cellNode, column, index
|
818
|
+
cellId, cellNode, cellStyle, cellVdom, column, index;
|
809
819
|
|
810
820
|
if (fieldNames.includes(me.colspanField)) {
|
811
821
|
index = me.store.indexOf(record);
|
@@ -821,14 +831,22 @@ class GridView extends Component {
|
|
821
831
|
cellId = me.getCellId(record, field.name);
|
822
832
|
cellNode = VDomUtil.find(vdom, cellId);
|
823
833
|
|
824
|
-
//
|
834
|
+
// The vdom might not exist yet => nothing to do in this case
|
825
835
|
if (cellNode?.vdom) {
|
836
|
+
cellStyle = cellNode.vdom.style;
|
826
837
|
column = me.getColumn(field.name);
|
827
838
|
index = cellNode.index;
|
839
|
+
cellVdom = me.applyRendererOutput({cellId, column, gridContainer, index, record});
|
828
840
|
needsUpdate = true;
|
829
|
-
scope = column.rendererScope || gridContainer;
|
830
841
|
|
831
|
-
|
842
|
+
// The cell-positioning logic happens outside applyRendererOutput()
|
843
|
+
// We need to preserve these styles
|
844
|
+
Object.assign(cellVdom.style, {
|
845
|
+
left : cellStyle.left,
|
846
|
+
width: cellStyle.width
|
847
|
+
});
|
848
|
+
|
849
|
+
cellNode.parentNode.cn[index] = cellVdom
|
832
850
|
}
|
833
851
|
}
|
834
852
|
})
|
package/src/table/View.mjs
CHANGED
@@ -154,7 +154,7 @@ class View extends Component {
|
|
154
154
|
cellCls.push('neo-' + column.cellAlign)
|
155
155
|
}
|
156
156
|
|
157
|
-
if (me.highlightModifiedCells
|
157
|
+
if (me.highlightModifiedCells) {
|
158
158
|
if (record.isModifiedField(dataField)) {
|
159
159
|
cellCls.push('neo-is-modified')
|
160
160
|
}
|