@genesislcap/foundation-entity-management 14.200.1-alpha-e974201.0 → 14.202.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.
Files changed (28) hide show
  1. package/dist/custom-elements.json +348 -36
  2. package/dist/dts/entities/entities.d.ts +66 -14
  3. package/dist/dts/entities/entities.d.ts.map +1 -1
  4. package/dist/dts/entities/entities.styles.d.ts.map +1 -1
  5. package/dist/dts/entities/entities.template.d.ts +10 -0
  6. package/dist/dts/entities/entities.template.d.ts.map +1 -1
  7. package/dist/dts/list/list.d.ts.map +1 -1
  8. package/dist/dts/types.d.ts +12 -0
  9. package/dist/dts/types.d.ts.map +1 -1
  10. package/dist/esm/entities/entities.js +111 -1
  11. package/dist/esm/entities/entities.styles.js +13 -2
  12. package/dist/esm/entities/entities.template.js +68 -16
  13. package/dist/esm/list/list.js +4 -3
  14. package/dist/esm/types.js +14 -0
  15. package/dist/foundation-entity-management.api.json +308 -0
  16. package/dist/foundation-entity-management.d.ts +79 -14
  17. package/docs/api/foundation-entity-management.entitymanagement.crudactionmenuname.md +13 -0
  18. package/docs/api/foundation-entity-management.entitymanagement.crudmenuposition.md +13 -0
  19. package/docs/api/foundation-entity-management.entitymanagement.crudmenustyle.md +13 -0
  20. package/docs/api/foundation-entity-management.entitymanagement.crudmenuwrapper.md +13 -0
  21. package/docs/api/foundation-entity-management.entitymanagement.emitcrud.md +24 -0
  22. package/docs/api/foundation-entity-management.entitymanagement.hascontentinslot.md +26 -0
  23. package/docs/api/foundation-entity-management.entitymanagement.hasselectedentity.md +13 -0
  24. package/docs/api/foundation-entity-management.entitymanagement.md +9 -0
  25. package/docs/api/foundation-entity-management.entitymanagement.shouldhidedeleteincolumn.md +13 -0
  26. package/docs/api/foundation-entity-management.entitymanagement.shouldhideeditincolumn.md +13 -0
  27. package/docs/api-report.md +13 -0
  28. package/package.json +22 -22
@@ -5,6 +5,7 @@ import { showNotification, showNotificationDialog } from '@genesislcap/foundatio
5
5
  import { getCriteriaBuilder, INPUT_MIN_LENGTH, } from '@genesislcap/foundation-ui';
6
6
  import { LifecycleMixin } from '@genesislcap/foundation-utils';
7
7
  import { attr, customElement, DOM, FASTElement, observable, volatile, } from '@microsoft/fast-element';
8
+ import { CrudMenuPosition, ActionsMenuStyle } from '../types';
8
9
  import { getErrorFormat, logger } from '../utils';
9
10
  import { styles } from './entities.styles';
10
11
  import { defaultHeader, searchBarHeader, template } from './entities.template';
