@blueprint-ts/core 4.1.0-beta.1 → 4.1.0-beta.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 (507) hide show
  1. package/dist/bulkRequests/BulkRequestEvent.enum.d.ts +4 -0
  2. package/dist/bulkRequests/BulkRequestEvent.enum.js +5 -0
  3. package/dist/bulkRequests/BulkRequestSender.d.ts +31 -0
  4. package/dist/bulkRequests/BulkRequestSender.js +161 -0
  5. package/dist/bulkRequests/BulkRequestWrapper.d.ts +15 -0
  6. package/dist/bulkRequests/BulkRequestWrapper.js +50 -0
  7. package/dist/bulkRequests/index.d.ts +5 -0
  8. package/dist/bulkRequests/index.js +5 -0
  9. package/{src/laravel/pagination/contracts/PaginationResponseBodyContract.ts → dist/laravel/pagination/contracts/PaginationResponseBodyContract.d.ts} +4 -4
  10. package/dist/laravel/pagination/contracts/PaginationResponseBodyContract.js +1 -0
  11. package/dist/laravel/pagination/dataDrivers/RequestDriver.d.ts +10 -0
  12. package/dist/laravel/pagination/dataDrivers/RequestDriver.js +18 -0
  13. package/dist/laravel/pagination/index.d.ts +4 -0
  14. package/dist/laravel/pagination/index.js +2 -0
  15. package/dist/laravel/requests/JsonBaseRequest.d.ts +14 -0
  16. package/dist/laravel/requests/JsonBaseRequest.js +15 -0
  17. package/dist/laravel/requests/PaginationJsonBaseRequest.d.ts +8 -0
  18. package/dist/laravel/requests/PaginationJsonBaseRequest.js +13 -0
  19. package/dist/laravel/requests/index.d.ts +7 -0
  20. package/dist/laravel/requests/index.js +5 -0
  21. package/dist/laravel/requests/responses/JsonResponse.d.ts +5 -0
  22. package/dist/laravel/requests/responses/JsonResponse.js +6 -0
  23. package/dist/laravel/requests/responses/PaginationResponse.d.ts +7 -0
  24. package/dist/laravel/requests/responses/PaginationResponse.js +9 -0
  25. package/dist/pagination/BasePaginator.d.ts +19 -0
  26. package/dist/pagination/BasePaginator.js +65 -0
  27. package/dist/pagination/InfiniteScroller.d.ts +6 -0
  28. package/dist/pagination/InfiniteScroller.js +17 -0
  29. package/dist/pagination/PageAwarePaginator.d.ts +32 -0
  30. package/dist/pagination/PageAwarePaginator.js +86 -0
  31. package/dist/pagination/StatePaginator.d.ts +25 -0
  32. package/dist/pagination/StatePaginator.js +55 -0
  33. package/dist/pagination/contracts/BaseViewDriverContract.d.ts +6 -0
  34. package/dist/pagination/contracts/BaseViewDriverContract.js +1 -0
  35. package/{src/pagination/contracts/BaseViewDriverFactoryContract.ts → dist/pagination/contracts/BaseViewDriverFactoryContract.d.ts} +2 -3
  36. package/dist/pagination/contracts/BaseViewDriverFactoryContract.js +1 -0
  37. package/dist/pagination/contracts/PaginateableRequestContract.d.ts +4 -0
  38. package/dist/pagination/contracts/PaginateableRequestContract.js +1 -0
  39. package/dist/pagination/contracts/PaginationDataDriverContract.d.ts +4 -0
  40. package/dist/pagination/contracts/PaginationDataDriverContract.js +1 -0
  41. package/{src/pagination/contracts/PaginationResponseContract.ts → dist/pagination/contracts/PaginationResponseContract.d.ts} +3 -5
  42. package/dist/pagination/contracts/PaginationResponseContract.js +1 -0
  43. package/{src/pagination/contracts/PaginatorLoadDataOptions.ts → dist/pagination/contracts/PaginatorLoadDataOptions.d.ts} +2 -2
  44. package/dist/pagination/contracts/PaginatorLoadDataOptions.js +1 -0
  45. package/{src/pagination/contracts/StatePaginationDataDriverContract.ts → dist/pagination/contracts/StatePaginationDataDriverContract.d.ts} +2 -3
  46. package/dist/pagination/contracts/StatePaginationDataDriverContract.js +1 -0
  47. package/dist/pagination/contracts/ViewDriverContract.d.ts +9 -0
  48. package/dist/pagination/contracts/ViewDriverContract.js +1 -0
  49. package/dist/pagination/contracts/ViewDriverFactoryContract.d.ts +4 -0
  50. package/dist/pagination/contracts/ViewDriverFactoryContract.js +1 -0
  51. package/dist/pagination/dataDrivers/ArrayDriver.d.ts +9 -0
  52. package/dist/pagination/dataDrivers/ArrayDriver.js +20 -0
  53. package/dist/pagination/dtos/PaginationDataDto.d.ts +7 -0
  54. package/dist/pagination/dtos/PaginationDataDto.js +12 -0
  55. package/dist/pagination/dtos/StatePaginationDataDto.d.ts +7 -0
  56. package/dist/pagination/dtos/StatePaginationDataDto.js +13 -0
  57. package/dist/pagination/factories/VueBaseViewDriverFactory.d.ts +5 -0
  58. package/dist/pagination/factories/VueBaseViewDriverFactory.js +6 -0
  59. package/dist/pagination/factories/VuePaginationDriverFactory.d.ts +5 -0
  60. package/dist/pagination/factories/VuePaginationDriverFactory.js +6 -0
  61. package/dist/pagination/frontendDrivers/VueBaseViewDriver.d.ts +11 -0
  62. package/dist/pagination/frontendDrivers/VueBaseViewDriver.js +19 -0
  63. package/dist/pagination/frontendDrivers/VuePaginationDriver.d.ts +21 -0
  64. package/dist/pagination/frontendDrivers/VuePaginationDriver.js +41 -0
  65. package/dist/pagination/index.d.ts +22 -0
  66. package/dist/pagination/index.js +13 -0
  67. package/dist/persistenceDrivers/LocalStorageDriver.d.ts +9 -0
  68. package/dist/persistenceDrivers/LocalStorageDriver.js +18 -0
  69. package/dist/persistenceDrivers/NonPersistentDriver.d.ts +7 -0
  70. package/dist/persistenceDrivers/NonPersistentDriver.js +8 -0
  71. package/dist/persistenceDrivers/SessionStorageDriver.d.ts +9 -0
  72. package/dist/persistenceDrivers/SessionStorageDriver.js +18 -0
  73. package/dist/persistenceDrivers/index.d.ts +6 -0
  74. package/dist/persistenceDrivers/index.js +4 -0
  75. package/dist/persistenceDrivers/types/PersistenceDriver.d.ts +5 -0
  76. package/dist/persistenceDrivers/types/PersistenceDriver.js +1 -0
  77. package/dist/requests/BaseRequest.d.ts +62 -0
  78. package/dist/requests/BaseRequest.js +224 -0
  79. package/dist/requests/ErrorHandler.d.ts +11 -0
  80. package/dist/requests/ErrorHandler.js +127 -0
  81. package/dist/requests/RequestConcurrencyMode.enum.d.ts +6 -0
  82. package/dist/requests/RequestConcurrencyMode.enum.js +7 -0
  83. package/dist/requests/RequestErrorRouter.d.ts +38 -0
  84. package/dist/requests/RequestErrorRouter.js +38 -0
  85. package/dist/requests/RequestEvents.enum.d.ts +4 -0
  86. package/dist/requests/RequestEvents.enum.js +5 -0
  87. package/dist/requests/RequestMethod.enum.d.ts +8 -0
  88. package/dist/requests/RequestMethod.enum.js +9 -0
  89. package/dist/requests/bodies/BinaryBody.d.ts +10 -0
  90. package/dist/requests/bodies/BinaryBody.js +22 -0
  91. package/dist/requests/bodies/FormDataBody.d.ts +14 -0
  92. package/dist/requests/bodies/FormDataBody.js +60 -0
  93. package/dist/requests/bodies/JsonBody.d.ts +8 -0
  94. package/dist/requests/bodies/JsonBody.js +13 -0
  95. package/{src/requests/contracts/AbortableRequestContract.ts → dist/requests/contracts/AbortableRequestContract.d.ts} +1 -1
  96. package/dist/requests/contracts/AbortableRequestContract.js +1 -0
  97. package/dist/requests/contracts/BaseRequestContract.d.ts +23 -0
  98. package/dist/requests/contracts/BaseRequestContract.js +1 -0
  99. package/dist/requests/contracts/BodyContract.d.ts +6 -0
  100. package/dist/requests/contracts/BodyContract.js +1 -0
  101. package/dist/requests/contracts/BodyFactoryContract.d.ts +4 -0
  102. package/dist/requests/contracts/BodyFactoryContract.js +1 -0
  103. package/dist/requests/contracts/DriverConfigContract.d.ts +8 -0
  104. package/dist/requests/contracts/DriverConfigContract.js +1 -0
  105. package/dist/requests/contracts/HeadersContract.d.ts +7 -0
  106. package/dist/requests/contracts/HeadersContract.js +1 -0
  107. package/dist/requests/contracts/RequestDriverContract.d.ts +8 -0
  108. package/dist/requests/contracts/RequestDriverContract.js +1 -0
  109. package/dist/requests/contracts/RequestLoaderContract.d.ts +4 -0
  110. package/dist/requests/contracts/RequestLoaderContract.js +1 -0
  111. package/{src/requests/contracts/RequestLoaderFactoryContract.ts → dist/requests/contracts/RequestLoaderFactoryContract.d.ts} +2 -3
  112. package/dist/requests/contracts/RequestLoaderFactoryContract.js +1 -0
  113. package/dist/requests/contracts/ResponseContract.d.ts +5 -0
  114. package/dist/requests/contracts/ResponseContract.js +1 -0
  115. package/dist/requests/drivers/contracts/ResponseHandlerContract.d.ts +9 -0
  116. package/dist/requests/drivers/contracts/ResponseHandlerContract.js +1 -0
  117. package/dist/requests/drivers/fetch/FetchDriver.d.ts +26 -0
  118. package/dist/requests/drivers/fetch/FetchDriver.js +73 -0
  119. package/dist/requests/drivers/fetch/FetchResponse.d.ts +12 -0
  120. package/dist/requests/drivers/fetch/FetchResponse.js +38 -0
  121. package/dist/requests/drivers/xhr/XMLHttpRequestDriver.d.ts +13 -0
  122. package/dist/requests/drivers/xhr/XMLHttpRequestDriver.js +107 -0
  123. package/dist/requests/drivers/xhr/XMLHttpRequestResponse.d.ts +17 -0
  124. package/dist/requests/drivers/xhr/XMLHttpRequestResponse.js +84 -0
  125. package/dist/requests/exceptions/BadGatewayException.d.ts +3 -0
  126. package/dist/requests/exceptions/BadGatewayException.js +3 -0
  127. package/dist/requests/exceptions/BadRequestException.d.ts +3 -0
  128. package/dist/requests/exceptions/BadRequestException.js +3 -0
  129. package/dist/requests/exceptions/ConflictException.d.ts +3 -0
  130. package/dist/requests/exceptions/ConflictException.js +3 -0
  131. package/dist/requests/exceptions/ForbiddenException.d.ts +3 -0
  132. package/dist/requests/exceptions/ForbiddenException.js +3 -0
  133. package/dist/requests/exceptions/GatewayTimeoutException.d.ts +3 -0
  134. package/dist/requests/exceptions/GatewayTimeoutException.js +3 -0
  135. package/dist/requests/exceptions/GoneException.d.ts +3 -0
  136. package/dist/requests/exceptions/GoneException.js +3 -0
  137. package/dist/requests/exceptions/InvalidJsonException.d.ts +7 -0
  138. package/dist/requests/exceptions/InvalidJsonException.js +10 -0
  139. package/dist/requests/exceptions/LockedException.d.ts +3 -0
  140. package/dist/requests/exceptions/LockedException.js +3 -0
  141. package/dist/requests/exceptions/MethodNotAllowedException.d.ts +3 -0
  142. package/dist/requests/exceptions/MethodNotAllowedException.js +3 -0
  143. package/dist/requests/exceptions/NoResponseReceivedException.d.ts +3 -0
  144. package/{src/requests/exceptions/NoResponseReceivedException.ts → dist/requests/exceptions/NoResponseReceivedException.js} +3 -3
  145. package/dist/requests/exceptions/NotFoundException.d.ts +3 -0
  146. package/dist/requests/exceptions/NotFoundException.js +3 -0
  147. package/dist/requests/exceptions/NotImplementedException.d.ts +3 -0
  148. package/dist/requests/exceptions/NotImplementedException.js +3 -0
  149. package/dist/requests/exceptions/PageExpiredException.d.ts +3 -0
  150. package/dist/requests/exceptions/PageExpiredException.js +3 -0
  151. package/dist/requests/exceptions/PayloadTooLargeException.d.ts +3 -0
  152. package/dist/requests/exceptions/PayloadTooLargeException.js +3 -0
  153. package/dist/requests/exceptions/PreconditionFailedException.d.ts +3 -0
  154. package/dist/requests/exceptions/PreconditionFailedException.js +3 -0
  155. package/dist/requests/exceptions/RequestTimeoutException.d.ts +3 -0
  156. package/dist/requests/exceptions/RequestTimeoutException.js +3 -0
  157. package/dist/requests/exceptions/ResponseBodyException.d.ts +7 -0
  158. package/dist/requests/exceptions/ResponseBodyException.js +10 -0
  159. package/dist/requests/exceptions/ResponseException.d.ts +6 -0
  160. package/dist/requests/exceptions/ResponseException.js +9 -0
  161. package/dist/requests/exceptions/ServerErrorException.d.ts +3 -0
  162. package/dist/requests/exceptions/ServerErrorException.js +3 -0
  163. package/dist/requests/exceptions/ServiceUnavailableException.d.ts +3 -0
  164. package/dist/requests/exceptions/ServiceUnavailableException.js +3 -0
  165. package/dist/requests/exceptions/StaleResponseException.d.ts +5 -0
  166. package/dist/requests/exceptions/StaleResponseException.js +10 -0
  167. package/dist/requests/exceptions/TooManyRequestsException.d.ts +3 -0
  168. package/dist/requests/exceptions/TooManyRequestsException.js +3 -0
  169. package/dist/requests/exceptions/UnauthorizedException.d.ts +3 -0
  170. package/dist/requests/exceptions/UnauthorizedException.js +3 -0
  171. package/dist/requests/exceptions/UnsupportedMediaTypeException.d.ts +3 -0
  172. package/dist/requests/exceptions/UnsupportedMediaTypeException.js +3 -0
  173. package/dist/requests/exceptions/ValidationException.d.ts +3 -0
  174. package/dist/requests/exceptions/ValidationException.js +3 -0
  175. package/dist/requests/exceptions/index.d.ts +25 -0
  176. package/dist/requests/exceptions/index.js +25 -0
  177. package/dist/requests/factories/BinaryBodyFactory.d.ts +8 -0
  178. package/dist/requests/factories/BinaryBodyFactory.js +9 -0
  179. package/dist/requests/factories/FormDataFactory.d.ts +12 -0
  180. package/dist/requests/factories/FormDataFactory.js +6 -0
  181. package/dist/requests/factories/JsonBodyFactory.d.ts +5 -0
  182. package/dist/requests/factories/JsonBodyFactory.js +6 -0
  183. package/dist/requests/index.d.ts +31 -0
  184. package/dist/requests/index.js +19 -0
  185. package/dist/requests/responses/BaseResponse.d.ts +14 -0
  186. package/dist/requests/responses/BaseResponse.js +36 -0
  187. package/dist/requests/responses/BlobResponse.d.ts +7 -0
  188. package/dist/requests/responses/BlobResponse.js +16 -0
  189. package/dist/requests/responses/JsonResponse.d.ts +5 -0
  190. package/dist/requests/responses/JsonResponse.js +12 -0
  191. package/dist/requests/responses/PlainTextResponse.d.ts +5 -0
  192. package/dist/requests/responses/PlainTextResponse.js +12 -0
  193. package/{src/requests/types/RequestConcurrencyOptions.ts → dist/requests/types/RequestConcurrencyOptions.d.ts} +4 -5
  194. package/dist/requests/types/RequestConcurrencyOptions.js +1 -0
  195. package/dist/requests/types/RequestUploadProgress.d.ts +6 -0
  196. package/dist/requests/types/RequestUploadProgress.js +1 -0
  197. package/dist/support/DeferredPromise.d.ts +37 -0
  198. package/dist/support/DeferredPromise.js +55 -0
  199. package/dist/support/helpers.d.ts +5 -0
  200. package/dist/support/helpers.js +69 -0
  201. package/{src/support/index.ts → dist/support/index.d.ts} +3 -4
  202. package/dist/support/index.js +3 -0
  203. package/dist/vue/composables/useConfirmDialog.d.ts +20 -0
  204. package/dist/vue/composables/useConfirmDialog.js +52 -0
  205. package/dist/vue/composables/useGlobalCheckbox.d.ts +13 -0
  206. package/dist/vue/composables/useGlobalCheckbox.js +123 -0
  207. package/dist/vue/composables/useIsEmpty.d.ts +4 -0
  208. package/dist/vue/composables/useIsEmpty.js +27 -0
  209. package/dist/vue/composables/useIsOpen.d.ts +5 -0
  210. package/dist/vue/composables/useIsOpen.js +25 -0
  211. package/dist/vue/composables/useIsOpenFromVar.d.ts +6 -0
  212. package/dist/vue/composables/useIsOpenFromVar.js +45 -0
  213. package/dist/vue/composables/useModelWrapper.d.ts +9 -0
  214. package/dist/vue/composables/useModelWrapper.js +18 -0
  215. package/dist/vue/composables/useOnOpen.d.ts +7 -0
  216. package/dist/vue/composables/useOnOpen.js +25 -0
  217. package/{src/vue/contracts/ModelValueOptions.ts → dist/vue/contracts/ModelValueOptions.d.ts} +1 -1
  218. package/dist/vue/contracts/ModelValueOptions.js +1 -0
  219. package/dist/vue/contracts/ModelValueProps.d.ts +3 -0
  220. package/dist/vue/contracts/ModelValueProps.js +1 -0
  221. package/dist/vue/forms/BaseForm.d.ts +162 -0
  222. package/dist/vue/forms/BaseForm.js +997 -0
  223. package/dist/vue/forms/PropertyAwareArray.d.ts +53 -0
  224. package/dist/vue/forms/PropertyAwareArray.js +54 -0
  225. package/{src/vue/forms/index.ts → dist/vue/forms/index.d.ts} +9 -11
  226. package/dist/vue/forms/index.js +6 -0
  227. package/dist/vue/forms/types/PersistedForm.d.ts +6 -0
  228. package/dist/vue/forms/types/PersistedForm.js +1 -0
  229. package/dist/vue/forms/validation/ValidationMode.enum.d.ts +11 -0
  230. package/dist/vue/forms/validation/ValidationMode.enum.js +14 -0
  231. package/dist/vue/forms/validation/index.d.ts +12 -0
  232. package/dist/vue/forms/validation/index.js +9 -0
  233. package/dist/vue/forms/validation/rules/BaseRule.d.ts +5 -0
  234. package/dist/vue/forms/validation/rules/BaseRule.js +5 -0
  235. package/dist/vue/forms/validation/rules/ConfirmedRule.d.ts +10 -0
  236. package/dist/vue/forms/validation/rules/ConfirmedRule.js +26 -0
  237. package/dist/vue/forms/validation/rules/EmailRule.d.ts +7 -0
  238. package/dist/vue/forms/validation/rules/EmailRule.js +19 -0
  239. package/dist/vue/forms/validation/rules/JsonRule.d.ts +7 -0
  240. package/dist/vue/forms/validation/rules/JsonRule.js +25 -0
  241. package/dist/vue/forms/validation/rules/MinRule.d.ts +26 -0
  242. package/dist/vue/forms/validation/rules/MinRule.js +52 -0
  243. package/dist/vue/forms/validation/rules/RequiredRule.d.ts +7 -0
  244. package/dist/vue/forms/validation/rules/RequiredRule.js +16 -0
  245. package/dist/vue/forms/validation/rules/UrlRule.d.ts +7 -0
  246. package/dist/vue/forms/validation/rules/UrlRule.js +22 -0
  247. package/{src/vue/forms/validation/types/BidirectionalRule.ts → dist/vue/forms/validation/types/BidirectionalRule.d.ts} +4 -4
  248. package/dist/vue/forms/validation/types/BidirectionalRule.js +1 -0
  249. package/dist/vue/forms/validation/types/ValidationRules.d.ts +11 -0
  250. package/dist/vue/forms/validation/types/ValidationRules.js +1 -0
  251. package/dist/vue/index.d.ts +11 -0
  252. package/dist/vue/index.js +10 -0
  253. package/dist/vue/requests/factories/VueRequestLoaderFactory.d.ts +6 -0
  254. package/dist/vue/requests/factories/VueRequestLoaderFactory.js +6 -0
  255. package/{src/vue/requests/index.ts → dist/vue/requests/index.d.ts} +4 -5
  256. package/dist/vue/requests/index.js +4 -0
  257. package/dist/vue/requests/loaders/VueRequestBatchLoader.d.ts +12 -0
  258. package/dist/vue/requests/loaders/VueRequestBatchLoader.js +29 -0
  259. package/dist/vue/requests/loaders/VueRequestLoader.d.ts +8 -0
  260. package/dist/vue/requests/loaders/VueRequestLoader.js +12 -0
  261. package/dist/vue/router/routeResourceBinding/RouteResourceBoundView.d.ts +57 -0
  262. package/dist/vue/router/routeResourceBinding/RouteResourceBoundView.js +135 -0
  263. package/dist/vue/router/routeResourceBinding/RouteResourceRequestResolver.d.ts +6 -0
  264. package/dist/vue/router/routeResourceBinding/RouteResourceRequestResolver.js +20 -0
  265. package/dist/vue/router/routeResourceBinding/defineRoute.d.ts +23 -0
  266. package/dist/vue/router/routeResourceBinding/defineRoute.js +42 -0
  267. package/dist/vue/router/routeResourceBinding/index.d.ts +8 -0
  268. package/dist/vue/router/routeResourceBinding/index.js +6 -0
  269. package/dist/vue/router/routeResourceBinding/installRouteInjection.d.ts +14 -0
  270. package/dist/vue/router/routeResourceBinding/installRouteInjection.js +133 -0
  271. package/dist/vue/router/routeResourceBinding/types.d.ts +55 -0
  272. package/dist/vue/router/routeResourceBinding/types.js +1 -0
  273. package/dist/vue/router/routeResourceBinding/useRouteResource.d.ts +8 -0
  274. package/dist/vue/router/routeResourceBinding/useRouteResource.js +29 -0
  275. package/dist/vue/state/State.d.ts +75 -0
  276. package/dist/vue/state/State.js +267 -0
  277. package/dist/vue/state/index.d.ts +2 -0
  278. package/dist/vue/state/index.js +2 -0
  279. package/package.json +81 -23
  280. package/.editorconfig +0 -508
  281. package/.eslintrc.cjs +0 -15
  282. package/.prettierrc.json +0 -8
  283. package/CHANGELOG.md +0 -213
  284. package/docker-compose.yaml +0 -8
  285. package/docs/.vitepress/config.ts +0 -124
  286. package/docs/index.md +0 -13
  287. package/docs/laravel/pagination.md +0 -67
  288. package/docs/laravel/requests.md +0 -62
  289. package/docs/services/pagination/index.md +0 -46
  290. package/docs/services/pagination/infinite-scroller.md +0 -20
  291. package/docs/services/pagination/page-aware.md +0 -51
  292. package/docs/services/pagination/state-pagination.md +0 -77
  293. package/docs/services/pagination/updating-rows.md +0 -52
  294. package/docs/services/persistence/index.md +0 -46
  295. package/docs/services/requests/abort-requests.md +0 -29
  296. package/docs/services/requests/bulk-requests.md +0 -70
  297. package/docs/services/requests/concurrency.md +0 -58
  298. package/docs/services/requests/drivers.md +0 -115
  299. package/docs/services/requests/error-handling.md +0 -153
  300. package/docs/services/requests/events.md +0 -53
  301. package/docs/services/requests/file-uploads.md +0 -105
  302. package/docs/services/requests/getting-started.md +0 -201
  303. package/docs/services/requests/headers.md +0 -40
  304. package/docs/services/requests/loading.md +0 -63
  305. package/docs/services/requests/request-bodies.md +0 -61
  306. package/docs/services/requests/responses.md +0 -34
  307. package/docs/services/support/deferred-promise.md +0 -63
  308. package/docs/services/support/helpers.md +0 -77
  309. package/docs/services/support/index.md +0 -6
  310. package/docs/upgrading/v1-to-v2.md +0 -64
  311. package/docs/upgrading/v2-to-v3.md +0 -52
  312. package/docs/upgrading/v3-to-v4.md +0 -214
  313. package/docs/upgrading.md +0 -0
  314. package/docs/vue/composables/use-confirm-dialog.md +0 -96
  315. package/docs/vue/composables/use-global-checkbox.md +0 -73
  316. package/docs/vue/composables/use-is-empty.md +0 -26
  317. package/docs/vue/composables/use-is-open-from-var.md +0 -32
  318. package/docs/vue/composables/use-is-open.md +0 -28
  319. package/docs/vue/composables/use-model-wrapper.md +0 -29
  320. package/docs/vue/composables/use-on-open.md +0 -26
  321. package/docs/vue/forms/arrays.md +0 -102
  322. package/docs/vue/forms/errors.md +0 -52
  323. package/docs/vue/forms/index.md +0 -99
  324. package/docs/vue/forms/payloads.md +0 -99
  325. package/docs/vue/forms/persistence.md +0 -19
  326. package/docs/vue/forms/state-and-properties.md +0 -26
  327. package/docs/vue/forms/utilities.md +0 -27
  328. package/docs/vue/forms/validation.md +0 -189
  329. package/docs/vue/requests/loading.md +0 -51
  330. package/docs/vue/router/route-resource-binding.md +0 -240
  331. package/docs/vue/state.md +0 -309
  332. package/env.d.ts +0 -1
  333. package/eslint.config.js +0 -15
  334. package/release-tool.json +0 -26
  335. package/src/bulkRequests/BulkRequestEvent.enum.ts +0 -4
  336. package/src/bulkRequests/BulkRequestSender.ts +0 -196
  337. package/src/bulkRequests/BulkRequestWrapper.ts +0 -49
  338. package/src/bulkRequests/index.ts +0 -6
  339. package/src/laravel/pagination/dataDrivers/RequestDriver.ts +0 -30
  340. package/src/laravel/pagination/index.ts +0 -6
  341. package/src/laravel/requests/JsonBaseRequest.ts +0 -35
  342. package/src/laravel/requests/PaginationJsonBaseRequest.ts +0 -29
  343. package/src/laravel/requests/index.ts +0 -9
  344. package/src/laravel/requests/responses/JsonResponse.ts +0 -8
  345. package/src/laravel/requests/responses/PaginationResponse.ts +0 -16
  346. package/src/pagination/BasePaginator.ts +0 -94
  347. package/src/pagination/InfiniteScroller.ts +0 -22
  348. package/src/pagination/PageAwarePaginator.ts +0 -132
  349. package/src/pagination/StatePaginator.ts +0 -86
  350. package/src/pagination/contracts/BaseViewDriverContract.ts +0 -6
  351. package/src/pagination/contracts/PaginateableRequestContract.ts +0 -13
  352. package/src/pagination/contracts/PaginationDataDriverContract.ts +0 -5
  353. package/src/pagination/contracts/ViewDriverContract.ts +0 -10
  354. package/src/pagination/contracts/ViewDriverFactoryContract.ts +0 -5
  355. package/src/pagination/dataDrivers/ArrayDriver.ts +0 -28
  356. package/src/pagination/dtos/PaginationDataDto.ts +0 -14
  357. package/src/pagination/dtos/StatePaginationDataDto.ts +0 -19
  358. package/src/pagination/factories/VueBaseViewDriverFactory.ts +0 -9
  359. package/src/pagination/factories/VuePaginationDriverFactory.ts +0 -9
  360. package/src/pagination/frontendDrivers/VueBaseViewDriver.ts +0 -28
  361. package/src/pagination/frontendDrivers/VuePaginationDriver.ts +0 -61
  362. package/src/pagination/index.ts +0 -46
  363. package/src/persistenceDrivers/LocalStorageDriver.ts +0 -22
  364. package/src/persistenceDrivers/NonPersistentDriver.ts +0 -12
  365. package/src/persistenceDrivers/SessionStorageDriver.ts +0 -22
  366. package/src/persistenceDrivers/index.ts +0 -8
  367. package/src/persistenceDrivers/types/PersistenceDriver.ts +0 -5
  368. package/src/requests/BaseRequest.ts +0 -321
  369. package/src/requests/ErrorHandler.ts +0 -144
  370. package/src/requests/RequestConcurrencyMode.enum.ts +0 -6
  371. package/src/requests/RequestErrorRouter.ts +0 -89
  372. package/src/requests/RequestEvents.enum.ts +0 -4
  373. package/src/requests/RequestMethod.enum.ts +0 -8
  374. package/src/requests/bodies/FormDataBody.ts +0 -81
  375. package/src/requests/bodies/JsonBody.ts +0 -16
  376. package/src/requests/contracts/BaseRequestContract.ts +0 -39
  377. package/src/requests/contracts/BodyContract.ts +0 -7
  378. package/src/requests/contracts/BodyFactoryContract.ts +0 -5
  379. package/src/requests/contracts/DriverConfigContract.ts +0 -9
  380. package/src/requests/contracts/HeadersContract.ts +0 -5
  381. package/src/requests/contracts/RequestDriverContract.ts +0 -15
  382. package/src/requests/contracts/RequestLoaderContract.ts +0 -5
  383. package/src/requests/contracts/ResponseContract.ts +0 -7
  384. package/src/requests/drivers/contracts/ResponseHandlerContract.ts +0 -10
  385. package/src/requests/drivers/fetch/FetchDriver.ts +0 -115
  386. package/src/requests/drivers/fetch/FetchResponse.ts +0 -30
  387. package/src/requests/drivers/xhr/XMLHttpRequestDriver.ts +0 -138
  388. package/src/requests/drivers/xhr/XMLHttpRequestResponse.ts +0 -95
  389. package/src/requests/exceptions/BadGatewayException.ts +0 -3
  390. package/src/requests/exceptions/BadRequestException.ts +0 -3
  391. package/src/requests/exceptions/ConflictException.ts +0 -3
  392. package/src/requests/exceptions/ForbiddenException.ts +0 -3
  393. package/src/requests/exceptions/GatewayTimeoutException.ts +0 -3
  394. package/src/requests/exceptions/GoneException.ts +0 -3
  395. package/src/requests/exceptions/InvalidJsonException.ts +0 -15
  396. package/src/requests/exceptions/LockedException.ts +0 -3
  397. package/src/requests/exceptions/MethodNotAllowedException.ts +0 -3
  398. package/src/requests/exceptions/NotFoundException.ts +0 -3
  399. package/src/requests/exceptions/NotImplementedException.ts +0 -3
  400. package/src/requests/exceptions/PageExpiredException.ts +0 -3
  401. package/src/requests/exceptions/PayloadTooLargeException.ts +0 -3
  402. package/src/requests/exceptions/PreconditionFailedException.ts +0 -3
  403. package/src/requests/exceptions/RequestTimeoutException.ts +0 -3
  404. package/src/requests/exceptions/ResponseBodyException.ts +0 -15
  405. package/src/requests/exceptions/ResponseException.ts +0 -11
  406. package/src/requests/exceptions/ServerErrorException.ts +0 -3
  407. package/src/requests/exceptions/ServiceUnavailableException.ts +0 -3
  408. package/src/requests/exceptions/StaleResponseException.ts +0 -13
  409. package/src/requests/exceptions/TooManyRequestsException.ts +0 -3
  410. package/src/requests/exceptions/UnauthorizedException.ts +0 -3
  411. package/src/requests/exceptions/UnsupportedMediaTypeException.ts +0 -3
  412. package/src/requests/exceptions/ValidationException.ts +0 -3
  413. package/src/requests/exceptions/index.ts +0 -51
  414. package/src/requests/factories/FormDataFactory.ts +0 -17
  415. package/src/requests/factories/JsonBodyFactory.ts +0 -9
  416. package/src/requests/index.ts +0 -61
  417. package/src/requests/responses/BaseResponse.ts +0 -41
  418. package/src/requests/responses/BlobResponse.ts +0 -19
  419. package/src/requests/responses/JsonResponse.ts +0 -15
  420. package/src/requests/responses/PlainTextResponse.ts +0 -15
  421. package/src/requests/types/RequestUploadProgress.ts +0 -6
  422. package/src/support/DeferredPromise.ts +0 -67
  423. package/src/support/helpers.ts +0 -78
  424. package/src/vue/composables/useConfirmDialog.ts +0 -63
  425. package/src/vue/composables/useGlobalCheckbox.ts +0 -145
  426. package/src/vue/composables/useIsEmpty.ts +0 -34
  427. package/src/vue/composables/useIsOpen.ts +0 -37
  428. package/src/vue/composables/useIsOpenFromVar.ts +0 -61
  429. package/src/vue/composables/useModelWrapper.ts +0 -27
  430. package/src/vue/composables/useOnOpen.ts +0 -34
  431. package/src/vue/contracts/ModelValueProps.ts +0 -3
  432. package/src/vue/forms/BaseForm.ts +0 -1192
  433. package/src/vue/forms/PropertyAwareArray.ts +0 -81
  434. package/src/vue/forms/types/PersistedForm.ts +0 -6
  435. package/src/vue/forms/validation/ValidationMode.enum.ts +0 -14
  436. package/src/vue/forms/validation/index.ts +0 -15
  437. package/src/vue/forms/validation/rules/BaseRule.ts +0 -7
  438. package/src/vue/forms/validation/rules/ConfirmedRule.ts +0 -39
  439. package/src/vue/forms/validation/rules/EmailRule.ts +0 -23
  440. package/src/vue/forms/validation/rules/JsonRule.ts +0 -28
  441. package/src/vue/forms/validation/rules/MinRule.ts +0 -61
  442. package/src/vue/forms/validation/rules/RequiredRule.ts +0 -19
  443. package/src/vue/forms/validation/rules/UrlRule.ts +0 -24
  444. package/src/vue/forms/validation/types/ValidationRules.ts +0 -15
  445. package/src/vue/index.ts +0 -14
  446. package/src/vue/requests/factories/VueRequestLoaderFactory.ts +0 -10
  447. package/src/vue/requests/loaders/VueRequestBatchLoader.ts +0 -35
  448. package/src/vue/requests/loaders/VueRequestLoader.ts +0 -18
  449. package/src/vue/router/routeResourceBinding/RouteResourceBoundView.ts +0 -145
  450. package/src/vue/router/routeResourceBinding/RouteResourceRequestResolver.ts +0 -11
  451. package/src/vue/router/routeResourceBinding/defineRoute.ts +0 -59
  452. package/src/vue/router/routeResourceBinding/index.ts +0 -11
  453. package/src/vue/router/routeResourceBinding/installRouteInjection.ts +0 -164
  454. package/src/vue/router/routeResourceBinding/types.ts +0 -53
  455. package/src/vue/router/routeResourceBinding/useRouteResource.ts +0 -24
  456. package/src/vue/state/State.ts +0 -380
  457. package/src/vue/state/index.ts +0 -3
  458. package/tests/service/bulkRequests/BulkRequestSender.test.ts +0 -76
  459. package/tests/service/bulkRequests/BulkRequestWrapper.test.ts +0 -51
  460. package/tests/service/helpers/mergeDeep.test.ts +0 -53
  461. package/tests/service/laravel/pagination/dataDrivers/RequestDriver.test.ts +0 -84
  462. package/tests/service/laravel/requests/JsonBaseRequest.test.ts +0 -43
  463. package/tests/service/laravel/requests/PaginationJsonBaseRequest.test.ts +0 -58
  464. package/tests/service/laravel/requests/responses/JsonResponse.test.ts +0 -59
  465. package/tests/service/laravel/requests/responses/PaginationResponse.test.ts +0 -127
  466. package/tests/service/pagination/BasePaginator.test.ts +0 -100
  467. package/tests/service/pagination/InfiniteScroller.test.ts +0 -101
  468. package/tests/service/pagination/PageAwarePaginator.test.ts +0 -133
  469. package/tests/service/pagination/StatePaginator.test.ts +0 -76
  470. package/tests/service/pagination/VueViewDrivers.test.ts +0 -46
  471. package/tests/service/pagination/dtos/PaginationDataDto.test.ts +0 -35
  472. package/tests/service/pagination/dtos/StatePaginationDataDto.test.ts +0 -14
  473. package/tests/service/pagination/factories/VuePaginationDriverFactory.test.ts +0 -32
  474. package/tests/service/pagination/frontendDrivers/VuePaginationDriver.test.ts +0 -66
  475. package/tests/service/persistenceDrivers/PersistenceDrivers.test.ts +0 -56
  476. package/tests/service/requests/BaseRequest.test.ts +0 -250
  477. package/tests/service/requests/BodiesAndFactories.test.ts +0 -28
  478. package/tests/service/requests/Enums.test.ts +0 -20
  479. package/tests/service/requests/ErrorHandler.test.ts +0 -188
  480. package/tests/service/requests/FormDataBody.test.ts +0 -63
  481. package/tests/service/requests/RequestErrorRouter.test.ts +0 -44
  482. package/tests/service/requests/Responses.test.ts +0 -83
  483. package/tests/service/requests/exceptions/Exceptions.test.ts +0 -43
  484. package/tests/service/requests/fetch/FetchDriver.test.ts +0 -76
  485. package/tests/service/requests/fetch/FetchResponse.test.ts +0 -21
  486. package/tests/service/requests/xhr/XMLHttpRequestDriver.test.ts +0 -178
  487. package/tests/service/support/DeferredPromise.test.ts +0 -40
  488. package/tests/service/support/helpers.test.ts +0 -37
  489. package/tests/vue/composables/useConfirmDialog.test.ts +0 -77
  490. package/tests/vue/composables/useGlobalCheckbox.test.ts +0 -126
  491. package/tests/vue/composables/useIsEmpty.test.ts +0 -18
  492. package/tests/vue/composables/useIsOpen.test.ts +0 -25
  493. package/tests/vue/composables/useIsOpenFromVar.test.ts +0 -22
  494. package/tests/vue/composables/useModelWrapper.test.ts +0 -30
  495. package/tests/vue/composables/useOnOpen.test.ts +0 -26
  496. package/tests/vue/forms/BaseForm.behavior.test.ts +0 -98
  497. package/tests/vue/forms/BaseForm.transformers.test.ts +0 -109
  498. package/tests/vue/forms/PropertyAwareArray.test.ts +0 -30
  499. package/tests/vue/forms/validation/ValidationRules.test.ts +0 -79
  500. package/tests/vue/requests/VueRequestLoaders.test.ts +0 -48
  501. package/tests/vue/router/routeResourceBinding/RouteResourceBoundView.test.ts +0 -344
  502. package/tests/vue/router/routeResourceBinding/RouteResourceUtils.test.ts +0 -70
  503. package/tests/vue/router/routeResourceBinding/installRouteInjection.test.ts +0 -450
  504. package/tests/vue/state/State.test.ts +0 -151
  505. package/tsconfig.json +0 -114
  506. package/vite.config.ts +0 -34
  507. package/vitest.config.ts +0 -23
