ngx-material-entity 16.0.5 → 16.0.6

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 (209) hide show
  1. package/README.md +4 -4
  2. package/classes/base.builder.d.ts +0 -4
  3. package/classes/entity.model.d.ts +7 -0
  4. package/components/confirm-dialog/confirm-dialog-data.d.ts +0 -3
  5. package/components/confirm-dialog/confirm-dialog.component.d.ts +6 -0
  6. package/components/create-page/create-data.route.d.ts +16 -0
  7. package/components/create-page/create-page.component.d.ts +147 -0
  8. package/components/create-page/page-create-data.builder.d.ts +18 -0
  9. package/components/edit-page/edit-data.route.d.ts +3 -0
  10. package/components/edit-page/edit-page.component.d.ts +34 -9
  11. package/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.d.ts +3 -3
  12. package/components/input/array/array-string-chips-input/array-string-chips-input.component.d.ts +0 -2
  13. package/components/input/array/array-table.class.d.ts +0 -1
  14. package/components/input/base-input.component.d.ts +5 -2
  15. package/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.d.ts +0 -1
  16. package/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.d.ts +0 -1
  17. package/components/input/date/date-range-input/date-range-input.component.d.ts +2 -6
  18. package/components/input/date/date-time-input/date-time-input.component.d.ts +0 -1
  19. package/components/input/file/file-input/file-input.component.d.ts +1 -0
  20. package/components/input/input.component.d.ts +160 -38
  21. package/components/input/input.module.d.ts +48 -47
  22. package/components/input/number/number-input/number-input.component.d.ts +1 -1
  23. package/components/input/relations/references-many-input/references-many-input.component.d.ts +0 -1
  24. package/components/input/string/string-autocomplete-input/string-autocomplete-input.component.d.ts +0 -1
  25. package/components/input/string/string-input/string-input.component.d.ts +1 -1
  26. package/components/input/string/string-textbox-input/string-textbox-input.component.d.ts +1 -1
  27. package/components/table/create-dialog/{create-dialog-data.builder.d.ts → create-data.builder.d.ts} +7 -7
  28. package/components/table/create-dialog/create-entity-dialog-data.builder.d.ts +11 -13
  29. package/components/table/create-dialog/create-entity-dialog-data.d.ts +7 -9
  30. package/components/table/create-dialog/create-entity-dialog.component.d.ts +26 -5
  31. package/components/table/default.actions.d.ts +0 -4
  32. package/components/table/display-column-value/base-display-column-value.component.d.ts +3 -0
  33. package/components/table/display-column-value/display-column-value.component.d.ts +9 -0
  34. package/components/table/edit-dialog/edit-data.builder.d.ts +3 -3
  35. package/components/table/edit-dialog/edit-entity-data.d.ts +2 -4
  36. package/components/table/edit-dialog/edit-entity-dialog.component.d.ts +34 -4
  37. package/components/table/edit-dialog/edit-entity.builder.d.ts +3 -5
  38. package/components/table/table-data.builder.d.ts +6 -8
  39. package/components/table/table-data.d.ts +8 -18
  40. package/components/table/table.component.d.ts +35 -9
  41. package/components/tooltip/tooltip.component.d.ts +3 -0
  42. package/decorators/array/array-decorator-internal.data.d.ts +3 -2
  43. package/decorators/array/array-decorator.data.d.ts +6 -17
  44. package/decorators/array/array.decorator.d.ts +0 -1
  45. package/decorators/base/base-property.decorator.d.ts +0 -1
  46. package/decorators/base/property-decorator-internal.data.d.ts +0 -2
  47. package/decorators/base/property-decorator.data.d.ts +0 -10
  48. package/decorators/boolean/boolean-decorator.data.d.ts +0 -2
  49. package/decorators/boolean/boolean.decorator.d.ts +0 -1
  50. package/decorators/custom/custom-decorator.data.d.ts +0 -2
  51. package/decorators/custom/custom.decorator.d.ts +0 -1
  52. package/decorators/date/date-decorator.data.d.ts +0 -3
  53. package/decorators/date/date.decorator.d.ts +0 -1
  54. package/decorators/file/file-decorator.data.d.ts +0 -6
  55. package/decorators/file/file.decorator.d.ts +0 -1
  56. package/decorators/has-many/has-many-decorator-internal.data.d.ts +2 -4
  57. package/decorators/has-many/has-many-decorator.data.d.ts +2 -6
  58. package/decorators/has-many/has-many.decorator.d.ts +0 -1
  59. package/decorators/number/number-decorator-internal.data.d.ts +0 -1
  60. package/decorators/number/number.decorator.d.ts +0 -1
  61. package/decorators/object/object.decorator.d.ts +0 -1
  62. package/decorators/references-many/references-many-decorator-internal.data.d.ts +0 -1
  63. package/decorators/references-many/references-many-decorator.data.d.ts +0 -5
  64. package/decorators/references-many/references-many.decorator.d.ts +0 -1
  65. package/decorators/references-one/references-one.decorator.d.ts +0 -1
  66. package/decorators/string/string-decorator-internal.data.d.ts +1 -0
  67. package/decorators/string/string-decorator.data.d.ts +4 -2
  68. package/decorators/string/string.decorator.d.ts +0 -1
  69. package/default-global-configuration-values.d.ts +12 -0
  70. package/directives/drag-drop.directive.d.ts +0 -3
  71. package/directives/included-in.directive.d.ts +14 -0
  72. package/directives/number.directive.d.ts +0 -1
  73. package/encapsulation/js-2-xml.utilities.d.ts +0 -1
  74. package/encapsulation/jszip.utilities.d.ts +0 -1
  75. package/encapsulation/lodash.utilities.d.ts +2 -11
  76. package/encapsulation/reflect.utilities.d.ts +0 -7
  77. package/encapsulation/uuid.utilities.d.ts +0 -1
  78. package/esm2022/classes/base.builder.mjs +3 -6
  79. package/esm2022/classes/entity.model.mjs +1 -1
  80. package/esm2022/components/confirm-dialog/confirm-dialog-data.builder.mjs +1 -3
  81. package/esm2022/components/confirm-dialog/confirm-dialog-data.mjs +1 -1
  82. package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +9 -3
  83. package/esm2022/components/create-page/create-data.route.mjs +11 -0
  84. package/esm2022/components/create-page/create-page.component.mjs +275 -0
  85. package/esm2022/components/create-page/page-create-data.builder.mjs +30 -0
  86. package/esm2022/components/edit-page/edit-data.route.mjs +4 -1
  87. package/esm2022/components/edit-page/edit-page.component.mjs +43 -18
  88. package/esm2022/components/edit-page/page-edit-data.builder.mjs +3 -3
  89. package/esm2022/components/input/array/array-date-input/array-date-input.component.mjs +11 -10
  90. package/esm2022/components/input/array/array-date-range-input/array-date-range-input.component.mjs +10 -9
  91. package/esm2022/components/input/array/array-date-time-input/array-date-time-input.component.mjs +13 -12
  92. package/esm2022/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +17 -13
  93. package/esm2022/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +8 -9
  94. package/esm2022/components/input/array/array-table.class.mjs +4 -6
  95. package/esm2022/components/input/base-input.component.mjs +8 -4
  96. package/esm2022/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.mjs +8 -11
  97. package/esm2022/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.mjs +8 -7
  98. package/esm2022/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.mjs +6 -9
  99. package/esm2022/components/input/custom/custom.component.mjs +2 -1
  100. package/esm2022/components/input/date/date-input/date-input.component.mjs +8 -7
  101. package/esm2022/components/input/date/date-range-input/date-range-input.component.mjs +38 -43
  102. package/esm2022/components/input/date/date-time-input/date-time-input.component.mjs +10 -10
  103. package/esm2022/components/input/file/file-default-input/file-default-input.component.mjs +4 -3
  104. package/esm2022/components/input/file/file-image-input/file-image-input.component.mjs +6 -5
  105. package/esm2022/components/input/file/file-input/file-input.component.mjs +9 -6
  106. package/esm2022/components/input/input.component.mjs +225 -91
  107. package/esm2022/components/input/input.module.mjs +84 -81
  108. package/esm2022/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +8 -7
  109. package/esm2022/components/input/number/number-input/number-input.component.mjs +6 -5
  110. package/esm2022/components/input/number/number-slider-input/number-slider-input.component.mjs +6 -5
  111. package/esm2022/components/input/relations/references-many-input/references-many-input.component.mjs +24 -19
  112. package/esm2022/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +12 -8
  113. package/esm2022/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +8 -7
  114. package/esm2022/components/input/string/string-input/string-input.component.mjs +6 -5
  115. package/esm2022/components/input/string/string-password-input/string-password-input.component.mjs +8 -7
  116. package/esm2022/components/input/string/string-textbox-input/string-textbox-input.component.mjs +7 -6
  117. package/esm2022/components/table/create-dialog/create-data.builder.mjs +44 -0
  118. package/esm2022/components/table/create-dialog/create-entity-dialog-data.builder.mjs +8 -9
  119. package/esm2022/components/table/create-dialog/create-entity-dialog-data.mjs +1 -1
  120. package/esm2022/components/table/create-dialog/create-entity-dialog.component.mjs +30 -9
  121. package/esm2022/components/table/default.actions.mjs +1 -5
  122. package/esm2022/components/table/display-column-value/base-display-column-value.component.mjs +5 -1
  123. package/esm2022/components/table/display-column-value/display-column-value.component.mjs +10 -2
  124. package/esm2022/components/table/edit-dialog/edit-data.builder.mjs +3 -3
  125. package/esm2022/components/table/edit-dialog/edit-entity-data.mjs +1 -1
  126. package/esm2022/components/table/edit-dialog/edit-entity-dialog.component.mjs +37 -7
  127. package/esm2022/components/table/edit-dialog/edit-entity.builder.mjs +3 -3
  128. package/esm2022/components/table/table-data.builder.mjs +12 -12
  129. package/esm2022/components/table/table-data.mjs +1 -1
  130. package/esm2022/components/table/table.component.mjs +63 -34
  131. package/esm2022/components/tooltip/tooltip.component.mjs +6 -3
  132. package/esm2022/decorators/array/array-decorator-internal.data.mjs +4 -2
  133. package/esm2022/decorators/array/array-decorator.data.mjs +1 -2
  134. package/esm2022/decorators/array/array.decorator.mjs +2 -3
  135. package/esm2022/decorators/base/base-property.decorator.mjs +1 -2
  136. package/esm2022/decorators/base/decorator-types.enum.mjs +1 -1
  137. package/esm2022/decorators/base/property-decorator-internal.data.mjs +1 -3
  138. package/esm2022/decorators/base/property-decorator.data.mjs +5 -11
  139. package/esm2022/decorators/boolean/boolean-decorator.data.mjs +1 -1
  140. package/esm2022/decorators/boolean/boolean.decorator.mjs +1 -2
  141. package/esm2022/decorators/custom/custom-decorator-internal.data.mjs +1 -2
  142. package/esm2022/decorators/custom/custom-decorator.data.mjs +1 -1
  143. package/esm2022/decorators/custom/custom.decorator.mjs +1 -2
  144. package/esm2022/decorators/date/date-decorator-internal.data.mjs +2 -2
  145. package/esm2022/decorators/date/date-decorator.data.mjs +1 -1
  146. package/esm2022/decorators/date/date.decorator.mjs +2 -3
  147. package/esm2022/decorators/file/file-decorator-internal.data.mjs +1 -4
  148. package/esm2022/decorators/file/file-decorator.data.mjs +1 -6
  149. package/esm2022/decorators/file/file.decorator.mjs +2 -3
  150. package/esm2022/decorators/has-many/has-many-decorator-internal.data.mjs +1 -2
  151. package/esm2022/decorators/has-many/has-many-decorator.data.mjs +1 -1
  152. package/esm2022/decorators/has-many/has-many.decorator.mjs +1 -2
  153. package/esm2022/decorators/number/number-decorator-internal.data.mjs +4 -5
  154. package/esm2022/decorators/number/number-decorator.data.mjs +1 -1
  155. package/esm2022/decorators/number/number.decorator.mjs +1 -2
  156. package/esm2022/decorators/object/object.decorator.mjs +1 -2
  157. package/esm2022/decorators/references-many/references-many-decorator-internal.data.mjs +1 -2
  158. package/esm2022/decorators/references-many/references-many-decorator.data.mjs +1 -1
  159. package/esm2022/decorators/references-many/references-many.decorator.mjs +1 -2
  160. package/esm2022/decorators/references-one/references-one.decorator.mjs +1 -2
  161. package/esm2022/decorators/string/string-decorator-internal.data.mjs +7 -4
  162. package/esm2022/decorators/string/string-decorator.data.mjs +1 -1
  163. package/esm2022/decorators/string/string.decorator.mjs +1 -2
  164. package/esm2022/default-global-configuration-values.mjs +16 -1
  165. package/esm2022/directives/drag-drop.directive.mjs +1 -4
  166. package/esm2022/directives/included-in.directive.mjs +33 -0
  167. package/esm2022/directives/number.directive.mjs +1 -2
  168. package/esm2022/directives/password-match.directive.mjs +2 -2
  169. package/esm2022/encapsulation/js-2-xml.utilities.mjs +1 -2
  170. package/esm2022/encapsulation/jszip.utilities.mjs +1 -2
  171. package/esm2022/encapsulation/lodash.utilities.mjs +12 -19
  172. package/esm2022/encapsulation/reflect.utilities.mjs +1 -8
  173. package/esm2022/encapsulation/uuid.utilities.mjs +1 -2
  174. package/esm2022/functions/default-false.function.mjs +1 -2
  175. package/esm2022/functions/default-true.function.mjs +1 -2
  176. package/esm2022/functions/get-config-value.function.mjs +1 -2
  177. package/esm2022/functions/get-validation-error-message.function.mjs +13 -7
  178. package/esm2022/functions/get-validation-errors-tooltip-content.function.ts.mjs +6 -4
  179. package/esm2022/functions/is-async-function.function.mjs +1 -2
  180. package/esm2022/global-configuration-values.mjs +5 -2
  181. package/esm2022/mocks/placeholder-data.png.mjs +3 -3
  182. package/esm2022/public-api.mjs +3 -1
  183. package/esm2022/services/entity.service.mjs +15 -21
  184. package/esm2022/services/unsaved-changes.guard.mjs +7 -2
  185. package/esm2022/utilities/date.utilities.mjs +3 -9
  186. package/esm2022/utilities/entity.utilities.mjs +82 -79
  187. package/esm2022/utilities/file.utilities.mjs +1 -10
  188. package/esm2022/utilities/selection.utilities.mjs +4 -7
  189. package/esm2022/utilities/validation.utilities.mjs +40 -35
  190. package/fesm2022/ngx-material-entity.mjs +1309 -752
  191. package/fesm2022/ngx-material-entity.mjs.map +1 -1
  192. package/functions/default-false.function.d.ts +0 -1
  193. package/functions/default-true.function.d.ts +0 -1
  194. package/functions/get-config-value.function.d.ts +0 -1
  195. package/functions/get-validation-error-message.function.d.ts +3 -0
  196. package/functions/get-validation-errors-tooltip-content.function.ts.d.ts +4 -2
  197. package/functions/is-async-function.function.d.ts +0 -1
  198. package/global-configuration-values.d.ts +9 -34
  199. package/mocks/placeholder-data.png.d.ts +1 -1
  200. package/package.json +2 -1
  201. package/public-api.d.ts +2 -0
  202. package/services/entity.service.d.ts +11 -16
  203. package/services/unsaved-changes.guard.d.ts +13 -1
  204. package/utilities/date.utilities.d.ts +0 -6
  205. package/utilities/entity.utilities.d.ts +10 -36
  206. package/utilities/file.utilities.d.ts +0 -9
  207. package/utilities/selection.utilities.d.ts +0 -3
  208. package/utilities/validation.utilities.d.ts +0 -3
  209. package/esm2022/components/table/create-dialog/create-dialog-data.builder.mjs +0 -44
