remult 0.22.1 → 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 (257) 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/remult-mongo.js +6 -6
  5. package/esm/src/backend-tests/backend-database-test-setup.backend-spec.js +30 -0
  6. package/esm/src/id-entity.d.ts +4 -0
  7. package/esm/src/id-entity.js +8 -0
  8. package/esm/src/remult3/RepositoryImplementation.js +7 -5
  9. package/esm/src/shared-tests/db-tests.db-tests.js +35 -0
  10. package/package.json +1 -1
  11. package/postgres/postgresColumnSyntax.d.ts +2 -0
  12. package/postgres/postgresColumnSyntax.js +34 -0
  13. package/remult-knex/index.js +2 -2
  14. package/remult-middleware.d.ts +2 -0
  15. package/remult-middleware.js +70 -0
  16. package/remult-mongo.js +6 -6
  17. package/server/register-actions-on-server.d.ts +3 -0
  18. package/server/register-actions-on-server.js +50 -0
  19. package/server/register-entities-on-server.d.ts +3 -0
  20. package/server/register-entities-on-server.js +19 -0
  21. package/src/backend-tests/backend-database-test-setup.backend-spec.js +60 -0
  22. package/{esm/core/src → src}/backend-tests/my-test.backend-spec.d.ts +1 -1
  23. package/src/backend-tests/my-test.backend-spec.js +217 -0
  24. package/src/backend-tests/test-http-server.backend-spec.d.ts +6 -0
  25. package/src/backend-tests/test-http-server.backend-spec.js +342 -0
  26. package/src/id-entity.d.ts +4 -0
  27. package/src/id-entity.js +17 -0
  28. package/src/remult3/RepositoryImplementation.js +15 -13
  29. package/src/shared-tests/db-tests.db-tests.js +64 -0
  30. package/{esm/core/src/valueConverters.d.ts → valueConverters.d.ts} +12 -13
  31. package/valueConverters.js +168 -0
  32. package/esm/angular/interfaces/index.d.ts +0 -1
  33. package/esm/angular/interfaces/index.js +0 -1
  34. package/esm/angular/interfaces/src/column-collection.d.ts +0 -70
  35. package/esm/angular/interfaces/src/column-collection.js +0 -341
  36. package/esm/angular/interfaces/src/data-area-settings.d.ts +0 -15
  37. package/esm/angular/interfaces/src/data-area-settings.js +0 -35
  38. package/esm/angular/interfaces/src/data-control-interfaces.d.ts +0 -36
  39. package/esm/angular/interfaces/src/data-control-interfaces.js +0 -57
  40. package/esm/angular/interfaces/src/dataList.d.ts +0 -13
  41. package/esm/angular/interfaces/src/dataList.js +0 -42
  42. package/esm/angular/interfaces/src/filter-helper.d.ts +0 -13
  43. package/esm/angular/interfaces/src/filter-helper.js +0 -59
  44. package/esm/angular/interfaces/src/grid-settings.d.ts +0 -145
  45. package/esm/angular/interfaces/src/grid-settings.js +0 -387
  46. package/esm/angular/interfaces/src/public_api.d.ts +0 -4
  47. package/esm/angular/interfaces/src/public_api.js +0 -4
  48. package/esm/angular/src/angular/RemultAngularPluginsService.d.ts +0 -4
  49. package/esm/angular/src/angular/RemultAngularPluginsService.js +0 -3
  50. package/esm/angular/src/angular/data-control/data-control2.component.d.ts +0 -49
  51. package/esm/angular/src/angular/data-control/data-control2.component.js +0 -138
  52. package/esm/core/SseSubscriptionServer.d.ts +0 -33
  53. package/esm/core/SseSubscriptionServer.js +0 -107
  54. package/esm/core/assign.d.ts +0 -1
  55. package/esm/core/assign.js +0 -5
  56. package/esm/core/classType.d.ts +0 -3
  57. package/esm/core/classType.js +0 -1
  58. package/esm/core/index.d.ts +0 -27
  59. package/esm/core/index.js +0 -25
  60. package/esm/core/inputTypes.d.ts +0 -9
  61. package/esm/core/inputTypes.js +0 -9
  62. package/esm/core/live-query/data-provider-live-query-storage.d.ts +0 -22
  63. package/esm/core/live-query/data-provider-live-query-storage.js +0 -71
  64. package/esm/core/postgres/index.d.ts +0 -2
  65. package/esm/core/postgres/index.js +0 -2
  66. package/esm/core/postgres/postgres-data-provider.d.ts +0 -36
  67. package/esm/core/postgres/postgres-data-provider.js +0 -120
  68. package/esm/core/postgres/schema-builder.d.ts +0 -17
  69. package/esm/core/postgres/schema-builder.js +0 -153
  70. package/esm/core/remult-fresh.d.ts +0 -17
  71. package/esm/core/remult-fresh.js +0 -29
  72. package/esm/core/remult-knex/index.d.ts +0 -30
  73. package/esm/core/remult-knex/index.js +0 -446
  74. package/esm/core/remult-mongo.d.ts +0 -24
  75. package/esm/core/remult-mongo.js +0 -254
  76. package/esm/core/server/JsonEntityFileStorage.d.ts +0 -10
  77. package/esm/core/server/JsonEntityFileStorage.js +0 -25
  78. package/esm/core/server/core.d.ts +0 -4
  79. package/esm/core/server/core.js +0 -4
  80. package/esm/core/server/expressBridge.d.ts +0 -182
  81. package/esm/core/server/expressBridge.js +0 -938
  82. package/esm/core/server/index.d.ts +0 -6
  83. package/esm/core/server/index.js +0 -9
  84. package/esm/core/server/initAsyncHooks.d.ts +0 -1
  85. package/esm/core/server/initAsyncHooks.js +0 -9
  86. package/esm/core/server/initDataProvider.d.ts +0 -2
  87. package/esm/core/server/initDataProvider.js +0 -14
  88. package/esm/core/src/__EntityValueProvider.d.ts +0 -11
  89. package/esm/core/src/__EntityValueProvider.js +0 -1
  90. package/esm/core/src/__RowsOfDataForTesting.d.ts +0 -3
  91. package/esm/core/src/__RowsOfDataForTesting.js +0 -1
  92. package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -6
  93. package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.js +0 -147
  94. package/esm/core/src/backend-tests/my-test.backend-spec.js +0 -197
  95. package/esm/core/src/backend-tests/test-http-server.backend-spec.d.ts +0 -1
  96. package/esm/core/src/backend-tests/test-http-server.backend-spec.js +0 -167
  97. package/esm/core/src/buildRestDataProvider.d.ts +0 -31
  98. package/esm/core/src/buildRestDataProvider.js +0 -113
  99. package/esm/core/src/column-interfaces.d.ts +0 -154
  100. package/esm/core/src/column-interfaces.js +0 -7
  101. package/esm/core/src/column.d.ts +0 -58
  102. package/esm/core/src/column.js +0 -174
  103. package/esm/core/src/context.d.ts +0 -134
  104. package/esm/core/src/context.js +0 -286
  105. package/esm/core/src/data-api.d.ts +0 -39
  106. package/esm/core/src/data-api.js +0 -279
  107. package/esm/core/src/data-interfaces.d.ts +0 -41
  108. package/esm/core/src/data-interfaces.js +0 -12
  109. package/esm/core/src/data-providers/array-entity-data-provider.d.ts +0 -22
  110. package/esm/core/src/data-providers/array-entity-data-provider.js +0 -252
  111. package/esm/core/src/data-providers/in-memory-database.d.ts +0 -9
  112. package/esm/core/src/data-providers/in-memory-database.js +0 -14
  113. package/esm/core/src/data-providers/json-data-provider.d.ts +0 -12
  114. package/esm/core/src/data-providers/json-data-provider.js +0 -55
  115. package/esm/core/src/data-providers/rest-data-provider.d.ts +0 -49
  116. package/esm/core/src/data-providers/rest-data-provider.js +0 -256
  117. package/esm/core/src/data-providers/sql-database.d.ts +0 -33
  118. package/esm/core/src/data-providers/sql-database.js +0 -384
  119. package/esm/core/src/data-providers/web-sql-data-provider.d.ts +0 -24
  120. package/esm/core/src/data-providers/web-sql-data-provider.js +0 -143
  121. package/esm/core/src/entity.d.ts +0 -91
  122. package/esm/core/src/entity.js +0 -1
  123. package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.d.ts +0 -50
  124. package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.js +0 -150
  125. package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.d.ts +0 -1
  126. package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.js +0 -1
  127. package/esm/core/src/filter/filter-interfaces.d.ts +0 -85
  128. package/esm/core/src/filter/filter-interfaces.js +0 -477
  129. package/esm/core/src/live-query/LiveQueryClient.d.ts +0 -20
  130. package/esm/core/src/live-query/LiveQueryClient.js +0 -188
  131. package/esm/core/src/live-query/SseSubscriptionClient.d.ts +0 -5
  132. package/esm/core/src/live-query/SseSubscriptionClient.js +0 -86
  133. package/esm/core/src/live-query/SubscriptionChannel.d.ts +0 -72
  134. package/esm/core/src/live-query/SubscriptionChannel.js +0 -123
  135. package/esm/core/src/live-query/SubscriptionServer.d.ts +0 -53
  136. package/esm/core/src/live-query/SubscriptionServer.js +0 -111
  137. package/esm/core/src/live-query/live-query-tests.spec.d.ts +0 -6
  138. package/esm/core/src/live-query/live-query-tests.spec.js +0 -952
  139. package/esm/core/src/remult-proxy.d.ts +0 -35
  140. package/esm/core/src/remult-proxy.js +0 -113
  141. package/esm/core/src/remult3/DecoratorReplacer.d.ts +0 -10
  142. package/esm/core/src/remult3/DecoratorReplacer.js +0 -20
  143. package/esm/core/src/remult3/RepositoryImplementation.d.ts +0 -355
  144. package/esm/core/src/remult3/RepositoryImplementation.js +0 -2109
  145. package/esm/core/src/remult3/index.d.ts +0 -2
  146. package/esm/core/src/remult3/index.js +0 -2
  147. package/esm/core/src/remult3/remult3.d.ts +0 -395
  148. package/esm/core/src/remult3/remult3.js +0 -2
  149. package/esm/core/src/server-action.d.ts +0 -81
  150. package/esm/core/src/server-action.js +0 -394
  151. package/esm/core/src/shared-tests/db-tests-setup.d.ts +0 -32
  152. package/esm/core/src/shared-tests/db-tests-setup.js +0 -78
  153. package/esm/core/src/shared-tests/db-tests.db-tests.d.ts +0 -25
  154. package/esm/core/src/shared-tests/db-tests.db-tests.js +0 -810
  155. package/esm/core/src/shared-tests/deleteAll.d.ts +0 -2
  156. package/esm/core/src/shared-tests/deleteAll.js +0 -4
  157. package/esm/core/src/shared-tests/entityWithValidations.d.ts +0 -14
  158. package/esm/core/src/shared-tests/entityWithValidations.js +0 -43
  159. package/esm/core/src/shared-tests/index.d.ts +0 -4
  160. package/esm/core/src/shared-tests/index.js +0 -4
  161. package/esm/core/src/shared-tests/test-custom-id-column.spec.d.ts +0 -1
  162. package/esm/core/src/shared-tests/test-custom-id-column.spec.js +0 -67
  163. package/esm/core/src/shared-tests/test-special-value.spec.d.ts +0 -10
  164. package/esm/core/src/shared-tests/test-special-value.spec.js +0 -73
  165. package/esm/core/src/shared-tests/test-update-with-null.spec.d.ts +0 -1
  166. package/esm/core/src/shared-tests/test-update-with-null.spec.js +0 -31
  167. package/esm/core/src/sort.d.ts +0 -16
  168. package/esm/core/src/sort.js +0 -103
  169. package/esm/core/src/sql-command.d.ts +0 -19
  170. package/esm/core/src/sql-command.js +0 -1
  171. package/esm/core/src/test.d.ts +0 -3
  172. package/esm/core/src/test.js +0 -12
  173. package/esm/core/src/tests/Done.d.ts +0 -5
  174. package/esm/core/src/tests/Done.js +0 -9
  175. package/esm/core/src/tests/RowProvider.spec.d.ts +0 -16
  176. package/esm/core/src/tests/RowProvider.spec.js +0 -631
  177. package/esm/core/src/tests/TestDataApiResponse.d.ts +0 -10
  178. package/esm/core/src/tests/TestDataApiResponse.js +0 -22
  179. package/esm/core/src/tests/basicRowFunctionality.spec.d.ts +0 -8
  180. package/esm/core/src/tests/basicRowFunctionality.spec.js +0 -2103
  181. package/esm/core/src/tests/c.d.ts +0 -8
  182. package/esm/core/src/tests/c.js +0 -13
  183. package/esm/core/src/tests/createData.d.ts +0 -7
  184. package/esm/core/src/tests/createData.js +0 -22
  185. package/esm/core/src/tests/d.d.ts +0 -6
  186. package/esm/core/src/tests/d.js +0 -11
  187. package/esm/core/src/tests/dWithPrefilter.d.ts +0 -7
  188. package/esm/core/src/tests/dWithPrefilter.js +0 -18
  189. package/esm/core/src/tests/entityForCustomFilter.d.ts +0 -16
  190. package/esm/core/src/tests/entityForCustomFilter.js +0 -33
  191. package/esm/core/src/tests/entityWithValidationsOnColumn.d.ts +0 -5
  192. package/esm/core/src/tests/entityWithValidationsOnColumn.js +0 -13
  193. package/esm/core/src/tests/frontend-database-tests-setup.spec.d.ts +0 -4
  194. package/esm/core/src/tests/frontend-database-tests-setup.spec.js +0 -37
  195. package/esm/core/src/tests/h.d.ts +0 -6
  196. package/esm/core/src/tests/h.js +0 -24
  197. package/esm/core/src/tests/remult-3-basic-tests.spec.d.ts +0 -1
  198. package/esm/core/src/tests/remult-3-basic-tests.spec.js +0 -236
  199. package/esm/core/src/tests/remult-3-entities.d.ts +0 -23
  200. package/esm/core/src/tests/remult-3-entities.js +0 -39
  201. package/esm/core/src/tests/tasks.d.ts +0 -6
  202. package/esm/core/src/tests/tasks.js +0 -10
  203. package/esm/core/src/tests/test-context-as-storage.spec.d.ts +0 -0
  204. package/esm/core/src/tests/test-context-as-storage.spec.js +0 -1
  205. package/esm/core/src/tests/test-data-api/predefined-filter.spec.d.ts +0 -1
  206. package/esm/core/src/tests/test-data-api/predefined-filter.spec.js +0 -389
  207. package/esm/core/src/tests/test-data-api/test-put-with-validation.spec.d.ts +0 -5
  208. package/esm/core/src/tests/test-data-api/test-put-with-validation.spec.js +0 -152
  209. package/esm/core/src/tests/test-decorator-precedence.spec.d.ts +0 -1
  210. package/esm/core/src/tests/test-decorator-precedence.spec.js +0 -38
  211. package/esm/core/src/tests/test-default-value.spec.d.ts +0 -1
  212. package/esm/core/src/tests/test-default-value.spec.js +0 -33
  213. package/esm/core/src/tests/test-entity-inheritance.spec.d.ts +0 -14
  214. package/esm/core/src/tests/test-entity-inheritance.spec.js +0 -82
  215. package/esm/core/src/tests/test-exceptions.spec.d.ts +0 -1
  216. package/esm/core/src/tests/test-exceptions.spec.js +0 -375
  217. package/esm/core/src/tests/test-json.spec.d.ts +0 -1
  218. package/esm/core/src/tests/test-json.spec.js +0 -115
  219. package/esm/core/src/tests/test-many-to-one-relation-in-entity.spec.d.ts +0 -9
  220. package/esm/core/src/tests/test-many-to-one-relation-in-entity.spec.js +0 -809
  221. package/esm/core/src/tests/test-non-active-record.spec.d.ts +0 -1
  222. package/esm/core/src/tests/test-non-active-record.spec.js +0 -66
  223. package/esm/core/src/tests/test-object-column.spec.d.ts +0 -1
  224. package/esm/core/src/tests/test-object-column.spec.js +0 -189
  225. package/esm/core/src/tests/test-paged-foreach.spec.d.ts +0 -1
  226. package/esm/core/src/tests/test-paged-foreach.spec.js +0 -328
  227. package/esm/core/src/tests/test-remult-angular.spec.d.ts +0 -1
  228. package/esm/core/src/tests/test-remult-angular.spec.js +0 -23
  229. package/esm/core/src/tests/test-server-controller.spec.d.ts +0 -7
  230. package/esm/core/src/tests/test-server-controller.spec.js +0 -489
  231. package/esm/core/src/tests/test-server-expressions.spec.d.ts +0 -1
  232. package/esm/core/src/tests/test-server-expressions.spec.js +0 -178
  233. package/esm/core/src/tests/test-server-method-on-entity.spec.d.ts +0 -1
  234. package/esm/core/src/tests/test-server-method-on-entity.spec.js +0 -306
  235. package/esm/core/src/tests/test-sql-expression.spec.d.ts +0 -5
  236. package/esm/core/src/tests/test-sql-expression.spec.js +0 -205
  237. package/esm/core/src/tests/test-sql.spec.d.ts +0 -1
  238. package/esm/core/src/tests/test-sql.spec.js +0 -170
  239. package/esm/core/src/tests/test-subscribe.spec.d.ts +0 -1
  240. package/esm/core/src/tests/test-subscribe.spec.js +0 -135
  241. package/esm/core/src/tests/test-type-recovery.spec.d.ts +0 -1
  242. package/esm/core/src/tests/test-type-recovery.spec.js +0 -49
  243. package/esm/core/src/tests/test-where-api.spec.d.ts +0 -1
  244. package/esm/core/src/tests/test-where-api.spec.js +0 -434
  245. package/esm/core/src/tests/testHelper.spec.d.ts +0 -36
  246. package/esm/core/src/tests/testHelper.spec.js +0 -226
  247. package/esm/core/src/tests/testModel/models.d.ts +0 -16
  248. package/esm/core/src/tests/testModel/models.js +0 -25
  249. package/esm/core/src/validators.d.ts +0 -14
  250. package/esm/core/src/validators.js +0 -33
  251. package/esm/core/src/valueConverters.js +0 -197
  252. package/esm/core/urlBuilder.d.ts +0 -6
  253. package/esm/core/urlBuilder.js +0 -20
  254. package/esm/test-servers/shared/Task.d.ts +0 -9
  255. package/esm/test-servers/shared/Task.js +0 -32
  256. package/esm/test.d.ts +0 -5
  257. package/esm/test.js +0 -6
