remult 0.22.2 → 0.22.3

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 (255) hide show
  1. package/esm/graphql.js +27 -27
  2. package/esm/postgres/schema-builder.js +4 -4
  3. package/esm/remult-knex/index.js +2 -2
  4. package/esm/src/backend-tests/backend-database-test-setup.backend-spec.js +10 -0
  5. package/esm/src/id-entity.d.ts +4 -0
  6. package/esm/src/id-entity.js +8 -0
  7. package/esm/src/remult3/RepositoryImplementation.js +7 -5
  8. package/esm/src/shared-tests/db-tests.db-tests.js +35 -0
  9. package/package.json +1 -1
  10. package/postgres/postgresColumnSyntax.d.ts +2 -0
  11. package/postgres/postgresColumnSyntax.js +34 -0
  12. package/remult-knex/index.js +2 -2
  13. package/remult-middleware.d.ts +2 -0
  14. package/remult-middleware.js +70 -0
  15. package/server/register-actions-on-server.d.ts +3 -0
  16. package/server/register-actions-on-server.js +50 -0
  17. package/server/register-entities-on-server.d.ts +3 -0
  18. package/server/register-entities-on-server.js +19 -0
  19. package/src/backend-tests/backend-database-test-setup.backend-spec.js +10 -0
  20. package/{esm/core/src → src}/backend-tests/my-test.backend-spec.d.ts +1 -1
  21. package/src/backend-tests/my-test.backend-spec.js +217 -0
  22. package/src/backend-tests/test-http-server.backend-spec.d.ts +6 -0
  23. package/src/backend-tests/test-http-server.backend-spec.js +342 -0
  24. package/src/id-entity.d.ts +4 -0
  25. package/src/id-entity.js +17 -0
  26. package/src/remult3/RepositoryImplementation.js +15 -13
  27. package/src/shared-tests/db-tests.db-tests.js +64 -0
  28. package/{esm/core/src/valueConverters.d.ts → valueConverters.d.ts} +12 -13
  29. package/valueConverters.js +168 -0
  30. package/esm/angular/interfaces/index.d.ts +0 -1
  31. package/esm/angular/interfaces/index.js +0 -1
  32. package/esm/angular/interfaces/src/column-collection.d.ts +0 -70
  33. package/esm/angular/interfaces/src/column-collection.js +0 -341
  34. package/esm/angular/interfaces/src/data-area-settings.d.ts +0 -15
  35. package/esm/angular/interfaces/src/data-area-settings.js +0 -35
  36. package/esm/angular/interfaces/src/data-control-interfaces.d.ts +0 -36
  37. package/esm/angular/interfaces/src/data-control-interfaces.js +0 -57
  38. package/esm/angular/interfaces/src/dataList.d.ts +0 -13
  39. package/esm/angular/interfaces/src/dataList.js +0 -42
  40. package/esm/angular/interfaces/src/filter-helper.d.ts +0 -13
  41. package/esm/angular/interfaces/src/filter-helper.js +0 -59
  42. package/esm/angular/interfaces/src/grid-settings.d.ts +0 -145
  43. package/esm/angular/interfaces/src/grid-settings.js +0 -387
  44. package/esm/angular/interfaces/src/public_api.d.ts +0 -4
  45. package/esm/angular/interfaces/src/public_api.js +0 -4
  46. package/esm/angular/src/angular/RemultAngularPluginsService.d.ts +0 -4
  47. package/esm/angular/src/angular/RemultAngularPluginsService.js +0 -3
  48. package/esm/angular/src/angular/data-control/data-control2.component.d.ts +0 -49
  49. package/esm/angular/src/angular/data-control/data-control2.component.js +0 -138
  50. package/esm/core/SseSubscriptionServer.d.ts +0 -33
  51. package/esm/core/SseSubscriptionServer.js +0 -107
  52. package/esm/core/assign.d.ts +0 -1
  53. package/esm/core/assign.js +0 -5
  54. package/esm/core/classType.d.ts +0 -3
  55. package/esm/core/classType.js +0 -1
  56. package/esm/core/index.d.ts +0 -27
  57. package/esm/core/index.js +0 -25
  58. package/esm/core/inputTypes.d.ts +0 -9
  59. package/esm/core/inputTypes.js +0 -9
  60. package/esm/core/live-query/data-provider-live-query-storage.d.ts +0 -22
  61. package/esm/core/live-query/data-provider-live-query-storage.js +0 -71
  62. package/esm/core/postgres/index.d.ts +0 -2
  63. package/esm/core/postgres/index.js +0 -2
  64. package/esm/core/postgres/postgres-data-provider.d.ts +0 -36
  65. package/esm/core/postgres/postgres-data-provider.js +0 -120
  66. package/esm/core/postgres/schema-builder.d.ts +0 -17
  67. package/esm/core/postgres/schema-builder.js +0 -153
  68. package/esm/core/remult-fresh.d.ts +0 -17
  69. package/esm/core/remult-fresh.js +0 -29
  70. package/esm/core/remult-knex/index.d.ts +0 -30
  71. package/esm/core/remult-knex/index.js +0 -446
  72. package/esm/core/remult-mongo.d.ts +0 -24
  73. package/esm/core/remult-mongo.js +0 -254
  74. package/esm/core/server/JsonEntityFileStorage.d.ts +0 -10
  75. package/esm/core/server/JsonEntityFileStorage.js +0 -25
  76. package/esm/core/server/core.d.ts +0 -4
  77. package/esm/core/server/core.js +0 -4
  78. package/esm/core/server/expressBridge.d.ts +0 -182
  79. package/esm/core/server/expressBridge.js +0 -938
  80. package/esm/core/server/index.d.ts +0 -6
  81. package/esm/core/server/index.js +0 -9
  82. package/esm/core/server/initAsyncHooks.d.ts +0 -1
  83. package/esm/core/server/initAsyncHooks.js +0 -9
  84. package/esm/core/server/initDataProvider.d.ts +0 -2
  85. package/esm/core/server/initDataProvider.js +0 -14
  86. package/esm/core/src/__EntityValueProvider.d.ts +0 -11
  87. package/esm/core/src/__EntityValueProvider.js +0 -1
  88. package/esm/core/src/__RowsOfDataForTesting.d.ts +0 -3
  89. package/esm/core/src/__RowsOfDataForTesting.js +0 -1
  90. package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -6
  91. package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.js +0 -147
  92. package/esm/core/src/backend-tests/my-test.backend-spec.js +0 -197
  93. package/esm/core/src/backend-tests/test-http-server.backend-spec.d.ts +0 -1
  94. package/esm/core/src/backend-tests/test-http-server.backend-spec.js +0 -167
  95. package/esm/core/src/buildRestDataProvider.d.ts +0 -31
  96. package/esm/core/src/buildRestDataProvider.js +0 -113
  97. package/esm/core/src/column-interfaces.d.ts +0 -154
  98. package/esm/core/src/column-interfaces.js +0 -7
  99. package/esm/core/src/column.d.ts +0 -58
  100. package/esm/core/src/column.js +0 -174
  101. package/esm/core/src/context.d.ts +0 -134
  102. package/esm/core/src/context.js +0 -286
  103. package/esm/core/src/data-api.d.ts +0 -39
  104. package/esm/core/src/data-api.js +0 -279
  105. package/esm/core/src/data-interfaces.d.ts +0 -41
  106. package/esm/core/src/data-interfaces.js +0 -12
  107. package/esm/core/src/data-providers/array-entity-data-provider.d.ts +0 -22
  108. package/esm/core/src/data-providers/array-entity-data-provider.js +0 -252
  109. package/esm/core/src/data-providers/in-memory-database.d.ts +0 -9
  110. package/esm/core/src/data-providers/in-memory-database.js +0 -14
  111. package/esm/core/src/data-providers/json-data-provider.d.ts +0 -12
  112. package/esm/core/src/data-providers/json-data-provider.js +0 -55
  113. package/esm/core/src/data-providers/rest-data-provider.d.ts +0 -49
  114. package/esm/core/src/data-providers/rest-data-provider.js +0 -256
  115. package/esm/core/src/data-providers/sql-database.d.ts +0 -33
  116. package/esm/core/src/data-providers/sql-database.js +0 -384
  117. package/esm/core/src/data-providers/web-sql-data-provider.d.ts +0 -24
  118. package/esm/core/src/data-providers/web-sql-data-provider.js +0 -143
  119. package/esm/core/src/entity.d.ts +0 -91
  120. package/esm/core/src/entity.js +0 -1
  121. package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.d.ts +0 -50
  122. package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.js +0 -150
  123. package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.d.ts +0 -1
  124. package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.js +0 -1
  125. package/esm/core/src/filter/filter-interfaces.d.ts +0 -85
  126. package/esm/core/src/filter/filter-interfaces.js +0 -477
  127. package/esm/core/src/live-query/LiveQueryClient.d.ts +0 -20
  128. package/esm/core/src/live-query/LiveQueryClient.js +0 -188
  129. package/esm/core/src/live-query/SseSubscriptionClient.d.ts +0 -5
  130. package/esm/core/src/live-query/SseSubscriptionClient.js +0 -86
  131. package/esm/core/src/live-query/SubscriptionChannel.d.ts +0 -72
  132. package/esm/core/src/live-query/SubscriptionChannel.js +0 -123
  133. package/esm/core/src/live-query/SubscriptionServer.d.ts +0 -53
  134. package/esm/core/src/live-query/SubscriptionServer.js +0 -111
  135. package/esm/core/src/live-query/live-query-tests.spec.d.ts +0 -6
  136. package/esm/core/src/live-query/live-query-tests.spec.js +0 -952
  137. package/esm/core/src/remult-proxy.d.ts +0 -35
  138. package/esm/core/src/remult-proxy.js +0 -113
  139. package/esm/core/src/remult3/DecoratorReplacer.d.ts +0 -10
  140. package/esm/core/src/remult3/DecoratorReplacer.js +0 -20
  141. package/esm/core/src/remult3/RepositoryImplementation.d.ts +0 -355
  142. package/esm/core/src/remult3/RepositoryImplementation.js +0 -2109
  143. package/esm/core/src/remult3/index.d.ts +0 -2
  144. package/esm/core/src/remult3/index.js +0 -2
  145. package/esm/core/src/remult3/remult3.d.ts +0 -395
  146. package/esm/core/src/remult3/remult3.js +0 -2
  147. package/esm/core/src/server-action.d.ts +0 -81
  148. package/esm/core/src/server-action.js +0 -394
  149. package/esm/core/src/shared-tests/db-tests-setup.d.ts +0 -32
  150. package/esm/core/src/shared-tests/db-tests-setup.js +0 -78
  151. package/esm/core/src/shared-tests/db-tests.db-tests.d.ts +0 -25
  152. package/esm/core/src/shared-tests/db-tests.db-tests.js +0 -810
  153. package/esm/core/src/shared-tests/deleteAll.d.ts +0 -2
  154. package/esm/core/src/shared-tests/deleteAll.js +0 -4
  155. package/esm/core/src/shared-tests/entityWithValidations.d.ts +0 -14
  156. package/esm/core/src/shared-tests/entityWithValidations.js +0 -43
  157. package/esm/core/src/shared-tests/index.d.ts +0 -4
  158. package/esm/core/src/shared-tests/index.js +0 -4
  159. package/esm/core/src/shared-tests/test-custom-id-column.spec.d.ts +0 -1
  160. package/esm/core/src/shared-tests/test-custom-id-column.spec.js +0 -67
  161. package/esm/core/src/shared-tests/test-special-value.spec.d.ts +0 -10
  162. package/esm/core/src/shared-tests/test-special-value.spec.js +0 -73
  163. package/esm/core/src/shared-tests/test-update-with-null.spec.d.ts +0 -1
  164. package/esm/core/src/shared-tests/test-update-with-null.spec.js +0 -31
  165. package/esm/core/src/sort.d.ts +0 -16
  166. package/esm/core/src/sort.js +0 -103
  167. package/esm/core/src/sql-command.d.ts +0 -19
  168. package/esm/core/src/sql-command.js +0 -1
  169. package/esm/core/src/test.d.ts +0 -3
  170. package/esm/core/src/test.js +0 -12
  171. package/esm/core/src/tests/Done.d.ts +0 -5
  172. package/esm/core/src/tests/Done.js +0 -9
  173. package/esm/core/src/tests/RowProvider.spec.d.ts +0 -16
  174. package/esm/core/src/tests/RowProvider.spec.js +0 -631
  175. package/esm/core/src/tests/TestDataApiResponse.d.ts +0 -10
  176. package/esm/core/src/tests/TestDataApiResponse.js +0 -22
  177. package/esm/core/src/tests/basicRowFunctionality.spec.d.ts +0 -8
  178. package/esm/core/src/tests/basicRowFunctionality.spec.js +0 -2103
  179. package/esm/core/src/tests/c.d.ts +0 -8
  180. package/esm/core/src/tests/c.js +0 -13
  181. package/esm/core/src/tests/createData.d.ts +0 -7
  182. package/esm/core/src/tests/createData.js +0 -22
  183. package/esm/core/src/tests/d.d.ts +0 -6
  184. package/esm/core/src/tests/d.js +0 -11
  185. package/esm/core/src/tests/dWithPrefilter.d.ts +0 -7
  186. package/esm/core/src/tests/dWithPrefilter.js +0 -18
  187. package/esm/core/src/tests/entityForCustomFilter.d.ts +0 -16
  188. package/esm/core/src/tests/entityForCustomFilter.js +0 -33
  189. package/esm/core/src/tests/entityWithValidationsOnColumn.d.ts +0 -5
  190. package/esm/core/src/tests/entityWithValidationsOnColumn.js +0 -13
  191. package/esm/core/src/tests/frontend-database-tests-setup.spec.d.ts +0 -4
  192. package/esm/core/src/tests/frontend-database-tests-setup.spec.js +0 -37
  193. package/esm/core/src/tests/h.d.ts +0 -6
  194. package/esm/core/src/tests/h.js +0 -24
  195. package/esm/core/src/tests/remult-3-basic-tests.spec.d.ts +0 -1
  196. package/esm/core/src/tests/remult-3-basic-tests.spec.js +0 -236
  197. package/esm/core/src/tests/remult-3-entities.d.ts +0 -23
  198. package/esm/core/src/tests/remult-3-entities.js +0 -39
  199. package/esm/core/src/tests/tasks.d.ts +0 -6
  200. package/esm/core/src/tests/tasks.js +0 -10
  201. package/esm/core/src/tests/test-context-as-storage.spec.d.ts +0 -0
  202. package/esm/core/src/tests/test-context-as-storage.spec.js +0 -1
  203. package/esm/core/src/tests/test-data-api/predefined-filter.spec.d.ts +0 -1
  204. package/esm/core/src/tests/test-data-api/predefined-filter.spec.js +0 -389
  205. package/esm/core/src/tests/test-data-api/test-put-with-validation.spec.d.ts +0 -5
  206. package/esm/core/src/tests/test-data-api/test-put-with-validation.spec.js +0 -152
  207. package/esm/core/src/tests/test-decorator-precedence.spec.d.ts +0 -1
  208. package/esm/core/src/tests/test-decorator-precedence.spec.js +0 -38
  209. package/esm/core/src/tests/test-default-value.spec.d.ts +0 -1
  210. package/esm/core/src/tests/test-default-value.spec.js +0 -33
  211. package/esm/core/src/tests/test-entity-inheritance.spec.d.ts +0 -14
  212. package/esm/core/src/tests/test-entity-inheritance.spec.js +0 -82
  213. package/esm/core/src/tests/test-exceptions.spec.d.ts +0 -1
  214. package/esm/core/src/tests/test-exceptions.spec.js +0 -375
  215. package/esm/core/src/tests/test-json.spec.d.ts +0 -1
  216. package/esm/core/src/tests/test-json.spec.js +0 -115
  217. package/esm/core/src/tests/test-many-to-one-relation-in-entity.spec.d.ts +0 -9
  218. package/esm/core/src/tests/test-many-to-one-relation-in-entity.spec.js +0 -809
  219. package/esm/core/src/tests/test-non-active-record.spec.d.ts +0 -1
  220. package/esm/core/src/tests/test-non-active-record.spec.js +0 -66
  221. package/esm/core/src/tests/test-object-column.spec.d.ts +0 -1
  222. package/esm/core/src/tests/test-object-column.spec.js +0 -189
  223. package/esm/core/src/tests/test-paged-foreach.spec.d.ts +0 -1
  224. package/esm/core/src/tests/test-paged-foreach.spec.js +0 -328
  225. package/esm/core/src/tests/test-remult-angular.spec.d.ts +0 -1
  226. package/esm/core/src/tests/test-remult-angular.spec.js +0 -23
  227. package/esm/core/src/tests/test-server-controller.spec.d.ts +0 -7
  228. package/esm/core/src/tests/test-server-controller.spec.js +0 -489
  229. package/esm/core/src/tests/test-server-expressions.spec.d.ts +0 -1
  230. package/esm/core/src/tests/test-server-expressions.spec.js +0 -178
  231. package/esm/core/src/tests/test-server-method-on-entity.spec.d.ts +0 -1
  232. package/esm/core/src/tests/test-server-method-on-entity.spec.js +0 -306
  233. package/esm/core/src/tests/test-sql-expression.spec.d.ts +0 -5
  234. package/esm/core/src/tests/test-sql-expression.spec.js +0 -205
  235. package/esm/core/src/tests/test-sql.spec.d.ts +0 -1
  236. package/esm/core/src/tests/test-sql.spec.js +0 -170
  237. package/esm/core/src/tests/test-subscribe.spec.d.ts +0 -1
  238. package/esm/core/src/tests/test-subscribe.spec.js +0 -135
  239. package/esm/core/src/tests/test-type-recovery.spec.d.ts +0 -1
  240. package/esm/core/src/tests/test-type-recovery.spec.js +0 -49
  241. package/esm/core/src/tests/test-where-api.spec.d.ts +0 -1
  242. package/esm/core/src/tests/test-where-api.spec.js +0 -434
  243. package/esm/core/src/tests/testHelper.spec.d.ts +0 -36
  244. package/esm/core/src/tests/testHelper.spec.js +0 -226
  245. package/esm/core/src/tests/testModel/models.d.ts +0 -16
  246. package/esm/core/src/tests/testModel/models.js +0 -25
  247. package/esm/core/src/validators.d.ts +0 -14
  248. package/esm/core/src/validators.js +0 -33
  249. package/esm/core/src/valueConverters.js +0 -197
  250. package/esm/core/urlBuilder.d.ts +0 -6
  251. package/esm/core/urlBuilder.js +0 -20
  252. package/esm/test-servers/shared/Task.d.ts +0 -9
  253. package/esm/test-servers/shared/Task.js +0 -32
  254. package/esm/test.d.ts +0 -5
  255. package/esm/test.js +0 -6
