@esfaenza/es-table 19.2.20 → 19.2.22
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.
|
@@ -1661,29 +1661,32 @@ class HierarchyModeHandler {
|
|
|
1661
1661
|
*/
|
|
1662
1662
|
assignLevel(objs, levelToAssign) {
|
|
1663
1663
|
let assigned = 0;
|
|
1664
|
+
let own = this.est.OwnKey();
|
|
1665
|
+
let parent = this.est.ParentKey();
|
|
1666
|
+
let expanded = this.est.StartsExpanded();
|
|
1664
1667
|
for (let i = 0; i < objs.length; i++) {
|
|
1665
1668
|
let obj = objs[i];
|
|
1666
1669
|
// Se la parentKey non è valorizzata, questo è il livello 0 (1... perché gli 0 son perciolosi)
|
|
1667
|
-
if (!obj[
|
|
1670
|
+
if (!obj[parent] && levelToAssign == 1) {
|
|
1668
1671
|
obj._level = 1;
|
|
1669
1672
|
obj._visible = true;
|
|
1670
|
-
obj._expanded =
|
|
1673
|
+
obj._expanded = expanded;
|
|
1671
1674
|
assigned++;
|
|
1672
1675
|
continue;
|
|
1673
1676
|
}
|
|
1674
1677
|
// Per i livelli superiore al primo
|
|
1675
|
-
if (obj[
|
|
1678
|
+
if (obj[parent] && levelToAssign > 1) {
|
|
1676
1679
|
// trovo il parent
|
|
1677
1680
|
for (let p = 0; p < objs.length; p++) {
|
|
1678
1681
|
let possibleParent = objs[p];
|
|
1679
1682
|
// Trovato il parent dell'item, assegno all'item il livello giusto
|
|
1680
|
-
if (possibleParent[
|
|
1683
|
+
if (possibleParent[own] == obj[parent] && possibleParent._level == levelToAssign - 1) {
|
|
1681
1684
|
obj._level = levelToAssign;
|
|
1682
1685
|
// So che questo item ha un parent. Ribadisco che il parent è espanso in base alle impostazione e stessa logica
|
|
1683
1686
|
// per la visibilità del figlio
|
|
1684
|
-
possibleParent._expanded =
|
|
1687
|
+
possibleParent._expanded = expanded;
|
|
1685
1688
|
possibleParent.parent = true;
|
|
1686
|
-
obj._visible =
|
|
1689
|
+
obj._visible = expanded;
|
|
1687
1690
|
assigned++;
|
|
1688
1691
|
break;
|
|
1689
1692
|
}
|
|
@@ -1699,15 +1702,17 @@ class HierarchyModeHandler {
|
|
|
1699
1702
|
*/
|
|
1700
1703
|
expandParent(key) {
|
|
1701
1704
|
let bs = this.est.boundSource();
|
|
1705
|
+
let own = this.est.OwnKey();
|
|
1706
|
+
let parent = this.est.ParentKey();
|
|
1702
1707
|
for (let i = 0; i < bs.length; i++) {
|
|
1703
1708
|
let obj = bs[i];
|
|
1704
1709
|
// Trovo il parent con quell'id e lo espando
|
|
1705
|
-
if (obj[
|
|
1710
|
+
if (obj[own] == key) {
|
|
1706
1711
|
obj._expanded = true;
|
|
1707
1712
|
for (let ic = 0; ic < bs.length; ic++) {
|
|
1708
1713
|
let child = bs[ic];
|
|
1709
1714
|
// Trovo tutti i child di quel parent e li rendo visibili
|
|
1710
|
-
if (child[
|
|
1715
|
+
if (child[parent] == key)
|
|
1711
1716
|
child._visible = true;
|
|
1712
1717
|
}
|
|
1713
1718
|
return;
|
|
@@ -1721,10 +1726,11 @@ class HierarchyModeHandler {
|
|
|
1721
1726
|
*/
|
|
1722
1727
|
collapseParent(key) {
|
|
1723
1728
|
let bs = this.est.boundSource();
|
|
1729
|
+
let own = this.est.OwnKey();
|
|
1724
1730
|
for (let i = 0; i < bs.length; i++) {
|
|
1725
1731
|
let obj = bs[i];
|
|
1726
1732
|
// Trovo il parent con quell'id e lo collasso
|
|
1727
|
-
if (obj[
|
|
1733
|
+
if (obj[own] == key) {
|
|
1728
1734
|
obj._expanded = false;
|
|
1729
1735
|
// Collasso/nascondo tutti i child del parent
|
|
1730
1736
|
this.collapseChildOfParent(key);
|
|
@@ -1739,16 +1745,18 @@ class HierarchyModeHandler {
|
|
|
1739
1745
|
*/
|
|
1740
1746
|
collapseChildOfParent(parentKey) {
|
|
1741
1747
|
let bs = this.est.boundSource();
|
|
1748
|
+
let parent = this.est.ParentKey();
|
|
1749
|
+
let own = this.est.OwnKey();
|
|
1742
1750
|
for (let ic = 0; ic < bs.length; ic++) {
|
|
1743
1751
|
let child = bs[ic];
|
|
1744
1752
|
// Trovo tutti i child di quel parent e li rendo invisibili. Se il child trovato è a sua volta un parent,
|
|
1745
1753
|
// lo collasso e vado in ricorsione sui figli
|
|
1746
|
-
if (child[
|
|
1754
|
+
if (child[parent] == parentKey && !child.parent)
|
|
1747
1755
|
child._visible = false;
|
|
1748
|
-
else if (child[
|
|
1756
|
+
else if (child[parent] == parentKey && child.parent) {
|
|
1749
1757
|
child._expanded = false;
|
|
1750
1758
|
child._visible = false;
|
|
1751
|
-
this.collapseChildOfParent(child[
|
|
1759
|
+
this.collapseChildOfParent(child[own]);
|
|
1752
1760
|
}
|
|
1753
1761
|
}
|
|
1754
1762
|
}
|
|
@@ -4349,15 +4357,15 @@ class EsTableComponent {
|
|
|
4349
4357
|
if (usesThsAndTdsDirectives || hasNoContentProjection) {
|
|
4350
4358
|
if (this.UseCustomCells() == null)
|
|
4351
4359
|
this.UseCustomCells.set(true);
|
|
4352
|
-
if (this.HiddenColumns() == null && this.UseCustomCells)
|
|
4360
|
+
if (this.HiddenColumns() == null && this.UseCustomCells())
|
|
4353
4361
|
this.HiddenColumns.set(true);
|
|
4354
|
-
if (this.ColumnsOrdering() == null && this.UseCustomCells)
|
|
4362
|
+
if (this.ColumnsOrdering() == null && this.UseCustomCells())
|
|
4355
4363
|
this.ColumnsOrdering.set(true);
|
|
4356
|
-
if (this.OrderByColumn() == null && this.UseCustomCells)
|
|
4364
|
+
if (this.OrderByColumn() == null && this.UseCustomCells())
|
|
4357
4365
|
this.OrderByColumn.set(true);
|
|
4358
|
-
if (this.SelectAll() == null && this.Selection)
|
|
4366
|
+
if (this.SelectAll() == null && this.Selection())
|
|
4359
4367
|
this.SelectAll.set(true);
|
|
4360
|
-
if (this.ShiftClick() == null && this.Selection)
|
|
4368
|
+
if (this.ShiftClick() == null && this.Selection())
|
|
4361
4369
|
this.ShiftClick.set(true);
|
|
4362
4370
|
this.DirectivesBased.set(true);
|
|
4363
4371
|
}
|
|
@@ -4418,13 +4426,14 @@ class EsTableComponent {
|
|
|
4418
4426
|
else if (this.SearchView() && typeof this.SearchView().itemsperpageoverride != 'undefined' && !(this.SearchView() instanceof AppSearch))
|
|
4419
4427
|
this.SearchView().__proto__ = new AppSearch();
|
|
4420
4428
|
// -------------------------------------------------------------------------------------------------------------------------
|
|
4429
|
+
let isp = this.ItemSourceProperty();
|
|
4421
4430
|
if (this.View && this.View instanceof AppSearch) {
|
|
4422
4431
|
// Se cambia l'oggetto intero significa che ho rimandato la ricerca
|
|
4423
4432
|
this.setMode('view');
|
|
4424
4433
|
let firstItemGroupOrNoGrouping = (this.View.requestedgroups?.length || 0) == 0;
|
|
4425
4434
|
// Queste sono item source custom. Le valorizzo al default se non esistono
|
|
4426
|
-
if (
|
|
4427
|
-
this.View[
|
|
4435
|
+
if (isp && !this.View[isp])
|
|
4436
|
+
this.View[isp] = [];
|
|
4428
4437
|
// Se vengo da una ricerca interna mantengo lo stato di selezione precedente (quindi su cambio pagina, cambio ipp, ecc...)
|
|
4429
4438
|
// se invece l'utente ha fatto una ricerca lui (quindi cambiando filtri), secco le info di selezione
|
|
4430
4439
|
if (!this.View.selection || (!this.View.internalsearchrequest && firstItemGroupOrNoGrouping) || !this.UseSelectionCache())
|
|
@@ -4483,7 +4492,7 @@ class EsTableComponent {
|
|
|
4483
4492
|
}
|
|
4484
4493
|
}
|
|
4485
4494
|
if (firstItemGroupOrNoGrouping)
|
|
4486
|
-
this.arrayPulsanti.set(this.utilities_H.getPagesArray(6, this.View.page, this.View.pages || 1, (
|
|
4495
|
+
this.arrayPulsanti.set(this.utilities_H.getPagesArray(6, this.View.page, this.View.pages || 1, (isp ? this.View[isp] : this.View.items).length, this.View.itemsperpageoverride));
|
|
4487
4496
|
}
|
|
4488
4497
|
else if (this.View && (this.View.length != null && this.View.length != undefined)) {
|
|
4489
4498
|
this.setMode('array');
|
|
@@ -4533,12 +4542,14 @@ class EsTableComponent {
|
|
|
4533
4542
|
}
|
|
4534
4543
|
this.finalizeContext();
|
|
4535
4544
|
this.postBoundSourceCalculation();
|
|
4536
|
-
if (
|
|
4545
|
+
if (!this.EsTableHandledSearch() || !this.View)
|
|
4546
|
+
return;
|
|
4547
|
+
if (!this.View.selfsearch && !this.View.firstsearch) {
|
|
4537
4548
|
this.View.selfsearch = true;
|
|
4538
4549
|
this.changed(true);
|
|
4539
4550
|
this.onSearchRequest.emit(false);
|
|
4540
4551
|
}
|
|
4541
|
-
else if (this.View
|
|
4552
|
+
else if (this.View.selfsearch) {
|
|
4542
4553
|
this.View.selfsearch = false;
|
|
4543
4554
|
this.changed();
|
|
4544
4555
|
}
|
|
@@ -4577,22 +4588,23 @@ class EsTableComponent {
|
|
|
4577
4588
|
this.PagerOptions.ShowButtons = !this.HidePagingButtons();
|
|
4578
4589
|
this.PagerOptions.ShowPaging = !this.HidePaging();
|
|
4579
4590
|
this.PagerOptions.UsesView = true;
|
|
4580
|
-
|
|
4591
|
+
let sv = this.SearchView();
|
|
4592
|
+
if (this.arrayMode() && this.UseArrayModePaging() && !sv) {
|
|
4581
4593
|
this.PagerOptions.PagerCount = this.View.length || 0;
|
|
4582
4594
|
this.PagerOptions.ShowButtons = this.PagerOptions.ShowButtons && this.View.length > 10;
|
|
4583
4595
|
this.PagerOptions.View = this.View;
|
|
4584
4596
|
this.PagerOptions.UsesView = false;
|
|
4585
4597
|
this.PagerOptions.ShowPagingOptions = this.PagerOptions.ShowButtons;
|
|
4586
4598
|
}
|
|
4587
|
-
else if (this.arrayMode() && (!this.UseArrayModePaging() ||
|
|
4588
|
-
if (
|
|
4589
|
-
this.PagerOptions.View =
|
|
4590
|
-
this.PagerOptions.PagerCount =
|
|
4599
|
+
else if (this.arrayMode() && (!this.UseArrayModePaging() || sv)) {
|
|
4600
|
+
if (sv) {
|
|
4601
|
+
this.PagerOptions.View = sv;
|
|
4602
|
+
this.PagerOptions.PagerCount = sv.objectcount || 0;
|
|
4591
4603
|
}
|
|
4592
4604
|
else
|
|
4593
4605
|
this.PagerOptions.PagerCount = this.View.length || 0;
|
|
4594
|
-
this.PagerOptions.ShowButtons = this.PagerOptions.ShowButtons && (this.View.length > 10 || (
|
|
4595
|
-
this.PagerOptions.ShowCount = this.PagerOptions.ShowCount || (this.View && this.View.length) || (
|
|
4606
|
+
this.PagerOptions.ShowButtons = this.PagerOptions.ShowButtons && (this.View.length > 10 || (sv?.objectcount || 0) > 10);
|
|
4607
|
+
this.PagerOptions.ShowCount = this.PagerOptions.ShowCount || (this.View && this.View.length) || (sv && sv.objectcount && sv.objectcount != -1);
|
|
4596
4608
|
this.PagerOptions.ShowPaging = this.PagerOptions.ShowPaging && (this.PagerOptions.ShowButtons || this.PagerOptions.ShowCount);
|
|
4597
4609
|
this.PagerOptions.ShowPagingOptions = this.PagerOptions.ShowButtons;
|
|
4598
4610
|
}
|
|
@@ -4621,6 +4633,11 @@ class EsTableComponent {
|
|
|
4621
4633
|
/** Per poter distinguere le chiamate a questo metodo: Dopo il setTimeout se uso gli EsTd/EsTh vecchi, senza il setTimeout se uso le nuove direttive */
|
|
4622
4634
|
async internalPostBoundSource() {
|
|
4623
4635
|
let View = this.View;
|
|
4636
|
+
let viewMode = this.viewMode();
|
|
4637
|
+
let arrayMode = this.arrayMode();
|
|
4638
|
+
let isp = this.ItemSourceProperty();
|
|
4639
|
+
let customCells = this.UseCustomCells();
|
|
4640
|
+
let dynColDefs = this.DynamicRowColumnsDefinition();
|
|
4624
4641
|
let thsTdsProviders = [...(this.EsThTdProvider ? [this.EsThTdProvider] : []), ...this.ThTdProvider];
|
|
4625
4642
|
if (thsTdsProviders?.length > 0)
|
|
4626
4643
|
await forkJoin(thsTdsProviders.map(t => t.LoadedSignal)).toPromise();
|
|
@@ -4631,14 +4648,14 @@ class EsTableComponent {
|
|
|
4631
4648
|
// Questo dev'essere per forza lanciato dopo **bindDisplayToLoadedItemsOrGroups** dato che è lì che alcune cose vengono valorizzate
|
|
4632
4649
|
this.setupPagingInformations();
|
|
4633
4650
|
// Molte cose sono ovviamente disponibili solo in modalità View
|
|
4634
|
-
if ((
|
|
4635
|
-
let view =
|
|
4636
|
-
let itemsAndGroups =
|
|
4637
|
-
let si =
|
|
4651
|
+
if ((viewMode || arrayMode) && customCells) {
|
|
4652
|
+
let view = viewMode ? View : null;
|
|
4653
|
+
let itemsAndGroups = viewMode ? [...((isp ? view[isp] : view.items) || []), ...(view.groups || [])] : View;
|
|
4654
|
+
let si = viewMode ? view.selection : this.arraymodeSelection;
|
|
4638
4655
|
// N.B: Rispettare l'ordine di queste 3 macrocategorie è VITALE
|
|
4639
4656
|
// ************************************* Sistemazioni di TH, TD, e visibilità varie *************************************
|
|
4640
4657
|
// Se ho definizioni dinamiche, prima di qualsiasi altra cosa devo trasformarle in th/td in modo che poi il codice qui sotto faccia le sue magie
|
|
4641
|
-
if ((
|
|
4658
|
+
if ((dynColDefs?.length || 0) > 0) {
|
|
4642
4659
|
this.logger.log("Generating ths and tds from Dynamic definition");
|
|
4643
4660
|
let ret = this.dynamicMode_H.emitThsAndTdsBasedOnDynamicDefinition();
|
|
4644
4661
|
this.EsThs = ret.ths;
|
|
@@ -4664,7 +4681,7 @@ class EsTableComponent {
|
|
|
4664
4681
|
// Prepassaggio per tirare fuori tutte le info utili sugli headers in modo da non ricacolarseli sempre dopo
|
|
4665
4682
|
let hI = this.columnMetadata_H.evaluateHeadersGroupingInfos(this.EsThs);
|
|
4666
4683
|
// Valuta lo stato iniziale di selezione a range
|
|
4667
|
-
this.selection_H.evaluateSingleCellSelection(itemsAndGroups, hI.leafs,
|
|
4684
|
+
this.selection_H.evaluateSingleCellSelection(itemsAndGroups, hI.leafs, dynColDefs);
|
|
4668
4685
|
if (this.arrayMode()) // In modalità array non ho un backend...
|
|
4669
4686
|
this.rowGrouping_H.arrayModeReviewGroupings(hI.leafs); // ... i raggruppamenti li devo fare lato client
|
|
4670
4687
|
this.columnMetadata_H.reviewColumnsList(hI.leafs); // Aggiorna la lista delle colonne da mostrare nella dialog per ordinamento ecc
|
|
@@ -4688,10 +4705,10 @@ class EsTableComponent {
|
|
|
4688
4705
|
this.ResearchNeeded = false;
|
|
4689
4706
|
}
|
|
4690
4707
|
}
|
|
4691
|
-
else if ((
|
|
4708
|
+
else if ((viewMode || arrayMode) && !customCells) {
|
|
4692
4709
|
// Riallineo le info di selezione degli elementi della View
|
|
4693
|
-
let items =
|
|
4694
|
-
let si =
|
|
4710
|
+
let items = viewMode ? (isp ? View[isp] : View.items) : View;
|
|
4711
|
+
let si = viewMode ? View.selection : this.arraymodeSelection;
|
|
4695
4712
|
this.selection_H.evaluateSelection(items, si);
|
|
4696
4713
|
}
|
|
4697
4714
|
// Per essere sicuro che dopo un bind di oggetti la es-table aggiorni la grafica
|
|
@@ -4845,11 +4862,12 @@ class EsTableComponent {
|
|
|
4845
4862
|
columnsCache[col.id] = col;
|
|
4846
4863
|
}
|
|
4847
4864
|
this.TMPRowTDs = {};
|
|
4865
|
+
let bs = this.boundSource();
|
|
4866
|
+
let defaultAlignment = this.DefaultAlignment();
|
|
4848
4867
|
// Variabile d'appoggio per permettermi di inserire tutte le colonne "Fixed" davanti
|
|
4849
4868
|
let contextFixeds = {};
|
|
4850
4869
|
for (let i = 0; i < tds.length; i++) {
|
|
4851
4870
|
let td = tds[i];
|
|
4852
|
-
let bs = this.boundSource();
|
|
4853
4871
|
for (let i = 0; i < bs.length; i++) {
|
|
4854
4872
|
let item = bs[i];
|
|
4855
4873
|
let ctx = item._hash;
|
|
@@ -4882,7 +4900,7 @@ class EsTableComponent {
|
|
|
4882
4900
|
Multi: td._multi,
|
|
4883
4901
|
MultiProp: td._multi ? td.td.split('_')[0] : null,
|
|
4884
4902
|
MultiIndex: td._multi ? td.td.split('_')[1] : null,
|
|
4885
|
-
Alignment: (td.tdAlignment || th.thAlignment ||
|
|
4903
|
+
Alignment: (td.tdAlignment || th.thAlignment || defaultAlignment).toLowerCase(),
|
|
4886
4904
|
Format: td.tdFormat || th.thFormat,
|
|
4887
4905
|
PropertyName: th.thProperty,
|
|
4888
4906
|
PropertyType: th.thType,
|
|
@@ -5070,10 +5088,10 @@ class EsTableComponent {
|
|
|
5070
5088
|
* @param {boolean} forcedVal Valore forzato di check da assegnare agli oggetti
|
|
5071
5089
|
*/
|
|
5072
5090
|
globalCheckChanged(forcedVal = null) {
|
|
5073
|
-
debugger;
|
|
5074
5091
|
this.selection_H.clearSelectionStatusExcluding(null);
|
|
5092
|
+
let bs = this.boundSource();
|
|
5075
5093
|
// Prendo tutti gli elementi presenti in questa vista. Se ho gruppi prendo solo i gruppi a livello 0, altrimenti prendo tutti gli oggetti per selezionarli
|
|
5076
|
-
let items =
|
|
5094
|
+
let items = bs.find(t => t._group) ? bs.filter(t => t._group && !t._parent) : bs;
|
|
5077
5095
|
var itemSelection = this.selection_H.handleItemsSelection(items, forcedVal, this.globalCheck());
|
|
5078
5096
|
this.changed();
|
|
5079
5097
|
this.onSelectionChanged.emit(itemSelection);
|
|
@@ -5313,8 +5331,10 @@ class EsTableComponent {
|
|
|
5313
5331
|
* @param {any} item Item che rappresenta il contesto su cui è stato effettuato un click
|
|
5314
5332
|
*/
|
|
5315
5333
|
dbClickEditOrSingleClickRowSelection($event, rowItem, item) {
|
|
5334
|
+
let rowItm = rowItem();
|
|
5335
|
+
let selection = this.Selection();
|
|
5316
5336
|
// Prima cosa da fare è controllare se ci sono dei range lasciati da operazioni precedenti (se applicabile) e ripulirli
|
|
5317
|
-
if (this.rangeSelected && !$event.ctrlKey &&
|
|
5337
|
+
if (this.rangeSelected && !$event.ctrlKey && selection) {
|
|
5318
5338
|
this.logger.log("clearing previously selected range");
|
|
5319
5339
|
this.selection_H.clearSelectionStatusExcluding(null);
|
|
5320
5340
|
this.rangeSelected = false;
|
|
@@ -5324,11 +5344,11 @@ class EsTableComponent {
|
|
|
5324
5344
|
if (this.Editable()) {
|
|
5325
5345
|
// Secondo click: se il timer non è scaduto è un doppio click ed eseguo il resto
|
|
5326
5346
|
if (this.cellDbClickTimer) {
|
|
5327
|
-
this.logger.log("handling doubleclick on editable cell: " + (
|
|
5328
|
-
if (
|
|
5347
|
+
this.logger.log("handling doubleclick on editable cell: " + (rowItm.PropertyName ? 'edit mode for property ' + rowItm.PropertyName : 'no property set, fallback to simple click'));
|
|
5348
|
+
if (rowItm.PropertyName)
|
|
5329
5349
|
this.setupUserEdit(rowItem, item);
|
|
5330
5350
|
else
|
|
5331
|
-
this.handleRowClick($event, item,
|
|
5351
|
+
this.handleRowClick($event, item, selection, true);
|
|
5332
5352
|
this.clearCellClickTimer();
|
|
5333
5353
|
return;
|
|
5334
5354
|
}
|
|
@@ -5337,7 +5357,7 @@ class EsTableComponent {
|
|
|
5337
5357
|
this.clearCellClickTimer();
|
|
5338
5358
|
if (!this.RangeSelection() || !this.mouseIsDown) {
|
|
5339
5359
|
this.logger.log("time's up for second click, handling single click");
|
|
5340
|
-
this.handleRowClick($event, item,
|
|
5360
|
+
this.handleRowClick($event, item, selection, true);
|
|
5341
5361
|
}
|
|
5342
5362
|
}, this.doubleClickBufferMs);
|
|
5343
5363
|
}
|
|
@@ -5349,11 +5369,11 @@ class EsTableComponent {
|
|
|
5349
5369
|
if ($event.ctrlKey)
|
|
5350
5370
|
return;
|
|
5351
5371
|
// Tutti i click su una cella già in edit non devono effettuare la selezione della riga
|
|
5352
|
-
if (
|
|
5372
|
+
if (rowItm._editing)
|
|
5353
5373
|
return;
|
|
5354
5374
|
// Per evitare di rallentare a prescindere
|
|
5355
5375
|
if (!this.Editable()) {
|
|
5356
|
-
this.handleRowClick($event, item,
|
|
5376
|
+
this.handleRowClick($event, item, selection, true);
|
|
5357
5377
|
return;
|
|
5358
5378
|
}
|
|
5359
5379
|
}
|
|
@@ -5457,10 +5477,11 @@ class EsTableComponent {
|
|
|
5457
5477
|
*/
|
|
5458
5478
|
setupUserEdit(rowItem, item) {
|
|
5459
5479
|
this.selection_H.clearSelectionStatusExcluding(null);
|
|
5460
|
-
|
|
5480
|
+
let rowItm = rowItem();
|
|
5481
|
+
if (this.Editable() && rowItm.PropertyName) {
|
|
5461
5482
|
let dynMode = (this.DynamicRowColumnsDefinition()?.length || 0) > 0;
|
|
5462
|
-
let newValues = { _editing: true, old_value: dynMode ? item.properties[
|
|
5463
|
-
rowItem.set(Object.assign(
|
|
5483
|
+
let newValues = { _editing: true, old_value: dynMode ? item.properties[rowItm.PropertyName] : item[rowItm.PropertyName] };
|
|
5484
|
+
rowItem.set(Object.assign(rowItm, newValues));
|
|
5464
5485
|
}
|
|
5465
5486
|
this.cdr.detectChanges();
|
|
5466
5487
|
requestAnimationFrame(() => { this.FocusSubject.next(); });
|
|
@@ -5477,14 +5498,15 @@ class EsTableComponent {
|
|
|
5477
5498
|
requestAnimationFrame(() => {
|
|
5478
5499
|
let dynMode = (this.DynamicRowColumnsDefinition()?.length || 0) > 0;
|
|
5479
5500
|
let newValues = { _editing: false };
|
|
5480
|
-
|
|
5481
|
-
|
|
5482
|
-
let
|
|
5501
|
+
let newRowItem = Object.assign(rowItem(), newValues);
|
|
5502
|
+
rowItem.set(newRowItem);
|
|
5503
|
+
let old = newRowItem.old_value;
|
|
5504
|
+
let niu = dynMode ? item.properties[newRowItem.PropertyName] : item[newRowItem.PropertyName];
|
|
5483
5505
|
let olddate = this.dateExts.getDateConvertion(old);
|
|
5484
5506
|
let niudate = this.dateExts.getDateConvertion(niu);
|
|
5485
5507
|
if ((olddate && niudate && olddate.isSame && olddate.isSame(niudate)) || old === niu)
|
|
5486
5508
|
return;
|
|
5487
|
-
this.onModelChange.emit([new EsTableModelChange(item,
|
|
5509
|
+
this.onModelChange.emit([new EsTableModelChange(item, newRowItem.ID, newRowItem.PropertyName, old, niu)]);
|
|
5488
5510
|
this.selectionStatus[item._ordinal][columnIndex].val_setter(niu);
|
|
5489
5511
|
});
|
|
5490
5512
|
}
|