@@ -111,6 +112,20 @@ let EntityManagement = class EntityManagement extends LifecycleMixin(FASTElement
111
112
  * @public
112
113
  */
113
114
  this.modalPosition = 'right';
115
+ /**
116
+ * Determines where the buttons will appear
117
+ * @public
118
+ */
119
+ this.crudMenuPosition = CrudMenuPosition.Column;
120
+ /**
121
+ * Determines the style of the buttons
122
+ * @public
123
+ */
124
+ this.crudMenuStyle = ActionsMenuStyle.Default;
125
+ /**
126
+ * The label of the crud action menu
127
+ */
128
+ this.crudActionMenuName = '⋮';
114
129
  /**
115
130
  * Updates the reference to the current entity stored in the class. Added as an event listener on the class when receiving the `rowSelected` event.
116
131
  *
@@ -131,6 +146,36 @@ let EntityManagement = class EntityManagement extends LifecycleMixin(FASTElement
131
146
  }
132
147
  }
133
148
  }
149
+ /**
150
+ * Determines whether the button edit should be hidden in the column
151
+ */
152
+ get shouldHideEditInColumn() {
153
+ return this.hideEdit || this.crudMenuPosition !== CrudMenuPosition.Column;
154
+ }
155
+ /**
156
+ * Determines whether the button delete should be hidden in the column
157
+ */
158
+ get shouldHideDeleteInColumn() {
159
+ return this.hideDelete || this.crudMenuPosition !== CrudMenuPosition.Column;
160
+ }
161
+ /**
162
+ * Determines whether there is a selected entity
163
+ */
164
+ get hasSelectedEntity() {
165
+ return !!(this.selectedEntity && Object.keys(this.selectedEntity).length > 0);
166
+ }
167
+ /**
168
+ * Checks if a slot contains any content.
169
+ *
170
+ * @param slotName - The name of the slot to check.
171
+ * @returns True if the slot has content, otherwise false.
172
+ * @public
173
+ */
174
+ hasContentInSlot(slotName) {
175
+ var _a;
176
+ const slot = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`slot[name=${slotName}]`);
177
+ return !!(slot === null || slot === void 0 ? void 0 : slot.assignedNodes().length);
178
+ }
134
179
  /**
135
180
  * Set up the web component
136
181
  * @internal
@@ -154,6 +199,9 @@ let EntityManagement = class EntityManagement extends LifecycleMixin(FASTElement
154
199
  if (!this.searchBarConfig) {
155
200
  this.getDefaultSearchBarConfig();
156
201
  }
202
+ if (this.crudMenuStyle.includes('actions-')) {
203
+ this.generateCrudActionsMenu();
204
+ }
157
205
  });
158
206
  }
159
207
  disconnectedCallback() {
@@ -388,6 +436,9 @@ let EntityManagement = class EntityManagement extends LifecycleMixin(FASTElement
388
436
  DETAILS,
389
437
  });
390
438
  this.errorNotify(deleteReq);
439
+ if (!deleteReq.ERROR) {
440
+ this.clearSelectedEntity();
441
+ }
391
442
  }
392
443
  else {
393
444
  logger.error('No required fields found for delete event', this.deleteEvent);
@@ -400,11 +451,18 @@ let EntityManagement = class EntityManagement extends LifecycleMixin(FASTElement
400
451
  title: 'Confirm Delete',
401
452
  body: 'Do you really want to delete this entity?',
402
453
  dialog: {
403
- dismissingAction: { label: 'Dismiss', action: () => (this.selectedEntity = null) },
454
+ dismissingAction: { label: 'Dismiss', action: () => this.clearSelectedEntity() },
404
455
  confirmingActions: [{ label: 'Confirm', action: () => this.confirmDelete() }],
405
456
  },
406
457
  }, this.prefix);
407
458
  }
459
+ /**
460
+ * Emit the CRUD event for the selected entity
461
+ * @param action - the action to emit
462
+ */
463
+ emitCrud(action) {
464
+ this.$emit(`${action}-entity`, this.selectedEntity);
465
+ }
408
466
  /**
409
467
  * Show notifications if the executed event returned an error.
410
468
  * @internal
@@ -424,6 +482,49 @@ let EntityManagement = class EntityManagement extends LifecycleMixin(FASTElement
424
482
  });
425
483
  }
426
484
  }
485
+ /**
486
+ * Clear the selected entity
487
+ * @internal
488
+ */
489
+ clearSelectedEntity() {
490
+ this.selectedEntity = null;
491
+ }
492
+ /**
493
+ * Helper to generate the CRUD actions menu
494
+ *
495
+ * @internal
496
+ */
497
+ generateCrudActionsMenu() {
498
+ const actionsMenu = document.createElement(`${this.prefix}-actions-menu`);
499
+ actionsMenu.setAttribute('part', 'actions-menu');
500
+ actionsMenu.style.width = '100%';
501
+ actionsMenu.name = this.crudActionMenuName;
502
+ actionsMenu.isVertical = this.crudMenuStyle === ActionsMenuStyle.ActionsVertical;
503
+ actionsMenu.actions = [
504
+ {
505
+ name: 'Add',
506
+ callback: () => this.emitCrud('create'),
507
+ },
508
+ ];
509
+ if (this.updateEvent && !this.hideEdit) {
510
+ actionsMenu.actions.push({
511
+ name: 'Edit',
512
+ callback: () => this.emitCrud('edit'),
513
+ isDisabled: () => !this.hasSelectedEntity,
514
+ });
515
+ }
516
+ if (this.deleteEvent && !this.hideDelete) {
517
+ actionsMenu.actions.push({
518
+ name: 'Delete',
519
+ callback: () => this.emitCrud('delete'),
520
+ isDisabled: () => !this.hasSelectedEntity,
521
+ });
522
+ }
523
+ DOM.queueUpdate(() => {
524
+ var _a;
525
+ (_a = this.crudMenuWrapper) === null || _a === void 0 ? void 0 : _a.appendChild(actionsMenu);
526
+ });
527
+ }
427
528
  };