@@ -1,12 +1,12 @@
1
- import { Injector, OnInit } from '@angular/core';
1
+ import { EnvironmentInjector, OnInit } from '@angular/core';
2
2
  import { MatDialog, MatDialogRef } from '@angular/material/dialog';
3
3
  import { BaseEntityType } from '../../../classes/entity.model';
4
4
  import { NgxGlobalDefaultValues } from '../../../global-configuration-values';
5
5
  import { EntityService } from '../../../services/entity.service';
6
6
  import { EntityTab, EntityUtilities } from '../../../utilities/entity.utilities';
7
7
  import { ValidationError } from '../../../utilities/validation.utilities';
8
- import { CreateEntityDialogData } from './create-entity-dialog-data';
9
- import { CreateEntityDialogDataInternal } from './create-entity-dialog-data.builder';
8
+ import { CreateEntityData } from './create-entity-dialog-data';
9
+ import { CreateEntityDataInternal } from './create-entity-dialog-data.builder';
10
10
  import * as i0 from "@angular/core";
11
11
  /**
12
12
  * The default dialog used to create new entities based on the configuration passed in the MAT_DIALOG_DATA "inputData".
@@ -20,14 +20,35 @@ export declare class NgxMatEntityCreateDialogComponent<EntityType extends BaseEn
20
20
  private readonly injector;
21
21
  private readonly dialog;
22
22
  protected readonly globalConfig: NgxGlobalDefaultValues;
23
+ /**
24
+ * Contains HelperMethods around handling Entities and their property-metadata.
25
+ */
23
26
  EntityUtilities: typeof EntityUtilities;