@@ -3018,21 +3018,23 @@ function decorateColumnSettings(settings, remult) {
3018
3018
  isIdNumeric_1 =
3019
3019
  remult.repo(settings.valueType).metadata.idMetadata.field
3020
3020
  .valueType === Number;
3021
- try {
3022
- for (var _b = tslib_1.__values([
3023
- 'fieldTypeInDb',
3024
- ]), _c = _b.next(); !_c.done; _c = _b.next()) {
3025
- var key = _c.value;
3026
- //@ts-ignore
3027
- target[key] = valueConverters_1.ValueConverters.Integer[key];
3028
- }
3029
- }
3030
- catch (e_40_1) { e_40 = { error: e_40_1 }; }
3031
- finally {
3021
+ if (isIdNumeric_1) {
3032
3022
  try {
3033
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
3023
+ for (var _b = tslib_1.__values([
3024
+ 'fieldTypeInDb',
3025
+ ]), _c = _b.next(); !_c.done; _c = _b.next()) {
3026
+ var key = _c.value;
3027
+ //@ts-ignore
3028
+ target[key] = valueConverters_1.ValueConverters.Integer[key];
3029
+ }
3030
+ }
3031
+ catch (e_40_1) { e_40 = { error: e_40_1 }; }
3032
+ finally {
3033
+ try {
3034
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
3035
+ }
3036
+ finally { if (e_40) throw e_40.error; }
3034
3037
  }
3035
- finally { if (e_40) throw e_40.error; }
3036
3038
  }
3037
3039
  }
3038
3040
  }
