@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.
- package/dist/bulkRequests/BulkRequestEvent.enum.d.ts +4 -0
- package/dist/bulkRequests/BulkRequestEvent.enum.js +5 -0
- package/dist/bulkRequests/BulkRequestSender.d.ts +31 -0
- package/dist/bulkRequests/BulkRequestSender.js +161 -0
- package/dist/bulkRequests/BulkRequestWrapper.d.ts +15 -0
- package/dist/bulkRequests/BulkRequestWrapper.js +50 -0
- package/dist/bulkRequests/index.d.ts +5 -0
- package/dist/bulkRequests/index.js +5 -0
- package/{src/laravel/pagination/contracts/PaginationResponseBodyContract.ts → dist/laravel/pagination/contracts/PaginationResponseBodyContract.d.ts} +4 -4
- package/dist/laravel/pagination/contracts/PaginationResponseBodyContract.js +1 -0
- package/dist/laravel/pagination/dataDrivers/RequestDriver.d.ts +10 -0
- package/dist/laravel/pagination/dataDrivers/RequestDriver.js +18 -0
- package/dist/laravel/pagination/index.d.ts +4 -0
- package/dist/laravel/pagination/index.js +2 -0
- package/dist/laravel/requests/JsonBaseRequest.d.ts +14 -0
- package/dist/laravel/requests/JsonBaseRequest.js +15 -0
- package/dist/laravel/requests/PaginationJsonBaseRequest.d.ts +8 -0
- package/dist/laravel/requests/PaginationJsonBaseRequest.js +13 -0
- package/dist/laravel/requests/index.d.ts +7 -0
- package/dist/laravel/requests/index.js +5 -0
- package/dist/laravel/requests/responses/JsonResponse.d.ts +5 -0
- package/dist/laravel/requests/responses/JsonResponse.js +6 -0
- package/dist/laravel/requests/responses/PaginationResponse.d.ts +7 -0
- package/dist/laravel/requests/responses/PaginationResponse.js +9 -0
- package/dist/pagination/BasePaginator.d.ts +19 -0
- package/dist/pagination/BasePaginator.js +65 -0
- package/dist/pagination/InfiniteScroller.d.ts +6 -0
- package/dist/pagination/InfiniteScroller.js +17 -0
- package/dist/pagination/PageAwarePaginator.d.ts +32 -0
- package/dist/pagination/PageAwarePaginator.js +86 -0
- package/dist/pagination/StatePaginator.d.ts +25 -0
- package/dist/pagination/StatePaginator.js +55 -0
- package/dist/pagination/contracts/BaseViewDriverContract.d.ts +6 -0
- package/dist/pagination/contracts/BaseViewDriverContract.js +1 -0
- package/{src/pagination/contracts/BaseViewDriverFactoryContract.ts → dist/pagination/contracts/BaseViewDriverFactoryContract.d.ts} +2 -3
- package/dist/pagination/contracts/BaseViewDriverFactoryContract.js +1 -0
- package/dist/pagination/contracts/PaginateableRequestContract.d.ts +4 -0
- package/dist/pagination/contracts/PaginateableRequestContract.js +1 -0
- package/dist/pagination/contracts/PaginationDataDriverContract.d.ts +4 -0
- package/dist/pagination/contracts/PaginationDataDriverContract.js +1 -0
- package/{src/pagination/contracts/PaginationResponseContract.ts → dist/pagination/contracts/PaginationResponseContract.d.ts} +3 -5
- package/dist/pagination/contracts/PaginationResponseContract.js +1 -0
- package/{src/pagination/contracts/PaginatorLoadDataOptions.ts → dist/pagination/contracts/PaginatorLoadDataOptions.d.ts} +2 -2
- package/dist/pagination/contracts/PaginatorLoadDataOptions.js +1 -0
- package/{src/pagination/contracts/StatePaginationDataDriverContract.ts → dist/pagination/contracts/StatePaginationDataDriverContract.d.ts} +2 -3
- package/dist/pagination/contracts/StatePaginationDataDriverContract.js +1 -0
- package/dist/pagination/contracts/ViewDriverContract.d.ts +9 -0
- package/dist/pagination/contracts/ViewDriverContract.js +1 -0
- package/dist/pagination/contracts/ViewDriverFactoryContract.d.ts +4 -0
- package/dist/pagination/contracts/ViewDriverFactoryContract.js +1 -0
- package/dist/pagination/dataDrivers/ArrayDriver.d.ts +9 -0
- package/dist/pagination/dataDrivers/ArrayDriver.js +20 -0
- package/dist/pagination/dtos/PaginationDataDto.d.ts +7 -0
- package/dist/pagination/dtos/PaginationDataDto.js +12 -0
- package/dist/pagination/dtos/StatePaginationDataDto.d.ts +7 -0
- package/dist/pagination/dtos/StatePaginationDataDto.js +13 -0
- package/dist/pagination/factories/VueBaseViewDriverFactory.d.ts +5 -0
- package/dist/pagination/factories/VueBaseViewDriverFactory.js +6 -0
- package/dist/pagination/factories/VuePaginationDriverFactory.d.ts +5 -0
- package/dist/pagination/factories/VuePaginationDriverFactory.js +6 -0
- package/dist/pagination/frontendDrivers/VueBaseViewDriver.d.ts +11 -0
- package/dist/pagination/frontendDrivers/VueBaseViewDriver.js +19 -0
- package/dist/pagination/frontendDrivers/VuePaginationDriver.d.ts +21 -0
- package/dist/pagination/frontendDrivers/VuePaginationDriver.js +41 -0
- package/dist/pagination/index.d.ts +22 -0
- package/dist/pagination/index.js +13 -0
- package/dist/persistenceDrivers/LocalStorageDriver.d.ts +9 -0
- package/dist/persistenceDrivers/LocalStorageDriver.js +18 -0
- package/dist/persistenceDrivers/NonPersistentDriver.d.ts +7 -0
- package/dist/persistenceDrivers/NonPersistentDriver.js +8 -0
- package/dist/persistenceDrivers/SessionStorageDriver.d.ts +9 -0
- package/dist/persistenceDrivers/SessionStorageDriver.js +18 -0
- package/dist/persistenceDrivers/index.d.ts +6 -0
- package/dist/persistenceDrivers/index.js +4 -0
- package/dist/persistenceDrivers/types/PersistenceDriver.d.ts +5 -0
- package/dist/persistenceDrivers/types/PersistenceDriver.js +1 -0
- package/dist/requests/BaseRequest.d.ts +62 -0
- package/dist/requests/BaseRequest.js +224 -0
- package/dist/requests/ErrorHandler.d.ts +11 -0
- package/dist/requests/ErrorHandler.js +127 -0
- package/dist/requests/RequestConcurrencyMode.enum.d.ts +6 -0
- package/dist/requests/RequestConcurrencyMode.enum.js +7 -0
- package/dist/requests/RequestErrorRouter.d.ts +38 -0
- package/dist/requests/RequestErrorRouter.js +38 -0
- package/dist/requests/RequestEvents.enum.d.ts +4 -0
- package/dist/requests/RequestEvents.enum.js +5 -0
- package/dist/requests/RequestMethod.enum.d.ts +8 -0
- package/dist/requests/RequestMethod.enum.js +9 -0
- package/dist/requests/bodies/BinaryBody.d.ts +10 -0
- package/dist/requests/bodies/BinaryBody.js +22 -0
- package/dist/requests/bodies/FormDataBody.d.ts +14 -0
- package/dist/requests/bodies/FormDataBody.js +60 -0
- package/dist/requests/bodies/JsonBody.d.ts +8 -0
- package/dist/requests/bodies/JsonBody.js +13 -0
- package/{src/requests/contracts/AbortableRequestContract.ts → dist/requests/contracts/AbortableRequestContract.d.ts} +1 -1
- package/dist/requests/contracts/AbortableRequestContract.js +1 -0
- package/dist/requests/contracts/BaseRequestContract.d.ts +23 -0
- package/dist/requests/contracts/BaseRequestContract.js +1 -0
- package/dist/requests/contracts/BodyContract.d.ts +6 -0
- package/dist/requests/contracts/BodyContract.js +1 -0
- package/dist/requests/contracts/BodyFactoryContract.d.ts +4 -0
- package/dist/requests/contracts/BodyFactoryContract.js +1 -0
- package/dist/requests/contracts/DriverConfigContract.d.ts +8 -0
- package/dist/requests/contracts/DriverConfigContract.js +1 -0
- package/dist/requests/contracts/HeadersContract.d.ts +7 -0
- package/dist/requests/contracts/HeadersContract.js +1 -0
- package/dist/requests/contracts/RequestDriverContract.d.ts +8 -0
- package/dist/requests/contracts/RequestDriverContract.js +1 -0
- package/dist/requests/contracts/RequestLoaderContract.d.ts +4 -0
- package/dist/requests/contracts/RequestLoaderContract.js +1 -0
- package/{src/requests/contracts/RequestLoaderFactoryContract.ts → dist/requests/contracts/RequestLoaderFactoryContract.d.ts} +2 -3
- package/dist/requests/contracts/RequestLoaderFactoryContract.js +1 -0
- package/dist/requests/contracts/ResponseContract.d.ts +5 -0
- package/dist/requests/contracts/ResponseContract.js +1 -0
- package/dist/requests/drivers/contracts/ResponseHandlerContract.d.ts +9 -0
- package/dist/requests/drivers/contracts/ResponseHandlerContract.js +1 -0
- package/dist/requests/drivers/fetch/FetchDriver.d.ts +26 -0
- package/dist/requests/drivers/fetch/FetchDriver.js +73 -0
- package/dist/requests/drivers/fetch/FetchResponse.d.ts +12 -0
- package/dist/requests/drivers/fetch/FetchResponse.js +38 -0
- package/dist/requests/drivers/xhr/XMLHttpRequestDriver.d.ts +13 -0
- package/dist/requests/drivers/xhr/XMLHttpRequestDriver.js +107 -0
- package/dist/requests/drivers/xhr/XMLHttpRequestResponse.d.ts +17 -0
- package/dist/requests/drivers/xhr/XMLHttpRequestResponse.js +84 -0
- package/dist/requests/exceptions/BadGatewayException.d.ts +3 -0
- package/dist/requests/exceptions/BadGatewayException.js +3 -0
- package/dist/requests/exceptions/BadRequestException.d.ts +3 -0
- package/dist/requests/exceptions/BadRequestException.js +3 -0
- package/dist/requests/exceptions/ConflictException.d.ts +3 -0
- package/dist/requests/exceptions/ConflictException.js +3 -0
- package/dist/requests/exceptions/ForbiddenException.d.ts +3 -0
- package/dist/requests/exceptions/ForbiddenException.js +3 -0
- package/dist/requests/exceptions/GatewayTimeoutException.d.ts +3 -0
- package/dist/requests/exceptions/GatewayTimeoutException.js +3 -0
- package/dist/requests/exceptions/GoneException.d.ts +3 -0
- package/dist/requests/exceptions/GoneException.js +3 -0
- package/dist/requests/exceptions/InvalidJsonException.d.ts +7 -0
- package/dist/requests/exceptions/InvalidJsonException.js +10 -0
- package/dist/requests/exceptions/LockedException.d.ts +3 -0
- package/dist/requests/exceptions/LockedException.js +3 -0
- package/dist/requests/exceptions/MethodNotAllowedException.d.ts +3 -0
- package/dist/requests/exceptions/MethodNotAllowedException.js +3 -0
- package/dist/requests/exceptions/NoResponseReceivedException.d.ts +3 -0
- package/{src/requests/exceptions/NoResponseReceivedException.ts → dist/requests/exceptions/NoResponseReceivedException.js} +3 -3
- package/dist/requests/exceptions/NotFoundException.d.ts +3 -0
- package/dist/requests/exceptions/NotFoundException.js +3 -0
- package/dist/requests/exceptions/NotImplementedException.d.ts +3 -0
- package/dist/requests/exceptions/NotImplementedException.js +3 -0
- package/dist/requests/exceptions/PageExpiredException.d.ts +3 -0
- package/dist/requests/exceptions/PageExpiredException.js +3 -0
- package/dist/requests/exceptions/PayloadTooLargeException.d.ts +3 -0
- package/dist/requests/exceptions/PayloadTooLargeException.js +3 -0
- package/dist/requests/exceptions/PreconditionFailedException.d.ts +3 -0
- package/dist/requests/exceptions/PreconditionFailedException.js +3 -0
- package/dist/requests/exceptions/RequestTimeoutException.d.ts +3 -0
- package/dist/requests/exceptions/RequestTimeoutException.js +3 -0
- package/dist/requests/exceptions/ResponseBodyException.d.ts +7 -0
- package/dist/requests/exceptions/ResponseBodyException.js +10 -0
- package/dist/requests/exceptions/ResponseException.d.ts +6 -0
- package/dist/requests/exceptions/ResponseException.js +9 -0
- package/dist/requests/exceptions/ServerErrorException.d.ts +3 -0
- package/dist/requests/exceptions/ServerErrorException.js +3 -0
- package/dist/requests/exceptions/ServiceUnavailableException.d.ts +3 -0
- package/dist/requests/exceptions/ServiceUnavailableException.js +3 -0
- package/dist/requests/exceptions/StaleResponseException.d.ts +5 -0
- package/dist/requests/exceptions/StaleResponseException.js +10 -0
- package/dist/requests/exceptions/TooManyRequestsException.d.ts +3 -0
- package/dist/requests/exceptions/TooManyRequestsException.js +3 -0
- package/dist/requests/exceptions/UnauthorizedException.d.ts +3 -0
- package/dist/requests/exceptions/UnauthorizedException.js +3 -0
- package/dist/requests/exceptions/UnsupportedMediaTypeException.d.ts +3 -0
- package/dist/requests/exceptions/UnsupportedMediaTypeException.js +3 -0
- package/dist/requests/exceptions/ValidationException.d.ts +3 -0
- package/dist/requests/exceptions/ValidationException.js +3 -0
- package/dist/requests/exceptions/index.d.ts +25 -0
- package/dist/requests/exceptions/index.js +25 -0
- package/dist/requests/factories/BinaryBodyFactory.d.ts +8 -0
- package/dist/requests/factories/BinaryBodyFactory.js +9 -0
- package/dist/requests/factories/FormDataFactory.d.ts +12 -0
- package/dist/requests/factories/FormDataFactory.js +6 -0
- package/dist/requests/factories/JsonBodyFactory.d.ts +5 -0
- package/dist/requests/factories/JsonBodyFactory.js +6 -0
- package/dist/requests/index.d.ts +31 -0
- package/dist/requests/index.js +19 -0
- package/dist/requests/responses/BaseResponse.d.ts +14 -0
- package/dist/requests/responses/BaseResponse.js +36 -0
- package/dist/requests/responses/BlobResponse.d.ts +7 -0
- package/dist/requests/responses/BlobResponse.js +16 -0
- package/dist/requests/responses/JsonResponse.d.ts +5 -0
- package/dist/requests/responses/JsonResponse.js +12 -0
- package/dist/requests/responses/PlainTextResponse.d.ts +5 -0
- package/dist/requests/responses/PlainTextResponse.js +12 -0
- package/{src/requests/types/RequestConcurrencyOptions.ts → dist/requests/types/RequestConcurrencyOptions.d.ts} +4 -5
- package/dist/requests/types/RequestConcurrencyOptions.js +1 -0
- package/dist/requests/types/RequestUploadProgress.d.ts +6 -0
- package/dist/requests/types/RequestUploadProgress.js +1 -0
- package/dist/support/DeferredPromise.d.ts +37 -0
- package/dist/support/DeferredPromise.js +55 -0
- package/dist/support/helpers.d.ts +5 -0
- package/dist/support/helpers.js +69 -0
- package/{src/support/index.ts → dist/support/index.d.ts} +3 -4
- package/dist/support/index.js +3 -0
- package/dist/vue/composables/useConfirmDialog.d.ts +20 -0
- package/dist/vue/composables/useConfirmDialog.js +52 -0
- package/dist/vue/composables/useGlobalCheckbox.d.ts +13 -0
- package/dist/vue/composables/useGlobalCheckbox.js +123 -0
- package/dist/vue/composables/useIsEmpty.d.ts +4 -0
- package/dist/vue/composables/useIsEmpty.js +27 -0
- package/dist/vue/composables/useIsOpen.d.ts +5 -0
- package/dist/vue/composables/useIsOpen.js +25 -0
- package/dist/vue/composables/useIsOpenFromVar.d.ts +6 -0
- package/dist/vue/composables/useIsOpenFromVar.js +45 -0
- package/dist/vue/composables/useModelWrapper.d.ts +9 -0
- package/dist/vue/composables/useModelWrapper.js +18 -0
- package/dist/vue/composables/useOnOpen.d.ts +7 -0
- package/dist/vue/composables/useOnOpen.js +25 -0
- package/{src/vue/contracts/ModelValueOptions.ts → dist/vue/contracts/ModelValueOptions.d.ts} +1 -1
- package/dist/vue/contracts/ModelValueOptions.js +1 -0
- package/dist/vue/contracts/ModelValueProps.d.ts +3 -0
- package/dist/vue/contracts/ModelValueProps.js +1 -0
- package/dist/vue/forms/BaseForm.d.ts +162 -0
- package/dist/vue/forms/BaseForm.js +997 -0
- package/dist/vue/forms/PropertyAwareArray.d.ts +53 -0
- package/dist/vue/forms/PropertyAwareArray.js +54 -0
- package/{src/vue/forms/index.ts → dist/vue/forms/index.d.ts} +9 -11
- package/dist/vue/forms/index.js +6 -0
- package/dist/vue/forms/types/PersistedForm.d.ts +6 -0
- package/dist/vue/forms/types/PersistedForm.js +1 -0
- package/dist/vue/forms/validation/ValidationMode.enum.d.ts +11 -0
- package/dist/vue/forms/validation/ValidationMode.enum.js +14 -0
- package/dist/vue/forms/validation/index.d.ts +12 -0
- package/dist/vue/forms/validation/index.js +9 -0
- package/dist/vue/forms/validation/rules/BaseRule.d.ts +5 -0
- package/dist/vue/forms/validation/rules/BaseRule.js +5 -0
- package/dist/vue/forms/validation/rules/ConfirmedRule.d.ts +10 -0
- package/dist/vue/forms/validation/rules/ConfirmedRule.js +26 -0
- package/dist/vue/forms/validation/rules/EmailRule.d.ts +7 -0
- package/dist/vue/forms/validation/rules/EmailRule.js +19 -0
- package/dist/vue/forms/validation/rules/JsonRule.d.ts +7 -0
- package/dist/vue/forms/validation/rules/JsonRule.js +25 -0
- package/dist/vue/forms/validation/rules/MinRule.d.ts +26 -0
- package/dist/vue/forms/validation/rules/MinRule.js +52 -0
- package/dist/vue/forms/validation/rules/RequiredRule.d.ts +7 -0
- package/dist/vue/forms/validation/rules/RequiredRule.js +16 -0
- package/dist/vue/forms/validation/rules/UrlRule.d.ts +7 -0
- package/dist/vue/forms/validation/rules/UrlRule.js +22 -0
- package/{src/vue/forms/validation/types/BidirectionalRule.ts → dist/vue/forms/validation/types/BidirectionalRule.d.ts} +4 -4
- package/dist/vue/forms/validation/types/BidirectionalRule.js +1 -0
- package/dist/vue/forms/validation/types/ValidationRules.d.ts +11 -0
- package/dist/vue/forms/validation/types/ValidationRules.js +1 -0
- package/dist/vue/index.d.ts +11 -0
- package/dist/vue/index.js +10 -0
- package/dist/vue/requests/factories/VueRequestLoaderFactory.d.ts +6 -0
- package/dist/vue/requests/factories/VueRequestLoaderFactory.js +6 -0
- package/{src/vue/requests/index.ts → dist/vue/requests/index.d.ts} +4 -5
- package/dist/vue/requests/index.js +4 -0
- package/dist/vue/requests/loaders/VueRequestBatchLoader.d.ts +12 -0
- package/dist/vue/requests/loaders/VueRequestBatchLoader.js +29 -0
- package/dist/vue/requests/loaders/VueRequestLoader.d.ts +8 -0
- package/dist/vue/requests/loaders/VueRequestLoader.js +12 -0
- package/dist/vue/router/routeResourceBinding/RouteResourceBoundView.d.ts +57 -0
- package/dist/vue/router/routeResourceBinding/RouteResourceBoundView.js +135 -0
- package/dist/vue/router/routeResourceBinding/RouteResourceRequestResolver.d.ts +6 -0
- package/dist/vue/router/routeResourceBinding/RouteResourceRequestResolver.js +20 -0
- package/dist/vue/router/routeResourceBinding/defineRoute.d.ts +23 -0
- package/dist/vue/router/routeResourceBinding/defineRoute.js +42 -0
- package/dist/vue/router/routeResourceBinding/index.d.ts +8 -0
- package/dist/vue/router/routeResourceBinding/index.js +6 -0
- package/dist/vue/router/routeResourceBinding/installRouteInjection.d.ts +14 -0
- package/dist/vue/router/routeResourceBinding/installRouteInjection.js +133 -0
- package/dist/vue/router/routeResourceBinding/types.d.ts +55 -0
- package/dist/vue/router/routeResourceBinding/types.js +1 -0
- package/dist/vue/router/routeResourceBinding/useRouteResource.d.ts +8 -0
- package/dist/vue/router/routeResourceBinding/useRouteResource.js +29 -0
- package/dist/vue/state/State.d.ts +75 -0
- package/dist/vue/state/State.js +267 -0
- package/dist/vue/state/index.d.ts +2 -0
- package/dist/vue/state/index.js +2 -0
- package/package.json +81 -23
- package/.editorconfig +0 -508
- package/.eslintrc.cjs +0 -15
- package/.prettierrc.json +0 -8
- package/CHANGELOG.md +0 -213
- package/docker-compose.yaml +0 -8
- package/docs/.vitepress/config.ts +0 -124
- package/docs/index.md +0 -13
- package/docs/laravel/pagination.md +0 -67
- package/docs/laravel/requests.md +0 -62
- package/docs/services/pagination/index.md +0 -46
- package/docs/services/pagination/infinite-scroller.md +0 -20
- package/docs/services/pagination/page-aware.md +0 -51
- package/docs/services/pagination/state-pagination.md +0 -77
- package/docs/services/pagination/updating-rows.md +0 -52
- package/docs/services/persistence/index.md +0 -46
- package/docs/services/requests/abort-requests.md +0 -29
- package/docs/services/requests/bulk-requests.md +0 -70
- package/docs/services/requests/concurrency.md +0 -58
- package/docs/services/requests/drivers.md +0 -115
- package/docs/services/requests/error-handling.md +0 -153
- package/docs/services/requests/events.md +0 -53
- package/docs/services/requests/file-uploads.md +0 -105
- package/docs/services/requests/getting-started.md +0 -201
- package/docs/services/requests/headers.md +0 -40
- package/docs/services/requests/loading.md +0 -63
- package/docs/services/requests/request-bodies.md +0 -61
- package/docs/services/requests/responses.md +0 -34
- package/docs/services/support/deferred-promise.md +0 -63
- package/docs/services/support/helpers.md +0 -77
- package/docs/services/support/index.md +0 -6
- package/docs/upgrading/v1-to-v2.md +0 -64
- package/docs/upgrading/v2-to-v3.md +0 -52
- package/docs/upgrading/v3-to-v4.md +0 -214
- package/docs/upgrading.md +0 -0
- package/docs/vue/composables/use-confirm-dialog.md +0 -96
- package/docs/vue/composables/use-global-checkbox.md +0 -73
- package/docs/vue/composables/use-is-empty.md +0 -26
- package/docs/vue/composables/use-is-open-from-var.md +0 -32
- package/docs/vue/composables/use-is-open.md +0 -28
- package/docs/vue/composables/use-model-wrapper.md +0 -29
- package/docs/vue/composables/use-on-open.md +0 -26
- package/docs/vue/forms/arrays.md +0 -102
- package/docs/vue/forms/errors.md +0 -52
- package/docs/vue/forms/index.md +0 -99
- package/docs/vue/forms/payloads.md +0 -99
- package/docs/vue/forms/persistence.md +0 -19
- package/docs/vue/forms/state-and-properties.md +0 -26
- package/docs/vue/forms/utilities.md +0 -27
- package/docs/vue/forms/validation.md +0 -189
- package/docs/vue/requests/loading.md +0 -51
- package/docs/vue/router/route-resource-binding.md +0 -240
- package/docs/vue/state.md +0 -309
- package/env.d.ts +0 -1
- package/eslint.config.js +0 -15
- package/release-tool.json +0 -26
- package/src/bulkRequests/BulkRequestEvent.enum.ts +0 -4
- package/src/bulkRequests/BulkRequestSender.ts +0 -196
- package/src/bulkRequests/BulkRequestWrapper.ts +0 -49
- package/src/bulkRequests/index.ts +0 -6
- package/src/laravel/pagination/dataDrivers/RequestDriver.ts +0 -30
- package/src/laravel/pagination/index.ts +0 -6
- package/src/laravel/requests/JsonBaseRequest.ts +0 -35
- package/src/laravel/requests/PaginationJsonBaseRequest.ts +0 -29
- package/src/laravel/requests/index.ts +0 -9
- package/src/laravel/requests/responses/JsonResponse.ts +0 -8
- package/src/laravel/requests/responses/PaginationResponse.ts +0 -16
- package/src/pagination/BasePaginator.ts +0 -94
- package/src/pagination/InfiniteScroller.ts +0 -22
- package/src/pagination/PageAwarePaginator.ts +0 -132
- package/src/pagination/StatePaginator.ts +0 -86
- package/src/pagination/contracts/BaseViewDriverContract.ts +0 -6
- package/src/pagination/contracts/PaginateableRequestContract.ts +0 -13
- package/src/pagination/contracts/PaginationDataDriverContract.ts +0 -5
- package/src/pagination/contracts/ViewDriverContract.ts +0 -10
- package/src/pagination/contracts/ViewDriverFactoryContract.ts +0 -5
- package/src/pagination/dataDrivers/ArrayDriver.ts +0 -28
- package/src/pagination/dtos/PaginationDataDto.ts +0 -14
- package/src/pagination/dtos/StatePaginationDataDto.ts +0 -19
- package/src/pagination/factories/VueBaseViewDriverFactory.ts +0 -9
- package/src/pagination/factories/VuePaginationDriverFactory.ts +0 -9
- package/src/pagination/frontendDrivers/VueBaseViewDriver.ts +0 -28
- package/src/pagination/frontendDrivers/VuePaginationDriver.ts +0 -61
- package/src/pagination/index.ts +0 -46
- package/src/persistenceDrivers/LocalStorageDriver.ts +0 -22
- package/src/persistenceDrivers/NonPersistentDriver.ts +0 -12
- package/src/persistenceDrivers/SessionStorageDriver.ts +0 -22
- package/src/persistenceDrivers/index.ts +0 -8
- package/src/persistenceDrivers/types/PersistenceDriver.ts +0 -5
- package/src/requests/BaseRequest.ts +0 -321
- package/src/requests/ErrorHandler.ts +0 -144
- package/src/requests/RequestConcurrencyMode.enum.ts +0 -6
- package/src/requests/RequestErrorRouter.ts +0 -89
- package/src/requests/RequestEvents.enum.ts +0 -4
- package/src/requests/RequestMethod.enum.ts +0 -8
- package/src/requests/bodies/FormDataBody.ts +0 -81
- package/src/requests/bodies/JsonBody.ts +0 -16
- package/src/requests/contracts/BaseRequestContract.ts +0 -39
- package/src/requests/contracts/BodyContract.ts +0 -7
- package/src/requests/contracts/BodyFactoryContract.ts +0 -5
- package/src/requests/contracts/DriverConfigContract.ts +0 -9
- package/src/requests/contracts/HeadersContract.ts +0 -5
- package/src/requests/contracts/RequestDriverContract.ts +0 -15
- package/src/requests/contracts/RequestLoaderContract.ts +0 -5
- package/src/requests/contracts/ResponseContract.ts +0 -7
- package/src/requests/drivers/contracts/ResponseHandlerContract.ts +0 -10
- package/src/requests/drivers/fetch/FetchDriver.ts +0 -115
- package/src/requests/drivers/fetch/FetchResponse.ts +0 -30
- package/src/requests/drivers/xhr/XMLHttpRequestDriver.ts +0 -138
- package/src/requests/drivers/xhr/XMLHttpRequestResponse.ts +0 -95
- package/src/requests/exceptions/BadGatewayException.ts +0 -3
- package/src/requests/exceptions/BadRequestException.ts +0 -3
- package/src/requests/exceptions/ConflictException.ts +0 -3
- package/src/requests/exceptions/ForbiddenException.ts +0 -3
- package/src/requests/exceptions/GatewayTimeoutException.ts +0 -3
- package/src/requests/exceptions/GoneException.ts +0 -3
- package/src/requests/exceptions/InvalidJsonException.ts +0 -15
- package/src/requests/exceptions/LockedException.ts +0 -3
- package/src/requests/exceptions/MethodNotAllowedException.ts +0 -3
- package/src/requests/exceptions/NotFoundException.ts +0 -3
- package/src/requests/exceptions/NotImplementedException.ts +0 -3
- package/src/requests/exceptions/PageExpiredException.ts +0 -3
- package/src/requests/exceptions/PayloadTooLargeException.ts +0 -3
- package/src/requests/exceptions/PreconditionFailedException.ts +0 -3
- package/src/requests/exceptions/RequestTimeoutException.ts +0 -3
- package/src/requests/exceptions/ResponseBodyException.ts +0 -15
- package/src/requests/exceptions/ResponseException.ts +0 -11
- package/src/requests/exceptions/ServerErrorException.ts +0 -3
- package/src/requests/exceptions/ServiceUnavailableException.ts +0 -3
- package/src/requests/exceptions/StaleResponseException.ts +0 -13
- package/src/requests/exceptions/TooManyRequestsException.ts +0 -3
- package/src/requests/exceptions/UnauthorizedException.ts +0 -3
- package/src/requests/exceptions/UnsupportedMediaTypeException.ts +0 -3
- package/src/requests/exceptions/ValidationException.ts +0 -3
- package/src/requests/exceptions/index.ts +0 -51
- package/src/requests/factories/FormDataFactory.ts +0 -17
- package/src/requests/factories/JsonBodyFactory.ts +0 -9
- package/src/requests/index.ts +0 -61
- package/src/requests/responses/BaseResponse.ts +0 -41
- package/src/requests/responses/BlobResponse.ts +0 -19
- package/src/requests/responses/JsonResponse.ts +0 -15
- package/src/requests/responses/PlainTextResponse.ts +0 -15
- package/src/requests/types/RequestUploadProgress.ts +0 -6
- package/src/support/DeferredPromise.ts +0 -67
- package/src/support/helpers.ts +0 -78
- package/src/vue/composables/useConfirmDialog.ts +0 -63
- package/src/vue/composables/useGlobalCheckbox.ts +0 -145
- package/src/vue/composables/useIsEmpty.ts +0 -34
- package/src/vue/composables/useIsOpen.ts +0 -37
- package/src/vue/composables/useIsOpenFromVar.ts +0 -61
- package/src/vue/composables/useModelWrapper.ts +0 -27
- package/src/vue/composables/useOnOpen.ts +0 -34
- package/src/vue/contracts/ModelValueProps.ts +0 -3
- package/src/vue/forms/BaseForm.ts +0 -1192
- package/src/vue/forms/PropertyAwareArray.ts +0 -81
- package/src/vue/forms/types/PersistedForm.ts +0 -6
- package/src/vue/forms/validation/ValidationMode.enum.ts +0 -14
- package/src/vue/forms/validation/index.ts +0 -15
- package/src/vue/forms/validation/rules/BaseRule.ts +0 -7
- package/src/vue/forms/validation/rules/ConfirmedRule.ts +0 -39
- package/src/vue/forms/validation/rules/EmailRule.ts +0 -23
- package/src/vue/forms/validation/rules/JsonRule.ts +0 -28
- package/src/vue/forms/validation/rules/MinRule.ts +0 -61
- package/src/vue/forms/validation/rules/RequiredRule.ts +0 -19
- package/src/vue/forms/validation/rules/UrlRule.ts +0 -24
- package/src/vue/forms/validation/types/ValidationRules.ts +0 -15
- package/src/vue/index.ts +0 -14
- package/src/vue/requests/factories/VueRequestLoaderFactory.ts +0 -10
- package/src/vue/requests/loaders/VueRequestBatchLoader.ts +0 -35
- package/src/vue/requests/loaders/VueRequestLoader.ts +0 -18
- package/src/vue/router/routeResourceBinding/RouteResourceBoundView.ts +0 -145
- package/src/vue/router/routeResourceBinding/RouteResourceRequestResolver.ts +0 -11
- package/src/vue/router/routeResourceBinding/defineRoute.ts +0 -59
- package/src/vue/router/routeResourceBinding/index.ts +0 -11
- package/src/vue/router/routeResourceBinding/installRouteInjection.ts +0 -164
- package/src/vue/router/routeResourceBinding/types.ts +0 -53
- package/src/vue/router/routeResourceBinding/useRouteResource.ts +0 -24
- package/src/vue/state/State.ts +0 -380
- package/src/vue/state/index.ts +0 -3
- package/tests/service/bulkRequests/BulkRequestSender.test.ts +0 -76
- package/tests/service/bulkRequests/BulkRequestWrapper.test.ts +0 -51
- package/tests/service/helpers/mergeDeep.test.ts +0 -53
- package/tests/service/laravel/pagination/dataDrivers/RequestDriver.test.ts +0 -84
- package/tests/service/laravel/requests/JsonBaseRequest.test.ts +0 -43
- package/tests/service/laravel/requests/PaginationJsonBaseRequest.test.ts +0 -58
- package/tests/service/laravel/requests/responses/JsonResponse.test.ts +0 -59
- package/tests/service/laravel/requests/responses/PaginationResponse.test.ts +0 -127
- package/tests/service/pagination/BasePaginator.test.ts +0 -100
- package/tests/service/pagination/InfiniteScroller.test.ts +0 -101
- package/tests/service/pagination/PageAwarePaginator.test.ts +0 -133
- package/tests/service/pagination/StatePaginator.test.ts +0 -76
- package/tests/service/pagination/VueViewDrivers.test.ts +0 -46
- package/tests/service/pagination/dtos/PaginationDataDto.test.ts +0 -35
- package/tests/service/pagination/dtos/StatePaginationDataDto.test.ts +0 -14
- package/tests/service/pagination/factories/VuePaginationDriverFactory.test.ts +0 -32
- package/tests/service/pagination/frontendDrivers/VuePaginationDriver.test.ts +0 -66
- package/tests/service/persistenceDrivers/PersistenceDrivers.test.ts +0 -56
- package/tests/service/requests/BaseRequest.test.ts +0 -250
- package/tests/service/requests/BodiesAndFactories.test.ts +0 -28
- package/tests/service/requests/Enums.test.ts +0 -20
- package/tests/service/requests/ErrorHandler.test.ts +0 -188
- package/tests/service/requests/FormDataBody.test.ts +0 -63
- package/tests/service/requests/RequestErrorRouter.test.ts +0 -44
- package/tests/service/requests/Responses.test.ts +0 -83
- package/tests/service/requests/exceptions/Exceptions.test.ts +0 -43
- package/tests/service/requests/fetch/FetchDriver.test.ts +0 -76
- package/tests/service/requests/fetch/FetchResponse.test.ts +0 -21
- package/tests/service/requests/xhr/XMLHttpRequestDriver.test.ts +0 -178
- package/tests/service/support/DeferredPromise.test.ts +0 -40
- package/tests/service/support/helpers.test.ts +0 -37
- package/tests/vue/composables/useConfirmDialog.test.ts +0 -77
- package/tests/vue/composables/useGlobalCheckbox.test.ts +0 -126
- package/tests/vue/composables/useIsEmpty.test.ts +0 -18
- package/tests/vue/composables/useIsOpen.test.ts +0 -25
- package/tests/vue/composables/useIsOpenFromVar.test.ts +0 -22
- package/tests/vue/composables/useModelWrapper.test.ts +0 -30
- package/tests/vue/composables/useOnOpen.test.ts +0 -26
- package/tests/vue/forms/BaseForm.behavior.test.ts +0 -98
- package/tests/vue/forms/BaseForm.transformers.test.ts +0 -109
- package/tests/vue/forms/PropertyAwareArray.test.ts +0 -30
- package/tests/vue/forms/validation/ValidationRules.test.ts +0 -79
- package/tests/vue/requests/VueRequestLoaders.test.ts +0 -48
- package/tests/vue/router/routeResourceBinding/RouteResourceBoundView.test.ts +0 -344
- package/tests/vue/router/routeResourceBinding/RouteResourceUtils.test.ts +0 -70
- package/tests/vue/router/routeResourceBinding/installRouteInjection.test.ts +0 -450
- package/tests/vue/state/State.test.ts +0 -151
- package/tsconfig.json +0 -114
- package/vite.config.ts +0 -34
- 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,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,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 }
|