swoop-common 1.0.43 → 2.0.1
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/api/additions/templateHierarchyResolver.d.ts +2 -0
- package/dist/api/additions/templateHierarchyResolver.js +101 -0
- package/dist/api/bundler.d.ts +1 -0
- package/dist/api/bundler.js +27 -0
- package/dist/api/generated/core/core/ApiError.d.ts +10 -0
- package/dist/api/generated/core/core/ApiError.js +11 -0
- package/dist/api/generated/core/core/ApiRequestOptions.d.ts +13 -0
- package/dist/api/generated/core/core/ApiRequestOptions.js +1 -0
- package/dist/api/generated/core/core/ApiResult.d.ts +7 -0
- package/dist/api/generated/core/core/ApiResult.js +1 -0
- package/dist/api/generated/core/core/CancelablePromise.d.ts +20 -0
- package/dist/api/generated/core/core/CancelablePromise.js +111 -0
- package/dist/api/generated/core/core/OpenAPI.d.ts +16 -0
- package/dist/api/generated/core/core/OpenAPI.js +11 -0
- package/dist/api/generated/core/core/request.d.ts +30 -0
- package/dist/api/generated/core/core/request.js +271 -0
- package/dist/api/generated/core/exports.d.ts +50 -0
- package/dist/api/generated/core/exports.js +5 -0
- package/dist/api/generated/core/index.d.ts +54 -0
- package/dist/api/generated/core/index.js +10 -0
- package/dist/api/generated/core/models/AssignedPassenger.d.ts +7 -0
- package/dist/api/generated/core/models/AssignedPassenger.js +1 -0
- package/dist/api/generated/core/models/AssignedTravellerGroup.d.ts +5 -0
- package/dist/api/generated/core/models/AssignedTravellerGroup.js +1 -0
- package/dist/api/generated/core/models/Assignments.d.ts +12 -0
- package/dist/api/generated/core/models/Assignments.js +1 -0
- package/dist/api/generated/core/models/BookingItem.d.ts +9 -0
- package/dist/api/generated/core/models/BookingItem.js +1 -0
- package/dist/api/generated/core/models/BookingItemResponse.d.ts +5 -0
- package/dist/api/generated/core/models/BookingItemResponse.js +1 -0
- package/dist/api/generated/core/models/BookingResponse.d.ts +19 -0
- package/dist/api/generated/core/models/BookingResponse.js +1 -0
- package/dist/api/generated/core/models/Bundle.d.ts +8 -0
- package/dist/api/generated/core/models/Bundle.js +1 -0
- package/dist/api/generated/core/models/BundleItem.d.ts +6 -0
- package/dist/api/generated/core/models/BundleItem.js +1 -0
- package/dist/api/generated/core/models/ComponentDetails.d.ts +5 -0
- package/dist/api/generated/core/models/ComponentDetails.js +1 -0
- package/dist/api/generated/core/models/ComponentInstance.d.ts +14 -0
- package/dist/api/generated/core/models/ComponentInstance.js +1 -0
- package/dist/api/generated/core/models/CurrencyItem.d.ts +11 -0
- package/dist/api/generated/core/models/CurrencyItem.js +1 -0
- package/dist/api/generated/core/models/CurrencyItemResponse.d.ts +5 -0
- package/dist/api/generated/core/models/CurrencyItemResponse.js +1 -0
- package/dist/api/generated/core/models/CurrencyResponse.d.ts +20 -0
- package/dist/api/generated/core/models/CurrencyResponse.js +1 -0
- package/dist/api/generated/core/models/DTOComponentCreate.d.ts +21 -0
- package/dist/api/generated/core/models/DTOComponentCreate.js +1 -0
- package/dist/api/generated/core/models/DTOComponentRead.d.ts +20 -0
- package/dist/api/generated/core/models/DTOComponentRead.js +1 -0
- package/dist/api/generated/core/models/DTOComponentUpdate.d.ts +20 -0
- package/dist/api/generated/core/models/DTOComponentUpdate.js +1 -0
- package/dist/api/generated/core/models/DTOItineraryCreate.d.ts +5 -0
- package/dist/api/generated/core/models/DTOItineraryCreate.js +1 -0
- package/dist/api/generated/core/models/DTOItineraryRead.d.ts +10 -0
- package/dist/api/generated/core/models/DTOItineraryRead.js +1 -0
- package/dist/api/generated/core/models/DTOItineraryUpdate.d.ts +4 -0
- package/dist/api/generated/core/models/DTOItineraryUpdate.js +1 -0
- package/dist/api/generated/core/models/DTORegionCreate.d.ts +6 -0
- package/dist/api/generated/core/models/DTORegionCreate.js +1 -0
- package/dist/api/generated/core/models/DTORegionRead.d.ts +9 -0
- package/dist/api/generated/core/models/DTORegionRead.js +1 -0
- package/dist/api/generated/core/models/DTOTemplateCreate.d.ts +10 -0
- package/dist/api/generated/core/models/DTOTemplateCreate.js +1 -0
- package/dist/api/generated/core/models/DTOTemplateRead.d.ts +12 -0
- package/dist/api/generated/core/models/DTOTemplateRead.js +1 -0
- package/dist/api/generated/core/models/DTOTemplateUpdate.d.ts +6 -0
- package/dist/api/generated/core/models/DTOTemplateUpdate.js +1 -0
- package/dist/api/generated/core/models/Field.d.ts +4 -0
- package/dist/api/generated/core/models/Field.js +1 -0
- package/dist/api/generated/core/models/IBEvent.d.ts +7 -0
- package/dist/api/generated/core/models/IBEvent.js +1 -0
- package/dist/api/generated/core/models/Limit.d.ts +4 -0
- package/dist/api/generated/core/models/Limit.js +1 -0
- package/dist/api/generated/core/models/Member.d.ts +12 -0
- package/dist/api/generated/core/models/Member.js +1 -0
- package/dist/api/generated/core/models/Metadata.d.ts +7 -0
- package/dist/api/generated/core/models/Metadata.js +1 -0
- package/dist/api/generated/core/models/Page.d.ts +4 -0
- package/dist/api/generated/core/models/Page.js +1 -0
- package/dist/api/generated/core/models/Pagination.d.ts +5 -0
- package/dist/api/generated/core/models/Pagination.js +1 -0
- package/dist/api/generated/core/models/Partner.d.ts +10 -0
- package/dist/api/generated/core/models/Partner.js +1 -0
- package/dist/api/generated/core/models/PartnerResponse.d.ts +28 -0
- package/dist/api/generated/core/models/PartnerResponse.js +1 -0
- package/dist/api/generated/core/models/Region.d.ts +9 -0
- package/dist/api/generated/core/models/Region.js +1 -0
- package/dist/api/generated/core/models/SwooperResponse.d.ts +7 -0
- package/dist/api/generated/core/models/SwooperResponse.js +1 -0
- package/dist/api/generated/core/models/Traveller.d.ts +37 -0
- package/dist/api/generated/core/models/Traveller.js +1 -0
- package/dist/api/generated/core/models/TravellerResponse.d.ts +87 -0
- package/dist/api/generated/core/models/TravellerResponse.js +1 -0
- package/dist/api/generated/core/models/UserComponentInstanceField.d.ts +5 -0
- package/dist/api/generated/core/models/UserComponentInstanceField.js +1 -0
- package/dist/api/generated/core/models/ValidationSchemas.d.ts +5 -0
- package/dist/api/generated/core/models/ValidationSchemas.js +1 -0
- package/dist/api/generated/core/models/componentId.d.ts +4 -0
- package/dist/api/generated/core/models/componentId.js +1 -0
- package/dist/api/generated/core/models/enquiryId.d.ts +4 -0
- package/dist/api/generated/core/models/enquiryId.js +1 -0
- package/dist/api/generated/core/models/id.d.ts +4 -0
- package/dist/api/generated/core/models/id.js +1 -0
- package/dist/api/generated/core/models/itemsPerPage.d.ts +4 -0
- package/dist/api/generated/core/models/itemsPerPage.js +1 -0
- package/dist/api/generated/core/models/itineraryId.d.ts +4 -0
- package/dist/api/generated/core/models/itineraryId.js +1 -0
- package/dist/api/generated/core/models/regionParam.d.ts +8 -0
- package/dist/api/generated/core/models/regionParam.js +13 -0
- package/dist/api/generated/core/models/regionRequired.d.ts +8 -0
- package/dist/api/generated/core/models/regionRequired.js +13 -0
- package/dist/api/generated/core/models/search.d.ts +4 -0
- package/dist/api/generated/core/models/search.js +1 -0
- package/dist/api/generated/core/models/sortParam.d.ts +4 -0
- package/dist/api/generated/core/models/sortParam.js +1 -0
- package/dist/api/generated/core/models/templateId.d.ts +4 -0
- package/dist/api/generated/core/models/templateId.js +1 -0
- package/dist/api/generated/core/services/CoreService.d.ts +123 -0
- package/dist/api/generated/core/services/CoreService.js +223 -0
- package/dist/api/generated/itinerary/core/ApiError.d.ts +10 -0
- package/dist/api/generated/itinerary/core/ApiError.js +11 -0
- package/dist/api/generated/itinerary/core/ApiRequestOptions.d.ts +13 -0
- package/dist/api/generated/itinerary/core/ApiRequestOptions.js +1 -0
- package/dist/api/generated/itinerary/core/ApiResult.d.ts +7 -0
- package/dist/api/generated/itinerary/core/ApiResult.js +1 -0
- package/dist/api/generated/itinerary/core/CancelablePromise.d.ts +20 -0
- package/dist/api/generated/itinerary/core/CancelablePromise.js +111 -0
- package/dist/api/generated/itinerary/core/OpenAPI.d.ts +16 -0
- package/dist/api/generated/itinerary/core/OpenAPI.js +11 -0
- package/dist/api/generated/itinerary/core/request.d.ts +30 -0
- package/dist/api/generated/itinerary/core/request.js +271 -0
- package/dist/api/generated/itinerary/exports.d.ts +0 -0
- package/dist/api/generated/itinerary/exports.js +2 -0
- package/dist/api/generated/itinerary/index.d.ts +54 -0
- package/dist/api/generated/itinerary/index.js +10 -0
- package/dist/api/generated/itinerary/models/AssignedPassenger.d.ts +7 -0
- package/dist/api/generated/itinerary/models/AssignedPassenger.js +1 -0
- package/dist/api/generated/itinerary/models/AssignedTravellerGroup.d.ts +5 -0
- package/dist/api/generated/itinerary/models/AssignedTravellerGroup.js +1 -0
- package/dist/api/generated/itinerary/models/Assignments.d.ts +12 -0
- package/dist/api/generated/itinerary/models/Assignments.js +1 -0
- package/dist/api/generated/itinerary/models/BookingItem.d.ts +9 -0
- package/dist/api/generated/itinerary/models/BookingItem.js +1 -0
- package/dist/api/generated/itinerary/models/BookingItemResponse.d.ts +5 -0
- package/dist/api/generated/itinerary/models/BookingItemResponse.js +1 -0
- package/dist/api/generated/itinerary/models/BookingResponse.d.ts +19 -0
- package/dist/api/generated/itinerary/models/BookingResponse.js +1 -0
- package/dist/api/generated/itinerary/models/Bundle.d.ts +8 -0
- package/dist/api/generated/itinerary/models/Bundle.js +1 -0
- package/dist/api/generated/itinerary/models/BundleItem.d.ts +6 -0
- package/dist/api/generated/itinerary/models/BundleItem.js +1 -0
- package/dist/api/generated/itinerary/models/ComponentDetails.d.ts +5 -0
- package/dist/api/generated/itinerary/models/ComponentDetails.js +1 -0
- package/dist/api/generated/itinerary/models/ComponentInstance.d.ts +14 -0
- package/dist/api/generated/itinerary/models/ComponentInstance.js +1 -0
- package/dist/api/generated/itinerary/models/CurrencyItem.d.ts +11 -0
- package/dist/api/generated/itinerary/models/CurrencyItem.js +1 -0
- package/dist/api/generated/itinerary/models/CurrencyItemResponse.d.ts +5 -0
- package/dist/api/generated/itinerary/models/CurrencyItemResponse.js +1 -0
- package/dist/api/generated/itinerary/models/CurrencyResponse.d.ts +20 -0
- package/dist/api/generated/itinerary/models/CurrencyResponse.js +1 -0
- package/dist/api/generated/itinerary/models/DTOComponentCreate.d.ts +21 -0
- package/dist/api/generated/itinerary/models/DTOComponentCreate.js +1 -0
- package/dist/api/generated/itinerary/models/DTOComponentRead.d.ts +20 -0
- package/dist/api/generated/itinerary/models/DTOComponentRead.js +1 -0
- package/dist/api/generated/itinerary/models/DTOComponentUpdate.d.ts +20 -0
- package/dist/api/generated/itinerary/models/DTOComponentUpdate.js +1 -0
- package/dist/api/generated/itinerary/models/DTOItineraryCreate.d.ts +5 -0
- package/dist/api/generated/itinerary/models/DTOItineraryCreate.js +1 -0
- package/dist/api/generated/itinerary/models/DTOItineraryRead.d.ts +10 -0
- package/dist/api/generated/itinerary/models/DTOItineraryRead.js +1 -0
- package/dist/api/generated/itinerary/models/DTOItineraryUpdate.d.ts +4 -0
- package/dist/api/generated/itinerary/models/DTOItineraryUpdate.js +1 -0
- package/dist/api/generated/itinerary/models/DTORegionCreate.d.ts +6 -0
- package/dist/api/generated/itinerary/models/DTORegionCreate.js +1 -0
- package/dist/api/generated/itinerary/models/DTORegionRead.d.ts +9 -0
- package/dist/api/generated/itinerary/models/DTORegionRead.js +1 -0
- package/dist/api/generated/itinerary/models/DTOTemplateCreate.d.ts +10 -0
- package/dist/api/generated/itinerary/models/DTOTemplateCreate.js +1 -0
- package/dist/api/generated/itinerary/models/DTOTemplateRead.d.ts +12 -0
- package/dist/api/generated/itinerary/models/DTOTemplateRead.js +1 -0
- package/dist/api/generated/itinerary/models/DTOTemplateUpdate.d.ts +6 -0
- package/dist/api/generated/itinerary/models/DTOTemplateUpdate.js +1 -0
- package/dist/api/generated/itinerary/models/Field.d.ts +4 -0
- package/dist/api/generated/itinerary/models/Field.js +1 -0
- package/dist/api/generated/itinerary/models/IBEvent.d.ts +7 -0
- package/dist/api/generated/itinerary/models/IBEvent.js +1 -0
- package/dist/api/generated/itinerary/models/Limit.d.ts +4 -0
- package/dist/api/generated/itinerary/models/Limit.js +1 -0
- package/dist/api/generated/itinerary/models/Member.d.ts +12 -0
- package/dist/api/generated/itinerary/models/Member.js +1 -0
- package/dist/api/generated/itinerary/models/Metadata.d.ts +7 -0
- package/dist/api/generated/itinerary/models/Metadata.js +1 -0
- package/dist/api/generated/itinerary/models/Page.d.ts +4 -0
- package/dist/api/generated/itinerary/models/Page.js +1 -0
- package/dist/api/generated/itinerary/models/Pagination.d.ts +5 -0
- package/dist/api/generated/itinerary/models/Pagination.js +1 -0
- package/dist/api/generated/itinerary/models/Partner.d.ts +10 -0
- package/dist/api/generated/itinerary/models/Partner.js +1 -0
- package/dist/api/generated/itinerary/models/PartnerResponse.d.ts +28 -0
- package/dist/api/generated/itinerary/models/PartnerResponse.js +1 -0
- package/dist/api/generated/itinerary/models/Region.d.ts +9 -0
- package/dist/api/generated/itinerary/models/Region.js +1 -0
- package/dist/api/generated/itinerary/models/SwooperResponse.d.ts +7 -0
- package/dist/api/generated/itinerary/models/SwooperResponse.js +1 -0
- package/dist/api/generated/itinerary/models/Traveller.d.ts +37 -0
- package/dist/api/generated/itinerary/models/Traveller.js +1 -0
- package/dist/api/generated/itinerary/models/TravellerResponse.d.ts +87 -0
- package/dist/api/generated/itinerary/models/TravellerResponse.js +1 -0
- package/dist/api/generated/itinerary/models/UserComponentInstanceField.d.ts +5 -0
- package/dist/api/generated/itinerary/models/UserComponentInstanceField.js +1 -0
- package/dist/api/generated/itinerary/models/ValidationSchemas.d.ts +5 -0
- package/dist/api/generated/itinerary/models/ValidationSchemas.js +1 -0
- package/dist/api/generated/itinerary/models/componentId.d.ts +4 -0
- package/dist/api/generated/itinerary/models/componentId.js +1 -0
- package/dist/api/generated/itinerary/models/enquiryId.d.ts +4 -0
- package/dist/api/generated/itinerary/models/enquiryId.js +1 -0
- package/dist/api/generated/itinerary/models/id.d.ts +4 -0
- package/dist/api/generated/itinerary/models/id.js +1 -0
- package/dist/api/generated/itinerary/models/itemsPerPage.d.ts +4 -0
- package/dist/api/generated/itinerary/models/itemsPerPage.js +1 -0
- package/dist/api/generated/itinerary/models/itineraryId.d.ts +4 -0
- package/dist/api/generated/itinerary/models/itineraryId.js +1 -0
- package/dist/api/generated/itinerary/models/regionParam.d.ts +8 -0
- package/dist/api/generated/itinerary/models/regionParam.js +13 -0
- package/dist/api/generated/itinerary/models/regionRequired.d.ts +8 -0
- package/dist/api/generated/itinerary/models/regionRequired.js +13 -0
- package/dist/api/generated/itinerary/models/search.d.ts +4 -0
- package/dist/api/generated/itinerary/models/search.js +1 -0
- package/dist/api/generated/itinerary/models/sortParam.d.ts +4 -0
- package/dist/api/generated/itinerary/models/sortParam.js +1 -0
- package/dist/api/generated/itinerary/models/templateId.d.ts +4 -0
- package/dist/api/generated/itinerary/models/templateId.js +1 -0
- package/dist/api/generated/itinerary/services/ItineraryService.d.ts +85 -0
- package/dist/api/generated/itinerary/services/ItineraryService.js +143 -0
- package/dist/api/generated/swoop/core/ApiError.d.ts +10 -0
- package/dist/api/generated/swoop/core/ApiError.js +11 -0
- package/dist/api/generated/swoop/core/ApiRequestOptions.d.ts +13 -0
- package/dist/api/generated/swoop/core/ApiRequestOptions.js +1 -0
- package/dist/api/generated/swoop/core/ApiResult.d.ts +7 -0
- package/dist/api/generated/swoop/core/ApiResult.js +1 -0
- package/dist/api/generated/swoop/core/CancelablePromise.d.ts +20 -0
- package/dist/api/generated/swoop/core/CancelablePromise.js +111 -0
- package/dist/api/generated/swoop/core/OpenAPI.d.ts +16 -0
- package/dist/api/generated/swoop/core/OpenAPI.js +11 -0
- package/dist/api/generated/swoop/core/request.d.ts +30 -0
- package/dist/api/generated/swoop/core/request.js +292 -0
- package/dist/api/generated/swoop/exports.d.ts +48 -0
- package/dist/api/generated/swoop/exports.js +2 -0
- package/dist/api/generated/swoop/index.d.ts +53 -0
- package/dist/api/generated/swoop/index.js +8 -0
- package/dist/api/generated/swoop/models/Address.d.ts +9 -0
- package/dist/api/generated/swoop/models/Address.js +1 -0
- package/dist/api/generated/swoop/models/Address_jsonld.d.ts +12 -0
- package/dist/api/generated/swoop/models/Address_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/BookingItemType.d.ts +7 -0
- package/dist/api/generated/swoop/models/BookingItemType.js +1 -0
- package/dist/api/generated/swoop/models/BookingItemType_jsonld.d.ts +9 -0
- package/dist/api/generated/swoop/models/BookingItemType_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Category.d.ts +8 -0
- package/dist/api/generated/swoop/models/Category.js +1 -0
- package/dist/api/generated/swoop/models/Category_jsonld.d.ts +10 -0
- package/dist/api/generated/swoop/models/Category_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Country.d.ts +5 -0
- package/dist/api/generated/swoop/models/Country.js +1 -0
- package/dist/api/generated/swoop/models/Country_jsonld.d.ts +8 -0
- package/dist/api/generated/swoop/models/Country_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Currency.d.ts +9 -0
- package/dist/api/generated/swoop/models/Currency.js +1 -0
- package/dist/api/generated/swoop/models/Currency_jsonld.d.ts +11 -0
- package/dist/api/generated/swoop/models/Currency_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Customer.d.ts +28 -0
- package/dist/api/generated/swoop/models/Customer.js +1 -0
- package/dist/api/generated/swoop/models/CustomerLookup.d.ts +8 -0
- package/dist/api/generated/swoop/models/CustomerLookup.js +1 -0
- package/dist/api/generated/swoop/models/CustomerLookupCXPerson.d.ts +4 -0
- package/dist/api/generated/swoop/models/CustomerLookupCXPerson.js +1 -0
- package/dist/api/generated/swoop/models/CustomerLookupCXPerson_jsonld.d.ts +7 -0
- package/dist/api/generated/swoop/models/CustomerLookupCXPerson_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/CustomerLookupEnquiry.d.ts +10 -0
- package/dist/api/generated/swoop/models/CustomerLookupEnquiry.js +1 -0
- package/dist/api/generated/swoop/models/CustomerLookupEnquiry_jsonld.d.ts +13 -0
- package/dist/api/generated/swoop/models/CustomerLookupEnquiry_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/CustomerLookupSalesPerson.d.ts +4 -0
- package/dist/api/generated/swoop/models/CustomerLookupSalesPerson.js +1 -0
- package/dist/api/generated/swoop/models/CustomerLookupSalesPerson_jsonld.d.ts +7 -0
- package/dist/api/generated/swoop/models/CustomerLookupSalesPerson_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/CustomerLookup_jsonld.d.ts +11 -0
- package/dist/api/generated/swoop/models/CustomerLookup_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Customer_jsonld.d.ts +31 -0
- package/dist/api/generated/swoop/models/Customer_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/EmergencyDetails.d.ts +6 -0
- package/dist/api/generated/swoop/models/EmergencyDetails.js +1 -0
- package/dist/api/generated/swoop/models/EmergencyDetails_jsonld.d.ts +9 -0
- package/dist/api/generated/swoop/models/EmergencyDetails_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Enquiry.d.ts +11 -0
- package/dist/api/generated/swoop/models/Enquiry.js +1 -0
- package/dist/api/generated/swoop/models/EnquiryPerson.d.ts +5 -0
- package/dist/api/generated/swoop/models/EnquiryPerson.js +1 -0
- package/dist/api/generated/swoop/models/EnquiryPerson_jsonld.d.ts +8 -0
- package/dist/api/generated/swoop/models/EnquiryPerson_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/EnquiryStatus.d.ts +8 -0
- package/dist/api/generated/swoop/models/EnquiryStatus.js +1 -0
- package/dist/api/generated/swoop/models/EnquiryStatus_jsonld.d.ts +11 -0
- package/dist/api/generated/swoop/models/EnquiryStatus_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Enquiry_jsonld.d.ts +14 -0
- package/dist/api/generated/swoop/models/Enquiry_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Partner.d.ts +12 -0
- package/dist/api/generated/swoop/models/Partner.js +1 -0
- package/dist/api/generated/swoop/models/Partner_jsonld.d.ts +15 -0
- package/dist/api/generated/swoop/models/Partner_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Passport.d.ts +7 -0
- package/dist/api/generated/swoop/models/Passport.js +1 -0
- package/dist/api/generated/swoop/models/Passport_jsonld.d.ts +10 -0
- package/dist/api/generated/swoop/models/Passport_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Payment.d.ts +20 -0
- package/dist/api/generated/swoop/models/Payment.js +1 -0
- package/dist/api/generated/swoop/models/PaymentType.d.ts +5 -0
- package/dist/api/generated/swoop/models/PaymentType.js +1 -0
- package/dist/api/generated/swoop/models/PaymentType_jsonld.d.ts +8 -0
- package/dist/api/generated/swoop/models/PaymentType_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Payment_jsonld.d.ts +22 -0
- package/dist/api/generated/swoop/models/Payment_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Person.d.ts +12 -0
- package/dist/api/generated/swoop/models/Person.js +1 -0
- package/dist/api/generated/swoop/models/Person_jsonld.d.ts +15 -0
- package/dist/api/generated/swoop/models/Person_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/PublishState.d.ts +4 -0
- package/dist/api/generated/swoop/models/PublishState.js +1 -0
- package/dist/api/generated/swoop/models/PublishState_jsonld.d.ts +7 -0
- package/dist/api/generated/swoop/models/PublishState_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Status.d.ts +5 -0
- package/dist/api/generated/swoop/models/Status.js +1 -0
- package/dist/api/generated/swoop/models/Status_jsonld.d.ts +8 -0
- package/dist/api/generated/swoop/models/Status_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Traveller.d.ts +9 -0
- package/dist/api/generated/swoop/models/Traveller.js +1 -0
- package/dist/api/generated/swoop/models/TravellerGroup.d.ts +9 -0
- package/dist/api/generated/swoop/models/TravellerGroup.js +1 -0
- package/dist/api/generated/swoop/models/TravellerGroup_jsonld.d.ts +12 -0
- package/dist/api/generated/swoop/models/TravellerGroup_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Traveller_jsonld.d.ts +12 -0
- package/dist/api/generated/swoop/models/Traveller_jsonld.js +1 -0
- package/dist/api/generated/swoop/models/Trip.d.ts +8 -0
- package/dist/api/generated/swoop/models/Trip.js +1 -0
- package/dist/api/generated/swoop/models/Trip_jsonld.d.ts +11 -0
- package/dist/api/generated/swoop/models/Trip_jsonld.js +1 -0
- package/dist/api/generated/swoop/services/SwoopService.d.ts +387 -0
- package/dist/api/generated/swoop/services/SwoopService.js +329 -0
- package/dist/api/index.d.ts +3 -0
- package/dist/api/index.js +5 -0
- package/dist/api/init.d.ts +18 -0
- package/dist/api/init.js +29 -0
- package/dist/rendering/components/StyledFormView.d.ts +39 -0
- package/dist/rendering/components/StyledFormView.js +13 -0
- package/dist/rendering/hooks/errors.d.ts +6 -0
- package/dist/rendering/hooks/errors.js +17 -0
- package/dist/rendering/index.d.ts +11 -0
- package/dist/rendering/index.js +11 -0
- package/dist/rendering/prebuild/generated/import_generated.d.ts +13 -0
- package/dist/rendering/prebuild/generated/import_generated.js +16 -0
- package/dist/rendering/prebuild/import.d.ts +1 -0
- package/dist/rendering/prebuild/import.js +32 -0
- package/dist/rendering/registry/components.d.ts +13 -0
- package/dist/rendering/registry/components.js +49 -0
- package/dist/rendering/registry/fields.d.ts +10 -0
- package/dist/rendering/registry/fields.js +19 -0
- package/dist/rendering/registry/types.d.ts +5 -0
- package/dist/rendering/registry/types.js +5 -0
- package/dist/rendering/renderers/Address.d.ts +1 -0
- package/dist/rendering/renderers/Address.js +67 -0
- package/dist/rendering/renderers/ComponentPicker.d.ts +20 -0
- package/dist/rendering/renderers/ComponentPicker.js +67 -0
- package/dist/rendering/renderers/Debug.d.ts +1 -0
- package/dist/rendering/renderers/Debug.js +13 -0
- package/dist/rendering/renderers/Example.d.ts +1 -0
- package/dist/rendering/renderers/Example.js +31 -0
- package/dist/rendering/renderers/Image/ImageForm.d.ts +10 -0
- package/dist/rendering/renderers/Image/ImageForm.js +78 -0
- package/dist/rendering/renderers/Image/ImagePresentation.d.ts +6 -0
- package/dist/rendering/renderers/Image/ImagePresentation.js +62 -0
- package/dist/rendering/renderers/StagedText.d.ts +1 -0
- package/dist/rendering/renderers/StagedText.js +20 -0
- package/dist/rendering/renderers/TemplatePicker.d.ts +1 -0
- package/dist/rendering/renderers/TemplatePicker.js +47 -0
- package/dist/rendering/renderers/textfield/MultilineForm.d.ts +1 -0
- package/dist/rendering/renderers/textfield/MultilineForm.js +21 -0
- package/dist/rendering/renderers/textfield/MultilinePresentation.d.ts +1 -0
- package/dist/rendering/renderers/textfield/MultilinePresentation.js +13 -0
- package/dist/rendering/schema/formBuilders/formBuilderJsonSchema.d.ts +11 -0
- package/dist/rendering/schema/formBuilders/formBuilderJsonSchema.js +178 -0
- package/dist/rendering/schema/formBuilders/formBuilderUiSchema.d.ts +2 -0
- package/dist/rendering/schema/formBuilders/formBuilderUiSchema.js +208 -0
- package/dist/rendering/schema/formSchemaTypes.d.ts +15 -0
- package/dist/rendering/schema/formSchemaTypes.js +6 -0
- package/dist/rendering/schema/generate/formSchemaGenerate.d.ts +3 -0
- package/dist/rendering/schema/generate/formSchemaGenerate.js +19 -0
- package/dist/rendering/schema/generate/jsonSchemaGenerate.d.ts +4 -0
- package/dist/rendering/schema/generate/jsonSchemaGenerate.js +61 -0
- package/dist/rendering/schema/generate/uiSchemaGenerate.d.ts +3 -0
- package/dist/rendering/schema/generate/uiSchemaGenerate.js +35 -0
- package/dist/rendering/schema/schema.d.ts +48 -0
- package/dist/rendering/schema/schema.js +1 -0
- package/dist/rendering/schema/template/constraint.d.ts +17 -0
- package/dist/rendering/schema/template/constraint.js +119 -0
- package/dist/rendering/schema/template/type.d.ts +94 -0
- package/dist/rendering/schema/template/type.js +1 -0
- package/dist/rendering/schema/util.d.ts +1 -0
- package/dist/rendering/schema/util.js +22 -0
- package/dist/rendering/type_registration/register.d.ts +1 -0
- package/dist/rendering/type_registration/register.js +139 -0
- package/dist/rendering/types/address.d.ts +10 -0
- package/dist/rendering/types/address.js +1 -0
- package/dist/rendering/types/jsonSchema.d.ts +4 -0
- package/dist/rendering/types/jsonSchema.js +1 -0
- package/dist/rendering/types/util.d.ts +1 -0
- package/dist/rendering/types/util.js +1 -0
- package/dist/rendering/util/string.d.ts +1 -0
- package/dist/rendering/util/string.js +1 -0
- package/dist/rendering/util/xtype.d.ts +3 -0
- package/dist/rendering/util/xtype.js +18 -0
- package/dist/test.d.ts +1 -0
- package/dist/test.js +26 -0
- package/package.json +2 -2
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as Core from "./generated/core/index";
|
|
2
|
+
import * as Itinerary from "./generated/itinerary/index";
|
|
3
|
+
import * as Swoop from "./generated/swoop/index";
|
|
4
|
+
export declare const services: {
|
|
5
|
+
SwoopService: Swoop.SwoopService;
|
|
6
|
+
CoreService: Core.CoreService;
|
|
7
|
+
ItineraryService: Itinerary.ItineraryService;
|
|
8
|
+
};
|
|
9
|
+
export declare const init: (opts: {
|
|
10
|
+
itineraryServiceUrl: string;
|
|
11
|
+
coreServiceUrl: string;
|
|
12
|
+
swoopServiceForwardUrl: string;
|
|
13
|
+
}) => {
|
|
14
|
+
SwoopService: Swoop.SwoopService;
|
|
15
|
+
CoreService: Core.CoreService;
|
|
16
|
+
ItineraryService: Itinerary.ItineraryService;
|
|
17
|
+
};
|
|
18
|
+
export declare const initialisedCheck: () => void;
|
package/dist/api/init.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as Core from "./generated/core/index";
|
|
2
|
+
import * as Itinerary from "./generated/itinerary/index";
|
|
3
|
+
import * as Swoop from "./generated/swoop/index";
|
|
4
|
+
let initalised = false;
|
|
5
|
+
export const services = {
|
|
6
|
+
SwoopService: new Swoop.SwoopService(),
|
|
7
|
+
CoreService: new Core.CoreService(),
|
|
8
|
+
ItineraryService: new Itinerary.ItineraryService(),
|
|
9
|
+
};
|
|
10
|
+
export const init = (opts) => {
|
|
11
|
+
// Keeps it consitent
|
|
12
|
+
if (opts.coreServiceUrl.endsWith("/"))
|
|
13
|
+
opts.coreServiceUrl = opts.coreServiceUrl.slice(0, -1);
|
|
14
|
+
if (opts.itineraryServiceUrl.endsWith("/"))
|
|
15
|
+
opts.itineraryServiceUrl = opts.itineraryServiceUrl.slice(0, -1);
|
|
16
|
+
if (opts.swoopServiceForwardUrl.endsWith("/"))
|
|
17
|
+
opts.swoopServiceForwardUrl = opts.swoopServiceForwardUrl.slice(0, -1);
|
|
18
|
+
// Update
|
|
19
|
+
Core.OpenAPI.BASE = opts.coreServiceUrl;
|
|
20
|
+
Itinerary.OpenAPI.BASE = opts.itineraryServiceUrl;
|
|
21
|
+
Swoop.OpenAPI.BASE = opts.swoopServiceForwardUrl;
|
|
22
|
+
initalised = true;
|
|
23
|
+
return services;
|
|
24
|
+
};
|
|
25
|
+
export const initialisedCheck = () => {
|
|
26
|
+
if (initalised)
|
|
27
|
+
return;
|
|
28
|
+
console.warn("swoop-common has been used without being initialised. The library will continue to work in some cases, but requests will fail. Use init() to initialise the library.");
|
|
29
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ComponentPool } from '../registry/types';
|
|
3
|
+
import { MasterSchema, Stage } from '../schema/formSchemaTypes';
|
|
4
|
+
interface Props {
|
|
5
|
+
/**
|
|
6
|
+
* This should only be used for the initial values, as this is not truly a controlled component.
|
|
7
|
+
* Frequent updates of this can cause significant perfomance dips.
|
|
8
|
+
*/
|
|
9
|
+
initialData: any;
|
|
10
|
+
/**
|
|
11
|
+
* The master schema for this template
|
|
12
|
+
*/
|
|
13
|
+
schema: MasterSchema;
|
|
14
|
+
/**
|
|
15
|
+
* This should not be fed back into the form.
|
|
16
|
+
* Instead store it as a ref.
|
|
17
|
+
*/
|
|
18
|
+
onChange?: (value: any) => void;
|
|
19
|
+
/**
|
|
20
|
+
* Dictates which mode the form will display in.
|
|
21
|
+
* Each mode has a different pool of renderers.
|
|
22
|
+
*/
|
|
23
|
+
pool: ComponentPool;
|
|
24
|
+
/**
|
|
25
|
+
* Whether this form should be readonly.
|
|
26
|
+
* Has little to no effect if using the presentation pool of components
|
|
27
|
+
*/
|
|
28
|
+
readonly?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* The stage at which to render this template
|
|
31
|
+
*/
|
|
32
|
+
stage: Stage;
|
|
33
|
+
/**
|
|
34
|
+
* Should readonly fields be hidden
|
|
35
|
+
*/
|
|
36
|
+
hideReadonlyFields?: boolean;
|
|
37
|
+
}
|
|
38
|
+
export declare const StyledFormView: React.FC<Props>;
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { JsonForms } from '@jsonforms/react';
|
|
2
|
+
import React, { useEffect } from 'react';
|
|
3
|
+
import { materialCells, materialRenderers } from '@jsonforms/material-renderers';
|
|
4
|
+
import { getComponents } from '../registry/components';
|
|
5
|
+
import { generateJsonSchema } from '../schema/generate/jsonSchemaGenerate';
|
|
6
|
+
import { generateUiSchema } from '../schema/generate/uiSchemaGenerate';
|
|
7
|
+
import { initialisedCheck } from '../../api/init';
|
|
8
|
+
export const StyledFormView = ({ initialData, schema, onChange, stage, pool, readonly, hideReadonlyFields }) => {
|
|
9
|
+
useEffect(initialisedCheck, []);
|
|
10
|
+
const json = generateJsonSchema(schema, stage, hideReadonlyFields);
|
|
11
|
+
const ui = generateUiSchema(schema, stage, hideReadonlyFields);
|
|
12
|
+
return (React.createElement(JsonForms, { onChange: onChange, data: initialData, schema: json, uischema: ui, renderers: [...materialRenderers, ...getComponents(pool)], readonly: readonly, cells: materialCells }));
|
|
13
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a function which can be used to retrieve errors.
|
|
3
|
+
* For objects field is the field name.
|
|
4
|
+
* For primitives field is the x-type.
|
|
5
|
+
*/
|
|
6
|
+
export declare const useLocalErrors: (path: string) => (field: string) => import("ajv").ErrorObject<string, Record<string, any>, unknown> | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useJsonForms } from "@jsonforms/react";
|
|
2
|
+
import React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Returns a function which can be used to retrieve errors.
|
|
5
|
+
* For objects field is the field name.
|
|
6
|
+
* For primitives field is the x-type.
|
|
7
|
+
*/
|
|
8
|
+
export const useLocalErrors = (path) => {
|
|
9
|
+
const { core } = useJsonForms();
|
|
10
|
+
console.log(core);
|
|
11
|
+
// Filters out errors for the current scope
|
|
12
|
+
const local = React.useMemo(() => {
|
|
13
|
+
var _a;
|
|
14
|
+
return ((_a = core === null || core === void 0 ? void 0 : core.errors) === null || _a === void 0 ? void 0 : _a.filter(e => e.instancePath.startsWith("/" + path.replace(/\./g, "/")))) || [];
|
|
15
|
+
}, [core === null || core === void 0 ? void 0 : core.errors, path]);
|
|
16
|
+
return React.useCallback((field) => local.find(e => e.instancePath.endsWith("/" + field)), [local]);
|
|
17
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import "./prebuild/generated/import_generated";
|
|
2
|
+
import "../api/init";
|
|
3
|
+
export { getComponents } from "./registry/components";
|
|
4
|
+
export { JSONSchemaObject } from "./schema/schema";
|
|
5
|
+
export { generateUiSchema } from "./schema/generate/uiSchemaGenerate";
|
|
6
|
+
export { generateJsonSchema } from "./schema/generate/jsonSchemaGenerate";
|
|
7
|
+
export * from "./components/StyledFormView";
|
|
8
|
+
export * from "./registry/types";
|
|
9
|
+
export { MasterSchema, Stage } from "./schema/formSchemaTypes";
|
|
10
|
+
export { FORM_BUILDER_JSON_SCHEMA } from "./schema/formBuilders/formBuilderJsonSchema";
|
|
11
|
+
export { FORM_BUILDER_UI_SCHEMA } from "./schema/formBuilders/formBuilderUiSchema";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import "./prebuild/generated/import_generated";
|
|
2
|
+
import "../api/init";
|
|
3
|
+
// RENDERING //
|
|
4
|
+
export { getComponents } from "./registry/components";
|
|
5
|
+
export { generateUiSchema } from "./schema/generate/uiSchemaGenerate";
|
|
6
|
+
export { generateJsonSchema } from "./schema/generate/jsonSchemaGenerate";
|
|
7
|
+
export * from "./components/StyledFormView";
|
|
8
|
+
export * from "./registry/types";
|
|
9
|
+
export { Stage } from "./schema/formSchemaTypes";
|
|
10
|
+
export { FORM_BUILDER_JSON_SCHEMA } from "./schema/formBuilders/formBuilderJsonSchema";
|
|
11
|
+
export { FORM_BUILDER_UI_SCHEMA } from "./schema/formBuilders/formBuilderUiSchema";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "../../type_registration/register";
|
|
2
|
+
import "../../renderers/Address";
|
|
3
|
+
import "../../renderers/ComponentPicker";
|
|
4
|
+
import "../../renderers/Debug";
|
|
5
|
+
import "../../renderers/Example";
|
|
6
|
+
import "../../renderers/Image/ImageForm";
|
|
7
|
+
import "../../renderers/Image/ImagePresentation";
|
|
8
|
+
import "../../renderers/StagedText";
|
|
9
|
+
import "../../renderers/TemplatePicker";
|
|
10
|
+
import "../../renderers/textfield/MultilineForm";
|
|
11
|
+
import "../../renderers/textfield/MultilinePresentation";
|
|
12
|
+
import "../../schema/formBuilders/formBuilderJsonSchema";
|
|
13
|
+
import "../../schema/formBuilders/formBuilderUiSchema";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Base field types
|
|
2
|
+
import "../../type_registration/register";
|
|
3
|
+
// Custom component renderers
|
|
4
|
+
import "../../renderers/Address";
|
|
5
|
+
import "../../renderers/ComponentPicker";
|
|
6
|
+
import "../../renderers/Debug";
|
|
7
|
+
import "../../renderers/Example";
|
|
8
|
+
import "../../renderers/Image/ImageForm";
|
|
9
|
+
import "../../renderers/Image/ImagePresentation";
|
|
10
|
+
import "../../renderers/StagedText";
|
|
11
|
+
import "../../renderers/TemplatePicker";
|
|
12
|
+
import "../../renderers/textfield/MultilineForm";
|
|
13
|
+
import "../../renderers/textfield/MultilinePresentation";
|
|
14
|
+
// Build template from schema last
|
|
15
|
+
import "../../schema/formBuilders/formBuilderJsonSchema";
|
|
16
|
+
import "../../schema/formBuilders/formBuilderUiSchema";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getFilesRec(dir: string): string[];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
// Using codegen here as it reduces the number of files required to edit to add a new component.
|
|
4
|
+
// It also ensures import order, which is important as types must be registered before any form schema is generated (this is generated at load, once)
|
|
5
|
+
export function getFilesRec(dir) {
|
|
6
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
7
|
+
return entries.flatMap((entry) => {
|
|
8
|
+
const fullPath = path.join(dir, entry.name);
|
|
9
|
+
if (entry.isDirectory())
|
|
10
|
+
return getFilesRec(fullPath);
|
|
11
|
+
else
|
|
12
|
+
return fullPath;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
const getImports = (base) => {
|
|
16
|
+
const files = getFilesRec(base).filter(f => f.endsWith(".tsx"));
|
|
17
|
+
const renderers = files.map((file) => {
|
|
18
|
+
const relativePath = path.relative(base, file);
|
|
19
|
+
const noExt = relativePath.replace(/\.[^/.]+$/, '');
|
|
20
|
+
const normalized = noExt.split(path.sep).join('/');
|
|
21
|
+
return `import "../../renderers/${normalized}"`;
|
|
22
|
+
});
|
|
23
|
+
const templateFormSchemas = [`import "../../schema/formBuilders/formBuilderJsonSchema"`, `import "../../schema/formBuilders/formBuilderUiSchema"`];
|
|
24
|
+
const baseFieldTypes = `import "../../type_registration/register"`;
|
|
25
|
+
return [
|
|
26
|
+
"// Base field types", baseFieldTypes, "",
|
|
27
|
+
"// Custom component renderers",
|
|
28
|
+
...renderers, "",
|
|
29
|
+
"// Build template from schema last", ...templateFormSchemas
|
|
30
|
+
];
|
|
31
|
+
};
|
|
32
|
+
fs.writeFileSync("./src/rendering/prebuild/generated/import_generated.ts", getImports("./src/rendering/renderers").join("\n"));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ControlProps, OwnPropsOfControl, RankedTester } from "@jsonforms/core";
|
|
2
|
+
import { ComponentType } from "react";
|
|
3
|
+
import { ComponentPool } from "./types";
|
|
4
|
+
export interface CustomTypeData extends CustomTypeComponent {
|
|
5
|
+
}
|
|
6
|
+
interface CustomTypeComponent {
|
|
7
|
+
tester: RankedTester;
|
|
8
|
+
renderer: ComponentType<OwnPropsOfControl>;
|
|
9
|
+
}
|
|
10
|
+
export declare const registerComponent: (xType: string, Renderer: ComponentType<ControlProps>, mode: ComponentPool, overrideTester?: RankedTester) => void;
|
|
11
|
+
export declare const getComponents: (mode: ComponentPool) => Readonly<Array<CustomTypeComponent>>;
|
|
12
|
+
export declare const getComponent: (mode: ComponentPool, xType: string) => CustomTypeComponent | undefined;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { withJsonFormsControlProps } from "@jsonforms/react";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { isXType } from "../util/xtype";
|
|
4
|
+
import { ComponentPool } from "./types";
|
|
5
|
+
// Stored seperately to avoid more expensive lookups
|
|
6
|
+
const componentRegistry = {
|
|
7
|
+
[ComponentPool.FORM]: new Map(),
|
|
8
|
+
[ComponentPool.PRESENTATION]: new Map()
|
|
9
|
+
};
|
|
10
|
+
export const registerComponent = (xType, Renderer, mode, overrideTester) => {
|
|
11
|
+
if (overrideTester) {
|
|
12
|
+
componentRegistry[mode].set(xType, {
|
|
13
|
+
tester: overrideTester,
|
|
14
|
+
renderer: withJsonFormsControlProps(Renderer)
|
|
15
|
+
});
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (componentRegistry[mode].has(xType)) {
|
|
19
|
+
console.error("Tried to register duplicate component name:", xType);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
// Wrap the component in a visibility checker
|
|
23
|
+
const wrapped = (props) => {
|
|
24
|
+
if (!props.visible)
|
|
25
|
+
return null;
|
|
26
|
+
return React.createElement(Renderer, Object.assign({}, props));
|
|
27
|
+
};
|
|
28
|
+
componentRegistry[mode].set(xType, {
|
|
29
|
+
tester: isXType(xType),
|
|
30
|
+
renderer: withJsonFormsControlProps(wrapped)
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
export const getComponents = (mode) => {
|
|
34
|
+
const list = [...componentRegistry[mode].values()];
|
|
35
|
+
return (list.map(c => ({ renderer: c.renderer, tester: c.tester })));
|
|
36
|
+
};
|
|
37
|
+
export const getComponent = (mode, xType) => {
|
|
38
|
+
const comp = componentRegistry[mode].get(xType);
|
|
39
|
+
if (!comp)
|
|
40
|
+
return undefined;
|
|
41
|
+
return ({ tester: comp.tester, renderer: comp.renderer });
|
|
42
|
+
};
|
|
43
|
+
/*
|
|
44
|
+
export const genComponentSchema = (mode: ComponentPool, xType: string): ComponentDataSchema | undefined =>
|
|
45
|
+
{
|
|
46
|
+
const comp = componentRegistry[mode].get(xType)
|
|
47
|
+
if (!comp) return undefined;
|
|
48
|
+
return structuredClone(comp.schema);
|
|
49
|
+
}*/
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JsonSchema } from "@jsonforms/core";
|
|
2
|
+
import { TemplateField } from "../schema/formBuilders/formBuilderJsonSchema";
|
|
3
|
+
import { JsonSchemaWithXType } from "../types/jsonSchema";
|
|
4
|
+
/**
|
|
5
|
+
* If type is not a default json schema type, it is treated as x-type.
|
|
6
|
+
* E.g. "number" will define the default number field, whereas "address" will define a custom field
|
|
7
|
+
*/
|
|
8
|
+
export declare const registerType: (name: string, title: string, schema: JsonSchema, options: JsonSchemaWithXType, optionsRequired: boolean) => void;
|
|
9
|
+
export declare const getAllTypes: () => Array<TemplateField>;
|
|
10
|
+
export declare const getType: (xType: string) => TemplateField | undefined;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const typeRegistry = new Map();
|
|
2
|
+
/**
|
|
3
|
+
* If type is not a default json schema type, it is treated as x-type.
|
|
4
|
+
* E.g. "number" will define the default number field, whereas "address" will define a custom field
|
|
5
|
+
*/
|
|
6
|
+
export const registerType = (name, title, schema, options, optionsRequired) => {
|
|
7
|
+
if (typeRegistry.has(name)) {
|
|
8
|
+
console.error("Tried to register duplicate name:", name);
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const withXType = Object.assign({ "x-type": name }, schema);
|
|
12
|
+
typeRegistry.set(name, { name, title, options, optionsRequired, schema: withXType });
|
|
13
|
+
};
|
|
14
|
+
export const getAllTypes = () => {
|
|
15
|
+
return structuredClone([...typeRegistry.values()]);
|
|
16
|
+
};
|
|
17
|
+
export const getType = (xType) => {
|
|
18
|
+
return structuredClone(typeRegistry.get(xType));
|
|
19
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
3
|
+
import { Paper, Typography, TextField, Grid, Divider } from '@mui/material';
|
|
4
|
+
import { registerComponent } from '../registry/components';
|
|
5
|
+
import { ComponentPool } from '../registry/types';
|
|
6
|
+
const FormAddress = ({ data, onChange, enabled, label, postcodePattern }) => {
|
|
7
|
+
var _a;
|
|
8
|
+
const [postcodeInvalid, setPostcodeInvalid] = useState(false);
|
|
9
|
+
const [postcodeHelperText, setPostcodeHelperText] = useState('');
|
|
10
|
+
const validatePostcode = (value) => {
|
|
11
|
+
if (!value)
|
|
12
|
+
return true;
|
|
13
|
+
const regex = new RegExp(postcodePattern || '^[A-Z]{1,2}[0-9][0-9A-Z]? ?[0-9][A-Z]{2}$', 'i');
|
|
14
|
+
return regex.test(value);
|
|
15
|
+
};
|
|
16
|
+
const handlePostcodeChange = (value) => {
|
|
17
|
+
const valid = validatePostcode(value);
|
|
18
|
+
setPostcodeInvalid(!valid);
|
|
19
|
+
setPostcodeHelperText(valid ? '' : 'Please enter a valid postcode (e.g., SW1A 1AA)');
|
|
20
|
+
onChange('postcode', value);
|
|
21
|
+
};
|
|
22
|
+
const hasAddress = useMemo(() => !!(data.line1 || data.line2 || data.city || data.county || data.postcode), [data]);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (hasAddress) {
|
|
25
|
+
console.log('Address updated:', data);
|
|
26
|
+
}
|
|
27
|
+
}, [hasAddress, data]);
|
|
28
|
+
return (React.createElement(Paper, { sx: { display: 'flex', flexDirection: 'column', gap: 2, p: 2, mb: 1 }, component: "form", noValidate: true, autoComplete: "off" },
|
|
29
|
+
React.createElement(Typography, { variant: "h6" }, label),
|
|
30
|
+
React.createElement(Grid, { container: true, spacing: 2 },
|
|
31
|
+
React.createElement(Grid, { item: true, xs: 12 },
|
|
32
|
+
React.createElement(TextField, { fullWidth: true, label: "Address Line 1", value: data.line1 || '', onChange: (e) => onChange('line1', e.target.value), disabled: !enabled, required: true })),
|
|
33
|
+
React.createElement(Grid, { item: true, xs: 12 },
|
|
34
|
+
React.createElement(TextField, { fullWidth: true, label: "Address Line 2", value: data.line2 || '', onChange: (e) => onChange('line2', e.target.value), disabled: !enabled })),
|
|
35
|
+
React.createElement(Grid, { item: true, xs: 12, sm: 6 },
|
|
36
|
+
React.createElement(TextField, { fullWidth: true, label: "City", value: data.city || '', onChange: (e) => onChange('city', e.target.value), disabled: !enabled, required: true })),
|
|
37
|
+
React.createElement(Grid, { item: true, xs: 12, sm: 6 },
|
|
38
|
+
React.createElement(TextField, { fullWidth: true, label: "County", value: data.county || '', onChange: (e) => onChange('county', e.target.value), disabled: !enabled })),
|
|
39
|
+
React.createElement(Grid, { item: true, xs: 12, sm: 6 },
|
|
40
|
+
React.createElement(TextField, { fullWidth: true, label: "Postcode", value: data.postcode || '', onChange: (e) => handlePostcodeChange(e.target.value), error: postcodeInvalid, helperText: postcodeHelperText, disabled: !enabled, required: true })),
|
|
41
|
+
React.createElement(Grid, { item: true, xs: 12, sm: 6 },
|
|
42
|
+
React.createElement(TextField, { fullWidth: true, label: "Number", type: "number", value: (_a = data.number) !== null && _a !== void 0 ? _a : '', onChange: (e) => onChange('number', e.target.value === '' ? '' : Number(e.target.value)), disabled: !enabled }))),
|
|
43
|
+
React.createElement(Divider, null),
|
|
44
|
+
React.createElement(Typography, { variant: "subtitle1" }, "Location Preview"),
|
|
45
|
+
React.createElement("div", { style: {
|
|
46
|
+
height: '250px',
|
|
47
|
+
display: 'flex',
|
|
48
|
+
alignItems: 'center',
|
|
49
|
+
justifyContent: 'center',
|
|
50
|
+
border: '1px solid #ccc',
|
|
51
|
+
borderRadius: '8px',
|
|
52
|
+
fontSize: '0.9rem',
|
|
53
|
+
color: '#777'
|
|
54
|
+
} }, "[Map Placeholder]")));
|
|
55
|
+
};
|
|
56
|
+
const FormRendererAddress = ({ data, handleChange, path, enabled, label, schema }) => {
|
|
57
|
+
var _a, _b;
|
|
58
|
+
const safeData = data || {
|
|
59
|
+
line1: '', line2: '', city: '', county: '', postcode: '', number: undefined
|
|
60
|
+
};
|
|
61
|
+
const postcodePattern = ((_b = (_a = schema === null || schema === void 0 ? void 0 : schema.properties) === null || _a === void 0 ? void 0 : _a.postcode) === null || _b === void 0 ? void 0 : _b.pattern) || undefined;
|
|
62
|
+
const handleFieldChange = (key, value) => {
|
|
63
|
+
handleChange(`${path}.${key}`, value);
|
|
64
|
+
};
|
|
65
|
+
return (React.createElement(FormAddress, { data: safeData, onChange: handleFieldChange, enabled: enabled, label: label, postcodePattern: postcodePattern }));
|
|
66
|
+
};
|
|
67
|
+
registerComponent("address", FormRendererAddress, ComponentPool.FORM);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DTOComponentRead } from '../../api/generated/core/exports';
|
|
2
|
+
export declare const fetchComponents: () => Promise<{
|
|
3
|
+
data: {
|
|
4
|
+
revisions: DTOComponentRead[];
|
|
5
|
+
id: string;
|
|
6
|
+
templateId: string;
|
|
7
|
+
revisionGroupId: string;
|
|
8
|
+
revision: number;
|
|
9
|
+
metadata: import("../../api/generated/core/exports").Metadata;
|
|
10
|
+
name: string;
|
|
11
|
+
componentFields: Array<import("../../api/generated/core/exports").Field>;
|
|
12
|
+
partners: Array<string>;
|
|
13
|
+
bundle: Array<import("../../api/generated/core/exports").Bundle>;
|
|
14
|
+
startDate?: string | null;
|
|
15
|
+
endDate?: string | null;
|
|
16
|
+
duration?: number | null;
|
|
17
|
+
details: import("../../api/generated/core/exports").ComponentDetails;
|
|
18
|
+
state?: string | null;
|
|
19
|
+
}[];
|
|
20
|
+
}>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
11
|
+
import { Paper, Typography, Box, TextField, Autocomplete } from '@mui/material';
|
|
12
|
+
import { useLocalErrors } from '../hooks/errors';
|
|
13
|
+
import { ComponentPool } from '../registry/types';
|
|
14
|
+
import { registerComponent } from '../registry/components';
|
|
15
|
+
import { services } from '../../api/init';
|
|
16
|
+
const FormComponentPicker = ({ components, selectedComponent, onChange, templateIds, getError, label, enabled }) => {
|
|
17
|
+
const selected = components.find(c => c.id === selectedComponent) || null;
|
|
18
|
+
return (React.createElement(Paper, { component: "form", sx: { display: 'flex', flexDirection: 'column', gap: 1, p: 2, mb: 1 }, noValidate: true, autoComplete: "off" },
|
|
19
|
+
React.createElement(Typography, { variant: 'h6' }, label),
|
|
20
|
+
React.createElement(Autocomplete, { options: components, getOptionLabel: (option) => option.name, getOptionKey: o => o.id, value: selected, onChange: (_, newValue) => onChange(newValue ? newValue.id : null), renderInput: (params) => (React.createElement(TextField, Object.assign({}, params, { variant: "outlined", placeholder: "Search and select a component", disabled: !enabled }))), renderOption: (props, option) => (React.createElement("li", Object.assign({}, props),
|
|
21
|
+
React.createElement(Box, null,
|
|
22
|
+
React.createElement(Typography, { variant: "body1" }, option.name),
|
|
23
|
+
React.createElement(Typography, { variant: "caption", color: "text.secondary" },
|
|
24
|
+
"Version: v",
|
|
25
|
+
option.revision)))), isOptionEqualToValue: (option, value) => option.id === value.id })));
|
|
26
|
+
};
|
|
27
|
+
const FormRendererComponentPicker = ({ data, handleChange, path, label, enabled, schema }) => {
|
|
28
|
+
const [components, setComponents] = useState([]);
|
|
29
|
+
const getError = useLocalErrors(path);
|
|
30
|
+
const templateIds = useMemo(() =>
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
schema['x-templateIds'] || [], [schema]);
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
const load = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
try {
|
|
36
|
+
const fetched = yield fetchComponents();
|
|
37
|
+
let filtered = fetched.data;
|
|
38
|
+
if (templateIds.length > 0) {
|
|
39
|
+
filtered = filtered.filter(c => templateIds.includes(c.templateId));
|
|
40
|
+
}
|
|
41
|
+
setComponents(filtered);
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
console.error('Error loading components:', err);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
load();
|
|
48
|
+
}, [templateIds]);
|
|
49
|
+
return (React.createElement(FormComponentPicker, { components: components, selectedComponent: data || null, onChange: (id) => handleChange(path, id), templateIds: templateIds, getError: getError, label: label, enabled: enabled }));
|
|
50
|
+
};
|
|
51
|
+
registerComponent("component", FormRendererComponentPicker, ComponentPool.FORM);
|
|
52
|
+
export const fetchComponents = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
53
|
+
const componentsByGroup = new Map();
|
|
54
|
+
const data = yield services.CoreService.componentList(1, 1000);
|
|
55
|
+
(data.data || []).forEach((component) => {
|
|
56
|
+
const groupId = component.revisionGroupId;
|
|
57
|
+
if (!componentsByGroup.has(groupId)) {
|
|
58
|
+
componentsByGroup.set(groupId, []);
|
|
59
|
+
}
|
|
60
|
+
componentsByGroup.get(groupId).push(component);
|
|
61
|
+
});
|
|
62
|
+
const latestComponents = Array.from(componentsByGroup.values()).map((components) => {
|
|
63
|
+
const sortedComponents = components.sort((a, b) => b.revision - a.revision);
|
|
64
|
+
return Object.assign(Object.assign({}, sortedComponents[0]), { revisions: sortedComponents });
|
|
65
|
+
});
|
|
66
|
+
return { data: latestComponents };
|
|
67
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Paper, TextField, Typography } from '@mui/material';
|
|
3
|
+
const FormDebug = ({ path, label }) => {
|
|
4
|
+
return (React.createElement(Paper, { component: "form", sx: { display: 'flex', flexDirection: 'column', gap: 1, p: 2, background: "#CBC3E3", mb: 1 }, noValidate: true, autoComplete: "off" },
|
|
5
|
+
React.createElement(Typography, { variant: 'h6' }, label),
|
|
6
|
+
React.createElement(TextField, { label: "Path", value: path })));
|
|
7
|
+
};
|
|
8
|
+
const FormRendererDebug = ({ path, label }) => {
|
|
9
|
+
return React.createElement(FormDebug, { label: label, path: path });
|
|
10
|
+
};
|
|
11
|
+
// Will render any components if they do not have a renderer, for testing
|
|
12
|
+
//registerComponent("", FormRendererDebug, ComponentPool.FORM, () => 1)
|
|
13
|
+
//registerComponent("", FormRendererDebug, ComponentPool.PRESENTATION, () => 1)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React, { useMemo, useState } from 'react';
|
|
2
|
+
import { debounce, Paper, TextField, Typography } from '@mui/material';
|
|
3
|
+
import { useLocalErrors } from '../hooks/errors';
|
|
4
|
+
import { ComponentPool } from '../registry/types';
|
|
5
|
+
import { registerComponent } from '../registry/components';
|
|
6
|
+
// The base component used to render. Can be exported for external use
|
|
7
|
+
const FormExample = ({ text, onChange, getError, label, enabled }) => {
|
|
8
|
+
var _a;
|
|
9
|
+
const [val, setVal] = useState(text);
|
|
10
|
+
// Gets any error associated with this component. If there are multiple, it gets the first
|
|
11
|
+
const error = getError ? (_a = getError("example")) === null || _a === void 0 ? void 0 : _a.message : undefined;
|
|
12
|
+
const onChangeDebounced = useMemo(() => debounce(onChange, 300), [onChange]);
|
|
13
|
+
// Handle internal state, and debounce submission to avoid constant validations
|
|
14
|
+
const update = (value) => {
|
|
15
|
+
setVal(value);
|
|
16
|
+
onChangeDebounced(value);
|
|
17
|
+
};
|
|
18
|
+
return (React.createElement(Paper, { component: "form", sx: { display: 'flex', flexDirection: 'column', gap: 1, p: 2, background: "#CBC3E3", mb: 1 }, noValidate: true, autoComplete: "off" },
|
|
19
|
+
!enabled && "THIS IS DISABLED",
|
|
20
|
+
React.createElement(Typography, { variant: 'h6' }, label),
|
|
21
|
+
React.createElement(TextField, { label: "Example label", value: val, onChange: (e) => update(e.target.value), error: !!error, helperText: error, disabled: !enabled })));
|
|
22
|
+
};
|
|
23
|
+
// Wrapper component for converting the base component into a jsonforms compatible version
|
|
24
|
+
const FormRendererExample = ({ data, handleChange, path, label, enabled }) => {
|
|
25
|
+
const getError = useLocalErrors(path);
|
|
26
|
+
return React.createElement(FormExample, { text: data, onChange: (addr) => handleChange(path, addr), getError: getError, label: label, enabled: enabled });
|
|
27
|
+
};
|
|
28
|
+
// Register this component for x-type: example
|
|
29
|
+
// Register this component for all form modes
|
|
30
|
+
registerComponent("example", FormRendererExample, ComponentPool.FORM);
|
|
31
|
+
registerComponent("example", FormRendererExample, ComponentPool.PRESENTATION);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ErrorObject } from "ajv";
|
|
3
|
+
interface Props {
|
|
4
|
+
url: string;
|
|
5
|
+
onChange: (string: string) => void;
|
|
6
|
+
getError?: (field: string) => ErrorObject<string, Record<string, any>, unknown> | undefined;
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const FormImage: React.FC<Props>;
|
|
10
|
+
export default FormImage;
|