@@ -2377,3 +2377,67 @@ db_tests_setup_1.testAll('test relation to number id', function (_a) {
2377
2377
  });
2378
2378
  });
2379
2379
  }, false, { exclude: [db_tests_setup_1.TestDbs.mongo, db_tests_setup_1.TestDbs.mongoNoTrans] });
2380
+ db_tests_setup_1.testAll('test relation to string id', function (_a) {
2381
+ var createEntity = _a.createEntity;
2382
+ return tslib_1.__awaiter(void 0, void 0, void 0, function () {
2383
+ var category, task, catRepo, taskRepo, cat, _b, _c, _d;
2384
+ return tslib_1.__generator(this, function (_e) {
2385
+ switch (_e.label) {
2386
+ case 0:
2387
+ category = /** @class */ (function () {
2388
+ function class_12() {
2389
+ this.id = '';
2390
+ this.name = '';
2391
+ }
2392
+ return class_12;
2393
+ }());
2394
+ DecoratorReplacer_1.describeClass(category, remult3_1.Entity('rel_ID_string_categories', { allowApiCrud: true }), {
2395
+ id: remult3_1.Fields.cuid(),
2396
+ name: remult3_1.Fields.string(),
2397
+ });
2398
+ task = /** @class */ (function () {
2399
+ function class_13() {
2400
+ this.id = 0;
2401
+ this.title = '';
2402
+ }
2403
+ return class_13;
2404
+ }());
2405
+ DecoratorReplacer_1.describeClass(task, remult3_1.Entity('rel_ID_string_task', { allowApiCrud: true }), {
2406
+ id: remult3_1.Fields.autoIncrement(),
2407
+ title: remult3_1.Fields.string(),
2408
+ category: remult3_1.Field(function () { return category; }),
2409
+ });
2410
+ return [4 /*yield*/, createEntity(category)];
2411
+ case 1:
2412
+ catRepo = _e.sent();
2413
+ return [4 /*yield*/, createEntity(task)];
2414
+ case 2:
2415
+ taskRepo = _e.sent();
2416
+ return [4 /*yield*/, catRepo.insert([{ name: 'cat0' }, { name: 'cat1' }])];
2417
+ case 3:
2418
+ cat = _e.sent();
2419
+ return [4 /*yield*/, taskRepo.insert([
2420
+ { title: 't1', category: cat[0] },
2421
+ { title: 't2', category: cat[0] },
2422
+ { title: 't3', category: cat[1] },
2423
+ ])];
2424
+ case 4:
2425
+ _e.sent();
2426
+ expect(taskRepo.fields.category.valueConverter.fieldTypeInDb).toBeUndefined();
2427
+ _b = expect;
2428
+ return [4 /*yield*/, taskRepo.count({ category: cat[0] })];
2429
+ case 5:
2430
+ _b.apply(void 0, [_e.sent()]).toBe(2);
2431
+ _c = expect;
2432
+ return [4 /*yield*/, taskRepo.count({ category: cat[1] })];
2433
+ case 6:
2434
+ _c.apply(void 0, [_e.sent()]).toBe(1);
2435
+ _d = expect;
2436
+ return [4 /*yield*/, taskRepo.count({ category: { $id: cat[0].id } })];
2437
+ case 7:
2438
+ _d.apply(void 0, [_e.sent()]).toBe(2);
2439
+ return [2 /*return*/];
2440
+ }
2441
+ });
2442
+ });
2443
+ }, false, { exclude: [db_tests_setup_1.TestDbs.mongo, db_tests_setup_1.TestDbs.mongoNoTrans] });
@@ -1,13 +1,12 @@
1
- import { ValueConverter } from "./column-interfaces";
2
- export declare class ValueConverters {
3
- static readonly Date: ValueConverter<Date>;
4
- static readonly DateOnly: ValueConverter<Date>;
5
- static readonly DateOnlyString: ValueConverter<Date>;
6
- static readonly Boolean: ValueConverter<Boolean>;
7
- static readonly Number: ValueConverter<number>;
8
- static readonly String: ValueConverter<String>;
9
- static readonly Integer: ValueConverter<number>;
10
- static readonly Default: Required<ValueConverter<any>>;
11
- static readonly JsonString: ValueConverter<any>;
12
- static readonly JsonValue: ValueConverter<any>;
13
- }
1
+ import { ValueConverter } from "./src/column-interfaces";
2
+ export declare class ValueConverters {
3
+ static readonly Date: ValueConverter<Date>;
4
+ static readonly DateOnly: ValueConverter<Date>;
5
+ static readonly DateOnlyString: ValueConverter<Date>;
6
+ static readonly Boolean: ValueConverter<Boolean>;
7
+ static readonly Number: ValueConverter<number>;
8
+ static readonly Integer: ValueConverter<number>;
9
+ static readonly Default: ValueConverter<any>;
10
+ static readonly JsonString: ValueConverter<any>;
11
+ static readonly JsonValue: ValueConverter<any>;
12
+ }
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValueConverters = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var inputTypes_1 = require("./inputTypes");
6
+ var ValueConverters = /** @class */ (function () {
7
+ function ValueConverters() {
8
+ }
9
+ ValueConverters.Date = {
10
+ toJson: function (val) {
11
+ if (!val)
12
+ return '';
13
+ if (typeof (val) === "string")
14
+ val = new Date(val);
15
+ if (val instanceof Date) {
16
+ return val.toISOString();
17
+ }
18
+ else {
19
+ console.log("ToJsonError", val);
20
+ throw new Error("Expected date but got val");
21
+ }
22
+ },
23
+ fromJson: function (val) {
24
+ if (val == undefined)
25
+ return undefined;
26
+ if (val == '')
27
+ return undefined;
28
+ if (val.startsWith('0000-00-00'))
29
+ return undefined;
30
+ return new Date(Date.parse(val));
31
+ },
32
+ toDb: function (x) { return x; },
33
+ fromDb: function (x) { return x; },
34
+ fromInput: function (x) { return ValueConverters.Date.fromJson(x); },
35
+ toInput: function (x) { return ValueConverters.Date.toJson(x); },
36
+ displayValue: function (val) {
37
+ if (!val)
38
+ return '';
39
+ return val.toLocaleString();
40
+ }
41
+ };
42
+ ValueConverters.DateOnly = {
43
+ fromInput: function (x) { return ValueConverters.DateOnly.fromJson(x); },
44
+ toInput: function (x) { return ValueConverters.DateOnly.toJson(x); },
45
+ toJson: function (val) {
46
+ var d = val;
47
+ if (typeof d === "string" || typeof (d) === "number")
48
+ d = new Date(d);
49
+ if (!d || d == null)
50
+ return null;
51
+ if (d.getHours() == 0)
52
+ return new Date(d.valueOf() - d.getTimezoneOffset() * 60000).toISOString().substring(0, 10);
53
+ else
54
+ return d.toISOString().substring(0, 10);
55
+ },
56
+ fromJson: function (value) {
57
+ if (!value || value == '' || value == '0000-00-00')
58
+ return null;
59
+ var d = new Date(Date.parse(value));
60
+ d.setMinutes(d.getMinutes() + d.getTimezoneOffset());
61
+ return d;
62
+ },
63
+ inputType: inputTypes_1.InputTypes.date,
64
+ toDb: function (val) {
65
+ if (!val)
66
+ return null;
67
+ return ValueConverters.DateOnly.fromJson(ValueConverters.DateOnly.toJson(val));
68
+ } //when using date storage, the database expects and returns a date local and every where else we reflect on date iso
69
+ ,
70
+ fromDb: function (val) {
71
+ var d = val;
72
+ if (!d)
73
+ return null;
74
+ return val;
75
+ },
76
+ fieldTypeInDb: 'date',
77
+ displayValue: function (value) {
78
+ if (!value)
79
+ return '';
80
+ return value.toLocaleDateString(undefined);
81
+ }
82
+ };
83
+ ValueConverters.DateOnlyString = tslib_1.__assign(tslib_1.__assign({}, ValueConverters.DateOnly), { toDb: function (d) {
84
+ var val = ValueConverters.DateOnly.toJson(d);
85
+ if (!val)
86
+ return undefined;
87
+ return val.replace(/-/g, '');
88
+ }, fromDb: function (val) {
89
+ if (val === null)
90
+ return null;
91
+ if (!val)
92
+ return undefined;
93
+ return new Date(val.substring(0, 4) + '-' + val.substring(4, 6) + '-' + val.substring(6, 8));
94
+ } });
95
+ ValueConverters.Boolean = {
96
+ toDb: function (val) { return val; },
97
+ inputType: inputTypes_1.InputTypes.checkbox,
98
+ fromDb: function (value) {
99
+ return ValueConverters.Boolean.fromJson(value);
100
+ },
101
+ fromJson: function (value) {
102
+ if (typeof value === "boolean")
103
+ return value;
104
+ if (value !== undefined && value !== null) {
105
+ return value.toString().trim().toLowerCase() == 'true';
106
+ }
107
+ return value;
108
+ },
109
+ toJson: function (x) { return x; },
110
+ fromInput: function (x) { return ValueConverters.Boolean.fromJson(x); },
111
+ toInput: function (x) { return ValueConverters.Boolean.toJson(x); }
112
+ };
113
+ ValueConverters.Number = {
114
+ fromDb: function (value) {
115
+ if (value === null)
116
+ return null;
117
+ if (value !== undefined)
118
+ return +value;
119
+ return undefined;
120
+ },
121
+ toDb: function (value) { return value; },
122
+ fromJson: function (value) { return ValueConverters.Number.fromDb(value); },
123
+ toJson: function (value) { return ValueConverters.Number.toDb(value); },
124
+ fromInput: function (x, type) {
125
+ var r = +x;
126
+ if (!x)
127
+ return undefined;
128
+ return r;
129
+ },
130
+ toInput: function (x, type) {
131
+ return x === null || x === void 0 ? void 0 : x.toString();
132
+ },
133
+ inputType: inputTypes_1.InputTypes.number
134
+ };
135
+ ValueConverters.Integer = tslib_1.__assign(tslib_1.__assign({}, ValueConverters.Number), { toJson: function (value) {
136
+ var val = ValueConverters.Number.toDb(value);
137
+ if (!val)
138
+ return val;
139
+ return +(+val).toFixed(0);
140
+ }, toDb: function (value) { return ValueConverters.Integer.toJson(value); }, fieldTypeInDb: 'integer' });
141
+ ValueConverters.Default = {
142
+ fromJson: function (x) { return x; },
143
+ toJson: function (x) { return x; },
144
+ fromDb: function (x) { return ValueConverters.JsonString.fromDb(x); },
145
+ toDb: function (x) { return ValueConverters.JsonString.toDb(x); },
146
+ fromInput: function (x) { return ValueConverters.Default.fromJson(x); },
147
+ toInput: function (x) { return ValueConverters.Default.toJson(x); }
148
+ };
149
+ ValueConverters.JsonString = {
150
+ fromJson: function (x) { return x; },
151
+ toJson: function (x) { return x; },
152
+ fromDb: function (x) { return x == null ? null : x ? JSON.parse(ValueConverters.JsonString.fromJson(x)) : undefined; },
153
+ toDb: function (x) { return x !== undefined ? x === null ? null : JSON.stringify(ValueConverters.JsonString.toJson(x)) : undefined; },
154
+ fromInput: function (x) { return ValueConverters.JsonString.fromJson(x); },
155
+ toInput: function (x) { return ValueConverters.JsonString.toJson(x); }
156
+ };
157
+ ValueConverters.JsonValue = {
158
+ fromJson: function (x) { return x; },
159
+ toJson: function (x) { return x; },
160
+ fromDb: function (x) { return x; },
161
+ toDb: function (x) { return x; },
162
+ fromInput: function (x) { return ValueConverters.JsonString.fromJson(x); },
163
+ toInput: function (x) { return ValueConverters.JsonString.toJson(x); },
164
+ fieldTypeInDb: 'json'
165
+ };
166
+ return ValueConverters;
167
+ }());
168
+ exports.ValueConverters = ValueConverters;
@@ -1 +0,0 @@
1
- export * from './src/public_api';
@@ -1 +0,0 @@
1
- export * from './src/public_api';
@@ -1,70 +0,0 @@
1
- import { FieldMetadata, FieldRef, EntityMetadata, ValueListItem, Remult, Repository, EntityOrderBy, EntityFilter } from "remult";
2
- import { DataControlInfo, DataControlSettings, ValueOrEntityExpression } from "./data-control-interfaces";
3
- import { FilterHelper } from "./filter-helper";
4
- export declare class FieldCollection<rowType = any> {
5
- currentRow: () => any;
6
- private allowUpdate;
7
- filterHelper: FilterHelper<rowType>;
8
- private showArea;
9
- private _getRowColumn;
10
- constructor(currentRow: () => any, allowUpdate: () => boolean, filterHelper: FilterHelper<rowType>, showArea: () => boolean, _getRowColumn: (row: rowType, col: FieldMetadata) => FieldRef<any, any>);
11
- __showArea(): boolean;
12
- __getColumn(map: DataControlSettings, record: any): any;
13
- __visible(col: DataControlSettings, row: any): boolean;
14
- allowClick(col: DataControlSettings<any, any>, row: any): boolean;
15
- getRowColumn<T>(args: {
16
- col: DataControlSettings<any>;
17
- row: any;
18
- }, what: (c: FieldRef<any, any>, row: any) => T): T;
19
- __dataControlStyle(map: DataControlSettings): string;
20
- private settingsByKey;
21
- allowDesignMode: boolean;
22
- add(...columns: DataControlInfo<rowType>[]): Promise<void>;
23
- add(...columns: string[]): Promise<void>;
24
- private doWhenWeHaveContext;
25
- private remult;
26
- setContext(remult: Remult): void;
27
- buildDropDown(s: DataControlSettings): Promise<void>;
28
- designMode: boolean;
29
- colListChanged(): void;
30
- _colListChangeListeners: (() => void)[];
31
- onColListChange(action: (() => void)): void;
32
- moveCol(col: DataControlSettings, move: number): void;
33
- filterRows(col: DataControlSettings): void;
34
- clearFilter(col: DataControlSettings): void;
35
- _shouldShowFilterDialog(col: DataControlSettings): boolean;
36
- deleteCol(col: DataControlSettings): void;
37
- addCol(col: DataControlSettings, newCol: DataControlSettings): void;
38
- _getEditable(col: DataControlSettings, row: rowType): boolean;
39
- _click(col: DataControlSettings, row: any): void;
40
- _getColDisplayValue(col: DataControlSettings, row: rowType): any;
41
- _getColDataType(col: DataControlSettings): string;
42
- _getColumnClass(col: DataControlSettings, row: any): any;
43
- _getError(col: DataControlSettings, r: any): any;
44
- autoGenerateColumnsBasedOnData(defs: EntityMetadata<any>): void;
45
- __changeWidth(col: DataControlSettings, what: number): void;
46
- _colValueChanged(col: DataControlSettings, row: any): false | undefined;
47
- items: DataControlSettings[];
48
- private gridColumns;
49
- private nonGridColumns;
50
- numOfColumnsInGrid: number;
51
- private _lastColumnCount;
52
- private _lastNumOfColumnsInGrid;
53
- private augmented;
54
- augment(augmenter: dataControlAugmenter, s: DataControlSettings): void;
55
- private _initColumnsArrays;
56
- getGridColumns(augmenter: dataControlAugmenter): DataControlSettings<any, any>[];
57
- getNonGridColumns(augmenter: dataControlAugmenter): DataControlSettings<any, any>[];
58
- }
59
- export declare function valueOrEntityExpressionToValue<T, entityType>(f: ValueOrEntityExpression<T, entityType>, e: entityType): T;
60
- /** returns an array of values that can be used in the value list property of a data control object */
61
- export declare function getEntityValueList<T>(repository: Repository<T>, args?: {
62
- idField?: (e: EntityMetadata<T>) => FieldMetadata;
63
- captionField?: (e: EntityMetadata<T>) => FieldMetadata;
64
- orderBy?: EntityOrderBy<T>;
65
- where?: EntityFilter<T>;
66
- }): Promise<ExtendedValueListItem[]>;
67
- export interface ExtendedValueListItem extends ValueListItem {
68
- entity?: any;
69
- }
70
- export declare type dataControlAugmenter = (f: FieldMetadata, op: DataControlSettings) => void;