@genesislcap/foundation-entity-management 14.27.2-alpha-af4c16a.0 → 14.28.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.
@@ -129,7 +129,7 @@
129
129
  {
130
130
  "kind": "variable",
131
131
  "name": "styles",
132
- "default": "css`\n :host {\n contain: content;\n }\n\n .container {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n foundation-form {\n height: 100%;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n }\n\n .title {\n margin-left: 1px;\n }\n`",
132
+ "default": "css`\n :host {\n contain: content;\n }\n\n .container {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n foundation-form {\n height: 100%;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n }\n\n .title {\n margin-left: 1px;\n }\n\n :host::part(header) {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n`",
133
133
  "description": "Defines the css of the entity component as an ElementStyles object"
134
134
  }
135
135
  ],
@@ -151,7 +151,7 @@
151
151
  {
152
152
  "kind": "variable",
153
153
  "name": "template",
154
- "default": "html<EntityManagement>`\n <div class=\"container\">\n <entity-list\n title=${(x) => x.title}\n persist-column-state-key=${(x) => x.persistColumnStateKey}\n size-columns-to-fit=${(x) => x.sizeColumnsToFit}\n enable-filter-bar=${(x) => x.enableFilterBar}\n resourceName=${(x) => x.resourceName}\n :createEvent=${(x) => x.createEvent}\n :deleteEvent=${(x) => x.deleteEvent}\n :updateEvent=${(x) => x.updateEvent}\n :columns=${(x) => x.columns}\n :datasourceConfig=${(x) => x.datasourceConfig}\n data-test-id=\"entity-list\"\n ></entity-list>\n <zero-modal\n ${ref('editEntityModal')}\n position=\"right\"\n :onCloseCallback=${(x) => x.closeModal.bind(x)}\n data-test-id=\"edit-entity-modal\"\n >\n <div slot=\"top\" data-test-id=\"dialog-title\">${(x) => x.editDialogTitle}</div>\n\n <slot name=\"edit\">\n ${when(\n (x) => x.editModalVisible,\n html<EntityManagement>`\n <foundation-form\n resourceName=${(x) => x.formResourceName}\n :data=${(x) => x.editedEntity}\n :uischema=${(x) => x.formUiSchema}\n @submit-success=${(x, c) => x.submitEntityChanges(c.event as CustomEvent)}\n @submit-failure=${(x, c) =>\n x.errorSnack((c.event as CustomEvent<{ errors: MessageError[] }>).detail.errors)}\n ></foundation-form>\n `\n )}\n </slot>\n </zero-modal>\n </div>\n`",
154
+ "default": "html<EntityManagement>`\n <div class=\"container\">\n <slot name=\"header\" part=\"header\">${defaultHeader}</slot>\n <entity-list\n title=${(x) => x.title}\n persist-column-state-key=${(x) => x.persistColumnStateKey}\n size-columns-to-fit=${(x) => x.sizeColumnsToFit}\n enable-filter-bar=${(x) => x.enableFilterBar}\n resourceName=${(x) => x.resourceName}\n :deleteEvent=${(x) => x.deleteEvent}\n :updateEvent=${(x) => x.updateEvent}\n :columns=${(x) => x.columns}\n :datasourceConfig=${(x) => x.datasourceConfig}\n data-test-id=\"entity-list\"\n >\n <slot name=\"header\" slot=\"header\">${defaultHeader}</slot>\n </entity-list>\n <zero-modal\n ${ref('editEntityModal')}\n position=${(x) => x.modalPosition}\n :onCloseCallback=${(x) => x.closeModal.bind(x)}\n data-test-id=\"edit-entity-modal\"\n >\n <div slot=\"top\" data-test-id=\"dialog-title\">${(x) => x.editDialogTitle}</div>\n\n <slot name=\"edit\">\n ${when(\n (x) => x.editModalVisible,\n html<EntityManagement>`\n <foundation-form\n part=\"form\"\n resourceName=${(x) => x.formResourceName}\n :data=${(x) => x.editedEntity}\n :uischema=${(x) => x.formUiSchema}\n @submit-success=${(x, c) => x.submitEntityChanges(c.event as CustomEvent)}\n @submit-failure=${(x, c) =>\n x.errorSnack((c.event as CustomEvent<{ errors: MessageError[] }>).detail.errors)}\n ></foundation-form>\n `\n )}\n </slot>\n </zero-modal>\n </div>\n`",
155
155
  "description": "Defines the html of the entity component as a ViewTemplate object"
156
156
  }
157
157
  ],
@@ -333,6 +333,13 @@
333
333
  "text": "boolean"
334
334
  }
335
335
  },
336
+ {
337
+ "kind": "field",
338
+ "name": "defaultEntityValues",
339
+ "type": {
340
+ "text": "any"
341
+ }
342
+ },
336
343
  {
337
344
  "kind": "field",
338
345
  "name": "editDialogTitle",
@@ -382,6 +389,16 @@
382
389
  "text": "boolean"
383
390
  }
384
391
  },
392
+ {
393
+ "kind": "field",
394
+ "name": "modalPosition",
395
+ "type": {
396
+ "text": "'centre' | 'left' | 'right'"
397
+ },
398
+ "default": "'right'",
399
+ "description": "Determines where the modal dialog will appear on screen",
400
+ "privacy": "public"
401
+ },
385
402
  {
386
403
  "kind": "method",
387
404
  "name": "deepClone",
@@ -527,6 +544,15 @@
527
544
  "text": "boolean"
528
545
  },
529
546
  "fieldName": "enableCellFlashing"
547
+ },
548
+ {
549
+ "name": "modal-position",
550
+ "type": {
551
+ "text": "'centre' | 'left' | 'right'"
552
+ },
553
+ "default": "'right'",
554
+ "description": "Determines where the modal dialog will appear on screen",
555
+ "fieldName": "modalPosition"
530
556
  }
531
557
  ],
532
558
  "mixins": [
@@ -593,6 +619,55 @@
593
619
  }
594
620
  ]
595
621
  },
622
+ {
623
+ "kind": "javascript-module",
624
+ "path": "src/layouts/default.ts",
625
+ "declarations": [
626
+ {
627
+ "kind": "variable",
628
+ "name": "loginLayout",
629
+ "default": "new FASTElementLayout(\n html`\n <div class=\"container\">\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n `,\n baseLayoutCss\n)"
630
+ },
631
+ {
632
+ "kind": "variable",
633
+ "name": "defaultLayout",
634
+ "default": "new FASTElementLayout(\n html`\n <div class=\"container\">\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n `,\n css`\n ${baseLayoutCss}\n `\n)"
635
+ }
636
+ ],
637
+ "exports": [
638
+ {
639
+ "kind": "js",
640
+ "name": "loginLayout",
641
+ "declaration": {
642
+ "name": "loginLayout",
643
+ "module": "src/layouts/default.ts"
644
+ }
645
+ },
646
+ {
647
+ "kind": "js",
648
+ "name": "defaultLayout",
649
+ "declaration": {
650
+ "name": "defaultLayout",
651
+ "module": "src/layouts/default.ts"
652
+ }
653
+ }
654
+ ]
655
+ },
656
+ {
657
+ "kind": "javascript-module",
658
+ "path": "src/layouts/index.ts",
659
+ "declarations": [],
660
+ "exports": [
661
+ {
662
+ "kind": "js",
663
+ "name": "*",
664
+ "declaration": {
665
+ "name": "*",
666
+ "package": "./default"
667
+ }
668
+ }
669
+ ]
670
+ },
596
671
  {
597
672
  "kind": "javascript-module",
598
673
  "path": "src/list/index.ts",
@@ -615,7 +690,7 @@
615
690
  {
616
691
  "kind": "variable",
617
692
  "name": "listStyles",
618
- "default": "css`\n :host {\n contain: content;\n }\n\n :host,\n fast-router {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .container {\n display: flex;\n flex-direction: column;\n height: inherit;\n width: 100%;\n }\n\n .heading {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n`"
693
+ "default": "css`\n :host {\n contain: content;\n }\n\n :host,\n fast-router {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .container {\n display: flex;\n flex-direction: column;\n height: inherit;\n width: 100%;\n }\n`"
619
694
  }
620
695
  ],
