@memberjunction/ng-join-grid 2.48.0 → 2.49.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.
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { Component, Input } from '@angular/core';
11
2
  import { EntityFieldTSType, LogError, Metadata, RunView } from '@memberjunction/core';
12
3
  import { MJEventType, MJGlobal } from '@memberjunction/global';
@@ -243,14 +234,27 @@ function JoinGridComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
243
234
  i0.ɵɵrepeater(ctx_r1._GridData);
244
235
  } }
245
236
  export class JoinGridCell {
237
+ index;
238
+ RowForeignKeyValue;
239
+ ColumnForeignKeyValue;
240
+ /**
241
+ * Used when the ColumnsMode is set to Entity. This is the BaseEntity object that represents the data in the JoinEntity that links the Row and Column entities together.
242
+ */
243
+ data;
244
+ /**
245
+ * Used when the ColumnsMode is set to Fields. This is an array of values from the JoinEntity that are displayed as columns in the grid.
246
+ */
247
+ value;
246
248
  }
247
249
  export class JoinGridRow {
250
+ FirstColValue;
251
+ JoinExists = false;
252
+ RowForeignKeyValue;
253
+ ColumnData = [];
248
254
  GetColumnValue(colIndex) {
249
255
  return this.ColumnData && this.ColumnData.length > colIndex ? this.ColumnData[colIndex].value : undefined;
250
256
  }
251
257
  constructor(data) {
252
- this.JoinExists = false;
253
- this.ColumnData = [];
254
258
  this.FirstColValue = data.FirstColValue;
255
259
  this.JoinExists = data.JoinExists;
256
260
  this.RowForeignKeyValue = data.RowForeignKeyValue;
@@ -258,166 +262,245 @@ export class JoinGridRow {
258
262
  }
259
263
  }
260
264
  export class JoinGridComponent {
265
+ cdr;
266
+ elementRef;
267
+ /**
268
+ * Required: the name of the entity that will be used for displaying data for rows. This means that each row in the RowsEntity will be shown as a row in the grid
269
+ * where the RowsEntityDisplayField will be used in the first column of the grid.
270
+ */
271
+ RowsEntityName;
272
+ /**
273
+ * Optional: if provided, this value will be shown in the top-left corner of the grid instead of the RowsEntityName
274
+ */
275
+ RowsEntityDisplayName;
261
276
  get RowsEntityDisplayNameOrName() {
262
277
  return this.RowsEntityDisplayName ? this.RowsEntityDisplayName : this.RowsEntityName;
263
278
  }
279
+ /**
280
+ * Required: the field name in the RowsEntityName that will be shown in the first column in the grid
281
+ */
282
+ RowsEntityDisplayField;
283
+ /**
284
+ * Determines how the row data will be fetched.
285
+ * * When set to FullEntity, all rows in the specified RowEntityName will be used.
286
+ * * When set to ViewName, the RowsEntityViewName will be used to fetch the rows from a defined User View
287
+ * * When set to Array, the RowsEntityData array will be used to fetch the rows
288
+ */
289
+ RowsEntityDataSource = 'FullEntity';
290
+ /**
291
+ * For RowsEntityDataSource = FullEntity or ViewName, this is the extra filter to apply to the rows entity when fetching data. This is optional.
292
+ */
293
+ RowsExtraFilter;
294
+ /**
295
+ * For RowsEntityDataSource = FullEntity or ViewName, this is the order by clause to apply to the rows entity when fetching data. This is optional.
296
+ */
297
+ RowsOrderBy;
298
+ /**
299
+ * Used when RowsEntityDataSource = ViewName, this will be the name of the User View for the specified RowsEntity to run to get data
300
+ */
301
+ RowsEntityViewName;
302
+ /**
303
+ * Required: provide an array of BaseEntity objects that will be used to display the rows in the grid.
304
+ */
305
+ RowsEntityArray;
306
+ /**
307
+ * When set to Entity, the ColumnsEntity and related settings will be used to build the columns in the grid. When set to Fields, fields from the JoinEntity will be used to build the columns in the grid.
308
+ */
309
+ ColumnsMode = 'Entity';
310
+ /**
311
+ * Required when ColumnsMode is set to Entity: the name of the entity that will be used for displaying data for columns. This means that each row in the ColumnsEntity will be shown as a column in the grid
312
+ */
313
+ ColumnsEntityName;
314
+ /**
315
+ * Required when ColumnsMode is set to Entity: the field name in the ColumnsEntityName that will be shown as columns in the grid
316
+ */
317
+ ColumnsEntityDisplayField;
318
+ /**
319
+ * Determines how the column data will be fetched.
320
+ * * When set to FullEntity, all columns in the specified ColumnsEntityName will be used.
321
+ * * When set to ViewName, the ColumnsEntityViewName will be used to fetch the columns from a defined User View
322
+ * * When set to Array, the ColumnsEntityArray array will be used to fetch the columns
323
+ */
324
+ ColumnsEntityDataSource = 'FullEntity';
325
+ /**
326
+ * For ColumnsEntityDataSource = FullEntity or ViewName, this is the extra filter to apply to the columns entity when fetching data. This is optional.
327
+ */
328
+ ColumnsExtraFilter;
329
+ /**
330
+ * For ColumnsEntityDataSource = FullEntity or ViewName, this is the order by clause to apply to the columns entity when fetching data. This is optional.
331
+ */
332
+ ColumnsOrderBy;
333
+ /**
334
+ * Used when ColumnsEntityDataSource = ViewName, this will be the name of the User View for the specified ColumnsEntity to run to get data
335
+ */
336
+ ColumnsEntityViewName;
337
+ /**
338
+ * Required when ColumnsMode is set to Entity: provide an array of BaseEntity objects that will be used to display the columns in the grid.
339
+ */
340
+ ColumnsEntityArray;
341
+ /**
342
+ * The name of the entity that will be used for joining the RowsEntity and ColumnsEntity. Or, in the case of ColumnsMode = Fields, there is no true "joining" happening but we are joining the data from the RowsEntity and JoinEntity together.
343
+ */
344
+ JoinEntityName;
345
+ /**
346
+ * The name of the foreign key field in the JoinEntity that will be used to link to the Primary Key field in the RowsEntity
347
+ */
348
+ JoinEntityRowForeignKey;
349
+ /**
350
+ * The name of the foreign key field in the JoinEntity that will be used to link to the Primary Key field in the ColumnsEntity
351
+ */
352
+ JoinEntityColumnForeignKey;
353
+ /**
354
+ * The names of the columns from the JoinEntity to display as columns in the grid. This is only used when ColumnsMode is set to Fields.
355
+ */
356
+ JoinEntityDisplayColumns;
357
+ /**
358
+ * When specified, this filter is used to further constrain the data in the JoinEntity. This is optional but is generally
359
+ * most useful when ColumnsMode is set to Fields and you want to filter the data in the JoinEntity based on some criteria.
360
+ */
361
+ JoinEntityExtraFilter;
362
+ /**
363
+ * ONLY USED WHEN ColumnsMode=Entity
364
+ * When this property is set to JoinRecordExists the grid will operate as follows:
365
+ * * When a user checks the checkbox in the grid, a record will be created in the JoinEntity with the Row and Column foreign keys.
366
+ * * When a user unchecks the checkbox in the grid, the record in the JoinEntity will be deleted.
367
+ * In comparison, when the CheckBoxValueMode is set to ColumnValue, the grid will operate as follows:
368
+ * * When a user checks the checkbox in the grid, a value in the JoinEntity will be set to true in the CheckBoxValueField field.
369
+ * * When a user unchecks the checkbox in the grid, the value in the JoinEntity will be set to false in the CheckBoxValueField field.
370
+ */
371
+ CheckBoxValueMode = 'RecordExists';
372
+ /**
373
+ * Required when CheckBoxValueMode is set to ColumnValue: the name of the field in the JoinEntity that will be used to store the value of the checkbox.
374
+ */
375
+ CheckBoxValueField;
376
+ /**
377
+ * When the CheckBoxValueMode is set to RecordExists this means the grid will be adding and removing records from the JoinEntity. In some cases, entities require additional values
378
+ * beyond the foreign keys that are automatically set, in those cases, use this property to provide additional default values for the new records that are created.
379
+ */
380
+ NewRecordDefaultValues;
381
+ /**
382
+ * When set to true, the Save button is shown
383
+ */
384
+ ShowSaveButton = true;
385
+ /**
386
+ * When set to true, the Cancel button is shown
387
+ */
388
+ ShowCancelButton = true;
389
+ /**
390
+ * Change the value of this property to true or false when you want to enter or exit edit mode. Only use this when the grid
391
+ * is embedded in another form and you are not showing the built-in save/cancel buttons
392
+ */
393
+ EditMode = 'None';
264
394
  constructor(cdr, elementRef) {
265
395
  this.cdr = cdr;
266
396
  this.elementRef = elementRef;
267
- /**
268
- * Determines how the row data will be fetched.
269
- * * When set to FullEntity, all rows in the specified RowEntityName will be used.
270
- * * When set to ViewName, the RowsEntityViewName will be used to fetch the rows from a defined User View
271
- * * When set to Array, the RowsEntityData array will be used to fetch the rows
272
- */
273
- this.RowsEntityDataSource = 'FullEntity';
274
- /**
275
- * When set to Entity, the ColumnsEntity and related settings will be used to build the columns in the grid. When set to Fields, fields from the JoinEntity will be used to build the columns in the grid.
276
- */
277
- this.ColumnsMode = 'Entity';
278
- /**
279
- * Determines how the column data will be fetched.
280
- * * When set to FullEntity, all columns in the specified ColumnsEntityName will be used.
281
- * * When set to ViewName, the ColumnsEntityViewName will be used to fetch the columns from a defined User View
282
- * * When set to Array, the ColumnsEntityArray array will be used to fetch the columns
283
- */
284
- this.ColumnsEntityDataSource = 'FullEntity';
285
- /**
286
- * ONLY USED WHEN ColumnsMode=Entity
287
- * When this property is set to JoinRecordExists the grid will operate as follows:
288
- * * When a user checks the checkbox in the grid, a record will be created in the JoinEntity with the Row and Column foreign keys.
289
- * * When a user unchecks the checkbox in the grid, the record in the JoinEntity will be deleted.
290
- * In comparison, when the CheckBoxValueMode is set to ColumnValue, the grid will operate as follows:
291
- * * When a user checks the checkbox in the grid, a value in the JoinEntity will be set to true in the CheckBoxValueField field.
292
- * * When a user unchecks the checkbox in the grid, the value in the JoinEntity will be set to false in the CheckBoxValueField field.
293
- */
294
- this.CheckBoxValueMode = 'RecordExists';
295
- /**
296
- * When set to true, the Save button is shown
297
- */
298
- this.ShowSaveButton = true;
299
- /**
300
- * When set to true, the Cancel button is shown
301
- */
302
- this.ShowCancelButton = true;
303
- /**
304
- * Change the value of this property to true or false when you want to enter or exit edit mode. Only use this when the grid
305
- * is embedded in another form and you are not showing the built-in save/cancel buttons
306
- */
307
- this.EditMode = 'None';
308
- /*The below members are public because the Angular template needs access to them, but by naming convention we prefix with an _ so that it is clear they are not to be used outside of the component */
309
- this._GridData = [];
310
- this._IsLoading = false;
311
- /* protected internal members */
312
- this._rowsEntityInfo = null;
313
- this._columnsEntityInfo = null;
314
- this._columnsEntityData = undefined;
315
- this._rowsEntityData = undefined;
316
- this._joinEntityData = undefined;
317
- this._pendingDeletes = [];
318
- this._pendingInserts = [];
319
397
  }
398
+ /*The below members are public because the Angular template needs access to them, but by naming convention we prefix with an _ so that it is clear they are not to be used outside of the component */
399
+ _GridData = [];
400
+ _IsLoading = false;
401
+ /* protected internal members */
402
+ _rowsEntityInfo = null;
403
+ _columnsEntityInfo = null;
404
+ _columnsEntityData = undefined;
405
+ _rowsEntityData = undefined;
406
+ _joinEntityData = undefined;
320
407
  /**
321
408
  * Saves all of the changes made in the grid. This includes adding new records, updating existing records, and deleting records.
322
409
  */
323
- Save() {
324
- return __awaiter(this, void 0, void 0, function* () {
325
- // for each pending delete, we need to delete the record
326
- // for each pending insert, we need to save the record
327
- // do it all in one transaction
328
- const md = new Metadata();
329
- const tg = yield md.CreateTransactionGroup();
330
- if (this.ColumnsMode === 'Entity') {
331
- let validated = true;
332
- const valErrors = [];
333
- for (const obj of this._pendingDeletes) {
334
- obj.TransactionGroup = tg;
335
- yield obj.Delete();
336
- }
337
- for (const obj of this._pendingInserts) {
338
- obj.TransactionGroup = tg;
339
- const valResult = obj.Validate();
340
- validated = validated && valResult.Success;
341
- valErrors.push(valResult.Errors);
342
- yield obj.Save();
343
- }
344
- if (validated) {
345
- if (!(yield tg.Submit())) {
346
- alert('Error saving changes');
347
- return false;
348
- }
349
- else {
350
- yield this.Refresh(); // refresh afterwards
351
- return true;
352
- }
410
+ async Save() {
411
+ // for each pending delete, we need to delete the record
412
+ // for each pending insert, we need to save the record
413
+ // do it all in one transaction
414
+ const md = new Metadata();
415
+ const tg = await md.CreateTransactionGroup();
416
+ if (this.ColumnsMode === 'Entity') {
417
+ let validated = true;
418
+ const valErrors = [];
419
+ for (const obj of this._pendingDeletes) {
420
+ obj.TransactionGroup = tg;
421
+ await obj.Delete();
422
+ }
423
+ for (const obj of this._pendingInserts) {
424
+ obj.TransactionGroup = tg;
425
+ const valResult = obj.Validate();
426
+ validated = validated && valResult.Success;
427
+ valErrors.push(valResult.Errors);
428
+ await obj.Save();
429
+ }
430
+ if (validated) {
431
+ if (!await tg.Submit()) {
432
+ alert('Error saving changes');
433
+ return false;
353
434
  }
354
435
  else {
355
- alert('Error validating changes, details in console');
356
- console.log(valErrors);
357
- return false;
436
+ await this.Refresh(); // refresh afterwards
437
+ return true;
358
438
  }
359
439
  }
360
440
  else {
361
- // in fields mode we use the _joinEntityData array to save the changes
362
- let validated = true;
363
- const valErrors = [];
364
- if (this._joinEntityData) {
365
- for (const obj of this._joinEntityData) {
366
- if (obj.Dirty) {
367
- obj.TransactionGroup = tg;
368
- const valResult = obj.Validate();
369
- validated = validated && valResult.Success;
370
- valErrors.push(valResult.Errors);
371
- yield obj.Save();
372
- }
441
+ alert('Error validating changes, details in console');
442
+ console.log(valErrors);
443
+ return false;
444
+ }
445
+ }
446
+ else {
447
+ // in fields mode we use the _joinEntityData array to save the changes
448
+ let validated = true;
449
+ const valErrors = [];
450
+ if (this._joinEntityData) {
451
+ for (const obj of this._joinEntityData) {
452
+ if (obj.Dirty) {
453
+ obj.TransactionGroup = tg;
454
+ const valResult = obj.Validate();
455
+ validated = validated && valResult.Success;
456
+ valErrors.push(valResult.Errors);
457
+ await obj.Save();
373
458
  }
374
459
  }
375
- if (validated) {
376
- if (!(yield tg.Submit())) {
377
- alert('Error saving changes');
378
- return false;
379
- }
380
- else {
381
- yield this.Refresh(); // refresh afterwards
382
- return true;
383
- }
460
+ }
461
+ if (validated) {
462
+ if (!await tg.Submit()) {
463
+ alert('Error saving changes');
464
+ return false;
384
465
  }
385
466
  else {
386
- alert('Error validating changes, details in console');
387
- console.log(valErrors);
388
- return false;
467
+ await this.Refresh(); // refresh afterwards
468
+ return true;
389
469
  }
390
470
  }
391
- });
471
+ else {
472
+ alert('Error validating changes, details in console');
473
+ console.log(valErrors);
474
+ return false;
475
+ }
476
+ }
392
477
  }
393
478
  /**
394
479
  * Cancels any changes and reverts to the prior state of the grid that reflects the last saved state.
395
480
  */
396
- CancelEdit() {
397
- return __awaiter(this, void 0, void 0, function* () {
398
- // go through all of the pending deletes and remove them from the array
399
- // and go through all of the pending inserts and remove them from the array
400
- // before removing stuff from arrays we need to go back through all of hte grid cells and restore to original data
401
- this._GridData.forEach(row => {
402
- row.ColumnData.forEach(cell => {
403
- // for each cell, if we have a data object, look for a match in the pending inserts array, that means it is a NEW record
404
- if (cell.data) {
405
- const match = this._pendingInserts.find(obj => obj.Get(this.JoinEntityColumnForeignKey) === cell.ColumnForeignKeyValue && obj.Get(this.JoinEntityRowForeignKey) === row.RowForeignKeyValue);
406
- if (match) {
407
- // means that the current cell is a new record, so we need to remove it
408
- cell.data = undefined;
409
- this._pendingInserts.splice(this._pendingInserts.indexOf(match), 1);
410
- }
481
+ async CancelEdit() {
482
+ // go through all of the pending deletes and remove them from the array
483
+ // and go through all of the pending inserts and remove them from the array
484
+ // before removing stuff from arrays we need to go back through all of hte grid cells and restore to original data
485
+ this._GridData.forEach(row => {
486
+ row.ColumnData.forEach(cell => {
487
+ // for each cell, if we have a data object, look for a match in the pending inserts array, that means it is a NEW record
488
+ if (cell.data) {
489
+ const match = this._pendingInserts.find(obj => obj.Get(this.JoinEntityColumnForeignKey) === cell.ColumnForeignKeyValue && obj.Get(this.JoinEntityRowForeignKey) === row.RowForeignKeyValue);
490
+ if (match) {
491
+ // means that the current cell is a new record, so we need to remove it
492
+ cell.data = undefined;
493
+ this._pendingInserts.splice(this._pendingInserts.indexOf(match), 1);
411
494
  }
412
- else {
413
- // we need to check if a match exists in the pending deletes array, if so, we need to restore the data
414
- const match = this._pendingDeletes.find(obj => obj.Get(this.JoinEntityColumnForeignKey) === cell.ColumnForeignKeyValue && obj.Get(this.JoinEntityRowForeignKey) === row.RowForeignKeyValue);
415
- if (match) {
416
- cell.data = match;
417
- this._pendingDeletes.splice(this._pendingDeletes.indexOf(match), 1);
418
- }
495
+ }
496
+ else {
497
+ // we need to check if a match exists in the pending deletes array, if so, we need to restore the data
498
+ const match = this._pendingDeletes.find(obj => obj.Get(this.JoinEntityColumnForeignKey) === cell.ColumnForeignKeyValue && obj.Get(this.JoinEntityRowForeignKey) === row.RowForeignKeyValue);
499
+ if (match) {
500
+ cell.data = match;
501
+ this._pendingDeletes.splice(this._pendingDeletes.indexOf(match), 1);
419
502
  }
420
- });
503
+ }
421
504
  });
422
505
  });
423
506
  }
@@ -445,279 +528,256 @@ export class JoinGridComponent {
445
528
  /**
446
529
  * This method is called automatically when the component is first loaded. Call the method anytime if you want to refresh the grid.
447
530
  */
448
- Refresh() {
449
- return __awaiter(this, void 0, void 0, function* () {
450
- this._IsLoading = true; // turn on the loading spinner
451
- this.cdr.detectChanges(); // let angular know we have changes
452
- this._pendingDeletes = [];
453
- this._pendingInserts = [];
454
- this._joinEntityData = undefined;
455
- // we are provided an array of Column and Row objects. We need to get the rows from the JoinEntity that link them up.
456
- const md = new Metadata();
457
- if (this.ColumnsMode === 'Entity') {
458
- this._columnsEntityInfo = md.EntityByName(this.ColumnsEntityName);
459
- if (!this._columnsEntityInfo)
460
- throw new Error('Invalid entity name provided for columns entity.');
461
- }
462
- this._rowsEntityInfo = md.EntityByName(this.RowsEntityName);
463
- if (!this._rowsEntityInfo)
464
- throw new Error('Invalid entity name provided for rows entity.');
465
- yield this.PopulateRowsAndColsData();
466
- const rowQuotes = this._rowsEntityInfo.FirstPrimaryKey.NeedsQuotes ? "'" : "";
467
- let filter = `${this.JoinEntityRowForeignKey} IN (${this._rowsEntityData.map(obj => `${rowQuotes}${obj.Get(this._rowsEntityInfo.FirstPrimaryKey.Name)}${rowQuotes}`).join(',')})`;
468
- if (this.ColumnsMode === 'Entity' && this._columnsEntityInfo) {
469
- const colQuotes = this._columnsEntityInfo.FirstPrimaryKey.NeedsQuotes ? "'" : "";
470
- filter += ` AND ${this.JoinEntityColumnForeignKey} IN (${this._columnsEntityData.map(obj => `${colQuotes}${obj.Get(this._columnsEntityInfo.FirstPrimaryKey.Name)}${colQuotes}`).join(',')})`;
471
- }
472
- if (this.JoinEntityExtraFilter) {
473
- filter = `(${filter}) AND (${this.JoinEntityExtraFilter})`;
474
- }
475
- const rv = new RunView();
476
- const result = yield rv.RunView({
477
- EntityName: this.JoinEntityName,
478
- ExtraFilter: filter,
479
- ResultType: 'entity_object'
480
- });
481
- if (result && result.Success) {
482
- // we have the data, now we need to build the grid
483
- this._joinEntityData = result.Results;
484
- this.PopulateGridData();
485
- }
486
- this._IsLoading = false; // turn off the loading spinner
487
- this.cdr.detectChanges(); // let Angular know we have changes
531
+ async Refresh() {
532
+ this._IsLoading = true; // turn on the loading spinner
533
+ this.cdr.detectChanges(); // let angular know we have changes
534
+ this._pendingDeletes = [];
535
+ this._pendingInserts = [];
536
+ this._joinEntityData = undefined;
537
+ // we are provided an array of Column and Row objects. We need to get the rows from the JoinEntity that link them up.
538
+ const md = new Metadata();
539
+ if (this.ColumnsMode === 'Entity') {
540
+ this._columnsEntityInfo = md.EntityByName(this.ColumnsEntityName);
541
+ if (!this._columnsEntityInfo)
542
+ throw new Error('Invalid entity name provided for columns entity.');
543
+ }
544
+ this._rowsEntityInfo = md.EntityByName(this.RowsEntityName);
545
+ if (!this._rowsEntityInfo)
546
+ throw new Error('Invalid entity name provided for rows entity.');
547
+ await this.PopulateRowsAndColsData();
548
+ const rowQuotes = this._rowsEntityInfo.FirstPrimaryKey.NeedsQuotes ? "'" : "";
549
+ let filter = `${this.JoinEntityRowForeignKey} IN (${this._rowsEntityData.map(obj => `${rowQuotes}${obj.Get(this._rowsEntityInfo.FirstPrimaryKey.Name)}${rowQuotes}`).join(',')})`;
550
+ if (this.ColumnsMode === 'Entity' && this._columnsEntityInfo) {
551
+ const colQuotes = this._columnsEntityInfo.FirstPrimaryKey.NeedsQuotes ? "'" : "";
552
+ filter += ` AND ${this.JoinEntityColumnForeignKey} IN (${this._columnsEntityData.map(obj => `${colQuotes}${obj.Get(this._columnsEntityInfo.FirstPrimaryKey.Name)}${colQuotes}`).join(',')})`;
553
+ }
554
+ if (this.JoinEntityExtraFilter) {
555
+ filter = `(${filter}) AND (${this.JoinEntityExtraFilter})`;
556
+ }
557
+ const rv = new RunView();
558
+ const result = await rv.RunView({
559
+ EntityName: this.JoinEntityName,
560
+ ExtraFilter: filter,
561
+ ResultType: 'entity_object'
488
562
  });
563
+ if (result && result.Success) {
564
+ // we have the data, now we need to build the grid
565
+ this._joinEntityData = result.Results;
566
+ this.PopulateGridData();
567
+ }
568
+ this._IsLoading = false; // turn off the loading spinner
569
+ this.cdr.detectChanges(); // let Angular know we have changes
489
570
  }
490
- PopulateRowsAndColsData() {
491
- return __awaiter(this, void 0, void 0, function* () {
492
- const rv = new RunView();
493
- if (this.ColumnsMode === 'Entity') {
494
- // only populate the columns if we are using the entity mode, otherwise the array from JoinGridDisplayColumns will be used
495
- if (this.ColumnsEntityDataSource === 'Array') {
496
- this._columnsEntityData = this.ColumnsEntityArray;
497
- }
498
- else {
499
- this._columnsEntityData = yield this.RunColumnsOrRowsView(this.ColumnsEntityDataSource, this.ColumnsEntityName, this.ColumnsEntityViewName, this.ColumnsExtraFilter, this.ColumnsOrderBy);
500
- }
501
- }
502
- if (this.RowsEntityDataSource === 'Array') {
503
- this._rowsEntityData = this.RowsEntityArray;
571
+ async PopulateRowsAndColsData() {
572
+ const rv = new RunView();
573
+ if (this.ColumnsMode === 'Entity') {
574
+ // only populate the columns if we are using the entity mode, otherwise the array from JoinGridDisplayColumns will be used
575
+ if (this.ColumnsEntityDataSource === 'Array') {
576
+ this._columnsEntityData = this.ColumnsEntityArray;
504
577
  }
505
578
  else {
506
- this._rowsEntityData = yield this.RunColumnsOrRowsView(this.RowsEntityDataSource, this.RowsEntityName, this.RowsEntityViewName, this.RowsExtraFilter, this.RowsOrderBy);
579
+ this._columnsEntityData = await this.RunColumnsOrRowsView(this.ColumnsEntityDataSource, this.ColumnsEntityName, this.ColumnsEntityViewName, this.ColumnsExtraFilter, this.ColumnsOrderBy);
507
580
  }
508
- });
581
+ }
582
+ if (this.RowsEntityDataSource === 'Array') {
583
+ this._rowsEntityData = this.RowsEntityArray;
584
+ }
585
+ else {
586
+ this._rowsEntityData = await this.RunColumnsOrRowsView(this.RowsEntityDataSource, this.RowsEntityName, this.RowsEntityViewName, this.RowsExtraFilter, this.RowsOrderBy);
587
+ }
509
588
  }
510
- RunColumnsOrRowsView(dataSource, entityName, viewName, extraFilter, orderBy) {
511
- return __awaiter(this, void 0, void 0, function* () {
512
- const rv = new RunView();
513
- const params = dataSource === 'FullEntity' ? { EntityName: entityName } : { ViewName: viewName };
514
- if (extraFilter)
515
- params.ExtraFilter = extraFilter;
516
- if (orderBy)
517
- params.OrderBy = orderBy;
518
- params.ResultType = 'entity_object';
519
- const data = yield rv.RunView(params);
520
- if (data && data.Success) {
521
- return data.Results;
589
+ async RunColumnsOrRowsView(dataSource, entityName, viewName, extraFilter, orderBy) {
590
+ const rv = new RunView();
591
+ const params = dataSource === 'FullEntity' ? { EntityName: entityName } : { ViewName: viewName };
592
+ if (extraFilter)
593
+ params.ExtraFilter = extraFilter;
594
+ if (orderBy)
595
+ params.OrderBy = orderBy;
596
+ params.ResultType = 'entity_object';
597
+ const data = await rv.RunView(params);
598
+ if (data && data.Success) {
599
+ return data.Results;
600
+ }
601
+ else {
602
+ return [];
603
+ }
604
+ }
605
+ async PopulateGridData() {
606
+ // we have the data, now we need to build the grid
607
+ // we need to build the grid data
608
+ if (!this._joinEntityData)
609
+ throw new Error('_joinEntityData must be populated before calling PopulateGridData()');
610
+ const gridData = [];
611
+ this._rowsEntityData.forEach((row, rowIndex) => {
612
+ let rowData = new JoinGridRow({
613
+ FirstColValue: row.Get(this.RowsEntityDisplayField),
614
+ JoinExists: false,
615
+ RowForeignKeyValue: row.Get(this._rowsEntityInfo.FirstPrimaryKey.Name),
616
+ ColumnData: [] // start off with an empty array
617
+ });
618
+ // for the mode where we are using columns, do the following
619
+ if (this.ColumnsMode === 'Entity') {
620
+ for (let i = 0; i < this._columnsEntityData.length; i++) {
621
+ const column = this._columnsEntityData[i];
622
+ const join = this._joinEntityData.find(j => j.Get(this.JoinEntityRowForeignKey) === row.Get(this._rowsEntityInfo.FirstPrimaryKey.Name) &&
623
+ j.Get(this.JoinEntityColumnForeignKey) === column.Get(this._columnsEntityInfo.FirstPrimaryKey.Name));
624
+ rowData.JoinExists = true;
625
+ rowData.ColumnData.push({
626
+ index: i,
627
+ ColumnForeignKeyValue: column.Get(this._columnsEntityInfo.FirstPrimaryKey.Name),
628
+ RowForeignKeyValue: rowData.RowForeignKeyValue,
629
+ data: join
630
+ });
631
+ }
522
632
  }
523
633
  else {
524
- return [];
525
- }
526
- });
527
- }
528
- PopulateGridData() {
529
- return __awaiter(this, void 0, void 0, function* () {
530
- // we have the data, now we need to build the grid
531
- // we need to build the grid data
532
- if (!this._joinEntityData)
533
- throw new Error('_joinEntityData must be populated before calling PopulateGridData()');
534
- const gridData = [];
535
- this._rowsEntityData.forEach((row, rowIndex) => {
536
- let rowData = new JoinGridRow({
537
- FirstColValue: row.Get(this.RowsEntityDisplayField),
538
- JoinExists: false,
539
- RowForeignKeyValue: row.Get(this._rowsEntityInfo.FirstPrimaryKey.Name),
540
- ColumnData: [] // start off with an empty array
541
- });
542
- // for the mode where we are using columns, do the following
543
- if (this.ColumnsMode === 'Entity') {
544
- for (let i = 0; i < this._columnsEntityData.length; i++) {
545
- const column = this._columnsEntityData[i];
546
- const join = this._joinEntityData.find(j => j.Get(this.JoinEntityRowForeignKey) === row.Get(this._rowsEntityInfo.FirstPrimaryKey.Name) &&
547
- j.Get(this.JoinEntityColumnForeignKey) === column.Get(this._columnsEntityInfo.FirstPrimaryKey.Name));
634
+ if (!this.JoinEntityDisplayColumns)
635
+ throw new Error('JoinEntityDisplayColumns is required when ColumnsMode is set to Fields');
636
+ // we are display the values from the JoinEntity as columns from the JoinEntityDisplayColumns array
637
+ this.JoinEntityDisplayColumns.forEach((col, i) => {
638
+ const joinData = this._joinEntityData.find(jed => jed.Get(this.JoinEntityRowForeignKey) === row.FirstPrimaryKey.Value);
639
+ // joinData being undefined/null is a valid condition just means no join data for the row specified
640
+ if (joinData) {
548
641
  rowData.JoinExists = true;
549
642
  rowData.ColumnData.push({
550
643
  index: i,
551
- ColumnForeignKeyValue: column.Get(this._columnsEntityInfo.FirstPrimaryKey.Name),
552
644
  RowForeignKeyValue: rowData.RowForeignKeyValue,
553
- data: join
645
+ value: joinData.Get(col)
554
646
  });
555
647
  }
556
- }
557
- else {
558
- if (!this.JoinEntityDisplayColumns)
559
- throw new Error('JoinEntityDisplayColumns is required when ColumnsMode is set to Fields');
560
- // we are display the values from the JoinEntity as columns from the JoinEntityDisplayColumns array
561
- this.JoinEntityDisplayColumns.forEach((col, i) => {
562
- const joinData = this._joinEntityData.find(jed => jed.Get(this.JoinEntityRowForeignKey) === row.FirstPrimaryKey.Value);
563
- // joinData being undefined/null is a valid condition just means no join data for the row specified
564
- if (joinData) {
565
- rowData.JoinExists = true;
566
- rowData.ColumnData.push({
567
- index: i,
568
- RowForeignKeyValue: rowData.RowForeignKeyValue,
569
- value: joinData.Get(col)
570
- });
571
- }
572
- });
573
- }
574
- gridData.push(rowData);
575
- });
576
- this._GridData = gridData;
648
+ });
649
+ }
650
+ gridData.push(rowData);
577
651
  });
652
+ this._GridData = gridData;
578
653
  }
579
- _FlipRecord(event_1, row_1, cell_1) {
580
- return __awaiter(this, arguments, void 0, function* (event, row, cell, stopPropagation = false) {
581
- if (stopPropagation)
582
- event.stopPropagation();
583
- if (!cell)
584
- throw new Error('cell is a required parameter');
585
- if (cell.data) {
586
- if (cell.data.IsSaved) {
587
- // If this is a record that is saved, put into an array of pending deletes
588
- this._pendingDeletes.push(cell.data);
589
- }
590
- else {
591
- // we need to find the record in the pending inserts and remove it from that array
592
- const index = this._pendingInserts.indexOf(cell.data);
593
- if (index >= 0)
594
- this._pendingInserts.splice(index, 1);
595
- }
596
- // Now take data off the item
597
- cell.data = undefined;
654
+ _pendingDeletes = [];
655
+ _pendingInserts = [];
656
+ async _FlipRecord(event, row, cell, stopPropagation = false) {
657
+ if (stopPropagation)
658
+ event.stopPropagation();
659
+ if (!cell)
660
+ throw new Error('cell is a required parameter');
661
+ if (cell.data) {
662
+ if (cell.data.IsSaved) {
663
+ // If this is a record that is saved, put into an array of pending deletes
664
+ this._pendingDeletes.push(cell.data);
598
665
  }
599
666
  else {
600
- // We need to add the record, first see if the record is in the _pendingDeletes array
601
- let record = this._pendingDeletes.find(obj => obj.Get(this.JoinEntityColumnForeignKey) === cell.ColumnForeignKeyValue && obj.Get(this.JoinEntityRowForeignKey) === row.RowForeignKeyValue);
602
- if (!record) {
603
- const md = new Metadata();
604
- record = yield md.GetEntityObject(this.JoinEntityName);
605
- record.Set(this.JoinEntityRowForeignKey, row.RowForeignKeyValue);
606
- record.Set(this.JoinEntityColumnForeignKey, cell.ColumnForeignKeyValue);
607
- for (const key in this.NewRecordDefaultValues) {
608
- record.Set(key, this.NewRecordDefaultValues[key]);
609
- }
610
- this._pendingInserts.push(record);
667
+ // we need to find the record in the pending inserts and remove it from that array
668
+ const index = this._pendingInserts.indexOf(cell.data);
669
+ if (index >= 0)
670
+ this._pendingInserts.splice(index, 1);
671
+ }
672
+ // Now take data off the item
673
+ cell.data = undefined;
674
+ }
675
+ else {
676
+ // We need to add the record, first see if the record is in the _pendingDeletes array
677
+ let record = this._pendingDeletes.find(obj => obj.Get(this.JoinEntityColumnForeignKey) === cell.ColumnForeignKeyValue && obj.Get(this.JoinEntityRowForeignKey) === row.RowForeignKeyValue);
678
+ if (!record) {
679
+ const md = new Metadata();
680
+ record = await md.GetEntityObject(this.JoinEntityName);
681
+ record.Set(this.JoinEntityRowForeignKey, row.RowForeignKeyValue);
682
+ record.Set(this.JoinEntityColumnForeignKey, cell.ColumnForeignKeyValue);
683
+ for (const key in this.NewRecordDefaultValues) {
684
+ record.Set(key, this.NewRecordDefaultValues[key]);
611
685
  }
612
- cell.data = record;
686
+ this._pendingInserts.push(record);
613
687
  }
614
- this.cdr.detectChanges();
615
- });
688
+ cell.data = record;
689
+ }
690
+ this.cdr.detectChanges();
616
691
  }
617
692
  _IsColumnChecked(cell) {
618
- return (cell === null || cell === void 0 ? void 0 : cell.data) !== undefined;
693
+ return cell?.data !== undefined;
619
694
  }
620
- UpdateCellValueDirect(row, colIndex, newValue) {
621
- return __awaiter(this, void 0, void 0, function* () {
622
- // find the associated baseEntity object and update the value and then refresh the grid state from it
623
- if (this.ColumnsMode !== 'Fields')
624
- throw new Error("This method should only be called when ColumnsMode=Entity");
625
- // we are good now, so now proceed to find the related object that ties to the rowForeignKey in
626
- // the join entity data array
627
- const joinData = this._joinEntityData.find(jed => jed.Get(this.JoinEntityRowForeignKey) === row.RowForeignKeyValue);
628
- if (!joinData)
629
- LogError('Could not find join data for rowForeignKey ' + row.RowForeignKeyValue);
630
- else {
631
- const colName = this.JoinEntityDisplayColumns[colIndex];
632
- joinData.Set(colName, newValue);
633
- // also update the row's column array
634
- row.ColumnData[colIndex].value = joinData.Get(colName);
635
- }
636
- });
695
+ async UpdateCellValueDirect(row, colIndex, newValue) {
696
+ // find the associated baseEntity object and update the value and then refresh the grid state from it
697
+ if (this.ColumnsMode !== 'Fields')
698
+ throw new Error("This method should only be called when ColumnsMode=Entity");
699
+ // we are good now, so now proceed to find the related object that ties to the rowForeignKey in
700
+ // the join entity data array
701
+ const joinData = this._joinEntityData.find(jed => jed.Get(this.JoinEntityRowForeignKey) === row.RowForeignKeyValue);
702
+ if (!joinData)
703
+ LogError('Could not find join data for rowForeignKey ' + row.RowForeignKeyValue);
704
+ else {
705
+ const colName = this.JoinEntityDisplayColumns[colIndex];
706
+ joinData.Set(colName, newValue);
707
+ // also update the row's column array
708
+ row.ColumnData[colIndex].value = joinData.Get(colName);
709
+ }
637
710
  }
638
- UpdateCellValue(row, colIndex, event) {
639
- return __awaiter(this, void 0, void 0, function* () {
640
- this.UpdateCellValueDirect(row, colIndex, event.target.value);
641
- });
711
+ async UpdateCellValue(row, colIndex, event) {
712
+ this.UpdateCellValueDirect(row, colIndex, event.target.value);
642
713
  }
643
714
  /**
644
715
  * Only used when ColumnsMode = Fields
645
716
  * @param row
646
717
  */
647
- RemoveJoinEntityRecord(row) {
648
- return __awaiter(this, void 0, void 0, function* () {
649
- var _a;
650
- // this method is called when the user wnats to remove a record that maps to the cell for the row specified and the colIndex
651
- // only used when Mode = Fields
652
- if (this.ColumnsMode !== 'Fields')
653
- throw new Error('This method should only be called when ColumnsMode=Entity');
654
- const joinData = this._joinEntityData.find(jed => jed.Get(this.JoinEntityRowForeignKey) === row.RowForeignKeyValue);
655
- if (!joinData)
656
- LogError('Could not find join data for rowForeignKey ' + row.RowForeignKeyValue);
657
- else {
658
- this._pendingDeletes.push(joinData);
659
- (_a = this._joinEntityData) === null || _a === void 0 ? void 0 : _a.splice(this._joinEntityData.indexOf(joinData), 1);
660
- this.PopulateGridData(); // refresh the grid's grid data array that is derived from all of the source data
661
- }
662
- });
718
+ async RemoveJoinEntityRecord(row) {
719
+ // this method is called when the user wnats to remove a record that maps to the cell for the row specified and the colIndex
720
+ // only used when Mode = Fields
721
+ if (this.ColumnsMode !== 'Fields')
722
+ throw new Error('This method should only be called when ColumnsMode=Entity');
723
+ const joinData = this._joinEntityData.find(jed => jed.Get(this.JoinEntityRowForeignKey) === row.RowForeignKeyValue);
724
+ if (!joinData)
725
+ LogError('Could not find join data for rowForeignKey ' + row.RowForeignKeyValue);
726
+ else {
727
+ this._pendingDeletes.push(joinData);
728
+ this._joinEntityData?.splice(this._joinEntityData.indexOf(joinData), 1);
729
+ this.PopulateGridData(); // refresh the grid's grid data array that is derived from all of the source data
730
+ }
663
731
  }
664
732
  /**
665
733
  * Only used when ColumnsMode = Fields
666
734
  */
667
- AddJoinEntityRecord(row) {
668
- return __awaiter(this, void 0, void 0, function* () {
669
- var _a;
670
- // this method is called when the user wnats to create a new record that maps to the cell for the row specified and the colIndex
671
- // only used when Mode = Fields
672
- if (this.ColumnsMode !== 'Fields')
673
- throw new Error('This method should only be called when ColumnsMode=Entity');
674
- const md = new Metadata();
675
- // first check to see if this is in the _pendingDeletes array, if so, we need to remove it from there
676
- let newObj = this._pendingDeletes.find(pd => pd.Get(this.JoinEntityRowForeignKey) === row.RowForeignKeyValue);
677
- if (newObj) {
678
- this._pendingDeletes.splice(this._pendingDeletes.indexOf(newObj), 1);
735
+ async AddJoinEntityRecord(row) {
736
+ // this method is called when the user wnats to create a new record that maps to the cell for the row specified and the colIndex
737
+ // only used when Mode = Fields
738
+ if (this.ColumnsMode !== 'Fields')
739
+ throw new Error('This method should only be called when ColumnsMode=Entity');
740
+ const md = new Metadata();
741
+ // first check to see if this is in the _pendingDeletes array, if so, we need to remove it from there
742
+ let newObj = this._pendingDeletes.find(pd => pd.Get(this.JoinEntityRowForeignKey) === row.RowForeignKeyValue);
743
+ if (newObj) {
744
+ this._pendingDeletes.splice(this._pendingDeletes.indexOf(newObj), 1);
745
+ }
746
+ else {
747
+ newObj = await md.GetEntityObject(this.JoinEntityName);
748
+ newObj.Set(this.JoinEntityRowForeignKey, row.RowForeignKeyValue);
749
+ }
750
+ const keys = this.NewRecordDefaultValues ? Object.keys(this.NewRecordDefaultValues) : [];
751
+ for (const k of keys) {
752
+ newObj.Set(k, this.NewRecordDefaultValues[k]);
753
+ }
754
+ this._joinEntityData?.push(newObj); // add to join data array
755
+ if (this.EditMode === 'Save') {
756
+ if (await newObj.Save()) {
757
+ // all good
679
758
  }
680
759
  else {
681
- newObj = yield md.GetEntityObject(this.JoinEntityName);
682
- newObj.Set(this.JoinEntityRowForeignKey, row.RowForeignKeyValue);
760
+ SharedService.Instance.CreateSimpleNotification('Error saving new ' + this.JoinEntityName + ' record', 'error', 2500);
683
761
  }
684
- const keys = this.NewRecordDefaultValues ? Object.keys(this.NewRecordDefaultValues) : [];
685
- for (const k of keys) {
686
- newObj.Set(k, this.NewRecordDefaultValues[k]);
687
- }
688
- (_a = this._joinEntityData) === null || _a === void 0 ? void 0 : _a.push(newObj); // add to join data array
689
- if (this.EditMode === 'Save') {
690
- if (yield newObj.Save()) {
691
- // all good
692
- }
693
- else {
694
- SharedService.Instance.CreateSimpleNotification('Error saving new ' + this.JoinEntityName + ' record', 'error', 2500);
695
- }
696
- }
697
- this.PopulateGridData(); // refresh the grid's grid data array that is derived from all of the source data
698
- });
762
+ }
763
+ this.PopulateGridData(); // refresh the grid's grid data array that is derived from all of the source data
699
764
  }
700
- EditingComplete() {
701
- return __awaiter(this, void 0, void 0, function* () {
702
- // we've been told that editing is done. If we are in queue mode for editing, we do nothing because we've
703
- // already submitted our pending changes via events (below) but if we're in save mode we save stuff now
704
- if (this.EditMode === 'Save') {
705
- yield this.Save();
706
- }
707
- });
765
+ async EditingComplete() {
766
+ // we've been told that editing is done. If we are in queue mode for editing, we do nothing because we've
767
+ // already submitted our pending changes via events (below) but if we're in save mode we save stuff now
768
+ if (this.EditMode === 'Save') {
769
+ await this.Save();
770
+ }
708
771
  }
709
- RevertPendingChanges() {
710
- return __awaiter(this, void 0, void 0, function* () {
711
- // this method means we should revert back to the last saved state
712
- // so just call Refresh
713
- yield this.Refresh();
714
- });
772
+ async RevertPendingChanges() {
773
+ // this method means we should revert back to the last saved state
774
+ // so just call Refresh
775
+ await this.Refresh();
715
776
  }
716
777
  ngAfterViewInit() {
717
778
  this.Refresh();
718
779
  // setup event listener for MJGlobal because we might have a parent component that sends us messages
719
780
  MJGlobal.Instance.GetEventListener(false).subscribe((e) => {
720
- var _a;
721
781
  switch (e.event) {
722
782
  case MJEventType.ComponentEvent:
723
783
  const b = BaseFormComponentEventCodes; // having issues using the const vs the type if we refer to it below directly for comparison so assign the const to a local variable first
@@ -735,7 +795,7 @@ export class JoinGridComponent {
735
795
  break;
736
796
  case b.POPULATE_PENDING_RECORDS:
737
797
  // provide all of our pending records back to the caller
738
- (_a = this._joinEntityData) === null || _a === void 0 ? void 0 : _a.forEach((r) => {
798
+ this._joinEntityData?.forEach((r) => {
739
799
  // for anything that's changed, we need to add it to the pending records
740
800
  const editingEvent = event;
741
801
  if (r.Dirty) {
@@ -774,22 +834,22 @@ export class JoinGridComponent {
774
834
  get EntityFieldTSType() {
775
835
  return EntityFieldTSType;
776
836
  }
837
+ static ɵfac = function JoinGridComponent_Factory(t) { return new (t || JoinGridComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef)); };
838
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: JoinGridComponent, selectors: [["mj-join-grid"]], inputs: { RowsEntityName: "RowsEntityName", RowsEntityDisplayName: "RowsEntityDisplayName", RowsEntityDisplayField: "RowsEntityDisplayField", RowsEntityDataSource: "RowsEntityDataSource", RowsExtraFilter: "RowsExtraFilter", RowsOrderBy: "RowsOrderBy", RowsEntityViewName: "RowsEntityViewName", RowsEntityArray: "RowsEntityArray", ColumnsMode: "ColumnsMode", ColumnsEntityName: "ColumnsEntityName", ColumnsEntityDisplayField: "ColumnsEntityDisplayField", ColumnsEntityDataSource: "ColumnsEntityDataSource", ColumnsExtraFilter: "ColumnsExtraFilter", ColumnsOrderBy: "ColumnsOrderBy", ColumnsEntityViewName: "ColumnsEntityViewName", ColumnsEntityArray: "ColumnsEntityArray", JoinEntityName: "JoinEntityName", JoinEntityRowForeignKey: "JoinEntityRowForeignKey", JoinEntityColumnForeignKey: "JoinEntityColumnForeignKey", JoinEntityDisplayColumns: "JoinEntityDisplayColumns", JoinEntityExtraFilter: "JoinEntityExtraFilter", CheckBoxValueMode: "CheckBoxValueMode", CheckBoxValueField: "CheckBoxValueField", NewRecordDefaultValues: "NewRecordDefaultValues", ShowSaveButton: "ShowSaveButton", ShowCancelButton: "ShowCancelButton", EditMode: "EditMode" }, decls: 5, vars: 4, consts: [["mjFillContainer", "", 1, "wrapper"], ["kendoButton", "", 3, "disabled"], [1, "grid"], ["kendoButton", "", 3, "click", "disabled"], [3, "ngClass"], [1, "checkbox-column"], [1, "first-column"], [1, "column-cell"], ["kendoButton", "", 1, "cellButton"], ["kendoButton", "", 1, "cellButton", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "fa-solid", "fa-minus"], ["class", "column-cell", 4, "ngFor", "ngForOf"], [3, "data", "value"], ["type", "checkbox", 3, "checked"], [3, "value"], ["type", "checkbox", 3, "change", "checked"], [3, "change", "value"], [3, "selectionChange", "data", "value"], [1, "checkbox-column", 3, "ngClass"], [1, "checkbox-column", 3, "click", "ngClass"], ["type", "checkbox", "kendoCheckBox", "", 3, "checked"], ["type", "checkbox", "kendoCheckBox", "", 3, "click", "checked"]], template: function JoinGridComponent_Template(rf, ctx) { if (rf & 1) {
839
+ i0.ɵɵelementStart(0, "div", 0);
840
+ i0.ɵɵtemplate(1, JoinGridComponent_Conditional_1_Template, 2, 0, "div")(2, JoinGridComponent_Conditional_2_Template, 2, 1, "button", 1)(3, JoinGridComponent_Conditional_3_Template, 2, 1, "button", 1)(4, JoinGridComponent_Conditional_4_Template, 10, 2, "table", 2);
841
+ i0.ɵɵelementEnd();
842
+ } if (rf & 2) {
843
+ i0.ɵɵadvance();
844
+ i0.ɵɵconditional(ctx._IsLoading ? 1 : -1);
845
+ i0.ɵɵadvance();
846
+ i0.ɵɵconditional(ctx.ShowSaveButton ? 2 : -1);
847
+ i0.ɵɵadvance();
848
+ i0.ɵɵconditional(ctx.ShowCancelButton ? 3 : -1);
849
+ i0.ɵɵadvance();
850
+ i0.ɵɵconditional(!ctx._IsLoading ? 4 : -1);
851
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i2.TextBoxComponent, i2.CheckBoxDirective, i3.ButtonComponent, i4.DropDownListComponent, i5.LoaderComponent, i6.FillContainer], styles: [".wrapper[_ngcontent-%COMP%] {\n overflow: auto;\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-top: 5px;\n width: 125px;\n}\n \nbutton.cellButton[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-top: 5px;\n width: 30px;\n margin-bottom: 5px;\n float: right;\n}\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background-color: #f2f2f2; \n\n color: black; \n\n font-weight: bold; \n\n}\n\n\n\n\n\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%], table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n border: 1px solid gray; \n\n height: 36px; \n\n text-align: center;\n padding: 0 8px; \n\n}\n\ntd.column-cell[_ngcontent-%COMP%] {\n margin: 0;\n \n\n \n\n text-align: left;\n}\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:first-child, table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child {\n min-width: 150px; \n\n text-align: left;\n vertical-align: middle;\n}\n\n.checkbox-column[_ngcontent-%COMP%] {\n width: 100px; \n\n}\n\n\n\ntable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(odd) {\n background-color: white; \n\n}\n\ntable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(even) {\n background-color: #e7f4ff; \n\n}\n\ntable[_ngcontent-%COMP%] tr.dirty-row[_ngcontent-%COMP%] {\n font-style: italic;\n background-color: #ffcccc;\n}\n\ntable[_ngcontent-%COMP%] td.dirty-cell[_ngcontent-%COMP%] {\n font-style: italic;\n background-color: #ffcccc;\n}"] });
777
852
  }
778
- JoinGridComponent.ɵfac = function JoinGridComponent_Factory(t) { return new (t || JoinGridComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef)); };
779
- JoinGridComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: JoinGridComponent, selectors: [["mj-join-grid"]], inputs: { RowsEntityName: "RowsEntityName", RowsEntityDisplayName: "RowsEntityDisplayName", RowsEntityDisplayField: "RowsEntityDisplayField", RowsEntityDataSource: "RowsEntityDataSource", RowsExtraFilter: "RowsExtraFilter", RowsOrderBy: "RowsOrderBy", RowsEntityViewName: "RowsEntityViewName", RowsEntityArray: "RowsEntityArray", ColumnsMode: "ColumnsMode", ColumnsEntityName: "ColumnsEntityName", ColumnsEntityDisplayField: "ColumnsEntityDisplayField", ColumnsEntityDataSource: "ColumnsEntityDataSource", ColumnsExtraFilter: "ColumnsExtraFilter", ColumnsOrderBy: "ColumnsOrderBy", ColumnsEntityViewName: "ColumnsEntityViewName", ColumnsEntityArray: "ColumnsEntityArray", JoinEntityName: "JoinEntityName", JoinEntityRowForeignKey: "JoinEntityRowForeignKey", JoinEntityColumnForeignKey: "JoinEntityColumnForeignKey", JoinEntityDisplayColumns: "JoinEntityDisplayColumns", JoinEntityExtraFilter: "JoinEntityExtraFilter", CheckBoxValueMode: "CheckBoxValueMode", CheckBoxValueField: "CheckBoxValueField", NewRecordDefaultValues: "NewRecordDefaultValues", ShowSaveButton: "ShowSaveButton", ShowCancelButton: "ShowCancelButton", EditMode: "EditMode" }, decls: 5, vars: 4, consts: [["mjFillContainer", "", 1, "wrapper"], ["kendoButton", "", 3, "disabled"], [1, "grid"], ["kendoButton", "", 3, "click", "disabled"], [3, "ngClass"], [1, "checkbox-column"], [1, "first-column"], [1, "column-cell"], ["kendoButton", "", 1, "cellButton"], ["kendoButton", "", 1, "cellButton", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "fa-solid", "fa-minus"], ["class", "column-cell", 4, "ngFor", "ngForOf"], [3, "data", "value"], ["type", "checkbox", 3, "checked"], [3, "value"], ["type", "checkbox", 3, "change", "checked"], [3, "change", "value"], [3, "selectionChange", "data", "value"], [1, "checkbox-column", 3, "ngClass"], [1, "checkbox-column", 3, "click", "ngClass"], ["type", "checkbox", "kendoCheckBox", "", 3, "checked"], ["type", "checkbox", "kendoCheckBox", "", 3, "click", "checked"]], template: function JoinGridComponent_Template(rf, ctx) { if (rf & 1) {
780
- i0.ɵɵelementStart(0, "div", 0);
781
- i0.ɵɵtemplate(1, JoinGridComponent_Conditional_1_Template, 2, 0, "div")(2, JoinGridComponent_Conditional_2_Template, 2, 1, "button", 1)(3, JoinGridComponent_Conditional_3_Template, 2, 1, "button", 1)(4, JoinGridComponent_Conditional_4_Template, 10, 2, "table", 2);
782
- i0.ɵɵelementEnd();
783
- } if (rf & 2) {
784
- i0.ɵɵadvance();
785
- i0.ɵɵconditional(ctx._IsLoading ? 1 : -1);
786
- i0.ɵɵadvance();
787
- i0.ɵɵconditional(ctx.ShowSaveButton ? 2 : -1);
788
- i0.ɵɵadvance();
789
- i0.ɵɵconditional(ctx.ShowCancelButton ? 3 : -1);
790
- i0.ɵɵadvance();
791
- i0.ɵɵconditional(!ctx._IsLoading ? 4 : -1);
792
- } }, dependencies: [i1.NgClass, i1.NgForOf, i2.TextBoxComponent, i2.CheckBoxDirective, i3.ButtonComponent, i4.DropDownListComponent, i5.LoaderComponent, i6.FillContainer], styles: [".wrapper[_ngcontent-%COMP%] {\n overflow: auto;\n}\n\nbutton[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-top: 5px;\n width: 125px;\n}\n \nbutton.cellButton[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-top: 5px;\n width: 30px;\n margin-bottom: 5px;\n float: right;\n}\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background-color: #f2f2f2; \n\n color: black; \n\n font-weight: bold; \n\n}\n\n\n\n\n\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%], table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n border: 1px solid gray; \n\n height: 36px; \n\n text-align: center;\n padding: 0 8px; \n\n}\n\ntd.column-cell[_ngcontent-%COMP%] {\n margin: 0;\n \n\n \n\n text-align: left;\n}\n\n\n\ntable[_ngcontent-%COMP%] th[_ngcontent-%COMP%]:first-child, table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child {\n min-width: 150px; \n\n text-align: left;\n vertical-align: middle;\n}\n\n.checkbox-column[_ngcontent-%COMP%] {\n width: 100px; \n\n}\n\n\n\ntable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(odd) {\n background-color: white; \n\n}\n\ntable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(even) {\n background-color: #e7f4ff; \n\n}\n\ntable[_ngcontent-%COMP%] tr.dirty-row[_ngcontent-%COMP%] {\n font-style: italic;\n background-color: #ffcccc;\n}\n\ntable[_ngcontent-%COMP%] td.dirty-cell[_ngcontent-%COMP%] {\n font-style: italic;\n background-color: #ffcccc;\n}"] });
793
853
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JoinGridComponent, [{
794
854
  type: Component,
795
855
  args: [{ selector: 'mj-join-grid', template: "<div mjFillContainer class=\"wrapper\"> \n @if (_IsLoading) {\n <div><kendo-loader></kendo-loader></div>\n }\n @if (ShowSaveButton) {\n <button [disabled]=\"NumDirtyRecords === 0\" kendoButton (click)=\"Save()\">Save</button>\n }\n @if (ShowCancelButton) {\n <button [disabled]=\"NumDirtyRecords === 0\" kendoButton (click)=\"CancelEdit()\">Cancel</button>\n }\n @if (!_IsLoading) {\n <table class=\"grid\">\n <thead>\n <tr>\n <!-- First column is the name of the Rows Entity -->\n <th>{{RowsEntityDisplayNameOrName}}</th>\n @if (ColumnsMode === 'Entity') {\n @for (colRecord of this._columnsEntityData; track colRecord) {\n <th class=\"checkbox-column\">{{colRecord.Get(this.ColumnsEntityDisplayField)}}</th>\n }\n }\n @else {\n <!-- we need one column for each of the fields in the JoinEntityDisplayColumns array -->\n @for (colName of JoinEntityDisplayColumns; track colName) {\n <th>{{colName}}</th>\n }\n }\n </tr>\n </thead>\n <tbody>\n @for (row of _GridData; track row) {\n <tr [ngClass]=\"IsRecordReallyDirty(row) ? 'dirty-row' : ''\">\n <td class=\"first-column\">\n <span>{{row.FirstColValue}}</span>\n @if (EditMode !== 'None'){\n @if (!row.JoinExists) {\n <button kendoButton class=\"cellButton\" (click)=\"AddJoinEntityRecord(row)\"><span class=\"fa-solid fa-plus\"></span></button>\n }\n @else {\n <button kendoButton class=\"cellButton\" (click)=\"RemoveJoinEntityRecord(row)\"><span class=\"fa-solid fa-minus\"></span></button>\n } \n }\n </td>\n @if (ColumnsMode === 'Fields') {\n <td class=\"column-cell\" *ngFor=\"let colName of JoinEntityDisplayColumns; let i = index\">\n @if (EditMode !== 'None') {\n @if (row.JoinExists) {\n @if (GetJoinEntityField(colName).ValueListType === \"None\") {\n @if (GetJoinEntityField(colName).TSType === EntityFieldTSType.Boolean) {\n <input type=\"checkbox\" [checked]=\"row.GetColumnValue(i)\" (change)=\"UpdateCellValue(row, i, $event)\" />\n }\n @else {\n <kendo-textbox [value]=\"row.GetColumnValue(i)\" (change)=\"UpdateCellValue(row, i, $event)\" /> \n }\n }\n @else {\n <kendo-dropdownlist\n [data]=\"GetJoinEntityFieldValues(colName)\"\n [value]=\"row.GetColumnValue(i)\"\n (selectionChange)=\"UpdateCellValueDirect(row, i, $event)\"\n >\n </kendo-dropdownlist>\n }\n }\n }\n @else {\n {{row.GetColumnValue(i)}}\n }\n </td>\n }\n @else {\n @for (cell of row.ColumnData; track cell) {\n <!-- loop through all the columns and display a checkbox and check it if we have a match in the current row -->\n <td class=\"checkbox-column\" (click)=\"_FlipRecord($event, row, cell)\"\n [ngClass]=\"IsCellReallyDirty(cell) ? 'dirty-cell' : ''\">\n @if (EditMode !== 'None') {\n <input type=\"checkbox\" \n kendoCheckBox \n [checked]=\"_IsColumnChecked(cell)\" \n (click)=\"_FlipRecord($event, row, cell, true)\">\n }\n @else {\n {{cell.value ? '\u2713' : ''}}\n }\n </td>\n }\n }\n </tr> \n } \n </tbody>\n </table>\n }\n</div>", styles: [".wrapper {\n overflow: auto;\n}\n\nbutton {\n margin-left: 5px;\n margin-top: 5px;\n width: 125px;\n}\n \nbutton.cellButton {\n margin-left: 5px;\n margin-top: 5px;\n width: 30px;\n margin-bottom: 5px;\n float: right;\n}\n\ntable th {\n background-color: #f2f2f2; /* Light gray background for headers */\n color: black; /* Black text color for headers */\n font-weight: bold; /* Bold font weight for headers */\n}\n/* \n.permission-left-col {\n cursor: pointer;\n} */\n\n/* Style for all table cells */\ntable th, table td {\n border: 1px solid gray; /* Gray border for cells */\n height: 36px; /* Fixed height for all rows */\n text-align: center;\n padding: 0 8px; /* Add some padding inside cells */\n}\n\ntd.column-cell {\n margin: 0;\n /* display: flex; */\n /* align-items: center; */\n text-align: left;\n}\n\n/* Specific styles for the first column */\ntable th:first-child, table td:first-child {\n min-width: 150px; /* Set width for the first column */\n text-align: left;\n vertical-align: middle;\n}\n\n.checkbox-column {\n width: 100px; /* Set width for \"Can\" columns */\n}\n\n/* Alternating row background colors */\ntable tr:nth-child(odd) {\n background-color: white; /* Light color for odd rows */\n}\n\ntable tr:nth-child(even) {\n background-color: #e7f4ff; /* Light blue for even rows */\n}\n\ntable tr.dirty-row {\n font-style: italic;\n background-color: #ffcccc;\n}\n\ntable td.dirty-cell {\n font-style: italic;\n background-color: #ffcccc;\n}"] }]
@@ -1 +1 @@
1
- {"version":3,"file":"join-grid.component.js","sourceRoot":"","sources":["../../../src/lib/join-grid/join-grid.component.ts","../../../src/lib/join-grid/join-grid.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"join-grid.component.js","sourceRoot":"","sources":["../../../src/lib/join-grid/join-grid.component.ts","../../../src/lib/join-grid/join-grid.component.html"],"names":[],"mappings":"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"}
@@ -13,19 +13,19 @@ import { GridModule } from '@progress/kendo-angular-grid';
13
13
  import { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';
14
14
  import * as i0 from "@angular/core";
15
15
  export class JoinGridModule {
16
+ static ɵfac = function JoinGridModule_Factory(t) { return new (t || JoinGridModule)(); };
17
+ static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: JoinGridModule });
18
+ static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
19
+ FormsModule,
20
+ DialogsModule,
21
+ GridModule,
22
+ InputsModule,
23
+ ButtonsModule,
24
+ DropDownsModule,
25
+ DialogsModule,
26
+ IndicatorsModule,
27
+ ContainerDirectivesModule] });
16
28
  }
17
- JoinGridModule.ɵfac = function JoinGridModule_Factory(t) { return new (t || JoinGridModule)(); };
18
- JoinGridModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: JoinGridModule });
19
- JoinGridModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
20
- FormsModule,
21
- DialogsModule,
22
- GridModule,
23
- InputsModule,
24
- ButtonsModule,
25
- DropDownsModule,
26
- DialogsModule,
27
- IndicatorsModule,
28
- ContainerDirectivesModule] });
29
29
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JoinGridModule, [{
30
30
  type: NgModule,
31
31
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,2BAA2B;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG9D,QAAQ;AACR,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;;AAsBpF,MAAM,OAAO,cAAc;;4EAAd,cAAc;gEAAd,cAAc;oEAfvB,YAAY;QACZ,WAAW;QACX,aAAa;QACb,UAAU;QACV,YAAY;QACZ,aAAa;QACb,eAAe;QACf,aAAa;QACb,gBAAgB;QAChB,yBAAyB;iFAMhB,cAAc;cApB1B,QAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,iBAAiB;iBAClB;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;oBACX,aAAa;oBACb,UAAU;oBACV,YAAY;oBACZ,aAAa;oBACb,eAAe;oBACf,aAAa;oBACb,gBAAgB;oBAChB,yBAAyB;iBAC1B;gBACD,OAAO,EAAE;oBACP,iBAAiB;iBAClB;aACF;;wFACY,cAAc,mBAlBvB,iBAAiB,aAGjB,YAAY;QACZ,WAAW;QACX,aAAa;QACb,UAAU;QACV,YAAY;QACZ,aAAa;QACb,eAAe;QACf,aAAa;QACb,gBAAgB;QAChB,yBAAyB,aAGzB,iBAAiB"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,2BAA2B;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG9D,QAAQ;AACR,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;;AAsBpF,MAAM,OAAO,cAAc;wEAAd,cAAc;4DAAd,cAAc;gEAfvB,YAAY;YACZ,WAAW;YACX,aAAa;YACb,UAAU;YACV,YAAY;YACZ,aAAa;YACb,eAAe;YACf,aAAa;YACb,gBAAgB;YAChB,yBAAyB;;iFAMhB,cAAc;cApB1B,QAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,iBAAiB;iBAClB;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;oBACX,aAAa;oBACb,UAAU;oBACV,YAAY;oBACZ,aAAa;oBACb,eAAe;oBACf,aAAa;oBACb,gBAAgB;oBAChB,yBAAyB;iBAC1B;gBACD,OAAO,EAAE;oBACP,iBAAiB;iBAClB;aACF;;wFACY,cAAc,mBAlBvB,iBAAiB,aAGjB,YAAY;QACZ,WAAW;QACX,aAAa;QACb,UAAU;QACV,YAAY;QACZ,aAAa;QACb,eAAe;QACf,aAAa;QACb,gBAAgB;QAChB,yBAAyB,aAGzB,iBAAiB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-join-grid",
3
- "version": "2.48.0",
3
+ "version": "2.49.0",
4
4
  "description": "MemberJunction: Grid component that is able to display/edit the relationship between two entities. For example being able to edit Users + Roles in a single grid.",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -25,12 +25,12 @@
25
25
  "@angular/router": "18.0.2"
26
26
  },
27
27
  "dependencies": {
28
- "@memberjunction/core-entities": "2.48.0",
29
- "@memberjunction/global": "2.48.0",
30
- "@memberjunction/core": "2.48.0",
31
- "@memberjunction/ng-base-types": "2.48.0",
32
- "@memberjunction/ng-container-directives": "2.48.0",
33
- "@memberjunction/ng-shared": "2.48.0",
28
+ "@memberjunction/core-entities": "2.49.0",
29
+ "@memberjunction/global": "2.49.0",
30
+ "@memberjunction/core": "2.49.0",
31
+ "@memberjunction/ng-base-types": "2.49.0",
32
+ "@memberjunction/ng-container-directives": "2.49.0",
33
+ "@memberjunction/ng-shared": "2.49.0",
34
34
  "@progress/kendo-angular-buttons": "16.2.0",
35
35
  "@progress/kendo-angular-dialog": "16.2.0",
36
36
  "@progress/kendo-angular-layout": "16.2.0",