27
+ /**
28
+ * The tabs of the entity.
29
+ */
24
30
  entityTabs: EntityTab<EntityType>[];
31
+ /**
32
+ * The services that handles the entity.
33
+ */
25
34
  entityService: EntityService<EntityType>;
26
- data: CreateEntityDialogDataInternal<EntityType>;
35
+ /**
36
+ * The internal configuration data.
37
+ */
38
+ data: CreateEntityDataInternal<EntityType>;
39
+ /**
40
+ * Whether or not the entity is valid.
41
+ */
27
42
  isEntityValid: boolean;
43
+ /**
44
+ * The validation errors of the entity.
45
+ */
28
46
  validationErrors: ValidationError[];
47
+ /**
48
+ * What to display inside the tooltip.
49
+ */
29
50
  tooltipContent: string;
30
- constructor(inputData: CreateEntityDialogData<EntityType>, dialogRef: MatDialogRef<NgxMatEntityCreateDialogComponent<EntityType>>, injector: Injector, dialog: MatDialog, globalConfig: NgxGlobalDefaultValues);
51
+ constructor(inputData: CreateEntityData<EntityType>, dialogRef: MatDialogRef<NgxMatEntityCreateDialogComponent<EntityType>>, injector: EnvironmentInjector, dialog: MatDialog, globalConfig: NgxGlobalDefaultValues);
31
52
  ngOnInit(): void;