621
696
  "exports": [
@@ -633,33 +708,13 @@
633
708
  "kind": "javascript-module",
634
709
  "path": "src/list/list.template.ts",
635
710
  "declarations": [
636
- {
637
- "kind": "function",
638
- "name": "buttonCellRenderer",
639
- "parameters": [
640
- {
641
- "name": "title"
642
- },
643
- {
644
- "name": "clickHandler"
645
- }
646
- ]
647
- },
648
711
  {
649
712
  "kind": "variable",
650
713
  "name": "listTemplate",
651
- "default": "html<List>`\n <div class=\"heading\">\n <h3 data-test-id=\"title\">${(x) => x.title}</h3>\n ${when(\n (x) => x.createEvent,\n html`\n <zero-button\n appearance=\"accent\"\n @click=${(x) => x.create()}\n ?disabled=\"${(x) => x.addDisabled}\"\n data-test-id=\"button-create\"\n >\n Add\n </zero-button>\n `\n )}\n </div>\n <div class=\"container\">\n ${when(\n (x) => x.enableFilterBar,\n html<List>`\n <zero-filter-bar\n resource=${(x) => x.resourceName}\n only=${(x) => x.columns?.map((colDef) => colDef.field).filter((field) => !!field)}\n labels=${(x) => x.columns?.map((colDef) => colDef.headerName || '')}\n target=\"datasource\"\n ></zero-filter-bar>\n `\n )}\n <zero-grid-pro\n ${ref('grid')}\n auto-cell-renderer-by-type\n rowSelection=\"single\"\n rowHeight=\"36\"\n headerHeight=\"36\"\n persist-column-state-key=${(x) => x.persistColumnStateKey}\n ?only-template-col-defs=${(x) => !!x.columns}\n suppressCellFocus=\"true\"\n suppressRowDeselection=\"true\"\n enable-cell-flashing=${(x) => x.enableCellFlashing}\n >\n <grid-pro-genesis-datasource\n ${ref('datasource')}\n resource-name=${(x) => x.resourceName}\n criteria=${(x) => x.datasourceConfig?.criteria}\n fields=${(x) => x.datasourceConfig?.fields}\n is-snapshot=${(x) => x.datasourceConfig?.isSnapshot}\n max-rows=${(x) => x.datasourceConfig?.maxRows}\n max-view=${(x) => x.datasourceConfig?.maxView}\n order-by=${(x) => x.datasourceConfig?.orderBy}\n reverse=${(x) => x.datasourceConfig?.reverse}\n ></grid-pro-genesis-datasource>\n ${repeat(\n (x) => x.columns,\n html`\n <grid-pro-column :definition=${(x) => x}></grid-pro-column>\n `\n )}\n ${repeat(\n (x) => x.actionButtonsConfig,\n html`\n <grid-pro-column :definition=${(x) => x}></grid-pro-column>\n `\n )}\n </zero-grid-pro>\n </div>\n`"
714
+ "default": "html<List>`\n <div class=\"container\">\n ${when(\n (x) => x.enableFilterBar,\n html<List>`\n <zero-filter-bar\n resource=${(x) => x.resourceName}\n only=${(x) => x.columns?.map((colDef) => colDef.field).filter((field) => !!field)}\n labels=${(x) => x.columns?.map((colDef) => colDef.headerName || '')}\n target=\"datasource\"\n ></zero-filter-bar>\n `\n )}\n <zero-grid-pro\n ${ref('grid')}\n auto-cell-renderer-by-type\n rowSelection=\"single\"\n rowHeight=\"36\"\n headerHeight=\"36\"\n persist-column-state-key=${(x) => x.persistColumnStateKey}\n ?only-template-col-defs=${(x) => !!x.columns}\n suppressCellFocus=\"true\"\n suppressRowDeselection=\"true\"\n enable-cell-flashing=${(x) => x.enableCellFlashing}\n >\n <grid-pro-genesis-datasource\n ${ref('datasource')}\n resource-name=${(x) => x.resourceName}\n criteria=${(x) => x.datasourceConfig?.criteria}\n fields=${(x) => x.datasourceConfig?.fields}\n is-snapshot=${(x) => x.datasourceConfig?.isSnapshot}\n max-rows=${(x) => x.datasourceConfig?.maxRows}\n max-view=${(x) => x.datasourceConfig?.maxView}\n order-by=${(x) => x.datasourceConfig?.orderBy}\n reverse=${(x) => x.datasourceConfig?.reverse}\n ></grid-pro-genesis-datasource>\n ${repeat(\n (x) => x.columns,\n html`\n <grid-pro-column :definition=${(x) => x}></grid-pro-column>\n `\n )}\n ${repeat(\n (x) => x.actionButtonsConfig,\n html`\n <grid-pro-column :definition=${(x) => x}></grid-pro-column>\n `\n )}\n </zero-grid-pro>\n </div>\n`"
652
715
  }
653
716
  ],
654
717
  "exports": [
655
- {
656
- "kind": "js",
657
- "name": "buttonCellRenderer",
658
- "declaration": {
659
- "name": "buttonCellRenderer",
660
- "module": "src/list/list.template.ts"
661
- }
662
- },
663
718
  {
664
719
  "kind": "js",
665
720
  "name": "listTemplate",
@@ -761,13 +816,6 @@
761
816
  },
762
817
  "default": "[]"
763
818
  },
764
- {
765
- "kind": "field",
766
- "name": "createEvent",
767
- "type": {
768
- "text": "string"
769
- }
770
- },
771
819
  {
772
820
  "kind": "field",
773
821
  "name": "deleteEvent",
@@ -812,11 +860,6 @@
812
860
  }
813
861
  ]
814
862
  },
815
- {
816
- "kind": "method",
817
- "name": "create",
818
- "privacy": "public"
819
- },
820
863
  {
821
864
  "kind": "field",
822
865
  "name": "edit",
@@ -905,55 +948,6 @@
905
948
  }
906
949
  ]
907
950
  },
