ngx-material-entity 0.1.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/README.md +914 -336
  2. package/capsulation/lodash.utilities.d.ts +62 -0
  3. package/capsulation/reflect.utilities.d.ts +56 -0
  4. package/classes/{base-builder.class.d.ts → base.builder.d.ts} +2 -1
  5. package/classes/date.utilities.d.ts +70 -0
  6. package/classes/entity.model.d.ts +20 -0
  7. package/classes/entity.service.d.ts +108 -0
  8. package/classes/{entity-utilities.class.d.ts → entity.utilities.d.ts} +52 -16
  9. package/classes/file.utilities.d.ts +52 -0
  10. package/components/confirm-dialog/confirm-dialog-data.builder.d.ts +1 -1
  11. package/components/input/add-array-item-dialog-data.builder.d.ts +4 -4
  12. package/components/input/add-array-item-dialog-data.d.ts +2 -2
  13. package/components/input/array/array-date-input/array-date-input.component.d.ts +11 -0
  14. package/components/input/array/array-date-range-input/array-date-range-input.component.d.ts +20 -0
  15. package/components/input/array/array-date-time-input/array-date-time-input.component.d.ts +22 -0
  16. package/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.d.ts +51 -0
  17. package/components/input/array/array-string-chips-input/array-string-chips-input.component.d.ts +44 -0
  18. package/components/input/array/array-table.class.d.ts +49 -0
  19. package/components/input/base-input.component.d.ts +31 -0
  20. package/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.d.ts +10 -0
  21. package/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.d.ts +9 -0
  22. package/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.d.ts +10 -0
  23. package/components/input/custom/custom.component.d.ts +13 -0
  24. package/components/input/date/date-input/date-input.component.d.ts +13 -0
  25. package/components/input/date/date-range-input/date-range-input.component.d.ts +20 -0
  26. package/components/input/date/date-time-input/date-time-input.component.d.ts +31 -0
  27. package/components/input/file/file-default-input/file-default-input.component.d.ts +13 -0
  28. package/components/input/file/file-image-input/file-image-input.component.d.ts +22 -0
  29. package/components/input/file/file-input/dragDrop.directive.d.ts +32 -0
  30. package/components/input/file/file-input/file-input.component.d.ts +32 -0
  31. package/components/input/input.component.d.ts +49 -73
  32. package/components/input/input.module.d.ts +38 -15
  33. package/components/input/number/number-dropdown-input/number-dropdown-input.component.d.ts +9 -0
  34. package/components/input/number/number-input/number-input.component.d.ts +9 -0
  35. package/components/input/string/string-autocomplete-input/string-autocomplete-input.component.d.ts +18 -0
  36. package/components/input/string/string-dropdown-input/string-dropdown-input.component.d.ts +9 -0
  37. package/components/input/string/string-input/string-input.component.d.ts +9 -0
  38. package/components/input/string/string-textbox-input/string-textbox-input.component.d.ts +9 -0
  39. package/components/table/create-dialog/create-dialog-data.builder.d.ts +1 -1
  40. package/components/table/create-dialog/create-entity-dialog-data.builder.d.ts +5 -5
  41. package/components/table/create-dialog/create-entity-dialog-data.d.ts +3 -3
  42. package/components/table/create-dialog/create-entity-dialog.component.d.ts +9 -5
  43. package/components/table/edit-dialog/edit-dialog-data.builder.d.ts +4 -4
  44. package/components/table/edit-dialog/edit-entity-dialog-data.d.ts +3 -3
  45. package/components/table/edit-dialog/edit-entity-dialog.builder.d.ts +5 -5
  46. package/components/table/edit-dialog/edit-entity-dialog.component.d.ts +7 -5
  47. package/components/table/table-data.builder.d.ts +9 -9
  48. package/components/table/table-data.d.ts +8 -8
  49. package/components/table/table.component.d.ts +2 -2
  50. package/decorators/array/array-decorator-internal.data.d.ts +72 -7
  51. package/decorators/array/array-decorator.data.d.ts +179 -13
  52. package/decorators/array/array.decorator.d.ts +3 -3
  53. package/decorators/base/base-property.decorator.d.ts +2 -3
  54. package/decorators/base/decorator-types.enum.d.ts +15 -4
  55. package/decorators/base/dropdown-value.interface.d.ts +14 -0
  56. package/decorators/custom/custom-decorator-internal.data.d.ts +17 -0
  57. package/decorators/custom/custom-decorator.data.d.ts +33 -0
  58. package/decorators/custom/custom.decorator.d.ts +11 -0
  59. package/decorators/date/date-decorator-internal.data.d.ts +44 -0
  60. package/decorators/date/date-decorator.data.d.ts +129 -0
  61. package/decorators/date/date.decorator.d.ts +8 -0
  62. package/decorators/file/file-decorator-internal.data.d.ts +92 -0
  63. package/decorators/file/file-decorator.data.d.ts +92 -0
  64. package/decorators/file/file.decorator.d.ts +9 -0
  65. package/decorators/number/number-decorator-internal.data.d.ts +2 -4
  66. package/decorators/number/number-decorator.data.d.ts +2 -4
  67. package/decorators/number/number.decorator.d.ts +2 -2
  68. package/decorators/object/object-decorator-internal.data.d.ts +3 -3
  69. package/decorators/object/object-decorator.data.d.ts +5 -5
  70. package/decorators/object/object.decorator.d.ts +2 -2
  71. package/decorators/string/string-decorator-internal.data.d.ts +2 -4
  72. package/decorators/string/string-decorator.data.d.ts +2 -4
  73. package/esm2020/capsulation/lodash.utilities.mjs +75 -0
  74. package/esm2020/capsulation/reflect.utilities.mjs +69 -0
  75. package/esm2020/classes/base.builder.mjs +42 -0
  76. package/esm2020/classes/date.utilities.mjs +158 -0
  77. package/esm2020/classes/entity.model.mjs +23 -0
  78. package/esm2020/classes/entity.service.mjs +180 -0
  79. package/esm2020/classes/entity.utilities.mjs +686 -0
  80. package/esm2020/classes/file.utilities.mjs +123 -0
  81. package/esm2020/components/confirm-dialog/confirm-dialog-data.builder.mjs +5 -5
  82. package/esm2020/components/confirm-dialog/confirm-dialog.component.mjs +3 -3
  83. package/esm2020/components/input/add-array-item-dialog-data.builder.mjs +4 -4
  84. package/esm2020/components/input/add-array-item-dialog-data.mjs +1 -1
  85. package/esm2020/components/input/array/array-date-input/array-date-input.component.mjs +26 -0
  86. package/esm2020/components/input/array/array-date-range-input/array-date-range-input.component.mjs +50 -0
  87. package/esm2020/components/input/array/array-date-time-input/array-date-time-input.component.mjs +50 -0
  88. package/esm2020/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +119 -0
  89. package/esm2020/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +104 -0
  90. package/esm2020/components/input/array/array-table.class.mjs +107 -0
  91. package/esm2020/components/input/base-input.component.mjs +39 -0
  92. package/esm2020/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.mjs +23 -0
  93. package/esm2020/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.mjs +17 -0
  94. package/esm2020/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.mjs +23 -0
  95. package/esm2020/components/input/custom/custom.component.mjs +25 -0
  96. package/esm2020/components/input/date/date-input/date-input.component.mjs +23 -0
  97. package/esm2020/components/input/date/date-range-input/date-range-input.component.mjs +51 -0
  98. package/esm2020/components/input/date/date-time-input/date-time-input.component.mjs +63 -0
  99. package/esm2020/components/input/file/file-default-input/file-default-input.component.mjs +24 -0
  100. package/esm2020/components/input/file/file-image-input/file-image-input.component.mjs +79 -0
  101. package/esm2020/components/input/file/file-input/dragDrop.directive.mjs +64 -0
  102. package/esm2020/components/input/file/file-input/file-input.component.mjs +152 -0
  103. package/esm2020/components/input/input.component.mjs +143 -179
  104. package/esm2020/components/input/input.module.mjs +76 -6
  105. package/esm2020/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +18 -0
  106. package/esm2020/components/input/number/number-input/number-input.component.mjs +16 -0
  107. package/esm2020/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +37 -0
  108. package/esm2020/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +18 -0
  109. package/esm2020/components/input/string/string-input/string-input.component.mjs +16 -0
  110. package/esm2020/components/input/string/string-textbox-input/string-textbox-input.component.mjs +17 -0
  111. package/esm2020/components/table/create-dialog/create-dialog-data.builder.mjs +3 -3
  112. package/esm2020/components/table/create-dialog/create-entity-dialog-data.builder.mjs +2 -2
  113. package/esm2020/components/table/create-dialog/create-entity-dialog-data.mjs +1 -1
  114. package/esm2020/components/table/create-dialog/create-entity-dialog.component.mjs +16 -9
  115. package/esm2020/components/table/edit-dialog/edit-dialog-data.builder.mjs +3 -3
  116. package/esm2020/components/table/edit-dialog/edit-entity-dialog-data.mjs +1 -1
  117. package/esm2020/components/table/edit-dialog/edit-entity-dialog.builder.mjs +3 -3
  118. package/esm2020/components/table/edit-dialog/edit-entity-dialog.component.mjs +19 -11
  119. package/esm2020/components/table/table-data.builder.mjs +4 -4
  120. package/esm2020/components/table/table-data.mjs +1 -1
  121. package/esm2020/components/table/table.component.mjs +21 -23
  122. package/esm2020/decorators/array/array-decorator-internal.data.mjs +102 -14
  123. package/esm2020/decorators/array/array-decorator.data.mjs +2 -2
  124. package/esm2020/decorators/array/array.decorator.mjs +8 -2
  125. package/esm2020/decorators/base/base-property.decorator.mjs +4 -3
  126. package/esm2020/decorators/base/decorator-types.enum.mjs +10 -1
  127. package/esm2020/decorators/base/dropdown-value.interface.mjs +2 -0
  128. package/esm2020/decorators/base/property-decorator-internal.data.mjs +10 -10
  129. package/esm2020/decorators/base/property-decorator.data.mjs +1 -1
  130. package/esm2020/decorators/boolean/boolean-decorator-internal.data.mjs +3 -3
  131. package/esm2020/decorators/custom/custom-decorator-internal.data.mjs +26 -0
  132. package/esm2020/decorators/custom/custom-decorator.data.mjs +2 -0
  133. package/esm2020/decorators/custom/custom.decorator.mjs +13 -0
  134. package/esm2020/decorators/date/date-decorator-internal.data.mjs +48 -0
  135. package/esm2020/decorators/date/date-decorator.data.mjs +7 -0
  136. package/esm2020/decorators/date/date.decorator.mjs +21 -0
  137. package/esm2020/decorators/file/file-decorator-internal.data.mjs +98 -0
  138. package/esm2020/decorators/file/file-decorator.data.mjs +7 -0
  139. package/esm2020/decorators/file/file.decorator.mjs +22 -0
  140. package/esm2020/decorators/number/number-decorator-internal.data.mjs +1 -1
  141. package/esm2020/decorators/number/number-decorator.data.mjs +1 -1
  142. package/esm2020/decorators/number/number.decorator.mjs +3 -3
  143. package/esm2020/decorators/object/object-decorator-internal.data.mjs +2 -2
  144. package/esm2020/decorators/object/object-decorator.data.mjs +1 -1
  145. package/esm2020/decorators/object/object.decorator.mjs +1 -1
  146. package/esm2020/decorators/string/string-decorator-internal.data.mjs +1 -1
  147. package/esm2020/decorators/string/string-decorator.data.mjs +1 -1
  148. package/esm2020/decorators/string/string.decorator.mjs +1 -1
  149. package/esm2020/mocks/placeholder-data.png.mjs +3 -0
  150. package/esm2020/public-api.mjs +15 -5
  151. package/fesm2015/ngx-material-entity.mjs +2649 -422
  152. package/fesm2015/ngx-material-entity.mjs.map +1 -1
  153. package/fesm2020/ngx-material-entity.mjs +2537 -397
  154. package/fesm2020/ngx-material-entity.mjs.map +1 -1
  155. package/mocks/placeholder-data.png.d.ts +1 -0
  156. package/package.json +7 -1
  157. package/public-api.d.ts +15 -4
  158. package/classes/entity-model.class.d.ts +0 -9
  159. package/classes/entity-service.class.d.ts +0 -66
  160. package/esm2020/classes/base-builder.class.mjs +0 -43
  161. package/esm2020/classes/entity-model.class.mjs +0 -19
  162. package/esm2020/classes/entity-service.class.mjs +0 -76
  163. package/esm2020/classes/entity-utilities.class.mjs +0 -377