428
529
  __decorate([
429
530
  Connect
@@ -548,6 +649,15 @@ __decorate([
548
649
  __decorate([
549
650
  attr({ attribute: 'modal-position' })
550
651
  ], EntityManagement.prototype, "modalPosition", void 0);
652
+ __decorate([
653
+ attr({ attribute: 'crud-menu-position' })
654
+ ], EntityManagement.prototype, "crudMenuPosition", void 0);
655
+ __decorate([
656
+ attr({ attribute: 'crud-menu-style' })
657
+ ], EntityManagement.prototype, "crudMenuStyle", void 0);
658
+ __decorate([
659
+ attr({ attribute: 'crud-action-menu-name' })
660
+ ], EntityManagement.prototype, "crudActionMenuName", void 0);
551
661
  __decorate([
552
662
  volatile
553
663
  ], EntityManagement.prototype, "headerTempalate", null);
@@ -60,7 +60,18 @@ export const styles = css `
60
60
  width: 500px;
61
61
  }
62
62
 
63
- .add-button {
64
- margin-right: calc(var(--design-unit) * 2px);
63
+ .crud-buttons {
64
+ display: flex;
65
+ gap: calc(var(--design-unit) * 2px);
66
+ }
67
+
68
+ .crud-buttons-wrapper {
69
+ display: flex;
70
+ gap: calc(var(--design-unit) * 2px);
71
+ justify-content: flex-end;
72
+ }
73
+
74
+ .crud-buttons-wrapper-bottom {
75
+ padding-top: calc(var(--design-unit) * 2px);
65
76
  }
66
77
  `;
@@ -2,21 +2,79 @@ import { customEvent } from '@genesislcap/foundation-events';
2
2
  import { Form } from '@genesislcap/foundation-forms';
3
3
  import { html, ref, when } from '@microsoft/fast-element';
4
4
  import { List } from '../list';
5
+ import { CrudMenuPosition } from '../types';
5
6
  List;
6
7
  Form;
7
8
  /**
8
- * Default header for Entity Management screen
9
- * @internal
9
+ * Default add button for Entity Management screen
10
10
  */
11
- export const defaultHeader = (prefix) => html `
12
- <h3 class="header-title">${(x) => x.title}</h3>
11
+ const addButtonTemplate = (prefix) => html `
13
12
  ${when((x) => x.createEvent, html `
14
- <${prefix}-button class="add-button" appearance="neutral" @click=${(x, y) => x.createEntity()}>
13
+ <${prefix}-button class="crud-button" appearance="neutral" @click=${(x) => x.createEntity()}>
15
14
  <${prefix}-icon size="lg" name="plus"></${prefix}-icon>
16
15
  Add
17
16
  </${prefix}-button>
18
17
  `)}
19
18
  `;
19
+ /**
20
+ * Default crud buttons for Entity Management screen
21
+ */
22
+ export const crudButtonsTemplate = (prefix, position) => html `
23
+ ${when((x) => x.crudMenuPosition === position || x.hasContentInSlot(`crud-${position}`), html `
24
+ <section
25
+ part=${() => `crud-buttons-wrapper crud-buttons-wrapper-${position}`}
26
+ class=${() => `crud-buttons-wrapper crud-buttons-wrapper-${position}`}
27
+ >
28
+ <slot name=${() => `crud-${position}-before`}></slot>
29
+ <slot name=${() => `crud-${position}`}>
30
+ <nav
31
+ ${ref('crudMenuWrapper')}
32
+ part=${() => `crud-buttons crud-buttons-${position}`}
33
+ class=${() => `crud-buttons crud-buttons-${position}`}
34
+ >
35
+ ${when((x) => !x.crudMenuStyle.includes('actions-'), html `
36
+ ${addButtonTemplate(prefix)}
37
+ ${when((x) => x.crudMenuPosition !== CrudMenuPosition.Column, html `
38
+ ${when((x) => x.updateEvent && !x.hideEdit, html `
39
+ <${prefix}-button class="crud-button" appearance="neutral" title="Select an item from the grid to enable editing" @click=${(x, y) => x.emitCrud('edit')} disabled=${(x) => (x.hasSelectedEntity ? null : 'disabled')}>
40
+ <${prefix}-icon size="lg" name="pen"></${prefix}-icon>
41
+ Edit
42
+ </${prefix}-button>
43
+ `)}
44
+ ${when((x) => x.deleteEvent && !x.hideDelete, html `
45
+ <${prefix}-button class="crud-button" appearance="neutral" title="Select an item from the grid to enable deleting" @click=${(x, y) => x.emitCrud('delete')} disabled=${(x) => (x.hasSelectedEntity ? null : 'disabled')}>
46
+ <${prefix}-icon size="lg" name="trash-alt"></${prefix}-icon>
47
+ Delete
48
+ </${prefix}-button>
49
+ `)}
50
+ `)}
51
+ `)}
52
+ </nav>
53
+ </slot>
54
+ <slot name=${`crud-${position}-after`}></slot>
55
+ </section>
56
+ `)}
57
+ `;
58
+ /**
59
+ * Default header crud buttons area for Entity Management screen
60
+ * @internal
61
+ */
62
+ export const headerCrudAreaTemplate = (prefix) => html `
63
+ ${crudButtonsTemplate(prefix, CrudMenuPosition.Top)}
64
+ ${when((x) => x.crudMenuPosition === CrudMenuPosition.Column &&
65
+ !x.hasContentInSlot('crud-top') &&
66
+ !x.hasContentInSlot('crud-bottom'), html `
67
+ ${addButtonTemplate(prefix)}
68
+ `)}
69
+ `;
70
+ /**
71
+ * Default header for Entity Management screen
72
+ * @internal
73
+ */
74
+ export const defaultHeader = (prefix) => html `
75
+ <h3 class="header-title">${(x) => x.title}</h3>
76
+ ${headerCrudAreaTemplate(prefix)}
77
+ `;
20
78
  /**
21
79
  * Header with search-bar for Entity Management screen
22
80
  * @internal
@@ -28,12 +86,7 @@ export const searchBarHeader = (prefix) => html `
28
86
  :options="${(x) => x.searchBarConfig}"
29
87
  @selectionChange=${(x, ctx) => x.searchChanged(customEvent(ctx))}
30
88
  ></${prefix}-search-bar>
31
- ${when((x) => x.createEvent, html `
32
- <${prefix}-button class="add-button" appearance="neutral" @click=${(x, y) => x.createEntity()}>
33
- <${prefix}-icon size="lg" name="plus"></${prefix}-icon>
34
- Add
35
- </${prefix}-button>
36
- `)}
89
+ ${headerCrudAreaTemplate(prefix)}
37
90
  </div>
38
91
  `;
39
92
  /**
@@ -62,13 +115,12 @@ export const getPrefixedEntities = (prefix) => html `
62
115
  :datasourceConfig=${(x) => x.datasourceConfig}
63
116
  design-system-prefix=${prefix}
64
117
  data-test-id="entity-list"
65
- hide-edit=${(x) => x.hideEdit}
66
- hide-delete=${(x) => x.hideDelete}
118
+ hide-edit=${(x) => x.shouldHideEditInColumn}
119
+ hide-delete=${(x) => x.shouldHideDeleteInColumn}
67
120
  header-case-type=${(x) => x.headerCaseType}
68
121
  datasource-type=${(x) => x.datasourceType}
69
- >
70
- <slot name="header" slot="header">${defaultHeader}</slot>
71
- </entity-list>
122
+ ></entity-list>
123
+ <slot name="footer" slot="footer">${crudButtonsTemplate(prefix, CrudMenuPosition.Bottom)}</slot>
72
124
  <${prefix}-modal
73
125
  ${ref('editEntityModal')}
74
126
  class="edit-modal"
@@ -1,4 +1,5 @@
1
1
  import { __awaiter, __decorate } from "tslib";
2
+ import { Events } from '@ag-grid-community/core';
2
3
  import { Connect } from '@genesislcap/foundation-comms';
3
4
  import { LifecycleMixin } from '@genesislcap/foundation-utils';
4
5
  import { GRID_READY_EVENT, } from '@genesislcap/foundation-zero-grid-pro';
@@ -36,14 +37,14 @@ let List = class List extends LifecycleMixin(FASTElement) {
36
37
  connectedCallback() {
37
38
  super.connectedCallback();
38
39
  this.grid.addEventListener(GRID_READY_EVENT, () => {
39
- this.grid.gridApi.addEventListener('firstDataRendered', () => {
40
+ this.grid.gridApi.addEventListener(Events.EVENT_FIRST_DATA_RENDERED, () => {
40
41
  if (this.sizeColumnsToFit) {
41
42
  this.grid.gridApi.sizeColumnsToFit();
42
43
  }
43
44
  });
44
- this.grid.gridApi.addEventListener('rowClicked', (e) => this.select(e));
45
+ this.grid.gridApi.addEventListener(Events.EVENT_ROW_CLICKED, (e) => this.select(e));
45
46
  if (this.updateEvent) {
46
- this.grid.gridApi.addEventListener('cellEditRequest', (e) => this.onCellEditingStopped(e));
47
+ this.grid.gridApi.addEventListener(Events.EVENT_CELL_EDIT_REQUEST, (e) => this.onCellEditingStopped(e));
47
48
  }
48
49
  this.actionButtonsConfig = [];
49
50
  if (this.updateEvent && !this.hideEdit) {
package/dist/esm/types.js CHANGED
@@ -1,3 +1,17 @@
1
1
  import { DI } from '@microsoft/fast-foundation';
2
2
  export const RESOURCE_NAME = DI.createInterface('resourceName');
3
3
  export const ENTITY_NAME = DI.createInterface('entityName');
4
+ export var ActionsMenuStyle;
5
+ (function (ActionsMenuStyle) {
6
+ ActionsMenuStyle["Default"] = "default";
7
+ ActionsMenuStyle["ActionsVertical"] = "actions-vertical";
8
+ ActionsMenuStyle["ActionsHorizontal"] = "actions-horizontal";
9
+ })(ActionsMenuStyle || (ActionsMenuStyle = {}));
10
+ export var CrudMenuPosition;
11
+ (function (CrudMenuPosition) {
12
+ CrudMenuPosition["Column"] = "column";
13
+ CrudMenuPosition["Top"] = "top";
14
+ CrudMenuPosition["Bottom"] = "bottom";
15
+ CrudMenuPosition["Action"] = "action";
16
+ CrudMenuPosition["None"] = "none";
17
+ })(CrudMenuPosition || (CrudMenuPosition = {}));
@@ -602,6 +602,128 @@
602
602
  "isAbstract": false,
603
603
  "name": "criteriaChanged"
604
604
  },
605
+ {
606
+ "kind": "Property",
607
+ "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#crudActionMenuName:member",
608
+ "docComment": "/**\n * The label of the crud action menu\n */\n",
609
+ "excerptTokens": [
610
+ {
611
+ "kind": "Content",
612
+ "text": "crudActionMenuName: "
613
+ },
614
+ {
615
+ "kind": "Content",
616
+ "text": "string"
617
+ },
618
+ {
619
+ "kind": "Content",
620
+ "text": ";"
621
+ }
622
+ ],
623
+ "isReadonly": false,
624
+ "isOptional": false,
625
+ "releaseTag": "Public",
626
+ "name": "crudActionMenuName",
627
+ "propertyTypeTokenRange": {
628
+ "startIndex": 1,
629
+ "endIndex": 2
630
+ },
631
+ "isStatic": false,
632
+ "isProtected": false,
633
+ "isAbstract": false
634
+ },
635
+ {
636
+ "kind": "Property",
637
+ "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#crudMenuPosition:member",
638
+ "docComment": "/**\n * Determines where the buttons will appear\n *\n * @public\n */\n",
639
+ "excerptTokens": [
640
+ {
641
+ "kind": "Content",
642
+ "text": "crudMenuPosition: "
643
+ },
644
+ {
645
+ "kind": "Reference",
646
+ "text": "CrudMenuPosition",
647
+ "canonicalReference": "@genesislcap/foundation-entity-management!~CrudMenuPosition:enum"
648
+ },
649
+ {
650
+ "kind": "Content",
651
+ "text": ";"
652
+ }
653
+ ],
654
+ "isReadonly": false,
655
+ "isOptional": false,
656
+ "releaseTag": "Public",
657
+ "name": "crudMenuPosition",
658
+ "propertyTypeTokenRange": {
659
+ "startIndex": 1,
660
+ "endIndex": 2
661
+ },
662
+ "isStatic": false,
663
+ "isProtected": false,
664
+ "isAbstract": false
665
+ },
666
+ {
667
+ "kind": "Property",
668
+ "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#crudMenuStyle:member",
669
+ "docComment": "/**\n * Determines the style of the buttons\n *\n * @public\n */\n",
670
+ "excerptTokens": [
671
+ {
672
+ "kind": "Content",
673
+ "text": "crudMenuStyle: "
674
+ },
675
+ {
676
+ "kind": "Reference",
677
+ "text": "ActionsMenuStyle",
678
+ "canonicalReference": "@genesislcap/foundation-entity-management!~ActionsMenuStyle:enum"
679
+ },
680
+ {
681
+ "kind": "Content",
682
+ "text": ";"
683
+ }
684
+ ],
685
+ "isReadonly": false,
686
+ "isOptional": false,
687
+ "releaseTag": "Public",
688
+ "name": "crudMenuStyle",
689
+ "propertyTypeTokenRange": {
690
+ "startIndex": 1,
691
+ "endIndex": 2
692
+ },
693
+ "isStatic": false,
694
+ "isProtected": false,
695
+ "isAbstract": false
696
+ },
697
+ {
698
+ "kind": "Property",
699
+ "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#crudMenuWrapper:member",
700
+ "docComment": "/**\n * The Id of the crud buttons wrapper element\n */\n",
701
+ "excerptTokens": [
702
+ {
703
+ "kind": "Content",
704
+ "text": "crudMenuWrapper: "
705
+ },
706
+ {
707
+ "kind": "Content",
708
+ "text": "any"
709
+ },
710
+ {
711
+ "kind": "Content",
712
+ "text": ";"
713
+ }
714
+ ],
715
+ "isReadonly": false,
716
+ "isOptional": false,
717
+ "releaseTag": "Public",
718
+ "name": "crudMenuWrapper",
719
+ "propertyTypeTokenRange": {
720
+ "startIndex": 1,
721
+ "endIndex": 2
722
+ },
723
+ "isStatic": false,
724
+ "isProtected": false,
725
+ "isAbstract": false
726
+ },
605
727
  {
606
728
  "kind": "Property",
607
729
  "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#datasourceConfig:member",
@@ -954,6 +1076,54 @@
954
1076
  "isAbstract": false,
955
1077
  "name": "editModalVisibleChanged"
956
1078
  },
1079
+ {
1080
+ "kind": "Method",
1081
+ "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#emitCrud:member(1)",
1082
+ "docComment": "/**\n * Emit the CRUD event for the selected entity\n *\n * @param action - the action to emit\n */\n",
1083
+ "excerptTokens": [
1084
+ {
1085
+ "kind": "Content",
1086
+ "text": "emitCrud(action: "
1087
+ },
1088
+ {
1089
+ "kind": "Content",
1090
+ "text": "'create' | 'edit' | 'delete'"
1091
+ },
1092
+ {
1093
+ "kind": "Content",
1094
+ "text": "): "
1095
+ },
1096
+ {
1097
+ "kind": "Content",
1098
+ "text": "void"
1099
+ },
1100
+ {
1101
+ "kind": "Content",
1102
+ "text": ";"
1103
+ }
1104
+ ],
1105
+ "isStatic": false,
1106
+ "returnTypeTokenRange": {
1107
+ "startIndex": 3,
1108
+ "endIndex": 4
1109
+ },
1110
+ "releaseTag": "Public",
1111
+ "isProtected": false,
1112
+ "overloadIndex": 1,
1113
+ "parameters": [
1114
+ {
1115
+ "parameterName": "action",
1116
+ "parameterTypeTokenRange": {
1117
+ "startIndex": 1,
1118
+ "endIndex": 2
1119
+ },
1120
+ "isOptional": false
1121
+ }
1122
+ ],
1123
+ "isOptional": false,
1124
+ "isAbstract": false,
1125
+ "name": "emitCrud"
1126
+ },
957
1127
  {
958
1128
  "kind": "Property",
959
1129
  "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#enableCellFlashing:member",
@@ -1201,6 +1371,84 @@
1201
1371
  "isProtected": false,
1202
1372
  "isAbstract": false
1203
1373
  },
1374
+ {
1375
+ "kind": "Method",
1376
+ "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#hasContentInSlot:member(1)",
1377
+ "docComment": "/**\n * Checks if a slot contains any content.\n *\n * @param slotName - The name of the slot to check.\n *\n * @returns True if the slot has content, otherwise false.\n *\n * @public\n */\n",
1378
+ "excerptTokens": [
1379
+ {
1380
+ "kind": "Content",
1381
+ "text": "hasContentInSlot(slotName: "
1382
+ },
1383
+ {
1384
+ "kind": "Content",
1385
+ "text": "string"
1386
+ },
1387
+ {
1388
+ "kind": "Content",
1389
+ "text": "): "
1390
+ },
1391
+ {
1392
+ "kind": "Content",
1393
+ "text": "boolean"
1394
+ },
1395
+ {
1396
+ "kind": "Content",
1397
+ "text": ";"
1398
+ }
1399
+ ],
1400
+ "isStatic": false,
1401
+ "returnTypeTokenRange": {
1402
+ "startIndex": 3,
1403
+ "endIndex": 4
1404
+ },
1405
+ "releaseTag": "Public",
1406
+ "isProtected": false,
1407
+ "overloadIndex": 1,
1408
+ "parameters": [
1409
+ {
1410
+ "parameterName": "slotName",
1411
+ "parameterTypeTokenRange": {
1412
+ "startIndex": 1,
1413
+ "endIndex": 2
1414
+ },
1415
+ "isOptional": false
1416
+ }
1417
+ ],
1418
+ "isOptional": false,
1419
+ "isAbstract": false,
1420
+ "name": "hasContentInSlot"
1421
+ },
1422
+ {
1423
+ "kind": "Property",
1424
+ "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#hasSelectedEntity:member",
1425
+ "docComment": "/**\n * Determines whether there is a selected entity\n */\n",
1426
+ "excerptTokens": [
1427
+ {
1428
+ "kind": "Content",
1429
+ "text": "get hasSelectedEntity(): "
1430
+ },
1431
+ {
1432
+ "kind": "Content",
1433
+ "text": "boolean"
1434
+ },
1435
+ {
1436
+ "kind": "Content",
1437
+ "text": ";"
1438
+ }
1439
+ ],
1440
+ "isReadonly": true,
1441
+ "isOptional": false,
1442
+ "releaseTag": "Public",
1443
+ "name": "hasSelectedEntity",
1444
+ "propertyTypeTokenRange": {
1445
+ "startIndex": 1,
1446
+ "endIndex": 2
1447
+ },
1448
+ "isStatic": false,
1449
+ "isProtected": false,
1450
+ "isAbstract": false
1451
+ },
1204
1452
  {
1205
1453
  "kind": "Property",
1206
1454
  "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#headerCaseType:member",
@@ -1910,6 +2158,66 @@
1910
2158
  "isProtected": false,
1911
2159
  "isAbstract": false
1912
2160
  },
2161
+ {
2162
+ "kind": "Property",
2163
+ "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#shouldHideDeleteInColumn:member",
2164
+ "docComment": "/**\n * Determines whether the button delete should be hidden in the column\n */\n",
2165
+ "excerptTokens": [
2166
+ {
2167
+ "kind": "Content",
2168
+ "text": "get shouldHideDeleteInColumn(): "
2169
+ },
2170
+ {
2171
+ "kind": "Content",
2172
+ "text": "boolean"
2173
+ },
2174
+ {
2175
+ "kind": "Content",
2176
+ "text": ";"
2177
+ }
2178
+ ],
2179
+ "isReadonly": true,
2180
+ "isOptional": false,
2181
+ "releaseTag": "Public",
2182
+ "name": "shouldHideDeleteInColumn",
2183
+ "propertyTypeTokenRange": {
2184
+ "startIndex": 1,
2185
+ "endIndex": 2
2186
+ },
2187
+ "isStatic": false,
2188
+ "isProtected": false,
2189
+ "isAbstract": false
2190
+ },
2191
+ {
2192
+ "kind": "Property",
2193
+ "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#shouldHideEditInColumn:member",
2194
+ "docComment": "/**\n * Determines whether the button edit should be hidden in the column\n */\n",
2195
+ "excerptTokens": [
2196
+ {
2197
+ "kind": "Content",
2198
+ "text": "get shouldHideEditInColumn(): "
2199
+ },
2200
+ {
2201
+ "kind": "Content",
2202
+ "text": "boolean"
2203
+ },
2204
+ {
2205
+ "kind": "Content",
2206
+ "text": ";"
2207
+ }
2208
+ ],
2209
+ "isReadonly": true,
2210
+ "isOptional": false,
2211
+ "releaseTag": "Public",
2212
+ "name": "shouldHideEditInColumn",
2213
+ "propertyTypeTokenRange": {
2214
+ "startIndex": 1,
2215
+ "endIndex": 2
2216
+ },
2217
+ "isStatic": false,
2218
+ "isProtected": false,
2219
+ "isAbstract": false
2220
+ },
1913
2221
  {
1914
2222
  "kind": "Property",
1915
2223
  "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#sizeColumnsToFit:member",