908
- {
909
- "kind": "javascript-module",
910
- "path": "src/layouts/default.ts",
911
- "declarations": [
912
- {
913
- "kind": "variable",
914
- "name": "loginLayout",
915
- "default": "new FASTElementLayout(\n html`\n <div class=\"container\">\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n `,\n baseLayoutCss\n)"
916
- },
917
- {
918
- "kind": "variable",
919
- "name": "defaultLayout",
920
- "default": "new FASTElementLayout(\n html`\n <div class=\"container\">\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n `,\n css`\n ${baseLayoutCss}\n `\n)"
921
- }
922
- ],
923
- "exports": [
924
- {
925
- "kind": "js",
926
- "name": "loginLayout",
927
- "declaration": {
928
- "name": "loginLayout",
929
- "module": "src/layouts/default.ts"
930
- }
931
- },
932
- {
933
- "kind": "js",
934
- "name": "defaultLayout",
935
- "declaration": {
936
- "name": "defaultLayout",
937
- "module": "src/layouts/default.ts"
938
- }
939
- }
940
- ]
941
- },
942
- {
943
- "kind": "javascript-module",
944
- "path": "src/layouts/index.ts",
945
- "declarations": [],
946
- "exports": [
947
- {
948
- "kind": "js",
949
- "name": "*",
950
- "declaration": {
951
- "name": "*",
952
- "package": "./default"
953
- }
954
- }
955
- ]
956
- },
957
951
  {
958
952
  "kind": "javascript-module",
959
953
  "path": "src/main/index.ts",
@@ -1397,6 +1391,17 @@
1397
1391
  "module": "src/entities/entities.ts"
1398
1392
  }
1399
1393
  },
1394
+ {
1395
+ "kind": "field",
1396
+ "name": "defaultEntityValues",
1397
+ "type": {
1398
+ "text": "any"
1399
+ },
1400
+ "inheritedFrom": {
1401
+ "name": "EntityManagement",
1402
+ "module": "src/entities/entities.ts"
1403
+ }
1404
+ },
1400
1405
  {
1401
1406
  "kind": "field",
1402
1407
  "name": "editDialogTitle",
@@ -1474,6 +1479,20 @@
1474
1479
  "module": "src/entities/entities.ts"
1475
1480
  }
1476
1481
  },
1482
+ {
1483
+ "kind": "field",
1484
+ "name": "modalPosition",
1485
+ "type": {
1486
+ "text": "'centre' | 'left' | 'right'"
1487
+ },
1488
+ "default": "'right'",
1489
+ "description": "Determines where the modal dialog will appear on screen",
1490
+ "privacy": "public",
1491
+ "inheritedFrom": {
1492
+ "name": "EntityManagement",
1493
+ "module": "src/entities/entities.ts"
1494
+ }
1495
+ },
1477
1496
  {
1478
1497
  "kind": "method",
1479
1498
  "name": "deepClone",
@@ -1689,6 +1708,19 @@
1689
1708
  "name": "EntityManagement",
1690
1709
  "module": "src/entities/entities.ts"
1691
1710
  }
1711
+ },
1712
+ {
1713
+ "name": "modal-position",
1714
+ "type": {
1715
+ "text": "'centre' | 'left' | 'right'"
1716
+ },
1717
+ "default": "'right'",
1718
+ "description": "Determines where the modal dialog will appear on screen",
1719
+ "fieldName": "modalPosition",
1720
+ "inheritedFrom": {
1721
+ "name": "EntityManagement",
1722
+ "module": "src/entities/entities.ts"
1723
+ }
1692
1724
  }
1693
1725
  ]
1694
1726
  }
@@ -1921,7 +1953,21 @@
1921
1953
  {
1922
1954
  "kind": "javascript-module",
1923
1955
  "path": "src/utils/index.ts",
1924
- "declarations": [],
1956
+ "declarations": [
1957
+ {
1958
+ "kind": "function",
1959
+ "name": "buttonCellRenderer",
1960
+ "parameters": [
1961
+ {
1962
+ "name": "title"
1963
+ },
1964
+ {
1965
+ "name": "clickHandler"
1966
+ }
1967
+ ],
1968
+ "privacy": "public"
1969
+ }
1970
+ ],
1925
1971
  "exports": [
1926
1972
  {
1927
1973
  "kind": "js",
@@ -1938,6 +1984,14 @@
1938
1984
  "name": "*",
1939
1985
  "package": "./logger"
1940
1986
  }
1987
+ },
1988
+ {
1989
+ "kind": "js",
1990
+ "name": "buttonCellRenderer",
1991
+ "declaration": {
1992
+ "name": "buttonCellRenderer",
1993
+ "module": "src/utils/index.ts"
1994
+ }
1941
1995
  }
1942
1996
  ]
1943
1997
  },