32
53
  /**
33
54
  * Checks if the entity is valid.
@@ -3,27 +3,23 @@ import { BaseEntityType } from '../../classes/entity.model';
3
3
  import { EntityService } from '../../services/entity.service';
4
4
  /**
5
5
  * A multi select action that imports the data from a json file.
6
- *
7
6
  * @param EntityServiceClass - The entity class that handles importing the file.
8
7
  */
9
8
  export declare function importFromJsonMultiAction<EntityType extends BaseEntityType<EntityType>>(EntityServiceClass: Type<EntityService<EntityType>>): void;
10
9
  /**
11
10
  * A multi select action that exports the data as a json file.
12
- *
13
11
  * @param selectedEntities - The selected entities to export.
14
12
  */
15
13
  export declare function exportAsJsonMultiAction<EntityType extends BaseEntityType<EntityType>>(selectedEntities: EntityType[]): void;
16
14
  /**
17
15
  * A multi select action that exports the data as a csv file.
18
16
  * Object values get stringified.
19
- *
20
17
  * @param selectedEntities - The selected entities to export.
21
18
  */
22
19
  export declare function exportAsCsvMultiAction<EntityType extends BaseEntityType<EntityType>>(selectedEntities: EntityType[]): void;
23
20
  /**
24
21
  * A multi select action that exports the data as a xml file.
25
22
  * Object values get stringified.
26
- *
27
23
  * @param selectedEntities - The selected entities to export.
28
24
  */
29
25
  export declare function exportAsXmlMultiAction<EntityType extends BaseEntityType<EntityType>>(selectedEntities: EntityType[]): void;
@@ -7,6 +7,9 @@ import * as i0 from "@angular/core";
7
7
  * Contains the entity for which the component gets displayed.
8
8
  */
