@openforis/arena-core 2.3.31 → 2.3.34
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 +3 -0
- 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 +138 -18
- 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/recordCompletion.js +14 -0
- package/dist/esm/record/_records/recordCompletion.js.map +1 -1
- package/dist/esm/record/_records/recordGetters.js +19 -2
- 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 +66 -15
- 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.js +3 -0
- 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 +86 -0
- package/dist/job/JobBase.js +138 -18
- 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/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 +19 -2
- 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 +66 -15
- 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 +7 -10
|
@@ -101,6 +101,7 @@ const getParentCodeAttribute = (params) => (record) => {
|
|
|
101
101
|
return undefined;
|
|
102
102
|
};
|
|
103
103
|
exports.getParentCodeAttribute = getParentCodeAttribute;
|
|
104
|
+
// ancestors
|
|
104
105
|
const visitAncestorsAndSelf = (node, visitor, stopIfFn) => (record) => {
|
|
105
106
|
let currentNode = node;
|
|
106
107
|
while (currentNode) {
|
|
@@ -132,6 +133,9 @@ const getAncestor = (params) => {
|
|
|
132
133
|
return ancestor;
|
|
133
134
|
};
|
|
134
135
|
exports.getAncestor = getAncestor;
|
|
136
|
+
/**
|
|
137
|
+
* Returns the list of ancestors from the given node to the root entity
|
|
138
|
+
*/
|
|
135
139
|
const getAncestorsAndSelf = (params) => {
|
|
136
140
|
const { record, node } = params;
|
|
137
141
|
const ancestors = [];
|
|
@@ -141,12 +145,15 @@ const getAncestorsAndSelf = (params) => {
|
|
|
141
145
|
return ancestors;
|
|
142
146
|
};
|
|
143
147
|
exports.getAncestorsAndSelf = getAncestorsAndSelf;
|
|
148
|
+
// descendants
|
|
144
149
|
const getDescendantsOrSelf = (params) => {
|
|
145
150
|
const { record, node, nodeDefDescendant } = params;
|
|
146
151
|
if (nodeDefDescendant.uuid === node.nodeDefUuid)
|
|
147
152
|
return [node];
|
|
148
153
|
const nodeDefDescendantFullHierarchy = [...nodeDefDescendant.meta.h, nodeDefDescendant.uuid];
|
|
154
|
+
// 1. get the descendant node defs uuids starting from node nodeDefUuid (not inclusive) down to the specified nodeDefDescendant uuid
|
|
149
155
|
const descendantNodeDefUuids = nodeDefDescendantFullHierarchy.slice(nodeDefDescendantFullHierarchy.indexOf(node.nodeDefUuid) + 1);
|
|
156
|
+
// 2. for every level in the hierarchy, find the children having the nodeDefUuid equal to the current one
|
|
150
157
|
let currentAncestors = [node];
|
|
151
158
|
let currentDescendants = [];
|
|
152
159
|
for (const currentDescendantDefUuid of descendantNodeDefUuids) {
|
|
@@ -156,7 +163,7 @@ const getDescendantsOrSelf = (params) => {
|
|
|
156
163
|
currentAncestors = currentDescendants;
|
|
157
164
|
currentDescendants = [];
|
|
158
165
|
}
|
|
159
|
-
return currentAncestors;
|
|
166
|
+
return currentAncestors; // currentAncestors is equal to the currentDescendants of the last level
|
|
160
167
|
};
|
|
161
168
|
exports.getDescendantsOrSelf = getDescendantsOrSelf;
|
|
162
169
|
const getDescendant = (params) => {
|
|
@@ -177,6 +184,7 @@ const visitDescendantsAndSelf = (params) => {
|
|
|
177
184
|
while (!queue.isEmpty()) {
|
|
178
185
|
const visitedNode = queue.dequeue();
|
|
179
186
|
if (visitor(visitedNode)) {
|
|
187
|
+
// stop if visitor returns true
|
|
180
188
|
return;
|
|
181
189
|
}
|
|
182
190
|
const children = (0, exports.getChildren)(visitedNode)(record);
|
|
@@ -189,9 +197,11 @@ const visitDescendantsAndSelf = (params) => {
|
|
|
189
197
|
while (stack.length > 0) {
|
|
190
198
|
const visitedNode = stack.pop();
|
|
191
199
|
if (visitor(visitedNode)) {
|
|
200
|
+
// stop if visitor returns true
|
|
192
201
|
return;
|
|
193
202
|
}
|
|
194
203
|
const children = (0, exports.getChildren)(visitedNode)(record);
|
|
204
|
+
// add children to stack in reverse order
|
|
195
205
|
for (let index = children.length - 1; index >= 0; index--) {
|
|
196
206
|
const child = children[index];
|
|
197
207
|
stack.push(child);
|
|
@@ -218,12 +228,17 @@ const findDescendantOrSelf = (node, predicate) => (record) => {
|
|
|
218
228
|
exports.findDescendantOrSelf = findDescendantOrSelf;
|
|
219
229
|
const getClosestAncestorNode = (params) => {
|
|
220
230
|
const { record, node, nodeDef, dependentDef } = params;
|
|
231
|
+
// 1a if dependent def is the same as node def, potentially all nodes with
|
|
232
|
+
// nodeDefUuid === dependentDef.uuid in record could be dependent of nodeDef;
|
|
233
|
+
// consider the root node as the closest ancestor node
|
|
221
234
|
if (nodeDef.uuid === dependentDef.uuid) {
|
|
222
235
|
return (0, exports.getRoot)(record);
|
|
223
236
|
}
|
|
237
|
+
// 1 find common ancestor def
|
|
224
238
|
const commonAncestorDefUuid = utils_1.Arrays.last(utils_1.Arrays.intersection(nodeDef.meta.h, dependentDef.meta.h));
|
|
225
239
|
if (!commonAncestorDefUuid)
|
|
226
240
|
return undefined;
|
|
241
|
+
// 2 get ancestor node with common parent def
|
|
227
242
|
return (0, exports.getAncestor)({ record, node, ancestorDefUuid: commonAncestorDefUuid });
|
|
228
243
|
};
|
|
229
244
|
const getEntityKeyNodesByDefUuid = (params) => {
|
|
@@ -274,7 +289,7 @@ const getNodeIndex = (params) => {
|
|
|
274
289
|
const { record, node } = params;
|
|
275
290
|
const parentEntity = (0, exports.getParent)(node)(record);
|
|
276
291
|
if (!parentEntity)
|
|
277
|
-
return 0;
|
|
292
|
+
return 0; // root entity
|
|
278
293
|
const siblings = (0, exports.getChildren)(parentEntity, node.nodeDefUuid)(record);
|
|
279
294
|
return siblings.indexOf(node);
|
|
280
295
|
};
|
|
@@ -354,12 +369,14 @@ const getDependentNodePointers = (params) => {
|
|
|
354
369
|
}
|
|
355
370
|
};
|
|
356
371
|
for (const dependentDef of dependentDefs) {
|
|
372
|
+
// 1 find common ancestor node
|
|
357
373
|
const commonAncestorNode = getClosestAncestorNode({ record, node, nodeDef, dependentDef });
|
|
358
374
|
if (!commonAncestorNode)
|
|
359
375
|
continue;
|
|
360
376
|
const nodeDefDependentParent = survey_1.Surveys.getNodeDefParent({ survey, nodeDef: dependentDef });
|
|
361
377
|
if (!nodeDefDependentParent)
|
|
362
378
|
throw new error_1.SystemError('record.nodes.dependents.dependencyOnRootFound');
|
|
379
|
+
// 2 find descendant nodes of common parent node with nodeDefUuid = dependentDef uuid
|
|
363
380
|
const dependentContextNodes = (0, exports.getDescendantsOrSelf)({
|
|
364
381
|
record,
|
|
365
382
|
node: commonAncestorNode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordGetters.js","sourceRoot":"","sources":["../../../src/record/_records/recordGetters.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recordGetters.js","sourceRoot":"","sources":["../../../src/record/_records/recordGetters.ts"],"names":[],"mappings":"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","sourcesContent":["import { Dictionary, TraverseMethod } from '../../common'\nimport { SystemError } from '../../error'\nimport { Node, NodePointer, Nodes, NodesMap } from '../../node'\nimport { NodeValues } from '../../node/nodeValues'\nimport { NodeDef, NodeDefCode, NodeDefCodeProps, NodeDefProps, NodeDefs, NodeDefType } from '../../nodeDef'\nimport { defaultCycle, Surveys } from '../../survey'\nimport { Survey, SurveyDependencyType } from '../../survey/survey'\nimport { Arrays, Queue } from '../../utils'\nimport { Record, RECORD_STEP_DEFAULT } from '../record'\nimport { RecordStepAnalysisCode } from '../recordStep'\nimport { RecordNodesIndexReader } from './recordNodesIndexReader'\n\nexport const getCycle = (record: Record): string => record.cycle ?? defaultCycle\n\nexport const getNodes = (record: Record): Dictionary<Node> => record.nodes ?? {}\n\nexport const getNodesArray = (record: Record): Node[] => Object.values(getNodes(record))\n\nexport const getNodeByUuid =\n (uuid: string) =>\n (record: Record): Node | undefined =>\n record.nodes?.[uuid]\n\nexport const getNodesByUuids =\n (uuids: string[]) =>\n (record: Record): Node[] =>\n uuids.map((uuid: string) => getNodeByUuid(uuid)(record)) as Node[]\n\nexport const getRoot = (record: Record): Node | undefined => {\n const rootUuid = record._nodesIndex ? RecordNodesIndexReader.getNodeRootUuid(record._nodesIndex) : null\n if (rootUuid) {\n return getNodeByUuid(rootUuid)(record)\n }\n return getNodesArray(record).find((node) => !node.parentUuid)\n}\n\nexport const getChildren =\n (parentNode: Node, childDefUuid?: string) =>\n (record: Record): Node[] => {\n if (record._nodesIndex) {\n const childrenUuids = childDefUuid\n ? RecordNodesIndexReader.getNodeUuidsByParentAndChildDef({\n parentNodeUuid: parentNode.uuid,\n childDefUuid,\n })(record._nodesIndex)\n : RecordNodesIndexReader.getNodeUuidsByParent(parentNode.uuid)(record._nodesIndex)\n return getNodesByUuids(childrenUuids)(record)\n }\n return getNodesArray(record).filter(\n (node) => node.parentUuid === parentNode.uuid && (!childDefUuid || node.nodeDefUuid == childDefUuid)\n )\n }\n\nexport const getChild =\n (parentNode: Node, childDefUuid: string) =>\n (record: Record): Node => {\n const children = getChildren(parentNode, childDefUuid)(record)\n const errorParams = { childDefUuid, parentNodeUuid: parentNode.uuid, recordUuid: record.uuid }\n if (children.length === 1) {\n return children[0]\n }\n if (children.length > 1) {\n throw new SystemError('systemError.record.multipleNodesFound', errorParams)\n }\n throw new SystemError('systemError.record.childNotFound', errorParams)\n }\n\nexport const getParent =\n (node: Node) =>\n (record: Record): Node | undefined =>\n node.parentUuid ? getNodeByUuid(node.parentUuid)(record) : undefined\n\nexport const getNodesByDefUuid =\n (nodeDefUuid: string) =>\n (record: Record): Node[] => {\n if (record._nodesIndex) {\n const nodeUuids = RecordNodesIndexReader.getNodeUuidsByDef(nodeDefUuid)(record._nodesIndex)\n return getNodesByUuids(nodeUuids)(record)\n }\n return getNodesArray(record).filter((node) => node.nodeDefUuid === nodeDefUuid)\n }\n\nconst isNodeFlagTrue =\n (isChildFlagTrue: (parent: Node, nodeDefUuid: string) => boolean) =>\n (params: { record: Record; node: Node }): boolean => {\n const { record, node } = params\n const ancestorsAndSelf = getAncestorsAndSelf({ record, node })\n for (let i = 0; i < ancestorsAndSelf.length - 1; i++) {\n const child = ancestorsAndSelf[i]\n const parent = ancestorsAndSelf[i + 1]\n if (!isChildFlagTrue(parent, child.nodeDefUuid)) return false\n }\n return true\n }\n\nexport const isNodeApplicable = isNodeFlagTrue((parent, nodeDefUuid) => Nodes.isChildApplicable(parent, nodeDefUuid))\nexport const isNodeEditable = isNodeFlagTrue((parent, nodeDefUuid) => Nodes.isChildEditable(parent, nodeDefUuid))\nexport const isNodeVisible = isNodeFlagTrue((parent, nodeDefUuid) => Nodes.isChildVisible(parent, nodeDefUuid))\n\nexport const getDependentCodeAttributes =\n (node: Node) =>\n (record: Record): Node[] => {\n if (record._nodesIndex) {\n const nodeUuids = RecordNodesIndexReader.getNodeCodeDependentUuids(node.uuid)(record._nodesIndex)\n return getNodesByUuids(nodeUuids)(record)\n }\n throw new SystemError('record.nodesIndexNotInitialized')\n }\n\nexport const getParentCodeAttribute =\n (params: { parentNode: Node; nodeDef: NodeDefCode }) =>\n (record: Record): Node | undefined => {\n const { parentNode, nodeDef } = params\n\n const parentCodeDefUuid = NodeDefs.getParentCodeDefUuid(nodeDef)\n if (!parentCodeDefUuid) return undefined\n\n const ancestors = getAncestorsAndSelf({ record, node: parentNode })\n for (const ancestor of ancestors) {\n const children = getChildren(ancestor, parentCodeDefUuid)(record)\n if (children.length === 1) {\n return children[0]\n }\n }\n return undefined\n }\n\n// ancestors\nexport const visitAncestorsAndSelf =\n (node: Node, visitor: (node: Node) => void, stopIfFn?: () => boolean) =>\n (record: Record): void => {\n let currentNode: Node | undefined = node\n while (currentNode) {\n visitor(currentNode)\n if (stopIfFn?.()) break\n currentNode = getParent(currentNode)(record)\n }\n }\n\nexport const findAncestor =\n (node: Node, predicate: (node: Node) => boolean) =>\n (record: Record): Node | undefined => {\n let result: Node | undefined = undefined\n visitAncestorsAndSelf(\n node,\n (visitedNode) => {\n if (predicate(visitedNode)) {\n result = visitedNode\n }\n },\n () => !!result\n )(record)\n return result\n }\n\nexport const getAncestor = (params: { record: Record; node: Node; ancestorDefUuid: string }): Node | undefined => {\n const { record, node, ancestorDefUuid } = params\n if (node.nodeDefUuid === ancestorDefUuid) return node\n\n let ancestor = getParent(node)(record)\n while (ancestor && ancestor.nodeDefUuid !== ancestorDefUuid) {\n ancestor = getParent(ancestor)(record)\n }\n return ancestor\n}\n\n/**\n * Returns the list of ancestors from the given node to the root entity\n */\nexport const getAncestorsAndSelf = (params: { record: Record; node: Node }): Array<Node> => {\n const { record, node } = params\n const ancestors: Array<Node> = []\n visitAncestorsAndSelf(node, (currentNode) => {\n ancestors.push(currentNode)\n })(record)\n return ancestors\n}\n\n// descendants\n\nexport const getDescendantsOrSelf = (params: {\n record: Record\n node: Node\n nodeDefDescendant: NodeDef<any>\n}): Node[] => {\n const { record, node, nodeDefDescendant } = params\n\n if (nodeDefDescendant.uuid === node.nodeDefUuid) return [node]\n\n const nodeDefDescendantFullHierarchy = [...nodeDefDescendant.meta.h, nodeDefDescendant.uuid]\n\n // 1. get the descendant node defs uuids starting from node nodeDefUuid (not inclusive) down to the specified nodeDefDescendant uuid\n const descendantNodeDefUuids = nodeDefDescendantFullHierarchy.slice(\n nodeDefDescendantFullHierarchy.indexOf(node.nodeDefUuid) + 1\n )\n // 2. for every level in the hierarchy, find the children having the nodeDefUuid equal to the current one\n let currentAncestors = [node]\n let currentDescendants: Node[] = []\n for (const currentDescendantDefUuid of descendantNodeDefUuids) {\n for (const currentAncestor of currentAncestors) {\n currentDescendants.push(...getChildren(currentAncestor, currentDescendantDefUuid)(record))\n }\n currentAncestors = currentDescendants\n currentDescendants = []\n }\n return currentAncestors // currentAncestors is equal to the currentDescendants of the last level\n}\n\nexport const getDescendant = (params: { record: Record; node: Node; nodeDefDescendant: NodeDef<any> }): Node => {\n const { record, node, nodeDefDescendant } = params\n\n return getDescendantsOrSelf({ record, node, nodeDefDescendant })[0]\n}\n\nexport const isDescendantOf = (params: { node: Node; ancestor: Node }): boolean => {\n const { node, ancestor } = params\n return Nodes.getHierarchy(node).includes(ancestor.uuid)\n}\n\nexport const visitDescendantsAndSelf = (params: {\n record: Record\n node: Node\n visitor: (node: Node) => boolean | void\n traverseMethod?: TraverseMethod\n}): void => {\n const { record, node, visitor, traverseMethod = TraverseMethod.bfs } = params\n\n if (traverseMethod === TraverseMethod.bfs) {\n const queue = new Queue()\n\n queue.enqueue(node)\n\n while (!queue.isEmpty()) {\n const visitedNode = queue.dequeue()\n\n if (visitor(visitedNode)) {\n // stop if visitor returns true\n return\n }\n\n const children = getChildren(visitedNode)(record)\n queue.enqueueItems(children)\n }\n } else {\n const stack = []\n\n stack.push(node)\n\n while (stack.length > 0) {\n const visitedNode = stack.pop() as Node\n\n if (visitor(visitedNode)) {\n // stop if visitor returns true\n return\n }\n\n const children = getChildren(visitedNode)(record)\n\n // add children to stack in reverse order\n for (let index = children.length - 1; index >= 0; index--) {\n const child = children[index]\n stack.push(child)\n }\n }\n }\n}\n\nexport const findDescendantOrSelf =\n (node: Node, predicate: (node: Node) => boolean) =>\n (record: Record): Node | undefined => {\n let found = undefined\n\n visitDescendantsAndSelf({\n record,\n node,\n visitor: (currentNode) => {\n if (predicate(currentNode)) {\n found = currentNode\n return true\n }\n return false\n },\n })\n return found\n }\n\nconst getClosestAncestorNode = (params: {\n record: Record\n node: Node\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n dependentDef: NodeDef<NodeDefType, NodeDefProps>\n}): Node | undefined => {\n const { record, node, nodeDef, dependentDef } = params\n\n // 1a if dependent def is the same as node def, potentially all nodes with\n // nodeDefUuid === dependentDef.uuid in record could be dependent of nodeDef;\n // consider the root node as the closest ancestor node\n if (nodeDef.uuid === dependentDef.uuid) {\n return getRoot(record)\n }\n // 1 find common ancestor def\n const commonAncestorDefUuid = Arrays.last(Arrays.intersection(nodeDef.meta.h, dependentDef.meta.h))\n if (!commonAncestorDefUuid) return undefined\n\n // 2 get ancestor node with common parent def\n return getAncestor({ record, node, ancestorDefUuid: commonAncestorDefUuid })\n}\n\ntype EntityKeyNodesGetterParams = {\n survey: Survey\n cycle?: string\n record: Record\n entity: Node\n keyDefs?: NodeDef<NodeDefType, NodeDefProps>[]\n}\n\nexport const getEntityKeyNodesByDefUuid = (params: EntityKeyNodesGetterParams): NodesMap => {\n const { survey, cycle, record, entity, keyDefs } = params\n const nodeDef = Surveys.getNodeDefByUuid({ survey, uuid: entity.nodeDefUuid })\n const nodeDefKeys = keyDefs ?? Surveys.getNodeDefKeys({ survey, cycle, nodeDef })\n return nodeDefKeys.reduce((acc: NodesMap, nodeDefKey) => {\n const nodeKey = getDescendant({ record, node: entity, nodeDefDescendant: nodeDefKey })\n acc[nodeDefKey.uuid] = nodeKey\n return acc\n }, {})\n}\n\nexport const getEntityKeyNodes = (params: EntityKeyNodesGetterParams): Node[] =>\n Object.values(getEntityKeyNodesByDefUuid(params))\n\nexport const getEntityKeyValuesByDefUuid = (params: EntityKeyNodesGetterParams): Dictionary<any> => {\n const keyNodesByDefUuid = getEntityKeyNodesByDefUuid(params)\n return Object.entries(keyNodesByDefUuid).reduce((acc: Dictionary<any>, [uuid, keyNode]) => {\n acc[uuid] = keyNode?.value\n return acc\n }, {})\n}\n\nexport const getEntityKeyValues = (params: EntityKeyNodesGetterParams): any[] =>\n Object.values(getEntityKeyValuesByDefUuid(params))\n\nexport const getEntitySiblings = (params: { record: Record; entity: Node; includeSelf?: boolean }) => {\n const { record, entity, includeSelf = false } = params\n const parentEntity = getParent(entity)(record)\n if (!parentEntity) return []\n const siblingEntities = getChildren(parentEntity, entity.nodeDefUuid)(record)\n return includeSelf ? siblingEntities : siblingEntities.filter((sibling) => !Nodes.areEqual(sibling, entity))\n}\n\nexport const getAttributeSiblings = (params: {\n record: Record\n node: Node\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}) => {\n const { record, node, nodeDef } = params\n const parentEntity = getParent(node)(record)\n if (!parentEntity) return []\n const siblingParentEntities = getEntitySiblings({ record, entity: parentEntity })\n return siblingParentEntities.reduce((siblingsAcc: Node[], siblingEntity) => {\n siblingsAcc.push(...getChildren(siblingEntity, nodeDef.uuid)(record))\n return siblingsAcc\n }, [])\n}\n\nexport const getNodeIndex = (params: { record: Record; node: Node }) => {\n const { record, node } = params\n const parentEntity = getParent(node)(record)\n if (!parentEntity) return 0 // root entity\n const siblings = getChildren(parentEntity, node.nodeDefUuid)(record)\n return siblings.indexOf(node)\n}\n\nexport const findEntityByKeyValues = (params: {\n survey: Survey\n cycle: string\n record: Record\n parentEntity: Node\n entityDefUuid: string\n keyValuesByDefUuid: Dictionary<any>\n}): Node | undefined => {\n const { survey, cycle, record, parentEntity, entityDefUuid, keyValuesByDefUuid } = params\n const entityDef = Surveys.getNodeDefByUuid({ survey, uuid: entityDefUuid })\n const siblingEntities = getChildren(parentEntity, entityDefUuid)(record)\n if (NodeDefs.isSingle(entityDef)) {\n return siblingEntities[0]\n }\n const keyDefs = Surveys.getNodeDefKeys({ survey, cycle, nodeDef: entityDef })\n\n return siblingEntities.find((siblingEntity) => {\n const siblingEntityKeyValuesByDefUuid = getEntityKeyValuesByDefUuid({\n survey,\n record,\n entity: siblingEntity,\n keyDefs,\n })\n return keyDefs.every((keyDef) => {\n const keyValue = siblingEntityKeyValuesByDefUuid[keyDef.uuid]\n const keyValueSearch = keyValuesByDefUuid[keyDef.uuid]\n return NodeValues.isValueEqual({\n survey,\n nodeDef: keyDef,\n value: keyValue,\n valueSearch: keyValueSearch,\n })\n })\n })\n}\n\nexport const findEntityWithSameKeysInAnotherRecord = (params: {\n survey: Survey\n cycle: string\n entityUuid: string\n record: Record\n recordOther: Record\n}): Node | undefined => {\n const { survey, cycle, entityUuid, record, recordOther } = params\n const entity = getNodeByUuid(entityUuid)(record)\n if (!entity) return undefined\n\n let otherRecordCurrentParentEntity = getRoot(recordOther)\n if (!otherRecordCurrentParentEntity) return undefined\n\n const entityAncestorsAndSelf = getAncestorsAndSelf({\n record,\n node: entity,\n })\n const ancestorDefUuidsAndKeys = entityAncestorsAndSelf.map((ancestor) => ({\n entityDefUuid: ancestor.nodeDefUuid,\n keyValuesByDefUuid: getEntityKeyValuesByDefUuid({\n survey,\n record,\n entity: ancestor,\n }),\n }))\n\n const ancestorDefUuidsAndKeysToVisit = [...ancestorDefUuidsAndKeys].reverse()\n\n for (let index = 1; otherRecordCurrentParentEntity && index < ancestorDefUuidsAndKeysToVisit.length; index++) {\n const { entityDefUuid, keyValuesByDefUuid } = ancestorDefUuidsAndKeysToVisit[index]\n otherRecordCurrentParentEntity = findEntityByKeyValues({\n survey,\n cycle,\n record: recordOther,\n parentEntity: otherRecordCurrentParentEntity,\n entityDefUuid,\n keyValuesByDefUuid,\n })\n }\n return otherRecordCurrentParentEntity\n}\n\nexport const getDependentNodePointers = (params: {\n survey: Survey\n record: Record\n node: Node\n dependencyType: SurveyDependencyType\n includeSelf?: boolean\n filterFn?: (nodePointer: NodePointer) => boolean\n}) => {\n const { survey, record, node, dependencyType, includeSelf = false, filterFn = null } = params\n const nodeDefUuid = node.nodeDefUuid\n const nodeDef = Surveys.getNodeDefByUuid({ survey, uuid: nodeDefUuid })\n const dependentDefs = Surveys.getNodeDefDependents({ survey, nodeDefUuid, dependencyType })\n const nodePointers: Array<NodePointer> = []\n\n const addToNodePointers = (nodePointer: NodePointer): void => {\n if (filterFn === null || filterFn(nodePointer)) {\n nodePointers.push(nodePointer)\n }\n }\n\n for (const dependentDef of dependentDefs) {\n // 1 find common ancestor node\n const commonAncestorNode = getClosestAncestorNode({ record, node, nodeDef, dependentDef })\n if (!commonAncestorNode) continue\n\n const nodeDefDependentParent = Surveys.getNodeDefParent({ survey, nodeDef: dependentDef })\n if (!nodeDefDependentParent) throw new SystemError('record.nodes.dependents.dependencyOnRootFound')\n\n // 2 find descendant nodes of common parent node with nodeDefUuid = dependentDef uuid\n const dependentContextNodes = getDescendantsOrSelf({\n record,\n node: commonAncestorNode,\n nodeDefDescendant: nodeDefDependentParent,\n })\n\n for (const dependentContextNode of dependentContextNodes) {\n addToNodePointers({\n nodeCtx: dependentContextNode,\n nodeDef: dependentDef,\n })\n }\n }\n if (includeSelf) {\n const parentNode = getParent(node)(record)\n if (parentNode) {\n addToNodePointers({\n nodeCtx: parentNode,\n nodeDef,\n })\n }\n }\n\n return nodePointers\n}\n\nexport const getAncestorCodePath = (params: {\n survey: Survey\n record: Record\n parentNode: Node\n nodeDef: NodeDef<NodeDefType.code, NodeDefCodeProps>\n}): string[] => {\n const { record, parentNode, nodeDef, survey } = params\n\n const getCodeAttributeItemCode = (codeAttribute: Node | undefined): string => {\n const codeItemUuid = codeAttribute ? NodeValues.getItemUuid(codeAttribute) : undefined\n if (!codeItemUuid) return ''\n const item = Surveys.getCategoryItemByUuid({ survey, itemUuid: codeItemUuid })\n return item?.props.code ?? ''\n }\n\n const codePaths = []\n let currentParentCodeAttribute = getParentCodeAttribute({ parentNode, nodeDef })(record)\n\n while (currentParentCodeAttribute) {\n const ancestorItemCode = getCodeAttributeItemCode(currentParentCodeAttribute)\n codePaths.unshift(ancestorItemCode)\n const ancestorCodeDef = Surveys.getNodeDefByUuid({\n survey,\n uuid: currentParentCodeAttribute.nodeDefUuid,\n }) as NodeDefCode\n currentParentCodeAttribute = getParentCodeAttribute({ parentNode, nodeDef: ancestorCodeDef })(record)\n }\n return codePaths\n}\n\nexport const getCategoryItemUuid = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType.code, NodeDefCodeProps>\n record: Record\n parentNode: Node\n code: string\n}): string | undefined => {\n const { survey, nodeDef, record, parentNode, code } = params\n const categoryUuid = nodeDef.props.categoryUuid\n\n const codePaths = [...getAncestorCodePath({ survey, record, parentNode, nodeDef }), code]\n\n const item = Surveys.getCategoryItemByCodePaths({ survey, categoryUuid, codePaths })\n\n return item?.uuid\n}\n\nexport const isNodeFilledByUser =\n (node: Node) =>\n (record: Record): boolean =>\n !!findDescendantOrSelf(node, (visitedNode) => Nodes.hasUserInputValue(visitedNode))(record)\n\nexport const isNodeEmpty =\n (node: Node) =>\n (record: Record): boolean =>\n !isNodeFilledByUser(node)(record)\n\nexport const isEmpty = (record: Record): boolean => {\n const rootNode = getRoot(record)\n return rootNode ? isNodeEmpty(rootNode)(record) : true\n}\n\nexport const getStep = (record: Record): string => record.step ?? RECORD_STEP_DEFAULT\n\nexport const isInAnalysisStep = (record: Record): boolean => getStep(record) === RecordStepAnalysisCode\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordNodesIndexReader.js","sourceRoot":"","sources":["../../../src/record/_records/recordNodesIndexReader.ts"],"names":[],"mappings":";;;AAEA,MAAM,eAAe,GAAG,CAAC,KAAuB,EAAsB,EAAE,CAAC,KAAK,CAAC,YAAY,CAAA;AAE3F,MAAM,iBAAiB,GACrB,CAAC,WAAmB,EAAE,EAAE,CACxB,CAAC,KAAuB,EAAY,EAAE,eACpC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,MAAA,KAAK,CAAC,UAAU,0CAAG,WAAW,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAA;AAEtD,MAAM,+BAA+B,GACnC,CAAC,MAAwD,EAAE,EAAE,CAC7D,CAAC,KAAuB,EAAY,EAAE;;IACpC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAA,MAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAG,cAAc,CAAC,0CAAG,YAAY,CAAC,mCAAI,EAAE,CAAC,CAAA;AAC5F,CAAC,CAAA;AAEH,MAAM,oBAAoB,GACxB,CAAC,cAAsB,EAAE,EAAE,CAC3B,CAAC,KAAuB,EAAY,EAAE;;IACpC,MAAM,2BAA2B,GAAG,MAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAG,cAAc,CAAC,mCAAI,EAAE,CAAA;IAC1F,OAAO,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;AAC1G,CAAC,CAAA;AAEH,MAAM,yBAAyB,GAC7B,CAAC,QAAgB,EAAE,EAAE,CACrB,CAAC,KAAuB,EAAY,EAAE,eACpC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,MAAA,KAAK,CAAC,kBAAkB,0CAAG,QAAQ,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAA;AAE9C,QAAA,sBAAsB,GAAG;IACpC,eAAe;IACf,iBAAiB;IACjB,+BAA+B;IAC/B,oBAAoB;IACpB,yBAAyB;CAC1B,CAAA"}
|
|
1
|
+
{"version":3,"file":"recordNodesIndexReader.js","sourceRoot":"","sources":["../../../src/record/_records/recordNodesIndexReader.ts"],"names":[],"mappings":";;;AAEA,MAAM,eAAe,GAAG,CAAC,KAAuB,EAAsB,EAAE,CAAC,KAAK,CAAC,YAAY,CAAA;AAE3F,MAAM,iBAAiB,GACrB,CAAC,WAAmB,EAAE,EAAE,CACxB,CAAC,KAAuB,EAAY,EAAE,eACpC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,MAAA,KAAK,CAAC,UAAU,0CAAG,WAAW,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAA;AAEtD,MAAM,+BAA+B,GACnC,CAAC,MAAwD,EAAE,EAAE,CAC7D,CAAC,KAAuB,EAAY,EAAE;;IACpC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAC/C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAA,MAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAG,cAAc,CAAC,0CAAG,YAAY,CAAC,mCAAI,EAAE,CAAC,CAAA;AAC5F,CAAC,CAAA;AAEH,MAAM,oBAAoB,GACxB,CAAC,cAAsB,EAAE,EAAE,CAC3B,CAAC,KAAuB,EAAY,EAAE;;IACpC,MAAM,2BAA2B,GAAG,MAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAG,cAAc,CAAC,mCAAI,EAAE,CAAA;IAC1F,OAAO,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;AAC1G,CAAC,CAAA;AAEH,MAAM,yBAAyB,GAC7B,CAAC,QAAgB,EAAE,EAAE,CACrB,CAAC,KAAuB,EAAY,EAAE,eACpC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,MAAA,KAAK,CAAC,kBAAkB,0CAAG,QAAQ,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAA;AAE9C,QAAA,sBAAsB,GAAG;IACpC,eAAe;IACf,iBAAiB;IACjB,+BAA+B;IAC/B,oBAAoB;IACpB,yBAAyB;CAC1B,CAAA","sourcesContent":["import { RecordNodesIndex } from '../record'\n\nconst getNodeRootUuid = (index: RecordNodesIndex): string | undefined => index.nodeRootUuid\n\nconst getNodeUuidsByDef =\n (nodeDefUuid: string) =>\n (index: RecordNodesIndex): string[] =>\n Object.keys(index.nodesByDef?.[nodeDefUuid] ?? {})\n\nconst getNodeUuidsByParentAndChildDef =\n (params: { parentNodeUuid: string; childDefUuid: string }) =>\n (index: RecordNodesIndex): string[] => {\n const { parentNodeUuid, childDefUuid } = params\n return Object.keys(index.nodesByParentAndChildDef?.[parentNodeUuid]?.[childDefUuid] ?? {})\n }\n\nconst getNodeUuidsByParent =\n (parentNodeUuid: string) =>\n (index: RecordNodesIndex): string[] => {\n const nodesPresenceByChildDefUuid = index.nodesByParentAndChildDef?.[parentNodeUuid] ?? {}\n return Object.values(nodesPresenceByChildDefUuid).flatMap((nodesPresence) => Object.keys(nodesPresence))\n }\n\nconst getNodeCodeDependentUuids =\n (nodeUuid: string) =>\n (index: RecordNodesIndex): string[] =>\n Object.keys(index.nodeCodeDependents?.[nodeUuid] ?? {})\n\nexport const RecordNodesIndexReader = {\n getNodeRootUuid,\n getNodeUuidsByDef,\n getNodeUuidsByParentAndChildDef,\n getNodeUuidsByParent,\n getNodeCodeDependentUuids,\n}\n"]}
|
|
@@ -15,6 +15,7 @@ const sortNodesByIdOrCreationDate = (nodeA, nodeB) => {
|
|
|
15
15
|
return -1;
|
|
16
16
|
if (!nodeB.parentUuid)
|
|
17
17
|
return 1;
|
|
18
|
+
// read the hierarchy length directly: Nodes.getHierarchy copies the array on every comparison
|
|
18
19
|
const hierarchyDepthA = (_c = (_b = (_a = nodeA.meta) === null || _a === void 0 ? void 0 : _a.h) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0;
|
|
19
20
|
const hierarchyDepthB = (_f = (_e = (_d = nodeB.meta) === null || _d === void 0 ? void 0 : _d.h) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 0;
|
|
20
21
|
const depthDiff = hierarchyDepthA - hierarchyDepthB;
|
|
@@ -26,6 +27,11 @@ const sortNodesByIdOrCreationDate = (nodeA, nodeB) => {
|
|
|
26
27
|
return nodeA.dateCreated.localeCompare(nodeB.dateCreated);
|
|
27
28
|
return 0;
|
|
28
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* Mutable copy of a nodes index, used to apply many changes to it at once.
|
|
32
|
+
* When sideEffect is false, every object along a modified path is copied only the first time it is modified
|
|
33
|
+
* (copy on write): applying N changes costs one copy of each touched object instead of N copies.
|
|
34
|
+
*/
|
|
29
35
|
class NodesIndexDraft {
|
|
30
36
|
constructor(index, sideEffect) {
|
|
31
37
|
this.copiedObjects = new Set();
|
|
@@ -58,6 +64,9 @@ class NodesIndexDraft {
|
|
|
58
64
|
}
|
|
59
65
|
current[path.at(-1)] = value;
|
|
60
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Deletes the value at the specified path, then removes the objects along the path left empty.
|
|
69
|
+
*/
|
|
61
70
|
delete(path) {
|
|
62
71
|
const containers = [this.index];
|
|
63
72
|
let current = this.index;
|
|
@@ -78,12 +87,16 @@ class NodesIndexDraft {
|
|
|
78
87
|
var _a, _b;
|
|
79
88
|
const { uuid: nodeUuid, nodeDefUuid, parentUuid } = node;
|
|
80
89
|
if (parentUuid) {
|
|
90
|
+
// nodes by parent and child def uuid
|
|
81
91
|
this.set([keys.nodesByParentAndChildDef, parentUuid, nodeDefUuid, nodeUuid], true);
|
|
82
92
|
}
|
|
83
93
|
else {
|
|
94
|
+
// root entity index
|
|
84
95
|
this.index.nodeRootUuid = nodeUuid;
|
|
85
96
|
}
|
|
97
|
+
// nodes by def uuid
|
|
86
98
|
this.set([keys.nodesByDef, nodeDefUuid, nodeUuid], true);
|
|
99
|
+
// code dependents
|
|
87
100
|
for (const ancestorCodeAttributeUuid of (_b = (_a = node.meta) === null || _a === void 0 ? void 0 : _a.hCode) !== null && _b !== void 0 ? _b : []) {
|
|
88
101
|
this.set([keys.nodeCodeDependents, ancestorCodeAttributeUuid, nodeUuid], true);
|
|
89
102
|
}
|
|
@@ -97,6 +110,7 @@ class NodesIndexDraft {
|
|
|
97
110
|
delete this.index.nodeRootUuid;
|
|
98
111
|
}
|
|
99
112
|
this.delete([keys.nodesByDef, nodeDefUuid, nodeUuid]);
|
|
113
|
+
// code dependents
|
|
100
114
|
for (const ancestorCodeAttributeUuid of node_1.Nodes.getHierarchyCode(node)) {
|
|
101
115
|
this.delete([keys.nodeCodeDependents, ancestorCodeAttributeUuid, nodeUuid]);
|
|
102
116
|
}
|
|
@@ -130,6 +144,9 @@ const _isSameHierarchyCode = (nodeA, nodeB) => {
|
|
|
130
144
|
const hCodeB = (_d = (_c = nodeB.meta) === null || _c === void 0 ? void 0 : _c.hCode) !== null && _d !== void 0 ? _d : [];
|
|
131
145
|
return hCodeA.length === hCodeB.length && hCodeA.every((uuid, index) => uuid === hCodeB[index]);
|
|
132
146
|
};
|
|
147
|
+
/**
|
|
148
|
+
* Returns true if the index entries of the specified node would not change when the node replaces the previous version of it.
|
|
149
|
+
*/
|
|
133
150
|
const isNodeIndexUnchanged = (params) => {
|
|
134
151
|
var _a, _b, _c, _d, _e;
|
|
135
152
|
const { index, node, nodePrev } = params;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordNodesIndexUpdater.js","sourceRoot":"","sources":["../../../src/record/_records/recordNodesIndexUpdater.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recordNodesIndexUpdater.js","sourceRoot":"","sources":["../../../src/record/_records/recordNodesIndexUpdater.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node, Nodes } from '../../node'\nimport { Objects } from '../../utils'\nimport { Record, RecordNodesIndex } from '../record'\n\nconst keys = {\n nodeRootUuid: 'nodeRootUuid',\n nodesByParentAndChildDef: 'nodesByParentAndChildDef',\n nodesByDef: 'nodesByDef',\n nodeCodeDependents: 'nodeCodeDependents',\n}\n\nconst sortNodesByIdOrCreationDate = (nodeA: Node, nodeB: Node): number => {\n if (!nodeA.parentUuid) return -1\n if (!nodeB.parentUuid) return 1\n // read the hierarchy length directly: Nodes.getHierarchy copies the array on every comparison\n const hierarchyDepthA = nodeA.meta?.h?.length ?? 0\n const hierarchyDepthB = nodeB.meta?.h?.length ?? 0\n const depthDiff = hierarchyDepthA - hierarchyDepthB\n if (depthDiff !== 0) return depthDiff\n if (nodeA.id && nodeB.id) return nodeA.id - nodeB.id\n if (nodeA.dateCreated && nodeB.dateCreated) return nodeA.dateCreated.localeCompare(nodeB.dateCreated)\n return 0\n}\n\n/**\n * Mutable copy of a nodes index, used to apply many changes to it at once.\n * When sideEffect is false, every object along a modified path is copied only the first time it is modified\n * (copy on write): applying N changes costs one copy of each touched object instead of N copies.\n */\nclass NodesIndexDraft {\n readonly index: RecordNodesIndex\n private readonly sideEffect: boolean\n private readonly copiedObjects = new Set<object>()\n\n constructor(index: RecordNodesIndex, sideEffect: boolean) {\n this.sideEffect = sideEffect\n this.index = sideEffect ? index : this.markCopied({ ...index })\n }\n\n private markCopied<T extends object>(obj: T): T {\n this.copiedObjects.add(obj)\n return obj\n }\n\n private getWritableChild(parent: any, key: string, createIfMissing: boolean): any {\n const child = parent[key]\n if (child === undefined || child === null) {\n if (!createIfMissing) return undefined\n const childCreated = this.markCopied({})\n parent[key] = childCreated\n return childCreated\n }\n if (this.sideEffect || this.copiedObjects.has(child)) return child\n const childCopy = this.markCopied({ ...child })\n parent[key] = childCopy\n return childCopy\n }\n\n set(path: string[], value: any): void {\n let current: any = this.index\n for (let i = 0; i < path.length - 1; i++) {\n current = this.getWritableChild(current, path[i], true)\n }\n current[path.at(-1)!] = value\n }\n\n /**\n * Deletes the value at the specified path, then removes the objects along the path left empty.\n */\n delete(path: string[]): void {\n const containers: any[] = [this.index]\n let current: any = this.index\n for (let i = 0; i < path.length - 1; i++) {\n if (current[path[i]] === undefined) return\n current = this.getWritableChild(current, path[i], false)\n containers.push(current)\n }\n delete current[path.at(-1)!]\n for (let i = path.length - 2; i >= 0; i--) {\n if (!Objects.isEmpty(containers[i + 1])) break\n delete containers[i][path[i]]\n }\n }\n\n addNode(node: Node): void {\n const { uuid: nodeUuid, nodeDefUuid, parentUuid } = node\n if (parentUuid) {\n // nodes by parent and child def uuid\n this.set([keys.nodesByParentAndChildDef, parentUuid, nodeDefUuid, nodeUuid], true)\n } else {\n // root entity index\n this.index.nodeRootUuid = nodeUuid\n }\n // nodes by def uuid\n this.set([keys.nodesByDef, nodeDefUuid, nodeUuid], true)\n // code dependents\n for (const ancestorCodeAttributeUuid of node.meta?.hCode ?? []) {\n this.set([keys.nodeCodeDependents, ancestorCodeAttributeUuid, nodeUuid], true)\n }\n }\n\n removeNode(node: Node): void {\n const { uuid: nodeUuid, parentUuid, nodeDefUuid } = node\n if (parentUuid) {\n this.delete([keys.nodesByParentAndChildDef, parentUuid, nodeDefUuid, nodeUuid])\n } else {\n delete this.index.nodeRootUuid\n }\n this.delete([keys.nodesByDef, nodeDefUuid, nodeUuid])\n // code dependents\n for (const ancestorCodeAttributeUuid of Nodes.getHierarchyCode(node)) {\n this.delete([keys.nodeCodeDependents, ancestorCodeAttributeUuid, nodeUuid])\n }\n this.delete([keys.nodeCodeDependents, nodeUuid])\n }\n}\n\nconst addNodes =\n (nodes: { [key: string]: Node }, sideEffect = false, sortNodes = false) =>\n (index: RecordNodesIndex): RecordNodesIndex => {\n const draft = new NodesIndexDraft(index, sideEffect)\n const nodesArray = Object.values(nodes)\n if (sortNodes) {\n nodesArray.sort(sortNodesByIdOrCreationDate)\n }\n for (const node of nodesArray) {\n draft.addNode(node)\n }\n return draft.index\n }\n\nconst addNode =\n (node: Node) =>\n (index: RecordNodesIndex): RecordNodesIndex =>\n addNodes({ [node.uuid]: node })(index)\n\nconst initializeIndex = (record: Record): RecordNodesIndex => addNodes(record.nodes ?? {}, true, true)({})\n\nconst removeNodes =\n (nodes: Node[], sideEffect = false) =>\n (index: RecordNodesIndex): RecordNodesIndex => {\n const draft = new NodesIndexDraft(index, sideEffect)\n for (const node of nodes) {\n draft.removeNode(node)\n }\n return draft.index\n }\n\nconst removeNode =\n (node: Node, sideEffect = false) =>\n (index: RecordNodesIndex): RecordNodesIndex =>\n removeNodes([node], sideEffect)(index)\n\nconst _isSameHierarchyCode = (nodeA: Node, nodeB: Node): boolean => {\n const hCodeA = nodeA.meta?.hCode ?? []\n const hCodeB = nodeB.meta?.hCode ?? []\n return hCodeA.length === hCodeB.length && hCodeA.every((uuid, index) => uuid === hCodeB[index])\n}\n\n/**\n * Returns true if the index entries of the specified node would not change when the node replaces the previous version of it.\n */\nconst isNodeIndexUnchanged = (params: { index: RecordNodesIndex; node: Node; nodePrev?: Node }): boolean => {\n const { index, node, nodePrev } = params\n if (!nodePrev) return false\n const { uuid, parentUuid, nodeDefUuid } = node\n if (parentUuid !== nodePrev.parentUuid || nodeDefUuid !== nodePrev.nodeDefUuid) return false\n if (!_isSameHierarchyCode(node, nodePrev)) return false\n if (!index.nodesByDef?.[nodeDefUuid]?.[uuid]) return false\n return parentUuid\n ? !!index.nodesByParentAndChildDef?.[parentUuid]?.[nodeDefUuid]?.[uuid]\n : index.nodeRootUuid === uuid\n}\n\nexport const RecordNodesIndexUpdater = {\n addNode,\n addNodes,\n initializeIndex,\n isNodeIndexUnchanged,\n removeNode,\n removeNodes,\n}\n"]}
|
|
@@ -16,55 +16,94 @@ export type PagesValidationProgress = {
|
|
|
16
16
|
validCount: number;
|
|
17
17
|
totalCount: number;
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Whether a node belongs under a page entity (itself or any descendant of that page).
|
|
21
|
+
*/
|
|
19
22
|
export declare const nodeBelongsToPage: (params: {
|
|
20
23
|
node: Node;
|
|
21
24
|
pageNodeDefUuid: string;
|
|
22
25
|
record: Record;
|
|
23
26
|
}) => boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Whether a node belongs to this page only — not to a nested descendant page entity.
|
|
29
|
+
* When descendantPageUuids is empty, all nodes under the page hierarchy are included.
|
|
30
|
+
*/
|
|
24
31
|
export declare const nodeBelongsToOwnPage: (params: {
|
|
25
32
|
node: Node;
|
|
26
33
|
pageNodeDefUuid: string;
|
|
27
34
|
descendantPageUuids: string[];
|
|
28
35
|
record: Record;
|
|
29
36
|
}) => boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Child page-entity defs displayed in their own page under the given entity.
|
|
39
|
+
*/
|
|
30
40
|
export declare const getNodeDefChildrenInOwnPage: (params: {
|
|
31
41
|
survey: Survey;
|
|
32
42
|
nodeDef: NodeDefEntity;
|
|
33
43
|
cycle: string;
|
|
34
44
|
}) => NodeDefEntity[];
|
|
45
|
+
/**
|
|
46
|
+
* Collects all page-entity node defs in the survey cycle (root + nested own-pages).
|
|
47
|
+
*/
|
|
35
48
|
export declare const getPageNodeDefs: (params: {
|
|
36
49
|
survey: Survey;
|
|
37
50
|
cycle: string;
|
|
38
51
|
}) => NodeDefEntity[];
|
|
52
|
+
/**
|
|
53
|
+
* Collects descendant page node def UUIDs under a page (not including the page itself).
|
|
54
|
+
*/
|
|
39
55
|
export declare const getDescendantPageNodeDefUuids: (params: {
|
|
40
56
|
survey: Survey;
|
|
41
57
|
cycle: string;
|
|
42
58
|
pageNodeDef: NodeDefEntity;
|
|
43
59
|
}) => string[];
|
|
60
|
+
/**
|
|
61
|
+
* Aggregates error/warning flags for a page.
|
|
62
|
+
* When descendantPageUuids is non-empty, nested page entities are excluded (own-page scope).
|
|
63
|
+
* When scopeEntityUuid is set, only validations for nodes under that entity instance are included.
|
|
64
|
+
*/
|
|
44
65
|
export declare const getPageValidationStatus: (params: {
|
|
45
66
|
pageNodeDefUuid: string;
|
|
46
67
|
descendantPageUuids?: string[];
|
|
47
68
|
record: Record;
|
|
48
69
|
scopeEntityUuid?: string;
|
|
49
70
|
}) => PageValidationStatus;
|
|
71
|
+
/**
|
|
72
|
+
* Validation and completion status for one entity instance and its descendant pages.
|
|
73
|
+
* Returns null when the node is missing or is not an entity.
|
|
74
|
+
*/
|
|
50
75
|
export declare const getEntitySubtreeStatus: (params: {
|
|
51
76
|
survey: Survey;
|
|
52
77
|
record: Record;
|
|
53
78
|
entityUuid: string;
|
|
54
79
|
cycle?: string;
|
|
55
80
|
}) => EntitySubtreeStatus | null;
|
|
81
|
+
/**
|
|
82
|
+
* Aggregates subtree status across instances of a multiple page entity.
|
|
83
|
+
* When `scopeEntityUuid` is set, only instances under that ancestor entity are included
|
|
84
|
+
* (needed for nested multiples, e.g. Tree under the currently selected Plot).
|
|
85
|
+
* Empty instance lists return a non-complete status with no validation flags.
|
|
86
|
+
*/
|
|
56
87
|
export declare const getMultiplePageEntitiesStatus: (params: {
|
|
57
88
|
survey: Survey;
|
|
58
89
|
record: Record;
|
|
59
90
|
pageNodeDefUuid: string;
|
|
60
91
|
cycle?: string;
|
|
92
|
+
/** When set, only instances under this ancestor entity are aggregated. */
|
|
61
93
|
scopeEntityUuid?: string;
|
|
62
94
|
}) => EntitySubtreeStatus;
|
|
95
|
+
/**
|
|
96
|
+
* Whether the page has validation errors on its own fields (excluding nested page entities).
|
|
97
|
+
*/
|
|
63
98
|
export declare const pageHasOwnErrors: (params: {
|
|
64
99
|
pageNodeDefUuid: string;
|
|
65
100
|
descendantPageUuids: string[];
|
|
66
101
|
record: Record;
|
|
67
102
|
}) => boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Progress of pages without own-field validation errors over all survey pages.
|
|
105
|
+
* Warnings do not reduce the score (matches Arena sidebar red-icon signal).
|
|
106
|
+
*/
|
|
68
107
|
export declare const getRecordPagesValidationProgress: (params: {
|
|
69
108
|
survey: Survey;
|
|
70
109
|
record: Record;
|
|
@@ -8,6 +8,9 @@ const validation_1 = require("../../validation");
|
|
|
8
8
|
const recordValidations_1 = require("../recordValidations");
|
|
9
9
|
const recordCompletion_1 = require("./recordCompletion");
|
|
10
10
|
const recordGetters_1 = require("./recordGetters");
|
|
11
|
+
/**
|
|
12
|
+
* Whether a node belongs under a page entity (itself or any descendant of that page).
|
|
13
|
+
*/
|
|
11
14
|
const nodeBelongsToPage = (params) => {
|
|
12
15
|
const { node, pageNodeDefUuid, record } = params;
|
|
13
16
|
if (node.nodeDefUuid === pageNodeDefUuid)
|
|
@@ -18,6 +21,10 @@ const nodeBelongsToPage = (params) => {
|
|
|
18
21
|
});
|
|
19
22
|
};
|
|
20
23
|
exports.nodeBelongsToPage = nodeBelongsToPage;
|
|
24
|
+
/**
|
|
25
|
+
* Whether a node belongs to this page only — not to a nested descendant page entity.
|
|
26
|
+
* When descendantPageUuids is empty, all nodes under the page hierarchy are included.
|
|
27
|
+
*/
|
|
21
28
|
const nodeBelongsToOwnPage = (params) => {
|
|
22
29
|
const { node, pageNodeDefUuid, descendantPageUuids, record } = params;
|
|
23
30
|
if (!(0, exports.nodeBelongsToPage)({ node, pageNodeDefUuid, record }))
|
|
@@ -27,6 +34,9 @@ const nodeBelongsToOwnPage = (params) => {
|
|
|
27
34
|
return !descendantPageUuids.some((descendantUuid) => (0, exports.nodeBelongsToPage)({ node, pageNodeDefUuid: descendantUuid, record }));
|
|
28
35
|
};
|
|
29
36
|
exports.nodeBelongsToOwnPage = nodeBelongsToOwnPage;
|
|
37
|
+
/**
|
|
38
|
+
* Child page-entity defs displayed in their own page under the given entity.
|
|
39
|
+
*/
|
|
30
40
|
const getNodeDefChildrenInOwnPage = (params) => {
|
|
31
41
|
const { survey, nodeDef, cycle } = params;
|
|
32
42
|
return survey_1.Surveys.getNodeDefChildren({ survey, nodeDef, includeAnalysis: true }).filter((child) => {
|
|
@@ -36,6 +46,9 @@ const getNodeDefChildrenInOwnPage = (params) => {
|
|
|
36
46
|
});
|
|
37
47
|
};
|
|
38
48
|
exports.getNodeDefChildrenInOwnPage = getNodeDefChildrenInOwnPage;
|
|
49
|
+
/**
|
|
50
|
+
* Collects all page-entity node defs in the survey cycle (root + nested own-pages).
|
|
51
|
+
*/
|
|
39
52
|
const getPageNodeDefs = (params) => {
|
|
40
53
|
const { survey, cycle } = params;
|
|
41
54
|
const root = survey_1.Surveys.getNodeDefRoot({ survey });
|
|
@@ -53,6 +66,9 @@ const getPageNodeDefs = (params) => {
|
|
|
53
66
|
return pages;
|
|
54
67
|
};
|
|
55
68
|
exports.getPageNodeDefs = getPageNodeDefs;
|
|
69
|
+
/**
|
|
70
|
+
* Collects descendant page node def UUIDs under a page (not including the page itself).
|
|
71
|
+
*/
|
|
56
72
|
const getDescendantPageNodeDefUuids = (params) => {
|
|
57
73
|
const { survey, cycle, pageNodeDef } = params;
|
|
58
74
|
const uuids = [];
|
|
@@ -98,12 +114,19 @@ const getOwnPageFieldValidationFlags = (params) => {
|
|
|
98
114
|
hasWarnings: validation_1.Validations.hasWarnings(nodeValidation),
|
|
99
115
|
};
|
|
100
116
|
};
|
|
117
|
+
/**
|
|
118
|
+
* Children-count validations (file min count, inline multiple min/max, etc.) are keyed as
|
|
119
|
+
* `childrenCount_{parentUuid}_{childDefUuid}`, not as node UUIDs.
|
|
120
|
+
* Include them when the parent is on this page, but skip counts that refer to descendant
|
|
121
|
+
* page entities (missing sub-page instances should not paint the parent page red).
|
|
122
|
+
*/
|
|
101
123
|
const getOwnPageChildrenCountValidationFlags = (params) => {
|
|
102
124
|
const { childrenCountKey, pageNodeDefUuid, descendantPageUuids, scopeEntityUuid, record, recordValidation } = params;
|
|
103
125
|
const parentUuid = recordValidations_1.RecordValidations.extractValidationChildrenCountKeyParentUuid(childrenCountKey);
|
|
104
126
|
const childDefUuid = recordValidations_1.RecordValidations.extractValidationChildrenCountKeyNodeDefUuid(childrenCountKey);
|
|
105
127
|
if (!parentUuid || !childDefUuid)
|
|
106
128
|
return null;
|
|
129
|
+
// Sub-page entity min/max counts belong to navigation of nested pages, not this page's fields.
|
|
107
130
|
if (descendantPageUuids.includes(childDefUuid))
|
|
108
131
|
return null;
|
|
109
132
|
const parentNode = (0, recordGetters_1.getNodeByUuid)(parentUuid)(record);
|
|
@@ -120,6 +143,11 @@ const getOwnPageChildrenCountValidationFlags = (params) => {
|
|
|
120
143
|
hasWarnings: validation_1.Validations.hasWarnings(fieldValidation),
|
|
121
144
|
};
|
|
122
145
|
};
|
|
146
|
+
/**
|
|
147
|
+
* Aggregates error/warning flags for a page.
|
|
148
|
+
* When descendantPageUuids is non-empty, nested page entities are excluded (own-page scope).
|
|
149
|
+
* When scopeEntityUuid is set, only validations for nodes under that entity instance are included.
|
|
150
|
+
*/
|
|
123
151
|
const getPageValidationStatus = (params) => {
|
|
124
152
|
const { pageNodeDefUuid, descendantPageUuids = [], record, scopeEntityUuid } = params;
|
|
125
153
|
const recordValidation = validation_1.Validations.getValidation(record);
|
|
@@ -151,6 +179,10 @@ const aggregatePageValidationStatuses = (statuses) => ({
|
|
|
151
179
|
hasErrors: statuses.some((status) => status.hasErrors),
|
|
152
180
|
hasWarnings: statuses.some((status) => status.hasWarnings),
|
|
153
181
|
});
|
|
182
|
+
/**
|
|
183
|
+
* Validation and completion status for one entity instance and its descendant pages.
|
|
184
|
+
* Returns null when the node is missing or is not an entity.
|
|
185
|
+
*/
|
|
154
186
|
const getEntitySubtreeStatus = (params) => {
|
|
155
187
|
var _a;
|
|
156
188
|
const { survey, record, entityUuid } = params;
|
|
@@ -180,6 +212,12 @@ const getEntitySubtreeStatus = (params) => {
|
|
|
180
212
|
return { hasErrors, hasWarnings, isComplete };
|
|
181
213
|
};
|
|
182
214
|
exports.getEntitySubtreeStatus = getEntitySubtreeStatus;
|
|
215
|
+
/**
|
|
216
|
+
* Aggregates subtree status across instances of a multiple page entity.
|
|
217
|
+
* When `scopeEntityUuid` is set, only instances under that ancestor entity are included
|
|
218
|
+
* (needed for nested multiples, e.g. Tree under the currently selected Plot).
|
|
219
|
+
* Empty instance lists return a non-complete status with no validation flags.
|
|
220
|
+
*/
|
|
183
221
|
const getMultiplePageEntitiesStatus = (params) => {
|
|
184
222
|
const { survey, record, pageNodeDefUuid, scopeEntityUuid } = params;
|
|
185
223
|
const instances = (0, recordGetters_1.getNodesByDefUuid)(pageNodeDefUuid)(record).filter((instance) => scopeEntityUuid ? nodeIsUnderEntity({ node: instance, entityUuid: scopeEntityUuid }) : true);
|
|
@@ -196,8 +234,15 @@ const getMultiplePageEntitiesStatus = (params) => {
|
|
|
196
234
|
};
|
|
197
235
|
};
|
|
198
236
|
exports.getMultiplePageEntitiesStatus = getMultiplePageEntitiesStatus;
|
|
237
|
+
/**
|
|
238
|
+
* Whether the page has validation errors on its own fields (excluding nested page entities).
|
|
239
|
+
*/
|
|
199
240
|
const pageHasOwnErrors = (params) => (0, exports.getPageValidationStatus)(params).hasErrors;
|
|
200
241
|
exports.pageHasOwnErrors = pageHasOwnErrors;
|
|
242
|
+
/**
|
|
243
|
+
* Progress of pages without own-field validation errors over all survey pages.
|
|
244
|
+
* Warnings do not reduce the score (matches Arena sidebar red-icon signal).
|
|
245
|
+
*/
|
|
201
246
|
const getRecordPagesValidationProgress = (params) => {
|
|
202
247
|
var _a;
|
|
203
248
|
const { survey, record } = params;
|