@@ -472,6 +472,7 @@ export declare class EntityManagement extends EntityManagement_base {
472
472
  */
473
473
  editedEntity: any;
474
474
  submitting: boolean;
475
+ defaultEntityValues: any;
475
476
  /**
476
477
  * String which contains the text of the popup modal when the user is adding or editing an entity
477
478
  */
@@ -482,6 +483,11 @@ export declare class EntityManagement extends EntityManagement_base {
482
483
  sizeColumnsToFit: boolean;
483
484
  enableFilterBar: boolean;
484
485
  enableCellFlashing: boolean;
486
+ /**
487
+ * Determines where the modal dialog will appear on screen
488
+ * @public
489
+ */
490
+ modalPosition: 'centre' | 'left' | 'right';
485
491
  /**
486
492
  * Set up the web component
487
493
  * @internal
@@ -509,9 +515,15 @@ export declare class EntityManagement extends EntityManagement_base {
509
515
  */
510
516
  private selectEntity;
511
517
  /**
512
- * Sets up and opens the model to either edit or add an entity. Added as an event listener on the class when receiving the `edit-entity` event.
518
+ * Show the entity create form
519
+ * Sets the initial value on the form to be defaultEntityValues if present.
520
+ * @internal
521
+ */
522
+ createEntity(): void;
523
+ /**
524
+ * Opens the model to edit an entity. Added as an event listener on the class when receiving the `edit-entity` event.
513
525
  *
514
- * @param e - CustomEvent where `e.detail` is used to deduce whether to edit or add an entity.
526
+ * @param e - CustomEvent where `e.detail` is the entity to edit.
515
527
  * @internal
516
528
  */
517
529
  private editEntity;
@@ -1 +1 @@
1
- {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/entities/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AASzF,OAAO,EAAuB,WAAW,EAAc,MAAM,yBAAyB,CAAC;AAKvF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;;;;;;;;;4EAkFxF;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAnFL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAKa,gBAAiB,SAAQ,qBAA2B;IAC/D;;;;;;;OAOG;IACM,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC;IAErC;;;OAGG;IACG,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,CAAC,GAAG,IAAI,OAAA,KAAK,EAAE,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAE7C;;;OAGG;IACG,WAAW,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACG,WAAW,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACG,WAAW,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACG,KAAK,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACG,WAAW,EAAE,MAAM,CAAM;IAE/B;;;;;;;;;;OAUG;IAC8C,qBAAqB,EAAE,MAAM,CAAC;IAE/E;;;OAGG;IACS,OAAO,EAAE,MAAM,EAAE,CAAC;IAE9B;;;;;;;OAOG;IACS,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,YAAY,EAAE,GAAG,CAAC;IAClB,kBAAkB,EAAE,GAAG,CAAC;IACxB,kBAAkB,EAAE,GAAG,CAAC;IAEpC;;;OAGG;IACS,gBAAgB,EAAE,MAAM,CAAC;IAErC;;;;;;;OAOG;IACS,cAAc,EAAE,GAAG,CAAC;IAGhC;;;OAGG;IACS,YAAY,EAAE,GAAG,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACS,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAS;IAC9C,uBAAuB;IAShB,eAAe,EAAE,GAAG,CAAC;IAEiC,gBAAgB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAE1F;;;OAGG;IACG,iBAAiB;IAYvB;;;OAGG;IACM,SAAS,IAAI,IAAI;IAc1B;;;;;;;OAOG;IACU,mBAAmB,CAAC,CAAC,EAAE,WAAW;IAI/C;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAElB;IAEF;;;;;OAKG;YACW,UAAU;IA4BxB,OAAO,CAAC,UAAU;IAMX,UAAU;IAKjB;;;;;OAKG;IACG,YAAY,CAAC,CAAC,EAAE,WAAW;IAK3B,aAAa;IAoBnB,OAAO,CAAC,sBAAsB;IAgB9B;;;OAGG;IACI,WAAW,CAAC,OAAO,KAAA;IAuB1B;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE;CAexC"}
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/entities/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AASzF,OAAO,EAAuB,WAAW,EAAc,MAAM,yBAAyB,CAAC;AAKvF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;;;;;;;;;4EAkFxF;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAnFL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAKa,gBAAiB,SAAQ,qBAA2B;IAC/D;;;;;;;OAOG;IACM,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC;IAErC;;;OAGG;IACG,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,CAAC,GAAG,IAAI,OAAA,KAAK,EAAE,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAE7C;;;OAGG;IACG,WAAW,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACG,WAAW,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACG,WAAW,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACG,KAAK,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACG,WAAW,EAAE,MAAM,CAAM;IAE/B;;;;;;;;;;OAUG;IAC8C,qBAAqB,EAAE,MAAM,CAAC;IAE/E;;;OAGG;IACS,OAAO,EAAE,MAAM,EAAE,CAAC;IAE9B;;;;;;;OAOG;IACS,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,YAAY,EAAE,GAAG,CAAC;IAClB,kBAAkB,EAAE,GAAG,CAAC;IACxB,kBAAkB,EAAE,GAAG,CAAC;IAEpC;;;OAGG;IACS,gBAAgB,EAAE,MAAM,CAAC;IAErC;;;;;;;OAOG;IACS,cAAc,EAAE,GAAG,CAAC;IAGhC;;;OAGG;IACS,YAAY,EAAE,GAAG,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IAEpB,mBAAmB,EAAE,GAAG,CAAC;IAErC;;OAEG;IACS,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAS;IAC9C,uBAAuB;IAShB,eAAe,EAAE,GAAG,CAAC;IAEiC,gBAAgB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAE1F;;;OAGG;IACoC,aAAa,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAW;IAE5F;;;OAGG;IACG,iBAAiB;IAavB;;;OAGG;IACM,SAAS,IAAI,IAAI;IAe1B;;;;;;;OAOG;IACU,mBAAmB,CAAC,CAAC,EAAE,WAAW;IAI/C;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAElB;IAEF;;;;OAIG;IACI,YAAY;IASnB;;;;;OAKG;YACW,UAAU;IA0BxB,OAAO,CAAC,UAAU;IAMX,UAAU;IAKjB;;;;;OAKG;IACG,YAAY,CAAC,CAAC,EAAE,WAAW;IAK3B,aAAa;IAoBnB,OAAO,CAAC,sBAAsB;IAgB9B;;;OAGG;IACI,WAAW,CAAC,OAAO,KAAA;IAuB1B;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE;CAexC"}
@@ -1 +1 @@
1
- {"version":3,"file":"entities.styles.d.ts","sourceRoot":"","sources":["../../../src/entities/entities.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,iDAsBlB,CAAC"}
1
+ {"version":3,"file":"entities.styles.d.ts","sourceRoot":"","sources":["../../../src/entities/entities.styles.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,iDA4BlB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"entities.template.d.ts","sourceRoot":"","sources":["../../../src/entities/entities.template.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK9C;;;GAGG;AACH,eAAO,MAAM,QAAQ,uEAwCpB,CAAC"}
1
+ {"version":3,"file":"entities.template.d.ts","sourceRoot":"","sources":["../../../src/entities/entities.template.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAmB9C;;;GAGG;AACH,eAAO,MAAM,QAAQ,uEA2CpB,CAAC"}
@@ -14,7 +14,6 @@ export declare class List extends FASTElement {
14
14
  columns: ColDef[];
15
15
  datasourceConfig: DatasourceConfiguration;
16
16
  actionButtonsConfig: any[];
17
- createEvent: string;
18
17
  deleteEvent: string;
19
18
  updateEvent: string;
20
19
  connectedCallback(): void;
@@ -22,7 +21,6 @@ export declare class List extends FASTElement {
22
21
  private handleFilterChanged;
23
22
  private handleFilterCleared;
24
23
  private select;
25
- create(): void;
26
24
  private edit;
27
25
  delete(e: any): Promise<void>;
28
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/list/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAC9F,OAAO,EAAuB,WAAW,EAAc,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAI/D,qBAKa,IAAK,SAAQ,WAAW;IAC7B,YAAY,EAAE,MAAM,CAAM;IAC1B,KAAK,EAAE,MAAM,CAAM;IACwB,qBAAqB,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IACnF,IAAI,EAAG,WAAW,CAAC;IACnB,UAAU,EAAG,wBAAwB,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,mBAAmB,QAAM;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IAEhC,iBAAiB;IA4BjB,oBAAoB,IAAI,IAAI;IAQ5B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,MAAM;IAIP,MAAM;IAIb,OAAO,CAAC,IAAI,CAEV;IAEI,MAAM,CAAC,CAAC,KAAA;CAGf"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/list/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAC9F,OAAO,EAAuB,WAAW,EAAc,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAK/D,qBAKa,IAAK,SAAQ,WAAW;IAC7B,YAAY,EAAE,MAAM,CAAM;IAC1B,KAAK,EAAE,MAAM,CAAM;IACwB,qBAAqB,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IACnF,IAAI,EAAG,WAAW,CAAC;IACnB,UAAU,EAAG,wBAAwB,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,mBAAmB,QAAM;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IAEhC,iBAAiB;IA4BjB,oBAAoB,IAAI,IAAI;IAQ5B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,IAAI,CAEV;IAEI,MAAM,CAAC,CAAC,KAAA;CAGf"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.styles.d.ts","sourceRoot":"","sources":["../../../src/list/list.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,iDAyBtB,CAAC"}
1
+ {"version":3,"file":"list.styles.d.ts","sourceRoot":"","sources":["../../../src/list/list.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,iDAmBtB,CAAC"}
@@ -1,26 +1,3 @@
1
1
  import { List } from './list';
2
- export declare const buttonCellRenderer: (title: any, clickHandler: any) => {
3
- width: number;
4
- pinned: string;
5
- enableCellChangeFlash: boolean;
6
- cellStyle: {
7
- padding: string;
8
- lineHeight: string;
9
- };
10
- filter: boolean;
11
- suppressFiltersToolPanel: boolean;
12
- suppressColumnsToolPanel: boolean;
13
- headerName: string;
14
- minWidth: number;
15
- maxWidth: number;
16
- cellRendererSelector: (params: any) => {
17
- component: string;
18
- params: {
19
- actionClick: any;
20
- actionName: any;
21
- appearance: string;
22
- };
23
- };
24
- };
25
2
  export declare const listTemplate: import("@microsoft/fast-element").ViewTemplate<List, any>;
26
3
  //# sourceMappingURL=list.template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.template.d.ts","sourceRoot":"","sources":["../../../src/list/list.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;CAsB7B,CAAC;AAEH,eAAO,MAAM,YAAY,2DAkExB,CAAC"}
1
+ {"version":3,"file":"list.template.d.ts","sourceRoot":"","sources":["../../../src/list/list.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,eAAO,MAAM,YAAY,2DAkDxB,CAAC"}
@@ -1,3 +1,29 @@
1
1
  export * from './formatting';
2
2
  export * from './logger';
3
+ /**
4
+ * @public
5
+ */
6
+ export declare const buttonCellRenderer: (title: any, clickHandler: any) => {
7
+ width: number;
8
+ pinned: string;
9
+ enableCellChangeFlash: boolean;
10
+ cellStyle: {
11
+ padding: string;
12
+ lineHeight: string;
13
+ };
14
+ filter: boolean;
15
+ suppressFiltersToolPanel: boolean;
16
+ suppressColumnsToolPanel: boolean;
17
+ headerName: string;
18
+ minWidth: number;
19
+ maxWidth: number;
20
+ cellRendererSelector: (params: any) => {
21
+ component: string;
22
+ params: {
23
+ actionClick: any;
24
+ actionName: any;
25
+ appearance: string;
26
+ };
27
+ };
28
+ };
3
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;CAsB7B,CAAC"}
@@ -46,6 +46,11 @@ let EntityManagement = class EntityManagement extends LifecycleMixin(FASTElement
46
46
  */
47
47
  this.entityLabel = '';
48
48
  this.editModalVisible = false;
49
+ /**
50
+ * Determines where the modal dialog will appear on screen
51
+ * @public
52
+ */
53
+ this.modalPosition = 'right';
49
54
  /**
50
55
  * Updates the reference to the current entity stored in the class. Added as an event listener on the class when receiving the `rowSelected` event.
51
56
  *
@@ -80,6 +85,7 @@ let EntityManagement = class EntityManagement extends LifecycleMixin(FASTElement
80
85
  if (this.deleteEvent) {
81
86
  this.addEventListener('delete-entity', this.deleteEntity);
82
87
  }
88
+ this.addEventListener('create-entity', this.createEntity);
83
89
  this.addEventListener('edit-entity', this.editEntity);
84
90
  this.addEventListener('read-entity', this.readEntity);
85
91
  });
@@ -97,6 +103,7 @@ let EntityManagement = class EntityManagement extends LifecycleMixin(FASTElement
97
103
  copy.formResourceName = structuredClone(this.formResourceName);
98
104
  copy.formUiSchema = structuredClone(this.formUiSchema);
99
105
  copy.updateFormUiSchema = structuredClone(this.updateFormUiSchema);
106
+ copy.defaultEntityValues = structuredClone(this.defaultEntityValues);
100
107
  // this.columns[number] might contain a function, so can't use structuredClone
101
108
  copy.columns = this.columns ? [...this.columns].map((x) => (Object.assign({}, x))) : this.columns;
102
109
  return copy;
@@ -115,18 +122,30 @@ let EntityManagement = class EntityManagement extends LifecycleMixin(FASTElement
115
122
  });
116
123
  }
117
124
  /**
118
- * Sets up and opens the model to either edit or add an entity. Added as an event listener on the class when receiving the `edit-entity` event.
125
+ * Show the entity create form
126
+ * Sets the initial value on the form to be defaultEntityValues if present.
127
+ * @internal
128
+ */
129
+ createEntity() {
130
+ this.editDialogTitle = `Add ${this.entityLabel}`;
131
+ this.formUiSchema = this.createFormUiSchema;
132
+ this.formResourceName = this.createEvent;
133
+ this.editedEntity = Object.assign({}, this.defaultEntityValues);
134
+ this.editModalVisible = true;
135
+ }
136
+ /**
137
+ * Opens the model to edit an entity. Added as an event listener on the class when receiving the `edit-entity` event.
119
138
  *
120
- * @param e - CustomEvent where `e.detail` is used to deduce whether to edit or add an entity.
139
+ * @param e - CustomEvent where `e.detail` is the entity to edit.
121
140
  * @internal
122
141
  */
123
- editEntity(e) {
142
+ editEntity({ detail }) {
124
143
  return __awaiter(this, void 0, void 0, function* () {
125
- this.editDialogTitle = `${e.detail ? 'Edit' : 'Add'} ${this.entityLabel}`;
126
- this.formUiSchema = e.detail ? this.updateFormUiSchema : this.createFormUiSchema;
127
- this.formResourceName = e.detail ? this.updateEvent : this.createEvent;
128
- if (e.detail) {
129
- const _a = e.detail, { ROW_REF } = _a, formData = __rest(_a, ["ROW_REF"]);
144
+ this.editDialogTitle = `Edit ${this.entityLabel}`;
145
+ this.formUiSchema = this.updateFormUiSchema;
146
+ this.formResourceName = this.updateEvent;
147
+ if (detail) {
148
+ const { ROW_REF } = detail, formData = __rest(detail, ["ROW_REF"]);
130
149
  this.editedEntity = formData;
131
150
  if (this.readEventFn) {
132
151
  const readEntityReq = yield this.readEventFn(formData);
@@ -139,9 +158,6 @@ let EntityManagement = class EntityManagement extends LifecycleMixin(FASTElement
139
158
  this.editedEntity = Object.assign(Object.assign({}, this.editedEntity), readEventReq.REPLY[0]);
140
159
  }
141
160
  }
142
- else {
143
- this.editedEntity = {};
144
- }
145
161
  this.editModalVisible = true;
146
162
  });
147
163
  }
@@ -292,6 +308,9 @@ __decorate([
292
308
  __decorate([
293
309
  observable
294
310
  ], EntityManagement.prototype, "submitting", void 0);
311
+ __decorate([
312
+ observable
313
+ ], EntityManagement.prototype, "defaultEntityValues", void 0);
295
314
  __decorate([
296
315
  observable
297
316
  ], EntityManagement.prototype, "editDialogTitle", void 0);
@@ -307,6 +326,9 @@ __decorate([
307
326
  __decorate([
308
327
  attr({ mode: 'boolean', attribute: 'enable-cell-flashing' })
309
328
  ], EntityManagement.prototype, "enableCellFlashing", void 0);
329
+ __decorate([
330
+ attr({ attribute: 'modal-position' })
331
+ ], EntityManagement.prototype, "modalPosition", void 0);
310
332
  EntityManagement = __decorate([
311
333
  customElement({
312
334
  name: 'entity-management',
@@ -29,4 +29,10 @@ export const styles = css `
29
29
  .title {
30
30
  margin-left: 1px;
31
31
  }
32
+
33
+ :host::part(header) {
34
+ display: flex;
35
+ justify-content: space-between;
36
+ align-items: center;
37
+ }
32
38
  `;
@@ -3,28 +3,40 @@ import { html, ref, when } from '@microsoft/fast-element';
3
3
  import { List } from '../list';
4
4
  List;
5
5
  Form;
6
+ /**
7
+ * Default header for Entity Management screen
8
+ * @internal
9
+ */
10
+ const defaultHeader = html `
11
+ <h3>${(x) => x.title}</h3>
12
+ ${when((x) => x.createEvent, html `
13
+ <zero-button appearance="accent" @click=${(x, y) => x.createEntity()}>Add</zero-button>
14
+ `)}
15
+ `;
6
16
  /**
7
17
  * Defines the html of the entity component as a ViewTemplate object
8
18
  * @typeParam EntityManagement - the {@link EntityManagement | class} the template is defined for
9
19
  */
10
20
  export const template = html `
11
21
  <div class="container">
22
+ <slot name="header" part="header">${defaultHeader}</slot>
12
23
  <entity-list
13
24
  title=${(x) => x.title}
14
25
  persist-column-state-key=${(x) => x.persistColumnStateKey}
15
26
  size-columns-to-fit=${(x) => x.sizeColumnsToFit}
16
27
  enable-filter-bar=${(x) => x.enableFilterBar}
17
28
  resourceName=${(x) => x.resourceName}
18
- :createEvent=${(x) => x.createEvent}
19
29
  :deleteEvent=${(x) => x.deleteEvent}
20
30
  :updateEvent=${(x) => x.updateEvent}
21
31
  :columns=${(x) => x.columns}
22
32
  :datasourceConfig=${(x) => x.datasourceConfig}
23
33
  data-test-id="entity-list"
24
- ></entity-list>
34
+ >
35
+ <slot name="header" slot="header">${defaultHeader}</slot>
36
+ </entity-list>
25
37
  <zero-modal
26
38
  ${ref('editEntityModal')}
27
- position="right"
39
+ position=${(x) => x.modalPosition}
28
40
  :onCloseCallback=${(x) => x.closeModal.bind(x)}
29
41
  data-test-id="edit-entity-modal"
30
42
  >
@@ -33,6 +45,7 @@ export const template = html `
33
45
  <slot name="edit">
34
46
  ${when((x) => x.editModalVisible, html `
35
47
  <foundation-form
48
+ part="form"
36
49
  resourceName=${(x) => x.formResourceName}
37
50
  :data=${(x) => x.editedEntity}
38
51
  :uischema=${(x) => x.formUiSchema}
@@ -1,8 +1,9 @@
1
1
  import { __awaiter, __decorate } from "tslib";
2
2
  import { Events } from '@ag-grid-community/core';
3
3
  import { attr, customElement, FASTElement, observable } from '@microsoft/fast-element';
4
+ import { buttonCellRenderer } from '../utils';
4
5
  import { listStyles } from './list.styles';
5
- import { buttonCellRenderer, listTemplate } from './list.template';
6
+ import { listTemplate } from './list.template';
6
7
  let List = class List extends FASTElement {
7
8
  constructor() {
8
9
  super(...arguments);
@@ -56,9 +57,6 @@ let List = class List extends FASTElement {
56
57
  select(e) {
57
58
  this.$emit('rowSelected', e);
58
59
  }
59
- create() {
60
- this.$emit('edit-entity');
61
- }
62
60
  delete(e) {
63
61
  return __awaiter(this, void 0, void 0, function* () {
64
62
  this.$emit('delete-entity', e);
@@ -92,9 +90,6 @@ __decorate([
92
90
  __decorate([
93
91
  observable
94
92
  ], List.prototype, "actionButtonsConfig", void 0);
95
- __decorate([
96
- observable
97
- ], List.prototype, "createEvent", void 0);
98
93
  __decorate([
99
94
  observable
100
95
  ], List.prototype, "deleteEvent", void 0);
@@ -18,10 +18,4 @@ export const listStyles = css `
18
18
  height: inherit;
19
19
  width: 100%;
20
20
  }
21
-
22
- .heading {
23
- display: flex;
24
- justify-content: space-between;
25
- align-items: center;
26
- }
27
21
  `;
@@ -1,40 +1,5 @@
1
1
  import { html, ref, repeat, when } from '@microsoft/fast-element';
2
- export const buttonCellRenderer = (title, clickHandler) => ({
3
- width: 100,
4
- pinned: 'right',
5
- enableCellChangeFlash: false,
6
- cellStyle: { padding: '0', lineHeight: '25px' },
7
- filter: false,
8
- suppressFiltersToolPanel: true,
9
- suppressColumnsToolPanel: true,
10
- headerName: '',
11
- minWidth: 100,
12
- maxWidth: 100,
13
- cellRendererSelector: (params) => params.node.group
14
- ? undefined
15
- : {
16
- component: 'action',
17
- params: {
18
- actionClick: clickHandler,
19
- actionName: title,
20
- appearance: 'accent',
21
- },
22
- },
23
- });
24
2
  export const listTemplate = html `
25
- <div class="heading">
26
- <h3 data-test-id="title">${(x) => x.title}</h3>
27
- ${when((x) => x.createEvent, html `
28
- <zero-button
29
- appearance="accent"
30
- @click=${(x) => x.create()}
31
- ?disabled="${(x) => x.addDisabled}"
32
- data-test-id="button-create"
33
- >
34
- Add
35
- </zero-button>
36
- `)}
37
- </div>
38
3
  <div class="container">
39
4
  ${when((x) => x.enableFilterBar, html `
40
5
  <zero-filter-bar
@@ -1,2 +1,27 @@
1
1
  export * from './formatting';
2
2
  export * from './logger';
3
+ /**
4
+ * @public
5
+ */
6
+ export const buttonCellRenderer = (title, clickHandler) => ({
7
+ width: 100,
8
+ pinned: 'right',
9
+ enableCellChangeFlash: false,
10
+ cellStyle: { padding: '0', lineHeight: '25px' },
11
+ filter: false,
12
+ suppressFiltersToolPanel: true,
13
+ suppressColumnsToolPanel: true,
14
+ headerName: '',
15
+ minWidth: 100,
16
+ maxWidth: 100,
17
+ cellRendererSelector: (params) => params.node.group
18
+ ? undefined
19
+ : {
20
+ component: 'action',
21
+ params: {
22
+ actionClick: clickHandler,
23
+ actionName: title,
24
+ appearance: 'accent',
25
+ },
26
+ },
27
+ });
@@ -172,6 +172,29 @@
172
172
  "name": "",
173
173
  "preserveMemberOrder": false,
174
174
  "members": [
175
+ {
176
+ "kind": "Variable",
177
+ "canonicalReference": "@genesislcap/foundation-entity-management!buttonCellRenderer:var",
178
+ "docComment": "/**\n * @public\n */\n",
179
+ "excerptTokens": [
180
+ {
181
+ "kind": "Content",
182
+ "text": "buttonCellRenderer: "
183
+ },
184
+ {
185
+ "kind": "Content",
186
+ "text": "(title: any, clickHandler: any) => {\n width: number;\n pinned: string;\n enableCellChangeFlash: boolean;\n cellStyle: {\n padding: string;\n lineHeight: string;\n };\n filter: boolean;\n suppressFiltersToolPanel: boolean;\n suppressColumnsToolPanel: boolean;\n headerName: string;\n minWidth: number;\n maxWidth: number;\n cellRendererSelector: (params: any) => {\n component: string;\n params: {\n actionClick: any;\n actionName: any;\n appearance: string;\n };\n };\n}"
187
+ }
188
+ ],
189
+ "fileUrlPath": "src/utils/index.ts",
190
+ "isReadonly": true,
191
+ "releaseTag": "Public",
192
+ "name": "buttonCellRenderer",
193
+ "variableTypeTokenRange": {
194
+ "startIndex": 1,
195
+ "endIndex": 2
196
+ }
197
+ },
175
198
  {
176
199
  "kind": "TypeAlias",
177
200
  "canonicalReference": "@genesislcap/foundation-entity-management!DatasourceConfiguration:type",
@@ -493,6 +516,36 @@
493
516
  "isAbstract": false,
494
517
  "name": "deepClone"
495
518
  },
519
+ {
520
+ "kind": "Property",
521
+ "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#defaultEntityValues:member",
522
+ "docComment": "",
523
+ "excerptTokens": [
524
+ {
525
+ "kind": "Content",
526
+ "text": "defaultEntityValues: "
527
+ },
528
+ {
529
+ "kind": "Content",
530
+ "text": "any"
531
+ },
532
+ {
533
+ "kind": "Content",
534
+ "text": ";"
535
+ }
536
+ ],
537
+ "isReadonly": false,
538
+ "isOptional": false,
539
+ "releaseTag": "Public",
540
+ "name": "defaultEntityValues",
541
+ "propertyTypeTokenRange": {
542
+ "startIndex": 1,
543
+ "endIndex": 2
544
+ },
545
+ "isStatic": false,
546
+ "isProtected": false,
547
+ "isAbstract": false
548
+ },
496
549
  {
497
550
  "kind": "Property",
498
551
  "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#deleteEvent:member",
@@ -794,6 +847,36 @@
794
847
  "isProtected": false,
795
848
  "isAbstract": false
796
849
  },
850
+ {
851
+ "kind": "Property",
852
+ "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#modalPosition:member",
853
+ "docComment": "/**\n * Determines where the modal dialog will appear on screen\n *\n * @public\n */\n",
854
+ "excerptTokens": [
855
+ {
856
+ "kind": "Content",
857
+ "text": "modalPosition: "
858
+ },
859
+ {
860
+ "kind": "Content",
861
+ "text": "'centre' | 'left' | 'right'"
862
+ },
863
+ {
864
+ "kind": "Content",
865
+ "text": ";"
866
+ }
867
+ ],
868
+ "isReadonly": false,
869
+ "isOptional": false,
870
+ "releaseTag": "Public",
871
+ "name": "modalPosition",
872
+ "propertyTypeTokenRange": {
873
+ "startIndex": 1,
874
+ "endIndex": 2
875
+ },
876
+ "isStatic": false,
877
+ "isProtected": false,
878
+ "isAbstract": false
879
+ },
797
880
  {
798
881
  "kind": "Property",
799
882
  "canonicalReference": "@genesislcap/foundation-entity-management!EntityManagement#persistColumnStateKey:member",
@@ -18,6 +18,33 @@ import { RouterConfiguration } from '@microsoft/fast-router';
18
18
  import { Session } from '@genesislcap/foundation-comms';
19
19
  import { ViewTemplate } from '@microsoft/fast-element';
20
20
 
21
+ /**
22
+ * @public
23
+ */
24
+ export declare const buttonCellRenderer: (title: any, clickHandler: any) => {
25
+ width: number;
26
+ pinned: string;
27
+ enableCellChangeFlash: boolean;
28
+ cellStyle: {
29
+ padding: string;
30
+ lineHeight: string;
31
+ };
32
+ filter: boolean;
33
+ suppressFiltersToolPanel: boolean;
34
+ suppressColumnsToolPanel: boolean;
35
+ headerName: string;
36
+ minWidth: number;
37
+ maxWidth: number;
38
+ cellRendererSelector: (params: any) => {
39
+ component: string;
40
+ params: {
41
+ actionClick: any;
42
+ actionName: any;
43
+ appearance: string;
44
+ };
45
+ };
46
+ };
47
+
21
48
  /**
22
49
  * The attribute which is set to configure the resource that the entity manager is working with
23
50
  *
@@ -166,6 +193,7 @@ export declare class EntityManagement extends EntityManagement_base {
166
193
  */
167
194
  editedEntity: any;
168
195
  submitting: boolean;
196
+ defaultEntityValues: any;
169
197
  /**
170
198
  * String which contains the text of the popup modal when the user is adding or editing an entity
171
199
  */
@@ -176,6 +204,11 @@ export declare class EntityManagement extends EntityManagement_base {
176
204
  sizeColumnsToFit: boolean;
177
205
  enableFilterBar: boolean;
178
206
  enableCellFlashing: boolean;
207
+ /**
208
+ * Determines where the modal dialog will appear on screen
209
+ * @public
210
+ */
211
+ modalPosition: 'centre' | 'left' | 'right';
179
212
  /**
180
213
  * Set up the web component
181
214
  * @internal
@@ -203,9 +236,15 @@ export declare class EntityManagement extends EntityManagement_base {
203
236
  */
204
237
  private selectEntity;
205
238
  /**
206
- * Sets up and opens the model to either edit or add an entity. Added as an event listener on the class when receiving the `edit-entity` event.
239
+ * Show the entity create form
240
+ * Sets the initial value on the form to be defaultEntityValues if present.
241
+ * @internal
242
+ */
243
+ createEntity(): void;
244
+ /**
245
+ * Opens the model to edit an entity. Added as an event listener on the class when receiving the `edit-entity` event.
207
246
  *
208
- * @param e - CustomEvent where `e.detail` is used to deduce whether to edit or add an entity.
247
+ * @param e - CustomEvent where `e.detail` is the entity to edit.
209
248
  * @internal
210
249
  */
211
250
  private editEntity;
@@ -0,0 +1,34 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-entity-management](./foundation-entity-management.md) &gt; [buttonCellRenderer](./foundation-entity-management.buttoncellrenderer.md)
4
+
5
+ ## buttonCellRenderer variable
6
+
7
+
8
+ **Signature:**
9
+
10
+ ```typescript
11
+ buttonCellRenderer: (title: any, clickHandler: any) => {
12
+ width: number;
13
+ pinned: string;
14
+ enableCellChangeFlash: boolean;
15
+ cellStyle: {
16
+ padding: string;
17
+ lineHeight: string;
18
+ };
19
+ filter: boolean;
20
+ suppressFiltersToolPanel: boolean;
21
+ suppressColumnsToolPanel: boolean;
22
+ headerName: string;
23
+ minWidth: number;
24
+ maxWidth: number;
25
+ cellRendererSelector: (params: any) => {
26
+ component: string;
27
+ params: {
28
+ actionClick: any;
29
+ actionName: any;
30
+ appearance: string;
31
+ };
32
+ };
33
+ }
34
+ ```
@@ -0,0 +1,11 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-entity-management](./foundation-entity-management.md) &gt; [EntityManagement](./foundation-entity-management.entitymanagement.md) &gt; [defaultEntityValues](./foundation-entity-management.entitymanagement.defaultentityvalues.md)
4
+
5
+ ## EntityManagement.defaultEntityValues property
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ defaultEntityValues: any;
11
+ ```
@@ -41,6 +41,7 @@ Where:<br /> - the title of the grid is `Counterparty Management`<br /> - the na
41
41
  | [createEvent](./foundation-entity-management.entitymanagement.createevent.md) | | string | Name of the event handler on the Genesis server which handles creating an entity |
42
42
  | [createFormUiSchema](./foundation-entity-management.entitymanagement.createformuischema.md) | | any | |
43
43
  | [datasourceConfig](./foundation-entity-management.entitymanagement.datasourceconfig.md) | | [DatasourceConfiguration](./foundation-entity-management.datasourceconfiguration.md) | The configuration which is used when interacting with the resource on the backend |
44
+ | [defaultEntityValues](./foundation-entity-management.entitymanagement.defaultentityvalues.md) | | any | |
44
45
  | [deleteEvent](./foundation-entity-management.entitymanagement.deleteevent.md) | | string | Name of the event handler on the Genesis server which handles deleting the entity |
45
46
  | [editDialogTitle](./foundation-entity-management.entitymanagement.editdialogtitle.md) | | string | String which contains the text of the popup modal when the user is adding or editing an entity |
46
47
  | [editedEntity](./foundation-entity-management.entitymanagement.editedentity.md) | | any | Disables the form while enabled to stop the user dispatching a large number of duplicate events |
@@ -50,6 +51,7 @@ Where:<br /> - the title of the grid is `Counterparty Management`<br /> - the na
50
51
  | [enableFilterBar](./foundation-entity-management.entitymanagement.enablefilterbar.md) | | boolean | |
51
52
  | [entityLabel](./foundation-entity-management.entitymanagement.entitylabel.md) | | string | Label for the entity which has usages such as being shown in the title of the modal wen editing the entity |
52
53
  | [formUiSchema](./foundation-entity-management.entitymanagement.formuischema.md) | | any | |
54
+ | [modalPosition](./foundation-entity-management.entitymanagement.modalposition.md) | | 'centre' \| 'left' \| 'right' | Determines where the modal dialog will appear on screen |
53
55
  | [persistColumnStateKey](./foundation-entity-management.entitymanagement.persistcolumnstatekey.md) | | string | This attribute controls whether and how the entity manager stores the state of the columns when the user edits them. Omit this attribute to disable the functionality, set it to a unique value to enable it. |
54
56
  | [readEvent](./foundation-entity-management.entitymanagement.readevent.md) | | string | |
55
57
  | [readEventFn](./foundation-entity-management.entitymanagement.readeventfn.md) | | (...args: any\[\]) =&gt; {} | |
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-entity-management](./foundation-entity-management.md) &gt; [EntityManagement](./foundation-entity-management.entitymanagement.md) &gt; [modalPosition](./foundation-entity-management.entitymanagement.modalposition.md)
4
+
5
+ ## EntityManagement.modalPosition property
6
+
7
+ Determines where the modal dialog will appear on screen
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ modalPosition: 'centre' | 'left' | 'right';
13
+ ```
@@ -17,6 +17,7 @@
17
17
 
18
18
  | Variable | Description |
19
19
  | --- | --- |
20
+ | [buttonCellRenderer](./foundation-entity-management.buttoncellrenderer.md) | |
20
21
  | [getErrorFormat](./foundation-entity-management.geterrorformat.md) | Format the error as a string with a different format depending on whether <code>err</code> has a <code>FIELD</code> property or not |
21
22
  | [logger](./foundation-entity-management.logger.md) | |
22
23
  | [UsersColumnConfig](./foundation-entity-management.userscolumnconfig.md) | Defines the default columns which are present on the user management component |
@@ -24,6 +24,31 @@ import { RouterConfiguration } from '@microsoft/fast-router';
24
24
  import { Session } from '@genesislcap/foundation-comms';
25
25
  import { ViewTemplate } from '@microsoft/fast-element';
26
26
 
27
+ // @public (undocumented)
28
+ export const buttonCellRenderer: (title: any, clickHandler: any) => {
29
+ width: number;
30
+ pinned: string;
31
+ enableCellChangeFlash: boolean;
32
+ cellStyle: {
33
+ padding: string;
34
+ lineHeight: string;
35
+ };
36
+ filter: boolean;
37
+ suppressFiltersToolPanel: boolean;
38
+ suppressColumnsToolPanel: boolean;
39
+ headerName: string;
40
+ minWidth: number;
41
+ maxWidth: number;
42
+ cellRendererSelector: (params: any) => {
43
+ component: string;
44
+ params: {
45
+ actionClick: any;
46
+ actionName: any;
47
+ appearance: string;
48
+ };
49
+ };
50
+ };
51
+
27
52
  // @public
28
53
  export type DatasourceConfiguration = Omit<DatasourceOptions, 'resourceName' | 'request'>;
29
54
 
@@ -44,11 +69,15 @@ export class EntityManagement extends EntityManagement_base {
44
69
  protected connect: Connect;
45
70
  // @internal
46
71
  connectedCallback(): Promise<void>;
72
+ // @internal
73
+ createEntity(): void;
47
74
  createEvent: string;
48
75
  // (undocumented)
49
76
  createFormUiSchema: any;
50
77
  datasourceConfig: DatasourceConfiguration;
51
78
  deepClone(): Node;
79
+ // (undocumented)
80
+ defaultEntityValues: any;
52
81
  // @internal
53
82
  deleteEntity(e: CustomEvent): Promise<void>;
54
83
  deleteEvent: string;
@@ -73,6 +102,7 @@ export class EntityManagement extends EntityManagement_base {
73
102
  formResourceName: string;
74
103
  // (undocumented)
75
104
  formUiSchema: any;
105
+ modalPosition: 'centre' | 'left' | 'right';
76
106
  persistColumnStateKey: string;
77
107
  // (undocumented)
78
108
  readEvent: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-entity-management",
3
3
  "description": "Genesis Foundation Entity Management",
4
- "version": "14.27.2-alpha-af4c16a.0",
4
+ "version": "14.28.0",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -48,8 +48,8 @@
48
48
  "test:unit:watch": "watchlist src test -- npm run test:unit"
49
49
  },
50
50
  "devDependencies": {
51
- "@genesislcap/foundation-testing": "14.27.2-alpha-af4c16a.0",
52
- "@genesislcap/genx": "14.27.2-alpha-af4c16a.0",
51
+ "@genesislcap/foundation-testing": "^14.28.0",
52
+ "@genesislcap/genx": "^14.28.0",
53
53
  "@playwright/test": "^1.18.1",
54
54
  "bulma": "^0.9.3",
55
55
  "c8": "^7.11.0",
@@ -65,15 +65,15 @@
65
65
  "watchlist": "^0.3.1"
66
66
  },
67
67
  "dependencies": {
68
- "@genesislcap/foundation-comms": "14.27.2-alpha-af4c16a.0",
69
- "@genesislcap/foundation-errors": "14.27.2-alpha-af4c16a.0",
70
- "@genesislcap/foundation-forms": "14.27.2-alpha-af4c16a.0",
71
- "@genesislcap/foundation-login": "14.27.2-alpha-af4c16a.0",
72
- "@genesislcap/foundation-ui": "14.27.2-alpha-af4c16a.0",
73
- "@genesislcap/foundation-utils": "14.27.2-alpha-af4c16a.0",
74
- "@genesislcap/foundation-zero": "14.27.2-alpha-af4c16a.0",
75
- "@genesislcap/foundation-zero-grid-pro": "14.27.2-alpha-af4c16a.0",
76
- "@genesislcap/grid-pro": "14.27.2-alpha-af4c16a.0",
68
+ "@genesislcap/foundation-comms": "^14.28.0",
69
+ "@genesislcap/foundation-errors": "^14.28.0",
70
+ "@genesislcap/foundation-forms": "^14.28.0",
71
+ "@genesislcap/foundation-login": "^14.28.0",
72
+ "@genesislcap/foundation-ui": "^14.28.0",
73
+ "@genesislcap/foundation-utils": "^14.28.0",
74
+ "@genesislcap/foundation-zero": "^14.28.0",
75
+ "@genesislcap/foundation-zero-grid-pro": "^14.28.0",
76
+ "@genesislcap/grid-pro": "^14.28.0",
77
77
  "@microsoft/fast-components": "^2.21.3",
78
78
  "@microsoft/fast-element": "^1.7.0",
79
79
  "@microsoft/fast-foundation": "^2.33.2",
@@ -98,5 +98,5 @@
98
98
  "access": "public"
99
99
  },
100
100
  "customElements": "dist/custom-elements.json",
101
- "gitHead": "b98e9f5b2c814ed59377433ee350ba957ac7f14a"
101
+ "gitHead": "fcf71da3c5d4780fc557a01487181de1d0aabad2"
102
102
  }