@@ -1,387 +0,0 @@
1
- import { Sort, getEntityRef, Filter } from "remult";
2
- import { FieldCollection } from "./column-collection";
3
- import { DataAreaSettings } from "./data-area-settings";
4
- import { DataList } from "./dataList";
5
- import { FilterHelper } from "./filter-helper";
6
- export class GridSettings {
7
- repository;
8
- settings;
9
- undoChanges(r) {
10
- let helper = this.getRowHelper(r);
11
- helper.undoChanges();
12
- if (helper.isNew())
13
- this.restList.removeItem(r);
14
- }
15
- constructor(repository, settings) {
16
- this.repository = repository;
17
- this.settings = settings;
18
- if (!settings)
19
- this.settings = settings = {};
20
- this.restList = new DataList(repository);
21
- if (repository) {
22
- this.filterHelper.filterRow = repository.create();
23
- repository.addEventListener({
24
- validating: async (entity) => {
25
- if (this.onValidate)
26
- await this.onValidate(entity);
27
- if (this.onSavingRow)
28
- await this.onSavingRow(entity);
29
- }
30
- });
31
- }
32
- this.columns = new FieldCollection(() => this.currentRow, () => this.allowUpdate, this.filterHelper, () => this.currentRow ? true : false, (a, b) => this.repository.getEntityRef(a).fields.find(b));
33
- if (settings) {
34
- if (settings.columnSettings) {
35
- let x = settings.columnSettings(repository.metadata.fields);
36
- this.columns.add(...x);
37
- }
38
- if (settings.allowCrud !== undefined) {
39
- if (settings.allowUpdate === undefined)
40
- settings.allowUpdate = settings.allowCrud;
41
- if (settings.allowDelete === undefined)
42
- settings.allowDelete = settings.allowCrud;
43
- if (settings.allowInsert === undefined)
44
- settings.allowInsert = settings.allowCrud;
45
- }
46
- if (settings.allowUpdate)
47
- this.allowUpdate = true;
48
- if (settings.allowDelete)
49
- this.allowDelete = true;
50
- if (settings.allowInsert)
51
- this.allowInsert = true;
52
- if (settings.showDataArea)
53
- this.showDataArea = settings.showDataArea;
54
- if (settings.showPagination === undefined)
55
- settings.showPagination = true;
56
- if (settings.numOfColumnsInGrid != undefined)
57
- this.columns.numOfColumnsInGrid = settings.numOfColumnsInGrid;
58
- if (settings.rowButtons)
59
- this._buttons = settings.rowButtons;
60
- if (settings.rowCssClass)
61
- this.rowClass = settings.rowCssClass;
62
- if (settings.saving)
63
- this.onSavingRow = settings.saving;
64
- if (settings.enterRow)
65
- this.onEnterRow = settings.enterRow;
66
- if (settings.newRow)
67
- this.onNewRow = settings.newRow;
68
- if (settings.validation)
69
- this.onValidate = settings.validation;
70
- if (settings.caption)
71
- this.caption = settings.caption;
72
- if (!this.caption && repository) {
73
- this.caption = repository.metadata.caption;
74
- }
75
- if (settings.page)
76
- this.page = settings.page;
77
- if (settings.rowsInPage)
78
- this.rowsPerPage = settings.rowsInPage;
79
- else
80
- this.rowsPerPage = 25;
81
- if (this.rowsPerPageOptions.indexOf(this.rowsPerPage) < 0) {
82
- this.rowsPerPageOptions.push(this.rowsPerPage);
83
- this.rowsPerPageOptions.sort((a, b) => +a - +b);
84
- }
85
- if (settings.orderBy)
86
- this._currentOrderBy = Sort.translateOrderByToSort(this.repository.metadata, this.settings.orderBy);
87
- }
88
- }
89
- currList;
90
- origList;
91
- origNumOfColumns;
92
- showSelectColumn = false;
93
- initOrigList() {
94
- if (!this.origList) {
95
- this.origList = [];
96
- this.origNumOfColumns = this.columns.numOfColumnsInGrid;
97
- this.origList.push(...this.columns.items);
98
- }
99
- }
100
- userChooseColumns() {
101
- this.initOrigList();
102
- if (!this.currList) {
103
- this.resetColumns();
104
- }
105
- this.showSelectColumn = !this.showSelectColumn;
106
- }
107
- resetColumns() {
108
- this.currList = [];
109
- this.columns.items = this.currList;
110
- this.columns.numOfColumnsInGrid = this.origNumOfColumns;
111
- for (let i = 0; i < this.origList.length; i++) {
112
- // if (i < this.columns.numOfColumnsInGrid)
113
- this.currList.push(this.origList[i]);
114
- }
115
- }
116
- deleteCol(c) {
117
- this.columns.deleteCol(c);
118
- this.columns.numOfColumnsInGrid--;
119
- }
120
- addNewRow() {
121
- let r = this.restList.add();
122
- if (this.onNewRow)
123
- this.onNewRow(r);
124
- this.setCurrentRow(r);
125
- }
126
- noam;
127
- addArea(settings) {
128
- let col = new FieldCollection(() => this.currentRow, () => this.allowUpdate, this.filterHelper, () => this.currentRow ? true : false, (a, b) => this.repository.getEntityRef(a).fields.find(b));
129
- col.numOfColumnsInGrid = 0;
130
- return new DataAreaSettings(settings, col, this.repository.metadata.fields);
131
- }
132
- currentRow;
133
- setCurrentRow(row) {
134
- if (this.currentRow != row) {
135
- this.currentRow = row;
136
- if (this.onEnterRow && row) {
137
- this.onEnterRow(row);
138
- }
139
- }
140
- }
141
- nextRow() {
142
- if (!this.currentRow && this.items.length > 0)
143
- this.setCurrentRow(this.items[0]);
144
- if (this.currentRow) {
145
- let currentRowPosition = this.items.indexOf(this.currentRow);
146
- if (currentRowPosition < this.items.length - 1)
147
- this.setCurrentRow(this.items[currentRowPosition + 1]);
148
- else
149
- this.nextPage().then(() => {
150
- if (this.items.length > 0)
151
- this.setCurrentRow(this.items[0]);
152
- });
153
- }
154
- }
155
- previousRowAllowed() {
156
- return this.currentRow && this.items.indexOf(this.currentRow) > 0 || this.page > 1;
157
- }
158
- previousRow() {
159
- if (!this.previousRowAllowed())
160
- return;
161
- let currentRowPosition = this.items.indexOf(this.currentRow);
162
- if (currentRowPosition > 0)
163
- this.setCurrentRow(this.items[currentRowPosition - 1]);
164
- else {
165
- if (this.page > 1)
166
- this.previousPage().then(() => {
167
- if (this.items.length > 0)
168
- this.setCurrentRow(this.items[this.items.length - 1]);
169
- });
170
- }
171
- }
172
- deleteCurentRow() {
173
- if (!this.deleteCurrentRowAllowed)
174
- return;
175
- this.currentRowAsRestListItemRow().delete();
176
- }
177
- currentRowAsRestListItemRow() {
178
- if (!this.currentRow)
179
- return undefined;
180
- this.getRowHelper(this.currentRow);
181
- }
182
- getRowHelper(item) {
183
- return this.repository.getEntityRef(item);
184
- }
185
- cancelCurrentRowChanges() {
186
- if (this.currentRowAsRestListItemRow() && this.currentRowAsRestListItemRow())
187
- this.currentRowAsRestListItemRow().undoChanges();
188
- }
189
- deleteCurrentRowAllowed() {
190
- return this.currentRowAsRestListItemRow() && this.currentRowAsRestListItemRow().delete && this.allowDelete && !this.currentRowAsRestListItemRow().isNew();
191
- }
192
- currentRowChanged() {
193
- return this.currentRowAsRestListItemRow() && this.currentRowAsRestListItemRow().wasChanged();
194
- }
195
- saveCurrentRow() {
196
- if (this.currentRowAsRestListItemRow() && this.currentRowAsRestListItemRow().save)
197
- this.currentRowAsRestListItemRow().save();
198
- }
199
- allowUpdate = false;
200
- allowInsert = false;
201
- allowDelete = false;
202
- showDataArea = false;
203
- _buttons = [];
204
- rowClass;
205
- onSavingRow;
206
- onValidate;
207
- onEnterRow;
208
- onNewRow;
209
- _doSavingRow(s) {
210
- return getEntityRef(s).save();
211
- }
212
- caption;
213
- filterHelper = new FilterHelper(() => {
214
- this.page = 1;
215
- this.reloadData();
216
- }, this.repository);
217
- columns;
218
- page = 1;
219
- nextPage() {
220
- this.page++;
221
- return this.reloadData();
222
- }
223
- previousPage() {
224
- if (this.page <= 1)
225
- return;
226
- this.page--;
227
- return this.reloadData();
228
- }
229
- firstPage() {
230
- this.page = 1;
231
- return this.reloadData();
232
- }
233
- selectedRows = [];
234
- selectedChanged(row) {
235
- if (this.isSelected(row)) {
236
- this.selectedRows.splice(this.selectedRows.indexOf(row), 1);
237
- this._selectedAll = false;
238
- }
239
- else {
240
- this.selectedRows.push(row);
241
- this._selectedAll = this.selectedRows.length == this.totalRows;
242
- }
243
- }
244
- lastSelectedRowWithShift;
245
- clickOnselectCheckboxFor(row, shift) {
246
- if (shift) {
247
- if (!this.lastSelectedRowWithShift) {
248
- this.lastSelectedRowWithShift = row;
249
- }
250
- else {
251
- let found = false;
252
- for (const rule of this.items) {
253
- if (found) {
254
- if (rule == row || rule == this.lastSelectedRowWithShift) {
255
- this.lastSelectedRowWithShift = undefined;
256
- return;
257
- }
258
- else
259
- this.selectedChanged(rule);
260
- }
261
- else
262
- found = rule == row || rule == this.lastSelectedRowWithShift;
263
- }
264
- }
265
- }
266
- this.lastSelectedRowWithShift = row;
267
- }
268
- isSelected(row) {
269
- return this.selectedRows.indexOf(row) >= 0;
270
- }
271
- selectAllIntermitent() {
272
- return this.selectedRows.length > 0 && (this.selectedRows.length != this.items.length || !this._selectedAll);
273
- }
274
- selectAllChecked() {
275
- return this.selectedRows.length > 0 && this.selectedRows.length == this.items.length && this._selectedAll;
276
- }
277
- _selectedAll = false;
278
- selectAllChanged(e) {
279
- this.selectedRows.splice(0);
280
- if (e.checked) {
281
- this.selectedRows.push(...this.items);
282
- this._selectedAll = true;
283
- }
284
- else
285
- this._selectedAll = false;
286
- }
287
- rowsPerPage;
288
- rowsPerPageOptions = [10, 25, 50, 100];
289
- get(options) {
290
- if (options.where)
291
- this.settings.where = () => options.where;
292
- if (options.orderBy)
293
- this._currentOrderBy = Sort.translateOrderByToSort(this.repository.metadata, options.orderBy);
294
- this.page = 1;
295
- return this.reloadData();
296
- }
297
- _currentOrderBy;
298
- sort(column) {
299
- let done = false;
300
- if (this._currentOrderBy && this._currentOrderBy.Segments.length > 0) {
301
- if (this._currentOrderBy.Segments[0].field.key == column.key) {
302
- this._currentOrderBy.Segments[0].isDescending = !this._currentOrderBy.Segments[0].isDescending;
303
- done = true;
304
- }
305
- }
306
- if (!done)
307
- this._currentOrderBy = new Sort({ field: column });
308
- this.reloadData();
309
- }
310
- sortedAscending(column) {
311
- if (!this._currentOrderBy)
312
- return false;
313
- if (!column)
314
- return false;
315
- return this._currentOrderBy.Segments.length > 0 &&
316
- this._currentOrderBy.Segments[0].field.key == column.key &&
317
- !this._currentOrderBy.Segments[0].isDescending;
318
- }
319
- sortedDescending(column) {
320
- if (!this._currentOrderBy)
321
- return false;
322
- if (!column)
323
- return false;
324
- return this._currentOrderBy.Segments.length > 0 &&
325
- this._currentOrderBy.Segments[0].field.key == column.key &&
326
- !!this._currentOrderBy.Segments[0].isDescending;
327
- }
328
- totalRows;
329
- async reloadData() {
330
- let opt = await this._internalBuildFindOptions();
331
- this.columns.autoGenerateColumnsBasedOnData(this.repository.metadata);
332
- let result = this.restList.get(opt).then((rows) => {
333
- this.selectedRows = this.selectedRows.map(s => {
334
- let id = getEntityRef(s).getId();
335
- let r = rows.find(r => getEntityRef(r).getId() == id);
336
- if (r !== undefined)
337
- return r;
338
- return s;
339
- });
340
- if (this.restList.items.length == 0) {
341
- this.setCurrentRow(undefined);
342
- }
343
- else {
344
- this.setCurrentRow(this.restList.items[0]);
345
- }
346
- if (this.settings?.rowsLoaded) {
347
- this.settings?.rowsLoaded(this.restList.items);
348
- }
349
- return this.restList;
350
- });
351
- if (this.settings && this.settings.knowTotalRows) {
352
- this.restList.count(opt.where).then(x => {
353
- this.totalRows = x;
354
- });
355
- }
356
- return result;
357
- }
358
- ;
359
- restList;
360
- async _internalBuildFindOptions() {
361
- let opt = {};
362
- if (this.settings.where) {
363
- opt.where = await Filter.resolve(this.settings.where);
364
- }
365
- if (this.settings.orderBy)
366
- opt.orderBy = this.settings.orderBy;
367
- if (this._currentOrderBy)
368
- opt.orderBy = this._currentOrderBy.toEntityOrderBy();
369
- opt.limit = this.rowsPerPage;
370
- if (this.page > 1)
371
- opt.page = this.page;
372
- this.filterHelper.addToFindOptions(opt);
373
- return opt;
374
- }
375
- async getFilterWithSelectedRows() {
376
- let r = await this._internalBuildFindOptions();
377
- if (this.selectedRows.length > 0 && !this._selectedAll) {
378
- r.where = { $and: [r.where, this.repository.metadata.idMetadata.createIdInFilter(this.selectedRows)] };
379
- }
380
- return r;
381
- }
382
- get items() {
383
- if (this.restList)
384
- return this.restList.items;
385
- return undefined;
386
- }
387
- }
@@ -1,4 +0,0 @@
1
- export * from './data-control-interfaces';
2
- export * from './data-area-settings';
3
- export * from './grid-settings';
4
- export * from './column-collection';
@@ -1,4 +0,0 @@
1
- export * from './data-control-interfaces';
2
- export * from './data-area-settings';
3
- export * from './grid-settings';
4
- export * from './column-collection';
@@ -1,4 +0,0 @@
1
- import { dataControlAugmenter } from '../../interfaces';
2
- export declare class RemultAngularPluginsService {
3
- dataControlAugmenter: dataControlAugmenter;
4
- }
@@ -1,3 +0,0 @@
1
- export class RemultAngularPluginsService {
2
- dataControlAugmenter = () => { };
3
- }
@@ -1,49 +0,0 @@
1
- import { ComponentFactoryResolver, ViewContainerRef } from '@angular/core';
2
- import { FloatLabelType } from '@angular/material/form-field';
3
- import { ValueListItem, FieldMetadata, FieldRef } from 'remult';
4
- import { DataControlSettings, FieldCollection } from '../../../interfaces';
5
- import { RemultAngularPluginsService } from '../RemultAngularPluginsService';
6
- export declare class DataControl2Component {
7
- private plugin;
8
- private componentFactoryResolver;
9
- map: DataControlSettings;
10
- set field(value: FieldMetadata | FieldRef<any, any>);
11
- constructor(plugin: RemultAngularPluginsService, componentFactoryResolver: ComponentFactoryResolver);
12
- theId: ViewContainerRef;
13
- done: boolean;
14
- initCustomComponent(): void;
15
- record: any;
16
- notReadonly: boolean;
17
- settings: FieldCollection;
18
- showDescription(): any;
19
- getDropDown(): ValueListItem[];
20
- showClick(): boolean;
21
- click(): void;
22
- getClickIcon(): string;
23
- dataControlStyle(): string;
24
- dummy: {
25
- inputValue: string;
26
- };
27
- _getColumn(): any;
28
- _getEditable(): boolean;
29
- ngOnChanges(): void;
30
- isSelect(): boolean;
31
- showTextBox(): boolean;
32
- showCheckbox(): boolean;
33
- getError(): any;
34
- getStyle(): {
35
- display: string;
36
- width?: undefined;
37
- } | {
38
- width: string;
39
- display?: undefined;
40
- } | {
41
- display?: undefined;
42
- width?: undefined;
43
- };
44
- getFloatLabel(): FloatLabelType;
45
- ngErrorStateMatches: {
46
- parent: DataControl2Component;
47
- isErrorState(): boolean;
48
- };
49
- }
@@ -1,138 +0,0 @@
1
- import { Component, Input, ViewChild, ViewContainerRef } from '@angular/core';
2
- import { ErrorStateMatcher } from '@angular/material/core';
3
- import { decorateDataSettings, FieldCollection } from '../../../interfaces';
4
- @Component({
5
- selector: 'data-control',
6
- templateUrl: './data-control2.component.html',
7
- styleUrls: ['./data-control2.component.scss']
8
- })
9
- export class DataControl2Component {
10
- plugin;
11
- componentFactoryResolver;
12
- @Input()
13
- map;
14
- @Input()
15
- set field(value) {
16
- this.map = {
17
- field: value
18
- };
19
- decorateDataSettings(this.map.field, this.map);
20
- this.settings.augment(this.plugin.dataControlAugmenter, this.map);
21
- this.initCustomComponent();
22
- }
23
- constructor(plugin, componentFactoryResolver) {
24
- this.plugin = plugin;
25
- this.componentFactoryResolver = componentFactoryResolver;
26
- }
27
- @ViewChild('theId', { read: ViewContainerRef, static: true })
28
- theId;
29
- done = false;
30
- initCustomComponent() {
31
- if (this.map?.customComponent?.component) {
32
- if (this.done)
33
- return;
34
- const fieldRef = this.map.field;
35
- if (!fieldRef.metadata) {
36
- this.map.customComponent = undefined;
37
- return;
38
- }
39
- this.done = true;
40
- const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.map.customComponent.component);
41
- const viewContainerRef = this.theId;
42
- viewContainerRef.clear();
43
- const componentRef = viewContainerRef.createComponent(componentFactory);
44
- componentRef.instance.args = {
45
- fieldRef,
46
- settings: this.map
47
- };
48
- }
49
- }
50
- @Input()
51
- record;
52
- @Input()
53
- notReadonly = false;
54
- @Input()
55
- settings = new FieldCollection(undefined, () => true, undefined, undefined, () => undefined);
56
- showDescription() {
57
- return (this.map.field) && this.map.getValue || !this._getEditable();
58
- }
59
- getDropDown() {
60
- return this.map.valueList;
61
- }
62
- showClick() {
63
- if (!this.map.click)
64
- return false;
65
- if (!this._getEditable())
66
- return false;
67
- if (this.map.allowClick === undefined) {
68
- return true;
69
- }
70
- return this.settings.allowClick(this.map, this.record);
71
- }
72
- click() {
73
- if (this.showClick())
74
- this.settings._click(this.map, this.record);
75
- }
76
- getClickIcon() {
77
- if (this.map.clickIcon)
78
- return this.map.clickIcon;
79
- return 'keyboard_arrow_down';
80
- }
81
- dataControlStyle() {
82
- return this.settings.__dataControlStyle(this.map);
83
- }
84
- dummy = { inputValue: '' };
85
- _getColumn() {
86
- if (!this.map.field)
87
- return this.dummy;
88
- return this.settings.__getColumn(this.map, this.record);
89
- }
90
- _getEditable() {
91
- if (this.notReadonly)
92
- return true;
93
- return this.settings._getEditable(this.map, this.record);
94
- }
95
- ngOnChanges() {
96
- this.initCustomComponent();
97
- }
98
- isSelect() {
99
- if (this.map.valueList && this._getEditable())
100
- return true;
101
- return false;
102
- }
103
- showTextBox() {
104
- return !this.isSelect() && !this.showCheckbox();
105
- }
106
- showCheckbox() {
107
- return this.settings._getColDataType(this.map) == 'checkbox';
108
- }
109
- getError() {
110
- return this.settings._getError(this.map, this.record);
111
- }
112
- getStyle() {
113
- if (this.showDescription()) {
114
- if (this.map.hideDataOnInput || !this._getEditable()) {
115
- return { display: 'none' };
116
- }
117
- return { width: '50px' };
118
- }
119
- return {};
120
- }
121
- getFloatLabel() {
122
- if (this.showDescription()) {
123
- if (this.settings._getColDisplayValue(this.map, this.record))
124
- return 'always';
125
- }
126
- return 'auto';
127
- }
128
- ngErrorStateMatches = new class extends ErrorStateMatcher {
129
- parent;
130
- constructor(parent) {
131
- super();
132
- this.parent = parent;
133
- }
134
- isErrorState() {
135
- return !!this.parent.getError();
136
- }
137
- }(this);
138
- }
@@ -1,33 +0,0 @@
1
- /// <reference types="node" />
2
- import { GenericRequestInfo, GenericResponse } from './server/index';
3
- import { Remult } from './src/context';
4
- import { ServerEventChannelSubscribeDTO } from './src/live-query/SubscriptionChannel';
5
- import { SubscriptionServer } from './src/live-query/SubscriptionServer';
6
- import { DataApiResponse } from './src/data-api';
7
- export declare class SseSubscriptionServer implements SubscriptionServer {
8
- private canUserConnectToChannel?;
9
- subscribeToChannel({ channel, clientId }: ServerEventChannelSubscribeDTO, res: DataApiResponse, remult: Remult, remove?: boolean): void;
10
- private connections;
11
- constructor(canUserConnectToChannel?: ((channel: string, remult: Remult) => boolean) | undefined);
12
- publishMessage<T>(channel: string, message: any): Promise<void>;
13
- debugMessageFileSaver: (id: any, channel: any, message: any) => void;
14
- openHttpServerStream(req: GenericRequestInfo, res: GenericResponse & ResponseRequiredForSSE): clientConnection;
15
- debug(): void;
16
- debugFileSaver: (x: any) => void;
17
- }
18
- export interface ResponseRequiredForSSE {
19
- write(data: string): void;
20
- writeHead(status: number, headers: any): void;
21
- flush?(): void;
22
- }
23
- export declare class clientConnection {
24
- response: GenericResponse & ResponseRequiredForSSE;
25
- channels: Record<string, boolean>;
26
- timeOutRef: NodeJS.Timeout;
27
- close(): void;
28
- closed: boolean;
29
- write(eventData: string, eventType?: string): void;
30
- connectionId: any;
31
- constructor(response: GenericResponse & ResponseRequiredForSSE);
32
- sendLiveMessage(): void;
33
- }