@@ -0,0 +1 @@
1
+ export declare const placeholder = "data:image/png;base64,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";
package/package.json CHANGED
@@ -1,7 +1,13 @@
1
1
  {
2
2
  "name": "ngx-material-entity",
3
- "version": "0.1.3",
3
+ "version": "1.0.0",
4
4
  "license": "MIT",
5
+ "keywords": [
6
+ "angular",
7
+ "material",
8
+ "crud",
9
+ "entity"
10
+ ],
5
11
  "peerDependencies": {
6
12
  "@angular/animations": "~13.3.0",
7
13
  "@angular/cdk": "^13.3.9",
package/public-api.d.ts CHANGED
@@ -2,9 +2,11 @@
2
2
  * Public API Surface of ngx-material-entity.
3
3
  */
4
4
  import 'reflect-metadata';
5
- export * from './classes/entity-model.class';
6
- export * from './classes/entity-service.class';
7
- export * from './classes/entity-utilities.class';
5
+ export * from './classes/entity.model';
6
+ export * from './classes/entity.service';
7
+ export * from './classes/entity.utilities';
8
+ export * from './classes/date.utilities';
9
+ export * from './classes/file.utilities';
8
10
  export * from './components/confirm-dialog/confirm-dialog-data';
9
11
  export * from './components/confirm-dialog/confirm-dialog.component';
10
12
  export * from './components/confirm-dialog/confirm-dialog.module';
@@ -20,14 +22,23 @@ export * from './components/table/edit-dialog/edit-entity-dialog-data';
20
22
  export * from './components/table/edit-dialog/edit-entity-dialog.module';
21
23
  export * from './components/table/edit-dialog/edit-entity-dialog.component';
22
24
  export * from './components/get-validation-error-message.function';
23
- export * from './decorators/base/decorator-types.enum';
25
+ export * from './components/input/base-input.component';
24
26
  export * from './decorators/array/array.decorator';
25
27
  export * from './decorators/array/array-decorator.data';
28
+ export * from './decorators/base/decorator-types.enum';
29
+ export * from './decorators/base/dropdown-value.interface';
30
+ export { Col, Position } from './decorators/base/property-decorator.data';
26
31
  export * from './decorators/boolean/boolean.decorator';
27
32
  export * from './decorators/boolean/boolean-decorator.data';
33
+ export * from './decorators/date/date.decorator';
34
+ export * from './decorators/date/date-decorator.data';
28
35
  export * from './decorators/number/number.decorator';
29
36
  export * from './decorators/number/number-decorator.data';
30
37
  export * from './decorators/object/object.decorator';
31
38
  export * from './decorators/object/object-decorator.data';
32
39
  export * from './decorators/string/string.decorator';
33
40
  export * from './decorators/string/string-decorator.data';
41
+ export * from './decorators/file/file.decorator';
42
+ export * from './decorators/file/file-decorator.data';
43
+ export * from './decorators/custom/custom.decorator';
44
+ export * from './decorators/custom/custom-decorator.data';
@@ -1,9 +0,0 @@
1
- /**
2
- * The base Entity class.
3
- */
4
- export declare abstract class Entity {
5
- /**
6
- * A unique identifier for the Entity.
7
- */
8
- id: string;
9
- }
@@ -1,66 +0,0 @@
1
- import { Entity } from './entity-model.class';
2
- import { HttpClient } from '@angular/common/http';
3
- import { BehaviorSubject } from 'rxjs';
4
- /**
5
- * A generic EntityService class.
6
- * Offers basic CRUD-functionality.
7
- * You should create a service for every Entity you have.
8
- * If you extend from this you need to make sure that the extended Service can be injected.
9
- */
10
- export declare abstract class EntityService<EntityType extends Entity> {
11
- private readonly http;
12
- /**
13
- * The base url used for api requests. If u want to have more control over this,
14
- * you can override the create, read, update and delete methods.
15
- *
16
- * Create Sends a POST-Request to baseUrl.
17
- *
18
- * Read Sends a GET-Request to baseUrl.
19
- *
20
- * Update Sends a PATCH-Request to baseUrl/{id}.
21
- *
22
- * Delete Sends a DEL-Request to baseUrl/{id}.
23
- */
24
- abstract readonly baseUrl: string;
25
- /**
26
- * A subject of all the entity values.
27
- * Can be subscribed to when you want to do a specific thing whenever the entities change.
28
- */
29
- readonly entitiesSubject: BehaviorSubject<EntityType[]>;
30
- /**
31
- * Gets the entities in an array from the internal entitiesSubject.
32
- *
33
- * @returns The current entities in form of an array.
34
- */
35
- get entities(): EntityType[];
36
- constructor(http: HttpClient);
37
- /**
38
- * Creates a new Entity and pushes it to the entities array.
39
- *
40
- * @param entity - The data of the entity to create.
41
- * All values that should be omitted will be removed from it inside this method.
42
- * @returns A Promise of the created entity.
43
- */
44
- create(entity: EntityType): Promise<EntityType>;
45
- /**
46
- * Gets all existing entities and pushes them to the entities array.
47
- *
48
- * @returns A Promise of all received Entities.
49
- */
50
- read(): Promise<EntityType[]>;
51
- /**
52
- * Updates a specific Entity.
53
- *
54
- * @param entity - The updated Entity
55
- * All values that should be omitted will be removed from it inside this method.
56
- * @param entityPriorChanges - The current Entity.
57
- * It Is used to get changed values and only update them instead of sending the whole entity data.
58
- */
59
- update(entity: EntityType, entityPriorChanges: EntityType): Promise<void>;
60
- /**
61
- * Deletes a specific Entity.
62
- *
63
- * @param id - The id of the element to delete.
64
- */
65
- delete(id: string): Promise<void>;
66
- }
@@ -1,43 +0,0 @@
1
- /**
2
- * The abstract BaseBuilder class.
3
- */
4
- export class BaseBuilder {
5
- constructor(data) {
6
- this.validateInput(data);
7
- this.inputData = data;
8
- this.data = this.generateBaseData(data);
9
- return this;
10
- }
11
- /**
12
- * Used to validate the user input in the constructor.
13
- *
14
- * @param data - The user input.
15
- */
16
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
- validateInput(data) {
18
- // By default, no validation is done
19
- }
20
- ;
21
- /**
22
- * Sets the value for the given key if no user value was provided.
23
- *
24
- * @param key - The key to set the default value for.
25
- * @param value - The value to set when nothing was provided.
26
- * @returns The Builder.
27
- */
28
- withDefault(key, value) {
29
- if (!this.inputData || !this.inputData[key]) {
30
- this.data[key] = value;
31
- }
32
- return this;
33
- }
34
- /**
35
- * Method used to get the final build value after applying all chaining.
36
- *
37
- * @returns The build value.
38
- */
39
- getResult() {
40
- return this.data;
41
- }
42
- }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1idWlsZGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY2xhc3Nlcy9iYXNlLWJ1aWxkZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLFdBQVc7SUFLN0IsWUFBc0IsSUFBZ0I7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBVUQ7Ozs7T0FJRztJQUNILDZEQUE2RDtJQUNuRCxhQUFhLENBQUMsSUFBZ0I7UUFDcEMsb0NBQW9DO0lBQ3hDLENBQUM7SUFBQSxDQUFDO0lBRUY7Ozs7OztPQU1HO0lBQ0gsV0FBVyxDQUFDLEdBQW9CLEVBQUUsS0FBdUQ7UUFDckYsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBc0MsQ0FBQztTQUMzRDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qKlxuICogVGhlIGFic3RyYWN0IEJhc2VCdWlsZGVyIGNsYXNzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUJ1aWxkZXI8SW50ZXJuYWxUeXBlIGV4dGVuZHMgSW5wdXRUeXBlLCBJbnB1dFR5cGUgZXh0ZW5kcyBvYmplY3Q+IHtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGF0YTogSW50ZXJuYWxUeXBlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXREYXRhPzogSW5wdXRUeXBlO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGRhdGE/OiBJbnB1dFR5cGUpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUlucHV0KGRhdGEpO1xuICAgICAgICB0aGlzLmlucHV0RGF0YSA9IGRhdGE7XG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZ2VuZXJhdGVCYXNlRGF0YShkYXRhKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIHRoZSBpbnRlcm5hbCBkYXRhIGZyb20gdGhlIGdpdmVuIHVzZXIgaW5wdXRzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGEgLSBUaGUgaW5wdXQgZnJvbSB0aGUgdXNlci5cbiAgICAgKiBAcmV0dXJucyBUaGUgaW50ZXJuYWwgZGF0YS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2VuZXJhdGVCYXNlRGF0YShkYXRhPzogSW5wdXRUeXBlKTogSW50ZXJuYWxUeXBlO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byB2YWxpZGF0ZSB0aGUgdXNlciBpbnB1dCBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0YSAtIFRoZSB1c2VyIGlucHV0LlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGVJbnB1dChkYXRhPzogSW5wdXRUeXBlKTogdm9pZCB7XG4gICAgICAgIC8vIEJ5IGRlZmF1bHQsIG5vIHZhbGlkYXRpb24gaXMgZG9uZVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGtleSBpZiBubyB1c2VyIHZhbHVlIHdhcyBwcm92aWRlZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IHRvIHNldCB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IuXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHNldCB3aGVuIG5vdGhpbmcgd2FzIHByb3ZpZGVkLlxuICAgICAqIEByZXR1cm5zIFRoZSBCdWlsZGVyLlxuICAgICAqL1xuICAgIHdpdGhEZWZhdWx0KGtleToga2V5b2YgSW5wdXRUeXBlLCB2YWx1ZTogT21pdDxJbnRlcm5hbFR5cGVba2V5b2YgSW5wdXRUeXBlXSwgJ3VuZGVmaW5lZCc+KTogQmFzZUJ1aWxkZXI8SW50ZXJuYWxUeXBlLCBJbnB1dFR5cGU+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlucHV0RGF0YSB8fCAhdGhpcy5pbnB1dERhdGFba2V5XSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhW2tleV0gPSB2YWx1ZSBhcyBJbnRlcm5hbFR5cGVba2V5b2YgSW5wdXRUeXBlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdXNlZCB0byBnZXQgdGhlIGZpbmFsIGJ1aWxkIHZhbHVlIGFmdGVyIGFwcGx5aW5nIGFsbCBjaGFpbmluZy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSBidWlsZCB2YWx1ZS5cbiAgICAgKi9cbiAgICBnZXRSZXN1bHQoKTogSW50ZXJuYWxUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgICB9XG59Il19
@@ -1,19 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { string } from '../decorators/string/string.decorator';
3
- /**
4
- * The base Entity class.
5
- */
6
- export class Entity {
7
- }
8
- __decorate([
9
- string({
10
- omitForCreate: true,
11
- omitForUpdate: true,
12
- display: false,
13
- displayStyle: 'line',
14
- displayName: 'ID',
15
- required: true
16
- }),
17
- __metadata("design:type", String)
18
- ], Entity.prototype, "id", void 0);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1vZGVsLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY2xhc3Nlcy9lbnRpdHktbW9kZWwuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUUvRDs7R0FFRztBQUNILE1BQU0sT0FBZ0IsTUFBTTtDQWEzQjtBQURHO0lBUkMsTUFBTSxDQUFDO1FBQ0osYUFBYSxFQUFFLElBQUk7UUFDbkIsYUFBYSxFQUFFLElBQUk7UUFDbkIsT0FBTyxFQUFFLEtBQUs7UUFDZCxZQUFZLEVBQUUsTUFBTTtRQUNwQixXQUFXLEVBQUUsSUFBSTtRQUNqQixRQUFRLEVBQUUsSUFBSTtLQUNqQixDQUFDOztrQ0FDVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0cmluZyB9IGZyb20gJy4uL2RlY29yYXRvcnMvc3RyaW5nL3N0cmluZy5kZWNvcmF0b3InO1xuXG4vKipcbiAqIFRoZSBiYXNlIEVudGl0eSBjbGFzcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0eSB7XG4gICAgLyoqXG4gICAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIEVudGl0eS5cbiAgICAgKi9cbiAgICBAc3RyaW5nKHtcbiAgICAgICAgb21pdEZvckNyZWF0ZTogdHJ1ZSxcbiAgICAgICAgb21pdEZvclVwZGF0ZTogdHJ1ZSxcbiAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICAgIGRpc3BsYXlTdHlsZTogJ2xpbmUnLFxuICAgICAgICBkaXNwbGF5TmFtZTogJ0lEJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9KVxuICAgIGlkITogc3RyaW5nO1xufSJdfQ==
@@ -1,76 +0,0 @@
1
- import { BehaviorSubject, firstValueFrom } from 'rxjs';
2
- import { isNil, omit, omitBy } from 'lodash';
3
- import { EntityUtilities } from './entity-utilities.class';
4
- /**
5
- * A generic EntityService class.
6
- * Offers basic CRUD-functionality.
7
- * You should create a service for every Entity you have.
8
- * If you extend from this you need to make sure that the extended Service can be injected.
9
- */
10
- export class EntityService {
11
- constructor(http) {
12
- this.http = http;
13
- /**
14
- * A subject of all the entity values.
15
- * Can be subscribed to when you want to do a specific thing whenever the entities change.
16
- */
17
- this.entitiesSubject = new BehaviorSubject([]);
18
- }
19
- /**
20
- * Gets the entities in an array from the internal entitiesSubject.
21
- *
22
- * @returns The current entities in form of an array.
23
- */
24
- get entities() {
25
- return this.entitiesSubject.value;
26
- }
27
- /**
28
- * Creates a new Entity and pushes it to the entities array.
29
- *
30
- * @param entity - The data of the entity to create.
31
- * All values that should be omitted will be removed from it inside this method.
32
- * @returns A Promise of the created entity.
33
- */
34
- async create(entity) {
35
- const body = omit(entity, EntityUtilities.getOmitForCreate(entity));
36
- const e = await firstValueFrom(this.http.post(this.baseUrl, body));
37
- this.entities.push(e);
38
- this.entitiesSubject.next(this.entities);
39
- return e;
40
- }
41
- /**
42
- * Gets all existing entities and pushes them to the entities array.
43
- *
44
- * @returns A Promise of all received Entities.
45
- */
46
- async read() {
47
- const e = await firstValueFrom(this.http.get(this.baseUrl));
48
- this.entitiesSubject.next(e);
49
- return e;
50
- }
51
- /**
52
- * Updates a specific Entity.
53
- *
54
- * @param entity - The updated Entity
55
- * All values that should be omitted will be removed from it inside this method.
56
- * @param entityPriorChanges - The current Entity.
57
- * It Is used to get changed values and only update them instead of sending the whole entity data.
58
- */
59
- async update(entity, entityPriorChanges) {
60
- const reqBody = omit(EntityUtilities.difference(entity, entityPriorChanges), EntityUtilities.getOmitForUpdate(entity));
61
- const updatedEntity = await firstValueFrom(this.http.patch(`${this.baseUrl}/${entityPriorChanges.id}`, omitBy(reqBody, isNil)));
62
- this.entities[this.entities.findIndex((e) => e.id === entityPriorChanges.id)] = updatedEntity;
63
- this.entitiesSubject.next(this.entities);
64
- }
65
- /**
66
- * Deletes a specific Entity.
67
- *
68
- * @param id - The id of the element to delete.
69
- */
70
- async delete(id) {
71
- await firstValueFrom(this.http.delete(`${this.baseUrl}/${id}`));
72
- this.entities.splice(this.entities.findIndex((e) => e.id === id), 1);
73
- this.entitiesSubject.next(this.entities);
74
- }
75
- }
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jbGFzc2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0Q7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQWdCLGFBQWE7SUE4Qi9CLFlBQTZCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFmN0M7OztXQUdHO1FBQ00sb0JBQWUsR0FBa0MsSUFBSSxlQUFlLENBQWUsRUFBRSxDQUFDLENBQUM7SUFXaEQsQ0FBQztJQVRqRDs7OztPQUlHO0lBQ0gsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztJQUN0QyxDQUFDO0lBSUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFrQjtRQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFhLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ04sTUFBTSxDQUFDLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBa0IsRUFBRSxrQkFBOEI7UUFDM0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUNoQixlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxFQUN0RCxlQUFlLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQzNDLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRyxNQUFNLGNBQWMsQ0FDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQ1gsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxFQUMxQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUN6QixDQUNKLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDO1FBQzlGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBVTtRQUNuQixNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQ2pELENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi9lbnRpdHktbW9kZWwuY2xhc3MnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzTmlsLCBvbWl0LCBvbWl0QnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRW50aXR5VXRpbGl0aWVzIH0gZnJvbSAnLi9lbnRpdHktdXRpbGl0aWVzLmNsYXNzJztcblxuLyoqXG4gKiBBIGdlbmVyaWMgRW50aXR5U2VydmljZSBjbGFzcy5cbiAqIE9mZmVycyBiYXNpYyBDUlVELWZ1bmN0aW9uYWxpdHkuXG4gKiBZb3Ugc2hvdWxkIGNyZWF0ZSBhIHNlcnZpY2UgZm9yIGV2ZXJ5IEVudGl0eSB5b3UgaGF2ZS5cbiAqIElmIHlvdSBleHRlbmQgZnJvbSB0aGlzIHlvdSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBleHRlbmRlZCBTZXJ2aWNlIGNhbiBiZSBpbmplY3RlZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0eVNlcnZpY2U8RW50aXR5VHlwZSBleHRlbmRzIEVudGl0eT4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIHVybCB1c2VkIGZvciBhcGkgcmVxdWVzdHMuIElmIHUgd2FudCB0byBoYXZlIG1vcmUgY29udHJvbCBvdmVyIHRoaXMsXG4gICAgICogeW91IGNhbiBvdmVycmlkZSB0aGUgY3JlYXRlLCByZWFkLCB1cGRhdGUgYW5kIGRlbGV0ZSBtZXRob2RzLlxuICAgICAqXG4gICAgICogQ3JlYXRlIFNlbmRzIGEgUE9TVC1SZXF1ZXN0IHRvIGJhc2VVcmwuXG4gICAgICpcbiAgICAgKiBSZWFkIFNlbmRzIGEgR0VULVJlcXVlc3QgdG8gYmFzZVVybC5cbiAgICAgKlxuICAgICAqIFVwZGF0ZSBTZW5kcyBhIFBBVENILVJlcXVlc3QgdG8gYmFzZVVybC97aWR9LlxuICAgICAqXG4gICAgICogRGVsZXRlIFNlbmRzIGEgREVMLVJlcXVlc3QgdG8gYmFzZVVybC97aWR9LlxuICAgICAqL1xuICAgIGFic3RyYWN0IHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEEgc3ViamVjdCBvZiBhbGwgdGhlIGVudGl0eSB2YWx1ZXMuXG4gICAgICogQ2FuIGJlIHN1YnNjcmliZWQgdG8gd2hlbiB5b3Ugd2FudCB0byBkbyBhIHNwZWNpZmljIHRoaW5nIHdoZW5ldmVyIHRoZSBlbnRpdGllcyBjaGFuZ2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW50aXRpZXNTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8RW50aXR5VHlwZVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RW50aXR5VHlwZVtdPihbXSk7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBlbnRpdGllcyBpbiBhbiBhcnJheSBmcm9tIHRoZSBpbnRlcm5hbCBlbnRpdGllc1N1YmplY3QuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBlbnRpdGllcyBpbiBmb3JtIG9mIGFuIGFycmF5LlxuICAgICAqL1xuICAgIGdldCBlbnRpdGllcygpOiBFbnRpdHlUeXBlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRpdGllc1N1YmplY3QudmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBFbnRpdHkgYW5kIHB1c2hlcyBpdCB0byB0aGUgZW50aXRpZXMgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZW50aXR5IC0gVGhlIGRhdGEgb2YgdGhlIGVudGl0eSB0byBjcmVhdGUuXG4gICAgICogQWxsIHZhbHVlcyB0aGF0IHNob3VsZCBiZSBvbWl0dGVkIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIGl0IGluc2lkZSB0aGlzIG1ldGhvZC5cbiAgICAgKiBAcmV0dXJucyBBIFByb21pc2Ugb2YgdGhlIGNyZWF0ZWQgZW50aXR5LlxuICAgICAqL1xuICAgIGFzeW5jIGNyZWF0ZShlbnRpdHk6IEVudGl0eVR5cGUpOiBQcm9taXNlPEVudGl0eVR5cGU+IHtcbiAgICAgICAgY29uc3QgYm9keSA9IG9taXQoZW50aXR5LCBFbnRpdHlVdGlsaXRpZXMuZ2V0T21pdEZvckNyZWF0ZShlbnRpdHkpKTtcbiAgICAgICAgY29uc3QgZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wb3N0PEVudGl0eVR5cGU+KHRoaXMuYmFzZVVybCwgYm9keSkpO1xuICAgICAgICB0aGlzLmVudGl0aWVzLnB1c2goZSk7XG4gICAgICAgIHRoaXMuZW50aXRpZXNTdWJqZWN0Lm5leHQodGhpcy5lbnRpdGllcyk7XG4gICAgICAgIHJldHVybiBlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIGV4aXN0aW5nIGVudGl0aWVzIGFuZCBwdXNoZXMgdGhlbSB0byB0aGUgZW50aXRpZXMgYXJyYXkuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBIFByb21pc2Ugb2YgYWxsIHJlY2VpdmVkIEVudGl0aWVzLlxuICAgICAqL1xuICAgIGFzeW5jIHJlYWQoKTogUHJvbWlzZTxFbnRpdHlUeXBlW10+IHtcbiAgICAgICAgY29uc3QgZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQ8RW50aXR5VHlwZVtdPih0aGlzLmJhc2VVcmwpKTtcbiAgICAgICAgdGhpcy5lbnRpdGllc1N1YmplY3QubmV4dChlKTtcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyBhIHNwZWNpZmljIEVudGl0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbnRpdHkgLSBUaGUgdXBkYXRlZCBFbnRpdHlcbiAgICAgKiBBbGwgdmFsdWVzIHRoYXQgc2hvdWxkIGJlIG9taXR0ZWQgd2lsbCBiZSByZW1vdmVkIGZyb20gaXQgaW5zaWRlIHRoaXMgbWV0aG9kLlxuICAgICAqIEBwYXJhbSBlbnRpdHlQcmlvckNoYW5nZXMgLSBUaGUgY3VycmVudCBFbnRpdHkuXG4gICAgICogSXQgSXMgdXNlZCB0byBnZXQgY2hhbmdlZCB2YWx1ZXMgYW5kIG9ubHkgdXBkYXRlIHRoZW0gaW5zdGVhZCBvZiBzZW5kaW5nIHRoZSB3aG9sZSBlbnRpdHkgZGF0YS5cbiAgICAgKi9cbiAgICBhc3luYyB1cGRhdGUoZW50aXR5OiBFbnRpdHlUeXBlLCBlbnRpdHlQcmlvckNoYW5nZXM6IEVudGl0eVR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcmVxQm9keSA9IG9taXQoXG4gICAgICAgICAgICBFbnRpdHlVdGlsaXRpZXMuZGlmZmVyZW5jZShlbnRpdHksIGVudGl0eVByaW9yQ2hhbmdlcyksXG4gICAgICAgICAgICBFbnRpdHlVdGlsaXRpZXMuZ2V0T21pdEZvclVwZGF0ZShlbnRpdHkpXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRFbnRpdHkgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICAgIHRoaXMuaHR0cC5wYXRjaDxFbnRpdHlUeXBlPihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmJhc2VVcmx9LyR7ZW50aXR5UHJpb3JDaGFuZ2VzLmlkfWAsXG4gICAgICAgICAgICAgICAgb21pdEJ5KHJlcUJvZHksIGlzTmlsKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmVudGl0aWVzW3RoaXMuZW50aXRpZXMuZmluZEluZGV4KChlKSA9PiBlLmlkID09PSBlbnRpdHlQcmlvckNoYW5nZXMuaWQpXSA9IHVwZGF0ZWRFbnRpdHk7XG4gICAgICAgIHRoaXMuZW50aXRpZXNTdWJqZWN0Lm5leHQodGhpcy5lbnRpdGllcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIHNwZWNpZmljIEVudGl0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCAtIFRoZSBpZCBvZiB0aGUgZWxlbWVudCB0byBkZWxldGUuXG4gICAgICovXG4gICAgYXN5bmMgZGVsZXRlKGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLmRlbGV0ZTx2b2lkPihgJHt0aGlzLmJhc2VVcmx9LyR7aWR9YCkpO1xuICAgICAgICB0aGlzLmVudGl0aWVzLnNwbGljZShcbiAgICAgICAgICAgIHRoaXMuZW50aXRpZXMuZmluZEluZGV4KChlKSA9PiBlLmlkID09PSBpZCksIDFcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5lbnRpdGllc1N1YmplY3QubmV4dCh0aGlzLmVudGl0aWVzKTtcbiAgICB9XG59Il19