@researchdatabox/redbox-core 0.0.0-bootstrap.0 → 0.0.1-beta.10213
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/CoreController.d.ts +4 -0
- package/dist/CoreController.d.ts.map +1 -1
- package/dist/CoreController.js +68 -23
- package/dist/CoreService.d.ts +1 -1
- package/dist/CoreService.d.ts.map +1 -1
- package/dist/CoreService.js +1 -1
- package/dist/DatastreamService.d.ts +5 -2
- package/dist/DatastreamService.d.ts.map +1 -1
- package/dist/HarvestRunService.d.ts +49 -0
- package/dist/HarvestRunService.d.ts.map +1 -0
- package/dist/HarvestRunService.js +13 -0
- package/dist/IntegrationAuditParams.d.ts +11 -0
- package/dist/IntegrationAuditParams.js +14 -0
- package/dist/QueueService.d.ts +1 -1
- package/dist/QueueService.d.ts.map +1 -1
- package/dist/RecordAuditParams.d.ts +2 -0
- package/dist/RecordAuditParams.d.ts.map +1 -1
- package/dist/RecordAuditParams.js +3 -1
- package/dist/RecordsService.d.ts +52 -2
- package/dist/RecordsService.d.ts.map +1 -1
- package/dist/StorageService.d.ts +6 -2
- package/dist/StorageService.d.ts.map +1 -1
- package/dist/api-routes/apib.d.ts +7 -0
- package/dist/api-routes/apib.d.ts.map +1 -0
- package/dist/api-routes/apib.js +43 -0
- package/dist/api-routes/define.d.ts +4 -0
- package/dist/api-routes/define.d.ts.map +1 -0
- package/dist/api-routes/define.js +29 -0
- package/dist/api-routes/groups/admin.d.ts +6 -0
- package/dist/api-routes/groups/admin.d.ts.map +1 -0
- package/dist/api-routes/groups/admin.js +53 -0
- package/dist/api-routes/groups/appconfig.d.ts +4 -0
- package/dist/api-routes/groups/appconfig.d.ts.map +1 -0
- package/dist/api-routes/groups/appconfig.js +33 -0
- package/dist/api-routes/groups/branding.d.ts +8 -0
- package/dist/api-routes/groups/branding.d.ts.map +1 -0
- package/dist/api-routes/groups/branding.js +61 -0
- package/dist/api-routes/groups/dashboard-config.d.ts +11 -0
- package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -0
- package/dist/api-routes/groups/dashboard-config.js +90 -0
- package/dist/api-routes/groups/export.d.ts +3 -0
- package/dist/api-routes/groups/export.d.ts.map +1 -0
- package/dist/api-routes/groups/export.js +30 -0
- package/dist/api-routes/groups/forms.d.ts +4 -0
- package/dist/api-routes/groups/forms.d.ts.map +1 -0
- package/dist/api-routes/groups/forms.js +29 -0
- package/dist/api-routes/groups/harvest-runs.d.ts +5 -0
- package/dist/api-routes/groups/harvest-runs.d.ts.map +1 -0
- package/dist/api-routes/groups/harvest-runs.js +79 -0
- package/dist/api-routes/groups/integration-audit.d.ts +3 -0
- package/dist/api-routes/groups/integration-audit.d.ts.map +1 -0
- package/dist/api-routes/groups/integration-audit.js +35 -0
- package/dist/api-routes/groups/named-query.d.ts +8 -0
- package/dist/api-routes/groups/named-query.d.ts.map +1 -0
- package/dist/api-routes/groups/named-query.js +54 -0
- package/dist/api-routes/groups/notifications.d.ts +3 -0
- package/dist/api-routes/groups/notifications.d.ts.map +1 -0
- package/dist/api-routes/groups/notifications.js +20 -0
- package/dist/api-routes/groups/records.d.ts +28 -0
- package/dist/api-routes/groups/records.d.ts.map +1 -0
- package/dist/api-routes/groups/records.js +353 -0
- package/dist/api-routes/groups/recordtypes.d.ts +4 -0
- package/dist/api-routes/groups/recordtypes.d.ts.map +1 -0
- package/dist/api-routes/groups/recordtypes.js +27 -0
- package/dist/api-routes/groups/reports.d.ts +9 -0
- package/dist/api-routes/groups/reports.d.ts.map +1 -0
- package/dist/api-routes/groups/reports.js +63 -0
- package/dist/api-routes/groups/search-query.d.ts +4 -0
- package/dist/api-routes/groups/search-query.d.ts.map +1 -0
- package/dist/api-routes/groups/search-query.js +51 -0
- package/dist/api-routes/groups/search.d.ts +6 -0
- package/dist/api-routes/groups/search.d.ts.map +1 -0
- package/dist/api-routes/groups/search.js +31 -0
- package/dist/api-routes/groups/translation.d.ts +8 -0
- package/dist/api-routes/groups/translation.d.ts.map +1 -0
- package/dist/api-routes/groups/translation.js +82 -0
- package/dist/api-routes/groups/users.d.ts +17 -0
- package/dist/api-routes/groups/users.d.ts.map +1 -0
- package/dist/api-routes/groups/users.js +149 -0
- package/dist/api-routes/groups/vocabulary.d.ts +10 -0
- package/dist/api-routes/groups/vocabulary.d.ts.map +1 -0
- package/dist/api-routes/groups/vocabulary.js +97 -0
- package/dist/api-routes/helpers.d.ts +29 -0
- package/dist/api-routes/helpers.d.ts.map +1 -0
- package/dist/api-routes/helpers.js +485 -0
- package/dist/api-routes/index.d.ts +27 -0
- package/dist/api-routes/index.d.ts.map +1 -0
- package/dist/api-routes/index.js +43 -0
- package/dist/api-routes/openapi.d.ts +26 -0
- package/dist/api-routes/openapi.d.ts.map +1 -0
- package/dist/api-routes/openapi.js +292 -0
- package/dist/api-routes/request-extraction.d.ts +14 -0
- package/dist/api-routes/request-extraction.d.ts.map +1 -0
- package/dist/api-routes/request-extraction.js +100 -0
- package/dist/api-routes/route-factory.d.ts +3 -0
- package/dist/api-routes/route-factory.d.ts.map +1 -0
- package/dist/api-routes/route-factory.js +30 -0
- package/dist/api-routes/route-registry.d.ts +24 -0
- package/dist/api-routes/route-registry.d.ts.map +1 -0
- package/dist/api-routes/route-registry.js +117 -0
- package/dist/api-routes/route-resolution.d.ts +4 -0
- package/dist/api-routes/route-resolution.d.ts.map +1 -0
- package/dist/api-routes/route-resolution.js +71 -0
- package/dist/api-routes/schemas/common.d.ts +35 -0
- package/dist/api-routes/schemas/common.d.ts.map +1 -0
- package/dist/api-routes/schemas/common.js +146 -0
- package/dist/api-routes/schemas/responses.d.ts +972 -0
- package/dist/api-routes/schemas/responses.d.ts.map +1 -0
- package/dist/api-routes/schemas/responses.js +512 -0
- package/dist/api-routes/types.d.ts +70 -0
- package/dist/api-routes/types.d.ts.map +1 -0
- package/dist/api-routes/types.js +3 -0
- package/dist/api-routes/validation.d.ts +32 -0
- package/dist/api-routes/validation.d.ts.map +1 -0
- package/dist/api-routes/validation.js +142 -0
- package/dist/api-routes/zod-openapi.d.ts +3 -0
- package/dist/api-routes/zod-openapi.d.ts.map +1 -0
- package/dist/api-routes/zod-openapi.js +8 -0
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +12 -12
- package/dist/config/agendaQueue.config.d.ts +33 -6
- package/dist/config/agendaQueue.config.d.ts.map +1 -1
- package/dist/config/agendaQueue.config.js +40 -18
- package/dist/config/auth.config.d.ts.map +1 -1
- package/dist/config/auth.config.js +29 -2
- package/dist/config/branding.config.d.ts +2 -1
- package/dist/config/branding.config.d.ts.map +1 -1
- package/dist/config/branding.config.js +5 -95
- package/dist/config/brandingConfigurationDefaults.config.d.ts +3 -0
- package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
- package/dist/config/brandingConfigurationDefaults.config.js +161 -5
- package/dist/config/custom.config.d.ts +6 -0
- package/dist/config/custom.config.d.ts.map +1 -1
- package/dist/config/custom.config.js +10 -1
- package/dist/config/dashboardtype.config.d.ts +5 -0
- package/dist/config/dashboardtype.config.d.ts.map +1 -1
- package/dist/config/dashboardtype.config.js +1 -1
- package/dist/config/dashboardview.config.d.ts +24 -0
- package/dist/config/dashboardview.config.d.ts.map +1 -0
- package/dist/config/dashboardview.config.js +137 -0
- package/dist/config/dompurify.config.d.ts +1 -0
- package/dist/config/dompurify.config.d.ts.map +1 -1
- package/dist/config/dompurify.config.js +5 -4
- package/dist/config/emailnotification.config.d.ts.map +1 -1
- package/dist/config/emailnotification.config.js +2 -1
- package/dist/config/figshareDev.config.d.ts +12 -0
- package/dist/config/figshareDev.config.js +9 -0
- package/dist/config/form.config.d.ts +4 -0
- package/dist/config/form.config.d.ts.map +1 -1
- package/dist/config/form.config.js +1 -1
- package/dist/config/harvestRuns.config.d.ts +9 -0
- package/dist/config/harvestRuns.config.d.ts.map +1 -0
- package/dist/config/harvestRuns.config.js +11 -0
- package/dist/config/http.config.d.ts +13 -1
- package/dist/config/http.config.d.ts.map +1 -1
- package/dist/config/http.config.js +201 -38
- package/dist/config/index.d.ts +14 -19
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +10 -15
- package/dist/config/namedQuery.config.d.ts +26 -4
- package/dist/config/namedQuery.config.d.ts.map +1 -1
- package/dist/config/namedQuery.config.js +7 -350
- package/dist/config/policies.config.d.ts +3 -0
- package/dist/config/policies.config.d.ts.map +1 -1
- package/dist/config/policies.config.js +35 -1
- package/dist/config/record.config.d.ts.map +1 -1
- package/dist/config/record.config.js +2 -1
- package/dist/config/recordtype.config.d.ts +28 -0
- package/dist/config/recordtype.config.d.ts.map +1 -1
- package/dist/config/recordtype.config.js +105 -13
- package/dist/config/redboxSession.config.d.ts +3 -0
- package/dist/config/redboxSession.config.d.ts.map +1 -1
- package/dist/config/redboxSession.config.js +1 -1
- package/dist/config/report.config.d.ts +2 -11
- package/dist/config/report.config.d.ts.map +1 -1
- package/dist/config/report.config.js +3 -49
- package/dist/config/reusableContributorFormDefinitions.config.d.ts +1 -1
- package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -1
- package/dist/config/reusableContributorFormDefinitions.config.js +371 -206
- package/dist/config/reusableViewFormDefinitions.config.js +3 -3
- package/dist/config/routes.config.d.ts +5 -2
- package/dist/config/routes.config.d.ts.map +1 -1
- package/dist/config/routes.config.js +55 -117
- package/dist/config/storage.config.d.ts +20 -2
- package/dist/config/storage.config.d.ts.map +1 -1
- package/dist/config/storage.config.js +2 -1
- package/dist/config/validators.config.d.ts +6 -4
- package/dist/config/validators.config.d.ts.map +1 -1
- package/dist/config/validators.config.js +5 -3
- package/dist/config/vocab.config.d.ts +30 -0
- package/dist/config/vocab.config.d.ts.map +1 -1
- package/dist/config/vocab.config.js +21 -1
- package/dist/config/webpack.config.d.ts.map +1 -1
- package/dist/config/webpack.config.js +18 -12
- package/dist/config/workflow.config.d.ts +0 -1
- package/dist/config/workflow.config.d.ts.map +1 -1
- package/dist/config/workflow.config.js +1 -137
- package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
- package/dist/configmodels/AdminSidebarConfig.js +4 -3
- package/dist/configmodels/AuthorizedDomainsEmails.d.ts +48 -0
- package/dist/configmodels/AuthorizedDomainsEmails.d.ts.map +1 -1
- package/dist/configmodels/AuthorizedDomainsEmails.js +50 -2
- package/dist/configmodels/ConfigModels.d.ts +7 -1
- package/dist/configmodels/ConfigModels.d.ts.map +1 -1
- package/dist/configmodels/ConfigModels.js +41 -1
- package/dist/configmodels/DashboardTableOverrideConfig.d.ts +1011 -0
- package/dist/configmodels/DashboardTableOverrideConfig.d.ts.map +1 -0
- package/dist/configmodels/DashboardTableOverrideConfig.js +138 -0
- package/dist/configmodels/DoiPublishing.d.ts +4711 -0
- package/dist/configmodels/DoiPublishing.js +639 -0
- package/dist/configmodels/FigsharePublishing.d.ts +1376 -0
- package/dist/configmodels/FigsharePublishing.js +630 -0
- package/dist/configmodels/IntegrationNotificationConfig.d.ts +133 -0
- package/dist/configmodels/IntegrationNotificationConfig.d.ts.map +1 -0
- package/dist/configmodels/IntegrationNotificationConfig.js +64 -0
- package/dist/configmodels/SystemMessage.d.ts +32 -0
- package/dist/configmodels/SystemMessage.d.ts.map +1 -1
- package/dist/configmodels/SystemMessage.js +34 -2
- package/dist/controllers/AdminController.d.ts +1 -1
- package/dist/controllers/AdminController.d.ts.map +1 -1
- package/dist/controllers/AdminController.js +6 -32
- package/dist/controllers/AppConfigController.js +3 -3
- package/dist/controllers/BrandingAppController.d.ts.map +1 -1
- package/dist/controllers/BrandingAppController.js +11 -10
- package/dist/controllers/BrandingController.d.ts +11 -5
- package/dist/controllers/BrandingController.d.ts.map +1 -1
- package/dist/controllers/BrandingController.js +116 -48
- package/dist/controllers/DashboardConfigController.d.ts +8 -0
- package/dist/controllers/DashboardConfigController.d.ts.map +1 -0
- package/dist/controllers/DashboardConfigController.js +17 -0
- package/dist/controllers/DynamicAssetController.d.ts +1 -21
- package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
- package/dist/controllers/DynamicAssetController.js +19 -41
- package/dist/controllers/EmailController.d.ts.map +1 -1
- package/dist/controllers/EmailController.js +16 -12
- package/dist/controllers/ExportController.d.ts.map +1 -1
- package/dist/controllers/ExportController.js +3 -8
- package/dist/controllers/FormVocabularyController.d.ts +3 -0
- package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
- package/dist/controllers/FormVocabularyController.js +154 -4
- package/dist/controllers/NamedQueryController.d.ts +8 -0
- package/dist/controllers/NamedQueryController.d.ts.map +1 -0
- package/dist/controllers/NamedQueryController.js +17 -0
- package/dist/controllers/RecordAuditController.d.ts +31 -14
- package/dist/controllers/RecordAuditController.d.ts.map +1 -1
- package/dist/controllers/RecordAuditController.js +509 -57
- package/dist/controllers/RecordController.d.ts +18 -16
- package/dist/controllers/RecordController.d.ts.map +1 -1
- package/dist/controllers/RecordController.js +314 -167
- package/dist/controllers/RenderViewController.d.ts.map +1 -1
- package/dist/controllers/RenderViewController.js +4 -2
- package/dist/controllers/ReportController.d.ts +7 -0
- package/dist/controllers/ReportController.d.ts.map +1 -1
- package/dist/controllers/ReportController.js +75 -2
- package/dist/controllers/ReportsController.d.ts +1 -0
- package/dist/controllers/ReportsController.d.ts.map +1 -1
- package/dist/controllers/ReportsController.js +12 -2
- package/dist/controllers/TranslationController.d.ts.map +1 -1
- package/dist/controllers/TranslationController.js +14 -12
- package/dist/controllers/WorkspaceTypesController.d.ts +3 -2
- package/dist/controllers/WorkspaceTypesController.d.ts.map +1 -1
- package/dist/controllers/WorkspaceTypesController.js +120 -31
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js +19 -4
- package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
- package/dist/controllers/webservice/AdminController.js +16 -17
- package/dist/controllers/webservice/AppConfigController.d.ts.map +1 -1
- package/dist/controllers/webservice/AppConfigController.js +17 -18
- package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
- package/dist/controllers/webservice/BrandingController.js +102 -48
- package/dist/controllers/webservice/DashboardConfigController.d.ts +26 -0
- package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -0
- package/dist/controllers/webservice/DashboardConfigController.js +241 -0
- package/dist/controllers/webservice/ExportController.d.ts.map +1 -1
- package/dist/controllers/webservice/ExportController.js +13 -18
- package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
- package/dist/controllers/webservice/FormManagementController.js +11 -13
- package/dist/controllers/webservice/HarvestRunController.d.ts +13 -0
- package/dist/controllers/webservice/HarvestRunController.d.ts.map +1 -0
- package/dist/controllers/webservice/HarvestRunController.js +148 -0
- package/dist/controllers/webservice/IntegrationAuditController.d.ts +10 -0
- package/dist/controllers/webservice/IntegrationAuditController.d.ts.map +1 -1
- package/dist/controllers/webservice/IntegrationAuditController.js +98 -0
- package/dist/controllers/webservice/NamedQueryController.d.ts +17 -0
- package/dist/controllers/webservice/NamedQueryController.d.ts.map +1 -0
- package/dist/controllers/webservice/NamedQueryController.js +127 -0
- package/dist/controllers/webservice/RecordController.d.ts +4 -0
- package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
- package/dist/controllers/webservice/RecordController.js +441 -314
- package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
- package/dist/controllers/webservice/RecordTypeController.js +9 -10
- package/dist/controllers/webservice/ReportController.d.ts +7 -0
- package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
- package/dist/controllers/webservice/ReportController.js +125 -19
- package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
- package/dist/controllers/webservice/SearchController.js +28 -35
- package/dist/controllers/webservice/TranslationController.d.ts.map +1 -1
- package/dist/controllers/webservice/TranslationController.js +65 -43
- package/dist/controllers/webservice/UserManagementController.d.ts +1 -1
- package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
- package/dist/controllers/webservice/UserManagementController.js +114 -101
- package/dist/controllers/webservice/VocabularyController.d.ts.map +1 -1
- package/dist/controllers/webservice/VocabularyController.js +76 -28
- package/dist/form-config/dataRecord-1.0-draft.js +3 -3
- package/dist/form-config/default-1.0-draft.d.ts.map +1 -1
- package/dist/form-config/default-1.0-draft.js +27 -3
- package/dist/form-config/index.d.ts.map +1 -1
- package/dist/form-config/index.js +1 -1
- package/dist/hooks/defineRedboxHook.d.ts +3 -0
- package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
- package/dist/hooks/defineRedboxHook.js +4 -1
- package/dist/hooks/webpack.d.ts.map +1 -1
- package/dist/hooks/webpack.js +17 -7
- package/dist/index.d.ts +12 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -2
- package/dist/loader/MigrationRunner.d.ts +19 -0
- package/dist/loader/MigrationRunner.d.ts.map +1 -0
- package/dist/loader/MigrationRunner.js +108 -0
- package/dist/loader/bootstrapShimRuntime.d.ts +2 -1
- package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
- package/dist/loader/bootstrapShimRuntime.js +7 -2
- package/dist/loader/index.d.ts +17 -0
- package/dist/loader/index.d.ts.map +1 -1
- package/dist/loader/index.js +216 -13
- package/dist/middleware/redboxSession.d.ts +5 -0
- package/dist/middleware/redboxSession.d.ts.map +1 -1
- package/dist/middleware/redboxSession.js +19 -6
- package/dist/model/BuildResponse.d.ts +4 -0
- package/dist/model/BuildResponse.d.ts.map +1 -1
- package/dist/model/DashboardTypeResponseModel.d.ts +13 -1
- package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
- package/dist/model/DashboardTypeResponseModel.js +12 -4
- package/dist/model/DashboardViewResponseModel.d.ts +20 -0
- package/dist/model/DashboardViewResponseModel.d.ts.map +1 -0
- package/dist/model/DashboardViewResponseModel.js +38 -0
- package/dist/model/RecordTypeResponseModel.d.ts +3 -1
- package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
- package/dist/model/RecordTypeResponseModel.js +4 -2
- package/dist/model/RequestDetails.d.ts +1 -1
- package/dist/model/RequestDetails.d.ts.map +1 -1
- package/dist/model/RequestDetails.js +1 -1
- package/dist/model/config/ReportConfig.d.ts +1 -1
- package/dist/model/config/ReportConfig.d.ts.map +1 -1
- package/dist/model/config/ReportConfig.js +2 -2
- package/dist/model/index.d.ts +1 -0
- package/dist/model/index.d.ts.map +1 -1
- package/dist/model/index.js +5 -2
- package/dist/model/storage/BrandingModel.d.ts +0 -16
- package/dist/model/storage/BrandingModel.d.ts.map +1 -1
- package/dist/model/storage/BrandingModel.js +2 -51
- package/dist/model/storage/DashboardTypeModel.d.ts +4 -0
- package/dist/model/storage/DashboardTypeModel.d.ts.map +1 -1
- package/dist/model/storage/HarvestRunModel.d.ts +140 -0
- package/dist/model/storage/HarvestRunModel.d.ts.map +1 -0
- package/dist/model/storage/HarvestRunModel.js +110 -0
- package/dist/model/storage/IntegrationAuditModel.d.ts +49 -0
- package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
- package/dist/model/storage/IntegrationAuditModel.js +106 -0
- package/dist/model/storage/RecordTypeModel.d.ts +16 -0
- package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
- package/dist/model/storage/RecordTypeModel.js +9 -1
- package/dist/model/storage/ReportModel.d.ts +1 -0
- package/dist/model/storage/ReportModel.d.ts.map +1 -1
- package/dist/model/storage/index.d.ts +2 -0
- package/dist/model/storage/index.d.ts.map +1 -1
- package/dist/model/storage/index.js +15 -2
- package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
- package/dist/policies/contentSecurityPolicy.js +23 -2
- package/dist/policies/i18nLanguages.d.ts.map +1 -1
- package/dist/policies/i18nLanguages.js +1 -1
- package/dist/policies/index.d.ts +3 -0
- package/dist/policies/index.d.ts.map +1 -1
- package/dist/policies/index.js +6 -2
- package/dist/policies/menuResolver.d.ts.map +1 -1
- package/dist/policies/menuResolver.js +1 -1
- package/dist/policies/setLang.d.ts.map +1 -1
- package/dist/policies/setLang.js +1 -1
- package/dist/policies/validateApiContractRequest.d.ts +3 -0
- package/dist/policies/validateApiContractRequest.d.ts.map +1 -0
- package/dist/policies/validateApiContractRequest.js +74 -0
- package/dist/responses/badRequest.d.ts.map +1 -1
- package/dist/responses/badRequest.js +7 -4
- package/dist/responses/created.d.ts.map +1 -1
- package/dist/responses/created.js +7 -4
- package/dist/responses/forbidden.d.ts.map +1 -1
- package/dist/responses/forbidden.js +7 -4
- package/dist/responses/ok.d.ts.map +1 -1
- package/dist/responses/ok.js +7 -4
- package/dist/responses/serverError.d.ts.map +1 -1
- package/dist/responses/serverError.js +7 -4
- package/dist/responses/siteTitle.d.ts +6 -0
- package/dist/responses/siteTitle.d.ts.map +1 -0
- package/dist/responses/siteTitle.js +28 -0
- package/dist/sails.d.ts +9 -0
- package/dist/sails.d.ts.map +1 -1
- package/dist/services/AgendaQueueService.d.ts +39 -17
- package/dist/services/AgendaQueueService.d.ts.map +1 -1
- package/dist/services/AgendaQueueService.js +328 -87
- package/dist/services/AppConfigService.d.ts +20 -2
- package/dist/services/AppConfigService.d.ts.map +1 -1
- package/dist/services/AppConfigService.js +129 -15
- package/dist/services/AttachmentMetadataService.d.ts +34 -0
- package/dist/services/AttachmentMetadataService.d.ts.map +1 -0
- package/dist/services/AttachmentMetadataService.js +133 -0
- package/dist/services/BrandingLogoService.d.ts +11 -8
- package/dist/services/BrandingLogoService.d.ts.map +1 -1
- package/dist/services/BrandingLogoService.js +71 -72
- package/dist/services/BrandingService.d.ts.map +1 -1
- package/dist/services/BrandingService.js +4 -32
- package/dist/services/BrandingThemeCssService.d.ts +21 -0
- package/dist/services/BrandingThemeCssService.d.ts.map +1 -0
- package/dist/services/BrandingThemeCssService.js +113 -0
- package/dist/services/BrandingThemeTokens.d.ts +16 -0
- package/dist/services/BrandingThemeTokens.d.ts.map +1 -0
- package/dist/services/BrandingThemeTokens.js +82 -0
- package/dist/services/CacheService.d.ts.map +1 -1
- package/dist/services/CacheService.js +37 -29
- package/dist/services/DashboardConfigService.d.ts +71 -0
- package/dist/services/DashboardConfigService.d.ts.map +1 -0
- package/dist/services/DashboardConfigService.js +315 -0
- package/dist/services/DashboardTypesService.d.ts +61 -63
- package/dist/services/DashboardTypesService.d.ts.map +1 -1
- package/dist/services/DashboardTypesService.js +361 -198
- package/dist/services/DoiService.d.ts +30 -25
- package/dist/services/DoiService.d.ts.map +1 -1
- package/dist/services/DoiService.js +448 -393
- package/dist/services/EmailService.d.ts +17 -3
- package/dist/services/EmailService.d.ts.map +1 -1
- package/dist/services/EmailService.js +44 -17
- package/dist/services/FigshareService.d.ts +40 -65
- package/dist/services/FigshareService.d.ts.map +1 -1
- package/dist/services/FigshareService.js +616 -2038
- package/dist/services/FormPayloadPrehydrateService.d.ts +35 -0
- package/dist/services/FormPayloadPrehydrateService.d.ts.map +1 -0
- package/dist/services/FormPayloadPrehydrateService.js +200 -0
- package/dist/services/FormRecordConsistencyService.d.ts +3 -3
- package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
- package/dist/services/FormRecordConsistencyService.js +21 -19
- package/dist/services/FormVocabularyService.d.ts +45 -0
- package/dist/services/FormVocabularyService.d.ts.map +1 -0
- package/dist/services/FormVocabularyService.js +326 -0
- package/dist/services/FormsService.d.ts.map +1 -1
- package/dist/services/FormsService.js +8 -6
- package/dist/services/HarvestRunService.d.ts +73 -0
- package/dist/services/HarvestRunService.d.ts.map +1 -0
- package/dist/services/HarvestRunService.js +1317 -0
- package/dist/services/I18nEntriesService.d.ts +9 -4
- package/dist/services/I18nEntriesService.d.ts.map +1 -1
- package/dist/services/I18nEntriesService.js +96 -18
- package/dist/services/IntegrationAuditService.d.ts +158 -0
- package/dist/services/IntegrationAuditService.d.ts.map +1 -1
- package/dist/services/IntegrationAuditService.js +838 -0
- package/dist/services/IntegrationNotificationService.d.ts +55 -0
- package/dist/services/IntegrationNotificationService.d.ts.map +1 -0
- package/dist/services/IntegrationNotificationService.js +271 -0
- package/dist/services/NamedQueryService.d.ts +51 -12
- package/dist/services/NamedQueryService.d.ts.map +1 -1
- package/dist/services/NamedQueryService.js +622 -125
- package/dist/services/OniService.d.ts.map +1 -1
- package/dist/services/OniService.js +4 -6
- package/dist/services/RDMPService.d.ts.map +1 -1
- package/dist/services/RDMPService.js +3 -2
- package/dist/services/RecordsService.d.ts +25 -3
- package/dist/services/RecordsService.d.ts.map +1 -1
- package/dist/services/RecordsService.js +119 -19
- package/dist/services/ReportsService.d.ts +57 -1
- package/dist/services/ReportsService.d.ts.map +1 -1
- package/dist/services/ReportsService.js +258 -34
- package/dist/services/SassCompilerService.d.ts +4 -10
- package/dist/services/SassCompilerService.d.ts.map +1 -1
- package/dist/services/SassCompilerService.js +9 -173
- package/dist/services/SolrSearchService.d.ts +1 -0
- package/dist/services/SolrSearchService.d.ts.map +1 -1
- package/dist/services/SolrSearchService.js +14 -3
- package/dist/services/StandardDatastreamService.d.ts +37 -5
- package/dist/services/StandardDatastreamService.d.ts.map +1 -1
- package/dist/services/StandardDatastreamService.js +535 -38
- package/dist/services/StorageManagerService.d.ts +13 -1
- package/dist/services/StorageManagerService.d.ts.map +1 -1
- package/dist/services/StorageManagerService.js +94 -11
- package/dist/services/TemplateService.d.ts +2 -18
- package/dist/services/TemplateService.d.ts.map +1 -1
- package/dist/services/TemplateService.js +9 -53
- package/dist/services/VocabularyService.d.ts +13 -0
- package/dist/services/VocabularyService.d.ts.map +1 -1
- package/dist/services/VocabularyService.js +204 -14
- package/dist/services/doi-v2/audit.d.ts +7 -0
- package/dist/services/doi-v2/audit.d.ts.map +1 -1
- package/dist/services/doi-v2/audit.js +30 -0
- package/dist/services/doi-v2/bindings.d.ts +8 -0
- package/dist/services/doi-v2/bindings.d.ts.map +1 -1
- package/dist/services/doi-v2/bindings.js +79 -0
- package/dist/services/doi-v2/config.d.ts +7 -0
- package/dist/services/doi-v2/config.js +51 -0
- package/dist/services/doi-v2/context.d.ts +18 -0
- package/dist/services/doi-v2/context.js +41 -0
- package/dist/services/doi-v2/http.d.ts +21 -0
- package/dist/services/doi-v2/http.js +88 -0
- package/dist/services/doi-v2/payload.d.ts +4 -0
- package/dist/services/doi-v2/payload.d.ts.map +1 -1
- package/dist/services/doi-v2/payload.js +305 -0
- package/dist/services/doi-v2/profiles.d.ts +5 -0
- package/dist/services/doi-v2/profiles.js +31 -0
- package/dist/services/doi-v2/runtime.d.ts +16 -0
- package/dist/services/doi-v2/runtime.js +173 -0
- package/dist/services/doi-v2/types.d.ts +49 -0
- package/dist/services/doi-v2/types.js +3 -0
- package/dist/services/figshare-v2/assets.d.ts +5 -0
- package/dist/services/figshare-v2/assets.js +297 -0
- package/dist/services/figshare-v2/audit.d.ts +7 -0
- package/dist/services/figshare-v2/audit.d.ts.map +1 -0
- package/dist/services/figshare-v2/audit.js +30 -0
- package/dist/services/figshare-v2/bindings.d.ts +6 -0
- package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
- package/dist/services/figshare-v2/bindings.js +58 -0
- package/dist/services/figshare-v2/config.d.ts +13 -0
- package/dist/services/figshare-v2/config.d.ts.map +1 -1
- package/dist/services/figshare-v2/config.js +105 -0
- package/dist/services/figshare-v2/context.d.ts +4 -0
- package/dist/services/figshare-v2/context.d.ts.map +1 -1
- package/dist/services/figshare-v2/context.js +21 -0
- package/dist/services/figshare-v2/embargo.d.ts +5 -0
- package/dist/services/figshare-v2/embargo.js +36 -0
- package/dist/services/figshare-v2/http.d.ts +42 -0
- package/dist/services/figshare-v2/http.d.ts.map +1 -1
- package/dist/services/figshare-v2/http.js +324 -0
- package/dist/services/figshare-v2/metadata.d.ts +6 -0
- package/dist/services/figshare-v2/metadata.d.ts.map +1 -1
- package/dist/services/figshare-v2/metadata.js +280 -0
- package/dist/services/figshare-v2/observability.d.ts +7 -0
- package/dist/services/figshare-v2/observability.d.ts.map +1 -1
- package/dist/services/figshare-v2/observability.js +87 -0
- package/dist/services/figshare-v2/plan.d.ts +5 -0
- package/dist/services/figshare-v2/plan.js +51 -0
- package/dist/services/figshare-v2/publish.d.ts +5 -0
- package/dist/services/figshare-v2/publish.js +20 -0
- package/dist/services/figshare-v2/queue.d.ts +4 -0
- package/dist/services/figshare-v2/queue.js +11 -0
- package/dist/services/figshare-v2/runtime.d.ts +14 -0
- package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
- package/dist/services/figshare-v2/runtime.js +88 -0
- package/dist/services/figshare-v2/types.d.ts +198 -0
- package/dist/services/figshare-v2/types.d.ts.map +1 -1
- package/dist/services/figshare-v2/types.js +59 -0
- package/dist/services/figshare-v2/workflow.d.ts +3 -0
- package/dist/services/figshare-v2/workflow.js +7 -0
- package/dist/services/figshare-v2/writeback.d.ts +5 -0
- package/dist/services/figshare-v2/writeback.js +45 -0
- package/dist/services/index.d.ts +24 -3
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +43 -7
- package/dist/shims/momentShim.d.ts.map +1 -1
- package/dist/shims/momentShim.js +1 -6
- package/dist/storage/GridFSDriver.d.ts +101 -0
- package/dist/storage/GridFSDriver.d.ts.map +1 -0
- package/dist/storage/GridFSDriver.js +291 -0
- package/dist/storage/TusStorageManagerDataStore.d.ts +49 -0
- package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -0
- package/dist/storage/TusStorageManagerDataStore.js +300 -0
- package/dist/transformers/ExportJSONTransformer.d.ts +1 -1
- package/dist/transformers/ExportJSONTransformer.d.ts.map +1 -1
- package/dist/transformers/ExportJSONTransformer.js +3 -3
- package/dist/utilities/RequestParamUtils.d.ts +3 -0
- package/dist/utilities/RequestParamUtils.d.ts.map +1 -0
- package/dist/utilities/RequestParamUtils.js +13 -0
- package/dist/visitor/attachment-fields.visitor.d.ts +17 -17
- package/dist/visitor/attachment-fields.visitor.d.ts.map +1 -1
- package/dist/visitor/attachment-fields.visitor.js +44 -34
- package/dist/visitor/client.visitor.d.ts +145 -97
- package/dist/visitor/client.visitor.d.ts.map +1 -1
- package/dist/visitor/client.visitor.js +366 -273
- package/dist/visitor/construct.visitor.d.ts +99 -93
- package/dist/visitor/construct.visitor.d.ts.map +1 -1
- package/dist/visitor/construct.visitor.js +304 -227
- package/dist/visitor/context-variables.visitor.d.ts +35 -35
- package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
- package/dist/visitor/context-variables.visitor.js +85 -75
- package/dist/visitor/data-value.visitor.d.ts +99 -93
- package/dist/visitor/data-value.visitor.d.ts.map +1 -1
- package/dist/visitor/data-value.visitor.js +157 -148
- package/dist/visitor/json-type-def.visitor.d.ts +96 -90
- package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
- package/dist/visitor/json-type-def.visitor.js +158 -149
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +101 -94
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
- package/dist/visitor/migrate-config-v4-v5.visitor.js +356 -295
- package/dist/visitor/template.visitor.d.ts +100 -92
- package/dist/visitor/template.visitor.d.ts.map +1 -1
- package/dist/visitor/template.visitor.js +245 -156
- package/dist/visitor/validator.visitor.d.ts +95 -91
- package/dist/visitor/validator.visitor.d.ts.map +1 -1
- package/dist/visitor/validator.visitor.js +184 -152
- package/dist/visitor/visitor-helpers.js +9 -9
- package/dist/visitor/vocab-inline.visitor.d.ts +34 -19
- package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
- package/dist/visitor/vocab-inline.visitor.js +157 -48
- package/dist/waterline-models/AttachmentAccessAudit.d.ts +26 -0
- package/dist/waterline-models/AttachmentAccessAudit.d.ts.map +1 -0
- package/dist/waterline-models/AttachmentAccessAudit.js +63 -0
- package/dist/waterline-models/AttachmentMetadata.d.ts +40 -0
- package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -0
- package/dist/waterline-models/AttachmentMetadata.js +147 -0
- package/dist/waterline-models/BrandingConfig.d.ts +0 -2
- package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
- package/dist/waterline-models/BrandingConfig.js +5 -9
- package/dist/waterline-models/DashboardType.d.ts +7 -0
- package/dist/waterline-models/DashboardType.d.ts.map +1 -1
- package/dist/waterline-models/DashboardType.js +16 -1
- package/dist/waterline-models/HarvestRecordEvent.d.ts +43 -0
- package/dist/waterline-models/HarvestRecordEvent.d.ts.map +1 -0
- package/dist/waterline-models/HarvestRecordEvent.js +107 -0
- package/dist/waterline-models/HarvestRun.d.ts +51 -0
- package/dist/waterline-models/HarvestRun.d.ts.map +1 -0
- package/dist/waterline-models/HarvestRun.js +125 -0
- package/dist/waterline-models/HarvestRunChunk.d.ts +57 -0
- package/dist/waterline-models/HarvestRunChunk.d.ts.map +1 -0
- package/dist/waterline-models/HarvestRunChunk.js +140 -0
- package/dist/waterline-models/I18nTranslation.d.ts +2 -0
- package/dist/waterline-models/I18nTranslation.d.ts.map +1 -1
- package/dist/waterline-models/I18nTranslation.js +6 -1
- package/dist/waterline-models/Migration.d.ts +24 -0
- package/dist/waterline-models/Migration.d.ts.map +1 -0
- package/dist/waterline-models/Migration.js +52 -0
- package/dist/waterline-models/NamedQuery.d.ts +6 -0
- package/dist/waterline-models/NamedQuery.d.ts.map +1 -1
- package/dist/waterline-models/NamedQuery.js +16 -1
- package/dist/waterline-models/index.d.ts +12 -0
- package/dist/waterline-models/index.d.ts.map +1 -1
- package/dist/waterline-models/index.js +19 -1
- package/package.json +78 -52
- package/redbox-loader-templates/bootstrap-shim.js.hbs +14 -1
- package/dist/config/datacite.config.d.ts +0 -51
- package/dist/config/datacite.config.d.ts.map +0 -1
- package/dist/config/datacite.config.js +0 -44
- package/dist/config/figshareAPI.config.d.ts +0 -116
- package/dist/config/figshareAPI.config.d.ts.map +0 -1
- package/dist/config/figshareAPI.config.js +0 -857
- package/dist/config/figshareAPIEnv.config.d.ts +0 -11
- package/dist/config/figshareAPIEnv.config.d.ts.map +0 -1
- package/dist/config/figshareAPIEnv.config.js +0 -13
- package/dist/config/figshareRedboxFORMapping.config.d.ts +0 -15
- package/dist/config/figshareRedboxFORMapping.config.d.ts.map +0 -1
- package/dist/config/figshareRedboxFORMapping.config.js +0 -7458
- package/dist/config/relatedObjectsFormDefinition.config.d.ts.map +0 -1
- package/dist/controllers/VocabController.d.ts +0 -43
- package/dist/controllers/VocabController.d.ts.map +0 -1
- package/dist/controllers/VocabController.js +0 -190
- package/dist/form-config/dataPublication-1.0-draft.d.ts.map +0 -1
- package/dist/form-config/dataPublication-1.0-embargoed.d.ts.map +0 -1
- package/dist/form-config/dataPublication-1.0-published.d.ts.map +0 -1
- package/dist/form-config/dataPublication-1.0-queued.d.ts.map +0 -1
- package/dist/form-config/dataPublication-1.0-retired.d.ts.map +0 -1
- package/dist/services/VocabService.d.ts +0 -81
- package/dist/services/VocabService.d.ts.map +0 -1
- package/dist/services/VocabService.js +0 -424
|
@@ -67,6 +67,8 @@ const sails_ng_common_62 = require("@researchdatabox/sails-ng-common");
|
|
|
67
67
|
const sails_ng_common_63 = require("@researchdatabox/sails-ng-common");
|
|
68
68
|
const sails_ng_common_64 = require("@researchdatabox/sails-ng-common");
|
|
69
69
|
const sails_ng_common_65 = require("@researchdatabox/sails-ng-common");
|
|
70
|
+
const sails_ng_common_66 = require("@researchdatabox/sails-ng-common");
|
|
71
|
+
const sails_ng_common_67 = require("@researchdatabox/sails-ng-common");
|
|
70
72
|
const attachment_fields_visitor_1 = require("./attachment-fields.visitor");
|
|
71
73
|
/*
|
|
72
74
|
* HOW TO ADD OR UPDATE THE MAPPING
|
|
@@ -252,99 +254,99 @@ const formConfigV4ToV5Mapping = {
|
|
|
252
254
|
},
|
|
253
255
|
ContributorField: {
|
|
254
256
|
'': {
|
|
255
|
-
componentClassName:
|
|
257
|
+
componentClassName: sails_ng_common_66.ReusableComponentName,
|
|
256
258
|
},
|
|
257
259
|
},
|
|
258
260
|
ANDSVocab: {
|
|
259
261
|
'': {
|
|
260
|
-
componentClassName:
|
|
261
|
-
modelClassName:
|
|
262
|
+
componentClassName: sails_ng_common_47.CheckboxTreeComponentName,
|
|
263
|
+
modelClassName: sails_ng_common_47.CheckboxTreeModelName,
|
|
262
264
|
},
|
|
263
265
|
ANDSVocabComponent: {
|
|
264
|
-
componentClassName:
|
|
265
|
-
modelClassName:
|
|
266
|
+
componentClassName: sails_ng_common_47.CheckboxTreeComponentName,
|
|
267
|
+
modelClassName: sails_ng_common_47.CheckboxTreeModelName,
|
|
266
268
|
},
|
|
267
269
|
},
|
|
268
270
|
RelatedObjectSelector: {
|
|
269
271
|
'': {
|
|
270
|
-
componentClassName:
|
|
271
|
-
modelClassName:
|
|
272
|
+
componentClassName: sails_ng_common_49.RecordSelectorComponentName,
|
|
273
|
+
modelClassName: sails_ng_common_49.RecordSelectorModelName,
|
|
272
274
|
},
|
|
273
275
|
RelatedObjectSelectorComponent: {
|
|
274
|
-
componentClassName:
|
|
275
|
-
modelClassName:
|
|
276
|
+
componentClassName: sails_ng_common_49.RecordSelectorComponentName,
|
|
277
|
+
modelClassName: sails_ng_common_49.RecordSelectorModelName,
|
|
276
278
|
},
|
|
277
279
|
},
|
|
278
280
|
MapField: {
|
|
279
281
|
'': {
|
|
280
|
-
componentClassName:
|
|
281
|
-
modelClassName:
|
|
282
|
+
componentClassName: sails_ng_common_51.MapComponentName,
|
|
283
|
+
modelClassName: sails_ng_common_51.MapModelName,
|
|
282
284
|
},
|
|
283
285
|
MapComponent: {
|
|
284
|
-
componentClassName:
|
|
285
|
-
modelClassName:
|
|
286
|
+
componentClassName: sails_ng_common_51.MapComponentName,
|
|
287
|
+
modelClassName: sails_ng_common_51.MapModelName,
|
|
286
288
|
},
|
|
287
289
|
},
|
|
288
290
|
RelatedFileUpload: {
|
|
289
291
|
'': {
|
|
290
|
-
componentClassName:
|
|
291
|
-
modelClassName:
|
|
292
|
+
componentClassName: sails_ng_common_53.FileUploadComponentName,
|
|
293
|
+
modelClassName: sails_ng_common_53.FileUploadModelName,
|
|
292
294
|
},
|
|
293
295
|
RelatedFileUploadComponent: {
|
|
294
|
-
componentClassName:
|
|
295
|
-
modelClassName:
|
|
296
|
+
componentClassName: sails_ng_common_53.FileUploadComponentName,
|
|
297
|
+
modelClassName: sails_ng_common_53.FileUploadModelName,
|
|
296
298
|
},
|
|
297
299
|
RelatedFileComponent: {
|
|
298
|
-
componentClassName:
|
|
299
|
-
modelClassName:
|
|
300
|
+
componentClassName: sails_ng_common_53.FileUploadComponentName,
|
|
301
|
+
modelClassName: sails_ng_common_53.FileUploadModelName,
|
|
300
302
|
},
|
|
301
303
|
},
|
|
302
304
|
DataLocation: {
|
|
303
305
|
'': {
|
|
304
|
-
componentClassName:
|
|
305
|
-
modelClassName:
|
|
306
|
+
componentClassName: sails_ng_common_57.DataLocationComponentName,
|
|
307
|
+
modelClassName: sails_ng_common_57.DataLocationModelName,
|
|
306
308
|
},
|
|
307
309
|
DataLocationComponent: {
|
|
308
|
-
componentClassName:
|
|
309
|
-
modelClassName:
|
|
310
|
+
componentClassName: sails_ng_common_57.DataLocationComponentName,
|
|
311
|
+
modelClassName: sails_ng_common_57.DataLocationModelName,
|
|
310
312
|
},
|
|
311
313
|
},
|
|
312
314
|
PDFList: {
|
|
313
315
|
'': {
|
|
314
|
-
componentClassName:
|
|
315
|
-
modelClassName:
|
|
316
|
+
componentClassName: sails_ng_common_55.PDFListComponentName,
|
|
317
|
+
modelClassName: sails_ng_common_55.PDFListModelName,
|
|
316
318
|
},
|
|
317
319
|
PDFListComponent: {
|
|
318
|
-
componentClassName:
|
|
319
|
-
modelClassName:
|
|
320
|
+
componentClassName: sails_ng_common_55.PDFListComponentName,
|
|
321
|
+
modelClassName: sails_ng_common_55.PDFListModelName,
|
|
320
322
|
},
|
|
321
323
|
},
|
|
322
324
|
PublishDataLocationSelector: {
|
|
323
325
|
'': {
|
|
324
|
-
componentClassName:
|
|
325
|
-
modelClassName:
|
|
326
|
+
componentClassName: sails_ng_common_59.PublishDataLocationSelectorComponentName,
|
|
327
|
+
modelClassName: sails_ng_common_59.PublishDataLocationSelectorModelName,
|
|
326
328
|
},
|
|
327
329
|
PublishDataLocationSelectorComponent: {
|
|
328
|
-
componentClassName:
|
|
329
|
-
modelClassName:
|
|
330
|
+
componentClassName: sails_ng_common_59.PublishDataLocationSelectorComponentName,
|
|
331
|
+
modelClassName: sails_ng_common_59.PublishDataLocationSelectorModelName,
|
|
330
332
|
},
|
|
331
333
|
},
|
|
332
334
|
RecordMetadataRetriever: {
|
|
333
335
|
'': {
|
|
334
|
-
componentClassName:
|
|
336
|
+
componentClassName: sails_ng_common_41.RecordMetadataRetrieverComponentName,
|
|
335
337
|
},
|
|
336
338
|
RecordMetadataRetrieverComponent: {
|
|
337
|
-
componentClassName:
|
|
339
|
+
componentClassName: sails_ng_common_41.RecordMetadataRetrieverComponentName,
|
|
338
340
|
},
|
|
339
341
|
},
|
|
340
342
|
// Map the legacy button-like field to the new explicit V5 component so the
|
|
341
343
|
// runtime can drive refresh through behaviours instead of embedded fetch code.
|
|
342
344
|
PublishDataLocationRefresh: {
|
|
343
345
|
'': {
|
|
344
|
-
componentClassName:
|
|
346
|
+
componentClassName: sails_ng_common_43.PublishDataLocationRefreshComponentName,
|
|
345
347
|
},
|
|
346
348
|
PublishDataLocationRefreshComponent: {
|
|
347
|
-
componentClassName:
|
|
349
|
+
componentClassName: sails_ng_common_43.PublishDataLocationRefreshComponentName,
|
|
348
350
|
},
|
|
349
351
|
},
|
|
350
352
|
};
|
|
@@ -393,7 +395,7 @@ function postProcessingFormConfigV4ToV5Mapping(v4Field, v4ClassNames, v5ClassNam
|
|
|
393
395
|
*
|
|
394
396
|
* The resulting FormConfig is intended to be passed to the construct visitor, as if it was loaded from form config json.
|
|
395
397
|
*/
|
|
396
|
-
class MigrationV4ToV5FormConfigVisitor extends
|
|
398
|
+
class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_61.FormConfigVisitor {
|
|
397
399
|
logName = 'MigrationV4ToV5FormConfigVisitor';
|
|
398
400
|
formComponentMap;
|
|
399
401
|
v4FormConfig;
|
|
@@ -406,7 +408,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
406
408
|
legacyInlineContainerDepth = 0;
|
|
407
409
|
constructor(logger) {
|
|
408
410
|
super(logger);
|
|
409
|
-
this.formComponentMap =
|
|
411
|
+
this.formComponentMap = sails_ng_common_63.FormComponentDefinitionMap;
|
|
410
412
|
this.v4FormConfig = {
|
|
411
413
|
attachmentFields: undefined,
|
|
412
414
|
customAngularApp: { appName: '', appSelector: '' },
|
|
@@ -423,31 +425,31 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
423
425
|
this.v5FormConfig = new sails_ng_common_1.FormConfig();
|
|
424
426
|
this.v4FormPath = [];
|
|
425
427
|
this.mostRecentRepeatableElementTemplatePath = null;
|
|
426
|
-
this.formPathHelper = new
|
|
427
|
-
this.sharedProps = new
|
|
428
|
+
this.formPathHelper = new sails_ng_common_62.FormPathHelper(logger, this);
|
|
429
|
+
this.sharedProps = new sails_ng_common_62.PropertiesHelper();
|
|
428
430
|
}
|
|
429
|
-
start(options) {
|
|
431
|
+
async start(options) {
|
|
430
432
|
this.v4FormConfig = (0, lodash_1.cloneDeep)(this.normaliseV4FormConfig(options.data));
|
|
431
433
|
this.v5FormConfig = new sails_ng_common_1.FormConfig();
|
|
432
434
|
this.v5FormConfig.debugValue = true;
|
|
433
435
|
this.v4FormPath = [];
|
|
434
436
|
this.mostRecentRepeatableElementTemplatePath = null;
|
|
435
437
|
this.formPathHelper.reset();
|
|
436
|
-
this.v5FormConfig.accept(this);
|
|
437
|
-
this.retargetPublishDataLocationSelectorExpressions(this.v5FormConfig.componentDefinitions);
|
|
438
|
+
await this.v5FormConfig.accept(this);
|
|
439
|
+
await this.retargetPublishDataLocationSelectorExpressions(this.v5FormConfig.componentDefinitions);
|
|
438
440
|
const attachmentVisitor = new attachment_fields_visitor_1.AttachmentFieldsVisitor(this.logger);
|
|
439
|
-
attachmentVisitor.start(this.v5FormConfig);
|
|
441
|
+
await attachmentVisitor.start(this.v5FormConfig);
|
|
440
442
|
return this.v5FormConfig;
|
|
441
443
|
}
|
|
442
444
|
/* Form Config */
|
|
443
|
-
visitFormConfig(item) {
|
|
445
|
+
async visitFormConfig(item) {
|
|
444
446
|
const currentData = this.getV4Data();
|
|
445
447
|
// Set properties that are the same in v4 and v5.
|
|
446
448
|
this.sharedProps.setPropOverride('name', item, currentData);
|
|
447
449
|
this.sharedProps.setPropOverride('type', item, currentData);
|
|
448
450
|
this.sharedProps.setPropOverride('viewCssClasses', item, currentData);
|
|
449
451
|
this.sharedProps.setPropOverride('editCssClasses', item, currentData);
|
|
450
|
-
this.applyLegacyFormCssNormalization(item);
|
|
452
|
+
await this.applyLegacyFormCssNormalization(item);
|
|
451
453
|
// Convert properties from v4 to v5.
|
|
452
454
|
// TODO: form.customAngularApp?
|
|
453
455
|
// TODO: form.workflowStep?
|
|
@@ -469,29 +471,30 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
469
471
|
// Convert fields to components
|
|
470
472
|
const fields = currentData.fields ?? [];
|
|
471
473
|
// this.logger.info(`Processing '${item.name}': with ${fields.length} fields at ${JSON.stringify(this.v4FormPath)}.`);
|
|
472
|
-
fields.
|
|
474
|
+
for (let index = 0; index < fields.length; index++) {
|
|
475
|
+
const field = fields[index];
|
|
473
476
|
const v4FormPathMore = ['fields', index.toString()];
|
|
474
477
|
if (this.shouldOmitLegacyField(field, v4FormPathMore)) {
|
|
475
|
-
|
|
478
|
+
continue;
|
|
476
479
|
}
|
|
477
480
|
// Create the instance from the v4 config
|
|
478
481
|
const formComponent = this.constructFormComponent(field, v4FormPathMore);
|
|
479
482
|
// Visit children
|
|
480
483
|
const componentIndex = item.componentDefinitions.length;
|
|
481
|
-
this.acceptV4FormConfigPath(formComponent, this.formPathHelper.lineagePathsForFormConfigComponentDefinition(formComponent, componentIndex), v4FormPathMore);
|
|
484
|
+
await this.acceptV4FormConfigPath(formComponent, this.formPathHelper.lineagePathsForFormConfigComponentDefinition(formComponent, componentIndex), v4FormPathMore);
|
|
482
485
|
// Store the instance on the item
|
|
483
486
|
item.componentDefinitions.push(formComponent);
|
|
484
|
-
const hiddenBinding = this.constructLegacyNameBindingCompanion(field, v4FormPathMore);
|
|
487
|
+
const hiddenBinding = await this.constructLegacyNameBindingCompanion(field, v4FormPathMore);
|
|
485
488
|
if (hiddenBinding) {
|
|
486
|
-
this.retargetLegacyTextBlockBinding(formComponent, hiddenBinding.sourceName, hiddenBinding.sourceName);
|
|
487
|
-
this.ensureLegacyTextBlockComponentNameIsUnique(formComponent, hiddenBinding.sourceName, v4FormPathMore);
|
|
489
|
+
await this.retargetLegacyTextBlockBinding(formComponent, hiddenBinding.sourceName, hiddenBinding.sourceName);
|
|
490
|
+
await this.ensureLegacyTextBlockComponentNameIsUnique(formComponent, hiddenBinding.sourceName, v4FormPathMore);
|
|
488
491
|
const hiddenComponentIndex = item.componentDefinitions.length;
|
|
489
|
-
this.acceptV4FormConfigPath(hiddenBinding.component, this.formPathHelper.lineagePathsForFormConfigComponentDefinition(hiddenBinding.component, hiddenComponentIndex), hiddenBinding.v4FormPathMore);
|
|
490
|
-
this.enforceLegacyHiddenBindingConfig(hiddenBinding.component, hiddenBinding.allowRoles);
|
|
492
|
+
await this.acceptV4FormConfigPath(hiddenBinding.component, this.formPathHelper.lineagePathsForFormConfigComponentDefinition(hiddenBinding.component, hiddenComponentIndex), hiddenBinding.v4FormPathMore);
|
|
493
|
+
await this.enforceLegacyHiddenBindingConfig(hiddenBinding.component, hiddenBinding.allowRoles);
|
|
491
494
|
item.componentDefinitions.push(hiddenBinding.component);
|
|
492
495
|
}
|
|
493
|
-
}
|
|
494
|
-
this.injectLegacyRecordMetadataRetrieverExpressions(fields, item.componentDefinitions, this.formPathHelper.formPath.angularComponentsJsonPointer ?? '');
|
|
496
|
+
}
|
|
497
|
+
await this.injectLegacyRecordMetadataRetrieverExpressions(fields, item.componentDefinitions, this.formPathHelper.formPath.angularComponentsJsonPointer ?? '');
|
|
495
498
|
// Add the validation summary.
|
|
496
499
|
const validationSummaryFrame = {
|
|
497
500
|
name: 'validation_summary',
|
|
@@ -501,7 +504,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
501
504
|
item.componentDefinitions.push(validationSummaryComponent);
|
|
502
505
|
}
|
|
503
506
|
/* SimpleInput */
|
|
504
|
-
visitSimpleInputFieldComponentDefinition(item) {
|
|
507
|
+
async visitSimpleInputFieldComponentDefinition(item) {
|
|
505
508
|
const field = this.getV4Data();
|
|
506
509
|
item.config = new sails_ng_common_7.SimpleInputFieldComponentConfig();
|
|
507
510
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
@@ -510,13 +513,13 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
510
513
|
item.config.type = 'hidden';
|
|
511
514
|
}
|
|
512
515
|
}
|
|
513
|
-
visitSimpleInputFieldModelDefinition(item) {
|
|
516
|
+
async visitSimpleInputFieldModelDefinition(item) {
|
|
514
517
|
const field = this.getV4Data();
|
|
515
518
|
item.config = new sails_ng_common_7.SimpleInputFieldModelConfig();
|
|
516
519
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
517
520
|
}
|
|
518
|
-
visitSimpleInputFormComponentDefinition(item) {
|
|
519
|
-
this.populateFormComponent(item);
|
|
521
|
+
async visitSimpleInputFormComponentDefinition(item) {
|
|
522
|
+
await this.populateFormComponent(item);
|
|
520
523
|
const field = this.getV4Data();
|
|
521
524
|
if (field?.class === 'HiddenValue' || field?.compClass === 'HiddenValueComponent') {
|
|
522
525
|
if (item.component?.config) {
|
|
@@ -528,7 +531,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
528
531
|
}
|
|
529
532
|
}
|
|
530
533
|
/* Content */
|
|
531
|
-
visitContentFieldComponentDefinition(item) {
|
|
534
|
+
async visitContentFieldComponentDefinition(item) {
|
|
532
535
|
const field = this.getV4Data();
|
|
533
536
|
if (!item.config) {
|
|
534
537
|
item.config = new sails_ng_common_22.ContentFieldComponentConfig();
|
|
@@ -689,8 +692,8 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
689
692
|
}
|
|
690
693
|
}
|
|
691
694
|
}
|
|
692
|
-
visitContentFormComponentDefinition(item) {
|
|
693
|
-
this.populateFormComponent(item);
|
|
695
|
+
async visitContentFormComponentDefinition(item) {
|
|
696
|
+
await this.populateFormComponent(item);
|
|
694
697
|
if (this.isLegacyLinkValueControl(this.getV4Data())) {
|
|
695
698
|
const definition = (this.getV4Data()?.definition ?? {});
|
|
696
699
|
const valuePath = typeof definition.name === 'string' ? definition.name.trim() : '';
|
|
@@ -700,7 +703,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
700
703
|
}
|
|
701
704
|
}
|
|
702
705
|
/* Repeatable */
|
|
703
|
-
visitRepeatableFieldComponentDefinition(item) {
|
|
706
|
+
async visitRepeatableFieldComponentDefinition(item) {
|
|
704
707
|
const field = this.getV4Data();
|
|
705
708
|
item.config = new sails_ng_common_4.RepeatableFieldComponentConfig();
|
|
706
709
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
@@ -708,6 +711,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
708
711
|
this.sharedProps.setPropOverride('addButtonShow', item.config, definition);
|
|
709
712
|
this.sharedProps.setPropOverride('allowZeroRows', item.config, definition);
|
|
710
713
|
this.sharedProps.setPropOverride('hideWhenZeroRows', item.config, definition);
|
|
714
|
+
this.sharedProps.setPropOverride('canSort', item.config, definition);
|
|
711
715
|
const currentFormConfigPath = this.formPathHelper.formPath.formConfig;
|
|
712
716
|
const fields = field?.definition?.fields ?? [];
|
|
713
717
|
// this.logger.info(`Processing '${item.class}': with ${fields.length} fields at ${JSON.stringify(this.v4FormPath)}.`);
|
|
@@ -730,7 +734,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
730
734
|
// The elementTemplate's name must be a falsy value.
|
|
731
735
|
formComponent.name = '';
|
|
732
736
|
// Visit children
|
|
733
|
-
this.acceptV4FormConfigPath(formComponent, this.formPathHelper.lineagePathsForRepeatableFieldComponentDefinition(formComponent), v4FormPathMore);
|
|
737
|
+
await this.acceptV4FormConfigPath(formComponent, this.formPathHelper.lineagePathsForRepeatableFieldComponentDefinition(formComponent), v4FormPathMore);
|
|
734
738
|
// Always use the repeatable element layout so each item renders the remove button.
|
|
735
739
|
if (formComponent.layout) {
|
|
736
740
|
formComponent.layout.class = sails_ng_common_3.RepeatableElementLayoutName;
|
|
@@ -761,50 +765,64 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
761
765
|
this.logger.error(`${this.logName}: Expected one field in definition for repeatable, but found ${fields.length}: ${JSON.stringify(field)}`);
|
|
762
766
|
}
|
|
763
767
|
}
|
|
764
|
-
visitRepeatableFieldModelDefinition(item) {
|
|
768
|
+
async visitRepeatableFieldModelDefinition(item) {
|
|
765
769
|
const field = this.getV4Data();
|
|
766
770
|
item.config = new sails_ng_common_4.RepeatableFieldModelConfig();
|
|
767
771
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
768
772
|
}
|
|
769
|
-
visitRepeatableElementFieldLayoutDefinition(item) {
|
|
773
|
+
async visitRepeatableElementFieldLayoutDefinition(item) {
|
|
770
774
|
const field = this.getV4Data();
|
|
771
775
|
item.config = new sails_ng_common_4.RepeatableElementFieldLayoutConfig();
|
|
772
776
|
this.sharedPopulateFieldLayoutConfig(item.config, field);
|
|
773
777
|
}
|
|
774
|
-
visitRepeatableFormComponentDefinition(item) {
|
|
778
|
+
async visitRepeatableFormComponentDefinition(item) {
|
|
775
779
|
const field = this.getV4Data();
|
|
776
|
-
this.populateFormComponent(item);
|
|
780
|
+
await this.populateFormComponent(item);
|
|
777
781
|
const v4ClassName = `${field?.class ?? ''}`.trim();
|
|
778
782
|
if (v4ClassName === 'RepeatableContributor') {
|
|
779
783
|
const definition = (field?.definition ?? {});
|
|
780
784
|
const hasExplicitLabel = typeof definition.label === 'string';
|
|
781
785
|
const contributorLabel = hasExplicitLabel
|
|
782
786
|
? definition.label
|
|
783
|
-
:
|
|
787
|
+
: typeof definition.name === 'string'
|
|
788
|
+
? definition.name
|
|
789
|
+
: undefined;
|
|
784
790
|
if (contributorLabel && item.layout?.config && !item.layout.config.label) {
|
|
785
791
|
item.layout.config.label = contributorLabel;
|
|
786
792
|
}
|
|
787
793
|
}
|
|
788
794
|
}
|
|
789
795
|
/* Validation Summary */
|
|
790
|
-
visitValidationSummaryFieldComponentDefinition(item) {
|
|
796
|
+
async visitValidationSummaryFieldComponentDefinition(item) {
|
|
791
797
|
const field = this.getV4Data();
|
|
792
798
|
item.config = new sails_ng_common_39.ValidationSummaryFieldComponentConfig();
|
|
793
799
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
794
800
|
}
|
|
795
|
-
visitValidationSummaryFormComponentDefinition(item) {
|
|
796
|
-
this.populateFormComponent(item);
|
|
801
|
+
async visitValidationSummaryFormComponentDefinition(item) {
|
|
802
|
+
await this.populateFormComponent(item);
|
|
803
|
+
}
|
|
804
|
+
async visitSuggestedValidationSummaryFieldComponentDefinition(item) {
|
|
805
|
+
const field = this.getV4Data();
|
|
806
|
+
item.config = new sails_ng_common_40.SuggestedValidationSummaryFieldComponentConfig();
|
|
807
|
+
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
808
|
+
this.sharedProps.setPropOverride('enabledValidationGroups', item.config, field?.definition);
|
|
809
|
+
this.sharedProps.setPropOverride('includeTabLabel', item.config, field?.definition);
|
|
810
|
+
this.sharedProps.setPropOverride('showWhenValid', item.config, field?.definition);
|
|
811
|
+
this.sharedProps.setPropOverride('header', item.config, field?.definition);
|
|
812
|
+
}
|
|
813
|
+
async visitSuggestedValidationSummaryFormComponentDefinition(item) {
|
|
814
|
+
await this.populateFormComponent(item);
|
|
797
815
|
}
|
|
798
816
|
/* Record Metadata Retriever */
|
|
799
|
-
visitRecordMetadataRetrieverFieldComponentDefinition(item) {
|
|
817
|
+
async visitRecordMetadataRetrieverFieldComponentDefinition(item) {
|
|
800
818
|
const field = this.getV4Data();
|
|
801
|
-
item.config = new
|
|
819
|
+
item.config = new sails_ng_common_42.RecordMetadataRetrieverFieldComponentConfig();
|
|
802
820
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
803
821
|
item.config.label = undefined;
|
|
804
822
|
item.config.visible = false;
|
|
805
823
|
}
|
|
806
|
-
visitRecordMetadataRetrieverFormComponentDefinition(item) {
|
|
807
|
-
this.populateFormComponent(item);
|
|
824
|
+
async visitRecordMetadataRetrieverFormComponentDefinition(item) {
|
|
825
|
+
await this.populateFormComponent(item);
|
|
808
826
|
if (item.layout?.config) {
|
|
809
827
|
item.layout.config.label = undefined;
|
|
810
828
|
item.layout.config.visible = false;
|
|
@@ -812,25 +830,34 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
812
830
|
}
|
|
813
831
|
// Preserve shared label/visibility/readonly config, while intentionally not
|
|
814
832
|
// inventing any model state during migration.
|
|
815
|
-
visitPublishDataLocationRefreshFieldComponentDefinition(item) {
|
|
833
|
+
async visitPublishDataLocationRefreshFieldComponentDefinition(item) {
|
|
816
834
|
const field = this.getV4Data();
|
|
817
|
-
item.config = new
|
|
835
|
+
item.config = new sails_ng_common_44.PublishDataLocationRefreshFieldComponentConfig();
|
|
818
836
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
819
837
|
}
|
|
820
|
-
visitPublishDataLocationRefreshFormComponentDefinition(item) {
|
|
821
|
-
this.populateFormComponent(item);
|
|
838
|
+
async visitPublishDataLocationRefreshFormComponentDefinition(item) {
|
|
839
|
+
await this.populateFormComponent(item);
|
|
822
840
|
}
|
|
823
841
|
/* Save Status */
|
|
824
|
-
visitSaveStatusFieldComponentDefinition(item) {
|
|
842
|
+
async visitSaveStatusFieldComponentDefinition(item) {
|
|
843
|
+
const field = this.getV4Data();
|
|
844
|
+
item.config = new sails_ng_common_45.SaveStatusFieldComponentConfig();
|
|
845
|
+
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
846
|
+
}
|
|
847
|
+
async visitSaveStatusFormComponentDefinition(item) {
|
|
848
|
+
await this.populateFormComponent(item);
|
|
849
|
+
}
|
|
850
|
+
/* Integration Status */
|
|
851
|
+
async visitIntegrationStatusFieldComponentDefinition(item) {
|
|
825
852
|
const field = this.getV4Data();
|
|
826
|
-
item.config = new
|
|
853
|
+
item.config = new sails_ng_common_46.IntegrationStatusFieldComponentConfig();
|
|
827
854
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
828
855
|
}
|
|
829
|
-
|
|
830
|
-
this.populateFormComponent(item);
|
|
856
|
+
async visitIntegrationStatusFormComponentDefinition(item) {
|
|
857
|
+
await this.populateFormComponent(item);
|
|
831
858
|
}
|
|
832
859
|
/* Group */
|
|
833
|
-
visitGroupFieldComponentDefinition(item) {
|
|
860
|
+
async visitGroupFieldComponentDefinition(item) {
|
|
834
861
|
const field = this.getV4Data();
|
|
835
862
|
const config = new sails_ng_common_5.GroupFieldComponentConfig();
|
|
836
863
|
item.config = config;
|
|
@@ -847,35 +874,36 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
847
874
|
this.logger.debug(`${this.logName}: visitGroupFieldComponentDefinition for '${String(field?.definition?.name ?? field?.definition?.id ?? '')}'.`);
|
|
848
875
|
const fields = field?.definition?.fields ?? [];
|
|
849
876
|
// this.logger.info(`Processing '${item.class}': with ${fields.length} fields at ${JSON.stringify(this.v4FormPath)}.`);
|
|
850
|
-
fields.
|
|
877
|
+
for (let index = 0; index < fields.length; index++) {
|
|
878
|
+
const childField = fields[index];
|
|
851
879
|
if (childField?.class === 'Spacer' || childField?.compClass === 'SpacerComponent') {
|
|
852
|
-
|
|
880
|
+
continue;
|
|
853
881
|
}
|
|
854
882
|
const v4FormPathMore = ['definition', 'fields', index.toString()];
|
|
855
883
|
if (this.shouldOmitLegacyField(childField, v4FormPathMore)) {
|
|
856
|
-
|
|
884
|
+
continue;
|
|
857
885
|
}
|
|
858
886
|
// Create the instance from the v4 config
|
|
859
887
|
const formComponent = this.constructFormComponent(childField, v4FormPathMore);
|
|
860
888
|
// Visit children
|
|
861
889
|
const componentIndex = config.componentDefinitions.length;
|
|
862
|
-
this.acceptV4FormConfigPath(formComponent, this.formPathHelper.lineagePathsForGroupFieldComponentDefinition(formComponent, componentIndex), v4FormPathMore);
|
|
890
|
+
await this.acceptV4FormConfigPath(formComponent, this.formPathHelper.lineagePathsForGroupFieldComponentDefinition(formComponent, componentIndex), v4FormPathMore);
|
|
863
891
|
if (isLegacyInlineContainer && formComponent.layout?.config) {
|
|
864
892
|
formComponent.layout.config.label = undefined;
|
|
865
893
|
}
|
|
866
894
|
// Store the instance on the item
|
|
867
895
|
config.componentDefinitions.push(formComponent);
|
|
868
|
-
const hiddenBinding = this.constructLegacyNameBindingCompanion(childField, v4FormPathMore);
|
|
896
|
+
const hiddenBinding = await this.constructLegacyNameBindingCompanion(childField, v4FormPathMore);
|
|
869
897
|
if (hiddenBinding) {
|
|
870
|
-
this.retargetLegacyTextBlockBinding(formComponent, hiddenBinding.sourceName, hiddenBinding.sourceName);
|
|
871
|
-
this.ensureLegacyTextBlockComponentNameIsUnique(formComponent, hiddenBinding.sourceName, v4FormPathMore);
|
|
898
|
+
await this.retargetLegacyTextBlockBinding(formComponent, hiddenBinding.sourceName, hiddenBinding.sourceName);
|
|
899
|
+
await this.ensureLegacyTextBlockComponentNameIsUnique(formComponent, hiddenBinding.sourceName, v4FormPathMore);
|
|
872
900
|
const hiddenComponentIndex = config.componentDefinitions.length;
|
|
873
|
-
this.acceptV4FormConfigPath(hiddenBinding.component, this.formPathHelper.lineagePathsForGroupFieldComponentDefinition(hiddenBinding.component, hiddenComponentIndex), hiddenBinding.v4FormPathMore);
|
|
874
|
-
this.enforceLegacyHiddenBindingConfig(hiddenBinding.component, hiddenBinding.allowRoles);
|
|
901
|
+
await this.acceptV4FormConfigPath(hiddenBinding.component, this.formPathHelper.lineagePathsForGroupFieldComponentDefinition(hiddenBinding.component, hiddenComponentIndex), hiddenBinding.v4FormPathMore);
|
|
902
|
+
await this.enforceLegacyHiddenBindingConfig(hiddenBinding.component, hiddenBinding.allowRoles);
|
|
875
903
|
config.componentDefinitions.push(hiddenBinding.component);
|
|
876
904
|
}
|
|
877
|
-
}
|
|
878
|
-
this.injectLegacyRecordMetadataRetrieverExpressions(fields, config.componentDefinitions, this.formPathHelper.formPath.angularComponentsJsonPointer ?? '');
|
|
905
|
+
}
|
|
906
|
+
await this.injectLegacyRecordMetadataRetrieverExpressions(fields, config.componentDefinitions, this.formPathHelper.formPath.angularComponentsJsonPointer ?? '');
|
|
879
907
|
}
|
|
880
908
|
finally {
|
|
881
909
|
if (isLegacyInlineContainer) {
|
|
@@ -886,7 +914,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
886
914
|
}
|
|
887
915
|
}
|
|
888
916
|
}
|
|
889
|
-
visitGroupFieldModelDefinition(item) {
|
|
917
|
+
async visitGroupFieldModelDefinition(item) {
|
|
890
918
|
const field = this.getV4Data();
|
|
891
919
|
item.config = new sails_ng_common_5.GroupFieldModelConfig();
|
|
892
920
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
@@ -894,21 +922,21 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
894
922
|
item.config.disabled = true;
|
|
895
923
|
}
|
|
896
924
|
}
|
|
897
|
-
visitGroupFormComponentDefinition(item) {
|
|
898
|
-
this.populateFormComponent(item);
|
|
925
|
+
async visitGroupFormComponentDefinition(item) {
|
|
926
|
+
await this.populateFormComponent(item);
|
|
899
927
|
}
|
|
900
928
|
/* Tab */
|
|
901
|
-
visitTabFieldComponentDefinition(item) {
|
|
929
|
+
async visitTabFieldComponentDefinition(item) {
|
|
902
930
|
const field = this.getV4Data();
|
|
903
931
|
const config = new sails_ng_common_15.TabFieldComponentConfig();
|
|
904
932
|
item.config = config;
|
|
905
933
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
906
934
|
const fields = field?.definition?.fields ?? [];
|
|
907
935
|
// this.logger.info(`Processing '${item.class}': with ${fields.length} fields at ${JSON.stringify(this.v4FormPath)}.`);
|
|
908
|
-
fields.
|
|
936
|
+
for (const [index, field] of fields.entries()) {
|
|
909
937
|
const v4FormPathMore = ['definition', 'fields', index.toString()];
|
|
910
938
|
if (this.shouldOmitLegacyField(field, v4FormPathMore)) {
|
|
911
|
-
|
|
939
|
+
continue;
|
|
912
940
|
}
|
|
913
941
|
// TODO: Does this approach to mapping the tab content component lose data?
|
|
914
942
|
// build tab component from field by setting 'placeholder' v4 class
|
|
@@ -916,55 +944,56 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
916
944
|
field.class = 'TabContentContainer';
|
|
917
945
|
// Create the instance from the v4 config
|
|
918
946
|
const formComponent = this.constructFormComponent(field, v4FormPathMore);
|
|
919
|
-
if ((0,
|
|
947
|
+
if ((0, sails_ng_common_64.isTypeFormComponentDefinitionName)(formComponent, sails_ng_common_16.TabContentComponentName)) {
|
|
920
948
|
// Visit children
|
|
921
|
-
this.acceptV4FormConfigPath(formComponent, this.formPathHelper.lineagePathsForTabFieldComponentDefinition(formComponent, index), v4FormPathMore);
|
|
949
|
+
await this.acceptV4FormConfigPath(formComponent, this.formPathHelper.lineagePathsForTabFieldComponentDefinition(formComponent, index), v4FormPathMore);
|
|
922
950
|
// Store the instance on the item
|
|
923
951
|
config.tabs.push(formComponent);
|
|
924
952
|
}
|
|
925
|
-
}
|
|
953
|
+
}
|
|
926
954
|
}
|
|
927
|
-
visitTabFieldLayoutDefinition(item) {
|
|
955
|
+
async visitTabFieldLayoutDefinition(item) {
|
|
928
956
|
const field = this.getV4Data();
|
|
929
957
|
item.config = new sails_ng_common_15.TabFieldLayoutConfig();
|
|
930
958
|
this.sharedPopulateFieldLayoutConfig(item.config, field);
|
|
931
959
|
}
|
|
932
|
-
visitTabFormComponentDefinition(item) {
|
|
933
|
-
this.populateFormComponent(item);
|
|
960
|
+
async visitTabFormComponentDefinition(item) {
|
|
961
|
+
await this.populateFormComponent(item);
|
|
934
962
|
}
|
|
935
963
|
/* Tab Content */
|
|
936
|
-
visitTabContentFieldComponentDefinition(item) {
|
|
964
|
+
async visitTabContentFieldComponentDefinition(item) {
|
|
937
965
|
const field = this.getV4Data();
|
|
938
966
|
const config = new sails_ng_common_17.TabContentFieldComponentConfig();
|
|
939
967
|
item.config = config;
|
|
940
968
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
941
969
|
const fields = field?.definition?.fields ?? [];
|
|
942
970
|
// this.logger.info(`Processing '${item.class}': with ${fields.length} fields at ${JSON.stringify(this.v4FormPath)}.`);
|
|
943
|
-
fields.
|
|
971
|
+
for (let index = 0; index < fields.length; index++) {
|
|
972
|
+
const field1 = fields[index];
|
|
944
973
|
const v4FormPathMore = ['definition', 'fields', index.toString()];
|
|
945
|
-
if (this.shouldOmitLegacyField(
|
|
946
|
-
|
|
974
|
+
if (this.shouldOmitLegacyField(field1, v4FormPathMore)) {
|
|
975
|
+
continue;
|
|
947
976
|
}
|
|
948
977
|
// Create the instance from the v4 config
|
|
949
|
-
const formComponent = this.constructFormComponent(
|
|
978
|
+
const formComponent = this.constructFormComponent(field1, v4FormPathMore);
|
|
950
979
|
// Visit children
|
|
951
980
|
const componentIndex = config.componentDefinitions.length;
|
|
952
|
-
this.acceptV4FormConfigPath(formComponent, this.formPathHelper.lineagePathsForTabContentFieldComponentDefinition(formComponent, componentIndex), ['definition', 'fields', index.toString()]);
|
|
981
|
+
await this.acceptV4FormConfigPath(formComponent, this.formPathHelper.lineagePathsForTabContentFieldComponentDefinition(formComponent, componentIndex), ['definition', 'fields', index.toString()]);
|
|
953
982
|
// Store the instance on the item
|
|
954
983
|
config.componentDefinitions.push(formComponent);
|
|
955
|
-
const hiddenBinding = this.constructLegacyNameBindingCompanion(
|
|
984
|
+
const hiddenBinding = await this.constructLegacyNameBindingCompanion(field1, v4FormPathMore);
|
|
956
985
|
if (hiddenBinding) {
|
|
957
|
-
this.retargetLegacyTextBlockBinding(formComponent, hiddenBinding.sourceName, hiddenBinding.sourceName);
|
|
958
|
-
this.ensureLegacyTextBlockComponentNameIsUnique(formComponent, hiddenBinding.sourceName, v4FormPathMore);
|
|
986
|
+
await this.retargetLegacyTextBlockBinding(formComponent, hiddenBinding.sourceName, hiddenBinding.sourceName);
|
|
987
|
+
await this.ensureLegacyTextBlockComponentNameIsUnique(formComponent, hiddenBinding.sourceName, v4FormPathMore);
|
|
959
988
|
const hiddenComponentIndex = config.componentDefinitions.length;
|
|
960
|
-
this.acceptV4FormConfigPath(hiddenBinding.component, this.formPathHelper.lineagePathsForTabContentFieldComponentDefinition(hiddenBinding.component, hiddenComponentIndex), hiddenBinding.v4FormPathMore);
|
|
961
|
-
this.enforceLegacyHiddenBindingConfig(hiddenBinding.component, hiddenBinding.allowRoles);
|
|
989
|
+
await this.acceptV4FormConfigPath(hiddenBinding.component, this.formPathHelper.lineagePathsForTabContentFieldComponentDefinition(hiddenBinding.component, hiddenComponentIndex), hiddenBinding.v4FormPathMore);
|
|
990
|
+
await this.enforceLegacyHiddenBindingConfig(hiddenBinding.component, hiddenBinding.allowRoles);
|
|
962
991
|
config.componentDefinitions.push(hiddenBinding.component);
|
|
963
992
|
}
|
|
964
|
-
}
|
|
965
|
-
this.injectLegacyRecordMetadataRetrieverExpressions(fields, config.componentDefinitions, this.formPathHelper.formPath.angularComponentsJsonPointer ?? '');
|
|
993
|
+
}
|
|
994
|
+
await this.injectLegacyRecordMetadataRetrieverExpressions(fields, config.componentDefinitions, this.formPathHelper.formPath.angularComponentsJsonPointer ?? '');
|
|
966
995
|
}
|
|
967
|
-
visitTabContentFieldLayoutDefinition(item) {
|
|
996
|
+
async visitTabContentFieldLayoutDefinition(item) {
|
|
968
997
|
const field = this.getV4Data();
|
|
969
998
|
item.config = new sails_ng_common_17.TabContentFieldLayoutConfig();
|
|
970
999
|
if (field?.definition?.label) {
|
|
@@ -972,14 +1001,22 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
972
1001
|
}
|
|
973
1002
|
this.sharedPopulateFieldLayoutConfig(item.config, field);
|
|
974
1003
|
}
|
|
975
|
-
visitTabContentFormComponentDefinition(item) {
|
|
976
|
-
this.populateFormComponent(item);
|
|
1004
|
+
async visitTabContentFormComponentDefinition(item) {
|
|
1005
|
+
await this.populateFormComponent(item);
|
|
977
1006
|
}
|
|
978
1007
|
/* Save Button */
|
|
979
|
-
visitSaveButtonFieldComponentDefinition(item) {
|
|
1008
|
+
async visitSaveButtonFieldComponentDefinition(item) {
|
|
980
1009
|
const field = this.getV4Data();
|
|
981
1010
|
item.config = new sails_ng_common_32.SaveButtonFieldComponentConfig();
|
|
982
1011
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1012
|
+
this.sharedProps.setPropOverride('closeOnSave', item.config, {
|
|
1013
|
+
closeOnSave: field?.definition?.closeOnSave,
|
|
1014
|
+
});
|
|
1015
|
+
this.sharedProps.setPropOverride('redirectLocation', item.config, field?.definition);
|
|
1016
|
+
if (typeof item.config.redirectLocation === 'string' && item.config.redirectLocation.trim()) {
|
|
1017
|
+
item.config.redirectLocation = this.buildLegacyUrlTemplate(item.config.redirectLocation);
|
|
1018
|
+
}
|
|
1019
|
+
this.sharedProps.setPropOverride('redirectDelaySeconds', item.config, field?.definition);
|
|
983
1020
|
this.sharedProps.setPropOverride('targetStep', item.config, field?.definition);
|
|
984
1021
|
this.sharedProps.setPropOverride('forceSave', item.config, field?.definition);
|
|
985
1022
|
this.sharedProps.setPropOverride('enabledValidationGroups', item.config, field?.definition);
|
|
@@ -988,11 +1025,11 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
988
1025
|
buttonCssClasses: this.normalizeLegacyButtonCssClasses(field?.definition?.cssClasses ?? field?.definition?.cssClass),
|
|
989
1026
|
});
|
|
990
1027
|
}
|
|
991
|
-
visitSaveButtonFormComponentDefinition(item) {
|
|
992
|
-
this.populateFormComponent(item);
|
|
1028
|
+
async visitSaveButtonFormComponentDefinition(item) {
|
|
1029
|
+
await this.populateFormComponent(item);
|
|
993
1030
|
}
|
|
994
1031
|
/* Cancel Button */
|
|
995
|
-
visitCancelButtonFieldComponentDefinition(item) {
|
|
1032
|
+
async visitCancelButtonFieldComponentDefinition(item) {
|
|
996
1033
|
const field = this.getV4Data();
|
|
997
1034
|
item.config = new sails_ng_common_34.CancelButtonFieldComponentConfig();
|
|
998
1035
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
@@ -1004,11 +1041,11 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1004
1041
|
buttonCssClasses: this.normalizeLegacyButtonCssClasses(field?.definition?.cssClasses ?? field?.definition?.cssClass),
|
|
1005
1042
|
});
|
|
1006
1043
|
}
|
|
1007
|
-
visitCancelButtonFormComponentDefinition(item) {
|
|
1008
|
-
this.populateFormComponent(item);
|
|
1044
|
+
async visitCancelButtonFormComponentDefinition(item) {
|
|
1045
|
+
await this.populateFormComponent(item);
|
|
1009
1046
|
}
|
|
1010
1047
|
/* Delete Button */
|
|
1011
|
-
visitDeleteButtonFieldComponentDefinition(item) {
|
|
1048
|
+
async visitDeleteButtonFieldComponentDefinition(item) {
|
|
1012
1049
|
const field = this.getV4Data();
|
|
1013
1050
|
item.config = new sails_ng_common_36.DeleteButtonFieldComponentConfig();
|
|
1014
1051
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
@@ -1028,11 +1065,11 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1028
1065
|
buttonCssClasses: this.normalizeLegacyButtonCssClasses(field?.definition?.cssClasses ?? field?.definition?.cssClass),
|
|
1029
1066
|
});
|
|
1030
1067
|
}
|
|
1031
|
-
visitDeleteButtonFormComponentDefinition(item) {
|
|
1032
|
-
this.populateFormComponent(item);
|
|
1068
|
+
async visitDeleteButtonFormComponentDefinition(item) {
|
|
1069
|
+
await this.populateFormComponent(item);
|
|
1033
1070
|
}
|
|
1034
1071
|
/* Tab Nav Button */
|
|
1035
|
-
visitTabNavButtonFieldComponentDefinition(item) {
|
|
1072
|
+
async visitTabNavButtonFieldComponentDefinition(item) {
|
|
1036
1073
|
const field = this.getV4Data();
|
|
1037
1074
|
item.config = new sails_ng_common_38.TabNavButtonFieldComponentConfig();
|
|
1038
1075
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
@@ -1041,11 +1078,11 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1041
1078
|
this.sharedProps.setPropOverride('targetTabContainerId', item.config, field?.definition);
|
|
1042
1079
|
this.sharedProps.setPropOverride('endDisplayMode', item.config, field?.definition);
|
|
1043
1080
|
}
|
|
1044
|
-
visitTabNavButtonFormComponentDefinition(item) {
|
|
1045
|
-
this.populateFormComponent(item);
|
|
1081
|
+
async visitTabNavButtonFormComponentDefinition(item) {
|
|
1082
|
+
await this.populateFormComponent(item);
|
|
1046
1083
|
}
|
|
1047
1084
|
/* Text Area */
|
|
1048
|
-
visitTextAreaFieldComponentDefinition(item) {
|
|
1085
|
+
async visitTextAreaFieldComponentDefinition(item) {
|
|
1049
1086
|
const field = this.getV4Data();
|
|
1050
1087
|
item.config = new sails_ng_common_19.TextAreaFieldComponentConfig();
|
|
1051
1088
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
@@ -1058,16 +1095,16 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1058
1095
|
const rows = rowsParsed !== undefined && Number.isFinite(rowsParsed) ? rowsParsed : undefined;
|
|
1059
1096
|
this.sharedProps.setPropOverride('rows', item.config, { rows });
|
|
1060
1097
|
}
|
|
1061
|
-
visitTextAreaFieldModelDefinition(item) {
|
|
1098
|
+
async visitTextAreaFieldModelDefinition(item) {
|
|
1062
1099
|
const field = this.getV4Data();
|
|
1063
1100
|
item.config = new sails_ng_common_19.TextAreaFieldModelConfig();
|
|
1064
1101
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1065
1102
|
}
|
|
1066
|
-
visitTextAreaFormComponentDefinition(item) {
|
|
1067
|
-
this.populateFormComponent(item);
|
|
1103
|
+
async visitTextAreaFormComponentDefinition(item) {
|
|
1104
|
+
await this.populateFormComponent(item);
|
|
1068
1105
|
}
|
|
1069
1106
|
/* Rich Text Editor */
|
|
1070
|
-
visitRichTextEditorFieldComponentDefinition(item) {
|
|
1107
|
+
async visitRichTextEditorFieldComponentDefinition(item) {
|
|
1071
1108
|
const field = this.getV4Data();
|
|
1072
1109
|
item.config = new sails_ng_common_21.RichTextEditorFieldComponentConfig();
|
|
1073
1110
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
@@ -1076,18 +1113,18 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1076
1113
|
item.config.outputFormat = 'markdown';
|
|
1077
1114
|
}
|
|
1078
1115
|
}
|
|
1079
|
-
visitRichTextEditorFieldModelDefinition(item) {
|
|
1116
|
+
async visitRichTextEditorFieldModelDefinition(item) {
|
|
1080
1117
|
const field = this.getV4Data();
|
|
1081
1118
|
item.config = new sails_ng_common_21.RichTextEditorFieldModelConfig();
|
|
1082
1119
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1083
1120
|
}
|
|
1084
|
-
visitRichTextEditorFormComponentDefinition(item) {
|
|
1085
|
-
this.populateFormComponent(item);
|
|
1121
|
+
async visitRichTextEditorFormComponentDefinition(item) {
|
|
1122
|
+
await this.populateFormComponent(item);
|
|
1086
1123
|
}
|
|
1087
1124
|
/* Map */
|
|
1088
|
-
visitMapFieldComponentDefinition(item) {
|
|
1125
|
+
async visitMapFieldComponentDefinition(item) {
|
|
1089
1126
|
const field = this.getV4Data();
|
|
1090
|
-
item.config = new
|
|
1127
|
+
item.config = new sails_ng_common_52.MapFieldComponentConfig();
|
|
1091
1128
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1092
1129
|
const rawDefinition = (field?.definition ?? {});
|
|
1093
1130
|
const leafletOptions = this.readObject(rawDefinition.leafletOptions);
|
|
@@ -1109,19 +1146,19 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1109
1146
|
this.sharedProps.setPropOverride('enabledModes', item.config, { enabledModes });
|
|
1110
1147
|
}
|
|
1111
1148
|
}
|
|
1112
|
-
visitMapFieldModelDefinition(item) {
|
|
1149
|
+
async visitMapFieldModelDefinition(item) {
|
|
1113
1150
|
const field = this.getV4Data();
|
|
1114
|
-
item.config = new
|
|
1151
|
+
item.config = new sails_ng_common_52.MapFieldModelConfig();
|
|
1115
1152
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1116
|
-
this.coerceMapFeatureCollection(item.config);
|
|
1153
|
+
await this.coerceMapFeatureCollection(item.config);
|
|
1117
1154
|
}
|
|
1118
|
-
visitMapFormComponentDefinition(item) {
|
|
1119
|
-
this.populateFormComponent(item);
|
|
1155
|
+
async visitMapFormComponentDefinition(item) {
|
|
1156
|
+
await this.populateFormComponent(item);
|
|
1120
1157
|
}
|
|
1121
1158
|
/* File Upload */
|
|
1122
|
-
visitFileUploadFieldComponentDefinition(item) {
|
|
1159
|
+
async visitFileUploadFieldComponentDefinition(item) {
|
|
1123
1160
|
const field = this.getV4Data();
|
|
1124
|
-
item.config = new
|
|
1161
|
+
item.config = new sails_ng_common_54.FileUploadFieldComponentConfig();
|
|
1125
1162
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1126
1163
|
const restrictions = this.readObject(field?.definition?.restrictions);
|
|
1127
1164
|
if (restrictions) {
|
|
@@ -1150,18 +1187,18 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1150
1187
|
});
|
|
1151
1188
|
}
|
|
1152
1189
|
}
|
|
1153
|
-
visitFileUploadFieldModelDefinition(item) {
|
|
1190
|
+
async visitFileUploadFieldModelDefinition(item) {
|
|
1154
1191
|
const field = this.getV4Data();
|
|
1155
|
-
item.config = new
|
|
1192
|
+
item.config = new sails_ng_common_54.FileUploadFieldModelConfig();
|
|
1156
1193
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1157
1194
|
}
|
|
1158
|
-
visitFileUploadFormComponentDefinition(item) {
|
|
1159
|
-
this.populateFormComponent(item);
|
|
1195
|
+
async visitFileUploadFormComponentDefinition(item) {
|
|
1196
|
+
await this.populateFormComponent(item);
|
|
1160
1197
|
}
|
|
1161
1198
|
/* PDF List */
|
|
1162
|
-
visitPDFListFieldComponentDefinition(item) {
|
|
1199
|
+
async visitPDFListFieldComponentDefinition(item) {
|
|
1163
1200
|
const field = this.getV4Data();
|
|
1164
|
-
item.config = new
|
|
1201
|
+
item.config = new sails_ng_common_56.PDFListFieldComponentConfig();
|
|
1165
1202
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1166
1203
|
const mappedProps = [
|
|
1167
1204
|
'startsWith',
|
|
@@ -1191,18 +1228,18 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1191
1228
|
}
|
|
1192
1229
|
return value.replace(/<%=\s*([\s\S]+?)\s*%>/g, '{{$1}}');
|
|
1193
1230
|
}
|
|
1194
|
-
visitPDFListFieldModelDefinition(item) {
|
|
1231
|
+
async visitPDFListFieldModelDefinition(item) {
|
|
1195
1232
|
const field = this.getV4Data();
|
|
1196
|
-
item.config = new
|
|
1233
|
+
item.config = new sails_ng_common_56.PDFListFieldModelConfig();
|
|
1197
1234
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1198
1235
|
}
|
|
1199
|
-
visitPDFListFormComponentDefinition(item) {
|
|
1200
|
-
this.populateFormComponent(item);
|
|
1236
|
+
async visitPDFListFormComponentDefinition(item) {
|
|
1237
|
+
await this.populateFormComponent(item);
|
|
1201
1238
|
}
|
|
1202
1239
|
/* Data Location */
|
|
1203
|
-
visitDataLocationFieldComponentDefinition(item) {
|
|
1240
|
+
async visitDataLocationFieldComponentDefinition(item) {
|
|
1204
1241
|
const field = this.getV4Data();
|
|
1205
|
-
item.config = new
|
|
1242
|
+
item.config = new sails_ng_common_58.DataLocationFieldComponentConfig();
|
|
1206
1243
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1207
1244
|
const mappedProps = [
|
|
1208
1245
|
'restrictions',
|
|
@@ -1218,6 +1255,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1218
1255
|
'columns',
|
|
1219
1256
|
'notesHeader',
|
|
1220
1257
|
'dataTypes',
|
|
1258
|
+
'dataTypePlaceholder',
|
|
1221
1259
|
'dataTypeLookup',
|
|
1222
1260
|
'hideNotesForLocationTypes',
|
|
1223
1261
|
'allowUploadWithoutSave',
|
|
@@ -1225,7 +1263,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1225
1263
|
'editNotesTitle',
|
|
1226
1264
|
'cancelEditNotesButtonText',
|
|
1227
1265
|
'applyEditNotesButtonText',
|
|
1228
|
-
'editNotesCssClasses'
|
|
1266
|
+
'editNotesCssClasses',
|
|
1229
1267
|
];
|
|
1230
1268
|
for (const prop of mappedProps) {
|
|
1231
1269
|
if (field?.definition?.[prop] !== undefined) {
|
|
@@ -1233,17 +1271,17 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1233
1271
|
}
|
|
1234
1272
|
}
|
|
1235
1273
|
}
|
|
1236
|
-
visitDataLocationFieldModelDefinition(item) {
|
|
1274
|
+
async visitDataLocationFieldModelDefinition(item) {
|
|
1237
1275
|
const field = this.getV4Data();
|
|
1238
|
-
item.config = new
|
|
1276
|
+
item.config = new sails_ng_common_58.DataLocationFieldModelConfig();
|
|
1239
1277
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1240
1278
|
}
|
|
1241
|
-
visitDataLocationFormComponentDefinition(item) {
|
|
1242
|
-
this.populateFormComponent(item);
|
|
1279
|
+
async visitDataLocationFormComponentDefinition(item) {
|
|
1280
|
+
await this.populateFormComponent(item);
|
|
1243
1281
|
}
|
|
1244
|
-
visitPublishDataLocationSelectorFieldComponentDefinition(item) {
|
|
1282
|
+
async visitPublishDataLocationSelectorFieldComponentDefinition(item) {
|
|
1245
1283
|
const field = this.getV4Data();
|
|
1246
|
-
item.config = new
|
|
1284
|
+
item.config = new sails_ng_common_60.PublishDataLocationSelectorFieldComponentConfig();
|
|
1247
1285
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1248
1286
|
const mappedProps = [
|
|
1249
1287
|
'columns',
|
|
@@ -1258,8 +1296,6 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1258
1296
|
'iscHeader',
|
|
1259
1297
|
'iscEnabled',
|
|
1260
1298
|
'notesEnabled',
|
|
1261
|
-
'noLocationSelectedText',
|
|
1262
|
-
'noLocationSelectedHelp',
|
|
1263
1299
|
'publicCheck',
|
|
1264
1300
|
'selectionCriteria',
|
|
1265
1301
|
'dataTypes',
|
|
@@ -1271,13 +1307,13 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1271
1307
|
}
|
|
1272
1308
|
}
|
|
1273
1309
|
}
|
|
1274
|
-
visitPublishDataLocationSelectorFieldModelDefinition(item) {
|
|
1310
|
+
async visitPublishDataLocationSelectorFieldModelDefinition(item) {
|
|
1275
1311
|
const field = this.getV4Data();
|
|
1276
|
-
item.config = new
|
|
1312
|
+
item.config = new sails_ng_common_60.PublishDataLocationSelectorFieldModelConfig();
|
|
1277
1313
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1278
1314
|
}
|
|
1279
|
-
visitPublishDataLocationSelectorFormComponentDefinition(item) {
|
|
1280
|
-
this.populateFormComponent(item);
|
|
1315
|
+
async visitPublishDataLocationSelectorFormComponentDefinition(item) {
|
|
1316
|
+
await this.populateFormComponent(item);
|
|
1281
1317
|
const field = this.getV4Data();
|
|
1282
1318
|
const definition = (field?.definition ?? {});
|
|
1283
1319
|
const subscribe = (definition.subscribe ?? {});
|
|
@@ -1300,7 +1336,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1300
1336
|
name: `${sourceName}-${item.name}-${propertyName}`.replace(/[^a-zA-Z0-9_-]+/g, '-'),
|
|
1301
1337
|
description: `Populate ${item.name} from ${sourceName} metadata`,
|
|
1302
1338
|
config: {
|
|
1303
|
-
conditionKind:
|
|
1339
|
+
conditionKind: sails_ng_common_65.ExpressionsConditionKind.JSONPointer,
|
|
1304
1340
|
runOnFormReady: false,
|
|
1305
1341
|
condition: `${sourcePointer}::field.value.changed`,
|
|
1306
1342
|
target: 'model.value',
|
|
@@ -1315,7 +1351,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1315
1351
|
}
|
|
1316
1352
|
}
|
|
1317
1353
|
/* Default Layout */
|
|
1318
|
-
visitDefaultFieldLayoutDefinition(item) {
|
|
1354
|
+
async visitDefaultFieldLayoutDefinition(item) {
|
|
1319
1355
|
const field = this.getV4Data();
|
|
1320
1356
|
item.config = new sails_ng_common_9.DefaultFieldLayoutConfig();
|
|
1321
1357
|
this.sharedPopulateFieldLayoutConfig(item.config, field);
|
|
@@ -1324,7 +1360,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1324
1360
|
item.config.label = undefined;
|
|
1325
1361
|
}
|
|
1326
1362
|
}
|
|
1327
|
-
visitActionRowFieldLayoutDefinition(item) {
|
|
1363
|
+
async visitActionRowFieldLayoutDefinition(item) {
|
|
1328
1364
|
const field = this.getV4Data();
|
|
1329
1365
|
item.config = new sails_ng_common_11.ActionRowFieldLayoutConfig();
|
|
1330
1366
|
this.sharedPopulateFieldLayoutConfig(item.config, field);
|
|
@@ -1335,14 +1371,14 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1335
1371
|
}
|
|
1336
1372
|
}
|
|
1337
1373
|
/* Checkbox Input */
|
|
1338
|
-
visitCheckboxInputFieldComponentDefinition(item) {
|
|
1374
|
+
async visitCheckboxInputFieldComponentDefinition(item) {
|
|
1339
1375
|
const field = this.getV4Data();
|
|
1340
1376
|
item.config = new sails_ng_common_27.CheckboxInputFieldComponentConfig();
|
|
1341
1377
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1342
1378
|
const options = this.migrateOptions(field);
|
|
1343
1379
|
this.sharedProps.setPropOverride('options', item.config, { options: options });
|
|
1344
1380
|
}
|
|
1345
|
-
visitCheckboxInputFieldModelDefinition(item) {
|
|
1381
|
+
async visitCheckboxInputFieldModelDefinition(item) {
|
|
1346
1382
|
const field = this.getV4Data();
|
|
1347
1383
|
item.config = new sails_ng_common_27.CheckboxInputFieldModelConfig();
|
|
1348
1384
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
@@ -1353,13 +1389,13 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1353
1389
|
delete item.config.defaultValue;
|
|
1354
1390
|
}
|
|
1355
1391
|
}
|
|
1356
|
-
visitCheckboxInputFormComponentDefinition(item) {
|
|
1357
|
-
this.populateFormComponent(item);
|
|
1392
|
+
async visitCheckboxInputFormComponentDefinition(item) {
|
|
1393
|
+
await this.populateFormComponent(item);
|
|
1358
1394
|
}
|
|
1359
1395
|
/* Checkbox Tree */
|
|
1360
|
-
visitCheckboxTreeFieldComponentDefinition(item) {
|
|
1396
|
+
async visitCheckboxTreeFieldComponentDefinition(item) {
|
|
1361
1397
|
const field = this.getV4Data();
|
|
1362
|
-
item.config = new
|
|
1398
|
+
item.config = new sails_ng_common_48.CheckboxTreeFieldComponentConfig();
|
|
1363
1399
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1364
1400
|
const rawDefinition = (field?.definition ?? {});
|
|
1365
1401
|
const vocabRef = String(rawDefinition.vocabRef ?? rawDefinition.vocabId ?? '').trim();
|
|
@@ -1384,26 +1420,29 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1384
1420
|
labelTemplate: andsVocabDefaultLabelTemplate,
|
|
1385
1421
|
});
|
|
1386
1422
|
}
|
|
1387
|
-
this.warnOnMalformedLegacyRegex(rawDefinition);
|
|
1423
|
+
await this.warnOnMalformedLegacyRegex(rawDefinition);
|
|
1388
1424
|
}
|
|
1389
|
-
visitCheckboxTreeFieldModelDefinition(item) {
|
|
1425
|
+
async visitCheckboxTreeFieldModelDefinition(item) {
|
|
1390
1426
|
const field = this.getV4Data();
|
|
1391
|
-
item.config = new
|
|
1427
|
+
item.config = new sails_ng_common_48.CheckboxTreeFieldModelConfig();
|
|
1392
1428
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1393
|
-
this.coerceCheckboxTreeDefaultValue(item.config);
|
|
1429
|
+
await this.coerceCheckboxTreeDefaultValue(item.config);
|
|
1394
1430
|
}
|
|
1395
|
-
visitCheckboxTreeFormComponentDefinition(item) {
|
|
1396
|
-
this.populateFormComponent(item);
|
|
1431
|
+
async visitCheckboxTreeFormComponentDefinition(item) {
|
|
1432
|
+
await this.populateFormComponent(item);
|
|
1397
1433
|
}
|
|
1398
1434
|
/* Record Selector */
|
|
1399
|
-
visitRecordSelectorFieldComponentDefinition(item) {
|
|
1435
|
+
async visitRecordSelectorFieldComponentDefinition(item) {
|
|
1400
1436
|
const field = this.getV4Data();
|
|
1401
|
-
item.config = new
|
|
1437
|
+
item.config = new sails_ng_common_50.RecordSelectorFieldComponentConfig();
|
|
1402
1438
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1403
1439
|
const definition = (field?.definition ?? {});
|
|
1404
1440
|
this.sharedProps.setPropOverride('columnTitle', item.config, {
|
|
1405
1441
|
columnTitle: String(definition.columnTitle ?? 'Record title'),
|
|
1406
1442
|
});
|
|
1443
|
+
this.sharedProps.setPropOverride('relationshipId', item.config, {
|
|
1444
|
+
relationshipId: typeof definition.relationshipId === 'string' ? definition.relationshipId : undefined,
|
|
1445
|
+
});
|
|
1407
1446
|
this.sharedProps.setPropOverride('recordType', item.config, {
|
|
1408
1447
|
recordType: typeof definition.recordType === 'string' ? definition.recordType : undefined,
|
|
1409
1448
|
});
|
|
@@ -1430,13 +1469,13 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1430
1469
|
});
|
|
1431
1470
|
this.sharedProps.setPropOverride('filterFields', item.config, {
|
|
1432
1471
|
filterFields: Array.isArray(definition.filterFields)
|
|
1433
|
-
? definition.filterFields.map(
|
|
1472
|
+
? definition.filterFields.map(fieldName => String(fieldName))
|
|
1434
1473
|
: [],
|
|
1435
1474
|
});
|
|
1436
1475
|
}
|
|
1437
|
-
visitRecordSelectorFieldModelDefinition(item) {
|
|
1476
|
+
async visitRecordSelectorFieldModelDefinition(item) {
|
|
1438
1477
|
const field = this.getV4Data();
|
|
1439
|
-
item.config = new
|
|
1478
|
+
item.config = new sails_ng_common_50.RecordSelectorFieldModelConfig();
|
|
1440
1479
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1441
1480
|
const coerceRecordSelectorValue = (value) => {
|
|
1442
1481
|
if (!value || typeof value !== 'object') {
|
|
@@ -1460,27 +1499,27 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1460
1499
|
item.config.value = coerceRecordSelectorValue(item.config.value);
|
|
1461
1500
|
}
|
|
1462
1501
|
}
|
|
1463
|
-
visitRecordSelectorFormComponentDefinition(item) {
|
|
1464
|
-
this.populateFormComponent(item);
|
|
1502
|
+
async visitRecordSelectorFormComponentDefinition(item) {
|
|
1503
|
+
await this.populateFormComponent(item);
|
|
1465
1504
|
}
|
|
1466
1505
|
/* Dropdown Input */
|
|
1467
|
-
visitDropdownInputFieldComponentDefinition(item) {
|
|
1506
|
+
async visitDropdownInputFieldComponentDefinition(item) {
|
|
1468
1507
|
const field = this.getV4Data();
|
|
1469
1508
|
item.config = new sails_ng_common_24.DropdownInputFieldComponentConfig();
|
|
1470
1509
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1471
1510
|
const options = this.migrateOptions(field);
|
|
1472
1511
|
this.sharedProps.setPropOverride('options', item.config, { options: options });
|
|
1473
1512
|
}
|
|
1474
|
-
visitDropdownInputFieldModelDefinition(item) {
|
|
1513
|
+
async visitDropdownInputFieldModelDefinition(item) {
|
|
1475
1514
|
const field = this.getV4Data();
|
|
1476
1515
|
item.config = new sails_ng_common_24.DropdownInputFieldModelConfig();
|
|
1477
1516
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1478
1517
|
}
|
|
1479
|
-
visitDropdownInputFormComponentDefinition(item) {
|
|
1480
|
-
this.populateFormComponent(item);
|
|
1518
|
+
async visitDropdownInputFormComponentDefinition(item) {
|
|
1519
|
+
await this.populateFormComponent(item);
|
|
1481
1520
|
}
|
|
1482
1521
|
/* Typeahead Input */
|
|
1483
|
-
visitTypeaheadInputFieldComponentDefinition(item) {
|
|
1522
|
+
async visitTypeaheadInputFieldComponentDefinition(item) {
|
|
1484
1523
|
const field = this.getV4Data();
|
|
1485
1524
|
item.config = new sails_ng_common_26.TypeaheadInputFieldComponentConfig();
|
|
1486
1525
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
@@ -1516,6 +1555,15 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1516
1555
|
this.logger.warn(`${this.logName}: Typeahead migration missing vocabRef/vocabId at ${JSON.stringify(this.v4FormPath)}.`);
|
|
1517
1556
|
}
|
|
1518
1557
|
}
|
|
1558
|
+
else if (sourceType === 'service') {
|
|
1559
|
+
const serviceId = String(definition.serviceId ?? '').trim();
|
|
1560
|
+
if (serviceId) {
|
|
1561
|
+
this.sharedProps.setPropOverride('serviceId', item.config, { serviceId });
|
|
1562
|
+
}
|
|
1563
|
+
else {
|
|
1564
|
+
this.logger.warn(`${this.logName}: Typeahead migration missing serviceId at ${JSON.stringify(this.v4FormPath)}.`);
|
|
1565
|
+
}
|
|
1566
|
+
}
|
|
1519
1567
|
else if (sourceType === 'external') {
|
|
1520
1568
|
const provider = String(definition.provider ?? '').trim();
|
|
1521
1569
|
if (provider) {
|
|
@@ -1542,9 +1590,9 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1542
1590
|
if (readOnlyAfterSelect) {
|
|
1543
1591
|
this.sharedProps.setPropOverride('readOnlyAfterSelect', item.config, { readOnlyAfterSelect });
|
|
1544
1592
|
}
|
|
1545
|
-
this.warnOnDroppedLegacyTypeaheadProperties(definition);
|
|
1593
|
+
await this.warnOnDroppedLegacyTypeaheadProperties(definition);
|
|
1546
1594
|
}
|
|
1547
|
-
visitTypeaheadInputFieldModelDefinition(item) {
|
|
1595
|
+
async visitTypeaheadInputFieldModelDefinition(item) {
|
|
1548
1596
|
const field = this.getV4Data();
|
|
1549
1597
|
item.config = new sails_ng_common_26.TypeaheadInputFieldModelConfig();
|
|
1550
1598
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
@@ -1559,43 +1607,43 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1559
1607
|
item.config.value = this.coerceLegacyTypeaheadValue(item.config.value, valueMode, labelField);
|
|
1560
1608
|
}
|
|
1561
1609
|
}
|
|
1562
|
-
visitTypeaheadInputFormComponentDefinition(item) {
|
|
1563
|
-
this.populateFormComponent(item);
|
|
1610
|
+
async visitTypeaheadInputFormComponentDefinition(item) {
|
|
1611
|
+
await this.populateFormComponent(item);
|
|
1564
1612
|
}
|
|
1565
1613
|
/* Radio Input */
|
|
1566
|
-
visitRadioInputFieldComponentDefinition(item) {
|
|
1614
|
+
async visitRadioInputFieldComponentDefinition(item) {
|
|
1567
1615
|
const field = this.getV4Data();
|
|
1568
1616
|
item.config = new sails_ng_common_28.RadioInputFieldComponentConfig();
|
|
1569
1617
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1570
1618
|
const options = this.migrateOptions(field);
|
|
1571
1619
|
this.sharedProps.setPropOverride('options', item.config, { options: options });
|
|
1572
1620
|
}
|
|
1573
|
-
visitRadioInputFieldModelDefinition(item) {
|
|
1621
|
+
async visitRadioInputFieldModelDefinition(item) {
|
|
1574
1622
|
const field = this.getV4Data();
|
|
1575
1623
|
item.config = new sails_ng_common_28.RadioInputFieldModelConfig();
|
|
1576
1624
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1577
1625
|
}
|
|
1578
|
-
visitRadioInputFormComponentDefinition(item) {
|
|
1579
|
-
this.populateFormComponent(item);
|
|
1626
|
+
async visitRadioInputFormComponentDefinition(item) {
|
|
1627
|
+
await this.populateFormComponent(item);
|
|
1580
1628
|
}
|
|
1581
1629
|
/* Date Input */
|
|
1582
|
-
visitDateInputFieldComponentDefinition(item) {
|
|
1630
|
+
async visitDateInputFieldComponentDefinition(item) {
|
|
1583
1631
|
const field = this.getV4Data();
|
|
1584
1632
|
item.config = new sails_ng_common_30.DateInputFieldComponentConfig();
|
|
1585
1633
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1586
1634
|
}
|
|
1587
|
-
visitDateInputFieldModelDefinition(item) {
|
|
1635
|
+
async visitDateInputFieldModelDefinition(item) {
|
|
1588
1636
|
const field = this.getV4Data();
|
|
1589
1637
|
item.config = new sails_ng_common_30.DateInputFieldModelConfig();
|
|
1590
1638
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1591
1639
|
}
|
|
1592
|
-
visitDateInputFormComponentDefinition(item) {
|
|
1593
|
-
this.populateFormComponent(item);
|
|
1640
|
+
async visitDateInputFormComponentDefinition(item) {
|
|
1641
|
+
await this.populateFormComponent(item);
|
|
1594
1642
|
}
|
|
1595
1643
|
/* Reusable */
|
|
1596
|
-
visitReusableFieldComponentDefinition(item) {
|
|
1644
|
+
async visitReusableFieldComponentDefinition(item) {
|
|
1597
1645
|
const field = this.getV4Data();
|
|
1598
|
-
item.config = new
|
|
1646
|
+
item.config = new sails_ng_common_67.ReusableFieldComponentConfig();
|
|
1599
1647
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1600
1648
|
// Set up the reusable form config for ContributorField in the field component.
|
|
1601
1649
|
const v4ClassName = field?.class?.toString() ?? '';
|
|
@@ -1624,12 +1672,12 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1624
1672
|
this.sharedPopulateFieldLayoutConfig(reusableComponentItem.layout.config, field);
|
|
1625
1673
|
}
|
|
1626
1674
|
// Visit children
|
|
1627
|
-
this.acceptV4FormConfigPath(reusableComponentItem, this.formPathHelper.lineagePathsForReusableFieldComponentDefinition(reusableComponentItem, 0));
|
|
1675
|
+
await this.acceptV4FormConfigPath(reusableComponentItem, this.formPathHelper.lineagePathsForReusableFieldComponentDefinition(reusableComponentItem, 0));
|
|
1628
1676
|
// Store the instance on the item
|
|
1629
1677
|
item.config.componentDefinitions.push(reusableComponentItem);
|
|
1630
1678
|
}
|
|
1631
1679
|
}
|
|
1632
|
-
visitReusableFormComponentDefinition(item) {
|
|
1680
|
+
async visitReusableFormComponentDefinition(item) {
|
|
1633
1681
|
const field = this.getV4Data();
|
|
1634
1682
|
const fieldDefinition = (field?.definition ?? {});
|
|
1635
1683
|
const v4ClassName = field?.class?.toString() ?? '';
|
|
@@ -1640,21 +1688,21 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1640
1688
|
// ReusableComponent cannot have a layout.
|
|
1641
1689
|
item.layout = undefined;
|
|
1642
1690
|
}
|
|
1643
|
-
this.populateFormComponent(item);
|
|
1691
|
+
await this.populateFormComponent(item);
|
|
1644
1692
|
}
|
|
1645
1693
|
/* Question Tree */
|
|
1646
|
-
visitQuestionTreeFieldComponentDefinition(item) {
|
|
1694
|
+
async visitQuestionTreeFieldComponentDefinition(item) {
|
|
1647
1695
|
const field = this.getV4Data();
|
|
1648
1696
|
item.config = new sails_ng_common_1.QuestionTreeFieldComponentConfig();
|
|
1649
1697
|
this.sharedPopulateFieldComponentConfig(item.config, field);
|
|
1650
1698
|
}
|
|
1651
|
-
visitQuestionTreeFieldModelDefinition(item) {
|
|
1699
|
+
async visitQuestionTreeFieldModelDefinition(item) {
|
|
1652
1700
|
const field = this.getV4Data();
|
|
1653
1701
|
item.config = new sails_ng_common_1.QuestionTreeFieldModelConfig();
|
|
1654
1702
|
this.sharedPopulateFieldModelConfig(item.config, field);
|
|
1655
1703
|
}
|
|
1656
|
-
visitQuestionTreeFormComponentDefinition(item) {
|
|
1657
|
-
this.populateFormComponent(item);
|
|
1704
|
+
async visitQuestionTreeFormComponentDefinition(item) {
|
|
1705
|
+
await this.populateFormComponent(item);
|
|
1658
1706
|
}
|
|
1659
1707
|
/* Data classification to Question Tree config migration */
|
|
1660
1708
|
migrateDataClassificationToQuestionTree(data) {
|
|
@@ -1668,7 +1716,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1668
1716
|
});
|
|
1669
1717
|
const availableMeta = {};
|
|
1670
1718
|
const questions = [];
|
|
1671
|
-
const defaultOutcomePropName =
|
|
1719
|
+
const defaultOutcomePropName = 'classification';
|
|
1672
1720
|
for (const [questionId, questionInfo] of Object.entries(v4Definition)) {
|
|
1673
1721
|
const qInfo = questionInfo;
|
|
1674
1722
|
const rawConditions = qInfo?.conditions;
|
|
@@ -1683,7 +1731,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1683
1731
|
const answerLabel = rawAnswer?.label;
|
|
1684
1732
|
const answerOutcome = rawAnswer?.outcome;
|
|
1685
1733
|
const answerOutcomeGuessedType = (0, sails_ng_common_1.guessType)(answerOutcome);
|
|
1686
|
-
if (answerOutcomeGuessedType ===
|
|
1734
|
+
if (answerOutcomeGuessedType === 'string') {
|
|
1687
1735
|
questionAnswers.push({
|
|
1688
1736
|
value: answerValue,
|
|
1689
1737
|
label: answerLabel,
|
|
@@ -1695,7 +1743,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1695
1743
|
// any other property is outcome meta / additional data.
|
|
1696
1744
|
const meta = Object.fromEntries(Object.entries(answerOutcome)
|
|
1697
1745
|
.filter(([k, v]) => k !== defaultOutcomePropName && !!v)
|
|
1698
|
-
.map(([k, v]) => [k, v?.toString() ??
|
|
1746
|
+
.map(([k, v]) => [k, v?.toString() ?? '']));
|
|
1699
1747
|
questionAnswers.push({
|
|
1700
1748
|
value: answerValue,
|
|
1701
1749
|
label: answerLabel,
|
|
@@ -1711,7 +1759,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1711
1759
|
}
|
|
1712
1760
|
});
|
|
1713
1761
|
}
|
|
1714
|
-
else if ([
|
|
1762
|
+
else if (['undefined', 'null'].includes(answerOutcomeGuessedType)) {
|
|
1715
1763
|
questionAnswers.push({
|
|
1716
1764
|
value: answerValue,
|
|
1717
1765
|
label: answerLabel,
|
|
@@ -1722,17 +1770,18 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1722
1770
|
}
|
|
1723
1771
|
}
|
|
1724
1772
|
const rules = {
|
|
1725
|
-
op:
|
|
1773
|
+
op: 'or',
|
|
1774
|
+
args: [
|
|
1726
1775
|
...Object.entries(rawConditions).map(([ruleQuestionId, ruleAnswerValue]) => {
|
|
1727
|
-
return { op:
|
|
1728
|
-
})
|
|
1729
|
-
]
|
|
1776
|
+
return { op: 'in', q: ruleQuestionId, a: ruleAnswerValue };
|
|
1777
|
+
}),
|
|
1778
|
+
],
|
|
1730
1779
|
};
|
|
1731
1780
|
questions.push({
|
|
1732
1781
|
id: questionId,
|
|
1733
|
-
label: typeof rawLabel ===
|
|
1734
|
-
answersMin: parseInt(rawMinAnswers?.toString() ??
|
|
1735
|
-
answersMax: parseInt(rawMaxAnswers?.toString() ??
|
|
1782
|
+
label: typeof rawLabel === 'string' ? rawLabel : undefined,
|
|
1783
|
+
answersMin: parseInt(rawMinAnswers?.toString() ?? '1'),
|
|
1784
|
+
answersMax: parseInt(rawMaxAnswers?.toString() ?? '1'),
|
|
1736
1785
|
answers: questionAnswers,
|
|
1737
1786
|
rules: rules,
|
|
1738
1787
|
});
|
|
@@ -1745,12 +1794,12 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1745
1794
|
};
|
|
1746
1795
|
}
|
|
1747
1796
|
/* Shared */
|
|
1748
|
-
acceptV4FormConfigPath(item, more, v4FormPath) {
|
|
1797
|
+
async acceptV4FormConfigPath(item, more, v4FormPath) {
|
|
1749
1798
|
// Copy the original lineage paths so they can be restored.
|
|
1750
1799
|
const original = [...(this.v4FormPath ?? [])];
|
|
1751
1800
|
try {
|
|
1752
1801
|
this.v4FormPath = [...original, ...(v4FormPath ?? [])];
|
|
1753
|
-
this.formPathHelper.acceptFormPath(item, more);
|
|
1802
|
+
await this.formPathHelper.acceptFormPath(item, more);
|
|
1754
1803
|
}
|
|
1755
1804
|
finally {
|
|
1756
1805
|
this.v4FormPath = original;
|
|
@@ -1876,13 +1925,12 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1876
1925
|
// Construct the form component instance from the built form config frame.
|
|
1877
1926
|
return this.sharedProps.sharedConstructFormComponent(currentData);
|
|
1878
1927
|
}
|
|
1879
|
-
constructLegacyNameBindingCompanion(field, v4FormPathMore) {
|
|
1928
|
+
async constructLegacyNameBindingCompanion(field, v4FormPathMore) {
|
|
1880
1929
|
const definition = (field?.definition ?? {});
|
|
1881
1930
|
const sourceName = typeof definition.name === 'string' ? definition.name.trim() : '';
|
|
1882
1931
|
const sourceType = typeof definition.type === 'string' ? definition.type.trim().toLowerCase() : '';
|
|
1883
1932
|
const sourceValue = definition.value;
|
|
1884
|
-
const isLegacyLinkValue = `${field?.class ?? ''}`.trim() === 'LinkValueComponent' &&
|
|
1885
|
-
sourceName.length > 0;
|
|
1933
|
+
const isLegacyLinkValue = `${field?.class ?? ''}`.trim() === 'LinkValueComponent' && sourceName.length > 0;
|
|
1886
1934
|
const isLegacyHeadingTextBlock = `${field?.class ?? ''}`.trim() === 'Container' &&
|
|
1887
1935
|
`${field?.compClass ?? ''}`.trim() === 'TextBlockComponent' &&
|
|
1888
1936
|
['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(sourceType) &&
|
|
@@ -1906,7 +1954,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1906
1954
|
const hiddenComponent = this.constructFormComponent(hiddenField, hiddenPath);
|
|
1907
1955
|
hiddenComponent.name = sourceName;
|
|
1908
1956
|
const allowRoles = Array.isArray(field?.roles) ? field.roles : [];
|
|
1909
|
-
this.enforceLegacyHiddenBindingConfig(hiddenComponent, allowRoles);
|
|
1957
|
+
await this.enforceLegacyHiddenBindingConfig(hiddenComponent, allowRoles);
|
|
1910
1958
|
hiddenComponent.overrides = {
|
|
1911
1959
|
...(hiddenComponent.overrides ?? {}),
|
|
1912
1960
|
formModeClasses: {
|
|
@@ -1923,7 +1971,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1923
1971
|
v4FormPathMore: hiddenPath.map(i => i.toString()),
|
|
1924
1972
|
};
|
|
1925
1973
|
}
|
|
1926
|
-
enforceLegacyHiddenBindingConfig(component, allowRoles = []) {
|
|
1974
|
+
async enforceLegacyHiddenBindingConfig(component, allowRoles = []) {
|
|
1927
1975
|
if (component.component?.config) {
|
|
1928
1976
|
const hiddenComponentConfig = component.component.config;
|
|
1929
1977
|
hiddenComponentConfig.type = 'hidden';
|
|
@@ -1940,7 +1988,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1940
1988
|
allowModes: ['view'],
|
|
1941
1989
|
};
|
|
1942
1990
|
}
|
|
1943
|
-
retargetLegacyTextBlockBinding(formComponent, sourceName, bindingName) {
|
|
1991
|
+
async retargetLegacyTextBlockBinding(formComponent, sourceName, bindingName) {
|
|
1944
1992
|
const componentConfig = formComponent?.component?.config;
|
|
1945
1993
|
if (!componentConfig) {
|
|
1946
1994
|
return;
|
|
@@ -1949,7 +1997,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1949
1997
|
componentConfig.content = bindingName;
|
|
1950
1998
|
}
|
|
1951
1999
|
}
|
|
1952
|
-
ensureLegacyTextBlockComponentNameIsUnique(formComponent, sourceName, v4FormPathMore) {
|
|
2000
|
+
async ensureLegacyTextBlockComponentNameIsUnique(formComponent, sourceName, v4FormPathMore) {
|
|
1953
2001
|
if ((formComponent?.name ?? '') !== sourceName) {
|
|
1954
2002
|
return;
|
|
1955
2003
|
}
|
|
@@ -1957,9 +2005,9 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
1957
2005
|
const fallback = sourceName.length > 0 ? sourceName : 'content';
|
|
1958
2006
|
formComponent.name = `ContentComponent-${pathSuffix || fallback}`;
|
|
1959
2007
|
}
|
|
1960
|
-
populateFormComponent(item) {
|
|
2008
|
+
async populateFormComponent(item) {
|
|
1961
2009
|
// Continue visiting
|
|
1962
|
-
this.formPathHelper.acceptFormComponentDefinition(item);
|
|
2010
|
+
await this.formPathHelper.acceptFormComponentDefinition(item);
|
|
1963
2011
|
// this.acceptV4FormConfigPath(item.component, {formConfig: ['component']});
|
|
1964
2012
|
// if (item.model) {
|
|
1965
2013
|
// this.acceptV4FormConfigPath(item.model, {formConfig: ['model']});
|
|
@@ -2031,9 +2079,9 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2031
2079
|
fallbackLabel = typeof definition.name === 'string' ? definition.name : undefined;
|
|
2032
2080
|
}
|
|
2033
2081
|
}
|
|
2034
|
-
const migratedLabel =
|
|
2082
|
+
const migratedLabel = this.shouldSuppressLegacyTextBlockLayoutLabel(field) ||
|
|
2035
2083
|
this.isLegacyLinkValueControl(field) ||
|
|
2036
|
-
this.isLegacyPDFListControl(field)
|
|
2084
|
+
this.isLegacyPDFListControl(field)
|
|
2037
2085
|
? undefined
|
|
2038
2086
|
: hasExplicitLabel
|
|
2039
2087
|
? definition.label
|
|
@@ -2050,7 +2098,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2050
2098
|
? { label: legacyCssClasses }
|
|
2051
2099
|
: undefined;
|
|
2052
2100
|
const config = {
|
|
2053
|
-
label:
|
|
2101
|
+
label: this.isInsideButtonBarContainer || this.isInsideLegacyInlineContainer() ? undefined : migratedLabel,
|
|
2054
2102
|
helpText: typeof definition.help === 'string' ? definition.help : undefined,
|
|
2055
2103
|
cssClassesMap,
|
|
2056
2104
|
};
|
|
@@ -2104,7 +2152,10 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2104
2152
|
const isLegacyTextBlock = `${field.class ?? ''}`.trim() === 'Container' && `${field.compClass ?? ''}`.trim() === 'TextBlockComponent';
|
|
2105
2153
|
const hasExplicitLabel = typeof definition.label === 'string' && definition.label.trim().length > 0;
|
|
2106
2154
|
const hasLegacyNameBinding = typeof definition.name === 'string' && definition.name.trim().length > 0;
|
|
2107
|
-
return isLegacyTextBlock &&
|
|
2155
|
+
return (isLegacyTextBlock &&
|
|
2156
|
+
hasLegacyNameBinding &&
|
|
2157
|
+
!hasExplicitLabel &&
|
|
2158
|
+
!this.shouldPromoteLegacyTextBlockSpanToLayoutLabel(field));
|
|
2108
2159
|
}
|
|
2109
2160
|
getLegacyContributorReusableFormName(fieldDefinition) {
|
|
2110
2161
|
const forceLookupOnly = this.parseLegacyTypeaheadBoolean(fieldDefinition.forceLookupOnly, false, 'forceLookupOnly');
|
|
@@ -2160,8 +2211,8 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2160
2211
|
}
|
|
2161
2212
|
return normalized;
|
|
2162
2213
|
}
|
|
2163
|
-
migrateOptions(field) {
|
|
2164
|
-
return (field?.definition?.options ?? []).map(
|
|
2214
|
+
async migrateOptions(field) {
|
|
2215
|
+
return (field?.definition?.options ?? []).map(option => {
|
|
2165
2216
|
return {
|
|
2166
2217
|
label: option?.label ?? '',
|
|
2167
2218
|
value: option?.value ?? '',
|
|
@@ -2169,7 +2220,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2169
2220
|
};
|
|
2170
2221
|
});
|
|
2171
2222
|
}
|
|
2172
|
-
applyLegacyFormCssNormalization(item) {
|
|
2223
|
+
async applyLegacyFormCssNormalization(item) {
|
|
2173
2224
|
const normalizedViewCssClasses = this.normalizeLegacyFormCssClasses(item.viewCssClasses, 'view');
|
|
2174
2225
|
if (normalizedViewCssClasses) {
|
|
2175
2226
|
item.viewCssClasses = normalizedViewCssClasses;
|
|
@@ -2213,8 +2264,8 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2213
2264
|
}
|
|
2214
2265
|
shouldUseInlineLayoutForAnchorButton(field, componentClassName) {
|
|
2215
2266
|
const v4ClassName = `${field?.class ?? ''}`.trim();
|
|
2216
|
-
return v4ClassName === 'AnchorOrButton' &&
|
|
2217
|
-
componentClassName === sails_ng_common_13.ContentComponentName);
|
|
2267
|
+
return (v4ClassName === 'AnchorOrButton' &&
|
|
2268
|
+
(componentClassName === sails_ng_common_31.SaveButtonComponentName || componentClassName === sails_ng_common_13.ContentComponentName));
|
|
2218
2269
|
}
|
|
2219
2270
|
isLegacyAnchorControl(field) {
|
|
2220
2271
|
if (!field) {
|
|
@@ -2242,30 +2293,27 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2242
2293
|
return false;
|
|
2243
2294
|
}
|
|
2244
2295
|
const definition = (field.definition ?? {});
|
|
2245
|
-
return this.hasLegacyCssClass(definition.cssClasses, 'form-inline') ||
|
|
2296
|
+
return (this.hasLegacyCssClass(definition.cssClasses, 'form-inline') ||
|
|
2297
|
+
this.hasLegacyCssClass(definition.cssClass, 'form-inline'));
|
|
2246
2298
|
}
|
|
2247
2299
|
hasLegacyCssClass(value, token) {
|
|
2248
2300
|
if (typeof value !== 'string') {
|
|
2249
2301
|
return false;
|
|
2250
2302
|
}
|
|
2251
|
-
return value
|
|
2252
|
-
.trim()
|
|
2253
|
-
.split(/\s+/)
|
|
2254
|
-
.filter(Boolean)
|
|
2255
|
-
.includes(token);
|
|
2303
|
+
return value.trim().split(/\s+/).filter(Boolean).includes(token);
|
|
2256
2304
|
}
|
|
2257
2305
|
mergeCssClassTokens(baseCssClasses, appendCssClasses) {
|
|
2258
2306
|
const classes = `${typeof baseCssClasses === 'string' ? baseCssClasses : ''} ${appendCssClasses}`
|
|
2259
2307
|
.split(/\s+/)
|
|
2260
|
-
.map(
|
|
2308
|
+
.map(cssClass => cssClass.trim())
|
|
2261
2309
|
.filter(Boolean);
|
|
2262
2310
|
return Array.from(new Set(classes)).join(' ');
|
|
2263
2311
|
}
|
|
2264
2312
|
removeLegacyCssToken(cssClasses, tokenToRemove) {
|
|
2265
2313
|
return cssClasses
|
|
2266
2314
|
.split(/\s+/)
|
|
2267
|
-
.map(
|
|
2268
|
-
.filter(
|
|
2315
|
+
.map(cssClass => cssClass.trim())
|
|
2316
|
+
.filter(cssClass => cssClass.length > 0 && cssClass !== tokenToRemove)
|
|
2269
2317
|
.join(' ');
|
|
2270
2318
|
}
|
|
2271
2319
|
buildLegacyAnchorHrefTemplate(href) {
|
|
@@ -2369,7 +2417,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2369
2417
|
this.logger.warn(`${this.logName}: CheckboxTree migration received invalid '${fieldName}' value, ignoring it.`);
|
|
2370
2418
|
return undefined;
|
|
2371
2419
|
}
|
|
2372
|
-
warnOnMalformedLegacyRegex(definition) {
|
|
2420
|
+
async warnOnMalformedLegacyRegex(definition) {
|
|
2373
2421
|
for (const key of ['regex', 'pattern', 'leafRegex']) {
|
|
2374
2422
|
if (!Object.hasOwn(definition, key)) {
|
|
2375
2423
|
continue;
|
|
@@ -2395,7 +2443,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2395
2443
|
this.logger.warn(`${this.logName}: CheckboxTree migration found unsupported regex value in '${key}', using defaults.`);
|
|
2396
2444
|
}
|
|
2397
2445
|
}
|
|
2398
|
-
coerceCheckboxTreeDefaultValue(config) {
|
|
2446
|
+
async coerceCheckboxTreeDefaultValue(config) {
|
|
2399
2447
|
const rawDefaultValue = config.defaultValue;
|
|
2400
2448
|
if (rawDefaultValue === undefined || rawDefaultValue === null) {
|
|
2401
2449
|
return;
|
|
@@ -2419,7 +2467,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2419
2467
|
}
|
|
2420
2468
|
config.defaultValue = coerced;
|
|
2421
2469
|
}
|
|
2422
|
-
coerceMapFeatureCollection(config) {
|
|
2470
|
+
async coerceMapFeatureCollection(config) {
|
|
2423
2471
|
const emptyCollection = {
|
|
2424
2472
|
type: 'FeatureCollection',
|
|
2425
2473
|
features: [],
|
|
@@ -2499,6 +2547,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2499
2547
|
{ key: 'polygon', mode: 'polygon' },
|
|
2500
2548
|
{ key: 'polyline', mode: 'linestring' },
|
|
2501
2549
|
{ key: 'rectangle', mode: 'rectangle' },
|
|
2550
|
+
{ key: 'circle', mode: 'circle' },
|
|
2502
2551
|
];
|
|
2503
2552
|
for (const { key, mode } of modeMap) {
|
|
2504
2553
|
const rawModeConfig = draw[key];
|
|
@@ -2507,16 +2556,19 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2507
2556
|
}
|
|
2508
2557
|
enabledModes.push(mode);
|
|
2509
2558
|
}
|
|
2510
|
-
|
|
2511
|
-
|
|
2559
|
+
// Enable select/edit tooling by default for migrated maps. OpenLayers/TerraDraw
|
|
2560
|
+
// supports selecting, editing and deleting existing features, so migrated records
|
|
2561
|
+
// should get the Select/Delete tooling unless the legacy config explicitly
|
|
2562
|
+
// disabled editing via `edit: false`.
|
|
2563
|
+
if (drawOptions.edit !== false) {
|
|
2512
2564
|
enabledModes.push('select');
|
|
2513
2565
|
}
|
|
2514
2566
|
const deduped = [...new Set(enabledModes)];
|
|
2515
|
-
const invalidModes = deduped.filter(mode => !['point', 'polygon', 'linestring', 'rectangle', 'select'].includes(mode));
|
|
2567
|
+
const invalidModes = deduped.filter(mode => !['point', 'polygon', 'linestring', 'rectangle', 'circle', 'select'].includes(mode));
|
|
2516
2568
|
if (invalidModes.length > 0) {
|
|
2517
2569
|
this.logger.warn(`${this.logName}: Map migration dropped unsupported enabledModes values at ${JSON.stringify(this.v4FormPath)}: ${JSON.stringify(invalidModes)}.`);
|
|
2518
2570
|
}
|
|
2519
|
-
return deduped.filter((mode) => mode === 'point' || mode === 'polygon' || mode === 'linestring' || mode === 'rectangle' || mode === 'select');
|
|
2571
|
+
return deduped.filter((mode) => mode === 'point' || mode === 'polygon' || mode === 'linestring' || mode === 'rectangle' || mode === 'circle' || mode === 'select');
|
|
2520
2572
|
}
|
|
2521
2573
|
readObject(input) {
|
|
2522
2574
|
return input && typeof input === 'object' && !Array.isArray(input) ? input : {};
|
|
@@ -2528,6 +2580,9 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2528
2580
|
if (legacySourceType === 'query' || legacySourceType === 'namedquery') {
|
|
2529
2581
|
return 'namedQuery';
|
|
2530
2582
|
}
|
|
2583
|
+
if (legacySourceType === 'service') {
|
|
2584
|
+
return 'service';
|
|
2585
|
+
}
|
|
2531
2586
|
if (legacySourceType === 'external') {
|
|
2532
2587
|
return 'external';
|
|
2533
2588
|
}
|
|
@@ -2543,6 +2598,9 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2543
2598
|
if (definition.vocabRef || definition.vocabId) {
|
|
2544
2599
|
return 'vocabulary';
|
|
2545
2600
|
}
|
|
2601
|
+
if (definition.serviceId) {
|
|
2602
|
+
return 'service';
|
|
2603
|
+
}
|
|
2546
2604
|
if (definition.provider) {
|
|
2547
2605
|
return 'external';
|
|
2548
2606
|
}
|
|
@@ -2681,7 +2739,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2681
2739
|
this.logger.warn(`${this.logName}: Typeahead migration coerced malformed legacy value to null.`);
|
|
2682
2740
|
return null;
|
|
2683
2741
|
}
|
|
2684
|
-
injectLegacyRecordMetadataRetrieverExpressions(legacyFields, migratedComponents, containerPointer = '') {
|
|
2742
|
+
async injectLegacyRecordMetadataRetrieverExpressions(legacyFields, migratedComponents, containerPointer = '') {
|
|
2685
2743
|
for (const legacyField of legacyFields) {
|
|
2686
2744
|
if (!this.isLegacyRecordMetadataRetrieverField(legacyField)) {
|
|
2687
2745
|
continue;
|
|
@@ -2691,7 +2749,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2691
2749
|
if (!retrieverName) {
|
|
2692
2750
|
continue;
|
|
2693
2751
|
}
|
|
2694
|
-
const migratedRetriever = migratedComponents.find(
|
|
2752
|
+
const migratedRetriever = migratedComponents.find(component => component.name === retrieverName);
|
|
2695
2753
|
if (migratedRetriever) {
|
|
2696
2754
|
migratedRetriever.expressions = (migratedRetriever.expressions ?? []).concat(this.buildRetrieverExpressions(legacyField, legacyFields, containerPointer));
|
|
2697
2755
|
}
|
|
@@ -2709,7 +2767,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2709
2767
|
if (onValueUpdate.length === 0) {
|
|
2710
2768
|
continue;
|
|
2711
2769
|
}
|
|
2712
|
-
const migratedTarget = migratedComponents.find(
|
|
2770
|
+
const migratedTarget = migratedComponents.find(component => component.name === targetName);
|
|
2713
2771
|
if (!migratedTarget?.model) {
|
|
2714
2772
|
continue;
|
|
2715
2773
|
}
|
|
@@ -2726,7 +2784,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2726
2784
|
name: `${retrieverName}-${targetName}-${propertyName}`.replace(/[^a-zA-Z0-9_-]+/g, '-'),
|
|
2727
2785
|
description: `Populate ${targetName} from ${retrieverName} metadata`,
|
|
2728
2786
|
config: {
|
|
2729
|
-
conditionKind:
|
|
2787
|
+
conditionKind: sails_ng_common_65.ExpressionsConditionKind.JSONPointer,
|
|
2730
2788
|
runOnFormReady: false,
|
|
2731
2789
|
condition: `${this.buildNestedComponentJsonPointer(containerPointer, retrieverName)}::field.value.changed`,
|
|
2732
2790
|
target: 'model.value',
|
|
@@ -2751,7 +2809,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2751
2809
|
const relatedObjectSelected = Array.isArray(sourceConfig.relatedObjectSelected)
|
|
2752
2810
|
? sourceConfig.relatedObjectSelected
|
|
2753
2811
|
: [];
|
|
2754
|
-
if (onValueUpdate.some(
|
|
2812
|
+
if (onValueUpdate.some(action => action?.action === 'publishMetadata')) {
|
|
2755
2813
|
const parameterName = this.resolveLegacyParameterRetrieverName(sourceName, siblingFields);
|
|
2756
2814
|
if (parameterName) {
|
|
2757
2815
|
expressions.push({
|
|
@@ -2759,7 +2817,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2759
2817
|
description: 'Fetch metadata on form load using request params',
|
|
2760
2818
|
config: {
|
|
2761
2819
|
runOnFormReady: true,
|
|
2762
|
-
conditionKind:
|
|
2820
|
+
conditionKind: sails_ng_common_65.ExpressionsConditionKind.JSONataQuery,
|
|
2763
2821
|
condition: `$exists(runtimeContext.requestParams.${parameterName})`,
|
|
2764
2822
|
operation: 'fetchMetadata',
|
|
2765
2823
|
hasTemplate: true,
|
|
@@ -2768,12 +2826,12 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2768
2826
|
});
|
|
2769
2827
|
}
|
|
2770
2828
|
}
|
|
2771
|
-
if (relatedObjectSelected.some(
|
|
2829
|
+
if (relatedObjectSelected.some(action => action?.action === 'publishMetadata')) {
|
|
2772
2830
|
expressions.push({
|
|
2773
2831
|
name: `fetchOnRelatedObjectSelected-${sourceName}`,
|
|
2774
2832
|
description: `Fetch metadata when ${sourceName} changes`,
|
|
2775
2833
|
config: {
|
|
2776
|
-
conditionKind:
|
|
2834
|
+
conditionKind: sails_ng_common_65.ExpressionsConditionKind.JSONPointer,
|
|
2777
2835
|
runOnFormReady: false,
|
|
2778
2836
|
condition: `${this.buildNestedComponentJsonPointer(containerPointer, sourceName)}::field.value.changed`,
|
|
2779
2837
|
operation: 'fetchMetadata',
|
|
@@ -2786,7 +2844,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2786
2844
|
return expressions;
|
|
2787
2845
|
}
|
|
2788
2846
|
resolveLegacyParameterRetrieverName(sourceName, siblingFields) {
|
|
2789
|
-
const parameterRetriever = siblingFields.find(
|
|
2847
|
+
const parameterRetriever = siblingFields.find(field => {
|
|
2790
2848
|
if (!this.isLegacyParameterRetrieverField(field)) {
|
|
2791
2849
|
return false;
|
|
2792
2850
|
}
|
|
@@ -2812,11 +2870,16 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2812
2870
|
if (!trimmedName) {
|
|
2813
2871
|
return containerPointer || '';
|
|
2814
2872
|
}
|
|
2815
|
-
const normalizedContainerPointer = containerPointer && containerPointer !== '/'
|
|
2816
|
-
? containerPointer.replace(/\/+$/, '')
|
|
2817
|
-
: '';
|
|
2873
|
+
const normalizedContainerPointer = containerPointer && containerPointer !== '/' ? this.trimTrailingJsonPointerSlashes(containerPointer) : '';
|
|
2818
2874
|
return `${normalizedContainerPointer}/${trimmedName}`;
|
|
2819
2875
|
}
|
|
2876
|
+
trimTrailingJsonPointerSlashes(pointer) {
|
|
2877
|
+
let end = pointer.length;
|
|
2878
|
+
while (end > 0 && pointer.charAt(end - 1) === '/') {
|
|
2879
|
+
end -= 1;
|
|
2880
|
+
}
|
|
2881
|
+
return pointer.slice(0, end);
|
|
2882
|
+
}
|
|
2820
2883
|
getCurrentContainerAngularComponentsJsonPointer(componentName) {
|
|
2821
2884
|
const currentPointer = this.formPathHelper.formPath.angularComponentsJsonPointer ?? '';
|
|
2822
2885
|
const trimmedName = componentName?.trim();
|
|
@@ -2864,18 +2927,16 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2864
2927
|
...(Array.isArray(componentConfig?.componentDefinitions)
|
|
2865
2928
|
? componentConfig.componentDefinitions
|
|
2866
2929
|
: []),
|
|
2867
|
-
...(Array.isArray(componentConfig?.tabs)
|
|
2868
|
-
? componentConfig.tabs
|
|
2869
|
-
: []),
|
|
2930
|
+
...(Array.isArray(componentConfig?.tabs) ? componentConfig.tabs : []),
|
|
2870
2931
|
...(Array.isArray(componentConfig?.panels)
|
|
2871
2932
|
? componentConfig.panels
|
|
2872
2933
|
: []),
|
|
2873
2934
|
];
|
|
2874
2935
|
return nested;
|
|
2875
2936
|
}
|
|
2876
|
-
retargetPublishDataLocationSelectorExpressions(components) {
|
|
2937
|
+
async retargetPublishDataLocationSelectorExpressions(components) {
|
|
2877
2938
|
for (const component of components ?? []) {
|
|
2878
|
-
if (component.component?.class ===
|
|
2939
|
+
if (component.component?.class === sails_ng_common_59.PublishDataLocationSelectorComponentName) {
|
|
2879
2940
|
for (const expression of component.expressions ?? []) {
|
|
2880
2941
|
const sourceName = this.getExpressionSourceComponentName(expression.config?.condition);
|
|
2881
2942
|
if (!sourceName) {
|
|
@@ -2887,7 +2948,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2887
2948
|
}
|
|
2888
2949
|
}
|
|
2889
2950
|
}
|
|
2890
|
-
this.retargetPublishDataLocationSelectorExpressions(this.getChildComponentDefinitions(component));
|
|
2951
|
+
await this.retargetPublishDataLocationSelectorExpressions(this.getChildComponentDefinitions(component));
|
|
2891
2952
|
}
|
|
2892
2953
|
}
|
|
2893
2954
|
getExpressionSourceComponentName(condition) {
|
|
@@ -2895,11 +2956,11 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2895
2956
|
if (!pointer) {
|
|
2896
2957
|
return null;
|
|
2897
2958
|
}
|
|
2898
|
-
const segments = pointer.split('/').filter(
|
|
2959
|
+
const segments = pointer.split('/').filter(segment => segment.length > 0);
|
|
2899
2960
|
return segments.length > 0 ? segments[segments.length - 1] : null;
|
|
2900
2961
|
}
|
|
2901
2962
|
buildEventValueTemplate(propertyName) {
|
|
2902
|
-
const segments = propertyName.split('.').filter(
|
|
2963
|
+
const segments = propertyName.split('.').filter(segment => segment.length > 0);
|
|
2903
2964
|
if (segments.length === 0) {
|
|
2904
2965
|
return 'event.value';
|
|
2905
2966
|
}
|
|
@@ -2910,7 +2971,7 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2910
2971
|
return `${path}[${JSON.stringify(segment)}]`;
|
|
2911
2972
|
}, 'event.value');
|
|
2912
2973
|
}
|
|
2913
|
-
warnOnDroppedLegacyTypeaheadProperties(definition) {
|
|
2974
|
+
async warnOnDroppedLegacyTypeaheadProperties(definition) {
|
|
2914
2975
|
const droppedProps = [
|
|
2915
2976
|
'forceClone',
|
|
2916
2977
|
'completerService',
|
|
@@ -2938,4 +2999,4 @@ class MigrationV4ToV5FormConfigVisitor extends sails_ng_common_59.FormConfigVisi
|
|
|
2938
2999
|
}
|
|
2939
3000
|
}
|
|
2940
3001
|
exports.MigrationV4ToV5FormConfigVisitor = MigrationV4ToV5FormConfigVisitor;
|
|
2941
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0ZS1jb25maWctdjQtdjUudmlzaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aXNpdG9yL21pZ3JhdGUtY29uZmlnLXY0LXY1LnZpc2l0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQThEO0FBQzlELHNFQVkwQztBQUUxQyxzRUFNMEM7QUFDMUMsc0VBUTBDO0FBQzFDLHNFQUkwQztBQUMxQyxzRUFBb0c7QUFDcEcsc0VBTTBDO0FBQzFDLHNFQUFnSDtBQUNoSCxzRUFBMEc7QUFDMUcsc0VBQTRFO0FBQzVFLHVFQUE4RztBQUM5Ryx1RUFBOEU7QUFDOUUsdUVBQW9FO0FBRXBFLHVFQUkwQztBQUMxQyx1RUFNMEM7QUFDMUMsdUVBQWlHO0FBQ2pHLHVFQU8wQztBQUMxQyx1RUFBK0c7QUFDL0csdUVBTTBDO0FBQzFDLHVFQUEwRztBQUMxRyx1RUFNMEM7QUFDMUMsdUVBQXNIO0FBQ3RILHVFQUErRTtBQUMvRSx1RUFNMEM7QUFDMUMsdUVBQW9IO0FBQ3BILHVFQU0wQztBQUMxQyx1RUFBc0g7QUFNdEgsdUVBQW9IO0FBTXBILHVFQUE4RztBQUM5Ryx1RUFNMEM7QUFDMUMsdUVBQTRHO0FBQzVHLHVFQUkwQztBQUMxQyx1RUFBa0Y7QUFDbEYsdUVBSTBDO0FBQzFDLHVFQUFvRjtBQUNwRix1RUFJMEM7QUFDMUMsdUVBQW9GO0FBQ3BGLHVFQUkwQztBQUMxQyx1RUFBb0Y7QUFLcEYsdUVBQXlGO0FBQ3pGLHVFQUkwQztBQUMxQyx1RUFBK0Y7QUFDL0YsdUVBSTBDO0FBQzFDLHVFQUFrRztBQUtsRyx1RUFBa0Y7QUFDbEYsdUVBTTBDO0FBQzFDLHVFQUFrSDtBQUNsSCx1RUFNMEM7QUFDMUMsdUVBQXNIO0FBQ3RILHVFQVMwQztBQUMxQyx1RUFBZ0c7QUFDaEcsdUVBTTBDO0FBQzFDLHVFQUE4RztBQUM5Ryx1RUFNMEM7QUFDMUMsdUVBQXdHO0FBQ3hHLHVFQU0wQztBQUMxQyx1RUFBa0g7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
|
|
3002
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0ZS1jb25maWctdjQtdjUudmlzaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aXNpdG9yL21pZ3JhdGUtY29uZmlnLXY0LXY1LnZpc2l0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQThEO0FBQzlELHNFQWUwQztBQUUxQyxzRUFNMEM7QUFDMUMsc0VBUTBDO0FBQzFDLHNFQUkwQztBQUMxQyxzRUFBb0c7QUFDcEcsc0VBTTBDO0FBQzFDLHNFQUFnSDtBQUNoSCxzRUFBMEc7QUFDMUcsc0VBQTRFO0FBQzVFLHVFQUE4RztBQUM5Ryx1RUFBOEU7QUFDOUUsdUVBQW9FO0FBRXBFLHVFQUkwQztBQUMxQyx1RUFNMEM7QUFDMUMsdUVBQWlHO0FBQ2pHLHVFQU8wQztBQUMxQyx1RUFBK0c7QUFDL0csdUVBTTBDO0FBQzFDLHVFQUEwRztBQUMxRyx1RUFNMEM7QUFDMUMsdUVBQXNIO0FBQ3RILHVFQUErRTtBQUMvRSx1RUFNMEM7QUFDMUMsdUVBQW9IO0FBQ3BILHVFQU0wQztBQUMxQyx1RUFBc0g7QUFNdEgsdUVBQW9IO0FBTXBILHVFQUE4RztBQUM5Ryx1RUFNMEM7QUFDMUMsdUVBQTRHO0FBQzVHLHVFQUkwQztBQUMxQyx1RUFBa0Y7QUFDbEYsdUVBSTBDO0FBQzFDLHVFQUFvRjtBQUNwRix1RUFJMEM7QUFDMUMsdUVBQW9GO0FBQ3BGLHVFQUkwQztBQUMxQyx1RUFBb0Y7QUFLcEYsdUVBQXlGO0FBS3pGLHVFQUFrRztBQUNsRyx1RUFJMEM7QUFDMUMsdUVBQStGO0FBQy9GLHVFQUkwQztBQUMxQyx1RUFBa0c7QUFLbEcsdUVBQWtGO0FBT2xGLHVFQUF5RjtBQUN6Rix1RUFNMEM7QUFDMUMsdUVBQWtIO0FBQ2xILHVFQU0wQztBQUMxQyx1RUFBc0g7QUFDdEgsdUVBUzBDO0FBQzFDLHVFQUFnRztBQUNoRyx1RUFNMEM7QUFDMUMsdUVBQThHO0FBQzlHLHVFQU0wQztBQUMxQyx1RUFBd0c7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
|