@researchdatabox/redbox-core 5.0.4-beta.12498 → 5.0.4
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 +3 -7
- package/dist/CoreController.d.ts.map +1 -1
- package/dist/CoreController.js +3 -85
- package/dist/DatastreamService.d.ts +2 -4
- package/dist/DatastreamService.d.ts.map +1 -1
- package/dist/HarvestRunService.d.ts +3 -4
- package/dist/HarvestRunService.d.ts.map +1 -1
- package/dist/HarvestRunService.js +1 -1
- package/dist/QueueService.d.ts +1 -1
- package/dist/QueueService.d.ts.map +1 -1
- package/dist/RecordWriteOptions.d.ts +21 -0
- package/dist/RecordWriteOptions.d.ts.map +1 -0
- package/dist/RecordWriteOptions.js +17 -0
- package/dist/RecordsService.d.ts +14 -105
- package/dist/RecordsService.d.ts.map +1 -1
- package/dist/RecordsService.js +1 -44
- package/dist/SearchService.d.ts +1 -2
- package/dist/SearchService.d.ts.map +1 -1
- package/dist/StorageService.d.ts +20 -48
- package/dist/StorageService.d.ts.map +1 -1
- package/dist/StorageService.js +1 -19
- package/dist/StorageServiceResponse.d.ts +1 -22
- package/dist/StorageServiceResponse.d.ts.map +1 -1
- package/dist/StorageServiceResponse.js +4 -22
- package/dist/api-routes/groups/branding.d.ts +0 -8
- package/dist/api-routes/groups/branding.d.ts.map +1 -1
- package/dist/api-routes/groups/branding.js +11 -86
- package/dist/api-routes/groups/dashboard-config.d.ts +9 -12
- package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -1
- package/dist/api-routes/groups/dashboard-config.js +73 -136
- package/dist/api-routes/groups/forms.d.ts.map +1 -1
- package/dist/api-routes/groups/forms.js +2 -10
- package/dist/api-routes/groups/records.d.ts +0 -1
- package/dist/api-routes/groups/records.d.ts.map +1 -1
- package/dist/api-routes/groups/records.js +26 -141
- package/dist/api-routes/index.d.ts +0 -3
- package/dist/api-routes/index.d.ts.map +1 -1
- package/dist/api-routes/index.js +1 -4
- package/dist/api-routes/openapi.d.ts.map +1 -1
- package/dist/api-routes/openapi.js +5 -7
- package/dist/api-routes/request-extraction.d.ts.map +1 -1
- package/dist/api-routes/request-extraction.js +8 -10
- package/dist/api-routes/route-factory.d.ts.map +1 -1
- package/dist/api-routes/route-factory.js +1 -2
- package/dist/api-routes/route-registry.d.ts.map +1 -1
- package/dist/api-routes/route-registry.js +1 -3
- package/dist/api-routes/schemas/common.d.ts +0 -36
- package/dist/api-routes/schemas/common.d.ts.map +1 -1
- package/dist/api-routes/schemas/common.js +5 -95
- package/dist/api-routes/schemas/responses.d.ts +1 -1424
- package/dist/api-routes/schemas/responses.d.ts.map +1 -1
- package/dist/api-routes/schemas/responses.js +60 -382
- package/dist/api-routes/types.d.ts +0 -1
- package/dist/api-routes/types.d.ts.map +1 -1
- package/dist/api-routes/validation.d.ts +1 -5
- package/dist/api-routes/validation.d.ts.map +1 -1
- package/dist/api-routes/validation.js +15 -14
- package/dist/bootstrap.d.ts +1 -3
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +41 -58
- package/dist/config/agendaQueue.config.d.ts +0 -3
- package/dist/config/agendaQueue.config.d.ts.map +1 -1
- package/dist/config/agendaQueue.config.js +11 -29
- package/dist/config/branding.config.d.ts +0 -13
- package/dist/config/branding.config.d.ts.map +1 -1
- package/dist/config/branding.config.js +2 -34
- package/dist/config/brandingConfigurationDefaults.config.d.ts +0 -4
- package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
- package/dist/config/brandingConfigurationDefaults.config.js +3 -42
- package/dist/config/datapubs.config.d.ts +72 -0
- package/dist/config/datapubs.config.d.ts.map +1 -0
- package/dist/config/datapubs.config.js +74 -0
- package/dist/config/i18n.config.d.ts +4 -0
- package/dist/config/i18n.config.d.ts.map +1 -1
- package/dist/config/i18n.config.js +1 -1
- package/dist/config/index.d.ts +4 -12
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +4 -7
- package/dist/config/policies.config.d.ts.map +1 -1
- package/dist/config/policies.config.js +23 -37
- package/dist/config/raid.config.d.ts +4 -7
- package/dist/config/raid.config.d.ts.map +1 -1
- package/dist/config/raid.config.js +35 -21
- package/dist/config/record.config.d.ts +0 -3
- package/dist/config/record.config.d.ts.map +1 -1
- package/dist/config/record.config.js +35 -37
- package/dist/config/recordtype.config.d.ts +9 -32
- package/dist/config/recordtype.config.d.ts.map +1 -1
- package/dist/config/recordtype.config.js +7 -4
- package/dist/config/routes.config.d.ts.map +1 -1
- package/dist/config/routes.config.js +53 -135
- package/dist/config/workflow.config.d.ts +0 -6
- package/dist/config/workflow.config.d.ts.map +1 -1
- package/dist/config/workflow.config.js +1 -1
- package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
- package/dist/configmodels/AdminSidebarConfig.js +2 -4
- package/dist/configmodels/ConfigModels.d.ts +1 -1
- package/dist/configmodels/ConfigModels.d.ts.map +1 -1
- package/dist/configmodels/ConfigModels.js +9 -26
- package/dist/configmodels/FigsharePublishing.d.ts +103 -0
- package/dist/configmodels/FigsharePublishing.d.ts.map +1 -1
- package/dist/configmodels/FigsharePublishing.js +36 -2
- package/dist/controllers/AppConfigController.d.ts.map +1 -1
- package/dist/controllers/AppConfigController.js +1 -4
- package/dist/controllers/BrandingAppController.d.ts +7 -29
- package/dist/controllers/BrandingAppController.d.ts.map +1 -1
- package/dist/controllers/BrandingAppController.js +69 -265
- package/dist/controllers/BrandingController.d.ts +1 -24
- package/dist/controllers/BrandingController.d.ts.map +1 -1
- package/dist/controllers/BrandingController.js +43 -173
- package/dist/controllers/DashboardConfigController.d.ts +2 -6
- package/dist/controllers/DashboardConfigController.d.ts.map +1 -1
- package/dist/controllers/DashboardConfigController.js +4 -18
- package/dist/controllers/DynamicAssetController.d.ts +5 -7
- package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
- package/dist/controllers/DynamicAssetController.js +12 -21
- package/dist/controllers/RecordAuditController.d.ts.map +1 -1
- package/dist/controllers/RecordAuditController.js +24 -6
- package/dist/controllers/RecordController.d.ts +4 -45
- package/dist/controllers/RecordController.d.ts.map +1 -1
- package/dist/controllers/RecordController.js +345 -778
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js +1 -4
- package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
- package/dist/controllers/webservice/AdminController.js +3 -4
- package/dist/controllers/webservice/BrandingController.d.ts +1 -26
- package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
- package/dist/controllers/webservice/BrandingController.js +116 -292
- package/dist/controllers/webservice/DashboardConfigController.d.ts +17 -25
- package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -1
- package/dist/controllers/webservice/DashboardConfigController.js +205 -90
- package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
- package/dist/controllers/webservice/FormManagementController.js +3 -37
- package/dist/controllers/webservice/RecordController.d.ts +1 -15
- package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
- package/dist/controllers/webservice/RecordController.js +267 -647
- package/dist/controllers/webservice/RecordTypeController.d.ts +1 -6
- package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
- package/dist/controllers/webservice/RecordTypeController.js +3 -21
- package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
- package/dist/controllers/webservice/SearchController.js +3 -7
- package/dist/hooks/defineRedboxHook.d.ts +0 -3
- package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
- package/dist/hooks/defineRedboxHook.js +1 -4
- package/dist/index.d.ts +25 -50
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -90
- package/dist/loader/bootstrapShimRuntime.d.ts +1 -1
- package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
- package/dist/loader/bootstrapShimRuntime.js +12 -20
- package/dist/loader/index.d.ts +0 -9
- package/dist/loader/index.d.ts.map +1 -1
- package/dist/loader/index.js +4 -93
- package/dist/model/BuildResponse.d.ts +11 -25
- package/dist/model/BuildResponse.d.ts.map +1 -1
- package/dist/model/BuildResponse.js +3 -4
- package/dist/model/DashboardTypeResponseModel.d.ts +0 -6
- package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
- package/dist/model/DashboardTypeResponseModel.js +1 -7
- package/dist/model/DashboardViewResponseModel.d.ts +1 -5
- package/dist/model/DashboardViewResponseModel.d.ts.map +1 -1
- package/dist/model/DashboardViewResponseModel.js +3 -6
- package/dist/model/RBValidationError.d.ts +0 -17
- package/dist/model/RBValidationError.d.ts.map +1 -1
- package/dist/model/RBValidationError.js +1 -37
- package/dist/model/RecordTypeResponseModel.d.ts +4 -12
- package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
- package/dist/model/RecordTypeResponseModel.js +2 -11
- package/dist/model/index.d.ts +1 -5
- package/dist/model/index.d.ts.map +1 -1
- package/dist/model/index.js +2 -5
- package/dist/model/storage/BrandingModel.d.ts +0 -7
- package/dist/model/storage/BrandingModel.d.ts.map +1 -1
- package/dist/model/storage/BrandingModel.js +1 -7
- package/dist/model/storage/DeletedRecordModel.d.ts +0 -35
- package/dist/model/storage/DeletedRecordModel.d.ts.map +1 -1
- package/dist/model/storage/DeletedRecordModel.js +1 -62
- package/dist/model/storage/FigshareSyncModel.d.ts +126 -0
- package/dist/model/storage/FigshareSyncModel.d.ts.map +1 -0
- package/dist/model/storage/FigshareSyncModel.js +3 -0
- package/dist/model/storage/IntegrationAuditModel.d.ts +2 -16
- package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
- package/dist/model/storage/IntegrationAuditModel.js +1 -15
- package/dist/model/storage/RecordAuditModel.d.ts +4 -11
- package/dist/model/storage/RecordAuditModel.d.ts.map +1 -1
- package/dist/model/storage/RecordAuditModel.js +30 -8
- package/dist/model/storage/RecordModel.d.ts +3 -6
- package/dist/model/storage/RecordModel.d.ts.map +1 -1
- package/dist/model/storage/RecordTypeModel.d.ts +0 -6
- package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
- package/dist/model/storage/RecordTypeModel.js +1 -4
- package/dist/model/storage/index.d.ts +10 -12
- package/dist/model/storage/index.d.ts.map +1 -1
- package/dist/model/storage/index.js +2 -24
- package/dist/policies/checkAuth.d.ts +6 -2
- package/dist/policies/checkAuth.d.ts.map +1 -1
- package/dist/policies/checkAuth.js +9 -32
- package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
- package/dist/policies/contentSecurityPolicy.js +2 -85
- package/dist/policies/index.d.ts +2 -3
- package/dist/policies/index.d.ts.map +1 -1
- package/dist/policies/index.js +2 -4
- package/dist/policies/validateApiContractRequest.d.ts.map +1 -1
- package/dist/policies/validateApiContractRequest.js +11 -49
- package/dist/services/AgendaQueueService.d.ts +1 -1
- package/dist/services/AgendaQueueService.d.ts.map +1 -1
- package/dist/services/AgendaQueueService.js +7 -4
- package/dist/services/AppConfigService.d.ts +0 -6
- package/dist/services/AppConfigService.d.ts.map +1 -1
- package/dist/services/AppConfigService.js +1 -23
- package/dist/services/AttachmentMetadataService.d.ts +0 -58
- package/dist/services/AttachmentMetadataService.d.ts.map +1 -1
- package/dist/services/AttachmentMetadataService.js +8 -643
- package/dist/services/BrandingLogoService.d.ts +1 -6
- package/dist/services/BrandingLogoService.d.ts.map +1 -1
- package/dist/services/BrandingLogoService.js +9 -77
- package/dist/services/BrandingService.d.ts +9 -171
- package/dist/services/BrandingService.d.ts.map +1 -1
- package/dist/services/BrandingService.js +68 -572
- package/dist/services/BrandingThemeCssService.d.ts +1 -17
- package/dist/services/BrandingThemeCssService.d.ts.map +1 -1
- package/dist/services/BrandingThemeCssService.js +9 -71
- package/dist/services/DashboardConfigService.d.ts +54 -214
- package/dist/services/DashboardConfigService.d.ts.map +1 -1
- package/dist/services/DashboardConfigService.js +261 -829
- package/dist/services/DashboardTypesService.d.ts +4 -15
- package/dist/services/DashboardTypesService.d.ts.map +1 -1
- package/dist/services/DashboardTypesService.js +139 -72
- package/dist/services/DoiService.d.ts +1 -1
- package/dist/services/DoiService.d.ts.map +1 -1
- package/dist/services/DoiService.js +45 -71
- package/dist/services/FigshareService.d.ts +15 -10
- package/dist/services/FigshareService.d.ts.map +1 -1
- package/dist/services/FigshareService.js +82 -583
- package/dist/services/FormRecordConsistencyService.d.ts +23 -8
- package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
- package/dist/services/FormRecordConsistencyService.js +70 -54
- package/dist/services/FormsService.d.ts +2 -91
- package/dist/services/FormsService.d.ts.map +1 -1
- package/dist/services/FormsService.js +64 -324
- package/dist/services/HarvestRunService.d.ts +3 -6
- package/dist/services/HarvestRunService.d.ts.map +1 -1
- package/dist/services/HarvestRunService.js +97 -161
- package/dist/services/I18nEntriesService.d.ts +2 -1
- package/dist/services/I18nEntriesService.d.ts.map +1 -1
- package/dist/services/I18nEntriesService.js +45 -30
- package/dist/services/OniService.d.ts +62 -19
- package/dist/services/OniService.d.ts.map +1 -1
- package/dist/services/OniService.js +691 -223
- package/dist/services/RDMPService.d.ts +1 -1
- package/dist/services/RDMPService.d.ts.map +1 -1
- package/dist/services/RDMPService.js +5 -5
- package/dist/services/RaidService.d.ts +61 -19
- package/dist/services/RaidService.d.ts.map +1 -1
- package/dist/services/RaidService.js +530 -191
- package/dist/services/RecordTypesService.d.ts +0 -29
- package/dist/services/RecordTypesService.d.ts.map +1 -1
- package/dist/services/RecordTypesService.js +11 -106
- package/dist/services/RecordsService.d.ts +26 -313
- package/dist/services/RecordsService.d.ts.map +1 -1
- package/dist/services/RecordsService.js +763 -5089
- package/dist/services/SolrSearchService.d.ts +1 -1
- package/dist/services/SolrSearchService.d.ts.map +1 -1
- package/dist/services/SolrSearchService.js +12 -42
- package/dist/services/StandardDatastreamService.d.ts +5 -4
- package/dist/services/StandardDatastreamService.d.ts.map +1 -1
- package/dist/services/StandardDatastreamService.js +61 -106
- package/dist/services/TriggerService.d.ts.map +1 -1
- package/dist/services/TriggerService.js +30 -54
- package/dist/services/UsersService.d.ts +1 -2
- package/dist/services/UsersService.d.ts.map +1 -1
- package/dist/services/UsersService.js +283 -364
- package/dist/services/VocabularyService.d.ts +0 -2
- package/dist/services/VocabularyService.d.ts.map +1 -1
- package/dist/services/VocabularyService.js +2 -61
- package/dist/services/WorkflowStepsService.d.ts +0 -11
- package/dist/services/WorkflowStepsService.d.ts.map +1 -1
- package/dist/services/WorkflowStepsService.js +3 -32
- package/dist/services/WorkspaceService.d.ts +2 -2
- package/dist/services/WorkspaceService.d.ts.map +1 -1
- package/dist/services/WorkspaceService.js +5 -5
- package/dist/services/doi-v2/bindings.d.ts.map +1 -1
- package/dist/services/doi-v2/bindings.js +20 -3
- package/dist/services/doi-v2/config.d.ts +0 -1
- package/dist/services/doi-v2/config.d.ts.map +1 -1
- package/dist/services/doi-v2/config.js +5 -13
- package/dist/services/doi-v2/runtime.d.ts.map +1 -1
- package/dist/services/doi-v2/runtime.js +54 -14
- package/dist/services/figshare-v2/admin.d.ts +16 -0
- package/dist/services/figshare-v2/admin.d.ts.map +1 -0
- package/dist/services/figshare-v2/admin.js +283 -0
- package/dist/services/figshare-v2/assets.d.ts +20 -1
- package/dist/services/figshare-v2/assets.d.ts.map +1 -1
- package/dist/services/figshare-v2/assets.js +16 -1
- package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
- package/dist/services/figshare-v2/bindings.js +20 -3
- package/dist/services/figshare-v2/config.d.ts +8 -2
- package/dist/services/figshare-v2/config.d.ts.map +1 -1
- package/dist/services/figshare-v2/config.js +31 -3
- package/dist/services/figshare-v2/execution.d.ts +25 -0
- package/dist/services/figshare-v2/execution.d.ts.map +1 -0
- package/dist/services/figshare-v2/execution.js +49 -0
- package/dist/services/figshare-v2/http.d.ts +6 -1
- package/dist/services/figshare-v2/http.d.ts.map +1 -1
- package/dist/services/figshare-v2/http.js +69 -12
- package/dist/services/figshare-v2/identity.d.ts +12 -0
- package/dist/services/figshare-v2/identity.d.ts.map +1 -0
- package/dist/services/figshare-v2/identity.js +78 -0
- package/dist/services/figshare-v2/managed-assets.d.ts +9 -0
- package/dist/services/figshare-v2/managed-assets.d.ts.map +1 -0
- package/dist/services/figshare-v2/managed-assets.js +229 -0
- package/dist/services/figshare-v2/plan.d.ts.map +1 -1
- package/dist/services/figshare-v2/plan.js +2 -9
- package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
- package/dist/services/figshare-v2/runtime.js +58 -11
- package/dist/services/figshare-v2/source-intent.d.ts +9 -0
- package/dist/services/figshare-v2/source-intent.d.ts.map +1 -0
- package/dist/services/figshare-v2/source-intent.js +93 -0
- package/dist/services/figshare-v2/status.d.ts +4 -0
- package/dist/services/figshare-v2/status.d.ts.map +1 -0
- package/dist/services/figshare-v2/status.js +29 -0
- package/dist/services/figshare-v2/sync-store.d.ts +27 -0
- package/dist/services/figshare-v2/sync-store.d.ts.map +1 -0
- package/dist/services/figshare-v2/sync-store.js +139 -0
- package/dist/services/figshare-v2/types.d.ts +3 -0
- package/dist/services/figshare-v2/types.d.ts.map +1 -1
- package/dist/services/figshare-v2/types.js +1 -1
- package/dist/services/figshare-v2/worker.d.ts +16 -0
- package/dist/services/figshare-v2/worker.d.ts.map +1 -0
- package/dist/services/figshare-v2/worker.js +572 -0
- package/dist/services/index.d.ts +0 -9
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +3 -45
- package/dist/utilities/TranslationHtml.d.ts +3 -0
- package/dist/utilities/TranslationHtml.d.ts.map +1 -0
- package/dist/utilities/TranslationHtml.js +46 -0
- package/dist/visitor/client.visitor.d.ts +0 -6
- package/dist/visitor/client.visitor.d.ts.map +1 -1
- package/dist/visitor/client.visitor.js +14 -59
- package/dist/visitor/construct.visitor.d.ts +1 -27
- package/dist/visitor/construct.visitor.d.ts.map +1 -1
- package/dist/visitor/construct.visitor.js +177 -265
- package/dist/visitor/context-variables.visitor.d.ts +1 -3
- package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
- package/dist/visitor/context-variables.visitor.js +1 -15
- package/dist/visitor/data-value.visitor.d.ts +0 -6
- package/dist/visitor/data-value.visitor.d.ts.map +1 -1
- package/dist/visitor/data-value.visitor.js +1 -10
- package/dist/visitor/json-type-def.visitor.d.ts +0 -6
- package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
- package/dist/visitor/json-type-def.visitor.js +1 -10
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +0 -11
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
- package/dist/visitor/migrate-config-v4-v5.visitor.js +133 -228
- package/dist/visitor/template.visitor.d.ts +2 -17
- package/dist/visitor/template.visitor.d.ts.map +1 -1
- package/dist/visitor/template.visitor.js +22 -60
- package/dist/visitor/validator.visitor.d.ts +7 -49
- package/dist/visitor/validator.visitor.d.ts.map +1 -1
- package/dist/visitor/validator.visitor.js +178 -275
- package/dist/waterline-models/AttachmentMetadata.d.ts +0 -22
- package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -1
- package/dist/waterline-models/AttachmentMetadata.js +3 -147
- package/dist/waterline-models/BrandingConfig.d.ts +0 -7
- package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
- package/dist/waterline-models/BrandingConfig.js +1 -16
- package/dist/waterline-models/BrandingConfigHistory.d.ts +2 -11
- package/dist/waterline-models/BrandingConfigHistory.d.ts.map +1 -1
- package/dist/waterline-models/BrandingConfigHistory.js +1 -21
- package/dist/waterline-models/FigshareSync.d.ts +41 -0
- package/dist/waterline-models/FigshareSync.d.ts.map +1 -0
- package/dist/waterline-models/FigshareSync.js +168 -0
- package/dist/waterline-models/RecordType.d.ts +0 -9
- package/dist/waterline-models/RecordType.d.ts.map +1 -1
- package/dist/waterline-models/RecordType.js +1 -16
- package/dist/waterline-models/User.d.ts.map +1 -1
- package/dist/waterline-models/User.js +15 -10
- package/dist/waterline-models/index.d.ts +2 -2
- package/dist/waterline-models/index.d.ts.map +1 -1
- package/dist/waterline-models/index.js +4 -4
- package/package.json +46 -59
- package/dist/AttachmentStagingIdentity.d.ts +0 -3
- package/dist/AttachmentStagingIdentity.d.ts.map +0 -1
- package/dist/AttachmentStagingIdentity.js +0 -10
- package/dist/RecordConcurrencyObservability.d.ts +0 -51
- package/dist/RecordConcurrencyObservability.d.ts.map +0 -1
- package/dist/RecordConcurrencyObservability.js +0 -136
- package/dist/RecordEntityTag.d.ts +0 -31
- package/dist/RecordEntityTag.d.ts.map +0 -1
- package/dist/RecordEntityTag.js +0 -101
- package/dist/RecordFormFingerprint.d.ts +0 -7
- package/dist/RecordFormFingerprint.d.ts.map +0 -1
- package/dist/RecordFormFingerprint.js +0 -106
- package/dist/RecordHttpConcurrency.d.ts +0 -60
- package/dist/RecordHttpConcurrency.d.ts.map +0 -1
- package/dist/RecordHttpConcurrency.js +0 -181
- package/dist/RecordSaveResponse.d.ts +0 -219
- package/dist/RecordSaveResponse.d.ts.map +0 -1
- package/dist/RecordSaveResponse.js +0 -639
- package/dist/RecordStorageConcurrency.d.ts +0 -48
- package/dist/RecordStorageConcurrency.d.ts.map +0 -1
- package/dist/RecordStorageConcurrency.js +0 -103
- package/dist/RecordWriteClassification.d.ts +0 -12
- package/dist/RecordWriteClassification.d.ts.map +0 -1
- package/dist/RecordWriteClassification.js +0 -70
- package/dist/action-execution/audit.d.ts +0 -41
- package/dist/action-execution/audit.d.ts.map +0 -1
- package/dist/action-execution/audit.js +0 -122
- package/dist/action-execution/executor.d.ts +0 -24
- package/dist/action-execution/executor.d.ts.map +0 -1
- package/dist/action-execution/executor.js +0 -435
- package/dist/action-execution/failure.d.ts +0 -49
- package/dist/action-execution/failure.d.ts.map +0 -1
- package/dist/action-execution/failure.js +0 -129
- package/dist/action-execution/index.d.ts +0 -7
- package/dist/action-execution/index.d.ts.map +0 -1
- package/dist/action-execution/index.js +0 -23
- package/dist/action-execution/legacy-result.d.ts +0 -21
- package/dist/action-execution/legacy-result.d.ts.map +0 -1
- package/dist/action-execution/legacy-result.js +0 -70
- package/dist/action-execution/policy.d.ts +0 -12
- package/dist/action-execution/policy.d.ts.map +0 -1
- package/dist/action-execution/policy.js +0 -138
- package/dist/action-execution/types.d.ts +0 -121
- package/dist/action-execution/types.d.ts.map +0 -1
- package/dist/action-execution/types.js +0 -22
- package/dist/api-routes/groups/record-schemas.d.ts +0 -5
- package/dist/api-routes/groups/record-schemas.d.ts.map +0 -1
- package/dist/api-routes/groups/record-schemas.js +0 -181
- package/dist/api-routes/record-schema-openapi.d.ts +0 -26
- package/dist/api-routes/record-schema-openapi.d.ts.map +0 -1
- package/dist/api-routes/record-schema-openapi.js +0 -38
- package/dist/api-routes/record-schema-response.d.ts +0 -40
- package/dist/api-routes/record-schema-response.d.ts.map +0 -1
- package/dist/api-routes/record-schema-response.js +0 -89
- package/dist/config/recordSchema.config.d.ts +0 -68
- package/dist/config/recordSchema.config.d.ts.map +0 -1
- package/dist/config/recordSchema.config.js +0 -173
- package/dist/config/recordValidation.config.d.ts +0 -19
- package/dist/config/recordValidation.config.d.ts.map +0 -1
- package/dist/config/recordValidation.config.js +0 -10
- package/dist/configmodels/DashboardFieldCatalogue.d.ts +0 -67
- package/dist/configmodels/DashboardFieldCatalogue.d.ts.map +0 -1
- package/dist/configmodels/DashboardFieldCatalogue.js +0 -174
- package/dist/configmodels/DashboardSettings.d.ts +0 -191
- package/dist/configmodels/DashboardSettings.d.ts.map +0 -1
- package/dist/configmodels/DashboardSettings.js +0 -705
- package/dist/configmodels/OniPublishing.d.ts +0 -205
- package/dist/configmodels/OniPublishing.d.ts.map +0 -1
- package/dist/configmodels/OniPublishing.js +0 -335
- package/dist/configmodels/RaidPublishing.d.ts +0 -97
- package/dist/configmodels/RaidPublishing.d.ts.map +0 -1
- package/dist/configmodels/RaidPublishing.js +0 -35
- package/dist/configmodels/WebAnalytics.d.ts +0 -55
- package/dist/configmodels/WebAnalytics.d.ts.map +0 -1
- package/dist/configmodels/WebAnalytics.js +0 -61
- package/dist/controllers/BrandingControllerSupport.d.ts +0 -20
- package/dist/controllers/BrandingControllerSupport.d.ts.map +0 -1
- package/dist/controllers/BrandingControllerSupport.js +0 -80
- package/dist/controllers/webservice/RecordSchemaController.d.ts +0 -32
- package/dist/controllers/webservice/RecordSchemaController.d.ts.map +0 -1
- package/dist/controllers/webservice/RecordSchemaController.js +0 -356
- package/dist/model/BrandingTypeface.d.ts +0 -70
- package/dist/model/BrandingTypeface.d.ts.map +0 -1
- package/dist/model/BrandingTypeface.js +0 -116
- package/dist/model/record-contract.d.ts +0 -42
- package/dist/model/record-contract.d.ts.map +0 -1
- package/dist/model/record-contract.js +0 -3
- package/dist/model/storage/record-schema.d.ts +0 -115
- package/dist/model/storage/record-schema.d.ts.map +0 -1
- package/dist/model/storage/record-schema.js +0 -3
- package/dist/record-contract/ajv-error-mapper.d.ts +0 -34
- package/dist/record-contract/ajv-error-mapper.d.ts.map +0 -1
- package/dist/record-contract/ajv-error-mapper.js +0 -153
- package/dist/record-contract/canonical-json.d.ts +0 -20
- package/dist/record-contract/canonical-json.d.ts.map +0 -1
- package/dist/record-contract/canonical-json.js +0 -126
- package/dist/record-contract/codes.d.ts +0 -36
- package/dist/record-contract/codes.d.ts.map +0 -1
- package/dist/record-contract/codes.js +0 -38
- package/dist/record-contract/contributor-registry.d.ts +0 -76
- package/dist/record-contract/contributor-registry.d.ts.map +0 -1
- package/dist/record-contract/contributor-registry.js +0 -126
- package/dist/record-contract/core-contributors.d.ts +0 -44
- package/dist/record-contract/core-contributors.d.ts.map +0 -1
- package/dist/record-contract/core-contributors.js +0 -395
- package/dist/record-contract/deep-freeze.d.ts +0 -3
- package/dist/record-contract/deep-freeze.d.ts.map +0 -1
- package/dist/record-contract/deep-freeze.js +0 -23
- package/dist/record-contract/index.d.ts +0 -13
- package/dist/record-contract/index.d.ts.map +0 -1
- package/dist/record-contract/index.js +0 -29
- package/dist/record-contract/json-pointer.d.ts +0 -20
- package/dist/record-contract/json-pointer.d.ts.map +0 -1
- package/dist/record-contract/json-pointer.js +0 -70
- package/dist/record-contract/json-schema-renderer.d.ts +0 -51
- package/dist/record-contract/json-schema-renderer.d.ts.map +0 -1
- package/dist/record-contract/json-schema-renderer.js +0 -450
- package/dist/record-contract/record-contract-compiler.d.ts +0 -42
- package/dist/record-contract/record-contract-compiler.d.ts.map +0 -1
- package/dist/record-contract/record-contract-compiler.js +0 -775
- package/dist/record-contract/record-contract-context.d.ts +0 -91
- package/dist/record-contract/record-contract-context.d.ts.map +0 -1
- package/dist/record-contract/record-contract-context.js +0 -39
- package/dist/record-contract/record-json-schema-artifact.d.ts +0 -74
- package/dist/record-contract/record-json-schema-artifact.d.ts.map +0 -1
- package/dist/record-contract/record-json-schema-artifact.js +0 -309
- package/dist/record-contract/record-json-schema-etag.d.ts +0 -15
- package/dist/record-contract/record-json-schema-etag.d.ts.map +0 -1
- package/dist/record-contract/record-json-schema-etag.js +0 -41
- package/dist/record-contract/types.d.ts +0 -151
- package/dist/record-contract/types.d.ts.map +0 -1
- package/dist/record-contract/types.js +0 -6
- package/dist/services/BrandingTypefaceService.d.ts +0 -74
- package/dist/services/BrandingTypefaceService.d.ts.map +0 -1
- package/dist/services/BrandingTypefaceService.js +0 -359
- package/dist/services/BrandingWoff2Inspector.d.ts +0 -17
- package/dist/services/BrandingWoff2Inspector.d.ts.map +0 -1
- package/dist/services/BrandingWoff2Inspector.js +0 -402
- package/dist/services/DashboardLegacyConversion.d.ts +0 -82
- package/dist/services/DashboardLegacyConversion.d.ts.map +0 -1
- package/dist/services/DashboardLegacyConversion.js +0 -427
- package/dist/services/RecordSchemaService.d.ts +0 -440
- package/dist/services/RecordSchemaService.d.ts.map +0 -1
- package/dist/services/RecordSchemaService.js +0 -3061
- package/dist/services/RecordValidationService.d.ts +0 -340
- package/dist/services/RecordValidationService.d.ts.map +0 -1
- package/dist/services/RecordValidationService.js +0 -1898
- package/dist/services/form-record-access-user.d.ts +0 -3
- package/dist/services/form-record-access-user.d.ts.map +0 -1
- package/dist/services/form-record-access-user.js +0 -23
- package/dist/services/integration-v2/bindings.d.ts +0 -3
- package/dist/services/integration-v2/bindings.d.ts.map +0 -1
- package/dist/services/integration-v2/bindings.js +0 -91
- package/dist/services/integration-v2/runtime.d.ts +0 -3
- package/dist/services/integration-v2/runtime.d.ts.map +0 -1
- package/dist/services/integration-v2/runtime.js +0 -50
- package/dist/services/internal-record-schema-authorization.d.ts +0 -8
- package/dist/services/internal-record-schema-authorization.d.ts.map +0 -1
- package/dist/services/internal-record-schema-authorization.js +0 -16
- package/dist/services/oni-v2/audit.d.ts +0 -19
- package/dist/services/oni-v2/audit.d.ts.map +0 -1
- package/dist/services/oni-v2/audit.js +0 -50
- package/dist/services/oni-v2/bindings.d.ts +0 -7
- package/dist/services/oni-v2/bindings.d.ts.map +0 -1
- package/dist/services/oni-v2/bindings.js +0 -31
- package/dist/services/oni-v2/config.d.ts +0 -12
- package/dist/services/oni-v2/config.d.ts.map +0 -1
- package/dist/services/oni-v2/config.js +0 -134
- package/dist/services/oni-v2/context.d.ts +0 -3
- package/dist/services/oni-v2/context.d.ts.map +0 -1
- package/dist/services/oni-v2/context.js +0 -17
- package/dist/services/oni-v2/crate.d.ts +0 -17
- package/dist/services/oni-v2/crate.d.ts.map +0 -1
- package/dist/services/oni-v2/crate.js +0 -504
- package/dist/services/oni-v2/flydriveOcflStore.d.ts +0 -69
- package/dist/services/oni-v2/flydriveOcflStore.d.ts.map +0 -1
- package/dist/services/oni-v2/flydriveOcflStore.js +0 -325
- package/dist/services/oni-v2/ingestion.d.ts +0 -37
- package/dist/services/oni-v2/ingestion.d.ts.map +0 -1
- package/dist/services/oni-v2/ingestion.js +0 -91
- package/dist/services/oni-v2/mapping.d.ts +0 -17
- package/dist/services/oni-v2/mapping.d.ts.map +0 -1
- package/dist/services/oni-v2/mapping.js +0 -137
- package/dist/services/oni-v2/repository.d.ts +0 -9
- package/dist/services/oni-v2/repository.d.ts.map +0 -1
- package/dist/services/oni-v2/repository.js +0 -180
- package/dist/services/oni-v2/runtime.d.ts +0 -23
- package/dist/services/oni-v2/runtime.d.ts.map +0 -1
- package/dist/services/oni-v2/runtime.js +0 -121
- package/dist/services/oni-v2/templating.d.ts +0 -11
- package/dist/services/oni-v2/templating.d.ts.map +0 -1
- package/dist/services/oni-v2/templating.js +0 -27
- package/dist/services/oni-v2/types.d.ts +0 -100
- package/dist/services/oni-v2/types.d.ts.map +0 -1
- package/dist/services/oni-v2/types.js +0 -3
- package/dist/services/raid-v2/audit.d.ts +0 -10
- package/dist/services/raid-v2/audit.d.ts.map +0 -1
- package/dist/services/raid-v2/audit.js +0 -29
- package/dist/services/raid-v2/errors.d.ts +0 -85
- package/dist/services/raid-v2/errors.d.ts.map +0 -1
- package/dist/services/raid-v2/errors.js +0 -36
- package/dist/services/raid-v2/http.d.ts +0 -4
- package/dist/services/raid-v2/http.d.ts.map +0 -1
- package/dist/services/raid-v2/http.js +0 -84
- package/dist/services/raid-v2/logger.d.ts +0 -8
- package/dist/services/raid-v2/logger.d.ts.map +0 -1
- package/dist/services/raid-v2/logger.js +0 -30
- package/dist/services/raid-v2/mapping.d.ts +0 -9
- package/dist/services/raid-v2/mapping.d.ts.map +0 -1
- package/dist/services/raid-v2/mapping.js +0 -168
- package/dist/services/raid-v2/runtime.d.ts +0 -5
- package/dist/services/raid-v2/runtime.d.ts.map +0 -1
- package/dist/services/raid-v2/runtime.js +0 -135
- package/dist/services/raid-v2/tags.d.ts +0 -11
- package/dist/services/raid-v2/tags.d.ts.map +0 -1
- package/dist/services/raid-v2/tags.js +0 -12
- package/dist/services/raid-v2/types.d.ts +0 -66
- package/dist/services/raid-v2/types.d.ts.map +0 -1
- package/dist/services/raid-v2/types.js +0 -3
- package/dist/services/record-hooks/coordinator.d.ts +0 -64
- package/dist/services/record-hooks/coordinator.d.ts.map +0 -1
- package/dist/services/record-hooks/coordinator.js +0 -276
- package/dist/visitor/related-object-data-inline.visitor.d.ts +0 -31
- package/dist/visitor/related-object-data-inline.visitor.d.ts.map +0 -1
- package/dist/visitor/related-object-data-inline.visitor.js +0 -96
- package/dist/waterline-models/DashboardConfiguration.d.ts +0 -29
- package/dist/waterline-models/DashboardConfiguration.d.ts.map +0 -1
- package/dist/waterline-models/DashboardConfiguration.js +0 -52
|
@@ -78,8 +78,6 @@ const sails_ng_common_73 = require("@researchdatabox/sails-ng-common");
|
|
|
78
78
|
const sails_ng_common_74 = require("@researchdatabox/sails-ng-common");
|
|
79
79
|
const sails_ng_common_75 = require("@researchdatabox/sails-ng-common");
|
|
80
80
|
const sails_ng_common_76 = require("@researchdatabox/sails-ng-common");
|
|
81
|
-
const sails_ng_common_77 = require("@researchdatabox/sails-ng-common");
|
|
82
|
-
const sails_ng_common_78 = require("@researchdatabox/sails-ng-common");
|
|
83
81
|
/**
|
|
84
82
|
* Visit each form config frame and create an instance of the associated class.
|
|
85
83
|
*
|
|
@@ -96,9 +94,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
96
94
|
formMode;
|
|
97
95
|
recordValues;
|
|
98
96
|
removeOverrides;
|
|
99
|
-
preserveDefaultValues;
|
|
100
97
|
extractedDefaultValues;
|
|
101
|
-
translate;
|
|
102
98
|
mostRecentRepeatableElementTemplatePath;
|
|
103
99
|
data;
|
|
104
100
|
reusableFormDefs;
|
|
@@ -112,15 +108,14 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
112
108
|
this.formMode = 'view';
|
|
113
109
|
this.recordValues = null;
|
|
114
110
|
this.removeOverrides = false;
|
|
115
|
-
this.preserveDefaultValues = false;
|
|
116
111
|
this.extractedDefaultValues = {};
|
|
117
112
|
this.mostRecentRepeatableElementTemplatePath = null;
|
|
118
113
|
this.data = { name: '', componentDefinitions: [] };
|
|
119
114
|
this.reusableFormDefs = {};
|
|
120
115
|
this.formConfig = new sails_ng_common_1.FormConfig();
|
|
121
|
-
this.formOverride = new
|
|
122
|
-
this.formPathHelper = new
|
|
123
|
-
this.sharedProps = new
|
|
116
|
+
this.formOverride = new sails_ng_common_75.FormOverride(logger);
|
|
117
|
+
this.formPathHelper = new sails_ng_common_76.FormPathHelper(logger, this);
|
|
118
|
+
this.sharedProps = new sails_ng_common_76.PropertiesHelper();
|
|
124
119
|
this.validatorsSupport = new sails_ng_common_1.ValidatorsSupport();
|
|
125
120
|
}
|
|
126
121
|
/**
|
|
@@ -131,19 +126,15 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
131
126
|
* @param options.formMode The currently active form mode. Defaults to 'view'.
|
|
132
127
|
* @param options.record The record metadata values. Set to undefined or null to use the form default values.
|
|
133
128
|
* @param options.removeOverrides True to remove all overrides, false to retain the overrides that the client visitor might use.
|
|
134
|
-
* @param options.preserveDefaultValues Preserve model default values for downstream contract compilation.
|
|
135
|
-
* @param options.translate Resolve a translation code to text, used for form config default values.
|
|
136
129
|
*/
|
|
137
130
|
async start(options) {
|
|
138
131
|
this.data = (0, lodash_1.cloneDeep)(options.data);
|
|
139
132
|
this.reusableFormDefs = options.reusableFormDefs ?? {};
|
|
140
133
|
this.formMode = options.formMode ?? 'view';
|
|
141
|
-
this.translate = options.translate;
|
|
142
134
|
// When options.record is null or undefined, use the form defaults. Otherwise, use recordValues only.
|
|
143
135
|
// This allows for specifying an empty record '{}' and using that instead of the defaults.
|
|
144
136
|
this.recordValues = options.record === null || options.record === undefined ? null : options.record;
|
|
145
137
|
this.removeOverrides = options.removeOverrides ?? false;
|
|
146
|
-
this.preserveDefaultValues = options.preserveDefaultValues ?? false;
|
|
147
138
|
// Collect the form config defaults.
|
|
148
139
|
// The defaults always need to be extract so they are available to any repeatable components.
|
|
149
140
|
this.extractedDefaultValues = {};
|
|
@@ -156,7 +147,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
156
147
|
/* Form Config */
|
|
157
148
|
async visitFormConfig(item) {
|
|
158
149
|
const currentData = this.getData();
|
|
159
|
-
if (!(0,
|
|
150
|
+
if (!(0, sails_ng_common_74.isTypeFormConfig)(currentData)) {
|
|
160
151
|
throw new Error(`Invalid FormConfigFrame at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
161
152
|
}
|
|
162
153
|
// Set the simple properties, using the class instance property values as the defaults.
|
|
@@ -170,7 +161,6 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
170
161
|
this.sharedProps.setPropOverride('enabledValidationGroups', item, currentData);
|
|
171
162
|
this.sharedProps.setPropOverride('validators', item, currentData);
|
|
172
163
|
this.sharedProps.setPropOverride('validationGroups', item, currentData);
|
|
173
|
-
this.sharedProps.setPropOverride('validationOperations', item, currentData);
|
|
174
164
|
this.sharedProps.setPropOverride('defaultLayoutComponent', item, currentData);
|
|
175
165
|
this.sharedProps.setPropOverride('debugValue', item, currentData);
|
|
176
166
|
this.sharedProps.setPropOverride('expressions', item, currentData);
|
|
@@ -181,7 +171,6 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
181
171
|
// classes because the runtime consumes the config directly.
|
|
182
172
|
this.sharedProps.setPropOverride('behaviours', item, currentData);
|
|
183
173
|
this.sharedProps.setPropOverride('attachmentFields', item, currentData);
|
|
184
|
-
this.sharedProps.setPropOverride('serverSyncOnSave', item, currentData);
|
|
185
174
|
// Ensure the default validation groups are present.
|
|
186
175
|
if (!item.validationGroups) {
|
|
187
176
|
item.validationGroups = {};
|
|
@@ -216,7 +205,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
216
205
|
async visitSimpleInputFieldComponentDefinition(item) {
|
|
217
206
|
// Get the current raw data for constructing the class instance.
|
|
218
207
|
const currentData = this.getData();
|
|
219
|
-
if (!(0,
|
|
208
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_7.SimpleInputComponentName)) {
|
|
220
209
|
throw new Error(`Invalid ${sails_ng_common_7.SimpleInputComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
221
210
|
}
|
|
222
211
|
const config = currentData?.config;
|
|
@@ -229,7 +218,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
229
218
|
async visitSimpleInputFieldModelDefinition(item) {
|
|
230
219
|
// Get the current raw data for constructing the class instance.
|
|
231
220
|
const currentData = this.getData();
|
|
232
|
-
if (!(0,
|
|
221
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_7.SimpleInputModelName)) {
|
|
233
222
|
throw new Error(`Invalid ${sails_ng_common_7.SimpleInputModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
234
223
|
}
|
|
235
224
|
// Create the class instance for the config
|
|
@@ -244,12 +233,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
244
233
|
async visitContentFieldComponentDefinition(item) {
|
|
245
234
|
// Get the current raw data for constructing the class instance.
|
|
246
235
|
const currentData = this.getData();
|
|
247
|
-
if (!(0,
|
|
236
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_16.ContentComponentName)) {
|
|
248
237
|
throw new Error(`Invalid ${sails_ng_common_16.ContentComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
249
238
|
}
|
|
250
239
|
const config = currentData?.config;
|
|
251
240
|
// Create the class instance for the config
|
|
252
|
-
item.config = new
|
|
241
|
+
item.config = new sails_ng_common_41.ContentFieldComponentConfig();
|
|
253
242
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
254
243
|
this.sharedProps.setPropOverride('template', item.config, config);
|
|
255
244
|
this.sharedProps.setPropOverride('content', item.config, config);
|
|
@@ -260,29 +249,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
260
249
|
// TODO: does the content component require the data model?
|
|
261
250
|
await this.populateFormComponent(item);
|
|
262
251
|
}
|
|
263
|
-
async visitRelatedObjectDataFieldComponentDefinition(item) {
|
|
264
|
-
const currentData = this.getData();
|
|
265
|
-
if (!(0, sails_ng_common_76.isTypeFieldDefinitionName)(currentData, sails_ng_common_17.RelatedObjectDataComponentName)) {
|
|
266
|
-
throw new Error(`Invalid ${sails_ng_common_17.RelatedObjectDataComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
267
|
-
}
|
|
268
|
-
const config = currentData.config;
|
|
269
|
-
item.config = new sails_ng_common_17.RelatedObjectDataFieldComponentConfig();
|
|
270
|
-
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
271
|
-
for (const prop of ['template', 'content', 'contentIsTranslationCode', 'translationContentFormat', 'outputFormat', 'dataPath', 'oidProperty', 'relatedFields']) {
|
|
272
|
-
this.sharedProps.setPropOverride(prop, item.config, config);
|
|
273
|
-
}
|
|
274
|
-
item.config.oidProperty ??= 'id';
|
|
275
|
-
item.config.relatedFields ??= [];
|
|
276
|
-
item.config.template ??= '{{#each relatedObjects}}<div>{{#if title}}{{title}}{{else}}{{oid}}{{/if}}</div>{{/each}}';
|
|
277
|
-
}
|
|
278
|
-
async visitRelatedObjectDataFormComponentDefinition(item) {
|
|
279
|
-
await this.populateFormComponent(item);
|
|
280
|
-
}
|
|
281
252
|
/* Repeatable */
|
|
282
253
|
async visitRepeatableFieldComponentDefinition(item) {
|
|
283
254
|
// Get the current raw data for constructing the class instance.
|
|
284
255
|
const currentData = this.getData();
|
|
285
|
-
if (!(0,
|
|
256
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_4.RepeatableComponentName)) {
|
|
286
257
|
throw new Error(`Invalid ${sails_ng_common_4.RepeatableComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
287
258
|
}
|
|
288
259
|
const frame = currentData?.config;
|
|
@@ -294,7 +265,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
294
265
|
this.sharedProps.setPropOverride('hideWhenZeroRows', item.config, frame);
|
|
295
266
|
this.sharedProps.setPropOverride('canSort', item.config, frame);
|
|
296
267
|
const currentFormConfigPath = this.formPathHelper.formPath.formConfig;
|
|
297
|
-
if (!(0,
|
|
268
|
+
if (!(0, sails_ng_common_74.isTypeFormComponentDefinition)(frame?.elementTemplate)) {
|
|
298
269
|
throw new Error(`Invalid elementTemplate for repeatable at '${currentFormConfigPath}'.`);
|
|
299
270
|
}
|
|
300
271
|
const compDefs = this.formOverride.applyOverridesReusable([frame?.elementTemplate], this.reusableFormDefs);
|
|
@@ -336,7 +307,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
336
307
|
async visitRepeatableFieldModelDefinition(item) {
|
|
337
308
|
// Get the current raw data for constructing the class instance.
|
|
338
309
|
const currentData = this.getData();
|
|
339
|
-
if (!(0,
|
|
310
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_4.RepeatableModelName)) {
|
|
340
311
|
throw new Error(`Invalid ${sails_ng_common_4.RepeatableModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
341
312
|
}
|
|
342
313
|
// Create the class instance for the config
|
|
@@ -347,7 +318,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
347
318
|
async visitRepeatableElementFieldLayoutDefinition(item) {
|
|
348
319
|
// Get the current raw data for constructing the class instance.
|
|
349
320
|
const currentData = this.getData();
|
|
350
|
-
if (!(0,
|
|
321
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_4.RepeatableElementLayoutName)) {
|
|
351
322
|
throw new Error(`Invalid ${sails_ng_common_4.RepeatableElementLayoutName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
352
323
|
}
|
|
353
324
|
// Create the class instance for the config
|
|
@@ -361,12 +332,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
361
332
|
async visitValidationSummaryFieldComponentDefinition(item) {
|
|
362
333
|
// Get the current raw data for constructing the class instance.
|
|
363
334
|
const currentData = this.getData();
|
|
364
|
-
if (!(0,
|
|
365
|
-
throw new Error(`Invalid ${
|
|
335
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_66.ValidationSummaryComponentName)) {
|
|
336
|
+
throw new Error(`Invalid ${sails_ng_common_66.ValidationSummaryComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
366
337
|
}
|
|
367
338
|
const config = currentData?.config;
|
|
368
339
|
// Create the class instance for the config
|
|
369
|
-
item.config = new
|
|
340
|
+
item.config = new sails_ng_common_67.ValidationSummaryFieldComponentConfig();
|
|
370
341
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
371
342
|
this.sharedProps.setPropOverride('includeTabLabel', item.config, config);
|
|
372
343
|
this.sharedProps.setPropOverride('showWhenValid', item.config, config);
|
|
@@ -376,11 +347,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
376
347
|
}
|
|
377
348
|
async visitSuggestedValidationSummaryFieldComponentDefinition(item) {
|
|
378
349
|
const currentData = this.getData();
|
|
379
|
-
if (!(0,
|
|
380
|
-
throw new Error(`Invalid ${
|
|
350
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_68.SuggestedValidationSummaryComponentName)) {
|
|
351
|
+
throw new Error(`Invalid ${sails_ng_common_68.SuggestedValidationSummaryComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
381
352
|
}
|
|
382
353
|
const config = currentData?.config;
|
|
383
|
-
item.config = new
|
|
354
|
+
item.config = new sails_ng_common_69.SuggestedValidationSummaryFieldComponentConfig();
|
|
384
355
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
385
356
|
this.sharedProps.setPropOverride('enabledValidationGroups', item.config, config);
|
|
386
357
|
this.sharedProps.setPropOverride('includeTabLabel', item.config, config);
|
|
@@ -393,17 +364,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
393
364
|
/* Save Status */
|
|
394
365
|
async visitSaveStatusFieldComponentDefinition(item) {
|
|
395
366
|
const currentData = this.getData();
|
|
396
|
-
if (!(0,
|
|
397
|
-
throw new Error(`Invalid ${
|
|
367
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_70.SaveStatusComponentName)) {
|
|
368
|
+
throw new Error(`Invalid ${sails_ng_common_70.SaveStatusComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
398
369
|
}
|
|
399
370
|
const config = currentData?.config;
|
|
400
|
-
item.config = new
|
|
371
|
+
item.config = new sails_ng_common_71.SaveStatusFieldComponentConfig();
|
|
401
372
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
402
|
-
this.sharedProps.setPropOverride('successDisplayDurationMs', item.config, config);
|
|
403
|
-
this.sharedProps.setPropOverride('warningMessageCreate', item.config, config);
|
|
404
|
-
this.sharedProps.setPropOverride('warningMessageUpdate', item.config, config);
|
|
405
|
-
this.sharedProps.setPropOverride('unknownMessageCreate', item.config, config);
|
|
406
|
-
this.sharedProps.setPropOverride('unknownMessageUpdate', item.config, config);
|
|
407
373
|
}
|
|
408
374
|
async visitSaveStatusFormComponentDefinition(item) {
|
|
409
375
|
await this.populateFormComponent(item);
|
|
@@ -411,11 +377,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
411
377
|
/* Integration Status */
|
|
412
378
|
async visitIntegrationStatusFieldComponentDefinition(item) {
|
|
413
379
|
const currentData = this.getData();
|
|
414
|
-
if (!(0,
|
|
415
|
-
throw new Error(`Invalid ${
|
|
380
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_72.IntegrationStatusComponentName)) {
|
|
381
|
+
throw new Error(`Invalid ${sails_ng_common_72.IntegrationStatusComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
416
382
|
}
|
|
417
383
|
const config = currentData?.config;
|
|
418
|
-
item.config = new
|
|
384
|
+
item.config = new sails_ng_common_73.IntegrationStatusFieldComponentConfig();
|
|
419
385
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
420
386
|
this.sharedProps.setPropOverride('integrationNames', item.config, config);
|
|
421
387
|
this.sharedProps.setPropOverride('pollIntervalMs', item.config, config);
|
|
@@ -427,29 +393,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
427
393
|
async visitIntegrationStatusFormComponentDefinition(item) {
|
|
428
394
|
await this.populateFormComponent(item);
|
|
429
395
|
}
|
|
430
|
-
async visitWorkspaceFieldComponentDefinition(item) {
|
|
431
|
-
const currentData = this.getData();
|
|
432
|
-
if (!(0, sails_ng_common_76.isTypeFieldDefinitionName)(currentData, sails_ng_common_75.WorkspaceSelectorComponentName)) {
|
|
433
|
-
throw new Error(`Invalid ${sails_ng_common_75.WorkspaceSelectorComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
434
|
-
}
|
|
435
|
-
const config = currentData?.config;
|
|
436
|
-
item.config = new sails_ng_common_75.WorkspaceFieldComponentConfig();
|
|
437
|
-
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
438
|
-
this.sharedProps.setPropOverride('open', item.config, config);
|
|
439
|
-
this.sharedProps.setPropOverride('saveFirst', item.config, config);
|
|
440
|
-
this.sharedProps.setPropOverride('displayType', item.config, config);
|
|
441
|
-
this.sharedProps.setPropOverride('shouldSaveForm', item.config, config);
|
|
442
|
-
this.sharedProps.setPropOverride('allowAddTemplate', item.config, config);
|
|
443
|
-
this.sharedProps.setPropOverride('defaultSelection', item.config, config);
|
|
444
|
-
}
|
|
445
|
-
async visitWorkspaceFormComponentDefinition(item) {
|
|
446
|
-
await this.populateFormComponent(item);
|
|
447
|
-
}
|
|
448
396
|
/* Group */
|
|
449
397
|
async visitGroupFieldComponentDefinition(item) {
|
|
450
398
|
// Get the current raw data for constructing the class instance.
|
|
451
399
|
const currentData = this.getData();
|
|
452
|
-
if (!(0,
|
|
400
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_3.GroupFieldComponentName)) {
|
|
453
401
|
throw new Error(`Invalid ${sails_ng_common_3.GroupFieldComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
454
402
|
}
|
|
455
403
|
const frame = currentData?.config ?? { componentDefinitions: [] };
|
|
@@ -471,7 +419,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
471
419
|
async visitGroupFieldModelDefinition(item) {
|
|
472
420
|
// Get the current raw data for constructing the class instance.
|
|
473
421
|
const currentData = this.getData();
|
|
474
|
-
if (!(0,
|
|
422
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_3.GroupFieldModelName)) {
|
|
475
423
|
throw new Error(`Invalid ${sails_ng_common_3.GroupFieldModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
476
424
|
}
|
|
477
425
|
// Create the class instance for the config
|
|
@@ -486,27 +434,27 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
486
434
|
async visitTabFieldComponentDefinition(item) {
|
|
487
435
|
// Get the current raw data for constructing the class instance.
|
|
488
436
|
const currentData = this.getData();
|
|
489
|
-
if (!(0,
|
|
490
|
-
throw new Error(`Invalid ${
|
|
437
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_17.TabComponentName)) {
|
|
438
|
+
throw new Error(`Invalid ${sails_ng_common_17.TabComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
491
439
|
}
|
|
492
440
|
const frame = currentData?.config ?? { tabs: [] };
|
|
493
441
|
// Create the class instance for the config
|
|
494
|
-
item.config = new
|
|
442
|
+
item.config = new sails_ng_common_18.TabFieldComponentConfig();
|
|
495
443
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, frame);
|
|
496
444
|
const compDefs = this.formOverride.applyOverridesReusable(frame?.tabs ?? [], this.reusableFormDefs);
|
|
497
445
|
const tabs = [];
|
|
498
446
|
for (const compDef of compDefs) {
|
|
499
|
-
if ((0,
|
|
447
|
+
if ((0, sails_ng_common_74.isTypeFormComponentDefinitionName)(compDef, sails_ng_common_21.TabContentComponentName)) {
|
|
500
448
|
tabs.push(compDef);
|
|
501
449
|
}
|
|
502
450
|
else {
|
|
503
|
-
this.logger.warn(`Invalid ${
|
|
451
|
+
this.logger.warn(`Invalid ${sails_ng_common_21.TabContentComponentName} entry skipped at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(compDef)}`);
|
|
504
452
|
}
|
|
505
453
|
}
|
|
506
454
|
frame.tabs = tabs;
|
|
507
455
|
// Visit the components
|
|
508
456
|
for (const [index, componentDefinition] of (frame?.tabs ?? []).entries()) {
|
|
509
|
-
if ((0,
|
|
457
|
+
if ((0, sails_ng_common_74.isTypeFormComponentDefinitionName)(componentDefinition, sails_ng_common_21.TabContentComponentName)) {
|
|
510
458
|
const formComponent = this.constructFormComponent(componentDefinition);
|
|
511
459
|
// Continue the construction
|
|
512
460
|
await this.formPathHelper.acceptFormPath(formComponent, this.formPathHelper.lineagePathsForTabFieldComponentDefinition(formComponent, index));
|
|
@@ -523,12 +471,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
523
471
|
async visitTabFieldLayoutDefinition(item) {
|
|
524
472
|
// Get the current raw data for constructing the class instance.
|
|
525
473
|
const currentData = this.getData();
|
|
526
|
-
if (!(0,
|
|
527
|
-
throw new Error(`Invalid ${
|
|
474
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_17.TabLayoutName)) {
|
|
475
|
+
throw new Error(`Invalid ${sails_ng_common_17.TabLayoutName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
528
476
|
}
|
|
529
477
|
const config = currentData?.config;
|
|
530
478
|
// Create the class instance for the config
|
|
531
|
-
item.config = new
|
|
479
|
+
item.config = new sails_ng_common_18.TabFieldLayoutConfig();
|
|
532
480
|
this.sharedProps.sharedPopulateFieldLayoutConfig(item.config, config);
|
|
533
481
|
this.sharedProps.setPropOverride('buttonSectionCssClass', item.config, config);
|
|
534
482
|
this.sharedProps.setPropOverride('tabShellCssClass', item.config, config);
|
|
@@ -544,26 +492,26 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
544
492
|
/* Accordion */
|
|
545
493
|
async visitAccordionFieldComponentDefinition(item) {
|
|
546
494
|
const currentData = this.getData();
|
|
547
|
-
if (!(0,
|
|
548
|
-
throw new Error(`Invalid ${
|
|
495
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_19.AccordionComponentName)) {
|
|
496
|
+
throw new Error(`Invalid ${sails_ng_common_19.AccordionComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
549
497
|
}
|
|
550
498
|
const frame = currentData?.config ?? { panels: [] };
|
|
551
|
-
item.config = new
|
|
499
|
+
item.config = new sails_ng_common_20.AccordionFieldComponentConfig();
|
|
552
500
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, frame);
|
|
553
501
|
this.sharedProps.setPropOverride('startingOpenMode', item.config, frame);
|
|
554
502
|
const compDefs = this.formOverride.applyOverridesReusable(frame?.panels ?? [], this.reusableFormDefs);
|
|
555
503
|
const panels = [];
|
|
556
504
|
for (const compDef of compDefs) {
|
|
557
|
-
if ((0,
|
|
505
|
+
if ((0, sails_ng_common_74.isTypeFormComponentDefinitionName)(compDef, sails_ng_common_19.AccordionPanelComponentName)) {
|
|
558
506
|
panels.push(compDef);
|
|
559
507
|
}
|
|
560
508
|
else {
|
|
561
|
-
this.logger.warn(`Invalid ${
|
|
509
|
+
this.logger.warn(`Invalid ${sails_ng_common_19.AccordionPanelComponentName} entry skipped at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(compDef)}`);
|
|
562
510
|
}
|
|
563
511
|
}
|
|
564
512
|
frame.panels = panels;
|
|
565
513
|
for (const [index, componentDefinition] of frame.panels.entries()) {
|
|
566
|
-
if ((0,
|
|
514
|
+
if ((0, sails_ng_common_74.isTypeFormComponentDefinitionName)(componentDefinition, sails_ng_common_19.AccordionPanelComponentName)) {
|
|
567
515
|
const formComponent = this.constructFormComponent(componentDefinition);
|
|
568
516
|
await this.formPathHelper.acceptFormPath(formComponent, this.formPathHelper.lineagePathsForAccordionFieldComponentDefinition(formComponent, index));
|
|
569
517
|
const itemTransformed = this.applyConstructPhaseTransform(formComponent);
|
|
@@ -573,11 +521,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
573
521
|
}
|
|
574
522
|
async visitAccordionFieldLayoutDefinition(item) {
|
|
575
523
|
const currentData = this.getData();
|
|
576
|
-
if (!(0,
|
|
577
|
-
throw new Error(`Invalid ${
|
|
524
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_19.AccordionLayoutName)) {
|
|
525
|
+
throw new Error(`Invalid ${sails_ng_common_19.AccordionLayoutName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
578
526
|
}
|
|
579
527
|
const config = currentData?.config;
|
|
580
|
-
item.config = new
|
|
528
|
+
item.config = new sails_ng_common_20.AccordionFieldLayoutConfig();
|
|
581
529
|
this.sharedProps.sharedPopulateFieldLayoutConfig(item.config, config);
|
|
582
530
|
}
|
|
583
531
|
async visitAccordionFormComponentDefinition(item) {
|
|
@@ -585,11 +533,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
585
533
|
}
|
|
586
534
|
async visitAccordionPanelFieldComponentDefinition(item) {
|
|
587
535
|
const currentData = this.getData();
|
|
588
|
-
if (!(0,
|
|
589
|
-
throw new Error(`Invalid ${
|
|
536
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_19.AccordionPanelComponentName)) {
|
|
537
|
+
throw new Error(`Invalid ${sails_ng_common_19.AccordionPanelComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
590
538
|
}
|
|
591
539
|
const config = currentData?.config ?? { componentDefinitions: [] };
|
|
592
|
-
item.config = new
|
|
540
|
+
item.config = new sails_ng_common_20.AccordionPanelFieldComponentConfig();
|
|
593
541
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
594
542
|
config.componentDefinitions = this.formOverride.applyOverridesReusable(config?.componentDefinitions ?? [], this.reusableFormDefs);
|
|
595
543
|
for (const [index, componentDefinition] of config.componentDefinitions.entries()) {
|
|
@@ -601,11 +549,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
601
549
|
}
|
|
602
550
|
async visitAccordionPanelFieldLayoutDefinition(item) {
|
|
603
551
|
const currentData = this.getData();
|
|
604
|
-
if (!(0,
|
|
605
|
-
throw new Error(`Invalid ${
|
|
552
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_19.AccordionPanelLayoutName)) {
|
|
553
|
+
throw new Error(`Invalid ${sails_ng_common_19.AccordionPanelLayoutName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
606
554
|
}
|
|
607
555
|
const config = currentData?.config;
|
|
608
|
-
item.config = new
|
|
556
|
+
item.config = new sails_ng_common_20.AccordionPanelFieldLayoutConfig();
|
|
609
557
|
this.sharedProps.sharedPopulateFieldLayoutConfig(item.config, config);
|
|
610
558
|
this.sharedProps.setPropOverride('buttonLabel', item.config, config);
|
|
611
559
|
}
|
|
@@ -616,12 +564,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
616
564
|
async visitTabContentFieldComponentDefinition(item) {
|
|
617
565
|
// Get the current raw data for constructing the class instance.
|
|
618
566
|
const currentData = this.getData();
|
|
619
|
-
if (!(0,
|
|
620
|
-
throw new Error(`Invalid ${
|
|
567
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_21.TabContentComponentName)) {
|
|
568
|
+
throw new Error(`Invalid ${sails_ng_common_21.TabContentComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
621
569
|
}
|
|
622
570
|
const config = currentData?.config ?? { componentDefinitions: [] };
|
|
623
571
|
// Create the class instance for the config
|
|
624
|
-
item.config = new
|
|
572
|
+
item.config = new sails_ng_common_22.TabContentFieldComponentConfig();
|
|
625
573
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
626
574
|
this.sharedProps.setPropOverride('selected', item.config, config);
|
|
627
575
|
config.componentDefinitions = this.formOverride.applyOverridesReusable(config?.componentDefinitions ?? [], this.reusableFormDefs);
|
|
@@ -646,12 +594,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
646
594
|
async visitTabContentFieldLayoutDefinition(item) {
|
|
647
595
|
// Get the current raw data for constructing the class instance.
|
|
648
596
|
const currentData = this.getData();
|
|
649
|
-
if (!(0,
|
|
650
|
-
throw new Error(`Invalid ${
|
|
597
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_21.TabContentLayoutName)) {
|
|
598
|
+
throw new Error(`Invalid ${sails_ng_common_21.TabContentLayoutName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
651
599
|
}
|
|
652
600
|
const config = currentData?.config;
|
|
653
601
|
// Create the class instance for the config
|
|
654
|
-
item.config = new
|
|
602
|
+
item.config = new sails_ng_common_22.TabContentFieldLayoutConfig();
|
|
655
603
|
this.sharedProps.sharedPopulateFieldLayoutConfig(item.config, config);
|
|
656
604
|
this.sharedProps.setPropOverride('buttonLabel', item.config, config);
|
|
657
605
|
}
|
|
@@ -662,14 +610,13 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
662
610
|
async visitSaveButtonFieldComponentDefinition(item) {
|
|
663
611
|
// Get the current raw data for constructing the class instance.
|
|
664
612
|
const currentData = this.getData();
|
|
665
|
-
if (!(0,
|
|
666
|
-
throw new Error(`Invalid ${
|
|
613
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_58.SaveButtonComponentName)) {
|
|
614
|
+
throw new Error(`Invalid ${sails_ng_common_58.SaveButtonComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
667
615
|
}
|
|
668
616
|
const config = currentData?.config;
|
|
669
617
|
// Create the class instance for the config
|
|
670
|
-
item.config = new
|
|
618
|
+
item.config = new sails_ng_common_59.SaveButtonFieldComponentConfig();
|
|
671
619
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
672
|
-
this.sharedProps.setPropOverride('operation', item.config, config);
|
|
673
620
|
this.sharedProps.setPropOverride('targetStep', item.config, config);
|
|
674
621
|
this.sharedProps.setPropOverride('forceSave', item.config, config);
|
|
675
622
|
this.sharedProps.setPropOverride('labelSaving', item.config, config);
|
|
@@ -686,12 +633,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
686
633
|
async visitCancelButtonFieldComponentDefinition(item) {
|
|
687
634
|
// Get the current raw data for constructing the class instance.
|
|
688
635
|
const currentData = this.getData();
|
|
689
|
-
if (!(0,
|
|
690
|
-
throw new Error(`Invalid ${
|
|
636
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_60.CancelButtonComponentName)) {
|
|
637
|
+
throw new Error(`Invalid ${sails_ng_common_60.CancelButtonComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
691
638
|
}
|
|
692
639
|
const config = currentData?.config;
|
|
693
640
|
// Create the class instance for the config
|
|
694
|
-
item.config = new
|
|
641
|
+
item.config = new sails_ng_common_61.CancelButtonFieldComponentConfig();
|
|
695
642
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
696
643
|
this.sharedProps.setPropOverride('confirmationMessage', item.config, config);
|
|
697
644
|
this.sharedProps.setPropOverride('confirmationTitle', item.config, config);
|
|
@@ -707,11 +654,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
707
654
|
/* Delete Button */
|
|
708
655
|
async visitDeleteButtonFieldComponentDefinition(item) {
|
|
709
656
|
const currentData = this.getData();
|
|
710
|
-
if (!(0,
|
|
711
|
-
throw new Error(`Invalid ${
|
|
657
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_62.DeleteButtonComponentName)) {
|
|
658
|
+
throw new Error(`Invalid ${sails_ng_common_62.DeleteButtonComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
712
659
|
}
|
|
713
660
|
const config = currentData?.config;
|
|
714
|
-
item.config = new
|
|
661
|
+
item.config = new sails_ng_common_63.DeleteButtonFieldComponentConfig();
|
|
715
662
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
716
663
|
this.sharedProps.setPropOverride('buttonCssClasses', item.config, config);
|
|
717
664
|
this.sharedProps.setPropOverride('closeOnDelete', item.config, config);
|
|
@@ -729,12 +676,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
729
676
|
async visitTabNavButtonFieldComponentDefinition(item) {
|
|
730
677
|
// Get the current raw data for constructing the class instance.
|
|
731
678
|
const currentData = this.getData();
|
|
732
|
-
if (!(0,
|
|
733
|
-
throw new Error(`Invalid ${
|
|
679
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_64.TabNavButtonComponentName)) {
|
|
680
|
+
throw new Error(`Invalid ${sails_ng_common_64.TabNavButtonComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
734
681
|
}
|
|
735
682
|
const config = currentData?.config;
|
|
736
683
|
// Create the class instance for the config
|
|
737
|
-
item.config = new
|
|
684
|
+
item.config = new sails_ng_common_65.TabNavButtonFieldComponentConfig();
|
|
738
685
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
739
686
|
this.sharedProps.setPropOverride('prevLabel', item.config, config);
|
|
740
687
|
this.sharedProps.setPropOverride('nextLabel', item.config, config);
|
|
@@ -748,12 +695,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
748
695
|
async visitTextAreaFieldComponentDefinition(item) {
|
|
749
696
|
// Get the current raw data for constructing the class instance.
|
|
750
697
|
const currentData = this.getData();
|
|
751
|
-
if (!(0,
|
|
752
|
-
throw new Error(`Invalid ${
|
|
698
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_23.TextAreaComponentName)) {
|
|
699
|
+
throw new Error(`Invalid ${sails_ng_common_23.TextAreaComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
753
700
|
}
|
|
754
701
|
const config = currentData?.config;
|
|
755
702
|
// Create the class instance for the config
|
|
756
|
-
item.config = new
|
|
703
|
+
item.config = new sails_ng_common_24.TextAreaFieldComponentConfig();
|
|
757
704
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
758
705
|
this.sharedProps.setPropOverride('rows', item.config, config);
|
|
759
706
|
this.sharedProps.setPropOverride('cols', item.config, config);
|
|
@@ -762,11 +709,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
762
709
|
async visitTextAreaFieldModelDefinition(item) {
|
|
763
710
|
// Get the current raw data for constructing the class instance.
|
|
764
711
|
const currentData = this.getData();
|
|
765
|
-
if (!(0,
|
|
766
|
-
throw new Error(`Invalid ${
|
|
712
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_23.TextAreaModelName)) {
|
|
713
|
+
throw new Error(`Invalid ${sails_ng_common_23.TextAreaModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
767
714
|
}
|
|
768
715
|
// Create the class instance for the config
|
|
769
|
-
item.config = new
|
|
716
|
+
item.config = new sails_ng_common_24.TextAreaFieldModelConfig();
|
|
770
717
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
771
718
|
this.setModelValue(item, currentData?.config);
|
|
772
719
|
}
|
|
@@ -776,11 +723,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
776
723
|
/* Rich Text Editor */
|
|
777
724
|
async visitRichTextEditorFieldComponentDefinition(item) {
|
|
778
725
|
const currentData = this.getData();
|
|
779
|
-
if (!(0,
|
|
780
|
-
throw new Error(`Invalid ${
|
|
726
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_25.RichTextEditorComponentName)) {
|
|
727
|
+
throw new Error(`Invalid ${sails_ng_common_25.RichTextEditorComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
781
728
|
}
|
|
782
729
|
const config = currentData?.config;
|
|
783
|
-
item.config = new
|
|
730
|
+
item.config = new sails_ng_common_26.RichTextEditorFieldComponentConfig();
|
|
784
731
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
785
732
|
this.sharedProps.setPropOverride('outputFormat', item.config, config);
|
|
786
733
|
this.sharedProps.setPropOverride('showSourceToggle', item.config, config);
|
|
@@ -790,10 +737,10 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
790
737
|
}
|
|
791
738
|
async visitRichTextEditorFieldModelDefinition(item) {
|
|
792
739
|
const currentData = this.getData();
|
|
793
|
-
if (!(0,
|
|
794
|
-
throw new Error(`Invalid ${
|
|
740
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_25.RichTextEditorModelName)) {
|
|
741
|
+
throw new Error(`Invalid ${sails_ng_common_25.RichTextEditorModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
795
742
|
}
|
|
796
|
-
item.config = new
|
|
743
|
+
item.config = new sails_ng_common_26.RichTextEditorFieldModelConfig();
|
|
797
744
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
798
745
|
this.setModelValue(item, currentData?.config);
|
|
799
746
|
}
|
|
@@ -804,11 +751,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
804
751
|
/* Map */
|
|
805
752
|
async visitMapFieldComponentDefinition(item) {
|
|
806
753
|
const currentData = this.getData();
|
|
807
|
-
if (!(0,
|
|
808
|
-
throw new Error(`Invalid ${
|
|
754
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_27.MapComponentName)) {
|
|
755
|
+
throw new Error(`Invalid ${sails_ng_common_27.MapComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
809
756
|
}
|
|
810
757
|
const config = currentData?.config;
|
|
811
|
-
item.config = new
|
|
758
|
+
item.config = new sails_ng_common_28.MapFieldComponentConfig();
|
|
812
759
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
813
760
|
this.sharedProps.setPropOverride('center', item.config, config);
|
|
814
761
|
this.sharedProps.setPropOverride('zoom', item.config, config);
|
|
@@ -822,10 +769,10 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
822
769
|
}
|
|
823
770
|
async visitMapFieldModelDefinition(item) {
|
|
824
771
|
const currentData = this.getData();
|
|
825
|
-
if (!(0,
|
|
826
|
-
throw new Error(`Invalid ${
|
|
772
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_27.MapModelName)) {
|
|
773
|
+
throw new Error(`Invalid ${sails_ng_common_27.MapModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
827
774
|
}
|
|
828
|
-
item.config = new
|
|
775
|
+
item.config = new sails_ng_common_28.MapFieldModelConfig();
|
|
829
776
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
830
777
|
this.setModelValue(item, currentData?.config);
|
|
831
778
|
}
|
|
@@ -835,11 +782,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
835
782
|
/* File Upload */
|
|
836
783
|
async visitFileUploadFieldComponentDefinition(item) {
|
|
837
784
|
const currentData = this.getData();
|
|
838
|
-
if (!(0,
|
|
839
|
-
throw new Error(`Invalid ${
|
|
785
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_29.FileUploadComponentName)) {
|
|
786
|
+
throw new Error(`Invalid ${sails_ng_common_29.FileUploadComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
840
787
|
}
|
|
841
788
|
const config = currentData?.config;
|
|
842
|
-
item.config = new
|
|
789
|
+
item.config = new sails_ng_common_30.FileUploadFieldComponentConfig();
|
|
843
790
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
844
791
|
this.sharedProps.setPropOverride('restrictions', item.config, config);
|
|
845
792
|
this.sharedProps.setPropOverride('enabledSources', item.config, config);
|
|
@@ -850,10 +797,10 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
850
797
|
}
|
|
851
798
|
async visitFileUploadFieldModelDefinition(item) {
|
|
852
799
|
const currentData = this.getData();
|
|
853
|
-
if (!(0,
|
|
854
|
-
throw new Error(`Invalid ${
|
|
800
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_29.FileUploadModelName)) {
|
|
801
|
+
throw new Error(`Invalid ${sails_ng_common_29.FileUploadModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
855
802
|
}
|
|
856
|
-
item.config = new
|
|
803
|
+
item.config = new sails_ng_common_30.FileUploadFieldModelConfig();
|
|
857
804
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
858
805
|
this.setModelValue(item, currentData?.config);
|
|
859
806
|
}
|
|
@@ -863,11 +810,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
863
810
|
/* PDF List */
|
|
864
811
|
async visitPDFListFieldComponentDefinition(item) {
|
|
865
812
|
const currentData = this.getData();
|
|
866
|
-
if (!(0,
|
|
867
|
-
throw new Error(`Invalid ${
|
|
813
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_31.PDFListComponentName)) {
|
|
814
|
+
throw new Error(`Invalid ${sails_ng_common_31.PDFListComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
868
815
|
}
|
|
869
816
|
const config = currentData?.config;
|
|
870
|
-
item.config = new
|
|
817
|
+
item.config = new sails_ng_common_32.PDFListFieldComponentConfig();
|
|
871
818
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
872
819
|
this.sharedProps.setPropOverride('startsWith', item.config, config);
|
|
873
820
|
this.sharedProps.setPropOverride('recentPdfLimit', item.config, config);
|
|
@@ -883,10 +830,10 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
883
830
|
}
|
|
884
831
|
async visitPDFListFieldModelDefinition(item) {
|
|
885
832
|
const currentData = this.getData();
|
|
886
|
-
if (!(0,
|
|
887
|
-
throw new Error(`Invalid ${
|
|
833
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_31.PDFListModelName)) {
|
|
834
|
+
throw new Error(`Invalid ${sails_ng_common_31.PDFListModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
888
835
|
}
|
|
889
|
-
item.config = new
|
|
836
|
+
item.config = new sails_ng_common_32.PDFListFieldModelConfig();
|
|
890
837
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
891
838
|
this.setModelValue(item, currentData?.config);
|
|
892
839
|
}
|
|
@@ -896,10 +843,10 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
896
843
|
/* Record Metadata Retriever */
|
|
897
844
|
async visitRecordMetadataRetrieverFieldComponentDefinition(item) {
|
|
898
845
|
const currentData = this.getData();
|
|
899
|
-
if (!(0,
|
|
900
|
-
throw new Error(`Invalid ${
|
|
846
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_33.RecordMetadataRetrieverComponentName)) {
|
|
847
|
+
throw new Error(`Invalid ${sails_ng_common_33.RecordMetadataRetrieverComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
901
848
|
}
|
|
902
|
-
item.config = new
|
|
849
|
+
item.config = new sails_ng_common_34.RecordMetadataRetrieverFieldComponentConfig();
|
|
903
850
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, currentData?.config);
|
|
904
851
|
}
|
|
905
852
|
async visitRecordMetadataRetrieverFormComponentDefinition(item) {
|
|
@@ -908,11 +855,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
908
855
|
/* Data Location */
|
|
909
856
|
async visitDataLocationFieldComponentDefinition(item) {
|
|
910
857
|
const currentData = this.getData();
|
|
911
|
-
if (!(0,
|
|
912
|
-
throw new Error(`Invalid ${
|
|
858
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_35.DataLocationComponentName)) {
|
|
859
|
+
throw new Error(`Invalid ${sails_ng_common_35.DataLocationComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
913
860
|
}
|
|
914
861
|
const config = currentData?.config;
|
|
915
|
-
item.config = new
|
|
862
|
+
item.config = new sails_ng_common_36.DataLocationFieldComponentConfig();
|
|
916
863
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
917
864
|
this.sharedProps.setPropOverride('restrictions', item.config, config);
|
|
918
865
|
this.sharedProps.setPropOverride('enabledSources', item.config, config);
|
|
@@ -942,10 +889,10 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
942
889
|
}
|
|
943
890
|
async visitDataLocationFieldModelDefinition(item) {
|
|
944
891
|
const currentData = this.getData();
|
|
945
|
-
if (!(0,
|
|
946
|
-
throw new Error(`Invalid ${
|
|
892
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_35.DataLocationModelName)) {
|
|
893
|
+
throw new Error(`Invalid ${sails_ng_common_35.DataLocationModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
947
894
|
}
|
|
948
|
-
item.config = new
|
|
895
|
+
item.config = new sails_ng_common_36.DataLocationFieldModelConfig();
|
|
949
896
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
950
897
|
this.setModelValue(item, currentData?.config);
|
|
951
898
|
}
|
|
@@ -956,10 +903,10 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
956
903
|
// token is synthetic, so no model instance should be created here.
|
|
957
904
|
async visitPublishDataLocationRefreshFieldComponentDefinition(item) {
|
|
958
905
|
const currentData = this.getData();
|
|
959
|
-
if (!(0,
|
|
960
|
-
throw new Error(`Invalid ${
|
|
906
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_37.PublishDataLocationRefreshComponentName)) {
|
|
907
|
+
throw new Error(`Invalid ${sails_ng_common_37.PublishDataLocationRefreshComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
961
908
|
}
|
|
962
|
-
item.config = new
|
|
909
|
+
item.config = new sails_ng_common_38.PublishDataLocationRefreshFieldComponentConfig();
|
|
963
910
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, currentData?.config);
|
|
964
911
|
}
|
|
965
912
|
async visitPublishDataLocationRefreshFormComponentDefinition(item) {
|
|
@@ -967,11 +914,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
967
914
|
}
|
|
968
915
|
async visitPublishDataLocationSelectorFieldComponentDefinition(item) {
|
|
969
916
|
const currentData = this.getData();
|
|
970
|
-
if (!(0,
|
|
971
|
-
throw new Error(`Invalid ${
|
|
917
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_39.PublishDataLocationSelectorComponentName)) {
|
|
918
|
+
throw new Error(`Invalid ${sails_ng_common_39.PublishDataLocationSelectorComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
972
919
|
}
|
|
973
920
|
const config = currentData?.config;
|
|
974
|
-
item.config = new
|
|
921
|
+
item.config = new sails_ng_common_40.PublishDataLocationSelectorFieldComponentConfig();
|
|
975
922
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
976
923
|
this.sharedProps.setPropOverride('columns', item.config, config);
|
|
977
924
|
this.sharedProps.setPropOverride('editNotesButtonText', item.config, config);
|
|
@@ -1006,10 +953,10 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1006
953
|
}
|
|
1007
954
|
async visitPublishDataLocationSelectorFieldModelDefinition(item) {
|
|
1008
955
|
const currentData = this.getData();
|
|
1009
|
-
if (!(0,
|
|
1010
|
-
throw new Error(`Invalid ${
|
|
956
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_39.PublishDataLocationSelectorModelName)) {
|
|
957
|
+
throw new Error(`Invalid ${sails_ng_common_39.PublishDataLocationSelectorModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1011
958
|
}
|
|
1012
|
-
item.config = new
|
|
959
|
+
item.config = new sails_ng_common_40.PublishDataLocationSelectorFieldModelConfig();
|
|
1013
960
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
1014
961
|
this.setModelValue(item, currentData?.config);
|
|
1015
962
|
}
|
|
@@ -1020,7 +967,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1020
967
|
async visitDefaultFieldLayoutDefinition(item) {
|
|
1021
968
|
// Get the current raw data for constructing the class instance.
|
|
1022
969
|
const currentData = this.getData();
|
|
1023
|
-
if (!(0,
|
|
970
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_9.DefaultLayoutName)) {
|
|
1024
971
|
throw new Error(`Invalid ${sails_ng_common_9.DefaultLayoutName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1025
972
|
}
|
|
1026
973
|
// Create the class instance for the config
|
|
@@ -1030,7 +977,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1030
977
|
async visitInlineFieldLayoutDefinition(item) {
|
|
1031
978
|
// Get the current raw data for constructing the class instance.
|
|
1032
979
|
const currentData = this.getData();
|
|
1033
|
-
if (!(0,
|
|
980
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_13.InlineLayoutName)) {
|
|
1034
981
|
throw new Error(`Invalid ${sails_ng_common_13.InlineLayoutName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1035
982
|
}
|
|
1036
983
|
item.config = new sails_ng_common_14.InlineFieldLayoutConfig();
|
|
@@ -1038,7 +985,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1038
985
|
}
|
|
1039
986
|
async visitActionRowFieldLayoutDefinition(item) {
|
|
1040
987
|
const currentData = this.getData();
|
|
1041
|
-
if (!(0,
|
|
988
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_11.ActionRowLayoutName)) {
|
|
1042
989
|
throw new Error(`Invalid ${sails_ng_common_11.ActionRowLayoutName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1043
990
|
}
|
|
1044
991
|
const config = currentData?.config;
|
|
@@ -1054,17 +1001,16 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1054
1001
|
async visitCheckboxInputFieldComponentDefinition(item) {
|
|
1055
1002
|
// Get the current raw data for constructing the class instance.
|
|
1056
1003
|
const currentData = this.getData();
|
|
1057
|
-
if (!(0,
|
|
1058
|
-
throw new Error(`Invalid ${
|
|
1004
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_46.CheckboxInputComponentName)) {
|
|
1005
|
+
throw new Error(`Invalid ${sails_ng_common_46.CheckboxInputComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1059
1006
|
}
|
|
1060
1007
|
const config = currentData?.config;
|
|
1061
1008
|
// Create the class instance for the config
|
|
1062
|
-
item.config = new
|
|
1009
|
+
item.config = new sails_ng_common_47.CheckboxInputFieldComponentConfig();
|
|
1063
1010
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
1064
1011
|
this.sharedProps.setPropOverride('placeholder', item.config, config);
|
|
1065
1012
|
this.sharedProps.setPropOverride('options', item.config, config);
|
|
1066
1013
|
this.sharedProps.setPropOverride('multipleValues', item.config, config);
|
|
1067
|
-
this.sharedProps.setPropOverride('booleanMode', item.config, config);
|
|
1068
1014
|
this.sharedProps.setPropOverride('vocabRef', item.config, config);
|
|
1069
1015
|
this.sharedProps.setPropOverride('inlineVocab', item.config, config);
|
|
1070
1016
|
this.sharedProps.setPropOverride('historicalVocabMode', item.config, config);
|
|
@@ -1072,11 +1018,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1072
1018
|
async visitCheckboxInputFieldModelDefinition(item) {
|
|
1073
1019
|
// Get the current raw data for constructing the class instance.
|
|
1074
1020
|
const currentData = this.getData();
|
|
1075
|
-
if (!(0,
|
|
1076
|
-
throw new Error(`Invalid ${
|
|
1021
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_46.CheckboxInputModelName)) {
|
|
1022
|
+
throw new Error(`Invalid ${sails_ng_common_46.CheckboxInputModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1077
1023
|
}
|
|
1078
1024
|
// Create the class instance for the config
|
|
1079
|
-
item.config = new
|
|
1025
|
+
item.config = new sails_ng_common_47.CheckboxInputFieldModelConfig();
|
|
1080
1026
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
1081
1027
|
this.setModelValue(item, currentData?.config);
|
|
1082
1028
|
}
|
|
@@ -1087,12 +1033,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1087
1033
|
async visitCheckboxTreeFieldComponentDefinition(item) {
|
|
1088
1034
|
// Get the current raw data for constructing the class instance.
|
|
1089
1035
|
const currentData = this.getData();
|
|
1090
|
-
if (!(0,
|
|
1091
|
-
throw new Error(`Invalid ${
|
|
1036
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_48.CheckboxTreeComponentName)) {
|
|
1037
|
+
throw new Error(`Invalid ${sails_ng_common_48.CheckboxTreeComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1092
1038
|
}
|
|
1093
1039
|
const config = currentData?.config;
|
|
1094
1040
|
// Create the class instance for the config
|
|
1095
|
-
item.config = new
|
|
1041
|
+
item.config = new sails_ng_common_49.CheckboxTreeFieldComponentConfig();
|
|
1096
1042
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
1097
1043
|
this.sharedProps.setPropOverride('vocabRef', item.config, config);
|
|
1098
1044
|
this.sharedProps.setPropOverride('inlineVocab', item.config, config);
|
|
@@ -1105,11 +1051,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1105
1051
|
async visitCheckboxTreeFieldModelDefinition(item) {
|
|
1106
1052
|
// Get the current raw data for constructing the class instance.
|
|
1107
1053
|
const currentData = this.getData();
|
|
1108
|
-
if (!(0,
|
|
1109
|
-
throw new Error(`Invalid ${
|
|
1054
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_48.CheckboxTreeModelName)) {
|
|
1055
|
+
throw new Error(`Invalid ${sails_ng_common_48.CheckboxTreeModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1110
1056
|
}
|
|
1111
1057
|
// Create the class instance for the config
|
|
1112
|
-
item.config = new
|
|
1058
|
+
item.config = new sails_ng_common_49.CheckboxTreeFieldModelConfig();
|
|
1113
1059
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
1114
1060
|
this.setModelValue(item, currentData?.config);
|
|
1115
1061
|
}
|
|
@@ -1119,11 +1065,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1119
1065
|
/* Record Selector */
|
|
1120
1066
|
async visitRecordSelectorFieldComponentDefinition(item) {
|
|
1121
1067
|
const currentData = this.getData();
|
|
1122
|
-
if (!(0,
|
|
1123
|
-
throw new Error(`Invalid ${
|
|
1068
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_50.RecordSelectorComponentName)) {
|
|
1069
|
+
throw new Error(`Invalid ${sails_ng_common_50.RecordSelectorComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1124
1070
|
}
|
|
1125
1071
|
const config = currentData?.config;
|
|
1126
|
-
item.config = new
|
|
1072
|
+
item.config = new sails_ng_common_51.RecordSelectorFieldComponentConfig();
|
|
1127
1073
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
1128
1074
|
this.sharedProps.setPropOverride('columnTitle', item.config, config);
|
|
1129
1075
|
this.sharedProps.setPropOverride('relationshipId', item.config, config);
|
|
@@ -1134,10 +1080,10 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1134
1080
|
}
|
|
1135
1081
|
async visitRecordSelectorFieldModelDefinition(item) {
|
|
1136
1082
|
const currentData = this.getData();
|
|
1137
|
-
if (!(0,
|
|
1138
|
-
throw new Error(`Invalid ${
|
|
1083
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_50.RecordSelectorModelName)) {
|
|
1084
|
+
throw new Error(`Invalid ${sails_ng_common_50.RecordSelectorModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1139
1085
|
}
|
|
1140
|
-
item.config = new
|
|
1086
|
+
item.config = new sails_ng_common_51.RecordSelectorFieldModelConfig();
|
|
1141
1087
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
1142
1088
|
this.setModelValue(item, currentData?.config);
|
|
1143
1089
|
}
|
|
@@ -1148,12 +1094,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1148
1094
|
async visitDropdownInputFieldComponentDefinition(item) {
|
|
1149
1095
|
// Get the current raw data for constructing the class instance.
|
|
1150
1096
|
const currentData = this.getData();
|
|
1151
|
-
if (!(0,
|
|
1152
|
-
throw new Error(`Invalid ${
|
|
1097
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_42.DropdownInputComponentName)) {
|
|
1098
|
+
throw new Error(`Invalid ${sails_ng_common_42.DropdownInputComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1153
1099
|
}
|
|
1154
1100
|
const config = currentData?.config;
|
|
1155
1101
|
// Create the class instance for the config
|
|
1156
|
-
item.config = new
|
|
1102
|
+
item.config = new sails_ng_common_43.DropdownInputFieldComponentConfig();
|
|
1157
1103
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
1158
1104
|
this.sharedProps.setPropOverride('placeholder', item.config, config);
|
|
1159
1105
|
this.sharedProps.setPropOverride('options', item.config, config);
|
|
@@ -1164,11 +1110,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1164
1110
|
async visitDropdownInputFieldModelDefinition(item) {
|
|
1165
1111
|
// Get the current raw data for constructing the class instance.
|
|
1166
1112
|
const currentData = this.getData();
|
|
1167
|
-
if (!(0,
|
|
1168
|
-
throw new Error(`Invalid ${
|
|
1113
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_42.DropdownInputModelName)) {
|
|
1114
|
+
throw new Error(`Invalid ${sails_ng_common_42.DropdownInputModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1169
1115
|
}
|
|
1170
1116
|
// Create the class instance for the config
|
|
1171
|
-
item.config = new
|
|
1117
|
+
item.config = new sails_ng_common_43.DropdownInputFieldModelConfig();
|
|
1172
1118
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
1173
1119
|
this.setModelValue(item, currentData?.config);
|
|
1174
1120
|
}
|
|
@@ -1178,11 +1124,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1178
1124
|
/* Typeahead Input */
|
|
1179
1125
|
async visitTypeaheadInputFieldComponentDefinition(item) {
|
|
1180
1126
|
const currentData = this.getData();
|
|
1181
|
-
if (!(0,
|
|
1182
|
-
throw new Error(`Invalid ${
|
|
1127
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_44.TypeaheadInputComponentName)) {
|
|
1128
|
+
throw new Error(`Invalid ${sails_ng_common_44.TypeaheadInputComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1183
1129
|
}
|
|
1184
1130
|
const config = currentData?.config;
|
|
1185
|
-
const itemConfig = new
|
|
1131
|
+
const itemConfig = new sails_ng_common_45.TypeaheadInputFieldComponentConfig();
|
|
1186
1132
|
this.sharedProps.sharedPopulateFieldComponentConfig(itemConfig, config);
|
|
1187
1133
|
this.sharedProps.setPropOverride('sourceType', itemConfig, config);
|
|
1188
1134
|
this.sharedProps.setPropOverride('staticOptions', itemConfig, config);
|
|
@@ -1240,10 +1186,10 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1240
1186
|
}
|
|
1241
1187
|
async visitTypeaheadInputFieldModelDefinition(item) {
|
|
1242
1188
|
const currentData = this.getData();
|
|
1243
|
-
if (!(0,
|
|
1244
|
-
throw new Error(`Invalid ${
|
|
1189
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_44.TypeaheadInputModelName)) {
|
|
1190
|
+
throw new Error(`Invalid ${sails_ng_common_44.TypeaheadInputModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1245
1191
|
}
|
|
1246
|
-
item.config = new
|
|
1192
|
+
item.config = new sails_ng_common_45.TypeaheadInputFieldModelConfig();
|
|
1247
1193
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
1248
1194
|
this.setModelValue(item, currentData?.config);
|
|
1249
1195
|
}
|
|
@@ -1254,12 +1200,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1254
1200
|
async visitRadioInputFieldComponentDefinition(item) {
|
|
1255
1201
|
// Get the current raw data for constructing the class instance.
|
|
1256
1202
|
const currentData = this.getData();
|
|
1257
|
-
if (!(0,
|
|
1258
|
-
throw new Error(`Invalid ${
|
|
1203
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_52.RadioInputComponentName)) {
|
|
1204
|
+
throw new Error(`Invalid ${sails_ng_common_52.RadioInputComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1259
1205
|
}
|
|
1260
1206
|
const config = currentData?.config;
|
|
1261
1207
|
// Create the class instance for the config
|
|
1262
|
-
item.config = new
|
|
1208
|
+
item.config = new sails_ng_common_53.RadioInputFieldComponentConfig();
|
|
1263
1209
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
1264
1210
|
this.sharedProps.setPropOverride('options', item.config, config);
|
|
1265
1211
|
this.sharedProps.setPropOverride('vocabRef', item.config, config);
|
|
@@ -1269,11 +1215,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1269
1215
|
async visitRadioInputFieldModelDefinition(item) {
|
|
1270
1216
|
// Get the current raw data for constructing the class instance.
|
|
1271
1217
|
const currentData = this.getData();
|
|
1272
|
-
if (!(0,
|
|
1273
|
-
throw new Error(`Invalid ${
|
|
1218
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_52.RadioInputModelName)) {
|
|
1219
|
+
throw new Error(`Invalid ${sails_ng_common_52.RadioInputModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1274
1220
|
}
|
|
1275
1221
|
// Create the class instance for the config
|
|
1276
|
-
item.config = new
|
|
1222
|
+
item.config = new sails_ng_common_53.RadioInputFieldModelConfig();
|
|
1277
1223
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
1278
1224
|
this.setModelValue(item, currentData?.config);
|
|
1279
1225
|
}
|
|
@@ -1284,12 +1230,12 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1284
1230
|
async visitDateInputFieldComponentDefinition(item) {
|
|
1285
1231
|
// Get the current raw data for constructing the class instance.
|
|
1286
1232
|
const currentData = this.getData();
|
|
1287
|
-
if (!(0,
|
|
1288
|
-
throw new Error(`Invalid ${
|
|
1233
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_54.DateInputComponentName)) {
|
|
1234
|
+
throw new Error(`Invalid ${sails_ng_common_54.DateInputComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1289
1235
|
}
|
|
1290
1236
|
const config = currentData?.config;
|
|
1291
1237
|
// Create the class instance for the config
|
|
1292
|
-
item.config = new
|
|
1238
|
+
item.config = new sails_ng_common_55.DateInputFieldComponentConfig();
|
|
1293
1239
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, config);
|
|
1294
1240
|
this.sharedProps.setPropOverride('placeholder', item.config, config);
|
|
1295
1241
|
this.sharedProps.setPropOverride('dateFormat', item.config, config);
|
|
@@ -1301,11 +1247,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1301
1247
|
async visitDateInputFieldModelDefinition(item) {
|
|
1302
1248
|
// Get the current raw data for constructing the class instance.
|
|
1303
1249
|
const currentData = this.getData();
|
|
1304
|
-
if (!(0,
|
|
1305
|
-
throw new Error(`Invalid ${
|
|
1250
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_54.DateInputModelName)) {
|
|
1251
|
+
throw new Error(`Invalid ${sails_ng_common_54.DateInputModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1306
1252
|
}
|
|
1307
1253
|
// Create the class instance for the config
|
|
1308
|
-
item.config = new
|
|
1254
|
+
item.config = new sails_ng_common_55.DateInputFieldModelConfig();
|
|
1309
1255
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
1310
1256
|
this.sharedProps.setPropOverride('dateOnly', item.config, currentData?.config);
|
|
1311
1257
|
this.setModelValue(item, currentData?.config);
|
|
@@ -1316,11 +1262,11 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1316
1262
|
/* Question Tree */
|
|
1317
1263
|
async visitQuestionTreeFieldComponentDefinition(item) {
|
|
1318
1264
|
const currentData = this.getData();
|
|
1319
|
-
if (!(0,
|
|
1320
|
-
throw new Error(`Invalid ${
|
|
1265
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_56.QuestionTreeComponentName)) {
|
|
1266
|
+
throw new Error(`Invalid ${sails_ng_common_56.QuestionTreeComponentName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1321
1267
|
}
|
|
1322
1268
|
const configFrame = currentData?.config ?? { availableOutcomes: [], questions: [], componentDefinitions: [] };
|
|
1323
|
-
item.config = new
|
|
1269
|
+
item.config = new sails_ng_common_57.QuestionTreeFieldComponentConfig();
|
|
1324
1270
|
this.sharedProps.sharedPopulateFieldComponentConfig(item.config, configFrame);
|
|
1325
1271
|
this.sharedProps.setPropOverride('availableOutcomes', item.config, configFrame);
|
|
1326
1272
|
this.sharedProps.setPropOverride('availableMeta', item.config, configFrame);
|
|
@@ -1344,10 +1290,10 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1344
1290
|
}
|
|
1345
1291
|
async visitQuestionTreeFieldModelDefinition(item) {
|
|
1346
1292
|
const currentData = this.getData();
|
|
1347
|
-
if (!(0,
|
|
1348
|
-
throw new Error(`Invalid ${
|
|
1293
|
+
if (!(0, sails_ng_common_74.isTypeFieldDefinitionName)(currentData, sails_ng_common_56.QuestionTreeModelName)) {
|
|
1294
|
+
throw new Error(`Invalid ${sails_ng_common_56.QuestionTreeModelName} at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1349
1295
|
}
|
|
1350
|
-
item.config = new
|
|
1296
|
+
item.config = new sails_ng_common_57.QuestionTreeFieldModelConfig();
|
|
1351
1297
|
this.sharedProps.sharedPopulateFieldModelConfig(item.config, currentData?.config);
|
|
1352
1298
|
this.setModelValue(item, currentData?.config);
|
|
1353
1299
|
}
|
|
@@ -1360,7 +1306,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1360
1306
|
}
|
|
1361
1307
|
async populateFormComponent(item) {
|
|
1362
1308
|
const currentData = this.getData();
|
|
1363
|
-
if (!(0,
|
|
1309
|
+
if (!(0, sails_ng_common_74.isTypeFormComponentDefinition)(currentData)) {
|
|
1364
1310
|
throw new Error(`Invalid FormComponentDefinition at '${this.formPathHelper.formPath.formConfig}': ${JSON.stringify(currentData)}`);
|
|
1365
1311
|
}
|
|
1366
1312
|
// NOTE: Leaving expressions form-level processing placeholder, currently unused and unimplemented.
|
|
@@ -1397,14 +1343,14 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1397
1343
|
if (this.formMode === 'view') {
|
|
1398
1344
|
const className = formComponent?.component?.class;
|
|
1399
1345
|
const componentConfig = formComponent?.component?.config;
|
|
1400
|
-
const shouldDeferToClientViewTransform = className ===
|
|
1346
|
+
const shouldDeferToClientViewTransform = className === sails_ng_common_56.QuestionTreeComponentName ||
|
|
1401
1347
|
className === sails_ng_common_4.RepeatableComponentName ||
|
|
1402
1348
|
(className === sails_ng_common_3.GroupFieldComponentName && formComponent?.layout?.class !== sails_ng_common_11.ActionRowLayoutName) ||
|
|
1403
1349
|
this.mostRecentRepeatableElementTemplatePath !== null ||
|
|
1404
1350
|
(componentConfig?.inlineVocab === true &&
|
|
1405
|
-
(className ===
|
|
1406
|
-
className ===
|
|
1407
|
-
className ===
|
|
1351
|
+
(className === sails_ng_common_42.DropdownInputComponentName ||
|
|
1352
|
+
className === sails_ng_common_46.CheckboxInputComponentName ||
|
|
1353
|
+
className === sails_ng_common_52.RadioInputComponentName));
|
|
1408
1354
|
if (shouldDeferToClientViewTransform) {
|
|
1409
1355
|
if (formComponent.overrides?.replaceName !== undefined) {
|
|
1410
1356
|
formComponent.name = formComponent.overrides.replaceName;
|
|
@@ -1477,9 +1423,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1477
1423
|
}
|
|
1478
1424
|
// Set the model.config.value or new item value
|
|
1479
1425
|
if (isElementTemplate) {
|
|
1480
|
-
|
|
1481
|
-
// authored in the form config and needs the same translation code resolution.
|
|
1482
|
-
item.config.newEntryValue = this.translateConfigDefault(config?.newEntryValue);
|
|
1426
|
+
item.config.newEntryValue = config?.newEntryValue;
|
|
1483
1427
|
}
|
|
1484
1428
|
else if (!isElementTemplateDescendant) {
|
|
1485
1429
|
// NOTE: It is useless to set the model.config.value on an elementTemplate or a descendant component.
|
|
@@ -1487,10 +1431,8 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1487
1431
|
// - no value, in which case the elementTemplate.model.config.newEntryValue will be used if one item is added by default; or
|
|
1488
1432
|
// - a value, which will be used to populate the entire repeatable and so any value on nested components will be ignored.
|
|
1489
1433
|
item.config.value = this.currentModelValue();
|
|
1490
|
-
// Remove the defaultValue property
|
|
1491
|
-
|
|
1492
|
-
// with an explicit non-null default.
|
|
1493
|
-
if (!this.preserveDefaultValues && item?.config && 'defaultValue' in item.config) {
|
|
1434
|
+
// Remove the defaultValue property.
|
|
1435
|
+
if (item?.config && 'defaultValue' in item.config) {
|
|
1494
1436
|
delete item.config.defaultValue;
|
|
1495
1437
|
}
|
|
1496
1438
|
}
|
|
@@ -1516,37 +1458,7 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1516
1458
|
*/
|
|
1517
1459
|
currentDefaultValue(itemDefaultValue) {
|
|
1518
1460
|
const dataModelPath = this.formPathHelper.formPath.dataModel;
|
|
1519
|
-
|
|
1520
|
-
return this.translateConfigDefault(value);
|
|
1521
|
-
}
|
|
1522
|
-
/**
|
|
1523
|
-
* Resolve translation codes in a form config default value.
|
|
1524
|
-
*
|
|
1525
|
-
* Default values are authored in the form config, so a value such as
|
|
1526
|
-
* '@dataPublication-citation-publisher-default' is a translation code rather than
|
|
1527
|
-
* literal text. Labels are resolved by the client i18next pipe, but a default value
|
|
1528
|
-
* becomes record metadata, so leaving it unresolved persists the raw code. Strings
|
|
1529
|
-
* that look like natural language are left untouched, and an unknown code resolves
|
|
1530
|
-
* to itself, so this is a no-op unless the value really is a translation code.
|
|
1531
|
-
*
|
|
1532
|
-
* @param value The default value from the form config.
|
|
1533
|
-
* @protected
|
|
1534
|
-
*/
|
|
1535
|
-
translateConfigDefault(value) {
|
|
1536
|
-
if (!this.translate) {
|
|
1537
|
-
return value;
|
|
1538
|
-
}
|
|
1539
|
-
if (typeof value === 'string') {
|
|
1540
|
-
return (0, sails_ng_common_1.isLikelyNaturalLanguage)(value) ? value : this.translate(value);
|
|
1541
|
-
}
|
|
1542
|
-
if (Array.isArray(value)) {
|
|
1543
|
-
return value.map(entry => this.translateConfigDefault(entry));
|
|
1544
|
-
}
|
|
1545
|
-
// Only walk plain objects, so class instances and dates are left as they are.
|
|
1546
|
-
if (value !== null && typeof value === 'object' && Object.getPrototypeOf(value) === Object.prototype) {
|
|
1547
|
-
return Object.fromEntries(Object.entries(value).map(([key, entry]) => [key, this.translateConfigDefault(entry)]));
|
|
1548
|
-
}
|
|
1549
|
-
return value;
|
|
1461
|
+
return (0, lodash_1.cloneDeep)((0, lodash_1.get)(this.extractedDefaultValues, dataModelPath, itemDefaultValue));
|
|
1550
1462
|
}
|
|
1551
1463
|
/**
|
|
1552
1464
|
* Get the record / existing value for the current data model path.
|
|
@@ -1677,4 +1589,4 @@ class ConstructFormConfigVisitor extends sails_ng_common_2.FormConfigVisitor {
|
|
|
1677
1589
|
}
|
|
1678
1590
|
}
|
|
1679
1591
|
exports.ConstructFormConfigVisitor = ConstructFormConfigVisitor;
|
|
1680
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LnZpc2l0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmlzaXRvci9jb25zdHJ1Y3QudmlzaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0c7QUFDcEcsc0VBQTBHO0FBRTFHLHNFQUFxRTtBQUVyRSxzRUFRMEM7QUFDMUMsc0VBVzBDO0FBQzFDLHNFQUkwQztBQUMxQyxzRUFBb0c7QUFDcEcsc0VBUTBDO0FBQzFDLHNFQUFnSDtBQUNoSCxzRUFJMEM7QUFDMUMsdUVBQTRFO0FBQzVFLHVFQUkwQztBQUMxQyx1RUFBOEU7QUFDOUUsdUVBSTBDO0FBQzFDLHVFQUEyRTtBQUMzRSx1RUFBeUU7QUFFekUsdUVBSzBDO0FBQzFDLHVFQU0wQztBQUMxQyx1RUFRMEM7QUFDMUMsdUVBQWlHO0FBQ2pHLHVFQWdCMEM7QUFDMUMsdUVBTTBDO0FBQzFDLHVFQVMwQztBQUMxQyx1RUFJMEM7QUFDMUMsdUVBUTBDO0FBQzFDLHVFQUEwRztBQUMxRyx1RUFRMEM7QUFDMUMsdUVBQXNIO0FBQ3RILHVFQVMwQztBQUMxQyx1RUFBZ0c7QUFDaEcsdUVBUTBDO0FBQzFDLHVFQUE4RztBQUM5Ryx1RUFRMEM7QUFDMUMsdUVBQXdHO0FBQ3hHLHVFQUswQztBQUMxQyx1RUFBK0Y7QUFDL0YsdUVBUTBDO0FBQzFDLHVFQUFrSDtBQUNsSCx1RUFLMEM7QUFDMUMsdUVBQWtHO0FBQ2xHLHVFQVEwQztBQUMxQyx1RUFHMEM7QUFDMUMsdUVBQStFO0FBQy9FLHVFQVEwQztBQUMxQyx1RUFBb0g7QUFDcEgsdUVBUzBDO0FBQzFDLHVFQUFzSDtBQUN0SCx1RUFRMEM7QUFDMUMsdUVBQW9IO0FBQ3BILHVFQVEwQztBQUMxQyx1RUFBa0g7QUFDbEgsdUVBUTBDO0FBQzFDLHVFQUFzSDtBQUN0SCx1RUFRMEM7QUFDMUMsdUVBQThHO0FBQzlHLHVFQVEwQztBQUMxQyx1RUFBNEc7QUFDNUcsdUVBUTBDO0FBQzFDLHVF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
|
|
1592
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LnZpc2l0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmlzaXRvci9jb25zdHJ1Y3QudmlzaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0c7QUFDcEcsc0VBQWlGO0FBRWpGLHNFQUFxRTtBQUVyRSxzRUFRMEM7QUFDMUMsc0VBVzBDO0FBQzFDLHNFQUkwQztBQUMxQyxzRUFBb0c7QUFDcEcsc0VBUTBDO0FBQzFDLHNFQUFnSDtBQUNoSCxzRUFJMEM7QUFDMUMsdUVBQTRFO0FBQzVFLHVFQUkwQztBQUMxQyx1RUFBOEU7QUFDOUUsdUVBSTBDO0FBQzFDLHVFQUEyRTtBQUMzRSx1RUFBeUU7QUFFekUsdUVBSzBDO0FBQzFDLHVFQVEwQztBQUMxQyx1RUFBaUc7QUFDakcsdUVBZ0IwQztBQUMxQyx1RUFNMEM7QUFDMUMsdUVBUzBDO0FBQzFDLHVFQUkwQztBQUMxQyx1RUFRMEM7QUFDMUMsdUVBQTBHO0FBQzFHLHVFQVEwQztBQUMxQyx1RUFBc0g7QUFDdEgsdUVBUzBDO0FBQzFDLHVFQUFnRztBQUNoRyx1RUFRMEM7QUFDMUMsdUVBQThHO0FBQzlHLHVFQVEwQztBQUMxQyx1RUFBd0c7QUFDeEcsdUVBSzBDO0FBQzFDLHVFQUErRjtBQUMvRix1RUFRMEM7QUFDMUMsdUVBQWtIO0FBQ2xILHVFQUswQztBQUMxQyx1RUFBa0c7QUFDbEcsdUVBUTBDO0FBQzFDLHVFQUcwQztBQUMxQyx1RUFBK0U7QUFDL0UsdUVBUTBDO0FBQzFDLHVFQUFvSDtBQUNwSCx1RUFTMEM7QUFDMUMsdUVBQXNIO0FBQ3RILHVFQVEwQztBQUMxQyx1RUFBb0g7QUFDcEgsdUVBUTBDO0FBQzFDLHVFQUFrSDtBQUNsSCx1RUFRMEM7QUFDMUMsdUVBQXNIO0FBQ3RILHVFQVEwQztBQUMxQyx1RUFBOEc7QUFDOUcsdUVBUTBDO0FBQzFDLHVFQUE0RztBQUM1Ryx1RUFRMEM7QUFDMUMsdUVBQWtIO0FBQ2xILHVF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
|