@openforis/arena-core 2.3.33 → 2.3.35
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/app/appInfo.js.map +1 -1
- package/dist/app/index.js.map +1 -1
- package/dist/auth/authGroup.js.map +1 -1
- package/dist/auth/authGroups.js.map +1 -1
- package/dist/auth/authorizer.js +45 -0
- package/dist/auth/authorizer.js.map +1 -1
- package/dist/auth/factory.js.map +1 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/permission.js.map +1 -1
- package/dist/auth/user.js.map +1 -1
- package/dist/auth/userAuth.js.map +1 -1
- package/dist/auth/userAuthTokenService.d.ts +28 -0
- package/dist/auth/userAuthTokenService.js.map +1 -1
- package/dist/auth/userGroup.js.map +1 -1
- package/dist/auth/userService.js.map +1 -1
- package/dist/auth/users.js +1 -0
- package/dist/auth/users.js.map +1 -1
- package/dist/category/categories.js.map +1 -1
- package/dist/category/category.js.map +1 -1
- package/dist/category/categoryImportSummary.js.map +1 -1
- package/dist/category/categoryItemGenerator.js.map +1 -1
- package/dist/category/categoryItems.js.map +1 -1
- package/dist/category/factory.js.map +1 -1
- package/dist/category/index.js.map +1 -1
- package/dist/category/item.js.map +1 -1
- package/dist/category/itemService.js.map +1 -1
- package/dist/category/level.js.map +1 -1
- package/dist/category/levelService.js.map +1 -1
- package/dist/category/service.js.map +1 -1
- package/dist/chain/chain.js.map +1 -1
- package/dist/chain/chainFactory.js.map +1 -1
- package/dist/chain/chainNodeDef.js.map +1 -1
- package/dist/chain/chainNodeDefAggregate.js.map +1 -1
- package/dist/chain/chainNodeDefFactory.js.map +1 -1
- package/dist/chain/chainNodeDefService.js.map +1 -1
- package/dist/chain/chainService.js.map +1 -1
- package/dist/chain/index.js.map +1 -1
- package/dist/common/Dictionary.js.map +1 -1
- package/dist/common/factory.js.map +1 -1
- package/dist/common/i18n.js.map +1 -1
- package/dist/common/index.js.map +1 -1
- package/dist/dataExport/ArenaExportInfo.js.map +1 -1
- package/dist/dataExport/ArenaExportInfoFactory.js.map +1 -1
- package/dist/dataExport/FlatDataExportModel.js +3 -3
- package/dist/dataExport/FlatDataExportModel.js.map +1 -1
- package/dist/dataExport/FlatDataExportOptions.js.map +1 -1
- package/dist/dataExport/FlatDataFiles.js.map +1 -1
- package/dist/dataExport/UniqueFileNamesGenerator.d.ts +23 -0
- package/dist/dataExport/UniqueFileNamesGenerator.js +26 -1
- package/dist/dataExport/UniqueFileNamesGenerator.js.map +1 -1
- package/dist/dataExport/index.js.map +1 -1
- package/dist/dataQuery/dataQuery.js.map +1 -1
- package/dist/dataQuery/dataQuerySummaries.js +3 -0
- package/dist/dataQuery/dataQuerySummaries.js.map +1 -1
- package/dist/dataQuery/index.js.map +1 -1
- package/dist/error/SystemError.js +1 -0
- package/dist/error/SystemError.js.map +1 -1
- package/dist/error/index.js.map +1 -1
- package/dist/esm/app/appInfo.js.map +1 -1
- package/dist/esm/app/index.js.map +1 -1
- package/dist/esm/auth/authGroup.js.map +1 -1
- package/dist/esm/auth/authGroups.js.map +1 -1
- package/dist/esm/auth/authorizer.js +45 -0
- package/dist/esm/auth/authorizer.js.map +1 -1
- package/dist/esm/auth/factory.js.map +1 -1
- package/dist/esm/auth/index.js.map +1 -1
- package/dist/esm/auth/permission.js.map +1 -1
- package/dist/esm/auth/user.js.map +1 -1
- package/dist/esm/auth/userAuth.js.map +1 -1
- package/dist/esm/auth/userAuthTokenService.js.map +1 -1
- package/dist/esm/auth/userGroup.js.map +1 -1
- package/dist/esm/auth/userService.js.map +1 -1
- package/dist/esm/auth/users.js +1 -0
- package/dist/esm/auth/users.js.map +1 -1
- package/dist/esm/category/categories.js.map +1 -1
- package/dist/esm/category/category.js.map +1 -1
- package/dist/esm/category/categoryImportSummary.js.map +1 -1
- package/dist/esm/category/categoryItemGenerator.js.map +1 -1
- package/dist/esm/category/categoryItems.js.map +1 -1
- package/dist/esm/category/factory.js.map +1 -1
- package/dist/esm/category/index.js.map +1 -1
- package/dist/esm/category/item.js.map +1 -1
- package/dist/esm/category/itemService.js.map +1 -1
- package/dist/esm/category/level.js.map +1 -1
- package/dist/esm/category/levelService.js.map +1 -1
- package/dist/esm/category/service.js.map +1 -1
- package/dist/esm/chain/chain.js.map +1 -1
- package/dist/esm/chain/chainFactory.js.map +1 -1
- package/dist/esm/chain/chainNodeDef.js.map +1 -1
- package/dist/esm/chain/chainNodeDefAggregate.js.map +1 -1
- package/dist/esm/chain/chainNodeDefFactory.js.map +1 -1
- package/dist/esm/chain/chainNodeDefService.js.map +1 -1
- package/dist/esm/chain/chainService.js.map +1 -1
- package/dist/esm/chain/index.js.map +1 -1
- package/dist/esm/common/Dictionary.js.map +1 -1
- package/dist/esm/common/factory.js.map +1 -1
- package/dist/esm/common/i18n.js.map +1 -1
- package/dist/esm/common/index.js.map +1 -1
- package/dist/esm/dataExport/ArenaExportInfo.js.map +1 -1
- package/dist/esm/dataExport/ArenaExportInfoFactory.js.map +1 -1
- package/dist/esm/dataExport/FlatDataExportModel.js +3 -3
- package/dist/esm/dataExport/FlatDataExportModel.js.map +1 -1
- package/dist/esm/dataExport/FlatDataExportOptions.js.map +1 -1
- package/dist/esm/dataExport/FlatDataFiles.js.map +1 -1
- package/dist/esm/dataExport/UniqueFileNamesGenerator.js +26 -1
- package/dist/esm/dataExport/UniqueFileNamesGenerator.js.map +1 -1
- package/dist/esm/dataExport/index.js.map +1 -1
- package/dist/esm/dataQuery/dataQuery.js.map +1 -1
- package/dist/esm/dataQuery/dataQuerySummaries.js +3 -0
- package/dist/esm/dataQuery/dataQuerySummaries.js.map +1 -1
- package/dist/esm/dataQuery/index.js.map +1 -1
- package/dist/esm/error/SystemError.js +1 -0
- package/dist/esm/error/SystemError.js.map +1 -1
- package/dist/esm/error/index.js.map +1 -1
- package/dist/esm/expression/context.js.map +1 -1
- package/dist/esm/expression/evaluator.js.map +1 -1
- package/dist/esm/expression/function.js.map +1 -1
- package/dist/esm/expression/index.js.map +1 -1
- package/dist/esm/expression/javascript/evaluator.js +4 -1
- package/dist/esm/expression/javascript/evaluator.js.map +1 -1
- package/dist/esm/expression/javascript/functionsDefault.js.map +1 -1
- package/dist/esm/expression/javascript/global.js.map +1 -1
- package/dist/esm/expression/javascript/node/array.js.map +1 -1
- package/dist/esm/expression/javascript/node/binary.js +23 -0
- package/dist/esm/expression/javascript/node/binary.js.map +1 -1
- package/dist/esm/expression/javascript/node/call.js +12 -0
- package/dist/esm/expression/javascript/node/call.js.map +1 -1
- package/dist/esm/expression/javascript/node/compound.js.map +1 -1
- package/dist/esm/expression/javascript/node/conditional.js.map +1 -1
- package/dist/esm/expression/javascript/node/identifier.js +7 -0
- package/dist/esm/expression/javascript/node/identifier.js.map +1 -1
- package/dist/esm/expression/javascript/node/literal.js.map +1 -1
- package/dist/esm/expression/javascript/node/member.js +5 -1
- package/dist/esm/expression/javascript/node/member.js.map +1 -1
- package/dist/esm/expression/javascript/node/sequence.js.map +1 -1
- package/dist/esm/expression/javascript/node/this.js.map +1 -1
- package/dist/esm/expression/javascript/node/unary.js +8 -0
- package/dist/esm/expression/javascript/node/unary.js.map +1 -1
- package/dist/esm/expression/javascript/parser/jsep.js +6 -2
- package/dist/esm/expression/javascript/parser/jsep.js.map +1 -1
- package/dist/esm/expression/javascript/parser/parser.js.map +1 -1
- package/dist/esm/expression/node.js.map +1 -1
- package/dist/esm/expression/parser.js.map +1 -1
- package/dist/esm/expression/variable.js.map +1 -1
- package/dist/esm/extraProp/extraProp.js.map +1 -1
- package/dist/esm/extraProp/extraProps.js.map +1 -1
- package/dist/esm/extraProp/extraPropsDataGenerator.js.map +1 -1
- package/dist/esm/extraProp/index.js.map +1 -1
- package/dist/esm/geo/index.js.map +1 -1
- package/dist/esm/geo/point.js.map +1 -1
- package/dist/esm/geo/pointFactory.js.map +1 -1
- package/dist/esm/geo/points/bearing.js +11 -0
- package/dist/esm/geo/points/bearing.js.map +1 -1
- package/dist/esm/geo/points/distance.js +9 -0
- package/dist/esm/geo/points/distance.js.map +1 -1
- package/dist/esm/geo/points/equals.js.map +1 -1
- package/dist/esm/geo/points/getSrs.js.map +1 -1
- package/dist/esm/geo/points/index.js.map +1 -1
- package/dist/esm/geo/points/isFilled.js.map +1 -1
- package/dist/esm/geo/points/isValid.js +1 -1
- package/dist/esm/geo/points/isValid.js.map +1 -1
- package/dist/esm/geo/points/parse.js +9 -0
- package/dist/esm/geo/points/parse.js.map +1 -1
- package/dist/esm/geo/points/pointAtDistance.js +10 -0
- package/dist/esm/geo/points/pointAtDistance.js.map +1 -1
- package/dist/esm/geo/points/toLatLong.js.map +1 -1
- package/dist/esm/geo/points/toString.js.map +1 -1
- package/dist/esm/geo/points/transform.js +12 -0
- package/dist/esm/geo/points/transform.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/job/JobBase.js +99 -0
- package/dist/esm/job/JobBase.js.map +1 -1
- package/dist/esm/job/index.js.map +1 -1
- package/dist/esm/job/job.js.map +1 -1
- package/dist/esm/job/jobContext.js.map +1 -1
- package/dist/esm/job/jobEvent.js.map +1 -1
- package/dist/esm/job/jobSerialized.js.map +1 -1
- package/dist/esm/job/status.js.map +1 -1
- package/dist/esm/language/index.js.map +1 -1
- package/dist/esm/language/labels.js.map +1 -1
- package/dist/esm/language/languageCode.js.map +1 -1
- package/dist/esm/language/languages.js.map +1 -1
- package/dist/esm/logger/index.js.map +1 -1
- package/dist/esm/logger/logger.js.map +1 -1
- package/dist/esm/message/index.js.map +1 -1
- package/dist/esm/message/message.js.map +1 -1
- package/dist/esm/message/messages.js +1 -0
- package/dist/esm/message/messages.js.map +1 -1
- package/dist/esm/node/factory.js.map +1 -1
- package/dist/esm/node/index.js.map +1 -1
- package/dist/esm/node/node.js.map +1 -1
- package/dist/esm/node/nodePointer.js.map +1 -1
- package/dist/esm/node/nodeValue/code.js.map +1 -1
- package/dist/esm/node/nodeValue/coordinate.js.map +1 -1
- package/dist/esm/node/nodeValue/file.js.map +1 -1
- package/dist/esm/node/nodeValue/index.js.map +1 -1
- package/dist/esm/node/nodeValue/nodeValueComposite.js.map +1 -1
- package/dist/esm/node/nodeValue/taxon.js.map +1 -1
- package/dist/esm/node/nodeValueFormatter.js +2 -0
- package/dist/esm/node/nodeValueFormatter.js.map +1 -1
- package/dist/esm/node/nodeValueProps.js.map +1 -1
- package/dist/esm/node/nodeValues.js +20 -0
- package/dist/esm/node/nodeValues.js.map +1 -1
- package/dist/esm/node/nodes.js +7 -0
- package/dist/esm/node/nodes.js.map +1 -1
- package/dist/esm/node/service.js.map +1 -1
- package/dist/esm/nodeDef/factory.js.map +1 -1
- package/dist/esm/nodeDef/index.js.map +1 -1
- package/dist/esm/nodeDef/nodeDef.js +1 -0
- package/dist/esm/nodeDef/nodeDef.js.map +1 -1
- package/dist/esm/nodeDef/nodeDefs.js +18 -0
- package/dist/esm/nodeDef/nodeDefs.js.map +1 -1
- package/dist/esm/nodeDef/service.js.map +1 -1
- package/dist/esm/nodeDef/types/boolean.js.map +1 -1
- package/dist/esm/nodeDef/types/code.js.map +1 -1
- package/dist/esm/nodeDef/types/coordinate.js.map +1 -1
- package/dist/esm/nodeDef/types/date.js.map +1 -1
- package/dist/esm/nodeDef/types/decimal.js.map +1 -1
- package/dist/esm/nodeDef/types/entity.js.map +1 -1
- package/dist/esm/nodeDef/types/file.js.map +1 -1
- package/dist/esm/nodeDef/types/formHeader.js.map +1 -1
- package/dist/esm/nodeDef/types/integer.js.map +1 -1
- package/dist/esm/nodeDef/types/taxon.js.map +1 -1
- package/dist/esm/nodeDef/types/text.js.map +1 -1
- package/dist/esm/nodeDef/types/time.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/categoryItemProvider.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/context.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/evaluator.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/functions.js +8 -1
- package/dist/esm/nodeDefExpressionEvaluator/functions.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/index.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/node/identifier.js +28 -0
- package/dist/esm/nodeDefExpressionEvaluator/node/identifier.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/node/member.js +15 -0
- package/dist/esm/nodeDefExpressionEvaluator/node/member.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/node/nodeDefExpressionNativeProperties.js +3 -0
- package/dist/esm/nodeDefExpressionEvaluator/node/nodeDefExpressionNativeProperties.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/node/thisEvaluator.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/taxonProvider.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/validator.js.map +1 -1
- package/dist/esm/record/_records/nodeDefSelfReferences.js +57 -0
- package/dist/esm/record/_records/nodeDefSelfReferences.js.map +1 -0
- package/dist/esm/record/_records/recordCompletion.js +14 -0
- package/dist/esm/record/_records/recordCompletion.js.map +1 -1
- package/dist/esm/record/_records/recordGetters.js +26 -5
- package/dist/esm/record/_records/recordGetters.js.map +1 -1
- package/dist/esm/record/_records/recordNodesIndexReader.js.map +1 -1
- package/dist/esm/record/_records/recordNodesIndexUpdater.js +17 -0
- package/dist/esm/record/_records/recordNodesIndexUpdater.js.map +1 -1
- package/dist/esm/record/_records/recordPagesValidation.js +45 -0
- package/dist/esm/record/_records/recordPagesValidation.js.map +1 -1
- package/dist/esm/record/_records/recordUpdateOptions.js.map +1 -1
- package/dist/esm/record/_records/recordUpdater.js +2 -0
- package/dist/esm/record/_records/recordUpdater.js.map +1 -1
- package/dist/esm/record/_records/recordUtils.js.map +1 -1
- package/dist/esm/record/factory.js.map +1 -1
- package/dist/esm/record/index.js.map +1 -1
- package/dist/esm/record/nodePointers.js.map +1 -1
- package/dist/esm/record/record.js.map +1 -1
- package/dist/esm/record/recordCloner.js +10 -1
- package/dist/esm/record/recordCloner.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/context.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/functions.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/index.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/node/identifier/identifier.js +14 -0
- package/dist/esm/record/recordExpressionEvaluator/node/identifier/identifier.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/node/identifier/index.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/node/identifier/nodesFinder.js +6 -0
- package/dist/esm/record/recordExpressionEvaluator/node/identifier/nodesFinder.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/node/thisEvaluator.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/nodeValueExtractor.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/recordExpressionEvaluator.js.map +1 -1
- package/dist/esm/record/recordFixer.js +16 -0
- package/dist/esm/record/recordFixer.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/index.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordEnumeratingItemsExpressionEvaluator.js +6 -0
- package/dist/esm/record/recordNodesUpdater/recordEnumeratingItemsExpressionEvaluator.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordExpressionEvaluationContext.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordExpressionValueConverter.js +5 -0
- package/dist/esm/record/recordNodesUpdater/recordExpressionValueConverter.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js +20 -2
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsBooleanUpdater.js +2 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsBooleanUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js +13 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js +9 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js +17 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEditableUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js +5 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js +4 -2
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js +8 -3
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsUpdateParams.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsVisibleUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodesCreator.js +10 -5
- package/dist/esm/record/recordNodesUpdater/recordNodesCreator.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodesDeleter.js +7 -0
- package/dist/esm/record/recordNodesUpdater/recordNodesDeleter.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js +2 -0
- package/dist/esm/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodesUpdater.js +16 -2
- package/dist/esm/record/recordNodesUpdater/recordNodesUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordUpdateResult.js +8 -0
- package/dist/esm/record/recordNodesUpdater/recordUpdateResult.js.map +1 -1
- package/dist/esm/record/recordPrettyPrinter.js.map +1 -1
- package/dist/esm/record/recordStep.js.map +1 -1
- package/dist/esm/record/recordUpdater.js +1 -0
- package/dist/esm/record/recordUpdater.js.map +1 -1
- package/dist/esm/record/recordValidations.js.map +1 -1
- package/dist/esm/record/recordValidator/attributeKeyValidator.js +3 -0
- package/dist/esm/record/recordValidator/attributeKeyValidator.js.map +1 -1
- package/dist/esm/record/recordValidator/attributeTypeValidator.js +3 -0
- package/dist/esm/record/recordValidator/attributeTypeValidator.js.map +1 -1
- package/dist/esm/record/recordValidator/attributeUniqueValidator.js +2 -0
- package/dist/esm/record/recordValidator/attributeUniqueValidator.js.map +1 -1
- package/dist/esm/record/recordValidator/attributeValidator.js +12 -1
- package/dist/esm/record/recordValidator/attributeValidator.js.map +1 -1
- package/dist/esm/record/recordValidator/countVaildator.js +5 -0
- package/dist/esm/record/recordValidator/countVaildator.js.map +1 -1
- package/dist/esm/record/recordValidator/index.js.map +1 -1
- package/dist/esm/record/recordValidator/recordValidator.js +3 -0
- package/dist/esm/record/recordValidator/recordValidator.js.map +1 -1
- package/dist/esm/record/records.js +3 -0
- package/dist/esm/record/records.js.map +1 -1
- package/dist/esm/record/service.js.map +1 -1
- package/dist/esm/registry/index.js.map +1 -1
- package/dist/esm/registry/serviceRegistry.js.map +1 -1
- package/dist/esm/registry/serviceType.js.map +1 -1
- package/dist/esm/srs/factory.js.map +1 -1
- package/dist/esm/srs/index.js.map +1 -1
- package/dist/esm/srs/srs.js.map +1 -1
- package/dist/esm/survey/factory.js +1 -0
- package/dist/esm/survey/factory.js.map +1 -1
- package/dist/esm/survey/index.js.map +1 -1
- package/dist/esm/survey/nodeDefsFixer.js +1 -0
- package/dist/esm/survey/nodeDefsFixer.js.map +1 -1
- package/dist/esm/survey/refData/factory.js.map +1 -1
- package/dist/esm/survey/refData/index.js.map +1 -1
- package/dist/esm/survey/refData/refData.js.map +1 -1
- package/dist/esm/survey/service.js.map +1 -1
- package/dist/esm/survey/survey.js.map +1 -1
- package/dist/esm/survey/surveyDocImageFactory.js.map +1 -1
- package/dist/esm/survey/surveyDocImages.js.map +1 -1
- package/dist/esm/survey/surveyFileFactory.js.map +1 -1
- package/dist/esm/survey/surveys/_nodeDefs/nodeDefsIndex.js +8 -0
- package/dist/esm/survey/surveys/_nodeDefs/nodeDefsIndex.js.map +1 -1
- package/dist/esm/survey/surveys/_nodeDefs/nodeDefsReader.js.map +1 -1
- package/dist/esm/survey/surveys/dependencies.js +11 -2
- package/dist/esm/survey/surveys/dependencies.js.map +1 -1
- package/dist/esm/survey/surveys/index.js +6 -0
- package/dist/esm/survey/surveys/index.js.map +1 -1
- package/dist/esm/survey/surveys/nodeDefs.js +12 -0
- package/dist/esm/survey/surveys/nodeDefs.js.map +1 -1
- package/dist/esm/survey/surveys/refsData.js.map +1 -1
- package/dist/esm/survey/surveys/surveyGettersSecurity.js.map +1 -1
- package/dist/esm/survey/surveys/surveysGetters.js +3 -1
- package/dist/esm/survey/surveys/surveysGetters.js.map +1 -1
- package/dist/esm/survey/surveys/surveysUtils.js.map +1 -1
- package/dist/esm/taxonomy/factory.js.map +1 -1
- package/dist/esm/taxonomy/index.js.map +1 -1
- package/dist/esm/taxonomy/service.js.map +1 -1
- package/dist/esm/taxonomy/taxa.js.map +1 -1
- package/dist/esm/taxonomy/taxon.js.map +1 -1
- package/dist/esm/taxonomy/taxonGenerator.js.map +1 -1
- package/dist/esm/taxonomy/taxonService.js.map +1 -1
- package/dist/esm/taxonomy/taxonVernacularName.js.map +1 -1
- package/dist/esm/taxonomy/taxonomies.js.map +1 -1
- package/dist/esm/taxonomy/taxonomy.js.map +1 -1
- package/dist/esm/tests/builder/recordBuilder/attributeBuilder.js +2 -0
- package/dist/esm/tests/builder/recordBuilder/attributeBuilder.js.map +1 -1
- package/dist/esm/tests/builder/recordBuilder/entityBuilder.js.map +1 -1
- package/dist/esm/tests/builder/recordBuilder/index.js.map +1 -1
- package/dist/esm/tests/builder/recordBuilder/nodeBuilder.js.map +1 -1
- package/dist/esm/tests/builder/recordBuilder/recordBuilder.js.map +1 -1
- package/dist/esm/tests/builder/surveyBuilder/categoryBuilder.js.map +1 -1
- package/dist/esm/tests/builder/surveyBuilder/categoryItemBuilder.js.map +1 -1
- package/dist/esm/tests/builder/surveyBuilder/index.js.map +1 -1
- package/dist/esm/tests/builder/surveyBuilder/nodeDefAttributeBuilder.js.map +1 -1
- package/dist/esm/tests/builder/surveyBuilder/nodeDefBuilder.js.map +1 -1
- package/dist/esm/tests/builder/surveyBuilder/nodeDefCodeBuilder.js.map +1 -1
- package/dist/esm/tests/builder/surveyBuilder/nodeDefEntityBuilder.js.map +1 -1
- package/dist/esm/tests/builder/surveyBuilder/nodeDefTaxonBuilder.js.map +1 -1
- package/dist/esm/tests/builder/surveyBuilder/surveyBuilder.js.map +1 -1
- package/dist/esm/tests/builder/surveyBuilder/taxonBuilder.js.map +1 -1
- package/dist/esm/tests/builder/surveyBuilder/taxonomyBuilder.js.map +1 -1
- package/dist/esm/utils/_objects/assoc.js.map +1 -1
- package/dist/esm/utils/_objects/assocPath.js +1 -0
- package/dist/esm/utils/_objects/assocPath.js.map +1 -1
- package/dist/esm/utils/_objects/camelize.js +9 -0
- package/dist/esm/utils/_objects/camelize.js.map +1 -1
- package/dist/esm/utils/_objects/deepMerge.js +10 -0
- package/dist/esm/utils/_objects/deepMerge.js.map +1 -1
- package/dist/esm/utils/_objects/deleteEmptyProps.js.map +1 -1
- package/dist/esm/utils/_objects/difference.js.map +1 -1
- package/dist/esm/utils/_objects/dissoc.js.map +1 -1
- package/dist/esm/utils/_objects/dissocPath.js +1 -0
- package/dist/esm/utils/_objects/dissocPath.js.map +1 -1
- package/dist/esm/utils/_objects/dissocPathIfEmpty.js.map +1 -1
- package/dist/esm/utils/_objects/fromPairs.js.map +1 -1
- package/dist/esm/utils/_objects/index.js.map +1 -1
- package/dist/esm/utils/_objects/isEmpty.js +8 -0
- package/dist/esm/utils/_objects/isEmpty.js.map +1 -1
- package/dist/esm/utils/_objects/isEqual.js.map +1 -1
- package/dist/esm/utils/_objects/isNil.js +6 -0
- package/dist/esm/utils/_objects/isNil.js.map +1 -1
- package/dist/esm/utils/_objects/isNotEmpty.js +6 -0
- package/dist/esm/utils/_objects/isNotEmpty.js.map +1 -1
- package/dist/esm/utils/_objects/parse.js +8 -0
- package/dist/esm/utils/_objects/parse.js.map +1 -1
- package/dist/esm/utils/_objects/path.js +7 -0
- package/dist/esm/utils/_objects/path.js.map +1 -1
- package/dist/esm/utils/_objects/propertyOf.js.map +1 -1
- package/dist/esm/utils/_objects/setInPath.js.map +1 -1
- package/dist/esm/utils/_objects/stringify.js +9 -0
- package/dist/esm/utils/_objects/stringify.js.map +1 -1
- package/dist/esm/utils/_objects/toPairs.js.map +1 -1
- package/dist/esm/utils/arrays.js.map +1 -1
- package/dist/esm/utils/dates.js +22 -0
- package/dist/esm/utils/dates.js.map +1 -1
- package/dist/esm/utils/fileNames.js.map +1 -1
- package/dist/esm/utils/fileProcessor.js +5 -1
- package/dist/esm/utils/fileProcessor.js.map +1 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/numbers.js +21 -0
- package/dist/esm/utils/numbers.js.map +1 -1
- package/dist/esm/utils/promises.js +15 -1
- package/dist/esm/utils/promises.js.map +1 -1
- package/dist/esm/utils/queue.js +9 -0
- package/dist/esm/utils/queue.js.map +1 -1
- package/dist/esm/utils/retryProcessor.js +5 -1
- package/dist/esm/utils/retryProcessor.js.map +1 -1
- package/dist/esm/utils/strings.js.map +1 -1
- package/dist/esm/utils/uuids.js.map +1 -1
- package/dist/esm/utils/versions.js +4 -0
- package/dist/esm/utils/versions.js.map +1 -1
- package/dist/esm/validation/factory.js.map +1 -1
- package/dist/esm/validation/fieldValidator.js.map +1 -1
- package/dist/esm/validation/fieldValidators/email.js +3 -0
- package/dist/esm/validation/fieldValidators/email.js.map +1 -1
- package/dist/esm/validation/fieldValidators/index.js.map +1 -1
- package/dist/esm/validation/fieldValidators/name.js +4 -0
- package/dist/esm/validation/fieldValidators/name.js.map +1 -1
- package/dist/esm/validation/fieldValidators/notKeyword.js.map +1 -1
- package/dist/esm/validation/fieldValidators/numeric.js.map +1 -1
- package/dist/esm/validation/fieldValidators/numericPositive.js.map +1 -1
- package/dist/esm/validation/fieldValidators/required.js.map +1 -1
- package/dist/esm/validation/index.js.map +1 -1
- package/dist/esm/validation/validation.js.map +1 -1
- package/dist/esm/validation/validationResults.js +1 -1
- package/dist/esm/validation/validationResults.js.map +1 -1
- package/dist/esm/validation/validations.js +17 -1
- package/dist/esm/validation/validations.js.map +1 -1
- package/dist/esm/validation/validator.js.map +1 -1
- package/dist/esm/validation/validatorErrorKeys.js.map +1 -1
- package/dist/expression/context.d.ts +6 -0
- package/dist/expression/context.js.map +1 -1
- package/dist/expression/evaluator.js.map +1 -1
- package/dist/expression/function.d.ts +13 -0
- package/dist/expression/function.js.map +1 -1
- package/dist/expression/index.js.map +1 -1
- package/dist/expression/javascript/evaluator.d.ts +1 -0
- package/dist/expression/javascript/evaluator.js +6 -2
- package/dist/expression/javascript/evaluator.js.map +1 -1
- package/dist/expression/javascript/functionsDefault.js.map +1 -1
- package/dist/expression/javascript/global.js.map +1 -1
- package/dist/expression/javascript/node/array.js.map +1 -1
- package/dist/expression/javascript/node/binary.js +23 -0
- package/dist/expression/javascript/node/binary.js.map +1 -1
- package/dist/expression/javascript/node/call.js +12 -0
- package/dist/expression/javascript/node/call.js.map +1 -1
- package/dist/expression/javascript/node/compound.js.map +1 -1
- package/dist/expression/javascript/node/conditional.js.map +1 -1
- package/dist/expression/javascript/node/identifier.d.ts +7 -0
- package/dist/expression/javascript/node/identifier.js +7 -0
- package/dist/expression/javascript/node/identifier.js.map +1 -1
- package/dist/expression/javascript/node/literal.js.map +1 -1
- package/dist/expression/javascript/node/member.js +5 -1
- package/dist/expression/javascript/node/member.js.map +1 -1
- package/dist/expression/javascript/node/sequence.js.map +1 -1
- package/dist/expression/javascript/node/this.js.map +1 -1
- package/dist/expression/javascript/node/unary.js +8 -0
- package/dist/expression/javascript/node/unary.js.map +1 -1
- package/dist/expression/javascript/parser/jsep.js +6 -2
- package/dist/expression/javascript/parser/jsep.js.map +1 -1
- package/dist/expression/javascript/parser/parser.js.map +1 -1
- package/dist/expression/node.js.map +1 -1
- package/dist/expression/parser.js.map +1 -1
- package/dist/expression/variable.js.map +1 -1
- package/dist/extraProp/extraProp.js.map +1 -1
- package/dist/extraProp/extraProps.js.map +1 -1
- package/dist/extraProp/extraPropsDataGenerator.js.map +1 -1
- package/dist/extraProp/index.js.map +1 -1
- package/dist/geo/index.js.map +1 -1
- package/dist/geo/point.js.map +1 -1
- package/dist/geo/pointFactory.js.map +1 -1
- package/dist/geo/points/bearing.d.ts +9 -0
- package/dist/geo/points/bearing.js +11 -0
- package/dist/geo/points/bearing.js.map +1 -1
- package/dist/geo/points/distance.d.ts +8 -0
- package/dist/geo/points/distance.js +9 -0
- package/dist/geo/points/distance.js.map +1 -1
- package/dist/geo/points/equals.js.map +1 -1
- package/dist/geo/points/getSrs.js.map +1 -1
- package/dist/geo/points/index.js.map +1 -1
- package/dist/geo/points/isFilled.js.map +1 -1
- package/dist/geo/points/isValid.js +1 -1
- package/dist/geo/points/isValid.js.map +1 -1
- package/dist/geo/points/parse.d.ts +9 -0
- package/dist/geo/points/parse.js +9 -0
- package/dist/geo/points/parse.js.map +1 -1
- package/dist/geo/points/pointAtDistance.d.ts +9 -0
- package/dist/geo/points/pointAtDistance.js +10 -0
- package/dist/geo/points/pointAtDistance.js.map +1 -1
- package/dist/geo/points/toLatLong.js.map +1 -1
- package/dist/geo/points/toString.js.map +1 -1
- package/dist/geo/points/transform.d.ts +8 -0
- package/dist/geo/points/transform.js +12 -0
- package/dist/geo/points/transform.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/job/JobBase.d.ts +81 -0
- package/dist/job/JobBase.js +99 -0
- package/dist/job/JobBase.js.map +1 -1
- package/dist/job/index.js.map +1 -1
- package/dist/job/job.d.ts +20 -0
- package/dist/job/job.js.map +1 -1
- package/dist/job/jobContext.js.map +1 -1
- package/dist/job/jobEvent.js.map +1 -1
- package/dist/job/jobSerialized.d.ts +3 -0
- package/dist/job/jobSerialized.js.map +1 -1
- package/dist/job/status.js.map +1 -1
- package/dist/language/index.js.map +1 -1
- package/dist/language/labels.js.map +1 -1
- package/dist/language/languageCode.js.map +1 -1
- package/dist/language/languages.js.map +1 -1
- package/dist/logger/index.js.map +1 -1
- package/dist/logger/logger.js.map +1 -1
- package/dist/message/index.js.map +1 -1
- package/dist/message/message.d.ts +3 -0
- package/dist/message/message.js.map +1 -1
- package/dist/message/messages.js +1 -0
- package/dist/message/messages.js.map +1 -1
- package/dist/node/factory.js.map +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/node.d.ts +38 -0
- package/dist/node/node.js.map +1 -1
- package/dist/node/nodePointer.js.map +1 -1
- package/dist/node/nodeValue/code.js.map +1 -1
- package/dist/node/nodeValue/coordinate.js.map +1 -1
- package/dist/node/nodeValue/file.js.map +1 -1
- package/dist/node/nodeValue/index.js.map +1 -1
- package/dist/node/nodeValue/nodeValueComposite.js.map +1 -1
- package/dist/node/nodeValue/taxon.js.map +1 -1
- package/dist/node/nodeValueFormatter.js +2 -0
- package/dist/node/nodeValueFormatter.js.map +1 -1
- package/dist/node/nodeValueProps.js.map +1 -1
- package/dist/node/nodeValues.d.ts +4 -0
- package/dist/node/nodeValues.js +20 -0
- package/dist/node/nodeValues.js.map +1 -1
- package/dist/node/nodes.js +7 -0
- package/dist/node/nodes.js.map +1 -1
- package/dist/node/service.js.map +1 -1
- package/dist/nodeDef/factory.js.map +1 -1
- package/dist/nodeDef/index.js.map +1 -1
- package/dist/nodeDef/nodeDef.js +1 -0
- package/dist/nodeDef/nodeDef.js.map +1 -1
- package/dist/nodeDef/nodeDefs.js +18 -0
- package/dist/nodeDef/nodeDefs.js.map +1 -1
- package/dist/nodeDef/service.js.map +1 -1
- package/dist/nodeDef/types/boolean.js.map +1 -1
- package/dist/nodeDef/types/code.js.map +1 -1
- package/dist/nodeDef/types/coordinate.js.map +1 -1
- package/dist/nodeDef/types/date.js.map +1 -1
- package/dist/nodeDef/types/decimal.js.map +1 -1
- package/dist/nodeDef/types/entity.d.ts +1 -0
- package/dist/nodeDef/types/entity.js.map +1 -1
- package/dist/nodeDef/types/file.js.map +1 -1
- package/dist/nodeDef/types/formHeader.js.map +1 -1
- package/dist/nodeDef/types/integer.js.map +1 -1
- package/dist/nodeDef/types/taxon.js.map +1 -1
- package/dist/nodeDef/types/text.js.map +1 -1
- package/dist/nodeDef/types/time.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/categoryItemProvider.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/context.d.ts +3 -0
- package/dist/nodeDefExpressionEvaluator/context.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/evaluator.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/functions.js +8 -1
- package/dist/nodeDefExpressionEvaluator/functions.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/index.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/node/identifier.d.ts +14 -0
- package/dist/nodeDefExpressionEvaluator/node/identifier.js +28 -0
- package/dist/nodeDefExpressionEvaluator/node/identifier.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/node/member.js +15 -0
- package/dist/nodeDefExpressionEvaluator/node/member.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/node/nodeDefExpressionNativeProperties.js +3 -0
- package/dist/nodeDefExpressionEvaluator/node/nodeDefExpressionNativeProperties.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/node/thisEvaluator.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/taxonProvider.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/validator.js.map +1 -1
- package/dist/record/_records/nodeDefSelfReferences.d.ts +8 -0
- package/dist/record/_records/nodeDefSelfReferences.js +60 -0
- package/dist/record/_records/nodeDefSelfReferences.js.map +1 -0
- package/dist/record/_records/recordCompletion.d.ts +12 -0
- package/dist/record/_records/recordCompletion.js +14 -0
- package/dist/record/_records/recordCompletion.js.map +1 -1
- package/dist/record/_records/recordGetters.d.ts +3 -0
- package/dist/record/_records/recordGetters.js +26 -5
- package/dist/record/_records/recordGetters.js.map +1 -1
- package/dist/record/_records/recordNodesIndexReader.js.map +1 -1
- package/dist/record/_records/recordNodesIndexUpdater.js +17 -0
- package/dist/record/_records/recordNodesIndexUpdater.js.map +1 -1
- package/dist/record/_records/recordPagesValidation.d.ts +39 -0
- package/dist/record/_records/recordPagesValidation.js +45 -0
- package/dist/record/_records/recordPagesValidation.js.map +1 -1
- package/dist/record/_records/recordUpdateOptions.js.map +1 -1
- package/dist/record/_records/recordUpdater.js +2 -0
- package/dist/record/_records/recordUpdater.js.map +1 -1
- package/dist/record/_records/recordUtils.js.map +1 -1
- package/dist/record/factory.js.map +1 -1
- package/dist/record/index.js.map +1 -1
- package/dist/record/nodePointers.js.map +1 -1
- package/dist/record/record.d.ts +12 -0
- package/dist/record/record.js.map +1 -1
- package/dist/record/recordCloner.js +10 -1
- package/dist/record/recordCloner.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/context.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/functions.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/index.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/node/identifier/identifier.js +14 -0
- package/dist/record/recordExpressionEvaluator/node/identifier/identifier.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/node/identifier/index.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/node/identifier/nodesFinder.js +6 -0
- package/dist/record/recordExpressionEvaluator/node/identifier/nodesFinder.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/node/thisEvaluator.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/nodeValueExtractor.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/recordExpressionEvaluator.js.map +1 -1
- package/dist/record/recordFixer.js +16 -0
- package/dist/record/recordFixer.js.map +1 -1
- package/dist/record/recordNodesUpdater/index.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordEnumeratingItemsExpressionEvaluator.d.ts +6 -0
- package/dist/record/recordNodesUpdater/recordEnumeratingItemsExpressionEvaluator.js +6 -0
- package/dist/record/recordNodesUpdater/recordEnumeratingItemsExpressionEvaluator.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordExpressionEvaluationContext.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordExpressionValueConverter.js +5 -0
- package/dist/record/recordNodesUpdater/recordExpressionValueConverter.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js +20 -2
- package/dist/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsBooleanUpdater.js +2 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsBooleanUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js +13 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js +9 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js +17 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsEditableUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js +5 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js +4 -2
- package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js +8 -3
- package/dist/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsUpdateParams.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsVisibleUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodesCreator.js +10 -5
- package/dist/record/recordNodesUpdater/recordNodesCreator.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodesDeleter.js +7 -0
- package/dist/record/recordNodesUpdater/recordNodesDeleter.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js +2 -0
- package/dist/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodesUpdater.js +16 -2
- package/dist/record/recordNodesUpdater/recordNodesUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordUpdateResult.d.ts +8 -0
- package/dist/record/recordNodesUpdater/recordUpdateResult.js +8 -0
- package/dist/record/recordNodesUpdater/recordUpdateResult.js.map +1 -1
- package/dist/record/recordPrettyPrinter.js.map +1 -1
- package/dist/record/recordStep.js.map +1 -1
- package/dist/record/recordUpdater.js +1 -0
- package/dist/record/recordUpdater.js.map +1 -1
- package/dist/record/recordValidations.js.map +1 -1
- package/dist/record/recordValidator/attributeKeyValidator.d.ts +4 -0
- package/dist/record/recordValidator/attributeKeyValidator.js +3 -0
- package/dist/record/recordValidator/attributeKeyValidator.js.map +1 -1
- package/dist/record/recordValidator/attributeTypeValidator.js +3 -0
- package/dist/record/recordValidator/attributeTypeValidator.js.map +1 -1
- package/dist/record/recordValidator/attributeUniqueValidator.js +2 -0
- package/dist/record/recordValidator/attributeUniqueValidator.js.map +1 -1
- package/dist/record/recordValidator/attributeValidator.js +12 -1
- package/dist/record/recordValidator/attributeValidator.js.map +1 -1
- package/dist/record/recordValidator/countVaildator.js +5 -0
- package/dist/record/recordValidator/countVaildator.js.map +1 -1
- package/dist/record/recordValidator/index.js.map +1 -1
- package/dist/record/recordValidator/recordValidator.js +3 -0
- package/dist/record/recordValidator/recordValidator.js.map +1 -1
- package/dist/record/records.js +3 -0
- package/dist/record/records.js.map +1 -1
- package/dist/record/service.js.map +1 -1
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/serviceRegistry.js.map +1 -1
- package/dist/registry/serviceType.js.map +1 -1
- package/dist/srs/factory.js.map +1 -1
- package/dist/srs/index.js.map +1 -1
- package/dist/srs/srs.js.map +1 -1
- package/dist/survey/factory.js +1 -0
- package/dist/survey/factory.js.map +1 -1
- package/dist/survey/index.js.map +1 -1
- package/dist/survey/nodeDefsFixer.js +1 -0
- package/dist/survey/nodeDefsFixer.js.map +1 -1
- package/dist/survey/refData/factory.js.map +1 -1
- package/dist/survey/refData/index.js.map +1 -1
- package/dist/survey/refData/refData.d.ts +15 -0
- package/dist/survey/refData/refData.js.map +1 -1
- package/dist/survey/service.js.map +1 -1
- package/dist/survey/survey.d.ts +9 -0
- package/dist/survey/survey.js.map +1 -1
- package/dist/survey/surveyDocImageFactory.js.map +1 -1
- package/dist/survey/surveyDocImages.js.map +1 -1
- package/dist/survey/surveyFileFactory.js.map +1 -1
- package/dist/survey/surveys/_nodeDefs/nodeDefsIndex.js +8 -0
- package/dist/survey/surveys/_nodeDefs/nodeDefsIndex.js.map +1 -1
- package/dist/survey/surveys/_nodeDefs/nodeDefsReader.js.map +1 -1
- package/dist/survey/surveys/dependencies.js +11 -2
- package/dist/survey/surveys/dependencies.js.map +1 -1
- package/dist/survey/surveys/index.js +6 -0
- package/dist/survey/surveys/index.js.map +1 -1
- package/dist/survey/surveys/nodeDefs.js +12 -0
- package/dist/survey/surveys/nodeDefs.js.map +1 -1
- package/dist/survey/surveys/refsData.js.map +1 -1
- package/dist/survey/surveys/surveyGettersSecurity.js.map +1 -1
- package/dist/survey/surveys/surveysGetters.js +3 -1
- package/dist/survey/surveys/surveysGetters.js.map +1 -1
- package/dist/survey/surveys/surveysUtils.js.map +1 -1
- package/dist/taxonomy/factory.js.map +1 -1
- package/dist/taxonomy/index.js.map +1 -1
- package/dist/taxonomy/service.js.map +1 -1
- package/dist/taxonomy/taxa.js.map +1 -1
- package/dist/taxonomy/taxon.js.map +1 -1
- package/dist/taxonomy/taxonGenerator.js.map +1 -1
- package/dist/taxonomy/taxonService.js.map +1 -1
- package/dist/taxonomy/taxonVernacularName.js.map +1 -1
- package/dist/taxonomy/taxonomies.js.map +1 -1
- package/dist/taxonomy/taxonomy.js.map +1 -1
- package/dist/tests/builder/recordBuilder/attributeBuilder.js +2 -0
- package/dist/tests/builder/recordBuilder/attributeBuilder.js.map +1 -1
- package/dist/tests/builder/recordBuilder/entityBuilder.js.map +1 -1
- package/dist/tests/builder/recordBuilder/index.js.map +1 -1
- package/dist/tests/builder/recordBuilder/nodeBuilder.js.map +1 -1
- package/dist/tests/builder/recordBuilder/recordBuilder.js.map +1 -1
- package/dist/tests/builder/surveyBuilder/categoryBuilder.js.map +1 -1
- package/dist/tests/builder/surveyBuilder/categoryItemBuilder.js.map +1 -1
- package/dist/tests/builder/surveyBuilder/index.js.map +1 -1
- package/dist/tests/builder/surveyBuilder/nodeDefAttributeBuilder.js.map +1 -1
- package/dist/tests/builder/surveyBuilder/nodeDefBuilder.js.map +1 -1
- package/dist/tests/builder/surveyBuilder/nodeDefCodeBuilder.js.map +1 -1
- package/dist/tests/builder/surveyBuilder/nodeDefEntityBuilder.js.map +1 -1
- package/dist/tests/builder/surveyBuilder/nodeDefTaxonBuilder.js.map +1 -1
- package/dist/tests/builder/surveyBuilder/surveyBuilder.js.map +1 -1
- package/dist/tests/builder/surveyBuilder/taxonBuilder.js.map +1 -1
- package/dist/tests/builder/surveyBuilder/taxonomyBuilder.js.map +1 -1
- package/dist/utils/_objects/assoc.js.map +1 -1
- package/dist/utils/_objects/assocPath.js +1 -0
- package/dist/utils/_objects/assocPath.js.map +1 -1
- package/dist/utils/_objects/camelize.d.ts +9 -0
- package/dist/utils/_objects/camelize.js +9 -0
- package/dist/utils/_objects/camelize.js.map +1 -1
- package/dist/utils/_objects/deepMerge.d.ts +5 -0
- package/dist/utils/_objects/deepMerge.js +10 -0
- package/dist/utils/_objects/deepMerge.js.map +1 -1
- package/dist/utils/_objects/deleteEmptyProps.js.map +1 -1
- package/dist/utils/_objects/difference.js.map +1 -1
- package/dist/utils/_objects/dissoc.js.map +1 -1
- package/dist/utils/_objects/dissocPath.js +1 -0
- package/dist/utils/_objects/dissocPath.js.map +1 -1
- package/dist/utils/_objects/dissocPathIfEmpty.js.map +1 -1
- package/dist/utils/_objects/fromPairs.js.map +1 -1
- package/dist/utils/_objects/index.js.map +1 -1
- package/dist/utils/_objects/isEmpty.d.ts +6 -0
- package/dist/utils/_objects/isEmpty.js +8 -0
- package/dist/utils/_objects/isEmpty.js.map +1 -1
- package/dist/utils/_objects/isEqual.js.map +1 -1
- package/dist/utils/_objects/isNil.d.ts +6 -0
- package/dist/utils/_objects/isNil.js +6 -0
- package/dist/utils/_objects/isNil.js.map +1 -1
- package/dist/utils/_objects/isNotEmpty.d.ts +6 -0
- package/dist/utils/_objects/isNotEmpty.js +6 -0
- package/dist/utils/_objects/isNotEmpty.js.map +1 -1
- package/dist/utils/_objects/parse.d.ts +8 -0
- package/dist/utils/_objects/parse.js +8 -0
- package/dist/utils/_objects/parse.js.map +1 -1
- package/dist/utils/_objects/path.d.ts +6 -0
- package/dist/utils/_objects/path.js +7 -0
- package/dist/utils/_objects/path.js.map +1 -1
- package/dist/utils/_objects/propertyOf.js.map +1 -1
- package/dist/utils/_objects/setInPath.js.map +1 -1
- package/dist/utils/_objects/stringify.d.ts +9 -0
- package/dist/utils/_objects/stringify.js +9 -0
- package/dist/utils/_objects/stringify.js.map +1 -1
- package/dist/utils/_objects/toPairs.js.map +1 -1
- package/dist/utils/arrays.js.map +1 -1
- package/dist/utils/dates.d.ts +1 -1
- package/dist/utils/dates.js +22 -0
- package/dist/utils/dates.js.map +1 -1
- package/dist/utils/fileNames.js.map +1 -1
- package/dist/utils/fileProcessor.js +5 -1
- package/dist/utils/fileProcessor.js.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/numbers.js +21 -0
- package/dist/utils/numbers.js.map +1 -1
- package/dist/utils/promises.js +15 -1
- package/dist/utils/promises.js.map +1 -1
- package/dist/utils/queue.d.ts +7 -0
- package/dist/utils/queue.js +9 -0
- package/dist/utils/queue.js.map +1 -1
- package/dist/utils/retryProcessor.js +5 -1
- package/dist/utils/retryProcessor.js.map +1 -1
- package/dist/utils/strings.js.map +1 -1
- package/dist/utils/uuids.js.map +1 -1
- package/dist/utils/versions.js +4 -0
- package/dist/utils/versions.js.map +1 -1
- package/dist/validation/factory.js.map +1 -1
- package/dist/validation/fieldValidator.js.map +1 -1
- package/dist/validation/fieldValidators/email.js +3 -0
- package/dist/validation/fieldValidators/email.js.map +1 -1
- package/dist/validation/fieldValidators/index.js.map +1 -1
- package/dist/validation/fieldValidators/name.js +4 -0
- package/dist/validation/fieldValidators/name.js.map +1 -1
- package/dist/validation/fieldValidators/notKeyword.js.map +1 -1
- package/dist/validation/fieldValidators/numeric.js.map +1 -1
- package/dist/validation/fieldValidators/numericPositive.js.map +1 -1
- package/dist/validation/fieldValidators/required.js.map +1 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/validation.js.map +1 -1
- package/dist/validation/validationResults.js +1 -1
- package/dist/validation/validationResults.js.map +1 -1
- package/dist/validation/validations.js +17 -1
- package/dist/validation/validations.js.map +1 -1
- package/dist/validation/validator.js.map +1 -1
- package/dist/validation/validatorErrorKeys.js.map +1 -1
- package/package.json +6 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordPagesValidation.js","sourceRoot":"","sources":["../../../src/record/_records/recordPagesValidation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recordPagesValidation.js","sourceRoot":"","sources":["../../../src/record/_records/recordPagesValidation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node, Nodes } from '../../node'\nimport { NodeDefEntity, NodeDefs } from '../../nodeDef'\nimport { Survey, Surveys } from '../../survey'\nimport { Validations } from '../../validation'\nimport { Record } from '../record'\nimport { RecordValidations } from '../recordValidations'\nimport { getEntityCompletionStats } from './recordCompletion'\nimport { getCycle, getNodeByUuid, getNodesByDefUuid, getRoot } from './recordGetters'\n\nexport type PageValidationStatus = {\n hasErrors: boolean\n hasWarnings: boolean\n}\n\nexport type EntitySubtreeStatus = {\n hasErrors: boolean\n hasWarnings: boolean\n isComplete: boolean\n}\n\nexport type PagesValidationProgress = {\n percent: number\n validCount: number\n totalCount: number\n}\n\n/**\n * Whether a node belongs under a page entity (itself or any descendant of that page).\n */\nexport const nodeBelongsToPage = (params: { node: Node; pageNodeDefUuid: string; record: Record }): boolean => {\n const { node, pageNodeDefUuid, record } = params\n if (node.nodeDefUuid === pageNodeDefUuid) return true\n return Nodes.getHierarchy(node).some((ancestorUuid) => {\n const ancestor = getNodeByUuid(ancestorUuid)(record)\n return ancestor?.nodeDefUuid === pageNodeDefUuid\n })\n}\n\n/**\n * Whether a node belongs to this page only — not to a nested descendant page entity.\n * When descendantPageUuids is empty, all nodes under the page hierarchy are included.\n */\nexport const nodeBelongsToOwnPage = (params: {\n node: Node\n pageNodeDefUuid: string\n descendantPageUuids: string[]\n record: Record\n}): boolean => {\n const { node, pageNodeDefUuid, descendantPageUuids, record } = params\n if (!nodeBelongsToPage({ node, pageNodeDefUuid, record })) return false\n if (descendantPageUuids.includes(node.nodeDefUuid)) return false\n return !descendantPageUuids.some((descendantUuid) =>\n nodeBelongsToPage({ node, pageNodeDefUuid: descendantUuid, record })\n )\n}\n\n/**\n * Child page-entity defs displayed in their own page under the given entity.\n */\nexport const getNodeDefChildrenInOwnPage = (params: {\n survey: Survey\n nodeDef: NodeDefEntity\n cycle: string\n}): NodeDefEntity[] => {\n const { survey, nodeDef, cycle } = params\n return Surveys.getNodeDefChildren({ survey, nodeDef, includeAnalysis: true }).filter(\n (child): child is NodeDefEntity => {\n if (!NodeDefs.isEntity(child)) return false\n return NodeDefs.isDisplayInOwnPage(cycle)(child as NodeDefEntity)\n }\n )\n}\n\n/**\n * Collects all page-entity node defs in the survey cycle (root + nested own-pages).\n */\nexport const getPageNodeDefs = (params: { survey: Survey; cycle: string }): NodeDefEntity[] => {\n const { survey, cycle } = params\n const root = Surveys.getNodeDefRoot({ survey }) as NodeDefEntity | undefined\n if (!root) return []\n\n const pages: NodeDefEntity[] = []\n const stack: NodeDefEntity[] = [root]\n while (stack.length > 0) {\n const current = stack.pop()\n if (!current) continue\n pages.push(current)\n stack.push(...getNodeDefChildrenInOwnPage({ survey, nodeDef: current, cycle }))\n }\n return pages\n}\n\n/**\n * Collects descendant page node def UUIDs under a page (not including the page itself).\n */\nexport const getDescendantPageNodeDefUuids = (params: {\n survey: Survey\n cycle: string\n pageNodeDef: NodeDefEntity\n}): string[] => {\n const { survey, cycle, pageNodeDef } = params\n const uuids: string[] = []\n const visit = (nodeDef: NodeDefEntity) => {\n const children = getNodeDefChildrenInOwnPage({ survey, nodeDef, cycle })\n for (const child of children) {\n uuids.push(child.uuid)\n visit(child)\n }\n }\n visit(pageNodeDef)\n return uuids\n}\n\nconst nodeIsUnderEntity = (params: { node: Node; entityUuid: string }): boolean => {\n const { node, entityUuid } = params\n if (node.uuid === entityUuid) return true\n return Nodes.getHierarchy(node).includes(entityUuid)\n}\n\nconst getOwnPageFieldValidationFlags = (params: {\n nodeUuid: string\n pageNodeDefUuid: string\n descendantPageUuids: string[]\n scopeEntityUuid?: string\n record: Record\n recordValidation: ReturnType<typeof Validations.getValidation>\n}): PageValidationStatus | null => {\n const { nodeUuid, pageNodeDefUuid, descendantPageUuids, scopeEntityUuid, record, recordValidation } = params\n\n if (RecordValidations.isValidationChildrenCountKey(nodeUuid)) {\n return getOwnPageChildrenCountValidationFlags({\n childrenCountKey: nodeUuid,\n pageNodeDefUuid,\n descendantPageUuids,\n scopeEntityUuid,\n record,\n recordValidation,\n })\n }\n\n const node = getNodeByUuid(nodeUuid)(record)\n if (!node || !nodeBelongsToOwnPage({ node, pageNodeDefUuid, descendantPageUuids, record })) return null\n if (scopeEntityUuid && !nodeIsUnderEntity({ node, entityUuid: scopeEntityUuid })) return null\n\n const nodeValidation = RecordValidations.getValidationNode({ nodeUuid })(recordValidation)\n if (!nodeValidation) return null\n\n return {\n hasErrors: Validations.hasErrors(nodeValidation),\n hasWarnings: Validations.hasWarnings(nodeValidation),\n }\n}\n\n/**\n * Children-count validations (file min count, inline multiple min/max, etc.) are keyed as\n * `childrenCount_{parentUuid}_{childDefUuid}`, not as node UUIDs.\n * Include them when the parent is on this page, but skip counts that refer to descendant\n * page entities (missing sub-page instances should not paint the parent page red).\n */\nconst getOwnPageChildrenCountValidationFlags = (params: {\n childrenCountKey: string\n pageNodeDefUuid: string\n descendantPageUuids: string[]\n scopeEntityUuid?: string\n record: Record\n recordValidation: ReturnType<typeof Validations.getValidation>\n}): PageValidationStatus | null => {\n const { childrenCountKey, pageNodeDefUuid, descendantPageUuids, scopeEntityUuid, record, recordValidation } = params\n const parentUuid = RecordValidations.extractValidationChildrenCountKeyParentUuid(childrenCountKey)\n const childDefUuid = RecordValidations.extractValidationChildrenCountKeyNodeDefUuid(childrenCountKey)\n if (!parentUuid || !childDefUuid) return null\n\n // Sub-page entity min/max counts belong to navigation of nested pages, not this page's fields.\n if (descendantPageUuids.includes(childDefUuid)) return null\n\n const parentNode = getNodeByUuid(parentUuid)(record)\n if (!parentNode || !nodeBelongsToOwnPage({ node: parentNode, pageNodeDefUuid, descendantPageUuids, record })) {\n return null\n }\n if (scopeEntityUuid && !nodeIsUnderEntity({ node: parentNode, entityUuid: scopeEntityUuid })) return null\n\n const fieldValidation = Validations.getFieldValidation(childrenCountKey)(recordValidation)\n if (!fieldValidation) return null\n\n return {\n hasErrors: Validations.hasErrors(fieldValidation),\n hasWarnings: Validations.hasWarnings(fieldValidation),\n }\n}\n\n/**\n * Aggregates error/warning flags for a page.\n * When descendantPageUuids is non-empty, nested page entities are excluded (own-page scope).\n * When scopeEntityUuid is set, only validations for nodes under that entity instance are included.\n */\nexport const getPageValidationStatus = (params: {\n pageNodeDefUuid: string\n descendantPageUuids?: string[]\n record: Record\n scopeEntityUuid?: string\n}): PageValidationStatus => {\n const { pageNodeDefUuid, descendantPageUuids = [], record, scopeEntityUuid } = params\n const recordValidation = Validations.getValidation(record)\n const fields = Validations.getFieldValidations(recordValidation)\n let hasErrors = false\n let hasWarnings = false\n\n for (const nodeUuid of Object.keys(fields)) {\n const flags = getOwnPageFieldValidationFlags({\n nodeUuid,\n pageNodeDefUuid,\n descendantPageUuids,\n scopeEntityUuid,\n record,\n recordValidation,\n })\n if (!flags) continue\n if (flags.hasErrors) hasErrors = true\n if (flags.hasWarnings) hasWarnings = true\n if (hasErrors && hasWarnings) break\n }\n\n return { hasErrors, hasWarnings }\n}\n\nconst aggregatePageValidationStatuses = (statuses: PageValidationStatus[]): PageValidationStatus => ({\n hasErrors: statuses.some((status) => status.hasErrors),\n hasWarnings: statuses.some((status) => status.hasWarnings),\n})\n\n/**\n * Validation and completion status for one entity instance and its descendant pages.\n * Returns null when the node is missing or is not an entity.\n */\nexport const getEntitySubtreeStatus = (params: {\n survey: Survey\n record: Record\n entityUuid: string\n cycle?: string\n}): EntitySubtreeStatus | null => {\n const { survey, record, entityUuid } = params\n const entity = getNodeByUuid(entityUuid)(record)\n if (!entity) return null\n\n const entityDef = Surveys.getNodeDefByUuid({ survey, uuid: entity.nodeDefUuid })\n if (!NodeDefs.isEntity(entityDef)) return null\n\n const cycle = params.cycle ?? getCycle(record)\n const entityPageDef = entityDef as NodeDefEntity\n const descendantPageUuids = getDescendantPageNodeDefUuids({ survey, cycle, pageNodeDef: entityPageDef })\n const pageUuidsToCheck = [entity.nodeDefUuid, ...descendantPageUuids]\n\n const validationStatuses = pageUuidsToCheck.map((pageNodeDefUuid) => {\n const pageNodeDef = Surveys.getNodeDefByUuid({ survey, uuid: pageNodeDefUuid }) as NodeDefEntity\n const pageDescendantUuids = getDescendantPageNodeDefUuids({ survey, cycle, pageNodeDef })\n return getPageValidationStatus({\n pageNodeDefUuid,\n descendantPageUuids: pageDescendantUuids,\n record,\n scopeEntityUuid: entityUuid,\n })\n })\n\n const { hasErrors, hasWarnings } = aggregatePageValidationStatuses(validationStatuses)\n const { total, filled } = getEntityCompletionStats({ survey, record, entity })\n const isComplete = total > 0 && filled === total && !hasErrors && !hasWarnings\n\n return { hasErrors, hasWarnings, isComplete }\n}\n\n/**\n * Aggregates subtree status across instances of a multiple page entity.\n * When `scopeEntityUuid` is set, only instances under that ancestor entity are included\n * (needed for nested multiples, e.g. Tree under the currently selected Plot).\n * Empty instance lists return a non-complete status with no validation flags.\n */\nexport const getMultiplePageEntitiesStatus = (params: {\n survey: Survey\n record: Record\n pageNodeDefUuid: string\n cycle?: string\n /** When set, only instances under this ancestor entity are aggregated. */\n scopeEntityUuid?: string\n}): EntitySubtreeStatus => {\n const { survey, record, pageNodeDefUuid, scopeEntityUuid } = params\n const instances = getNodesByDefUuid(pageNodeDefUuid)(record).filter((instance) =>\n scopeEntityUuid ? nodeIsUnderEntity({ node: instance, entityUuid: scopeEntityUuid }) : true\n )\n\n if (instances.length === 0) {\n return { hasErrors: false, hasWarnings: false, isComplete: false }\n }\n\n const instanceStatuses = instances\n .map((instance) => getEntitySubtreeStatus({ survey, record, entityUuid: instance.uuid, cycle: params.cycle }))\n .filter((status): status is EntitySubtreeStatus => status !== null)\n\n return {\n hasErrors: instanceStatuses.some((status) => status.hasErrors),\n hasWarnings: instanceStatuses.some((status) => status.hasWarnings),\n isComplete: instanceStatuses.length > 0 && instanceStatuses.every((status) => status.isComplete),\n }\n}\n\n/**\n * Whether the page has validation errors on its own fields (excluding nested page entities).\n */\nexport const pageHasOwnErrors = (params: {\n pageNodeDefUuid: string\n descendantPageUuids: string[]\n record: Record\n}): boolean => getPageValidationStatus(params).hasErrors\n\n/**\n * Progress of pages without own-field validation errors over all survey pages.\n * Warnings do not reduce the score (matches Arena sidebar red-icon signal).\n */\nexport const getRecordPagesValidationProgress = (params: {\n survey: Survey\n record: Record\n cycle?: string\n}): PagesValidationProgress | null => {\n const { survey, record } = params\n if (!getRoot(record)) return null\n\n const cycle = params.cycle ?? getCycle(record)\n const pageNodeDefs = getPageNodeDefs({ survey, cycle })\n const totalCount = pageNodeDefs.length\n if (totalCount === 0) return null\n\n let validCount = 0\n for (const pageNodeDef of pageNodeDefs) {\n const pageNodeDefUuid = pageNodeDef.uuid\n const descendantPageUuids = getDescendantPageNodeDefUuids({ survey, cycle, pageNodeDef })\n if (!pageHasOwnErrors({ pageNodeDefUuid, descendantPageUuids, record })) {\n validCount += 1\n }\n }\n\n const percent = Math.round((validCount / totalCount) * 100)\n return { percent, validCount, totalCount }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordUpdateOptions.js","sourceRoot":"","sources":["../../../src/record/_records/recordUpdateOptions.ts"],"names":[],"mappings":";;;AAMa,QAAA,2BAA2B,GAAwB;IAC9D,gBAAgB,EAAE,IAAI;IACtB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;CACjB,CAAA"}
|
|
1
|
+
{"version":3,"file":"recordUpdateOptions.js","sourceRoot":"","sources":["../../../src/record/_records/recordUpdateOptions.ts"],"names":[],"mappings":";;;AAMa,QAAA,2BAA2B,GAAwB;IAC9D,gBAAgB,EAAE,IAAI;IACtB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;CACjB,CAAA","sourcesContent":["export interface RecordUpdateOptions {\n updateNodesIndex?: boolean\n sideEffect?: boolean\n sortNodes?: boolean\n}\n\nexport const RecordUpdateOptionsDefaults: RecordUpdateOptions = {\n updateNodesIndex: true,\n sideEffect: false,\n sortNodes: false,\n}\n"]}
|
|
@@ -43,6 +43,8 @@ const addNodes = (nodes, options = recordUpdateOptions_1.RecordUpdateOptionsDefa
|
|
|
43
43
|
const recordUpdated = sideEffect ? record : Object.assign({}, record);
|
|
44
44
|
const recordNodes = RecordGetters.getNodes(recordUpdated);
|
|
45
45
|
const index = (_a = recordUpdated._nodesIndex) !== null && _a !== void 0 ? _a : {};
|
|
46
|
+
// index only the nodes not already indexed with the same parent, node def and hierarchy code
|
|
47
|
+
// (e.g. nodes with only an updated value don't need any index change)
|
|
46
48
|
const nodesToIndex = {};
|
|
47
49
|
if (updateNodesIndex) {
|
|
48
50
|
for (const [nodeUuid, node] of Object.entries(nodes)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordUpdater.js","sourceRoot":"","sources":["../../../src/record/_records/recordUpdater.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+DAAgD;AAChD,uEAAmE;AACnE,+DAAwF;AAEjF,MAAM,QAAQ,GACnB,CAAC,KAA8B,EAAE,UAA+B,iDAA2B,EAAE,EAAE,CAC/F,CAAC,MAAc,EAAU,EAAE;;IACzB,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,mCAAQ,iDAA2B,GAAK,OAAO,CAAE,CAAA;IAElG,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,mBAAM,MAAM,CAAE,CAAA;IACzD,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IACzD,MAAM,KAAK,GAAG,MAAA,aAAa,CAAC,WAAW,mCAAI,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"recordUpdater.js","sourceRoot":"","sources":["../../../src/record/_records/recordUpdater.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+DAAgD;AAChD,uEAAmE;AACnE,+DAAwF;AAEjF,MAAM,QAAQ,GACnB,CAAC,KAA8B,EAAE,UAA+B,iDAA2B,EAAE,EAAE,CAC/F,CAAC,MAAc,EAAU,EAAE;;IACzB,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,mCAAQ,iDAA2B,GAAK,OAAO,CAAE,CAAA;IAElG,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,mBAAM,MAAM,CAAE,CAAA;IACzD,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IACzD,MAAM,KAAK,GAAG,MAAA,aAAa,CAAC,WAAW,mCAAI,EAAE,CAAA;IAE7C,6FAA6F;IAC7F,sEAAsE;IACtE,MAAM,YAAY,GAA4B,EAAE,CAAA;IAChD,IAAI,gBAAgB,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;YACtC,IAAI,CAAC,iDAAuB,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAC7E,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IACzD,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,KAAK,mCAAQ,WAAW,GAAK,KAAK,CAAE,CAAA;IACpD,CAAC;IACD,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,aAAa,CAAC,WAAW,GAAG,iDAAuB,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,CAAA;IAC1G,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA;AA9BU,QAAA,QAAQ,YA8BlB;AAEI,MAAM,OAAO,GAClB,CAAC,IAAU,EAAE,UAA+B,iDAA2B,EAAE,EAAE,CAC3E,CAAC,MAAc,EAAE,EAAE,CACjB,IAAA,gBAAQ,EAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;AAHvC,QAAA,OAAO,WAGgC","sourcesContent":["import { Node } from '../../node'\nimport { Record } from '../record'\nimport * as RecordGetters from './recordGetters'\nimport { RecordNodesIndexUpdater } from './recordNodesIndexUpdater'\nimport { RecordUpdateOptions, RecordUpdateOptionsDefaults } from './recordUpdateOptions'\n\nexport const addNodes =\n (nodes: { [key: string]: Node }, options: RecordUpdateOptions = RecordUpdateOptionsDefaults) =>\n (record: Record): Record => {\n const { sideEffect, updateNodesIndex, sortNodes } = { ...RecordUpdateOptionsDefaults, ...options }\n\n const recordUpdated = sideEffect ? record : { ...record }\n const recordNodes = RecordGetters.getNodes(recordUpdated)\n const index = recordUpdated._nodesIndex ?? {}\n\n // index only the nodes not already indexed with the same parent, node def and hierarchy code\n // (e.g. nodes with only an updated value don't need any index change)\n const nodesToIndex: { [key: string]: Node } = {}\n if (updateNodesIndex) {\n for (const [nodeUuid, node] of Object.entries(nodes)) {\n const nodePrev = recordNodes[nodeUuid]\n if (!RecordNodesIndexUpdater.isNodeIndexUnchanged({ index, node, nodePrev })) {\n nodesToIndex[nodeUuid] = node\n }\n }\n }\n\n if (sideEffect) {\n recordUpdated.nodes = Object.assign(recordNodes, nodes)\n } else {\n recordUpdated.nodes = { ...recordNodes, ...nodes }\n }\n if (updateNodesIndex && Object.keys(nodesToIndex).length > 0) {\n recordUpdated._nodesIndex = RecordNodesIndexUpdater.addNodes(nodesToIndex, sideEffect, sortNodes)(index)\n }\n return recordUpdated\n }\n\nexport const addNode =\n (node: Node, options: RecordUpdateOptions = RecordUpdateOptionsDefaults) =>\n (record: Record) =>\n addNodes({ [node.uuid]: node }, options)(record)\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordUtils.js","sourceRoot":"","sources":["../../../src/record/_records/recordUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recordUtils.js","sourceRoot":"","sources":["../../../src/record/_records/recordUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import { CategoryItem } from '../../category'\nimport { Node, NodeValues } from '../../node'\nimport { NodeDef, NodeDefCode, NodeDefEntity, NodeDefs, NodeDefType } from '../../nodeDef'\nimport { CategoryItemProvider } from '../../nodeDefExpressionEvaluator/categoryItemProvider'\nimport { Survey, Surveys } from '../../survey'\nimport { Record } from '../record'\nimport {\n getChildren,\n getDescendantsOrSelf,\n getParent,\n getParentCodeAttribute,\n getRoot,\n isNodeFilledByUser,\n} from './recordGetters'\n\nconst findDependentEnumeratedEntityDefs = (params: { survey: Survey; nodeDef: NodeDef<any> }): NodeDefEntity[] => {\n const { survey, nodeDef } = params\n const dependentEnumeratedEntityDefs =\n NodeDefs.getType(nodeDef) === NodeDefType.code\n ? Surveys.getDependentEnumeratedEntityDefs({ survey, nodeDef: nodeDef as NodeDefCode })\n : []\n\n const applicableDependentEnumeratedEntityDefs = Surveys.findApplicableDependentEnumeratedEntityDefs(nodeDef)(survey)\n dependentEnumeratedEntityDefs.push(...applicableDependentEnumeratedEntityDefs)\n\n return dependentEnumeratedEntityDefs\n}\n\nconst hasNodeNonEmptyDescendants = (params: {\n record: Record\n parentNode: Node | undefined\n nodeDefDescendant: NodeDefEntity\n}): boolean => {\n const { record, parentNode, nodeDefDescendant } = params\n const descendants = getDescendantsOrSelf({\n record,\n node: parentNode ?? getRoot(record)!,\n nodeDefDescendant,\n })\n const nonEmptyDescendants = descendants.filter((dependentEntity) =>\n getChildren(dependentEntity)(record).some((childNode) => isNodeFilledByUser(childNode)(record))\n )\n return nonEmptyDescendants.length > 0\n}\n\nexport const findDependentEnumeratedEntityDefsNotEmpty =\n (params: { survey: Survey; node: Node; nodeDef: NodeDef<any> }) => (record: Record) => {\n const { survey, node, nodeDef } = params\n const dependentEnumeratedEntityDefs = findDependentEnumeratedEntityDefs({ survey, nodeDef })\n if (dependentEnumeratedEntityDefs.length === 0) return []\n\n const parentNode = getParent(node)(record)\n\n return dependentEnumeratedEntityDefs.filter((dependentEnumeratedEntityDef) =>\n hasNodeNonEmptyDescendants({ record, parentNode, nodeDefDescendant: dependentEnumeratedEntityDef })\n )\n }\n\nexport const getEnumeratingCategoryItems =\n (params: {\n survey: Survey\n enumeratorDef: NodeDefCode\n parentNode: Node\n categoryItemProvider?: CategoryItemProvider\n allowedCodes?: Set<string>\n }) =>\n async (record: Record): Promise<CategoryItem[]> => {\n const { survey, enumeratorDef, parentNode, categoryItemProvider, allowedCodes } = params\n const categoryUuid = NodeDefs.getCategoryUuid(enumeratorDef)\n if (!categoryUuid) return []\n const category = Surveys.getCategoryByUuid({ survey, categoryUuid })\n if (!category) return []\n\n let parentItemUuid\n const parentCodeDefUuid = NodeDefs.getParentCodeDefUuid(enumeratorDef)\n if (parentCodeDefUuid) {\n const parentCodeAttribute = getParentCodeAttribute({ parentNode, nodeDef: enumeratorDef })(record)\n parentItemUuid = parentCodeAttribute ? NodeValues.getItemUuid(parentCodeAttribute) : null\n if (!parentItemUuid) return []\n }\n let items = Surveys.getEnumeratingCategoryItems({ survey, enumerator: enumeratorDef, parentItemUuid })\n if (items.length === 0 && categoryItemProvider) {\n items = await categoryItemProvider.getItems({ survey, categoryUuid, parentItemUuid, draft: !!record.preview })\n }\n if (allowedCodes) {\n items = items.filter((item) => item.props.code != null && allowedCodes.has(item.props.code))\n }\n return items\n }\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/record/factory.ts"],"names":[],"mappings":";;;AACA,kCAAoD;AACpD,qCAAsD;AACtD,oCAAgC;AAanB,QAAA,aAAa,GAAyC;IACjE,cAAc,EAAE,CAAC,MAA2B,EAAU,EAAE;;QACtD,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,4BAAmB;SAC1B,CAAA;QAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mCACjE,YAAY,GACZ,MAAM,CACV,CAAA;QAED,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,UAAU,0CAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,CAAA;QACrF,MAAM,SAAS,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,mCAAI,CAAC,YAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAa,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE1G,uBACE,KAAK;YACL,WAAW,EACX,UAAU,EAAE,IAAI,CAAC,KAAK,EACtB,SAAS,EAAE,IAAI,CAAC,IAAI,EACpB,SAAS,EACT,SAAS,EAAE,IAAI,CAAC,IAAI,EACpB,OAAO;YACP,IAAI;YACJ,UAAU,EACV,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE,IACb,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACvD;IACH,CAAC;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/record/factory.ts"],"names":[],"mappings":";;;AACA,kCAAoD;AACpD,qCAAsD;AACtD,oCAAgC;AAanB,QAAA,aAAa,GAAyC;IACjE,cAAc,EAAE,CAAC,MAA2B,EAAU,EAAE;;QACtD,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,4BAAmB;SAC1B,CAAA;QAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mCACjE,YAAY,GACZ,MAAM,CACV,CAAA;QAED,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,UAAU,0CAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,CAAA;QACrF,MAAM,SAAS,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,mCAAI,CAAC,YAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAa,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAE1G,uBACE,KAAK;YACL,WAAW,EACX,UAAU,EAAE,IAAI,CAAC,KAAK,EACtB,SAAS,EAAE,IAAI,CAAC,IAAI,EACpB,SAAS,EACT,SAAS,EAAE,IAAI,CAAC,IAAI,EACpB,OAAO;YACP,IAAI;YACJ,UAAU,EACV,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE,IACb,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACvD;IACH,CAAC;CACF,CAAA","sourcesContent":["import { Factory } from '../common'\nimport { AuthGroupName, User, Users } from '../auth'\nimport { Record, RECORD_STEP_DEFAULT } from './record'\nimport { UUIDs } from '../utils'\nimport { AppInfo } from '../app'\n\nexport type RecordFactoryParams = {\n cycle?: string\n dateCreated?: string\n preview?: boolean\n surveyUuid: string\n step?: string\n user: User\n appInfo?: AppInfo\n}\n\nexport const RecordFactory: Factory<Record, RecordFactoryParams> = {\n createInstance: (params: RecordFactoryParams): Record => {\n const defaultProps = {\n preview: false,\n step: RECORD_STEP_DEFAULT,\n }\n\n const { appInfo, cycle, dateCreated, preview, step, surveyUuid, user } = {\n ...defaultProps,\n ...params,\n }\n\n const surveyGroup = user.authGroups?.find((group) => group.surveyUuid === surveyUuid)\n const ownerRole = surveyGroup?.name ?? (Users.isSystemAdmin(user) ? AuthGroupName.systemAdmin : undefined)\n\n return {\n cycle,\n dateCreated,\n ownerEmail: user.email,\n ownerName: user.name,\n ownerRole,\n ownerUuid: user.uuid,\n preview,\n step,\n surveyUuid,\n uuid: UUIDs.v4(),\n ...(appInfo ? { info: { createdWith: appInfo } } : {}),\n }\n },\n}\n"]}
|
package/dist/record/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/record/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AAIrB,mCAA8C;AAArC,6GAAA,mBAAmB,OAAA;AAE5B,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAGhB,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,yEAAuE;AAA9D,sIAAA,yBAAyB,OAAA;AAElC,6CAA2C;AAAlC,0GAAA,WAAW,OAAA;AACpB,2DAA6E;AAApE,wHAAA,kBAAkB,OAAA;AAAE,wHAAA,kBAAkB,OAAA;AAE/C,iDAA+C;AAAtC,8GAAA,aAAa,OAAA;AACtB,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AAOxB,yDAAuD;AAA9C,sHAAA,iBAAiB,OAAA;AAE1B,qCAAyC;AAAhC,wGAAA,aAAa,OAAA;AAGtB,6DAA2D;AAAlD,0HAAA,mBAAmB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/record/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AAIrB,mCAA8C;AAArC,6GAAA,mBAAmB,OAAA;AAE5B,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAGhB,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,yEAAuE;AAA9D,sIAAA,yBAAyB,OAAA;AAElC,6CAA2C;AAAlC,0GAAA,WAAW,OAAA;AACpB,2DAA6E;AAApE,wHAAA,kBAAkB,OAAA;AAAE,wHAAA,kBAAkB,OAAA;AAE/C,iDAA+C;AAAtC,8GAAA,aAAa,OAAA;AACtB,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AAOxB,yDAAuD;AAA9C,sHAAA,iBAAiB,OAAA;AAE1B,qCAAyC;AAAhC,wGAAA,aAAa,OAAA;AAGtB,6DAA2D;AAAlD,0HAAA,mBAAmB,OAAA","sourcesContent":["export { NodePointers } from './nodePointers'\n\nexport type { Record } from './record'\nexport type { Record as ArenaRecord } from './record'\nexport { RECORD_STEP_DEFAULT } from './record'\n\nexport { Records } from './records'\nexport type { RecordUpdateOptions } from './records'\n\nexport { RecordCloner } from './recordCloner'\nexport { RecordExpressionEvaluator } from './recordExpressionEvaluator'\nexport type { RecordExpressionContext } from './recordExpressionEvaluator'\nexport { RecordFixer } from './recordFixer'\nexport { RecordNodesUpdater, RecordUpdateResult } from './recordNodesUpdater'\nexport type { NodeCreateParams, NodesUpdateParams, RecordExpressionEvaluationContext } from './recordNodesUpdater'\nexport { RecordUpdater } from './recordUpdater'\nexport { RecordValidator } from './recordValidator'\nexport type {\n AttributeValidatorParams,\n AttributesValidatorParams,\n RecordValidatorParams,\n SortedAttributesValidatorParams,\n} from './recordValidator'\nexport { RecordValidations } from './recordValidations'\n\nexport { RecordFactory } from './factory'\nexport type { RecordService } from './service'\n\nexport { RecordPrettyPrinter } from './recordPrettyPrinter'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodePointers.js","sourceRoot":"","sources":["../../src/record/nodePointers.ts"],"names":[],"mappings":";;;AAEA,uCAAmC;AAEnC,MAAM,wBAAwB,GAAG,CAAC,MAAuD,EAAU,EAAE;IACnG,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAEvC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAC1C,iBAAO,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAC3E,CAAA;AACH,CAAC,CAAA;AAED,MAAM,2BAA2B,GAAG,CAAC,MAGpC,EAA2B,EAAE;IAC5B,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAA4B,EAAE,CAAA;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC5B,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAEY,QAAA,YAAY,GAAG;IAC1B,wBAAwB;IACxB,2BAA2B;CAC5B,CAAA"}
|
|
1
|
+
{"version":3,"file":"nodePointers.js","sourceRoot":"","sources":["../../src/record/nodePointers.ts"],"names":[],"mappings":";;;AAEA,uCAAmC;AAEnC,MAAM,wBAAwB,GAAG,CAAC,MAAuD,EAAU,EAAE;IACnG,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAEvC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAC1C,iBAAO,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAC3E,CAAA;AACH,CAAC,CAAA;AAED,MAAM,2BAA2B,GAAG,CAAC,MAGpC,EAA2B,EAAE;IAC5B,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAA4B,EAAE,CAAA;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC5B,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAEY,QAAA,YAAY,GAAG;IAC1B,wBAAwB;IACxB,2BAA2B;CAC5B,CAAA","sourcesContent":["import { Node, NodePointer } from '../node'\nimport { Record } from './record'\nimport { Records } from './records'\n\nconst getNodesFromNodePointers = (params: { record: Record; nodePointers: NodePointer[] }): Node[] => {\n const { record, nodePointers } = params\n\n return nodePointers.flatMap((nodePointer) =>\n Records.getChildren(nodePointer.nodeCtx, nodePointer.nodeDef.uuid)(record)\n )\n}\n\nconst getNodesMapFromNodePointers = (params: {\n record: Record\n nodePointers: NodePointer[]\n}): { [key: string]: Node } => {\n const nodes = getNodesFromNodePointers(params)\n const nodesMap: { [key: string]: Node } = {}\n for (const node of nodes) {\n nodesMap[node.uuid] = node\n }\n return nodesMap\n}\n\nexport const NodePointers = {\n getNodesFromNodePointers,\n getNodesMapFromNodePointers,\n}\n"]}
|
package/dist/record/record.d.ts
CHANGED
|
@@ -7,15 +7,27 @@ interface NodeUuidsPresence {
|
|
|
7
7
|
[key: string]: boolean;
|
|
8
8
|
}
|
|
9
9
|
export interface RecordNodesIndex {
|
|
10
|
+
/**
|
|
11
|
+
* uuid of root entity
|
|
12
|
+
*/
|
|
10
13
|
nodeRootUuid?: string;
|
|
14
|
+
/**
|
|
15
|
+
* node uuids by parent entity uuid and child def uuid
|
|
16
|
+
*/
|
|
11
17
|
nodesByParentAndChildDef?: {
|
|
12
18
|
[key: string]: {
|
|
13
19
|
[key: string]: NodeUuidsPresence;
|
|
14
20
|
};
|
|
15
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* node uuids by node def uuid
|
|
24
|
+
*/
|
|
16
25
|
nodesByDef?: {
|
|
17
26
|
[key: string]: NodeUuidsPresence;
|
|
18
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Code attribute uuids by ancenstor code attribute uuid
|
|
30
|
+
*/
|
|
19
31
|
nodeCodeDependents?: {
|
|
20
32
|
[key: string]: NodeUuidsPresence;
|
|
21
33
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/record/record.ts"],"names":[],"mappings":";;;AAIa,QAAA,mBAAmB,GAAG,GAAG,CAAA;AAEzB,QAAA,KAAK,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/record/record.ts"],"names":[],"mappings":";;;AAIa,QAAA,mBAAmB,GAAG,GAAG,CAAA;AAEzB,QAAA,KAAK,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA","sourcesContent":["import { AppInfo } from '../app'\nimport { Node } from '../node'\nimport { Validation } from '../validation'\n\nexport const RECORD_STEP_DEFAULT = '1'\n\nexport const steps = ['entry', 'cleansing', 'analysis']\n\ninterface NodeUuidsPresence {\n [key: string]: boolean\n}\n\nexport interface RecordNodesIndex {\n /**\n * uuid of root entity\n */\n nodeRootUuid?: string\n /**\n * node uuids by parent entity uuid and child def uuid\n */\n nodesByParentAndChildDef?: { [key: string]: { [key: string]: NodeUuidsPresence } }\n /**\n * node uuids by node def uuid\n */\n nodesByDef?: { [key: string]: NodeUuidsPresence }\n /**\n * Code attribute uuids by ancenstor code attribute uuid\n */\n nodeCodeDependents?: { [key: string]: NodeUuidsPresence }\n}\n\nexport interface RecordInfo {\n createdWith?: AppInfo\n updatedWith?: AppInfo\n}\n\nexport interface Record {\n cycle?: string\n dateCreated?: string\n dateModified?: string\n id?: number\n nodes?: { [uuid: string]: Node }\n ownerEmail?: string\n ownerName: string\n ownerRole?: string\n ownerUuid: string\n preview?: boolean\n step: string // in steps\n surveyId?: number\n surveyUuid?: string\n uuid: string\n validation?: Validation\n\n _nodesIndex?: RecordNodesIndex\n\n info?: RecordInfo\n}\n\nexport type ArenaRecord = Record\nexport type ArenaRecordNode = Node\n"]}
|
|
@@ -13,12 +13,15 @@ const records_1 = require("./records");
|
|
|
13
13
|
const assignNewUuidsToNodes = (params) => {
|
|
14
14
|
var _a;
|
|
15
15
|
const { record, sideEffect } = params;
|
|
16
|
+
// generate a new uuid for each node
|
|
16
17
|
const newNodeUuidsByOldUuid = {};
|
|
17
18
|
const newFileUuidsByOldUuid = {};
|
|
19
|
+
// sort nodes before removing the id, to preserve their hierarchy (faster than comparing each meta.h property)
|
|
18
20
|
const nodesArray = records_1.Records.getNodesArray(record).sort((nodeA, nodeB) => node_1.Nodes.getHierarchy(nodeA).length - node_1.Nodes.getHierarchy(nodeB).length);
|
|
19
21
|
const recordUpdated = sideEffect ? record : Object.assign({}, record);
|
|
20
22
|
const nodes = (_a = recordUpdated.nodes) !== null && _a !== void 0 ? _a : {};
|
|
21
23
|
const nodesUpdated = sideEffect ? nodes : Object.assign({}, nodes);
|
|
24
|
+
// update nodes recordUuid and properties (it does side effect on nodes)
|
|
22
25
|
nodesArray.forEach((node) => {
|
|
23
26
|
var _a, _b;
|
|
24
27
|
let nodeUpdated = sideEffect ? node : Object.assign({}, node);
|
|
@@ -28,8 +31,10 @@ const assignNewUuidsToNodes = (params) => {
|
|
|
28
31
|
const newUuid = utils_1.UUIDs.v4();
|
|
29
32
|
newNodeUuidsByOldUuid[oldUuid] = newUuid;
|
|
30
33
|
nodeUpdated.uuid = newUuid;
|
|
34
|
+
// consider every node as just created node
|
|
31
35
|
delete nodeUpdated.id;
|
|
32
|
-
nodeUpdated.created = true;
|
|
36
|
+
nodeUpdated.created = true; // this flag will be used by the RDB generator)
|
|
37
|
+
// update internal node uuids, meta hierarchy, file uuid (if any)
|
|
33
38
|
const parentUuid = node.parentUuid;
|
|
34
39
|
if (parentUuid) {
|
|
35
40
|
nodeUpdated.parentUuid = newNodeUuidsByOldUuid[parentUuid];
|
|
@@ -44,6 +49,7 @@ const assignNewUuidsToNodes = (params) => {
|
|
|
44
49
|
sideEffect,
|
|
45
50
|
});
|
|
46
51
|
}
|
|
52
|
+
// assign new file uuid (file should be cloned elsewhere)
|
|
47
53
|
const fileUuid = node_1.NodeValues.getFileUuid(node);
|
|
48
54
|
if (fileUuid) {
|
|
49
55
|
const newFileUuid = utils_1.UUIDs.v4();
|
|
@@ -103,6 +109,7 @@ const assignNewUuids = (params) => {
|
|
|
103
109
|
});
|
|
104
110
|
recordUpdated = utils_1.Objects.assoc({ obj: recordUpdated, prop: 'validation', value: validationUpdated, sideEffect });
|
|
105
111
|
}
|
|
112
|
+
// re-build nodes index
|
|
106
113
|
const nodes = recordUpdated.nodes;
|
|
107
114
|
delete recordUpdated._nodesIndex;
|
|
108
115
|
delete recordUpdated.nodes;
|
|
@@ -139,9 +146,11 @@ const cloneRecord = (params) => {
|
|
|
139
146
|
recordUpdated.cycle = cycleTo;
|
|
140
147
|
recordUpdated.dateCreated = recordUpdated.dateModified = utils_1.Dates.nowFormattedForStorage();
|
|
141
148
|
delete recordUpdated.id;
|
|
149
|
+
// delete nodes not included in clone
|
|
142
150
|
const updateResult = new recordNodesUpdater_1.RecordUpdateResult({ record: recordUpdated });
|
|
143
151
|
updateResult.merge(removeExcludedNodes({ survey, record: updateResult.record, sideEffect }));
|
|
144
152
|
updateResult.merge(recordFixer_1.RecordFixer.insertMissingSingleNodes({ survey, record: updateResult.record, sideEffect }));
|
|
153
|
+
// assign new UUIDs with side effect on record and nodes, faster when record is big
|
|
145
154
|
const { newNodeUuidsByOldUuid, newFileUuidsByOldUuid, record: recordUpdatedUuids, } = assignNewUuids({ record: updateResult.record, sideEffect });
|
|
146
155
|
updateResult.merge(new recordNodesUpdater_1.RecordUpdateResult({ record: recordUpdatedUuids }));
|
|
147
156
|
return { record: updateResult.record, newNodeUuidsByOldUuid, newFileUuidsByOldUuid };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordCloner.js","sourceRoot":"","sources":["../../src/record/recordCloner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recordCloner.js","sourceRoot":"","sources":["../../src/record/recordCloner.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node, NodeValues, Nodes } from '../node'\nimport { NodeKeys, NodeMetaKeys } from '../node/node'\nimport { NodeDefCode, NodeDefType, NodeDefs } from '../nodeDef'\nimport { Survey, Surveys } from '../survey'\nimport { Dates, Objects, UUIDs } from '../utils'\nimport { Validation } from '../validation'\nimport { Record } from './record'\nimport { RecordFixer } from './recordFixer'\nimport { RecordUpdateResult } from './recordNodesUpdater'\nimport { RecordValidations } from './recordValidations'\nimport { Records } from './records'\n\ntype OldUuidToNewUuidMap = {\n [key: string]: string\n}\n\nconst assignNewUuidsToNodes = (params: {\n record: Record\n sideEffect: boolean\n}): { newNodeUuidsByOldUuid: OldUuidToNewUuidMap; newFileUuidsByOldUuid: OldUuidToNewUuidMap; record: Record } => {\n const { record, sideEffect } = params\n\n // generate a new uuid for each node\n const newNodeUuidsByOldUuid: OldUuidToNewUuidMap = {}\n const newFileUuidsByOldUuid: OldUuidToNewUuidMap = {}\n\n // sort nodes before removing the id, to preserve their hierarchy (faster than comparing each meta.h property)\n const nodesArray = Records.getNodesArray(record).sort(\n (nodeA: Node, nodeB: Node): number => Nodes.getHierarchy(nodeA).length - Nodes.getHierarchy(nodeB).length\n )\n\n const recordUpdated = sideEffect ? record : { ...record }\n\n const nodes = recordUpdated.nodes ?? {}\n const nodesUpdated = sideEffect ? nodes : { ...nodes }\n\n // update nodes recordUuid and properties (it does side effect on nodes)\n nodesArray.forEach((node) => {\n let nodeUpdated = sideEffect ? node : { ...node }\n nodeUpdated.recordUuid = record.uuid\n nodeUpdated.dateCreated = nodeUpdated.dateModified = Dates.nowFormattedForStorage()\n\n const oldUuid = node.uuid\n const newUuid = UUIDs.v4()\n newNodeUuidsByOldUuid[oldUuid] = newUuid\n\n nodeUpdated.uuid = newUuid\n // consider every node as just created node\n delete nodeUpdated.id\n nodeUpdated.created = true // this flag will be used by the RDB generator)\n\n // update internal node uuids, meta hierarchy, file uuid (if any)\n const parentUuid = node.parentUuid\n if (parentUuid) {\n nodeUpdated.parentUuid = newNodeUuidsByOldUuid[parentUuid]\n }\n const hierarchy = node.meta?.h ?? []\n if (hierarchy.length > 0) {\n const hierarchyUpdated = hierarchy.map((ancestorUuid) => newNodeUuidsByOldUuid[ancestorUuid])\n nodeUpdated = Objects.assocPath({\n obj: nodeUpdated,\n path: [NodeKeys.meta, NodeMetaKeys.h],\n value: hierarchyUpdated,\n sideEffect,\n })\n }\n // assign new file uuid (file should be cloned elsewhere)\n const fileUuid = NodeValues.getFileUuid(node)\n if (fileUuid) {\n const newFileUuid = UUIDs.v4()\n nodeUpdated = Objects.assocPath({\n obj: nodeUpdated,\n path: [NodeKeys.value, NodeValues.ValuePropsFile.fileUuid],\n value: newFileUuid,\n })\n newFileUuidsByOldUuid[fileUuid] = newFileUuid\n }\n\n delete nodesUpdated[oldUuid]\n nodesUpdated[newUuid] = nodeUpdated\n })\n\n recordUpdated.nodes = nodesUpdated\n\n return { newNodeUuidsByOldUuid, newFileUuidsByOldUuid, record: recordUpdated }\n}\n\nconst assignNewUuidsToValidation = (params: {\n validation: Validation\n newNodeUuidsByOldUuid: OldUuidToNewUuidMap\n sideEffect: boolean\n}): Validation => {\n const { validation, newNodeUuidsByOldUuid, sideEffect } = params\n\n const validationFields = validation?.fields\n if (!validationFields) return validation\n\n const validationFieldsUpdated = sideEffect ? validationFields : { ...validationFields }\n\n Object.entries(validationFields).forEach(([oldFieldKey, validationField]) => {\n let newFieldKey\n if (oldFieldKey.startsWith(RecordValidations.prefixValidationFieldChildrenCount)) {\n const oldParentUuid = oldFieldKey.substring(\n RecordValidations.prefixValidationFieldChildrenCount.length,\n oldFieldKey.lastIndexOf('_')\n )\n const newParentUuid = newNodeUuidsByOldUuid[oldParentUuid]\n newFieldKey = oldFieldKey.replace(oldParentUuid, newParentUuid)\n } else {\n newFieldKey = newNodeUuidsByOldUuid[oldFieldKey]\n }\n if (newFieldKey) {\n validationFieldsUpdated[newFieldKey] = validationField\n }\n delete validationFieldsUpdated[oldFieldKey]\n })\n return Objects.assoc({\n obj: validation,\n prop: 'fields',\n value: validationFieldsUpdated,\n sideEffect,\n })\n}\n\nconst assignNewUuids = (params: {\n record: Record\n sideEffect: boolean\n}): { newNodeUuidsByOldUuid: OldUuidToNewUuidMap; newFileUuidsByOldUuid: OldUuidToNewUuidMap; record: Record } => {\n const { record, sideEffect } = params\n let recordUpdated = sideEffect ? record : { ...record }\n recordUpdated.uuid = UUIDs.v4()\n\n const {\n newNodeUuidsByOldUuid,\n newFileUuidsByOldUuid,\n record: recordUpdatedUuids,\n } = assignNewUuidsToNodes({ record: recordUpdated, sideEffect })\n\n recordUpdated = recordUpdatedUuids\n\n const { validation } = recordUpdated\n if (validation) {\n const validationUpdated = assignNewUuidsToValidation({\n validation,\n newNodeUuidsByOldUuid,\n sideEffect,\n })\n recordUpdated = Objects.assoc({ obj: recordUpdated, prop: 'validation', value: validationUpdated, sideEffect })\n }\n // re-build nodes index\n const nodes = recordUpdated.nodes!\n delete recordUpdated._nodesIndex\n delete recordUpdated.nodes\n recordUpdated = Records.addNodes(nodes, { sideEffect, sortNodes: true })(recordUpdated)\n\n return { newNodeUuidsByOldUuid, newFileUuidsByOldUuid, record: recordUpdated }\n}\n\nconst removeExcludedNodes = (params: { survey: Survey; record: Record; sideEffect: boolean }): RecordUpdateResult => {\n const { survey, record, sideEffect } = params\n const cycle = record.cycle!\n const result = new RecordUpdateResult({ record })\n Surveys.visitDescendantsAndSelfNodeDef({\n survey,\n cycle,\n nodeDef: Surveys.getNodeDefRoot({ survey }),\n visitor: (nodeDef) => {\n const hasAncestorCodeDefExcludedInClone =\n nodeDef.type === NodeDefType.code &&\n Surveys.getNodeDefAncestorCodes({ survey, nodeDef: nodeDef as NodeDefCode }).some(NodeDefs.isExcludedInClone)\n\n if (\n !NodeDefs.isInCycle(cycle)(nodeDef) ||\n NodeDefs.isExcludedInClone(nodeDef) ||\n hasAncestorCodeDefExcludedInClone\n ) {\n const nodesToDelete = Records.getNodesByDefUuid(nodeDef.uuid)(result.record)\n if (nodesToDelete.length > 0) {\n const partialUpdateResult = Records.deleteNodes(\n nodesToDelete.map((node) => node.uuid),\n { sideEffect }\n )(result.record)\n result.merge(partialUpdateResult)\n }\n }\n },\n })\n return result\n}\n\nconst cloneRecord = (params: { survey: Survey; record: Record; cycleTo: string; sideEffect?: boolean }) => {\n const { survey, record, cycleTo, sideEffect = false } = params\n\n const recordUpdated = sideEffect ? record : { ...record }\n recordUpdated.cycle = cycleTo\n recordUpdated.dateCreated = recordUpdated.dateModified = Dates.nowFormattedForStorage()\n delete recordUpdated.id\n\n // delete nodes not included in clone\n const updateResult = new RecordUpdateResult({ record: recordUpdated })\n updateResult.merge(removeExcludedNodes({ survey, record: updateResult.record, sideEffect }))\n updateResult.merge(RecordFixer.insertMissingSingleNodes({ survey, record: updateResult.record, sideEffect }))\n\n // assign new UUIDs with side effect on record and nodes, faster when record is big\n const {\n newNodeUuidsByOldUuid,\n newFileUuidsByOldUuid,\n record: recordUpdatedUuids,\n } = assignNewUuids({ record: updateResult.record, sideEffect })\n\n updateResult.merge(new RecordUpdateResult({ record: recordUpdatedUuids }))\n\n return { record: updateResult.record, newNodeUuidsByOldUuid, newFileUuidsByOldUuid }\n}\n\nexport const RecordCloner = {\n cloneRecord,\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/record/recordExpressionEvaluator/context.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/record/recordExpressionEvaluator/context.ts"],"names":[],"mappings":"","sourcesContent":["import { User } from '../../auth'\nimport { ExpressionContext } from '../../expression'\nimport { Node } from '../../node'\nimport { CategoryItemProvider } from '../../nodeDefExpressionEvaluator/categoryItemProvider'\nimport { TaxonProvider } from '../../nodeDefExpressionEvaluator/taxonProvider'\nimport { Survey } from '../../survey'\nimport { Record } from '../record'\n\nexport interface RecordExpressionContext extends ExpressionContext {\n user: User\n survey: Survey\n record: Record\n prevCycleRecord?: Record\n nodeContext: Node\n nodeCurrent?: Node\n item?: any\n categoryItemProvider?: CategoryItemProvider\n taxonProvider?: TaxonProvider\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/record/recordExpressionEvaluator/functions.ts"],"names":[],"mappings":";;;AACA,mCAAyC;AACzC,qCAA+D;AAC/D,0EAAuF;AACvF,yCAAsC;AACtC,uCAAoC;AACpC,wCAAoC;AAGpC,MAAM,0BAA0B,GAAG,CAAC,EAClC,IAAI,EACJ,OAAO,GAIR,EAAgB,EAAE;IACjB,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACnD,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,mBAAmB,GAAG,iBAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;IAC3D,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAA;IAChD,MAAM,eAAe,GAAG,iBAAO,CAAC,qCAAqC,CAAC;QACpE,MAAM;QACN,KAAK,EAAE,iBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC/B,UAAU;QACV,MAAM;QACN,WAAW,EAAE,eAAe;KAC7B,CAAC,CAAA;IACF,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,iBAAO,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAClH,CAAC,CAAA;AAEY,QAAA,yBAAyB,mCACjC,sCAA0B,KAC7B,KAAK,EAAE;QACL,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,IAAI;QACzB,QAAQ,EAAE,CAAC,QAAiC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3D,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,CAAA;YACtB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAC,MAAM,CAAA;YACjD,OAAO,CAAC,CAAA;QACV,CAAC;KACF,EACD,KAAK,EAAE;QACL,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,KAAK;QAC1B,QAAQ,EAAE,CAAC,QAAiC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3D,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5D,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;YACnB,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF,EACD,UAAU,EAAE;QACV,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,IAAI;QACzB,QAAQ,EACN,CAAC,OAAgC,EAAE,EAAE,CACrC,CAAC,GAAG,eAAe,EAAiB,EAAE;YACpC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YAE7C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;YAC1B,MAAM,QAAQ,GAAG,gBAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YAE5C,MAAM,OAAO,GAAG,CAAC,WAAgB,EAAgB,EAAE;gBACjD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;oBACpC,MAAM,KAAK,GAAG,YAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;oBACvC,OAAO,KAAK,IAAI,YAAM,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;gBAChE,CAAC;gBACD,OAAO,YAAM,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC;oBAC1C,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,iBAAU,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;YAC/D,CAAC,CAAA;YAED,MAAM,YAAY,GAAY,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE;gBAC3E,cAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;oBACrD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;oBAClC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,YAAM,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;oBACpE,IAAI,WAAW,EAAE,CAAC;wBAChB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;oBACvB,CAAC;gBACH,CAAC,CAAC,CAAA;gBACF,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;YAEN,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YAE1C,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE;oBACR,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/D;aACF,CAAA;QACH,CAAC;KACJ,EACD,KAAK,EAAE;QACL,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,IAAI;QACzB,QAAQ,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;YACvD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,CAAC,CAAA;YACX,CAAC;YACD,IAAI,YAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,CAAA;YACV,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;YAC1B,MAAM,UAAU,GAAG,iBAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;YAClD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,CAAC,CAAA;YACX,CAAC;YACD,MAAM,QAAQ,GAAG,iBAAO,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;YAC1E,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QAC3D,CAAC;KACF,EACD,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,KAAK;QAC1B,QAAQ,EAAE,CAAC,QAAiC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3D,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5D,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF,EACD,MAAM,EAAE;QACN,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,IAAI;QACzB,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;YACvD,IAAI,CAAC,IAAI,IAAI,YAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;YAC1B,OAAO,iBAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;QACxC,CAAC;KACF,EACD,cAAc,EAAE;QACd,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,IAAI;QACzB,QAAQ,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,0BAA0B,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,0CAAG,CAAC,CAAC,CAAA,EAAA;KAC7G,EACD,eAAe,EAAE;QACf,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,IAAI;QACzB,QAAQ,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KACxG,EACD,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,GAAG,EAAE,WAAC,OAAA,MAAM,CAAC,MAAA,OAAO,CAAC,MAAM,CAAC,KAAK,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAA,EAAA;KAC5F,EACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW;KACjF,EACD,sBAAsB,EAAE;QACtB,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY;KAClF,EACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU;KAChF,EACD,eAAe,EAAE;QACf,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS;KAC/E,EACD,eAAe,EAAE;QACf,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS;KAC/E,EACD,GAAG,EAAE;QACH,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,KAAK;QAC1B,QAAQ,EAAE,CAAC,QAAiC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3D,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,CAAA;YACtB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAChG,OAAO,CAAC,CAAA;QACV,CAAC;KACF,EACD,MAAM,EAAE;QACN,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,KAAK;QAC1B,QAAQ,EAAE,CAAC,QAAiC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3D,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,OAAO,EAAE,CAAA;YAClD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;QACvG,CAAC;KACF,EACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC,OAAgC,EAAE,EAAE,CAAC,GAAG,EAAE,eAAC,OAAA,CAAA,MAAA,OAAO,CAAC,IAAI,0CAAE,IAAI,OAAK,MAAA,OAAO,CAAC,MAAM,0CAAE,SAAS,CAAA,CAAA,EAAA;KACvG,IACF"}
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/record/recordExpressionEvaluator/functions.ts"],"names":[],"mappings":"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","sourcesContent":["import { ExpressionFunctions } from '../../expression'\nimport { Point, Points } from '../../geo'\nimport { ArenaRecordNode, Nodes, NodeValues } from '../../node'\nimport { nodeDefExpressionFunctions } from '../../nodeDefExpressionEvaluator/functions'\nimport { Surveys } from '../../survey'\nimport { Arrays } from '../../utils'\nimport { Records } from '../records'\nimport { RecordExpressionContext } from './context'\n\nconst extractPreviousCycleValues = ({\n node,\n context,\n}: {\n node: ArenaRecordNode | null\n context: RecordExpressionContext\n}): any[] | null => {\n const { record, prevCycleRecord, survey } = context\n if (!node || !prevCycleRecord) {\n return null\n }\n const currentRecordEntity = Records.getParent(node)(record)\n if (!currentRecordEntity) {\n return null\n }\n const { uuid: entityUuid } = currentRecordEntity\n const prevCycleEntity = Records.findEntityWithSameKeysInAnotherRecord({\n survey,\n cycle: Records.getCycle(record),\n entityUuid,\n record,\n recordOther: prevCycleRecord,\n })\n if (!prevCycleEntity) {\n return null\n }\n return Records.getChildren(prevCycleEntity, node.nodeDefUuid)(prevCycleRecord).map((prevNode) => prevNode.value)\n}\n\nexport const recordExpressionFunctions: ExpressionFunctions<RecordExpressionContext> = {\n ...nodeDefExpressionFunctions,\n count: {\n minArity: 1,\n evaluateArgsToNodes: true,\n executor: (_context: RecordExpressionContext) => (nodeSet) => {\n if (!nodeSet) return 0\n if (Array.isArray(nodeSet)) return nodeSet.length\n return 0\n },\n },\n first: {\n minArity: 1,\n maxArity: 1,\n evaluateArgsToNodes: false,\n executor: (_context: RecordExpressionContext) => (nodeSet) => {\n if (nodeSet && Array.isArray(nodeSet) && nodeSet.length > 0) {\n return nodeSet[0]\n }\n return null\n },\n },\n geoPolygon: {\n minArity: 1,\n evaluateArgsToNodes: true,\n executor:\n (context: RecordExpressionContext) =>\n (...nodeSetOrPoints): object | null => {\n if (nodeSetOrPoints.length === 0) return null\n\n const { survey } = context\n const srsIndex = Surveys.getSRSIndex(survey)\n\n const toPoint = (nodeOrPoint: any): Point | null => {\n if (typeof nodeOrPoint === 'string') {\n const point = Points.parse(nodeOrPoint)\n return point && Points.isValid(point, srsIndex) ? point : null\n }\n return Points.isValid(nodeOrPoint, srsIndex)\n ? nodeOrPoint\n : NodeValues.getValueAsPoint({ survey, node: nodeOrPoint })\n }\n\n const pointsLatLon: Point[] = nodeSetOrPoints.reduce((acc, nodeSetOrPoint) => {\n Arrays.toArray(nodeSetOrPoint).forEach((nodeOrPoint) => {\n const point = toPoint(nodeOrPoint)\n const pointLatLon = point ? Points.toLatLong(point, srsIndex) : null\n if (pointLatLon) {\n acc.push(pointLatLon)\n }\n })\n return acc\n }, [])\n\n if (pointsLatLon.length === 0) return null\n\n return {\n type: 'Feature',\n geometry: {\n type: 'Polygon',\n coordinates: [pointsLatLon.map((point) => [point.x, point.y])],\n },\n }\n },\n },\n index: {\n minArity: 1,\n maxArity: 1,\n evaluateArgsToNodes: true,\n executor: (context: RecordExpressionContext) => (node) => {\n if (!node) {\n return -1\n }\n if (Nodes.isRoot(node)) {\n return 0\n }\n const { record } = context\n const parentNode = Records.getParent(node)(record)\n if (!parentNode) {\n return -1\n }\n const children = Records.getChildren(parentNode, node.nodeDefUuid)(record)\n return children.findIndex((n) => Nodes.areEqual(n, node))\n },\n },\n last: {\n minArity: 1,\n maxArity: 1,\n evaluateArgsToNodes: false,\n executor: (_context: RecordExpressionContext) => (nodeSet) => {\n if (nodeSet && Array.isArray(nodeSet) && nodeSet.length > 0) {\n return nodeSet.at(-1)\n }\n return null\n },\n },\n parent: {\n minArity: 1,\n maxArity: 1,\n evaluateArgsToNodes: true,\n evaluateToNode: true,\n executor: (context: RecordExpressionContext) => (node) => {\n if (!node || Nodes.isRoot(node)) {\n return null\n }\n const { record } = context\n return Records.getParent(node)(record)\n },\n },\n prevCycleValue: {\n minArity: 1,\n maxArity: 1,\n evaluateArgsToNodes: true,\n executor: (context: RecordExpressionContext) => (node) => extractPreviousCycleValues({ node, context })?.[0],\n },\n prevCycleValues: {\n minArity: 1,\n maxArity: 1,\n evaluateArgsToNodes: true,\n executor: (context: RecordExpressionContext) => (node) => extractPreviousCycleValues({ node, context }),\n },\n recordCycle: {\n minArity: 0,\n maxArity: 0,\n executor: (context: RecordExpressionContext) => () => Number(context.record.cycle ?? 0) + 1,\n },\n recordDateCreated: {\n minArity: 0,\n maxArity: 0,\n executor: (context: RecordExpressionContext) => () => context.record.dateCreated,\n },\n recordDateLastModified: {\n minArity: 0,\n maxArity: 0,\n executor: (context: RecordExpressionContext) => () => context.record.dateModified,\n },\n recordOwnerEmail: {\n minArity: 0,\n maxArity: 0,\n executor: (context: RecordExpressionContext) => () => context.record.ownerEmail,\n },\n recordOwnerName: {\n minArity: 0,\n maxArity: 0,\n executor: (context: RecordExpressionContext) => () => context.record.ownerName,\n },\n recordOwnerRole: {\n minArity: 0,\n maxArity: 0,\n executor: (context: RecordExpressionContext) => () => context.record.ownerRole,\n },\n sum: {\n minArity: 1,\n maxArity: 1,\n evaluateArgsToNodes: false,\n executor: (_context: RecordExpressionContext) => (nodeSet) => {\n if (!nodeSet) return 0\n if (Array.isArray(nodeSet)) return nodeSet.reduce((acc, value) => acc + (Number(value) || 0), 0)\n return 0\n },\n },\n unique: {\n minArity: 1,\n maxArity: 1,\n evaluateArgsToNodes: false,\n executor: (_context: RecordExpressionContext) => (nodeSet) => {\n if (!nodeSet || !Array.isArray(nodeSet)) return []\n return [...new Set(nodeSet.filter((value) => value !== null && value !== undefined && value !== ''))]\n },\n },\n userIsRecordOwner: {\n minArity: 0,\n maxArity: 0,\n executor: (context: RecordExpressionContext) => () => context.user?.uuid === context.record?.ownerUuid,\n },\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/record/recordExpressionEvaluator/index.ts"],"names":[],"mappings":";;;AAEA,yEAAuE;AAA9D,sIAAA,yBAAyB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/record/recordExpressionEvaluator/index.ts"],"names":[],"mappings":";;;AAEA,yEAAuE;AAA9D,sIAAA,yBAAyB,OAAA","sourcesContent":["export type { RecordExpressionContext } from './context'\n\nexport { RecordExpressionEvaluator } from './recordExpressionEvaluator'\n"]}
|
|
@@ -15,14 +15,18 @@ const getNodesOrValues = (params) => {
|
|
|
15
15
|
const single = !nodeDefReferenced.props.multiple;
|
|
16
16
|
if (single) {
|
|
17
17
|
if (referencedNodes.length === 0) {
|
|
18
|
+
// do not throw error if node is missing, consider its value as null
|
|
19
|
+
// throw new SystemError('expression.nodeNotFoundForNodeDef', { nodeDefName: propName })
|
|
18
20
|
return [];
|
|
19
21
|
}
|
|
20
22
|
if (referencedNodes.length > 1)
|
|
21
23
|
throw new error_1.SystemError('expression.multipleNodesFoundForNodeDef', { nodeDefName: propName });
|
|
22
24
|
}
|
|
23
25
|
if (nodeDefReferenced.type === nodeDef_1.NodeDefType.entity || evaluateToNode) {
|
|
26
|
+
// return nodes
|
|
24
27
|
return referencedNodes;
|
|
25
28
|
}
|
|
29
|
+
// return node values
|
|
26
30
|
return referencedNodes.map((referencedNode) => nodeValueExtractor_1.NodeValueExtractor.getNodeValue({ survey, node: referencedNode, nodeDef: nodeDefReferenced }));
|
|
27
31
|
};
|
|
28
32
|
const evaluateIdentifierOnNode = (params) => {
|
|
@@ -32,11 +36,13 @@ const evaluateIdentifierOnNode = (params) => {
|
|
|
32
36
|
throw new error_1.SystemError('expression.identifierNotFound', { name: propName });
|
|
33
37
|
}
|
|
34
38
|
const nodeDefObject = survey_1.Surveys.getNodeDefByUuid({ survey, uuid: nodeDefObjectUuid });
|
|
39
|
+
// node value prop (native)
|
|
35
40
|
const valueProp = value === null || value === void 0 ? void 0 : value[propName];
|
|
36
41
|
if (valueProp !== undefined) {
|
|
37
42
|
return valueProp;
|
|
38
43
|
}
|
|
39
44
|
if (nodeDef_1.NodeDefs.isAttribute(nodeDefObject)) {
|
|
45
|
+
// node value prop (Arena specific value property)
|
|
40
46
|
if (nodeValues_1.NodeValues.isValueProp({ nodeDef: nodeDefObject, prop: propName })) {
|
|
41
47
|
return nodeValues_1.NodeValues.getNodeValueProp({ nodeDef: nodeDefObject, node: nodeObject, prop: propName });
|
|
42
48
|
}
|
|
@@ -52,11 +58,13 @@ const evaluateIdentifierOnNode = (params) => {
|
|
|
52
58
|
throw new error_1.SystemError('expression.identifierNotFound', { name: propName });
|
|
53
59
|
}
|
|
54
60
|
if (nodeObject.nodeDefUuid === nodeDefReferenced.uuid) {
|
|
61
|
+
// the referenced node is the current node itself
|
|
55
62
|
return nodeObject;
|
|
56
63
|
}
|
|
57
64
|
if (survey_1.Surveys.isNodeDefAncestor({ nodeDefAncestor: nodeDefReferenced, nodeDefDescendant: nodeDefObject })) {
|
|
58
65
|
return records_1.Records.getAncestor({ record, node: nodeObject, ancestorDefUuid: nodeDefReferenced.uuid });
|
|
59
66
|
}
|
|
67
|
+
// the referenced nodes can be siblings of the current node
|
|
60
68
|
const referencedNodes = nodesFinder_1.NodesFinder.findDescendants({ survey, record, nodeContext: nodeObject, nodeDefReferenced });
|
|
61
69
|
const nodesOrValues = getNodesOrValues({ survey, referencedNodes, nodeDefReferenced, propName, evaluateToNode });
|
|
62
70
|
return nodeDefReferenced.props.multiple ? nodesOrValues : nodesOrValues[0];
|
|
@@ -71,6 +79,8 @@ class RecordIdentifierEvaluator extends identifier_1.IdentifierEvaluator {
|
|
|
71
79
|
if (propName === expression_1.ExpressionVariable.CONTEXT) {
|
|
72
80
|
return this.context.nodeContext;
|
|
73
81
|
}
|
|
82
|
+
// try to find identifier among global or native properties
|
|
83
|
+
// (not-found is signaled without throwing; the try/catch only handles the rare case of an unknown member of a global object)
|
|
74
84
|
try {
|
|
75
85
|
const property = this.findGlobalOrNativeProperty(expressionNode);
|
|
76
86
|
if (property) {
|
|
@@ -78,9 +88,13 @@ class RecordIdentifierEvaluator extends identifier_1.IdentifierEvaluator {
|
|
|
78
88
|
}
|
|
79
89
|
}
|
|
80
90
|
catch (_e) {
|
|
91
|
+
// ignore it
|
|
81
92
|
}
|
|
93
|
+
// identifier not found among global or native properties
|
|
94
|
+
// identifier should be a node or a node value property
|
|
82
95
|
const { survey, record, evaluateToNode, object: contextObject, item } = this.context;
|
|
83
96
|
if (item && item === contextObject) {
|
|
97
|
+
// evaluating category or taxon item prop or extra prop
|
|
84
98
|
return (_b = (_a = item.props) === null || _a === void 0 ? void 0 : _a[propName]) !== null && _b !== void 0 ? _b : (_d = (_c = item.props) === null || _c === void 0 ? void 0 : _c.extra) === null || _d === void 0 ? void 0 : _d[propName];
|
|
85
99
|
}
|
|
86
100
|
if (Array.isArray(contextObject)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identifier.js","sourceRoot":"","sources":["../../../../../src/record/recordExpressionEvaluator/node/identifier/identifier.ts"],"names":[],"mappings":";;;AAAA,uDAAiF;AACjF,kFAAuF;AAEvF,iDAAoE;AACpE,8CAA0C;AAC1C,4DAAwD;AACxD,+CAAoD;AAEpD,+CAA2C;AAC3C,6CAA+C;AAC/C,iEAA6D;AAG7D,MAAM,gBAAgB,GAAG,CAAC,MAMzB,EAAS,EAAE;IACV,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CAAA;IACvF,MAAM,MAAM,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAA;IAChD,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"identifier.js","sourceRoot":"","sources":["../../../../../src/record/recordExpressionEvaluator/node/identifier/identifier.ts"],"names":[],"mappings":"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","sourcesContent":["import { ExpressionVariable, IdentifierExpression } from '../../../../expression'\nimport { IdentifierEvaluator } from '../../../../expression/javascript/node/identifier'\nimport { Node } from '../../../../node'\nimport { NodeDef, NodeDefs, NodeDefType } from '../../../../nodeDef'\nimport { Records } from '../../../records'\nimport { NodeValues } from '../../../../node/nodeValues'\nimport { Survey, Surveys } from '../../../../survey'\nimport { RecordExpressionContext } from '../../context'\nimport { NodesFinder } from './nodesFinder'\nimport { SystemError } from '../../../../error'\nimport { NodeValueExtractor } from '../../nodeValueExtractor'\nimport { Record } from '../../../record'\n\nconst getNodesOrValues = (params: {\n survey: Survey\n referencedNodes: Node[]\n nodeDefReferenced: NodeDef<any>\n propName: string\n evaluateToNode?: boolean\n}): any[] => {\n const { survey, nodeDefReferenced, referencedNodes, propName, evaluateToNode } = params\n const single = !nodeDefReferenced.props.multiple\n if (single) {\n if (referencedNodes.length === 0) {\n // do not throw error if node is missing, consider its value as null\n // throw new SystemError('expression.nodeNotFoundForNodeDef', { nodeDefName: propName })\n return []\n }\n if (referencedNodes.length > 1)\n throw new SystemError('expression.multipleNodesFoundForNodeDef', { nodeDefName: propName })\n }\n if (nodeDefReferenced.type === NodeDefType.entity || evaluateToNode) {\n // return nodes\n return referencedNodes\n }\n // return node values\n return referencedNodes.map((referencedNode) =>\n NodeValueExtractor.getNodeValue({ survey, node: referencedNode, nodeDef: nodeDefReferenced })\n )\n}\n\nconst evaluateIdentifierOnNode = (params: {\n survey: Survey\n record: Record\n nodeObject: Node\n evaluateToNode?: boolean\n propName: string\n}) => {\n const { survey, record, nodeObject, evaluateToNode = false, propName } = params\n const { nodeDefUuid: nodeDefObjectUuid, value } = nodeObject\n if (!nodeDefObjectUuid) {\n throw new SystemError('expression.identifierNotFound', { name: propName })\n }\n\n const nodeDefObject = Surveys.getNodeDefByUuid({ survey, uuid: nodeDefObjectUuid })\n\n // node value prop (native)\n const valueProp = value?.[propName]\n if (valueProp !== undefined) {\n return valueProp\n }\n if (NodeDefs.isAttribute(nodeDefObject)) {\n // node value prop (Arena specific value property)\n if (NodeValues.isValueProp({ nodeDef: nodeDefObject, prop: propName })) {\n return NodeValues.getNodeValueProp({ nodeDef: nodeDefObject, node: nodeObject, prop: propName })\n } else {\n throw new SystemError('expression.invalidAttributeValuePropertyName', {\n attributeName: NodeDefs.getName(nodeDefObject),\n propName,\n })\n }\n }\n\n const nodeDefReferenced = Surveys.findNodeDefByName({ survey, name: propName })\n\n if (!nodeDefReferenced) {\n throw new SystemError('expression.identifierNotFound', { name: propName })\n }\n\n if (nodeObject.nodeDefUuid === nodeDefReferenced.uuid) {\n // the referenced node is the current node itself\n return nodeObject\n }\n if (Surveys.isNodeDefAncestor({ nodeDefAncestor: nodeDefReferenced, nodeDefDescendant: nodeDefObject })) {\n return Records.getAncestor({ record, node: nodeObject, ancestorDefUuid: nodeDefReferenced.uuid })\n }\n // the referenced nodes can be siblings of the current node\n const referencedNodes = NodesFinder.findDescendants({ survey, record, nodeContext: nodeObject, nodeDefReferenced })\n const nodesOrValues = getNodesOrValues({ survey, referencedNodes, nodeDefReferenced, propName, evaluateToNode })\n return nodeDefReferenced.props.multiple ? nodesOrValues : nodesOrValues[0]\n}\n\nexport class RecordIdentifierEvaluator extends IdentifierEvaluator<RecordExpressionContext> {\n evaluate(expressionNode: IdentifierExpression): Promise<any> {\n return Promise.resolve(this.evaluateValue(expressionNode))\n }\n\n private evaluateValue(expressionNode: IdentifierExpression): any {\n const { name: propName } = expressionNode\n\n if (propName === ExpressionVariable.CONTEXT) {\n return this.context.nodeContext\n }\n\n // try to find identifier among global or native properties\n // (not-found is signaled without throwing; the try/catch only handles the rare case of an unknown member of a global object)\n try {\n const property = this.findGlobalOrNativeProperty(expressionNode)\n if (property) {\n return property.value\n }\n } catch {\n // ignore it\n }\n\n // identifier not found among global or native properties\n // identifier should be a node or a node value property\n const { survey, record, evaluateToNode, object: contextObject, item } = this.context\n\n if (item && item === contextObject) {\n // evaluating category or taxon item prop or extra prop\n return item.props?.[propName] ?? item.props?.extra?.[propName]\n }\n\n if (Array.isArray(contextObject)) {\n return contextObject.flatMap((contextNode) => {\n const evaluationResult = evaluateIdentifierOnNode({\n survey,\n record,\n nodeObject: contextNode,\n evaluateToNode,\n propName,\n })\n return Array.isArray(evaluationResult) ? evaluationResult : [evaluationResult]\n })\n }\n return evaluateIdentifierOnNode({ survey, record, nodeObject: contextObject, evaluateToNode, propName })\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/record/recordExpressionEvaluator/node/identifier/index.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAA/C,uHAAA,yBAAyB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/record/recordExpressionEvaluator/node/identifier/index.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAA/C,uHAAA,yBAAyB,OAAA","sourcesContent":["export { RecordIdentifierEvaluator } from './identifier'\n"]}
|
|
@@ -13,6 +13,8 @@ const getCommonAncestor = (params) => {
|
|
|
13
13
|
return records_1.Records.getRoot(record);
|
|
14
14
|
}
|
|
15
15
|
const nodeDefReferencedH = nodeDefReferenced.meta.h;
|
|
16
|
+
// meta.h contains only ancestors (excluding the node itself); include nodeDefCtx.uuid so that
|
|
17
|
+
// the context nodeDef can be treated as the common ancestor when nodeDefReferenced is a descendant of nodeDefCtx
|
|
16
18
|
const nodeDefCtxHierarchyToConsider = [...nodeDefCtx.meta.h, nodeDefCtx.uuid];
|
|
17
19
|
const nodeDefCommonH = utils_1.Arrays.intersection(nodeDefReferencedH, nodeDefCtxHierarchyToConsider);
|
|
18
20
|
if (nodeDefCommonH.length === 1) {
|
|
@@ -27,12 +29,14 @@ const getCommonAncestor = (params) => {
|
|
|
27
29
|
const getReferencedNodesParent = (params) => {
|
|
28
30
|
var _a;
|
|
29
31
|
const { survey, record, nodeContext, nodeDefReferenced } = params;
|
|
32
|
+
// Referenced node is a child of the context node
|
|
30
33
|
if (nodeDefReferenced.parentUuid === nodeContext.nodeDefUuid) {
|
|
31
34
|
return nodeContext;
|
|
32
35
|
}
|
|
33
36
|
const nodeDefCtx = survey_1.Surveys.getNodeDefByUuid({ survey, uuid: nodeContext.nodeDefUuid });
|
|
34
37
|
const nodeCtxH = node_1.Nodes.getHierarchy(nodeContext);
|
|
35
38
|
if (nodeDefCtx.type === nodeDef_1.NodeDefType.entity) {
|
|
39
|
+
// When nodeDefCtx is entity, expression is type applicableIf (and context always starts from parent)
|
|
36
40
|
nodeCtxH.push(nodeContext.uuid);
|
|
37
41
|
}
|
|
38
42
|
if (survey_1.Surveys.isNodeDefAncestor({ nodeDefAncestor: nodeDefReferenced, nodeDefDescendant: nodeDefCtx })) {
|
|
@@ -57,6 +61,8 @@ const getReferencedNodesParent = (params) => {
|
|
|
57
61
|
return undefined;
|
|
58
62
|
return records_1.Records.getDescendant({ record, node: nodeCommonAncestor, nodeDefDescendant: nodeDefReferencedParent });
|
|
59
63
|
};
|
|
64
|
+
// Get reachable nodes, i.e. the children of the node's ancestors.
|
|
65
|
+
// NOTE: The root node is excluded, but it _should_ be an entity, so that is fine.
|
|
60
66
|
const findDescendants = (params) => {
|
|
61
67
|
const { survey, record, nodeContext, nodeDefReferenced } = params;
|
|
62
68
|
const nodeReferencedParent = getReferencedNodesParent({ survey, record, nodeContext, nodeDefReferenced });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodesFinder.js","sourceRoot":"","sources":["../../../../../src/record/recordExpressionEvaluator/node/identifier/nodesFinder.ts"],"names":[],"mappings":";;;AAAA,2CAA8C;AAC9C,iDAA0D;AAE1D,8CAA0C;AAC1C,+CAAoD;AACpD,6CAA0C;AAE1C,MAAM,iBAAiB,GAAG,CAAC,MAK1B,EAAoB,EAAE;;IACrB,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAA;IAC1E,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,iBAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IACD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"nodesFinder.js","sourceRoot":"","sources":["../../../../../src/record/recordExpressionEvaluator/node/identifier/nodesFinder.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node, Nodes } from '../../../../node'\nimport { NodeDef, NodeDefType } from '../../../../nodeDef'\nimport { Record } from '../../../record'\nimport { Records } from '../../../records'\nimport { Survey, Surveys } from '../../../../survey'\nimport { Arrays } from '../../../../utils'\n\nconst getCommonAncestor = (params: {\n record: Record\n nodeCtxHierarchy: string[]\n nodeDefCtx: NodeDef<any>\n nodeDefReferenced: NodeDef<any>\n}): Node | undefined => {\n const { record, nodeCtxHierarchy, nodeDefCtx, nodeDefReferenced } = params\n if (!nodeDefCtx.parentUuid) {\n return Records.getRoot(record)\n }\n const nodeDefReferencedH = nodeDefReferenced.meta.h\n // meta.h contains only ancestors (excluding the node itself); include nodeDefCtx.uuid so that\n // the context nodeDef can be treated as the common ancestor when nodeDefReferenced is a descendant of nodeDefCtx\n const nodeDefCtxHierarchyToConsider = [...nodeDefCtx.meta.h, nodeDefCtx.uuid]\n const nodeDefCommonH = Arrays.intersection(nodeDefReferencedH, nodeDefCtxHierarchyToConsider)\n if (nodeDefCommonH.length === 1) {\n return Records.getRoot(record)\n }\n if (nodeDefCommonH.length > 1) {\n const nodeCommonAncestorUuid = nodeCtxHierarchy[nodeDefCommonH.length - 1]\n return record.nodes?.[nodeCommonAncestorUuid]\n }\n return undefined\n}\n\nconst getReferencedNodesParent = (params: {\n survey: Survey\n record: Record\n nodeContext: Node\n nodeDefReferenced: NodeDef<any>\n}): Node | undefined => {\n const { survey, record, nodeContext, nodeDefReferenced } = params\n\n // Referenced node is a child of the context node\n if (nodeDefReferenced.parentUuid === nodeContext.nodeDefUuid) {\n return nodeContext\n }\n\n const nodeDefCtx = Surveys.getNodeDefByUuid({ survey, uuid: nodeContext.nodeDefUuid })\n\n const nodeCtxH = Nodes.getHierarchy(nodeContext)\n if (nodeDefCtx.type === NodeDefType.entity) {\n // When nodeDefCtx is entity, expression is type applicableIf (and context always starts from parent)\n nodeCtxH.push(nodeContext.uuid)\n }\n\n if (Surveys.isNodeDefAncestor({ nodeDefAncestor: nodeDefReferenced, nodeDefDescendant: nodeDefCtx })) {\n const nodeDefReferencedH = nodeDefReferenced.meta.h\n const nodeReferencedParentUuid = nodeCtxH[nodeDefReferencedH.length - 1]\n const nodeReferencedParent = record.nodes?.[nodeReferencedParentUuid]\n if (!nodeReferencedParent) {\n throw new Error(`Cannot find parent node of ${nodeDefReferenced.props.name} from ${nodeDefCtx.props.name}`)\n }\n return nodeReferencedParent\n }\n\n const nodeCommonAncestor = getCommonAncestor({\n record,\n nodeCtxHierarchy: nodeCtxH,\n nodeDefCtx,\n nodeDefReferenced,\n })\n if (!nodeCommonAncestor) return undefined\n\n const nodeDefReferencedParent = Surveys.getNodeDefParent({ survey, nodeDef: nodeDefReferenced })\n if (!nodeDefReferencedParent) return undefined\n\n return Records.getDescendant({ record, node: nodeCommonAncestor, nodeDefDescendant: nodeDefReferencedParent })\n}\n\n// Get reachable nodes, i.e. the children of the node's ancestors.\n// NOTE: The root node is excluded, but it _should_ be an entity, so that is fine.\nconst findDescendants = (params: {\n survey: Survey\n record: Record\n nodeContext: Node\n nodeDefReferenced: NodeDef<any>\n}): Node[] => {\n const { survey, record, nodeContext, nodeDefReferenced } = params\n const nodeReferencedParent = getReferencedNodesParent({ survey, record, nodeContext, nodeDefReferenced })\n\n if (nodeReferencedParent) {\n return Records.getChildren(nodeReferencedParent, nodeDefReferenced.uuid)(record)\n }\n return []\n}\n\nexport const NodesFinder = {\n findDescendants,\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thisEvaluator.js","sourceRoot":"","sources":["../../../../src/record/recordExpressionEvaluator/node/thisEvaluator.ts"],"names":[],"mappings":";;;AAAA,mEAAwE;AAExE,8DAA0D;AAC1D,4CAAyC;AAEzC,MAAa,mBAAoB,SAAQ,oBAAsC;IAC7E,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;IAC9C,CAAC;IAEO,aAAa;;QACnB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;QAElE,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,WAAW,CAAA;QAC5B,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,IAAI,CAAA;QAC1B,CAAC;QAED,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,gBAAO,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,EAAE,CAAC,CAAA;YACpF,OAAO,uCAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAtBD,kDAsBC"}
|
|
1
|
+
{"version":3,"file":"thisEvaluator.js","sourceRoot":"","sources":["../../../../src/record/recordExpressionEvaluator/node/thisEvaluator.ts"],"names":[],"mappings":";;;AAAA,mEAAwE;AAExE,8DAA0D;AAC1D,4CAAyC;AAEzC,MAAa,mBAAoB,SAAQ,oBAAsC;IAC7E,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;IAC9C,CAAC;IAEO,aAAa;;QACnB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;QAElE,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,WAAW,CAAA;QAC5B,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,IAAI,CAAA;QAC1B,CAAC;QAED,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,gBAAO,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,EAAE,CAAC,CAAA;YACpF,OAAO,uCAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAtBD,kDAsBC","sourcesContent":["import { ThisEvaluator } from '../../../expression/javascript/node/this'\nimport { RecordExpressionContext } from '../context'\nimport { NodeValueExtractor } from '../nodeValueExtractor'\nimport { Surveys } from '../../../survey'\n\nexport class RecordThisEvaluator extends ThisEvaluator<RecordExpressionContext> {\n evaluate(): Promise<any> {\n return Promise.resolve(this.evaluateValue())\n }\n\n private evaluateValue(): any {\n const { survey, nodeCurrent, evaluateToNode, item } = this.context\n\n if (evaluateToNode) {\n return item ?? nodeCurrent\n }\n\n if (item) {\n return item?.props?.code\n }\n\n if (nodeCurrent?.nodeDefUuid) {\n const nodeDef = Surveys.getNodeDefByUuid({ survey, uuid: nodeCurrent?.nodeDefUuid })\n return NodeValueExtractor.getNodeValue({ survey, node: nodeCurrent, nodeDef })\n }\n return undefined\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeValueExtractor.js","sourceRoot":"","sources":["../../../src/record/recordExpressionEvaluator/nodeValueExtractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nodeValueExtractor.js","sourceRoot":"","sources":["../../../src/record/recordExpressionEvaluator/nodeValueExtractor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Survey, Surveys } from '../../survey'\nimport { NodeDef, NodeDefType } from '../../nodeDef'\nimport { Node } from '../../node'\nimport { NodeValues } from '../../node/nodeValues'\nimport { Dates, Objects } from '../../utils'\nimport { CategoryItem } from '../../category'\nimport { Taxon } from '../../taxonomy'\n\ninterface ExtractorParams {\n survey: Survey\n node: Node\n}\n\ntype Extractor = (params: ExtractorParams) => any\n\nconst extractCategoryItem = (params: ExtractorParams): CategoryItem | undefined => {\n const { survey, node } = params\n const item = node.refData?.categoryItem\n if (item) return item\n const itemUuid = NodeValues.getItemUuid(node)\n return itemUuid ? Surveys.getCategoryItemByUuid({ survey, itemUuid }) : undefined\n}\n\nconst extractTaxon = (params: ExtractorParams): Taxon | undefined => {\n const { survey, node } = params\n const taxon = node.refData?.taxon\n if (taxon) return taxon\n const taxonUuid = NodeValues.getTaxonUuid(node)\n return taxonUuid ? Surveys.getTaxonByUuid({ survey, taxonUuid }) : undefined\n}\n\nconst extractorsByNodeDefType: { [key in NodeDefType]?: Extractor } = {\n [NodeDefType.boolean]: (params: ExtractorParams) => {\n const { node } = params\n return node.value === 'true'\n },\n [NodeDefType.code]: (params: ExtractorParams) => {\n const item = extractCategoryItem(params)\n return item ? item.props.code : null\n },\n [NodeDefType.coordinate]: (params: ExtractorParams) => params.node.value,\n [NodeDefType.date]: (params: ExtractorParams) => {\n const { node } = params\n const [year, month, day] = [\n NodeValues.getDateYear(node),\n NodeValues.getDateMonth(node),\n NodeValues.getDateDay(node),\n ]\n if (Dates.isValidDate(year, month, day)) {\n return node.value\n }\n return null\n },\n [NodeDefType.decimal]: (params: ExtractorParams) => {\n const { node } = params\n return Number(node.value)\n },\n [NodeDefType.entity]: (_params: ExtractorParams) => null,\n [NodeDefType.file]: (params: ExtractorParams) => params.node.value,\n [NodeDefType.integer]: (params: ExtractorParams) => {\n const { node } = params\n return Number(node.value)\n },\n [NodeDefType.taxon]: (params: ExtractorParams) => {\n const taxon = extractTaxon(params)\n return taxon ? taxon.props.code : null\n },\n [NodeDefType.text]: (params: ExtractorParams) => params.node.value,\n [NodeDefType.time]: (params: ExtractorParams) => {\n const { node } = params\n const [hour, minute, seconds] = [\n NodeValues.getTimeHour(node),\n NodeValues.getTimeMinute(node),\n NodeValues.getTimeSeconds(node),\n ]\n if (Dates.isValidTime(hour, minute, seconds)) {\n return node.value\n }\n return null\n },\n}\n\nconst getNodeValue = (params: { survey: Survey; node: Node; nodeDef: NodeDef<any> }) => {\n const { node, nodeDef, survey } = params\n\n if (Objects.isEmpty(node.value)) {\n return null\n }\n const extractor = extractorsByNodeDefType[nodeDef.type as NodeDefType]\n return extractor?.({ survey, node })\n}\n\nexport const NodeValueExtractor = {\n getNodeValue,\n}\n"]}
|