9
9
  export declare abstract class NgxMatEntityBaseDisplayColumnValueComponent<EntityType extends BaseEntityType<EntityType>> implements OnInit {
10
+ /**
11
+ * The entity for which the component gets displayed.
12
+ */
10
13
  entity: EntityType;
11
14
  constructor();
12
15
  ngOnInit(): void;
@@ -7,8 +7,17 @@ import * as i0 from "@angular/core";
7
7
  */
8
8
  export declare class DisplayColumnValueComponent<EntityType extends BaseEntityType<EntityType>> implements OnInit {
9
9
  private readonly viewContainerRef;
10
+ /**
11
+ * The entity for which the column should be displayed.
12
+ */
10
13
  entity: EntityType;
14
+ /**
15
+ * The class of the component that should be used inside the custom display column.
16
+ */
11
17
  ComponentClass: Type<NgxMatEntityBaseDisplayColumnValueComponent<EntityType>>;
18
+ /**
19
+ * The actual component that is used inside the custom display column.
20
+ */
12
21
  component: ComponentRef<NgxMatEntityBaseDisplayColumnValueComponent<EntityType>>;
13
22
  constructor(viewContainerRef: ViewContainerRef);
14
23
  ngOnInit(): void;
@@ -1,8 +1,8 @@
1
1
  import { BaseBuilder } from '../../../classes/base.builder';
2
2
  import { BaseEntityType } from '../../../classes/entity.model';
3
- import { NgxGlobalDefaultValues } from '../../../global-configuration-values';
4
3
  import { ConfirmDialogData } from '../../confirm-dialog/confirm-dialog-data';
5
4
  import { EditAction, EditData } from '../table-data';
5
+ import { NgxGlobalDefaultValues } from '../../../global-configuration-values';
6
6
  /**
7
7
  * The internal edit action.
8
8
  * Sets default values.
@@ -34,9 +34,9 @@ export declare class EditDataInternal<EntityType extends BaseEntityType<EntityTy
34
34
  constructor(title: (entity: EntityType) => string, confirmButtonLabel: string, deleteButtonLabel: string, cancelButtonLabel: string, deleteRequiresConfirmDialog: boolean, editRequiresConfirmDialog: boolean, confirmDeleteDialogData: ConfirmDialogData, confirmEditDialogData: ConfirmDialogData, actionsLabel: string, actions: EditAction<EntityType>[], globalConfig: NgxGlobalDefaultValues);
35
35
  }
36
36
  /**
37
- * The Builder for the EditDialogData. Sets default values.
37
+ * The Builder for the EditData. Sets default values.
38
38
  */
39
- export declare class EditDialogDataBuilder<EntityType extends BaseEntityType<EntityType>> extends BaseBuilder<EditDataInternal<EntityType>, EditData<EntityType>> {
39
+ export declare class EditDataBuilder<EntityType extends BaseEntityType<EntityType>> extends BaseBuilder<EditDataInternal<EntityType>, EditData<EntityType>> {
40
40
  constructor(globalConfig: NgxGlobalDefaultValues, data?: EditData<EntityType>);
41
41
  protected generateBaseData(data?: EditData<EntityType>): EditDataInternal<EntityType>;
42
42
  }
@@ -1,6 +1,4 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { BaseEntityType } from '../../../classes/entity.model';
3
- import { EntityService } from '../../../services/entity.service';
1
+ import { BaseEntityType, EntityServiceClassNewable } from '../../../classes/entity.model';
4
2
  import { EditData } from '../table-data';
5
3
  /**
6
4
  * The Definition of the Edit Entity Dialog or page Data.
@@ -13,7 +11,7 @@ export interface EditEntityData<EntityType extends BaseEntityType<EntityType>> {
13
11
  /**
14
12
  * The Entity Service class used for updating/deleting the entity.
15
13
  */
16
- EntityServiceClass: new (httpClient: HttpClient) => EntityService<EntityType>;
14
+ EntityServiceClass: EntityServiceClassNewable<EntityType>;
17
15
  /**
18
16
  * The info of the generic edit-dialog.
19
17
  */
@@ -2,13 +2,13 @@ import { HttpClient } from '@angular/common/http';
2
2
  import { EnvironmentInjector, OnInit } from '@angular/core';
3
3
  import { MatDialog, MatDialogRef } from '@angular/material/dialog';
4
4
  import { BaseEntityType } from '../../../classes/entity.model';
5
- import { NgxGlobalDefaultValues } from '../../../global-configuration-values';
6
5
  import { EntityService } from '../../../services/entity.service';
7
6
  import { EntityTab, EntityUtilities } from '../../../utilities/entity.utilities';
8
7
  import { ValidationError } from '../../../utilities/validation.utilities';
9
8
  import { EditActionInternal } from './edit-data.builder';
10
9
  import { EditEntityData } from './edit-entity-data';
11
10
  import { EditEntityDataInternal } from './edit-entity.builder';
11
+ import { NgxGlobalDefaultValues } from '../../../global-configuration-values';
12
12
  import * as i0 from "@angular/core";
13
13
  /**
14
14
  * The default dialog used to edit an existing entity based on the configuration passed in the MAT_DIALOG_DATA "inputData".
@@ -23,22 +23,54 @@ export declare class NgxMatEntityEditDialogComponent<EntityType extends BaseEnti
23
23
  private readonly dialog;
24
24
  private readonly http;
25
25
  private readonly globalConfig;
26
+ /**
27
+ * Contains HelperMethods around handling Entities and their property-metadata.
28
+ */
26
29
  EntityUtilities: typeof EntityUtilities;
30
+ /**
31
+ * The tabs of the dialog.
32
+ */
27
33
  entityTabs: EntityTab<EntityType>[];
34
+ /**
35
+ * The service of the provided entity.
36
+ */
28
37
  entityService: EntityService<EntityType>;
38
+ /**
39
+ * The entity before any changes have been applied.
40
+ */
29
41
  entityPriorChanges: EntityType;
42
+ /**
43
+ * The internal configuration data.
44
+ */
30
45
  data: EditEntityDataInternal<EntityType>;
46
+ /**
47
+ * Whether or not the entity is valid.
48
+ */
31
49
  isEntityValid: boolean;
50
+ /**
51
+ * Whether or not the entity is dirty.
52
+ */
32
53
  isEntityDirty: boolean;
54
+ /**
55
+ * The validation errors of the entity.
56
+ */
33
57
  validationErrors: ValidationError[];
58
+ /**
59
+ * What to display inside the tooltip.
60
+ */
34
61
  tooltipContent: string;
62
+ /**
63
+ * Whether or not the entity is readonly.
64
+ */
35
65
  isEntityReadOnly: boolean;
66
+ /**
67
+ * Whether or not deleting the entity is allowed for the current user.
68
+ */
36
69
  allowDelete: boolean;
37
70
  constructor(inputData: EditEntityData<EntityType>, dialogRef: MatDialogRef<NgxMatEntityEditDialogComponent<EntityType>>, injector: EnvironmentInjector, dialog: MatDialog, http: HttpClient, globalConfig: NgxGlobalDefaultValues);
38
71
  ngOnInit(): void;
39
72
  /**
40
73
  * Checks if the input with the given key is readonly.
41
- *
42
74
  * @param key - The key for the input to check.
43
75
  * @returns Whether or not the input for the key is read only.
44
76
  */
@@ -66,14 +98,12 @@ export declare class NgxMatEntityEditDialogComponent<EntityType extends BaseEnti
66
98
  cancel(): void;
67
99
  /**
68
100
  * Runs the edit action on the entity.
69
- *
70
101
  * @param action - The action to run.
71
102
  */
72
103
  runEditAction(action: EditActionInternal<EntityType>): void;
73
104
  private confirmRunEditAction;
74
105
  /**
75
106
  * Checks if an EditAction is disabled (e.g. Because the current entry doesn't fullfil the requirements).
76
- *
77
107
  * @param action - The EditAction to check.
78
108
  * @returns Whether or not the Action can be used.
79
109
  */
@@ -1,8 +1,6 @@
1
- import { HttpClient } from '@angular/common/http';
2
1
  import { BaseBuilder } from '../../../classes/base.builder';
3
- import { BaseEntityType } from '../../../classes/entity.model';
2
+ import { BaseEntityType, EntityServiceClassNewable } from '../../../classes/entity.model';
4
3
  import { NgxGlobalDefaultValues } from '../../../global-configuration-values';
5
- import { EntityService } from '../../../services/entity.service';
6
4
  import { EditDataInternal } from './edit-data.builder';
7
5
  import { EditEntityData } from './edit-entity-data';
8
6
  /**
@@ -10,11 +8,11 @@ import { EditEntityData } from './edit-entity-data';
10
8
  */
11
9
  export declare class EditEntityDataInternal<EntityType extends BaseEntityType<EntityType>> implements EditEntityData<EntityType> {
12
10
  entity: EntityType;
13
- EntityServiceClass: new (httpClient: HttpClient) => EntityService<EntityType>;
11
+ EntityServiceClass: EntityServiceClassNewable<EntityType>;
14
12
  editData: EditDataInternal<EntityType>;
15
13
  allowUpdate: (entity: EntityType) => boolean;
16
14
  allowDelete: (entity: EntityType) => boolean;
17
- constructor(entity: EntityType, EntityServiceClass: new (httpClient: HttpClient) => EntityService<EntityType>, editData: EditDataInternal<EntityType>, allowUpdate: (entity: EntityType) => boolean, allowDelete: (entity: EntityType) => boolean);
15
+ constructor(entity: EntityType, EntityServiceClass: EntityServiceClassNewable<EntityType>, editData: EditDataInternal<EntityType>, allowUpdate: (entity: EntityType) => boolean, allowDelete: (entity: EntityType) => boolean);
18
16
  }
19
17
  /**
20
18
  * The Builder for the EditEntityData. Sets default values.
@@ -1,10 +1,8 @@
1
- import { HttpClient } from '@angular/common/http';
2
1
  import { BaseBuilder } from '../../classes/base.builder';
3
- import { BaseEntityType, EntityClassNewable } from '../../classes/entity.model';
2
+ import { BaseEntityType, EntityClassNewable, EntityServiceClassNewable } from '../../classes/entity.model';
4
3
  import { NgxGlobalDefaultValues } from '../../global-configuration-values';
5
- import { EntityService } from '../../services/entity.service';
6
4
  import { ConfirmDialogDataInternal } from '../confirm-dialog/confirm-dialog-data.builder';
7
- import { CreateDialogDataInternal } from './create-dialog/create-dialog-data.builder';
5
+ import { CreateDataInternal } from './create-dialog/create-data.builder';
8
6
  import { EditDataInternal } from './edit-dialog/edit-data.builder';
9
7
  import { BaseData, BaseTableAction, DisplayColumn, MultiSelectAction, TableData } from './table-data';
10
8
  /**
@@ -44,9 +42,9 @@ export type TableActionInternal<EntityType extends BaseEntityType<EntityType>> =
44
42
  */
45
43
  export declare class TableDataInternal<EntityType extends BaseEntityType<EntityType>> implements TableData<EntityType> {
46
44
  baseData: BaseDataInternal<EntityType>;
47
- createDialogData: CreateDialogDataInternal;
45
+ createData: CreateDataInternal;
48
46
  editData: EditDataInternal<EntityType>;
49
- constructor(baseData: BaseDataInternal<EntityType>, createDialogData: CreateDialogDataInternal, editDialogData: EditDataInternal<EntityType>);
47
+ constructor(baseData: BaseDataInternal<EntityType>, createData: CreateDataInternal, editData: EditDataInternal<EntityType>);
50
48
  }
51
49
  /**
52
50
  * The Builder for the table BaseData. Sets default values.
@@ -62,10 +60,11 @@ export declare class BaseDataInternal<EntityType extends BaseEntityType<EntityTy
62
60
  protected readonly globalConfig: NgxGlobalDefaultValues;
63
61
  title: string;
64
62
  displayColumns: DisplayColumn<EntityType>[];
65
- EntityServiceClass: new (httpClient: HttpClient) => EntityService<EntityType>;
63
+ EntityServiceClass: EntityServiceClassNewable<EntityType>;
66
64
  searchLabel: string;
67
65
  createButtonLabel: string;
68
66
  defaultEdit: 'dialog' | 'page';
67
+ defaultCreate: 'dialog' | 'page';
69
68
  searchString: (entity: EntityType) => string;
70
69
  allowCreate: () => boolean;
71
70
  allowRead: (entity?: EntityType) => boolean;
@@ -96,7 +95,6 @@ export declare class TableDataBuilder<EntityType extends BaseEntityType<EntityTy
96
95
  * This will be used if no custom search function is provided by the configuration.
97
96
  *
98
97
  * It generates a string from an entity which is then used to compare it to the search input.
99
- *
100
98
  * @param entity - An entity that is in the search.
101
99
  * @returns The generated string of the given entity used for comparison with the search input.
102
100
  */
@@ -1,7 +1,5 @@
1
- import { HttpClient } from '@angular/common/http';
2
1
  import { Type } from '@angular/core';
3
- import { BaseEntityType, EntityClassNewable } from '../../classes/entity.model';
4
- import { EntityService } from '../../services/entity.service';
2
+ import { BaseEntityType, EntityClassNewable, EntityServiceClassNewable } from '../../classes/entity.model';
5
3
  import { ConfirmDialogData } from '../confirm-dialog/confirm-dialog-data';
6
4
  import { NgxMatEntityBaseDisplayColumnValueComponent } from './display-column-value/base-display-column-value.component';
7
5
  /**
@@ -45,13 +43,11 @@ export interface BaseTableAction {
45
43
  action: (() => unknown) | (() => Promise<unknown>);
46
44
  /**
47
45
  * A method that defines whether or not the action can be used.
48
- *
49
46
  * @default () => true
50
47
  */
51
48
  enabled?: () => boolean;
52
49
  /**
53
50
  * A method that defines whether or not a confirm dialog is needed to run the action.
54
- *
55
51
  * @default false
56
52
  */
57
53
  requireConfirmDialog?: () => boolean;
@@ -78,13 +74,11 @@ export interface MultiSelectAction<EntityType extends BaseEntityType<EntityType>
78
74
  action: ((selectedEntities: EntityType[]) => unknown) | ((selectedEntities: EntityType[]) => Promise<unknown>);
79
75
  /**
80
76
  * A method that defines whether or not the action can be used.
81
- *
82
77
  * @default (selectedEntities: EntityType[]) => !!selectedEntities.length
83
78
  */
84
79
  enabled?: (selectedEntities: EntityType[]) => boolean;
85
80
  /**
86
81
  * A method that defines whether or not a confirm dialog is needed to run the action.
87
- *
88
82
  * @default false
89
83
  */
90
84
  requireConfirmDialog?: (selectedEntities: EntityType[]) => boolean;
@@ -114,7 +108,7 @@ export interface BaseData<EntityType extends BaseEntityType<EntityType>> {
114
108
  * The Class of the service that handles the entities.
115
109
  * Needs to be injectable and an extension of the "EntityService"-Class.
116
110
  */
117
- EntityServiceClass: new (httpClient: HttpClient) => EntityService<EntityType>;
111
+ EntityServiceClass: EntityServiceClassNewable<EntityType>;
118
112
  /**
119
113
  * The Class of the entities to manage.
120
114
  */
@@ -131,6 +125,10 @@ export interface BaseData<EntityType extends BaseEntityType<EntityType>> {
131
125
  * Whether editing happens in a dialog or a separate page.
132
126
  */
133
127
  defaultEdit?: 'dialog' | 'page';
128
+ /**
129
+ * Whether creating happens in a dialog or a separate page.
130
+ */
131
+ defaultCreate?: 'dialog' | 'page';
134
132
  /**
135
133
  * Takes a custom edit method which runs when you click on a entity.
136
134
  * If you don't need any special editing of entries you can also omit this.
@@ -149,25 +147,21 @@ export interface BaseData<EntityType extends BaseEntityType<EntityType>> {
149
147
  searchString?: (entity: EntityType) => string;
150
148
  /**
151
149
  * Defines whether or not the user can add new entities.
152
- *
153
150
  * @default () => true
154
151
  */
155
152
  allowCreate?: boolean | (() => boolean);
156
153
  /**
157
154
  * Defines whether or not the user can view the specific entity.
158
- *
159
155
  * @default () => true
160
156
  */
161
157
  allowRead?: boolean | ((entity?: EntityType) => boolean);
162
158
  /**
163
159
  * Defines whether or not the user can edit the specific entity.
164
- *
165
160
  * @default () => true
166
161
  */
167
162
  allowUpdate?: boolean | ((entity?: EntityType) => boolean);
168
163
  /**
169
164
  * Whether or not the user can delete this specific entity.
170
- *
171
165
  * @default () => true
172
166
  */
173
167
  allowDelete?: boolean | ((entity?: EntityType) => boolean);
@@ -182,14 +176,12 @@ export interface BaseData<EntityType extends BaseEntityType<EntityType>> {
182
176
  tableActionsLabel?: string;
183
177
  /**
184
178
  * Whether or not to display a loading spinner while the entities of the table are loaded.
185
- *
186
179
  * @default true
187
180
  */
188
181
  displayLoadingSpinner?: boolean;
189
182
  /**
190
183
  * Whether or not JSON imports are allowed.
191
184
  * This adds an table select action.
192
- *
193
185
  * @default false
194
186
  */
195
187
  allowJsonImport?: boolean;
@@ -201,7 +193,7 @@ export interface BaseData<EntityType extends BaseEntityType<EntityType>> {
201
193
  /**
202
194
  * The data of the default create-dialog.
203
195
  */
204
- export interface CreateDialogData {
196
+ export interface CreateData {
205
197
  /**
206
198
  * The title of the default create-dialog.
207
199
  */
@@ -237,13 +229,11 @@ export interface EditAction<EntityType extends BaseEntityType<EntityType>> {
237
229
  action: ((entity: EntityType, entityPriorChanges: EntityType) => unknown) | ((entity: EntityType, entityPriorChanges: EntityType) => Promise<unknown>);
238
230
  /**
239
231
  * A method that defines whether or not the action can be used.
240
- *
241
232
  * @default () => true
242
233
  */
243
234
  enabled?: (e: EntityType) => boolean;
244
235
  /**
245
236
  * A method that defines whether or not a confirm dialog is needed to run the action.
246
- *
247
237
  * @default false
248
238
  */
249
239
  requireConfirmDialog?: (e: EntityType) => boolean;
@@ -310,7 +300,7 @@ export interface TableData<EntityType extends BaseEntityType<EntityType>> {
310
300
  * The data for the default create-dialog.
311
301
  * Can be omitted when specifying a custom "create" method inside the baseData.
312
302
  */
313
- createDialogData?: CreateDialogData;
303
+ createData?: CreateData;
314
304
  /**
315
305
  * The data for the default edit-dialog.
316
306
  * Can be omitted when specifying a custom "edit" method inside the baseData.
@@ -26,18 +26,51 @@ export declare class NgxMatEntityTableComponent<EntityType extends BaseEntityTyp
26
26
  * The configuration for the component.
27
27
  */
28
28
  tableData: TableData<EntityType>;
29
+ /**
30
+ * The internal TableData.
31
+ */
29
32
  data: TableDataInternal<EntityType>;
33
+ /**
34
+ * Whether or not the table content is currently loading.
35
+ */
30
36
  isLoading: boolean;
37
+ /**
38
+ * Whether or not the current user is allowed to create entries for the table.
39
+ */
31
40
  allowCreate: boolean;
32
41
  private entityService;
33
42
  private readonly onDestroy;
43
+ /**
44
+ * The paginator from the html.
45
+ */
34
46
  paginator: MatPaginator;
47
+ /**
48
+ * The sort from the html.
49
+ */
35
50
  sort: MatSort;
51
+ /**
52
+ * The filter (search) from the html.
53
+ */
36
54
  filter: string;
55
+ /**
56
+ * The columns of the table.
57
+ */
37
58
  displayedColumns: string[];
59
+ /**
60
+ * The table dataSource.
61
+ */
38
62
  dataSource: MatTableDataSource<EntityType>;
63
+ /**
64
+ * The selection of the table.
65
+ */
39
66
  selection: SelectionModel<EntityType>;
67
+ /**
68
+ * Provides functionality around material selections inside of tables.
69
+ */
40
70
  SelectionUtilities: typeof SelectionUtilities;
71
+ /**
72
+ * The internal BaseTableAction. Sets default values.
73
+ */
41
74
  importAction: BaseTableActionInternal;
42
75
  constructor(dialog: MatDialog, injector: EnvironmentInjector, router: Router, globalConfig: NgxGlobalDefaultValues);
43
76
  /**
@@ -47,7 +80,6 @@ export declare class NgxMatEntityTableComponent<EntityType extends BaseEntityTyp
47
80
  /**
48
81
  * Gets the value to display in the column.
49
82
  * Runs in environment context to enable injection.
50
- *
51
83
  * @param entity - The entity to get the value from.
52
84
  * @param displayColumn - The display column to get the value from.
53
85
  * @returns The value of the display column.
@@ -57,7 +89,6 @@ export declare class NgxMatEntityTableComponent<EntityType extends BaseEntityTyp
57
89
  private importJson;
58
90
  /**
59
91
  * Edits an entity. This either calls the edit-Method provided by the user or uses a default edit-dialog.
60
- *
61
92
  * @param entity - The entity that should be updated.
62
93
  * @param dCol - The display column. Is needed if a custom component was used that handles the click event differently.
63
94
  * @throws When no EntityClass was provided, as a new call is needed to initialize metadata.
@@ -65,14 +96,12 @@ export declare class NgxMatEntityTableComponent<EntityType extends BaseEntityTyp
65
96
  editEntity(entity: EntityType, dCol: DisplayColumn<EntityType>): void;
66
97
  /**
67
98
  * Whether updating the provided entity is allowed.
68
- *
69
99
  * @param entity - The entity that the user wants to edit.
70
100
  * @returns True when the user can edit the provided entity and false otherwise.
71
101
  */
72
102
  allowUpdate(entity: EntityType): boolean;
73
103
  /**
74
104
  * Whether viewing the provided entity is allowed.
75
- *
76
105
  * @param entity - The entity that the user wants to view.
77
106
  * @returns True when the user can view the provided entity and false otherwise.
78
107
  */
@@ -81,22 +110,20 @@ export declare class NgxMatEntityTableComponent<EntityType extends BaseEntityTyp
81
110
  private editDefaultDialog;
82
111
  /**
83
112
  * Creates a new Entity. This either calls the create-Method provided by the user or uses a default create-dialog.
84
- *
85
113
  * @throws When no EntityClass was provided, as a new call is needed to initialize metadata.
86
114
  */
87
115
  createEntity(): void;
88
- private createDefault;
116
+ private createDefaultPage;
117
+ private createDefaultDialog;
89
118
  /**
90
119
  * Runs the TableAction for all selected entries.
91
120
  * Also handles confirmation with an additional dialog if configured.
92
- *
93
121
  * @param action - The TableAction to run.
94
122
  */
95
123
  runTableAction(action: TableActionInternal<EntityType>): void;
96
124
  private confirmRunTableAction;
97
125
  /**
98
126
  * Checks if an TableAction is disabled (e.g. Because no entries have been selected).
99
- *
100
127
  * @param action - The TableAction to check.
101
128
  * @returns Whether or not the Action can be used.
102
129
  */
@@ -104,7 +131,6 @@ export declare class NgxMatEntityTableComponent<EntityType extends BaseEntityTyp
104
131
  ngOnDestroy(): void;
105
132
  /**
106
133
  * Applies the search input to filter the table entries.
107
- *
108
134
  * @param event - The keyup-event which contains the search-string of the user.
109
135
  */
110
136
  applyFilter(event: Event): void;
@@ -3,6 +3,9 @@ import * as i0 from "@angular/core";
3
3
  * A component that displays an info-symbol and a tooltip when it is hovered/clicked.
4
4
  */
5
5
  export declare class TooltipComponent {
6
+ /**
7
+ * What to display inside the tooltip.
8
+ */
6
9
  tooltipContent: string;
7
10
  static ɵfac: i0.ɵɵFactoryDeclaration<TooltipComponent, never>;
8
11
  static ɵcmp: i0.ɵɵComponentDeclaration<TooltipComponent, "ngx-mat-entity-tooltip", never, { "tooltipContent": { "alias": "tooltipContent"; "required": false; }; }, {}, never, never, true, never>;
@@ -2,7 +2,7 @@ import { Time } from '@angular/common';
2
2
  import { DateFilterFn } from '@angular/material/datepicker';
3
3
  import { BaseEntityType, EntityClassNewable } from '../../classes/entity.model';
4
4
  import { ConfirmDialogData } from '../../components/confirm-dialog/confirm-dialog-data';
5
- import { CreateDialogData, DisplayColumn } from '../../components/table/table-data';
5
+ import { CreateData, DisplayColumn } from '../../components/table/table-data';
6
6
  import { NgxGlobalDefaultValues } from '../../global-configuration-values';
7
7
  import { DecoratorTypes } from '../base/decorator-types.enum';
8
8
  import { DropdownValue } from '../base/dropdown-value.interface';
@@ -28,7 +28,7 @@ export declare class EntityArrayDecoratorConfigInternal<EntityType extends BaseE
28
28
  duplicatesErrorDialog: ConfirmDialogData;
29
29
  EntityClass: EntityClassNewable<EntityType>;
30
30
  displayColumns: DisplayColumn<EntityType>[];
31
- createDialogData?: CreateDialogData;
31
+ createDialogData?: CreateData;
32
32
  editDialogData: EditArrayItemDialogDataInternal<EntityType>;
33
33
  createInline: boolean;
34
34
  missingErrorMessage: string;
@@ -118,5 +118,6 @@ export declare class AutocompleteStringChipsArrayDecoratorConfigInternal extends
118
118
  minLength?: number;
119
119
  maxLength?: number;
120
120
  regex?: RegExp;
121
+ restrictToOptions?: boolean;
121
122
  constructor(data: AutocompleteStringChipsArrayDecoratorConfig, globalConfig: NgxGlobalDefaultValues);
122
123
  }