@@ -1,81 +0,0 @@
1
- import { type WritableComputedRef } from 'vue'
2
-
3
- /**
4
- * Repräsentiert eine reaktive Property mit model.value Zugriff
5
- */
6
- export interface PropertyAwareField<T> {
7
- model: WritableComputedRef<T>
8
- errors: string[]
9
- dirty: boolean
10
- }
11
-
12
- /**
13
- * Wandelt ein reguläres Interface in ein property-aware Interface um
14
- * Jedes Feld vom Typ T wird zu einem PropertyAwareField<T>
15
- */
16
- export type PropertyAware<T> = {
17
- [K in keyof T]: PropertyAwareField<T[K]>
18
- }
19
- /**
20
- * Extends Array with property awareness.
21
- * When a form field is defined as an instance of PropertyAwareArray,
22
- * the BaseForm will transform each element into reactive properties with
23
- * computed getters/setters, error tracking, and dirty flags.
24
- */
25
- export class PropertyAwareArray<T = unknown> extends Array<T> {
26
- // Private brand to prevent plain arrays from being assignable to PropertyAwareArray.
27
- // This keeps conditional types from treating normal arrays as property-aware.
28
- private readonly __propertyAwareArrayBrand!: void
29
- /**
30
- * Creates a new PropertyAwareArray instance
31
- */
32
- public constructor(items: T[] = []) {
33
- // Call Array constructor with array length
34
- super()
35
- void this.__propertyAwareArrayBrand
36
-
37
- // Add items to the array
38
- if (items && items.length) {
39
- items.forEach((item) => this.push(item))
40
- }
41
- }
42
-
43
- /**
44
- * Create a PropertyAwareArray from an existing array
45
- */
46
- public static override from<T>(arrayLike: ArrayLike<T>): PropertyAwareArray<T> {
47
- return new PropertyAwareArray(Array.from(arrayLike))
48
- }
49
-
50
- /**
51
- * Maps each element using the provided function
52
- * Overridden to ensure the return type is PropertyAwareArray<U> rather than Array<U>
53
- */
54
- public override map<U>(callbackfn: (value: T, index: number, array: T[]) => U): PropertyAwareArray<U> {
55
- return new PropertyAwareArray(super.map(callbackfn))
56
- }
57
-
58
- /**
59
- * Filters elements using the provided function
60
- * Overridden to ensure the return type is PropertyAwareArray<T> rather than Array<T>
61
- */
62
- public override filter(predicate: (value: T, index: number, array: T[]) => boolean): PropertyAwareArray<T> {
63
- return new PropertyAwareArray(super.filter(predicate))
64
- }
65
-
66
- /**
67
- * Returns a shallow copy of the array
68
- * Overridden to ensure the return type is PropertyAwareArray<T> rather than Array<T>
69
- */
70
- public override slice(start?: number, end?: number): PropertyAwareArray<T> {
71
- return new PropertyAwareArray(super.slice(start, end))
72
- }
73
-
74
- /**
75
- * Combines two or more arrays
76
- * Overridden to ensure the return type is PropertyAwareArray<T> rather than Array<T>
77
- */
78
- public override concat(...items: (T | ConcatArray<T>)[]): PropertyAwareArray<T> {
79
- return new PropertyAwareArray(super.concat(...items))
80
- }
81
- }
@@ -1,6 +0,0 @@
1
- export interface PersistedForm<FormBody> {
2
- state: FormBody
3
- original: FormBody
4
- dirty: Record<keyof FormBody, boolean>
5
- touched: Record<keyof FormBody, boolean>
6
- }
@@ -1,14 +0,0 @@
1
- export enum ValidationMode {
2
- // Individual flags
3
- NEVER = 0,
4
- INSTANTLY = 1, // Validate as soon as form is initialized
5
- ON_TOUCH = 2, // Validate when field is touched (focused/blurred)
6
- ON_DIRTY = 4, // Validate when field value changes
7
- ON_SUBMIT = 8, // Validate on form submit
8
- ON_DEPENDENT_CHANGE = 16, // Validate when a field it depends on changes
9
-
10
- // Common combinations
11
- DEFAULT = ON_TOUCH | ON_DIRTY | ON_SUBMIT, // Validate when dirty or on submit
12
- AGGRESSIVE = INSTANTLY | ON_TOUCH | ON_DIRTY | ON_SUBMIT, // Validate in all situations
13
- PASSIVE = ON_SUBMIT // Only validate on submit
14
- }
@@ -1,15 +0,0 @@
1
- import { BaseRule } from './rules/BaseRule'
2
- import { ConfirmedRule } from './rules/ConfirmedRule'
3
- import { EmailRule } from './rules/EmailRule'
4
- import { JsonRule } from './rules/JsonRule'
5
- import { RequiredRule } from './rules/RequiredRule'
6
- import { UrlRule } from './rules/UrlRule'
7
- import { MinRule } from './rules/MinRule'
8
- import { ValidationMode } from './ValidationMode.enum'
9
-
10
- import { type BidirectionalRule } from './types/BidirectionalRule'
11
- import { type ValidationRules } from './types/ValidationRules'
12
-
13
- export { BaseRule, ConfirmedRule, EmailRule, JsonRule, RequiredRule, UrlRule, MinRule, ValidationMode }
14
-
15
- export type { BidirectionalRule, ValidationRules }
@@ -1,7 +0,0 @@
1
- export abstract class BaseRule<FormBody extends object> {
2
- public dependsOn: Array<keyof FormBody> = []
3
-
4
- public abstract validate(value: unknown, state: FormBody): boolean
5
-
6
- public abstract getMessage(): string
7
- }
@@ -1,39 +0,0 @@
1
- import { BaseRule } from './BaseRule'
2
- import { type BidirectionalRule } from '../types/BidirectionalRule'
3
-
4
- export class ConfirmedRule<FormBody extends object> extends BaseRule<FormBody> implements BidirectionalRule<FormBody> {
5
- protected message: string
6
-
7
- public constructor(
8
- protected confirmationField: keyof FormBody,
9
- message?: string
10
- ) {
11
- super()
12
-
13
- this.message = message || `Must match ${String(confirmationField)}`
14
-
15
- // Add the confirmation field as a dependency
16
- this.dependsOn = [confirmationField]
17
- }
18
-
19
- public validate(value: unknown, formState: FormBody): boolean {
20
- // Only validate if both fields have values
21
- const confirmationValue = formState[this.confirmationField]
22
-
23
- // If either field is empty, don't show an error yet
24
- if (!value || !confirmationValue) {
25
- return true
26
- }
27
-
28
- return value === confirmationValue
29
- }
30
-
31
- public getMessage(): string {
32
- return this.message
33
- }
34
-
35
- // Implement BidirectionalRule interface
36
- public getBidirectionalFields(): Array<keyof FormBody> {
37
- return [this.confirmationField]
38
- }
39
- }
@@ -1,23 +0,0 @@
1
- import { BaseRule } from './BaseRule'
2
-
3
- export class EmailRule<FormBody extends object> extends BaseRule<FormBody> {
4
- public constructor(protected message: string = 'Please enter a valid email address') {
5
- super()
6
- }
7
-
8
- public validate(value: unknown): boolean {
9
- if (value === null || value === undefined || value === '') {
10
- return true
11
- }
12
-
13
- if (typeof value !== 'string') {
14
- return false
15
- }
16
-
17
- return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)
18
- }
19
-
20
- public getMessage(): string {
21
- return this.message
22
- }
23
- }
@@ -1,28 +0,0 @@
1
- import { BaseRule } from './BaseRule'
2
-
3
- export class JsonRule<FormBody extends object> extends BaseRule<FormBody> {
4
- public constructor(protected message: string = 'Please enter valid JSON') {
5
- super()
6
- }
7
-
8
- public validate(value: unknown): boolean {
9
- if (value === null || value === undefined || value === '') {
10
- return true
11
- }
12
-
13
- if (typeof value !== 'string') {
14
- return false
15
- }
16
-
17
- try {
18
- JSON.parse(value)
19
- return true
20
- } catch {
21
- return false
22
- }
23
- }
24
-
25
- public getMessage(): string {
26
- return this.message
27
- }
28
- }
@@ -1,61 +0,0 @@
1
- import { BaseRule } from './BaseRule'
2
-
3
- export class MinRule<FormBody extends object> extends BaseRule<FormBody> {
4
- /**
5
- * Creates a new MinRule
6
- * @param min The minimum value (length for strings, value for numbers, length for arrays)
7
- * @param message The error message to display if validation fails
8
- */
9
- public constructor(
10
- protected min: number,
11
- protected message?: string
12
- ) {
13
- super()
14
- }
15
-
16
- /**
17
- * Validates that the value meets the minimum requirement
18
- * - For strings: checks if length is at least the specified minimum
19
- * - For numbers: checks if value is at least the specified minimum
20
- * - For arrays: checks if length is at least the specified minimum
21
- * - For other types: always returns false
22
- *
23
- * @param value The value to validate
24
- * @returns boolean indicating if validation passed
25
- */
26
- public validate(value: unknown): boolean {
27
- // Null or undefined values should be handled by RequiredRule, not this rule
28
- if (value === null || value === undefined) {
29
- return true
30
- }
31
-
32
- // For strings, check the length
33
- if (typeof value === 'string') {
34
- return value.length >= this.min
35
- }
36
-
37
- // For numbers, check the value
38
- if (typeof value === 'number') {
39
- return value >= this.min
40
- }
41
-
42
- // For arrays, check the length
43
- if (Array.isArray(value)) {
44
- return value.length >= this.min
45
- }
46
-
47
- // For other types, validation fails
48
- return false
49
- }
50
-
51
- /**
52
- * Returns the error message for the validation
53
- */
54
- public getMessage(): string {
55
- if (this.message) {
56
- return this.message
57
- }
58
-
59
- return `This field must be at least ${this.min}`
60
- }
61
- }
@@ -1,19 +0,0 @@
1
- import { BaseRule } from './BaseRule'
2
-
3
- export class RequiredRule<FormBody extends object> extends BaseRule<FormBody> {
4
- public constructor(protected message: string = 'This field is required') {
5
- super()
6
- }
7
-
8
- public validate(value: keyof FormBody): boolean {
9
- if (value === null || value === undefined || value === '') {
10
- return false
11
- }
12
-
13
- return true
14
- }
15
-
16
- public getMessage(): string {
17
- return this.message
18
- }
19
- }
@@ -1,24 +0,0 @@
1
- import { BaseRule } from './BaseRule'
2
-
3
- export class UrlRule<FormBody extends object> extends BaseRule<FormBody> {
4
- public constructor(protected message: string = 'Please enter a valid URL') {
5
- super()
6
- }
7
-
8
- public validate(value: unknown): boolean {
9
- if (!value || typeof value !== 'string') {
10
- return false
11
- }
12
-
13
- try {
14
- new URL(value)
15
- return true
16
- } catch {
17
- return false
18
- }
19
- }
20
-
21
- public getMessage(): string {
22
- return this.message
23
- }
24
- }
@@ -1,15 +0,0 @@
1
- import { type BaseRule } from '../rules/BaseRule'
2
- import { type BidirectionalRule } from './BidirectionalRule'
3
- import { type ValidationMode } from '../ValidationMode.enum'
4
-
5
- type Rule<FormBody extends object> = BaseRule<FormBody> & Partial<BidirectionalRule<FormBody>>
6
-
7
- export type ValidationRules<FormBody extends object> = Partial<
8
- Record<
9
- keyof FormBody,
10
- {
11
- rules: Rule<FormBody>[]
12
- options?: { mode?: ValidationMode }
13
- }
14
- >
15
- >
package/src/vue/index.ts DELETED
@@ -1,14 +0,0 @@
1
- import useIsOpen from './composables/useIsOpen'
2
- import useModelWrapper from './composables/useModelWrapper'
3
- import useOnOpen from './composables/useOnOpen'
4
- import useIsOpenFromVar from './composables/useIsOpenFromVar'
5
- import useGlobalCheckbox from './composables/useGlobalCheckbox'
6
- import useIsEmpty from './composables/useIsEmpty'
7
- import useConfirmDialog from './composables/useConfirmDialog'
8
-
9
- import { ConfirmDialogSeverity, type ConfirmDialogOptions } from './composables/useConfirmDialog'
10
-
11
- export { useIsOpen, useModelWrapper, useOnOpen, useIsOpenFromVar, useGlobalCheckbox, useIsEmpty, useConfirmDialog }
12
-
13
- export { ConfirmDialogSeverity }
14
- export type { ConfirmDialogOptions }
@@ -1,10 +0,0 @@
1
- import { VueRequestLoader } from '../loaders/VueRequestLoader'
2
- import { type RequestLoaderContract } from '../../../requests/contracts/RequestLoaderContract'
3
- import { type Ref } from 'vue'
4
- import type { RequestLoaderFactoryContract } from '../../../requests'
5
-
6
- export class VueRequestLoaderFactory implements RequestLoaderFactoryContract<Ref<boolean>> {
7
- public make(): RequestLoaderContract<Ref<boolean>> {
8
- return new VueRequestLoader()
9
- }
10
- }
@@ -1,35 +0,0 @@
1
- import { type Ref, ref, computed } from 'vue'
2
- import { type RequestLoaderContract } from '../../../requests/contracts/RequestLoaderContract'
3
-
4
- export class VueRequestBatchLoader implements RequestLoaderContract<Ref<boolean>> {
5
- private inFlight: Ref<number> = ref(0)
6
- private completed: Ref<number> = ref(0)
7
- private expected: number = 0
8
-
9
- constructor(expectedRequests: number = 0) {
10
- this.expected = expectedRequests
11
- }
12
-
13
- public startBatch(count: number) {
14
- this.expected = count
15
- this.completed.value = 0
16
- }
17
-
18
- public abortBatch() {
19
- this.expected = 0
20
- this.completed.value = 0
21
- }
22
-
23
- public isLoading(): Ref<boolean> {
24
- return computed(() => this.inFlight.value > 0 || (this.expected > 0 && this.completed.value < this.expected))
25
- }
26
-
27
- public setLoading(loading: boolean): void {
28
- if (loading) {
29
- this.inFlight.value++
30
- } else {
31
- this.inFlight.value = Math.max(0, this.inFlight.value - 1)
32
- this.completed.value++
33
- }
34
- }
35
- }
@@ -1,18 +0,0 @@
1
- import { type Ref, ref } from 'vue'
2
- import { type RequestLoaderContract } from '../../../requests/contracts/RequestLoaderContract'
3
-
4
- export class VueRequestLoader implements RequestLoaderContract<Ref<boolean>> {
5
- protected loading: Ref<boolean>
6
-
7
- public constructor(initialLoading: boolean = false) {
8
- this.loading = ref<boolean>(initialLoading)
9
- }
10
-
11
- isLoading(): Ref<boolean> {
12
- return this.loading
13
- }
14
-
15
- setLoading(value: boolean): void {
16
- this.loading.value = value
17
- }
18
- }
@@ -1,145 +0,0 @@
1
- import { computed, defineComponent, h, type Component as VueComponent, type VNode } from 'vue'
2
- import { RouterView, useRoute, type RouteLocationNormalizedLoaded } from 'vue-router'
3
-
4
- type InjectionState = Record<string, { loading: boolean; error: Error | null }>
5
-
6
- /**
7
- * Drop-in replacement for `<router-view>` that handles route resource
8
- * injection loading and error states.
9
- *
10
- * When any injected resource is loading → renders the route's `loadingComponent`.
11
- * When any injected resource has an error → renders the route's `errorComponent`
12
- * (receives `error` and `refresh` as props).
13
- * Otherwise → passes `{ Component, route }` to the default scoped slot,
14
- * just like `<RouterView>`.
15
- *
16
- * Error and loading components are defined in the route via `defineRoute`:
17
- *
18
- * ```ts
19
- * defineRoute<{ credential: CredentialResource }>()({
20
- * path: '/credentials/:credentialId',
21
- * component: CredentialShowPage,
22
- * errorComponent: GenericErrorPage,
23
- * loadingComponent: LoadingSpinner,
24
- * inject: {
25
- * credential: {
26
- * from: 'credentialId',
27
- * resolve: (id) => new RouteResourceRequestResolver(new CredentialShowRequest(id)),
28
- * },
29
- * },
30
- * })
31
- * ```
32
- *
33
- * Set `lazy: false` to render the target component immediately (without
34
- * waiting for resources). The component can then handle loading/error
35
- * states itself via `useRouteResource()`:
36
- *
37
- * ```ts
38
- * defineRoute<{ credential: CredentialResource }>()({
39
- * path: '/credentials/:credentialId',
40
- * component: CredentialShowPage,
41
- * lazy: false,
42
- * inject: { ... },
43
- * })
44
- * ```
45
- *
46
- * Usage in layout (supports the same v-slot pattern as RouterView):
47
- * ```vue
48
- * <RouteResourceBoundView v-slot="{ Component, route }">
49
- * <component :is="Component" v-if="Component" :key="route.meta.usePathKey ? route.path : undefined" />
50
- * <EmptyState v-else />
51
- * </RouteResourceBoundView>
52
- * ```
53
- *
54
- * Or without a slot (renders the matched component automatically):
55
- * ```vue
56
- * <RouteResourceBoundView />
57
- * ```
58
- */
59
- export const RouteResourceBoundView = defineComponent({
60
- name: 'RouteResourceBoundView',
61
-
62
- setup(_, { slots }) {
63
- const route = useRoute()
64
-
65
- const injectionState = computed(() => {
66
- return route.meta._injectionState as InjectionState | undefined
67
- })
68
-
69
- const firstError = computed((): Error | null => {
70
- const state = injectionState.value
71
- if (!state) return null
72
-
73
- for (const key of Object.keys(state)) {
74
- const entry = state[key]
75
- if (entry?.error) return entry.error
76
- }
77
-
78
- return null
79
- })
80
-
81
- const anyLoading = computed((): boolean => {
82
- const state = injectionState.value
83
- if (!state) return false
84
-
85
- return Object.keys(state).some((key) => state[key]?.loading)
86
- })
87
-
88
- const refresh = async () => {
89
- const state = injectionState.value
90
- if (!state) return
91
-
92
- const erroredProps = Object.keys(state).filter((key) => state[key]?.error)
93
-
94
- await Promise.all(erroredProps.map((propName) => route.meta.refresh?.(propName)))
95
- }
96
-
97
- /**
98
- * Core render logic that decides which slot/component to show
99
- * given the resolved Component and route from RouterView.
100
- */
101
- function renderContent(Component: VueComponent | undefined, resolvedRoute: RouteLocationNormalizedLoaded): VNode | VNode[] | undefined {
102
- const isLazy = resolvedRoute.meta._lazy !== false
103
-
104
- if (isLazy) {
105
- if (firstError.value) {
106
- const errorComponent = resolvedRoute.meta._errorComponent
107
-
108
- if (errorComponent) {
109
- return h(errorComponent, { error: firstError.value, refresh })
110
- }
111
-
112
- return slots['error']?.({ error: firstError.value, refresh })
113
- }
114
-
115
- if (anyLoading.value) {
116
- const loadingComponent = resolvedRoute.meta._loadingComponent
117
-
118
- if (loadingComponent) {
119
- return h(loadingComponent)
120
- }
121
-
122
- return slots['loading']?.()
123
- }
124
- }
125
-
126
- if (slots['default']) {
127
- return slots['default']({ Component, route: resolvedRoute })
128
- }
129
-
130
- if (Component) {
131
- return h(Component)
132
- }
133
-
134
- return undefined
135
- }
136
-
137
- return () => {
138
- return h(RouterView, null, {
139
- default: ({ Component, route: resolvedRoute }: { Component: VueComponent | undefined; route: RouteLocationNormalizedLoaded }) => {
140
- return renderContent(Component, resolvedRoute)
141
- }
142
- })
143
- }
144
- }
145
- })
@@ -1,11 +0,0 @@
1
- import { type DataRequest, type Resolver } from './types'
2
-
3
- export class RouteResourceRequestResolver<T> implements Resolver<T> {
4
- public constructor(private request: DataRequest<T>) {}
5
-
6
- public async resolve(): Promise<T> {
7
- const response = await this.request.send()
8
-
9
- return response.getData()
10
- }
11
- }
@@ -1,59 +0,0 @@
1
- import { markRaw, type Component } from 'vue'
2
- import { type RouteRecordRaw } from 'vue-router'
3
- import { type InjectConfig } from './types'
4
-
5
- /**
6
- * Type-safe route definition helper that ties:
7
- * - component props type (Props)
8
- * - inject config types (must resolve Props[K])
9
- *
10
- * Usage:
11
- * export default defineRoute<{ product: ProductResource }>()({
12
- * path: '/products/:productId',
13
- * component: ProductShowPage,
14
- * errorComponent: GenericErrorPage,
15
- * loadingComponent: LoadingSpinner,
16
- * inject: { product: { from: 'productId', resolve: ... } },
17
- * })
18
- */
19
- export function defineRoute<Props extends Record<string, unknown>>() {
20
- return function <
21
- T extends RouteRecordRaw & {
22
- inject?: InjectConfig<Props>
23
- errorComponent?: Component
24
- loadingComponent?: Component
25
- lazy?: boolean
26
- }
27
- >(route: T): RouteRecordRaw {
28
- const originalProps = route.props
29
-
30
- if (route.errorComponent) {
31
- route.meta = route.meta ?? {}
32
- route.meta._errorComponent = markRaw(route.errorComponent)
33
- delete route.errorComponent
34
- }
35
-
36
- if (route.loadingComponent) {
37
- route.meta = route.meta ?? {}
38
- route.meta._loadingComponent = markRaw(route.loadingComponent)
39
- delete route.loadingComponent
40
- }
41
-
42
- if (route.lazy !== undefined) {
43
- route.meta = route.meta ?? {}
44
- route.meta._lazy = route.lazy
45
- delete route.lazy
46
- }
47
-
48
- route.props = (to) => {
49
- const baseProps = typeof originalProps === 'function' ? originalProps(to) : originalProps === true ? to.params : (originalProps ?? {})
50
-
51
- return {
52
- ...(baseProps as Record<string, unknown>),
53
- ...((to.meta._injectedProps as Record<string, unknown>) ?? {})
54
- }
55
- }
56
-
57
- return route
58
- }
59
- }
@@ -1,11 +0,0 @@
1
- import { defineRoute } from './defineRoute'
2
- import { installRouteInjection } from './installRouteInjection'
3
- import { RouteResourceBoundView } from './RouteResourceBoundView'
4
- import { RouteResourceRequestResolver } from './RouteResourceRequestResolver'
5
- import { useRouteResource } from './useRouteResource'
6
-
7
- import type { DataRequest, InjectConfig, Resolver } from './types'
8
-
9
- export { defineRoute, installRouteInjection, RouteResourceBoundView, RouteResourceRequestResolver, useRouteResource }
10
-
11
- export type { DataRequest, InjectConfig, Resolver }