@openforis/arena-core 2.3.36 → 2.3.39
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/auth/authGroup.js.map +1 -1
- package/dist/auth/authGroups.d.ts +21 -11
- package/dist/auth/authGroups.js.map +1 -1
- package/dist/auth/authorizer.d.ts +64 -38
- package/dist/auth/authorizer.js.map +1 -1
- package/dist/auth/permission.js.map +1 -1
- package/dist/auth/user.js.map +1 -1
- package/dist/auth/users.d.ts +19 -9
- package/dist/auth/users.js +3 -2
- package/dist/auth/users.js.map +1 -1
- package/dist/category/categories.d.ts +7 -3
- package/dist/category/categories.js.map +1 -1
- package/dist/category/categoryImportSummary.js.map +1 -1
- package/dist/category/categoryItemGenerator.d.ts +6 -4
- package/dist/category/categoryItems.d.ts +9 -4
- package/dist/category/categoryItems.js +2 -1
- package/dist/category/categoryItems.js.map +1 -1
- package/dist/category/factory.js.map +1 -1
- package/dist/chain/chain.js.map +1 -1
- package/dist/common/index.js.map +1 -1
- package/dist/dataExport/FlatDataExportModel.js.map +1 -1
- package/dist/dataExport/FlatDataExportOptions.js.map +1 -1
- package/dist/dataExport/FlatDataFiles.d.ts +7 -5
- package/dist/dataExport/UniqueFileNamesGenerator.js.map +1 -1
- package/dist/dataQuery/dataQuery.js.map +1 -1
- package/dist/dataQuery/dataQuerySummaries.d.ts +28 -15
- package/dist/dataQuery/dataQuerySummaries.js +3 -3
- package/dist/dataQuery/dataQuerySummaries.js.map +1 -1
- package/dist/error/SystemError.js.map +1 -1
- package/dist/esm/auth/authGroups.js.map +1 -1
- package/dist/esm/auth/users.js +3 -2
- package/dist/esm/auth/users.js.map +1 -1
- package/dist/esm/category/categories.js.map +1 -1
- package/dist/esm/category/categoryItems.js +2 -1
- package/dist/esm/category/categoryItems.js.map +1 -1
- package/dist/esm/dataExport/FlatDataExportModel.js.map +1 -1
- package/dist/esm/dataQuery/dataQuerySummaries.js +3 -3
- package/dist/esm/dataQuery/dataQuerySummaries.js.map +1 -1
- package/dist/esm/expression/javascript/evaluator.js.map +1 -1
- package/dist/esm/extraProp/extraProps.js.map +1 -1
- package/dist/esm/geo/pointFactory.js.map +1 -1
- package/dist/esm/geo/points/bearing.js +1 -1
- package/dist/esm/geo/points/bearing.js.map +1 -1
- package/dist/esm/geo/points/distance.js +1 -1
- package/dist/esm/geo/points/distance.js.map +1 -1
- package/dist/esm/geo/points/isValid.js.map +1 -1
- package/dist/esm/geo/points/transform.js.map +1 -1
- package/dist/esm/job/JobBase.js +4 -3
- package/dist/esm/job/JobBase.js.map +1 -1
- package/dist/esm/message/messages.js +9 -8
- package/dist/esm/message/messages.js.map +1 -1
- package/dist/esm/node/factory.js +2 -1
- package/dist/esm/node/factory.js.map +1 -1
- package/dist/esm/node/nodeValueFormatter.js +2 -1
- package/dist/esm/node/nodeValueFormatter.js.map +1 -1
- package/dist/esm/node/nodeValues.js +3 -2
- package/dist/esm/node/nodeValues.js.map +1 -1
- package/dist/esm/node/nodes.js +4 -4
- package/dist/esm/node/nodes.js.map +1 -1
- package/dist/esm/nodeDef/nodeDefs.js +10 -10
- package/dist/esm/nodeDef/nodeDefs.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/evaluator.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/functions.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/node/identifier.js +3 -2
- package/dist/esm/nodeDefExpressionEvaluator/node/identifier.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/node/member.js.map +1 -1
- package/dist/esm/nodeDefExpressionEvaluator/validator.js.map +1 -1
- package/dist/esm/record/_records/nodeDefSelfReferences.js.map +1 -1
- package/dist/esm/record/_records/recordGetters.js.map +1 -1
- package/dist/esm/record/_records/recordNodesIndexReader.js +6 -4
- package/dist/esm/record/_records/recordNodesIndexReader.js.map +1 -1
- package/dist/esm/record/_records/recordNodesIndexUpdater.js +10 -7
- package/dist/esm/record/_records/recordNodesIndexUpdater.js.map +1 -1
- package/dist/esm/record/_records/recordPagesValidation.js.map +1 -1
- package/dist/esm/record/_records/recordUpdater.js.map +1 -1
- package/dist/esm/record/factory.js +2 -1
- package/dist/esm/record/factory.js.map +1 -1
- package/dist/esm/record/recordCloner.js +2 -1
- package/dist/esm/record/recordCloner.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/functions.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/node/identifier/identifier.js +3 -2
- package/dist/esm/record/recordExpressionEvaluator/node/identifier/identifier.js.map +1 -1
- package/dist/esm/record/recordExpressionEvaluator/recordExpressionEvaluator.js +4 -7
- package/dist/esm/record/recordExpressionEvaluator/recordExpressionEvaluator.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsBooleanUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodesDeleter.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordNodesUpdater.js.map +1 -1
- package/dist/esm/record/recordNodesUpdater/recordUpdateResult.js.map +1 -1
- package/dist/esm/record/recordUpdater.js.map +1 -1
- package/dist/esm/record/recordValidator/attributeTypeValidator.js +2 -2
- package/dist/esm/record/recordValidator/attributeTypeValidator.js.map +1 -1
- package/dist/esm/record/recordValidator/attributeUniqueValidator.js.map +1 -1
- package/dist/esm/record/recordValidator/attributeValidator.js.map +1 -1
- package/dist/esm/record/recordValidator/recordValidator.js.map +1 -1
- package/dist/esm/survey/nodeDefsFixer.js.map +1 -1
- package/dist/esm/survey/refData/factory.js +3 -2
- package/dist/esm/survey/refData/factory.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.map +1 -1
- package/dist/esm/survey/surveys/_nodeDefs/nodeDefsReader.js.map +1 -1
- package/dist/esm/survey/surveys/dependencies.js +2 -1
- package/dist/esm/survey/surveys/dependencies.js.map +1 -1
- package/dist/esm/survey/surveys/nodeDefs.js +4 -2
- package/dist/esm/survey/surveys/nodeDefs.js.map +1 -1
- package/dist/esm/survey/surveys/refsData.js +2 -1
- package/dist/esm/survey/surveys/refsData.js.map +1 -1
- package/dist/esm/survey/surveys/surveyGettersSecurity.js +1 -4
- package/dist/esm/survey/surveys/surveyGettersSecurity.js.map +1 -1
- package/dist/esm/survey/surveys/surveysGetters.js +5 -7
- package/dist/esm/survey/surveys/surveysGetters.js.map +1 -1
- package/dist/esm/taxonomy/taxa.js.map +1 -1
- package/dist/esm/taxonomy/taxonomies.js.map +1 -1
- package/dist/esm/tests/builder/recordBuilder/attributeBuilder.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/surveyBuilder/categoryItemBuilder.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/utils/_objects/camelize.js.map +1 -1
- package/dist/esm/utils/arrays.js.map +1 -1
- package/dist/esm/utils/dates.js.map +1 -1
- package/dist/esm/utils/fileNames.js.map +1 -1
- package/dist/esm/utils/fileProcessor.js +2 -1
- package/dist/esm/utils/fileProcessor.js.map +1 -1
- package/dist/esm/utils/numbers.js.map +1 -1
- package/dist/esm/utils/queue.js.map +1 -1
- package/dist/esm/utils/versions.js.map +1 -1
- package/dist/esm/validation/factory.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/validationResults.js +1 -1
- package/dist/esm/validation/validationResults.js.map +1 -1
- package/dist/esm/validation/validations.js +2 -2
- package/dist/esm/validation/validations.js.map +1 -1
- package/dist/esm/validation/validator.js.map +1 -1
- package/dist/expression/javascript/evaluator.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.map +1 -1
- 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.js.map +1 -1
- package/dist/expression/javascript/node/literal.js.map +1 -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.map +1 -1
- 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/variable.js.map +1 -1
- package/dist/extraProp/extraProp.js.map +1 -1
- package/dist/extraProp/extraProps.d.ts +9 -6
- package/dist/extraProp/extraProps.js.map +1 -1
- package/dist/extraProp/extraPropsDataGenerator.d.ts +7 -5
- package/dist/geo/pointFactory.js.map +1 -1
- package/dist/geo/points/bearing.js +5 -2
- package/dist/geo/points/bearing.js.map +1 -1
- package/dist/geo/points/distance.js +5 -2
- 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.d.ts +18 -14
- package/dist/geo/points/isFilled.js.map +1 -1
- package/dist/geo/points/isValid.js.map +1 -1
- package/dist/geo/points/parse.js.map +1 -1
- 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.js.map +1 -1
- package/dist/job/JobBase.js +4 -3
- package/dist/job/JobBase.js.map +1 -1
- package/dist/job/jobEvent.js.map +1 -1
- package/dist/job/status.js.map +1 -1
- package/dist/language/languageCode.js.map +1 -1
- package/dist/language/languages.js.map +1 -1
- package/dist/message/message.js.map +1 -1
- package/dist/message/messages.d.ts +54 -28
- package/dist/message/messages.js +9 -8
- package/dist/message/messages.js.map +1 -1
- package/dist/node/factory.js +2 -1
- package/dist/node/factory.js.map +1 -1
- package/dist/node/node.js.map +1 -1
- package/dist/node/nodeValueFormatter.d.ts +2 -1
- package/dist/node/nodeValueFormatter.js +2 -1
- package/dist/node/nodeValueFormatter.js.map +1 -1
- package/dist/node/nodeValueProps.js.map +1 -1
- package/dist/node/nodeValues.d.ts +62 -41
- package/dist/node/nodeValues.js +3 -2
- package/dist/node/nodeValues.js.map +1 -1
- package/dist/node/nodes.d.ts +112 -86
- package/dist/node/nodes.js +4 -4
- package/dist/node/nodes.js.map +1 -1
- package/dist/nodeDef/nodeDef.js.map +1 -1
- package/dist/nodeDef/nodeDefs.d.ts +173 -86
- package/dist/nodeDef/nodeDefs.js +10 -10
- package/dist/nodeDef/nodeDefs.js.map +1 -1
- 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/text.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/evaluator.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/functions.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/node/identifier.js +3 -2
- package/dist/nodeDefExpressionEvaluator/node/identifier.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/node/member.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/node/nodeDefExpressionNativeProperties.d.ts +11 -8
- package/dist/nodeDefExpressionEvaluator/node/thisEvaluator.d.ts +1 -1
- package/dist/nodeDefExpressionEvaluator/node/thisEvaluator.js.map +1 -1
- package/dist/nodeDefExpressionEvaluator/validator.js.map +1 -1
- package/dist/record/_records/nodeDefSelfReferences.d.ts +12 -4
- package/dist/record/_records/nodeDefSelfReferences.js.map +1 -1
- package/dist/record/_records/recordCompletion.js.map +1 -1
- package/dist/record/_records/recordGetters.js.map +1 -1
- package/dist/record/_records/recordNodesIndexReader.d.ts +14 -8
- package/dist/record/_records/recordNodesIndexReader.js +6 -4
- package/dist/record/_records/recordNodesIndexReader.js.map +1 -1
- package/dist/record/_records/recordNodesIndexUpdater.d.ts +22 -12
- package/dist/record/_records/recordNodesIndexUpdater.js +10 -7
- package/dist/record/_records/recordNodesIndexUpdater.js.map +1 -1
- package/dist/record/_records/recordPagesValidation.js.map +1 -1
- package/dist/record/_records/recordUpdater.js.map +1 -1
- package/dist/record/_records/recordUtils.js.map +1 -1
- package/dist/record/factory.js +2 -1
- package/dist/record/factory.js.map +1 -1
- package/dist/record/nodePointers.d.ts +13 -10
- package/dist/record/recordCloner.d.ts +11 -10
- package/dist/record/recordCloner.js +2 -1
- package/dist/record/recordCloner.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/functions.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/node/identifier/identifier.js +3 -2
- package/dist/record/recordExpressionEvaluator/node/identifier/identifier.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/node/identifier/nodesFinder.d.ts +8 -6
- package/dist/record/recordExpressionEvaluator/node/thisEvaluator.js.map +1 -1
- package/dist/record/recordExpressionEvaluator/nodeValueExtractor.d.ts +7 -5
- package/dist/record/recordExpressionEvaluator/recordExpressionEvaluator.js +4 -7
- package/dist/record/recordExpressionEvaluator/recordExpressionEvaluator.js.map +1 -1
- package/dist/record/recordFixer.d.ts +19 -10
- package/dist/record/recordNodesUpdater/index.d.ts +8 -7
- package/dist/record/recordNodesUpdater/recordEnumeratingItemsExpressionEvaluator.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordExpressionValueConverter.d.ts +2 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsBooleanUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js.map +1 -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.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodeDependentsVisibleUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodesCreator.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodesDeleter.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordNodesUpdater.js.map +1 -1
- package/dist/record/recordNodesUpdater/recordUpdateResult.js.map +1 -1
- package/dist/record/recordPrettyPrinter.d.ts +18 -15
- package/dist/record/recordPrettyPrinter.js.map +1 -1
- package/dist/record/recordStep.d.ts +5 -2
- package/dist/record/recordStep.js.map +1 -1
- package/dist/record/recordUpdater.d.ts +22 -15
- package/dist/record/recordUpdater.js.map +1 -1
- package/dist/record/recordValidations.d.ts +21 -14
- package/dist/record/recordValidator/attributeKeyValidator.d.ts +8 -6
- package/dist/record/recordValidator/attributeKeyValidator.js.map +1 -1
- package/dist/record/recordValidator/attributeTypeValidator.d.ts +2 -1
- package/dist/record/recordValidator/attributeTypeValidator.js +2 -2
- package/dist/record/recordValidator/attributeTypeValidator.js.map +1 -1
- package/dist/record/recordValidator/attributeUniqueValidator.d.ts +1 -5
- package/dist/record/recordValidator/attributeUniqueValidator.js.map +1 -1
- package/dist/record/recordValidator/attributeValidator.d.ts +3 -1
- package/dist/record/recordValidator/attributeValidator.js.map +1 -1
- package/dist/record/recordValidator/countVaildator.d.ts +21 -17
- package/dist/record/recordValidator/index.d.ts +4 -3
- package/dist/record/recordValidator/recordValidator.js.map +1 -1
- package/dist/record/records.d.ts +62 -220
- package/dist/registry/serviceRegistry.js.map +1 -1
- package/dist/registry/serviceType.js.map +1 -1
- package/dist/srs/srs.js.map +1 -1
- package/dist/survey/nodeDefsFixer.d.ts +5 -4
- package/dist/survey/nodeDefsFixer.js.map +1 -1
- package/dist/survey/refData/factory.js +3 -2
- package/dist/survey/refData/factory.js.map +1 -1
- package/dist/survey/survey.d.ts +2 -2
- package/dist/survey/survey.js.map +1 -1
- package/dist/survey/surveyDocImageFactory.js.map +1 -1
- package/dist/survey/surveyDocImages.d.ts +11 -5
- package/dist/survey/surveyDocImages.js.map +1 -1
- package/dist/survey/surveyFileFactory.js.map +1 -1
- 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 +2 -1
- package/dist/survey/surveys/dependencies.js.map +1 -1
- package/dist/survey/surveys/index.d.ts +82 -255
- package/dist/survey/surveys/nodeDefs.d.ts +4 -6
- package/dist/survey/surveys/nodeDefs.js +4 -2
- package/dist/survey/surveys/nodeDefs.js.map +1 -1
- package/dist/survey/surveys/refsData.js +2 -1
- package/dist/survey/surveys/refsData.js.map +1 -1
- package/dist/survey/surveys/surveyGettersSecurity.js +1 -4
- package/dist/survey/surveys/surveyGettersSecurity.js.map +1 -1
- package/dist/survey/surveys/surveysGetters.js +5 -7
- package/dist/survey/surveys/surveysGetters.js.map +1 -1
- package/dist/survey/surveys/surveysUtils.js.map +1 -1
- package/dist/taxonomy/taxa.d.ts +17 -11
- package/dist/taxonomy/taxa.js.map +1 -1
- package/dist/taxonomy/taxonGenerator.d.ts +6 -4
- package/dist/taxonomy/taxonomies.d.ts +7 -3
- package/dist/taxonomy/taxonomies.js.map +1 -1
- 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.d.ts +4 -2
- 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.d.ts +30 -15
- 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.map +1 -1
- package/dist/utils/_objects/camelize.js.map +1 -1
- 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.map +1 -1
- package/dist/utils/_objects/dissocPathIfEmpty.js.map +1 -1
- package/dist/utils/_objects/index.d.ts +34 -48
- package/dist/utils/_objects/isEmpty.js.map +1 -1
- package/dist/utils/_objects/isNil.js.map +1 -1
- package/dist/utils/_objects/isNotEmpty.js.map +1 -1
- package/dist/utils/_objects/parse.js.map +1 -1
- 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.js.map +1 -1
- package/dist/utils/arrays.d.ts +25 -15
- package/dist/utils/arrays.js.map +1 -1
- package/dist/utils/dates.d.ts +101 -48
- package/dist/utils/dates.js.map +1 -1
- package/dist/utils/fileNames.d.ts +7 -3
- package/dist/utils/fileNames.js.map +1 -1
- package/dist/utils/fileProcessor.js +2 -1
- package/dist/utils/fileProcessor.js.map +1 -1
- package/dist/utils/numbers.d.ts +42 -13
- package/dist/utils/numbers.js.map +1 -1
- package/dist/utils/promises.d.ts +12 -1
- package/dist/utils/queue.js.map +1 -1
- package/dist/utils/retryProcessor.js.map +1 -1
- package/dist/utils/strings.d.ts +22 -11
- package/dist/utils/uuids.d.ts +3 -1
- package/dist/utils/versions.d.ts +19 -7
- package/dist/utils/versions.js.map +1 -1
- package/dist/validation/factory.js.map +1 -1
- package/dist/validation/fieldValidators/email.js.map +1 -1
- package/dist/validation/fieldValidators/index.d.ts +12 -6
- 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/validation.js.map +1 -1
- package/dist/validation/validationResults.d.ts +17 -9
- package/dist/validation/validationResults.js +1 -1
- package/dist/validation/validationResults.js.map +1 -1
- package/dist/validation/validations.d.ts +71 -35
- package/dist/validation/validations.js +2 -2
- package/dist/validation/validations.js.map +1 -1
- package/dist/validation/validator.js.map +1 -1
- package/package.json +11 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeDefs.js","sourceRoot":"","sources":["../../../src/survey/surveys/nodeDefs.ts"],"names":[],"mappings":"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","sourcesContent":["import { Survey } from '../survey'\nimport {\n NodeDef,\n NodeDefCode,\n NodeDefCodeProps,\n NodeDefEntity,\n NodeDefEntityChildPosition,\n NodeDefMap,\n NodeDefProps,\n NodeDefType,\n NodeDefs,\n} from '../../nodeDef'\nimport { Arrays, Objects, Queue } from '../../utils'\nimport { SystemError } from '../../error'\nimport * as NodeDefsReader from './_nodeDefs/nodeDefsReader'\nimport * as NodeDefsIndex from './_nodeDefs/nodeDefsIndex'\nimport { TraverseMethod } from '../../common'\nimport { getCategoryByUuid } from './surveysGetters'\n\nexport const getNodeDefsArray = NodeDefsReader.getNodeDefsArray\n\nexport const findNodeDefByUuid = (params: {\n survey: Survey\n uuid: string\n}): NodeDef<NodeDefType, NodeDefProps> | undefined => {\n const { survey, uuid } = params\n return survey.nodeDefs?.[uuid]\n}\n\nexport const getNodeDefByUuid = (params: { survey: Survey; uuid: string }): NodeDef<NodeDefType, NodeDefProps> => {\n const { survey, uuid } = params\n const nodeDef = findNodeDefByUuid({ survey, uuid })\n if (!nodeDef) throw new SystemError('survey.nodeDefUuidNotFound', { uuid })\n return nodeDef\n}\n\nexport const findNodeDefByName = (params: {\n survey: Survey\n name: string\n}): NodeDef<NodeDefType, NodeDefProps> | undefined => {\n const { survey, name } = params\n const nodeDefUuidByNameIndex = survey.nodeDefsIndex?.nodeDefUuidByName\n if (nodeDefUuidByNameIndex) {\n const uuid = nodeDefUuidByNameIndex[name]\n return findNodeDefByUuid({ survey, uuid })\n }\n return getNodeDefsArray(survey).find((nodeDef) => nodeDef.props.name === name)\n}\n\nexport const getNodeDefByName = (params: { survey: Survey; name: string }): NodeDef<NodeDefType, NodeDefProps> => {\n const { survey, name } = params\n const nodeDef = findNodeDefByName({ survey, name })\n if (!nodeDef) {\n throw new SystemError('survey.nodeDefNameNotFound', { name })\n }\n return nodeDef\n}\n\nexport const getNodeDefsByUuids = (params: { survey: Survey; uuids: string[] }) => {\n const { survey, uuids } = params\n return uuids.map((uuid) => getNodeDefByUuid({ survey, uuid }))\n}\n\nexport const findNodeDefsByUuids = (params: {\n survey: Survey\n uuids: string[]\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, uuids } = params\n return uuids.reduce((acc: NodeDef<NodeDefType, NodeDefProps>[], uuid) => {\n const nodeDef = findNodeDefByUuid({ survey, uuid })\n if (nodeDef) {\n acc.push(nodeDef)\n }\n return acc\n }, [])\n}\n\nexport const getNodeDefParent = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDefEntity | undefined => {\n const { survey, nodeDef } = params\n if (!nodeDef.parentUuid) return undefined\n return getNodeDefByUuid({ survey, uuid: nodeDef.parentUuid }) as NodeDefEntity\n}\n\nexport const getNodeDefAncestorMultipleEntity = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDefEntity | undefined => {\n const { survey, nodeDef } = params\n return findAncestorNodeDef({\n survey,\n nodeDef,\n predicate: (entityDef) => NodeDefs.isRoot(entityDef) || NodeDefs.isMultiple(entityDef),\n })\n}\n\nexport const isNodeDefAncestor = (params: {\n nodeDefAncestor: NodeDef<NodeDefType, NodeDefProps>\n nodeDefDescendant: NodeDef<NodeDefType, NodeDefProps>\n}): boolean => {\n const { nodeDefAncestor, nodeDefDescendant } = params\n\n return Arrays.startsWith(nodeDefDescendant.meta.h, [...nodeDefAncestor.meta.h, nodeDefAncestor.uuid])\n}\n\nexport const getNodeDefRoot = (params: { survey: Survey }): NodeDefEntity => {\n const { survey } = params\n if (!survey.nodeDefs) throw new SystemError('survey.emptyNodeDefs')\n\n const rootDefUuidInIndex = survey.nodeDefsIndex?.rootDefUuid\n\n const rootDef = rootDefUuidInIndex\n ? getNodeDefByUuid({ survey, uuid: rootDefUuidInIndex })\n : getNodeDefsArray(survey).find((nodeDef) => !nodeDef.parentUuid)\n\n if (!rootDef) throw new SystemError('survey.rootDefNotFound')\n\n return rootDef as NodeDefEntity\n}\n\nexport const getNodeDefSource = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDef<NodeDefType, NodeDefProps> | undefined => {\n const { survey, nodeDef } = params\n return nodeDef.virtual ? getNodeDefParent({ survey, nodeDef }) : undefined\n}\n\nexport const getNodeDefChildren = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n includeAnalysis?: boolean\n includeLayoutElements?: boolean\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, nodeDef, includeAnalysis = false, includeLayoutElements = false } = params\n\n if (!survey.nodeDefs) return []\n\n let childDefs = []\n // try to get children using index\n if (survey.nodeDefsIndex) {\n const childrenUuids = Object.keys(survey.nodeDefsIndex.childDefUuidPresenceByParentUuid?.[nodeDef.uuid] ?? {})\n childDefs = getNodeDefsByUuids({ survey, uuids: childrenUuids })\n } else {\n // calculate children\n childDefs = NodeDefsReader.calculateNodeDefChildren(nodeDef)(survey)\n }\n if (includeAnalysis && includeLayoutElements) {\n return childDefs\n }\n return childDefs.filter((childDef) => {\n if (!includeAnalysis && childDef.analysis) return false\n if (!includeLayoutElements && NodeDefs.isLayoutElement(childDef)) return false\n return true\n })\n}\n\nexport const getQualifierDefs = (params: { survey: Survey }): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey } = params\n const qualifierPresence = survey.nodeDefsIndex?.qualifierPresenceByUuid\n if (qualifierPresence) {\n const qualifierUuids = Object.keys(qualifierPresence)\n return getNodeDefsByUuids({ survey, uuids: qualifierUuids })\n } else {\n return getNodeDefsArray(survey).filter((nodeDef) => NodeDefs.isQualifier(nodeDef))\n }\n}\n\nconst getIndexInChain = (params: { survey: Survey; nodeDef: NodeDef<any> }): number => {\n const { survey, nodeDef } = params\n const areaBasedEstimatedOf = NodeDefs.getAreaBasedEstimatedOf(nodeDef)\n const areaBasedEstimatedOfNodeDef = areaBasedEstimatedOf\n ? getNodeDefByUuid({ survey, uuid: areaBasedEstimatedOf })\n : null\n const nodeDefToConsider = areaBasedEstimatedOfNodeDef ?? nodeDef\n return nodeDefToConsider?.propsAdvanced?.index ?? 0\n}\n\nconst getNodeDefChildrenUuidsSortedByLayout = (params: {\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n cycle: string\n children: NodeDef<any>[]\n}): string[] => {\n const { nodeDef, cycle, children } = params\n\n const entityDef = nodeDef as NodeDefEntity\n\n const childrenEntitiesInOwnPageSortedUuids = NodeDefs.getChildrenEntitiesInOwnPageUudis(cycle)(entityDef) ?? []\n const layoutChildren = NodeDefs.getLayoutChildren(cycle)(entityDef) ?? []\n const childrenByUuids = children.reduce((acc: NodeDefMap, child) => {\n acc[child.uuid] = child\n return acc\n }, {})\n const childrenUuids = Object.keys(childrenByUuids)\n\n if (layoutChildren.length === 0 && childrenEntitiesInOwnPageSortedUuids.length === 0) {\n return childrenUuids\n }\n const sortedChildrenDefsInSamePageUuids = NodeDefs.isLayoutRenderTypeTable(cycle)(entityDef)\n ? (layoutChildren as string[])\n : [...(layoutChildren as NodeDefEntityChildPosition[])]\n .sort(\n (gridItem1: NodeDefEntityChildPosition, gridItem2: NodeDefEntityChildPosition) =>\n gridItem1.y - gridItem2.y || gridItem1.x - gridItem2.x\n )\n .map((gridItem) => gridItem.i)\n .filter((nodeDefUuid) => !!childrenByUuids[nodeDefUuid])\n\n const missingChildrenUuidsInLayout = childrenUuids.filter((childUuid) => {\n const childDef = childrenByUuids[childUuid]\n return (\n !sortedChildrenDefsInSamePageUuids.includes(childUuid) &&\n !childrenEntitiesInOwnPageSortedUuids.includes(childUuid) &&\n NodeDefs.isInCycle(cycle)(childDef)\n )\n })\n\n return (\n sortedChildrenDefsInSamePageUuids\n // add child uuids missing in layout at the end\n .concat(missingChildrenUuidsInLayout)\n // add child entities in own page at the very end\n .concat(childrenEntitiesInOwnPageSortedUuids)\n )\n}\n\nconst _booleanToNumber = (value: boolean | undefined): number => (value ? 1 : 0)\nconst _compareBooleans = (value1: boolean | undefined, value2: boolean | undefined): number =>\n _booleanToNumber(value1) - _booleanToNumber(value2)\n\nexport const getNodeDefChildrenSorted = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n cycle: string\n includeAnalysis?: boolean\n includeLayoutElements?: boolean\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, nodeDef, cycle, includeAnalysis, includeLayoutElements } = params\n\n const children = getNodeDefChildren({ survey, nodeDef, includeAnalysis, includeLayoutElements }).filter(\n NodeDefs.isInCycle(cycle)\n )\n\n const childrenUuidsSortedByLayout = getNodeDefChildrenUuidsSortedByLayout({ nodeDef, cycle, children })\n\n return children.sort((child1, child2) => {\n if (includeAnalysis && (child1.analysis || child2.analysis)) {\n // analysis attribute at the end\n const analysisComparison = _compareBooleans(child1.analysis, child2.analysis)\n if (analysisComparison !== 0) return analysisComparison\n\n // sort by chain index\n const indexInChainComparison =\n getIndexInChain({ survey, nodeDef: child1 }) - getIndexInChain({ survey, nodeDef: child2 })\n if (indexInChainComparison !== 0) return indexInChainComparison\n\n // one node def is the area base estimated of the other\n const areaBasedEstimatedOfComparison = _compareBooleans(\n !!NodeDefs.getAreaBasedEstimatedOf(child1),\n !!NodeDefs.getAreaBasedEstimatedOf(child2)\n )\n if (areaBasedEstimatedOfComparison !== 0) return areaBasedEstimatedOfComparison\n\n return (child1.id ?? 0) - (child2.id ?? 0)\n }\n // keep sorting as defined in layout props\n return childrenUuidsSortedByLayout.indexOf(child1.uuid) - childrenUuidsSortedByLayout.indexOf(child2.uuid)\n })\n}\n\nexport const visitAncestorsAndSelfNodeDef = (params: {\n survey: Survey\n nodeDef: NodeDef<any>\n visitor: (nodeDef: NodeDef<any>) => void\n stopIfFn?: () => boolean\n includeSelf?: boolean\n}): void => {\n const { survey, nodeDef, visitor, stopIfFn, includeSelf = true } = params\n if (includeSelf) {\n visitor(nodeDef)\n }\n let currentParent = getNodeDefParent({ survey, nodeDef })\n while (currentParent) {\n visitor(currentParent)\n if (stopIfFn?.()) {\n break\n }\n currentParent = getNodeDefParent({ survey, nodeDef: currentParent })\n }\n}\n\nexport const findAncestorNodeDef = (params: {\n survey: Survey\n nodeDef: NodeDef<any>\n predicate: (entityDef: NodeDefEntity) => boolean\n}): NodeDefEntity | undefined => {\n const { survey, nodeDef, predicate } = params\n let result: NodeDefEntity | undefined = undefined\n visitAncestorsAndSelfNodeDef({\n survey,\n nodeDef,\n // ancestors only: the node def itself is never an ancestor (e.g. a multiple attribute)\n includeSelf: false,\n visitor: (entityDef) => {\n if (predicate(entityDef)) {\n result = entityDef\n }\n },\n stopIfFn: () => !!result,\n })\n return result\n}\n\ntype NodeDefTraverseParams = {\n nodeDef: NodeDef<any>\n visitor: (nodeDef: NodeDef<any>) => void\n shouldTraverse: (nodeDef: NodeDef<any>) => boolean\n getChildren: (nodeDef: NodeDef<any>) => NodeDef<any>[]\n}\n\nconst traverseBreadthFirst = ({ nodeDef, visitor, shouldTraverse, getChildren }: NodeDefTraverseParams) => {\n const queue = new Queue()\n\n queue.enqueue(nodeDef)\n\n while (!queue.isEmpty()) {\n const visitedNodeDef = queue.dequeue()\n\n visitor(visitedNodeDef)\n\n if (shouldTraverse(visitedNodeDef)) {\n queue.enqueueItems(getChildren(visitedNodeDef))\n }\n }\n}\n\nconst traverseDepthFirst = ({ nodeDef, visitor, shouldTraverse, getChildren }: NodeDefTraverseParams) => {\n const stack: NodeDef<any>[] = []\n\n stack.push(nodeDef)\n\n while (stack.length > 0) {\n const visitedNodeDef = stack.pop()!\n\n visitor(visitedNodeDef)\n\n if (shouldTraverse(visitedNodeDef)) {\n const children = getChildren(visitedNodeDef)\n // add children to stack in reverse order\n for (let index = children.length - 1; index >= 0; index--) {\n stack.push(children[index])\n }\n }\n }\n}\n\nexport const visitDescendantsAndSelfNodeDef = (params: {\n survey: Survey\n cycle?: string\n nodeDef: NodeDef<any>\n visitor: (nodeDef: NodeDef<any>) => void\n includeAnalysis?: boolean\n traverseMethod?: TraverseMethod\n traverseOnlySingleEntities?: boolean\n}) => {\n const {\n survey,\n cycle,\n nodeDef,\n visitor,\n includeAnalysis = false,\n traverseMethod = TraverseMethod.bfs,\n traverseOnlySingleEntities = false,\n } = params\n\n const getNodeDefChildrenInternal = (visitedNodeDef: NodeDef<any>) =>\n Objects.isEmpty(cycle)\n ? getNodeDefChildren({ survey, nodeDef: visitedNodeDef, includeAnalysis })\n : getNodeDefChildrenSorted({ survey, nodeDef: visitedNodeDef, cycle: cycle!, includeAnalysis })\n\n const shouldTraverse = (visitedNodeDef: NodeDef<any>): boolean =>\n visitedNodeDef.type === NodeDefType.entity &&\n (visitedNodeDef === nodeDef ||\n NodeDefs.isRoot(visitedNodeDef) ||\n !traverseOnlySingleEntities ||\n NodeDefs.isSingle(visitedNodeDef))\n\n const traverseParams = { nodeDef, visitor, shouldTraverse, getChildren: getNodeDefChildrenInternal }\n if (traverseMethod === TraverseMethod.bfs) {\n traverseBreadthFirst(traverseParams)\n } else {\n traverseDepthFirst(traverseParams)\n }\n}\n\nexport const visitNodeDefs = (params: {\n survey: Survey\n visitor: (nodeDef: NodeDef<any>) => void\n includeAnalysis?: boolean\n traverseMethod?: TraverseMethod\n}) => {\n const { survey, visitor, traverseMethod = TraverseMethod.bfs, includeAnalysis = false } = params\n const rootDef = getNodeDefRoot({ survey })\n return visitDescendantsAndSelfNodeDef({ survey, nodeDef: rootDef, visitor, traverseMethod, includeAnalysis })\n}\n\n// Node Def Code\nexport const getNodeDefParentCode = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefCode | undefined => {\n const { survey, nodeDef } = params\n const parentCodeDefUuid = nodeDef.props.parentCodeDefUuid\n if (!parentCodeDefUuid) return undefined\n const parentCodeDef = getNodeDefByUuid({ survey, uuid: parentCodeDefUuid })\n return parentCodeDef as NodeDefCode\n}\n\nexport const getNodeDefAncestorCodes = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefCode[] => {\n const { survey, nodeDef } = params\n const ancestors = []\n let currentParentCode = getNodeDefParentCode({ survey, nodeDef })\n while (currentParentCode) {\n ancestors.unshift(currentParentCode)\n currentParentCode = getNodeDefParentCode({ survey, nodeDef: currentParentCode })\n }\n return ancestors\n}\n\nexport const isNodeDefParentCode = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): boolean => {\n const { survey, nodeDef } = params\n const nodeDefsArray = getNodeDefsArray(survey)\n return nodeDefsArray.some((def) => {\n try {\n return nodeDef.uuid === (def as NodeDef<NodeDefType.code, NodeDefCodeProps>).props.parentCodeDefUuid\n } catch {\n // ignore it: def is not a code attribute definition\n return\n }\n })\n}\n\nexport const getNodeDefCategoryLevelIndex = (params: { survey: Survey; nodeDef: NodeDefCode }): number => {\n const { survey, nodeDef } = params\n const parentCodeNodeDef = getNodeDefParentCode({ survey, nodeDef })\n return parentCodeNodeDef ? 1 + getNodeDefCategoryLevelIndex({ survey, nodeDef: parentCodeNodeDef }) : 0\n}\n\nexport const getDependentCodeAttributeDefs = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefCode[] => {\n const { survey, nodeDef } = params\n\n const categoryUuid = NodeDefs.getCategoryUuid(nodeDef)\n if (!categoryUuid) return []\n\n const category = getCategoryByUuid({ survey, categoryUuid })\n const levelsCount = Object.keys(category?.levels ?? {}).length\n if (levelsCount <= 1) return []\n\n const nodeDefsArray = getNodeDefsArray(survey)\n return nodeDefsArray.filter(\n (def) => def.type === NodeDefType.code && NodeDefs.getParentCodeDefUuid(def as NodeDefCode) === nodeDef.uuid\n ) as NodeDefCode[]\n}\n\nexport const getDependentEnumeratedEntityDefs = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefEntity[] => {\n const { survey, nodeDef } = params\n const result: NodeDefEntity[] = []\n const dependentCodeAttributeDefs = getDependentCodeAttributeDefs({ survey, nodeDef })\n for (const dependentCodeDef of dependentCodeAttributeDefs) {\n if (NodeDefs.isKey(dependentCodeDef)) {\n const entityDef = getNodeDefAncestorMultipleEntity({ survey, nodeDef: dependentCodeDef })\n if (entityDef && NodeDefs.isEnumerate(entityDef)) {\n result.push(entityDef)\n }\n }\n }\n return result\n}\n\nexport const getNodeDefKeys = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n cycle?: string\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, cycle, nodeDef } = params\n\n return getDescendantsInSingleEntities({\n survey,\n cycle,\n nodeDef,\n predicate: (visitedNodeDef) =>\n NodeDefs.isKey(visitedNodeDef) &&\n !visitedNodeDef.deleted &&\n (Objects.isEmpty(cycle) || NodeDefs.isInCycle(cycle!)(visitedNodeDef)),\n })\n}\n\nexport const getRootKeys = (params: { survey: Survey; cycle?: string }) => {\n const { survey, cycle } = params\n const rootDef = getNodeDefRoot({ survey })\n return getNodeDefKeys({ survey, nodeDef: rootDef, cycle })\n}\n\nexport const getNodeDefEnumerator = (params: { survey: Survey; entityDef: NodeDefEntity }): NodeDefCode | undefined => {\n const { survey, entityDef } = params\n if (!entityDef.props.enumerate) return undefined\n\n const children = getNodeDefChildren({ survey, nodeDef: entityDef })\n const codeAttributeKeys = children.filter((child) => child.type === NodeDefType.code && child.props.key)\n if (codeAttributeKeys.length === 1) {\n return codeAttributeKeys[0] as NodeDefCode\n }\n return undefined\n}\n\nexport const isNodeDefEnumerator = (params: { survey: Survey; nodeDef: NodeDef<NodeDefType> }): boolean => {\n const { survey, nodeDef } = params\n if (nodeDef.type !== NodeDefType.code) return false\n const entityDef = getNodeDefParent({ survey, nodeDef })\n if (!entityDef) return false\n const enumerator = getNodeDefEnumerator({ survey, entityDef })\n return enumerator?.uuid === nodeDef.uuid\n}\n\nexport const getDescendantsInSingleEntities = (params: {\n survey: Survey\n cycle?: string\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n predicate?: (visitedNodeDef: NodeDef<NodeDefType, NodeDefProps>) => boolean\n includeAnalysis?: boolean\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, cycle, nodeDef, predicate, includeAnalysis } = params\n const result: NodeDef<any>[] = []\n visitDescendantsAndSelfNodeDef({\n survey,\n cycle,\n nodeDef,\n visitor: (visitedNodeDef) => {\n if (!predicate || predicate(visitedNodeDef)) {\n result.push(visitedNodeDef)\n }\n },\n includeAnalysis,\n traverseOnlySingleEntities: true,\n })\n return result\n}\n\nexport const getNodeDefsIncludedInMultipleEntitySummary = (params: {\n survey: Survey\n cycle: string\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, cycle, nodeDef } = params\n return getDescendantsInSingleEntities({\n survey,\n cycle,\n nodeDef,\n predicate: (visitedNodeDef) => NodeDefs.isIncludedInMultipleEntitySummary(cycle)(visitedNodeDef),\n })\n}\n\nconst { buildAndAssocNodeDefsIndex, addNodeDefToIndex, updateNodeDefUuidByNameIndex, deleteNodeDefIndex } =\n NodeDefsIndex\nexport { buildAndAssocNodeDefsIndex, addNodeDefToIndex, updateNodeDefUuidByNameIndex, deleteNodeDefIndex }\n"]}
|
|
1
|
+
{"version":3,"file":"nodeDefs.js","sourceRoot":"","sources":["../../../src/survey/surveys/nodeDefs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAUsB;AACtB,uCAAoD;AACpD,uCAAyC;AACzC,MAAY,cAAc,uDAAkC;AAC5D,MAAY,aAAa,sDAAiC;AAC1D,yCAA6C;AAC7C,qDAAoD;AAEvC,QAAA,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,CAAA;AAExD,MAAM,iBAAiB,GAAG,CAAC,MAGjC,EAAkD,EAAE;;IACnD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAC/B,OAAO,MAAA,MAAM,CAAC,QAAQ,0CAAG,IAAI,CAAC,CAAA;AAChC,CAAC,CAAA;AANY,QAAA,iBAAiB,GAAjB,iBAAiB,CAM7B;AAEM,MAAM,gBAAgB,GAAG,CAAC,MAAwC,EAAsC,EAAE;IAC/G,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAC/B,MAAM,OAAO,GAAG,IAAA,QAAA,iBAAiB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,mBAAW,CAAC,4BAA4B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3E,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AALY,QAAA,gBAAgB,GAAhB,gBAAgB,CAK5B;AAEM,MAAM,iBAAiB,GAAG,CAAC,MAGjC,EAAkD,EAAE;;IACnD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAC/B,MAAM,sBAAsB,GAAG,MAAA,MAAM,CAAC,aAAa,0CAAE,iBAAiB,CAAA;IACtE,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;QACzC,OAAO,IAAA,QAAA,iBAAiB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO,IAAA,QAAA,gBAAgB,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAChF,CAAC,CAAA;AAXY,QAAA,iBAAiB,GAAjB,iBAAiB,CAW7B;AAEM,MAAM,gBAAgB,GAAG,CAAC,MAAwC,EAAsC,EAAE;IAC/G,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;IAC/B,MAAM,OAAO,GAAG,IAAA,QAAA,iBAAiB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,mBAAW,CAAC,4BAA4B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAPY,QAAA,gBAAgB,GAAhB,gBAAgB,CAO5B;AAEM,MAAM,kBAAkB,GAAG,CAAC,MAA2C,EAAE,EAAE;IAChF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAChC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,QAAA,gBAAgB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AAChE,CAAC,CAAA;AAHY,QAAA,kBAAkB,GAAlB,kBAAkB,CAG9B;AAEM,MAAM,mBAAmB,GAAG,CAAC,MAGnC,EAAwC,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAChC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAyC,EAAE,IAAI,EAAE,EAAE;QACtE,MAAM,OAAO,GAAG,IAAA,QAAA,iBAAiB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACnD,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC,CAAA;AAZY,QAAA,mBAAmB,GAAnB,mBAAmB,CAY/B;AAEM,MAAM,gBAAgB,GAAG,CAAC,MAGhC,EAA6B,EAAE;IAC9B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAClC,IAAI,CAAC,OAAO,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACzC,OAAO,IAAA,QAAA,gBAAgB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,CAAkB,CAAA;AAChF,CAAC,CAAA;AAPY,QAAA,gBAAgB,GAAhB,gBAAgB,CAO5B;AAEM,MAAM,gCAAgC,GAAG,CAAC,MAGhD,EAA6B,EAAE;IAC9B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAClC,OAAO,IAAA,QAAA,mBAAmB,EAAC;QACzB,MAAM;QACN,OAAO;QACP,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,kBAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;KACvF,CAAC,CAAA;AACJ,CAAC,CAAA;AAVY,QAAA,gCAAgC,GAAhC,gCAAgC,CAU5C;AAEM,MAAM,iBAAiB,GAAG,CAAC,MAGjC,EAAW,EAAE;IACZ,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAA;IAErD,OAAO,cAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;AACvG,CAAC,CAAA;AAPY,QAAA,iBAAiB,GAAjB,iBAAiB,CAO7B;AAEM,MAAM,cAAc,GAAG,CAAC,MAA0B,EAAiB,EAAE;;IAC1E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACzB,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,MAAM,IAAI,mBAAW,CAAC,sBAAsB,CAAC,CAAA;IAEnE,MAAM,kBAAkB,GAAG,MAAA,MAAM,CAAC,aAAa,0CAAE,WAAW,CAAA;IAE5D,MAAM,OAAO,GAAG,kBAAkB;QAChC,CAAC,CAAC,IAAA,QAAA,gBAAgB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;QACxD,CAAC,CAAC,IAAA,QAAA,gBAAgB,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAEnE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,mBAAW,CAAC,wBAAwB,CAAC,CAAA;IAE7D,OAAO,OAAwB,CAAA;AACjC,CAAC,CAAA;AAbY,QAAA,cAAc,GAAd,cAAc,CAa1B;AAEM,MAAM,gBAAgB,GAAG,CAAC,MAGhC,EAAkD,EAAE;IACnD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAClC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,QAAA,gBAAgB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5E,CAAC,CAAA;AANY,QAAA,gBAAgB,GAAhB,gBAAgB,CAM5B;AAEM,MAAM,kBAAkB,GAAG,CAAC,MAKlC,EAAwC,EAAE;;;IACzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,KAAK,EAAE,qBAAqB,GAAG,KAAK,EAAE,GAAG,MAAM,CAAA;IAE1F,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAA;IAE/B,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,kCAAkC;IAClC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,OAAC,MAAA,MAAM,CAAC,aAAa,CAAC,gCAAgC,0CAAG,OAAO,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,CAAA;QAC9G,SAAS,GAAG,IAAA,QAAA,kBAAkB,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAA;IAClE,CAAC;SAAM,CAAC;QACN,qBAAqB;QACrB,SAAS,GAAG,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;IACtE,CAAC;IACD,IAAI,eAAe,IAAI,qBAAqB,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;QACnC,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAA;QACvD,IAAI,CAAC,qBAAqB,IAAI,kBAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAA;QAC9E,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AA3BY,QAAA,kBAAkB,GAAlB,kBAAkB,CA2B9B;AAEM,MAAM,gBAAgB,GAAG,CAAC,MAA0B,EAAwC,EAAE;;IACnG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACzB,MAAM,iBAAiB,GAAG,MAAA,MAAM,CAAC,aAAa,0CAAE,uBAAuB,CAAA;IACvE,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACrD,OAAO,IAAA,QAAA,kBAAkB,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;IAC9D,CAAC;SAAM,CAAC;QACN,OAAO,IAAA,QAAA,gBAAgB,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;IACpF,CAAC;AACH,CAAC,CAAA;AATY,QAAA,gBAAgB,GAAhB,gBAAgB,CAS5B;AAED,MAAM,eAAe,GAAG,CAAC,MAAiD,EAAU,EAAE;;;IACpF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAClC,MAAM,oBAAoB,GAAG,kBAAQ,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;IACtE,MAAM,2BAA2B,GAAG,oBAAoB;QACtD,CAAC,CAAC,IAAA,QAAA,gBAAgB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;QAC1D,CAAC,CAAC,IAAI,CAAA;IACR,MAAM,iBAAiB,GAAG,2BAA2B,aAA3B,2BAA2B,cAA3B,2BAA2B,GAAI,OAAO,CAAA;IAChE,aAAO,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,aAAa,0CAAE,KAAK,mCAAI,CAAC,CAAA;AACrD,CAAC,CAAA;AAED,MAAM,qCAAqC,GAAG,CAAC,MAI9C,EAAY,EAAE;;IACb,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA;IAE3C,MAAM,SAAS,GAAG,OAAwB,CAAA;IAE1C,MAAM,oCAAoC,SAAG,kBAAQ,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,mCAAI,EAAE,CAAA;IAC/G,MAAM,cAAc,SAAG,kBAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,mCAAI,EAAE,CAAA;IACzE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAe,EAAE,KAAK,EAAE,EAAE;QACjE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;QACvB,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAElD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,oCAAoC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrF,OAAO,aAAa,CAAA;IACtB,CAAC;IACD,MAAM,iCAAiC,GAAG,kBAAQ,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;QAC1F,CAAC,CAAE,cAA2B;QAC9B,CAAC,CAAC,CAAC,GAAI,cAA+C,CAAC;aAClD,IAAI,CACH,CAAC,SAAqC,EAAE,SAAqC,EAAE,EAAE,CAC/E,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CACzD;aACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC7B,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;IAE9D,MAAM,4BAA4B,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;QACtE,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;QAC3C,OAAO,CACL,CAAC,iCAAiC,CAAC,QAAQ,CAAC,SAAS,CAAC;YACtD,CAAC,oCAAoC,CAAC,QAAQ,CAAC,SAAS,CAAC;YACzD,kBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CACpC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,CACL,iCAAiC;QAC/B,+CAA+C;SAC9C,MAAM,CAAC,4BAA4B,CAAC;QACrC,iDAAiD;SAChD,MAAM,CAAC,oCAAoC,CAAC,CAChD,CAAA;AACH,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,KAA0B,EAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChF,MAAM,gBAAgB,GAAG,CAAC,MAA2B,EAAE,MAA2B,EAAU,EAAE,CAC5F,gBAAgB,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;AAE9C,MAAM,wBAAwB,GAAG,CAAC,MAMxC,EAAwC,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAA;IAEjF,MAAM,QAAQ,GAAG,IAAA,QAAA,kBAAkB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,CAAC,CAAC,MAAM,CACrG,kBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAC1B,CAAA;IAED,MAAM,2BAA2B,GAAG,qCAAqC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IAEvG,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;;QACtC,IAAI,eAAe,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,gCAAgC;YAChC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC7E,IAAI,kBAAkB,KAAK,CAAC;gBAAE,OAAO,kBAAkB,CAAA;YAEvD,sBAAsB;YACtB,MAAM,sBAAsB,GAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YAC7F,IAAI,sBAAsB,KAAK,CAAC;gBAAE,OAAO,sBAAsB,CAAA;YAE/D,uDAAuD;YACvD,MAAM,8BAA8B,GAAG,gBAAgB,CACrD,CAAC,CAAC,kBAAQ,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAC1C,CAAC,CAAC,kBAAQ,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAC3C,CAAA;YACD,IAAI,8BAA8B,KAAK,CAAC;gBAAE,OAAO,8BAA8B,CAAA;YAE/E,OAAO,OAAC,MAAM,CAAC,EAAE,mCAAI,CAAC,CAAC,GAAG,OAAC,MAAM,CAAC,EAAE,mCAAI,CAAC,CAAC,CAAA;QAC5C,CAAC;QACD,0CAA0C;QAC1C,OAAO,2BAA2B,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5G,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAtCY,QAAA,wBAAwB,GAAxB,wBAAwB,CAsCpC;AAEM,MAAM,4BAA4B,GAAG,CAAC,MAM5C,EAAQ,EAAE;IACT,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IACzE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IACD,IAAI,aAAa,GAAG,IAAA,QAAA,gBAAgB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IACzD,OAAO,aAAa,EAAE,CAAC;QACrB,OAAO,CAAC,aAAa,CAAC,CAAA;QACtB,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,EAAI,EAAE,CAAC;YACjB,MAAK;QACP,CAAC;QACD,aAAa,GAAG,IAAA,QAAA,gBAAgB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAA;IACtE,CAAC;AACH,CAAC,CAAA;AAnBY,QAAA,4BAA4B,GAA5B,4BAA4B,CAmBxC;AAEM,MAAM,mBAAmB,GAAG,CAAC,MAInC,EAA6B,EAAE;IAC9B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAC7C,IAAI,MAAM,GAA8B,SAAS,CAAA;IACjD,IAAA,QAAA,4BAA4B,EAAC;QAC3B,MAAM;QACN,OAAO;QACP,uFAAuF;QACvF,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE;YACrB,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzB,MAAM,GAAG,SAAS,CAAA;YACpB,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM;KACzB,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AApBY,QAAA,mBAAmB,GAAnB,mBAAmB,CAoB/B;AASD,MAAM,oBAAoB,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAyB,EAAE,EAAE;IACxG,MAAM,KAAK,GAAG,IAAI,aAAK,EAAE,CAAA;IAEzB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtB,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,CAAA;QAEtC,OAAO,CAAC,cAAc,CAAC,CAAA;QAEvB,IAAI,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAyB,EAAE,EAAE;IACtG,MAAM,KAAK,GAAmB,EAAE,CAAA;IAEhC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEnB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QAEnC,OAAO,CAAC,cAAc,CAAC,CAAA;QAEvB,IAAI,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,CAAC,CAAA;YAC5C,yCAAyC;YACzC,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC1D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAEM,MAAM,8BAA8B,GAAG,CAAC,MAQ9C,EAAE,EAAE;IACH,MAAM,EACJ,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,EACP,eAAe,GAAG,KAAK,EACvB,cAAc,GAAG,uBAAc,CAAC,GAAG,EACnC,0BAA0B,GAAG,KAAK,GACnC,GAAG,MAAM,CAAA;IAEV,MAAM,0BAA0B,GAAG,CAAC,cAA4B,EAAE,EAAE,CAClE,eAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,IAAA,QAAA,kBAAkB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;QAC1E,CAAC,CAAC,IAAA,QAAA,wBAAwB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,KAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IAEnG,MAAM,cAAc,GAAG,CAAC,cAA4B,EAAW,EAAE,CAC/D,cAAc,CAAC,IAAI,KAAK,qBAAW,CAAC,MAAM;QAC1C,CAAC,cAAc,KAAK,OAAO;YACzB,kBAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;YAC/B,CAAC,0BAA0B;YAC3B,kBAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAA;IAEtC,MAAM,cAAc,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA;IACpG,IAAI,cAAc,KAAK,uBAAc,CAAC,GAAG,EAAE,CAAC;QAC1C,oBAAoB,CAAC,cAAc,CAAC,CAAA;IACtC,CAAC;SAAM,CAAC;QACN,kBAAkB,CAAC,cAAc,CAAC,CAAA;IACpC,CAAC;AACH,CAAC,CAAA;AArCY,QAAA,8BAA8B,GAA9B,8BAA8B,CAqC1C;AAEM,MAAM,aAAa,GAAG,CAAC,MAK7B,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,uBAAc,CAAC,GAAG,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,MAAM,CAAA;IAChG,MAAM,OAAO,GAAG,IAAA,QAAA,cAAc,EAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1C,OAAO,IAAA,QAAA,8BAA8B,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,CAAA;AAC/G,CAAC,CAAA;AATY,QAAA,aAAa,GAAb,aAAa,CASzB;AAED,gBAAgB;AACT,MAAM,oBAAoB,GAAG,CAAC,MAAgD,EAA2B,EAAE;IAChH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAClC,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAA;IACzD,IAAI,CAAC,iBAAiB;QAAE,OAAO,SAAS,CAAA;IACxC,MAAM,aAAa,GAAG,IAAA,QAAA,gBAAgB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAA;IAC3E,OAAO,aAA4B,CAAA;AACrC,CAAC,CAAA;AANY,QAAA,oBAAoB,GAApB,oBAAoB,CAMhC;AAEM,MAAM,uBAAuB,GAAG,CAAC,MAAgD,EAAiB,EAAE;IACzG,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAClC,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,IAAI,iBAAiB,GAAG,IAAA,QAAA,oBAAoB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IACjE,OAAO,iBAAiB,EAAE,CAAC;QACzB,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QACpC,iBAAiB,GAAG,IAAA,QAAA,oBAAoB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAA;IAClF,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AATY,QAAA,uBAAuB,GAAvB,uBAAuB,CASnC;AAEM,MAAM,mBAAmB,GAAG,CAAC,MAGnC,EAAW,EAAE;IACZ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAClC,MAAM,aAAa,GAAG,IAAA,QAAA,gBAAgB,EAAC,MAAM,CAAC,CAAA;IAC9C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,IAAI,KAAM,GAAmD,CAAC,KAAK,CAAC,iBAAiB,CAAA;QACtG,CAAC;mBAAO,CAAC;YACP,oDAAoD;YACpD,OAAM;QACR,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAdY,QAAA,mBAAmB,GAAnB,mBAAmB,CAc/B;AAEM,MAAM,4BAA4B,GAAG,CAAC,MAAgD,EAAU,EAAE;IACvG,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAClC,MAAM,iBAAiB,GAAG,IAAA,QAAA,oBAAoB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IACnE,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAA,QAAA,4BAA4B,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACzG,CAAC,CAAA;AAJY,QAAA,4BAA4B,GAA5B,4BAA4B,CAIxC;AAEM,MAAM,6BAA6B,GAAG,CAAC,MAAgD,EAAiB,EAAE;;IAC/G,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAElC,MAAM,YAAY,GAAG,kBAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IACtD,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAA;IAE5B,MAAM,QAAQ,GAAG,IAAA,kCAAiB,EAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;IAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,OAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAA;IAC9D,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IAE/B,MAAM,aAAa,GAAG,IAAA,QAAA,gBAAgB,EAAC,MAAM,CAAC,CAAA;IAC9C,OAAO,aAAa,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,qBAAW,CAAC,IAAI,IAAI,kBAAQ,CAAC,oBAAoB,CAAC,GAAkB,CAAC,KAAK,OAAO,CAAC,IAAI,CAC5F,CAAA;AACpB,CAAC,CAAA;AAdY,QAAA,6BAA6B,GAA7B,6BAA6B,CAczC;AAEM,MAAM,gCAAgC,GAAG,CAAC,MAAgD,EAAmB,EAAE;IACpH,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAClC,MAAM,MAAM,GAAoB,EAAE,CAAA;IAClC,MAAM,0BAA0B,GAAG,IAAA,QAAA,6BAA6B,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IACrF,KAAK,MAAM,gBAAgB,IAAI,0BAA0B,EAAE,CAAC;QAC1D,IAAI,kBAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,IAAA,QAAA,gCAAgC,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAA;YACzF,IAAI,SAAS,IAAI,kBAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAbY,QAAA,gCAAgC,GAAhC,gCAAgC,CAa5C;AAEM,MAAM,cAAc,GAAG,CAAC,MAI9B,EAAwC,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAEzC,OAAO,IAAA,QAAA,8BAA8B,EAAC;QACpC,MAAM;QACN,KAAK;QACL,OAAO;QACP,SAAS,EAAE,CAAC,cAAc,EAAE,EAAE,CAC5B,kBAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;YAC9B,CAAC,cAAc,CAAC,OAAO;YACvB,CAAC,eAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,kBAAQ,CAAC,SAAS,CAAC,KAAM,CAAC,CAAC,cAAc,CAAC,CAAC;KACzE,CAAC,CAAA;AACJ,CAAC,CAAA;AAhBY,QAAA,cAAc,GAAd,cAAc,CAgB1B;AAEM,MAAM,WAAW,GAAG,CAAC,MAA0C,EAAE,EAAE;IACxE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAChC,MAAM,OAAO,GAAG,IAAA,QAAA,cAAc,EAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1C,OAAO,IAAA,QAAA,cAAc,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;AAC5D,CAAC,CAAA;AAJY,QAAA,WAAW,GAAX,WAAW,CAIvB;AAEM,MAAM,oBAAoB,GAAG,CAAC,MAAoD,EAA2B,EAAE;IACpH,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IACpC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IAEhD,MAAM,QAAQ,GAAG,IAAA,QAAA,kBAAkB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;IACnE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,qBAAW,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxG,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,iBAAiB,CAAC,CAAC,CAAgB,CAAA;IAC5C,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAVY,QAAA,oBAAoB,GAApB,oBAAoB,CAUhC;AAEM,MAAM,mBAAmB,GAAG,CAAC,MAAyD,EAAW,EAAE;IACxG,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAClC,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAW,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACnD,MAAM,SAAS,GAAG,IAAA,QAAA,gBAAgB,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IACvD,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAC5B,MAAM,UAAU,GAAG,IAAA,QAAA,oBAAoB,EAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;IAC9D,OAAO,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,OAAO,CAAC,IAAI,CAAA;AAC1C,CAAC,CAAA;AAPY,QAAA,mBAAmB,GAAnB,mBAAmB,CAO/B;AAEM,MAAM,8BAA8B,GAAG,CAAC,MAM9C,EAAwC,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;IACrE,MAAM,MAAM,GAAmB,EAAE,CAAA;IACjC,IAAA,QAAA,8BAA8B,EAAC;QAC7B,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO,EAAE,CAAC,cAAc,EAAE,EAAE;YAC1B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC;QACD,eAAe;QACf,0BAA0B,EAAE,IAAI;KACjC,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAtBY,QAAA,8BAA8B,GAA9B,8BAA8B,CAsB1C;AAEM,MAAM,0CAA0C,GAAG,CAAC,MAI1D,EAAwC,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IACzC,OAAO,IAAA,QAAA,8BAA8B,EAAC;QACpC,MAAM;QACN,KAAK;QACL,OAAO;QACP,SAAS,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,kBAAQ,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;KACjG,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,0CAA0C,GAA1C,0CAA0C,CAYtD;AAED,MAAM,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,GACvG,aAAa,CAAA;QACN,0BAA0B;QAAE,iBAAiB;QAAE,4BAA4B;QAAE,kBAAkB","sourcesContent":["import { Survey } from '../survey'\nimport {\n NodeDef,\n NodeDefCode,\n NodeDefCodeProps,\n NodeDefEntity,\n NodeDefEntityChildPosition,\n NodeDefMap,\n NodeDefProps,\n NodeDefType,\n NodeDefs,\n} from '../../nodeDef'\nimport { Arrays, Objects, Queue } from '../../utils'\nimport { SystemError } from '../../error'\nimport * as NodeDefsReader from './_nodeDefs/nodeDefsReader'\nimport * as NodeDefsIndex from './_nodeDefs/nodeDefsIndex'\nimport { TraverseMethod } from '../../common'\nimport { getCategoryByUuid } from './surveysGetters'\n\nexport const getNodeDefsArray = NodeDefsReader.getNodeDefsArray\n\nexport const findNodeDefByUuid = (params: {\n survey: Survey\n uuid: string\n}): NodeDef<NodeDefType, NodeDefProps> | undefined => {\n const { survey, uuid } = params\n return survey.nodeDefs?.[uuid]\n}\n\nexport const getNodeDefByUuid = (params: { survey: Survey; uuid: string }): NodeDef<NodeDefType, NodeDefProps> => {\n const { survey, uuid } = params\n const nodeDef = findNodeDefByUuid({ survey, uuid })\n if (!nodeDef) throw new SystemError('survey.nodeDefUuidNotFound', { uuid })\n return nodeDef\n}\n\nexport const findNodeDefByName = (params: {\n survey: Survey\n name: string\n}): NodeDef<NodeDefType, NodeDefProps> | undefined => {\n const { survey, name } = params\n const nodeDefUuidByNameIndex = survey.nodeDefsIndex?.nodeDefUuidByName\n if (nodeDefUuidByNameIndex) {\n const uuid = nodeDefUuidByNameIndex[name]\n return findNodeDefByUuid({ survey, uuid })\n }\n return getNodeDefsArray(survey).find((nodeDef) => nodeDef.props.name === name)\n}\n\nexport const getNodeDefByName = (params: { survey: Survey; name: string }): NodeDef<NodeDefType, NodeDefProps> => {\n const { survey, name } = params\n const nodeDef = findNodeDefByName({ survey, name })\n if (!nodeDef) {\n throw new SystemError('survey.nodeDefNameNotFound', { name })\n }\n return nodeDef\n}\n\nexport const getNodeDefsByUuids = (params: { survey: Survey; uuids: string[] }) => {\n const { survey, uuids } = params\n return uuids.map((uuid) => getNodeDefByUuid({ survey, uuid }))\n}\n\nexport const findNodeDefsByUuids = (params: {\n survey: Survey\n uuids: string[]\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, uuids } = params\n return uuids.reduce((acc: NodeDef<NodeDefType, NodeDefProps>[], uuid) => {\n const nodeDef = findNodeDefByUuid({ survey, uuid })\n if (nodeDef) {\n acc.push(nodeDef)\n }\n return acc\n }, [])\n}\n\nexport const getNodeDefParent = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDefEntity | undefined => {\n const { survey, nodeDef } = params\n if (!nodeDef.parentUuid) return undefined\n return getNodeDefByUuid({ survey, uuid: nodeDef.parentUuid }) as NodeDefEntity\n}\n\nexport const getNodeDefAncestorMultipleEntity = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDefEntity | undefined => {\n const { survey, nodeDef } = params\n return findAncestorNodeDef({\n survey,\n nodeDef,\n predicate: (entityDef) => NodeDefs.isRoot(entityDef) || NodeDefs.isMultiple(entityDef),\n })\n}\n\nexport const isNodeDefAncestor = (params: {\n nodeDefAncestor: NodeDef<NodeDefType, NodeDefProps>\n nodeDefDescendant: NodeDef<NodeDefType, NodeDefProps>\n}): boolean => {\n const { nodeDefAncestor, nodeDefDescendant } = params\n\n return Arrays.startsWith(nodeDefDescendant.meta.h, [...nodeDefAncestor.meta.h, nodeDefAncestor.uuid])\n}\n\nexport const getNodeDefRoot = (params: { survey: Survey }): NodeDefEntity => {\n const { survey } = params\n if (!survey.nodeDefs) throw new SystemError('survey.emptyNodeDefs')\n\n const rootDefUuidInIndex = survey.nodeDefsIndex?.rootDefUuid\n\n const rootDef = rootDefUuidInIndex\n ? getNodeDefByUuid({ survey, uuid: rootDefUuidInIndex })\n : getNodeDefsArray(survey).find((nodeDef) => !nodeDef.parentUuid)\n\n if (!rootDef) throw new SystemError('survey.rootDefNotFound')\n\n return rootDef as NodeDefEntity\n}\n\nexport const getNodeDefSource = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDef<NodeDefType, NodeDefProps> | undefined => {\n const { survey, nodeDef } = params\n return nodeDef.virtual ? getNodeDefParent({ survey, nodeDef }) : undefined\n}\n\nexport const getNodeDefChildren = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n includeAnalysis?: boolean\n includeLayoutElements?: boolean\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, nodeDef, includeAnalysis = false, includeLayoutElements = false } = params\n\n if (!survey.nodeDefs) return []\n\n let childDefs = []\n // try to get children using index\n if (survey.nodeDefsIndex) {\n const childrenUuids = Object.keys(survey.nodeDefsIndex.childDefUuidPresenceByParentUuid?.[nodeDef.uuid] ?? {})\n childDefs = getNodeDefsByUuids({ survey, uuids: childrenUuids })\n } else {\n // calculate children\n childDefs = NodeDefsReader.calculateNodeDefChildren(nodeDef)(survey)\n }\n if (includeAnalysis && includeLayoutElements) {\n return childDefs\n }\n return childDefs.filter((childDef) => {\n if (!includeAnalysis && childDef.analysis) return false\n if (!includeLayoutElements && NodeDefs.isLayoutElement(childDef)) return false\n return true\n })\n}\n\nexport const getQualifierDefs = (params: { survey: Survey }): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey } = params\n const qualifierPresence = survey.nodeDefsIndex?.qualifierPresenceByUuid\n if (qualifierPresence) {\n const qualifierUuids = Object.keys(qualifierPresence)\n return getNodeDefsByUuids({ survey, uuids: qualifierUuids })\n } else {\n return getNodeDefsArray(survey).filter((nodeDef) => NodeDefs.isQualifier(nodeDef))\n }\n}\n\nconst getIndexInChain = (params: { survey: Survey; nodeDef: NodeDef<any> }): number => {\n const { survey, nodeDef } = params\n const areaBasedEstimatedOf = NodeDefs.getAreaBasedEstimatedOf(nodeDef)\n const areaBasedEstimatedOfNodeDef = areaBasedEstimatedOf\n ? getNodeDefByUuid({ survey, uuid: areaBasedEstimatedOf })\n : null\n const nodeDefToConsider = areaBasedEstimatedOfNodeDef ?? nodeDef\n return nodeDefToConsider?.propsAdvanced?.index ?? 0\n}\n\nconst getNodeDefChildrenUuidsSortedByLayout = (params: {\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n cycle: string\n children: NodeDef<any>[]\n}): string[] => {\n const { nodeDef, cycle, children } = params\n\n const entityDef = nodeDef as NodeDefEntity\n\n const childrenEntitiesInOwnPageSortedUuids = NodeDefs.getChildrenEntitiesInOwnPageUudis(cycle)(entityDef) ?? []\n const layoutChildren = NodeDefs.getLayoutChildren(cycle)(entityDef) ?? []\n const childrenByUuids = children.reduce((acc: NodeDefMap, child) => {\n acc[child.uuid] = child\n return acc\n }, {})\n const childrenUuids = Object.keys(childrenByUuids)\n\n if (layoutChildren.length === 0 && childrenEntitiesInOwnPageSortedUuids.length === 0) {\n return childrenUuids\n }\n const sortedChildrenDefsInSamePageUuids = NodeDefs.isLayoutRenderTypeTable(cycle)(entityDef)\n ? (layoutChildren as string[])\n : [...(layoutChildren as NodeDefEntityChildPosition[])]\n .sort(\n (gridItem1: NodeDefEntityChildPosition, gridItem2: NodeDefEntityChildPosition) =>\n gridItem1.y - gridItem2.y || gridItem1.x - gridItem2.x\n )\n .map((gridItem) => gridItem.i)\n .filter((nodeDefUuid) => !!childrenByUuids[nodeDefUuid])\n\n const missingChildrenUuidsInLayout = childrenUuids.filter((childUuid) => {\n const childDef = childrenByUuids[childUuid]\n return (\n !sortedChildrenDefsInSamePageUuids.includes(childUuid) &&\n !childrenEntitiesInOwnPageSortedUuids.includes(childUuid) &&\n NodeDefs.isInCycle(cycle)(childDef)\n )\n })\n\n return (\n sortedChildrenDefsInSamePageUuids\n // add child uuids missing in layout at the end\n .concat(missingChildrenUuidsInLayout)\n // add child entities in own page at the very end\n .concat(childrenEntitiesInOwnPageSortedUuids)\n )\n}\n\nconst _booleanToNumber = (value: boolean | undefined): number => (value ? 1 : 0)\nconst _compareBooleans = (value1: boolean | undefined, value2: boolean | undefined): number =>\n _booleanToNumber(value1) - _booleanToNumber(value2)\n\nexport const getNodeDefChildrenSorted = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n cycle: string\n includeAnalysis?: boolean\n includeLayoutElements?: boolean\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, nodeDef, cycle, includeAnalysis, includeLayoutElements } = params\n\n const children = getNodeDefChildren({ survey, nodeDef, includeAnalysis, includeLayoutElements }).filter(\n NodeDefs.isInCycle(cycle)\n )\n\n const childrenUuidsSortedByLayout = getNodeDefChildrenUuidsSortedByLayout({ nodeDef, cycle, children })\n\n return children.sort((child1, child2) => {\n if (includeAnalysis && (child1.analysis || child2.analysis)) {\n // analysis attribute at the end\n const analysisComparison = _compareBooleans(child1.analysis, child2.analysis)\n if (analysisComparison !== 0) return analysisComparison\n\n // sort by chain index\n const indexInChainComparison =\n getIndexInChain({ survey, nodeDef: child1 }) - getIndexInChain({ survey, nodeDef: child2 })\n if (indexInChainComparison !== 0) return indexInChainComparison\n\n // one node def is the area base estimated of the other\n const areaBasedEstimatedOfComparison = _compareBooleans(\n !!NodeDefs.getAreaBasedEstimatedOf(child1),\n !!NodeDefs.getAreaBasedEstimatedOf(child2)\n )\n if (areaBasedEstimatedOfComparison !== 0) return areaBasedEstimatedOfComparison\n\n return (child1.id ?? 0) - (child2.id ?? 0)\n }\n // keep sorting as defined in layout props\n return childrenUuidsSortedByLayout.indexOf(child1.uuid) - childrenUuidsSortedByLayout.indexOf(child2.uuid)\n })\n}\n\nexport const visitAncestorsAndSelfNodeDef = (params: {\n survey: Survey\n nodeDef: NodeDef<any>\n visitor: (nodeDef: NodeDef<any>) => void\n stopIfFn?: () => boolean\n includeSelf?: boolean\n}): void => {\n const { survey, nodeDef, visitor, stopIfFn, includeSelf = true } = params\n if (includeSelf) {\n visitor(nodeDef)\n }\n let currentParent = getNodeDefParent({ survey, nodeDef })\n while (currentParent) {\n visitor(currentParent)\n if (stopIfFn?.()) {\n break\n }\n currentParent = getNodeDefParent({ survey, nodeDef: currentParent })\n }\n}\n\nexport const findAncestorNodeDef = (params: {\n survey: Survey\n nodeDef: NodeDef<any>\n predicate: (entityDef: NodeDefEntity) => boolean\n}): NodeDefEntity | undefined => {\n const { survey, nodeDef, predicate } = params\n let result: NodeDefEntity | undefined = undefined\n visitAncestorsAndSelfNodeDef({\n survey,\n nodeDef,\n // ancestors only: the node def itself is never an ancestor (e.g. a multiple attribute)\n includeSelf: false,\n visitor: (entityDef) => {\n if (predicate(entityDef)) {\n result = entityDef\n }\n },\n stopIfFn: () => !!result,\n })\n return result\n}\n\ntype NodeDefTraverseParams = {\n nodeDef: NodeDef<any>\n visitor: (nodeDef: NodeDef<any>) => void\n shouldTraverse: (nodeDef: NodeDef<any>) => boolean\n getChildren: (nodeDef: NodeDef<any>) => NodeDef<any>[]\n}\n\nconst traverseBreadthFirst = ({ nodeDef, visitor, shouldTraverse, getChildren }: NodeDefTraverseParams) => {\n const queue = new Queue()\n\n queue.enqueue(nodeDef)\n\n while (!queue.isEmpty()) {\n const visitedNodeDef = queue.dequeue()\n\n visitor(visitedNodeDef)\n\n if (shouldTraverse(visitedNodeDef)) {\n queue.enqueueItems(getChildren(visitedNodeDef))\n }\n }\n}\n\nconst traverseDepthFirst = ({ nodeDef, visitor, shouldTraverse, getChildren }: NodeDefTraverseParams) => {\n const stack: NodeDef<any>[] = []\n\n stack.push(nodeDef)\n\n while (stack.length > 0) {\n const visitedNodeDef = stack.pop()!\n\n visitor(visitedNodeDef)\n\n if (shouldTraverse(visitedNodeDef)) {\n const children = getChildren(visitedNodeDef)\n // add children to stack in reverse order\n for (let index = children.length - 1; index >= 0; index--) {\n stack.push(children[index])\n }\n }\n }\n}\n\nexport const visitDescendantsAndSelfNodeDef = (params: {\n survey: Survey\n cycle?: string\n nodeDef: NodeDef<any>\n visitor: (nodeDef: NodeDef<any>) => void\n includeAnalysis?: boolean\n traverseMethod?: TraverseMethod\n traverseOnlySingleEntities?: boolean\n}) => {\n const {\n survey,\n cycle,\n nodeDef,\n visitor,\n includeAnalysis = false,\n traverseMethod = TraverseMethod.bfs,\n traverseOnlySingleEntities = false,\n } = params\n\n const getNodeDefChildrenInternal = (visitedNodeDef: NodeDef<any>) =>\n Objects.isEmpty(cycle)\n ? getNodeDefChildren({ survey, nodeDef: visitedNodeDef, includeAnalysis })\n : getNodeDefChildrenSorted({ survey, nodeDef: visitedNodeDef, cycle: cycle!, includeAnalysis })\n\n const shouldTraverse = (visitedNodeDef: NodeDef<any>): boolean =>\n visitedNodeDef.type === NodeDefType.entity &&\n (visitedNodeDef === nodeDef ||\n NodeDefs.isRoot(visitedNodeDef) ||\n !traverseOnlySingleEntities ||\n NodeDefs.isSingle(visitedNodeDef))\n\n const traverseParams = { nodeDef, visitor, shouldTraverse, getChildren: getNodeDefChildrenInternal }\n if (traverseMethod === TraverseMethod.bfs) {\n traverseBreadthFirst(traverseParams)\n } else {\n traverseDepthFirst(traverseParams)\n }\n}\n\nexport const visitNodeDefs = (params: {\n survey: Survey\n visitor: (nodeDef: NodeDef<any>) => void\n includeAnalysis?: boolean\n traverseMethod?: TraverseMethod\n}) => {\n const { survey, visitor, traverseMethod = TraverseMethod.bfs, includeAnalysis = false } = params\n const rootDef = getNodeDefRoot({ survey })\n return visitDescendantsAndSelfNodeDef({ survey, nodeDef: rootDef, visitor, traverseMethod, includeAnalysis })\n}\n\n// Node Def Code\nexport const getNodeDefParentCode = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefCode | undefined => {\n const { survey, nodeDef } = params\n const parentCodeDefUuid = nodeDef.props.parentCodeDefUuid\n if (!parentCodeDefUuid) return undefined\n const parentCodeDef = getNodeDefByUuid({ survey, uuid: parentCodeDefUuid })\n return parentCodeDef as NodeDefCode\n}\n\nexport const getNodeDefAncestorCodes = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefCode[] => {\n const { survey, nodeDef } = params\n const ancestors = []\n let currentParentCode = getNodeDefParentCode({ survey, nodeDef })\n while (currentParentCode) {\n ancestors.unshift(currentParentCode)\n currentParentCode = getNodeDefParentCode({ survey, nodeDef: currentParentCode })\n }\n return ancestors\n}\n\nexport const isNodeDefParentCode = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): boolean => {\n const { survey, nodeDef } = params\n const nodeDefsArray = getNodeDefsArray(survey)\n return nodeDefsArray.some((def) => {\n try {\n return nodeDef.uuid === (def as NodeDef<NodeDefType.code, NodeDefCodeProps>).props.parentCodeDefUuid\n } catch {\n // ignore it: def is not a code attribute definition\n return\n }\n })\n}\n\nexport const getNodeDefCategoryLevelIndex = (params: { survey: Survey; nodeDef: NodeDefCode }): number => {\n const { survey, nodeDef } = params\n const parentCodeNodeDef = getNodeDefParentCode({ survey, nodeDef })\n return parentCodeNodeDef ? 1 + getNodeDefCategoryLevelIndex({ survey, nodeDef: parentCodeNodeDef }) : 0\n}\n\nexport const getDependentCodeAttributeDefs = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefCode[] => {\n const { survey, nodeDef } = params\n\n const categoryUuid = NodeDefs.getCategoryUuid(nodeDef)\n if (!categoryUuid) return []\n\n const category = getCategoryByUuid({ survey, categoryUuid })\n const levelsCount = Object.keys(category?.levels ?? {}).length\n if (levelsCount <= 1) return []\n\n const nodeDefsArray = getNodeDefsArray(survey)\n return nodeDefsArray.filter(\n (def) => def.type === NodeDefType.code && NodeDefs.getParentCodeDefUuid(def as NodeDefCode) === nodeDef.uuid\n ) as NodeDefCode[]\n}\n\nexport const getDependentEnumeratedEntityDefs = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefEntity[] => {\n const { survey, nodeDef } = params\n const result: NodeDefEntity[] = []\n const dependentCodeAttributeDefs = getDependentCodeAttributeDefs({ survey, nodeDef })\n for (const dependentCodeDef of dependentCodeAttributeDefs) {\n if (NodeDefs.isKey(dependentCodeDef)) {\n const entityDef = getNodeDefAncestorMultipleEntity({ survey, nodeDef: dependentCodeDef })\n if (entityDef && NodeDefs.isEnumerate(entityDef)) {\n result.push(entityDef)\n }\n }\n }\n return result\n}\n\nexport const getNodeDefKeys = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n cycle?: string\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, cycle, nodeDef } = params\n\n return getDescendantsInSingleEntities({\n survey,\n cycle,\n nodeDef,\n predicate: (visitedNodeDef) =>\n NodeDefs.isKey(visitedNodeDef) &&\n !visitedNodeDef.deleted &&\n (Objects.isEmpty(cycle) || NodeDefs.isInCycle(cycle!)(visitedNodeDef)),\n })\n}\n\nexport const getRootKeys = (params: { survey: Survey; cycle?: string }) => {\n const { survey, cycle } = params\n const rootDef = getNodeDefRoot({ survey })\n return getNodeDefKeys({ survey, nodeDef: rootDef, cycle })\n}\n\nexport const getNodeDefEnumerator = (params: { survey: Survey; entityDef: NodeDefEntity }): NodeDefCode | undefined => {\n const { survey, entityDef } = params\n if (!entityDef.props.enumerate) return undefined\n\n const children = getNodeDefChildren({ survey, nodeDef: entityDef })\n const codeAttributeKeys = children.filter((child) => child.type === NodeDefType.code && child.props.key)\n if (codeAttributeKeys.length === 1) {\n return codeAttributeKeys[0] as NodeDefCode\n }\n return undefined\n}\n\nexport const isNodeDefEnumerator = (params: { survey: Survey; nodeDef: NodeDef<NodeDefType> }): boolean => {\n const { survey, nodeDef } = params\n if (nodeDef.type !== NodeDefType.code) return false\n const entityDef = getNodeDefParent({ survey, nodeDef })\n if (!entityDef) return false\n const enumerator = getNodeDefEnumerator({ survey, entityDef })\n return enumerator?.uuid === nodeDef.uuid\n}\n\nexport const getDescendantsInSingleEntities = (params: {\n survey: Survey\n cycle?: string\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n predicate?: (visitedNodeDef: NodeDef<NodeDefType, NodeDefProps>) => boolean\n includeAnalysis?: boolean\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, cycle, nodeDef, predicate, includeAnalysis } = params\n const result: NodeDef<any>[] = []\n visitDescendantsAndSelfNodeDef({\n survey,\n cycle,\n nodeDef,\n visitor: (visitedNodeDef) => {\n if (!predicate || predicate(visitedNodeDef)) {\n result.push(visitedNodeDef)\n }\n },\n includeAnalysis,\n traverseOnlySingleEntities: true,\n })\n return result\n}\n\nexport const getNodeDefsIncludedInMultipleEntitySummary = (params: {\n survey: Survey\n cycle: string\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, cycle, nodeDef } = params\n return getDescendantsInSingleEntities({\n survey,\n cycle,\n nodeDef,\n predicate: (visitedNodeDef) => NodeDefs.isIncludedInMultipleEntitySummary(cycle)(visitedNodeDef),\n })\n}\n\nconst { buildAndAssocNodeDefsIndex, addNodeDefToIndex, updateNodeDefUuidByNameIndex, deleteNodeDefIndex } =\n NodeDefsIndex\nexport { buildAndAssocNodeDefsIndex, addNodeDefToIndex, updateNodeDefUuidByNameIndex, deleteNodeDefIndex }\n"]}
|
|
@@ -12,7 +12,8 @@ const getCategoryItemByUuid = (params) => {
|
|
|
12
12
|
exports.getCategoryItemByUuid = getCategoryItemByUuid;
|
|
13
13
|
const nullParentItemUuid = 'null';
|
|
14
14
|
const getCategoryItems = (params) => {
|
|
15
|
-
var _a, _b, _c
|
|
15
|
+
var _a, _b, _c;
|
|
16
|
+
var _d;
|
|
16
17
|
const { survey, categoryUuid, parentItemUuid = nullParentItemUuid } = params;
|
|
17
18
|
const itemUuids = Object.values((_d = (_c = (_b = (_a = survey.refData) === null || _a === void 0 ? void 0 : _a.categoryItemUuidIndex) === null || _b === void 0 ? void 0 : _b[categoryUuid]) === null || _c === void 0 ? void 0 : _c[parentItemUuid]) !== null && _d !== void 0 ? _d : {});
|
|
18
19
|
const items = itemUuids.reduce((acc, itemUuid) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refsData.js","sourceRoot":"","sources":["../../../src/survey/surveys/refsData.ts"],"names":[],"mappings":"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","sourcesContent":["import { Survey } from '../survey'\nimport { CategoryItem, CategoryItems } from '../../category'\nimport { Taxon } from '../../taxonomy'\nimport { NodeDefCode, NodeDefs, NodeDefTaxon } from '../../nodeDef'\nimport { getNodeDefCategoryLevelIndex } from './nodeDefs'\n\nexport const getCategoryItemByUuid = (params: { survey: Survey; itemUuid: string }): CategoryItem | undefined => {\n const { survey, itemUuid } = params\n return survey.refData?.categoryItemIndex[itemUuid]\n}\n\nconst nullParentItemUuid = 'null'\n\nexport const getCategoryItems = (params: {\n survey: Survey\n categoryUuid: string\n parentItemUuid?: string\n}): CategoryItem[] => {\n const { survey, categoryUuid, parentItemUuid = nullParentItemUuid } = params\n const itemUuids: string[] = Object.values(\n survey.refData?.categoryItemUuidIndex?.[categoryUuid]?.[parentItemUuid] ?? {}\n )\n const items = itemUuids.reduce((acc: CategoryItem[], itemUuid) => {\n const item = getCategoryItemByUuid({ survey, itemUuid })\n if (item) acc.push(item)\n return acc\n }, [])\n return items.sort((item1, item2) => {\n const index1 = CategoryItems.getIndex(item1)\n const index2 = CategoryItems.getIndex(item2)\n if (Number.isNaN(index1) && Number.isNaN(index2)) {\n return (item1.id ?? 0) - (item2.id ?? 0)\n }\n if (Number.isNaN(index1)) {\n return 1\n }\n if (Number.isNaN(index2)) {\n return -1\n }\n return index1 - index2\n })\n}\n\nexport const getCategoryItemUuidByCode = (params: {\n survey: Survey\n categoryUuid: string\n parentItemUuid: string | undefined\n code: string\n}): string | undefined => {\n const { survey, categoryUuid, parentItemUuid = nullParentItemUuid, code } = params\n return survey.refData?.categoryItemUuidIndex?.[categoryUuid]?.[parentItemUuid]?.[code]\n}\n\nexport const getCategoryItemByCodePaths = (params: {\n survey: Survey\n categoryUuid: string\n codePaths: string[]\n}): CategoryItem | undefined => {\n const { survey, categoryUuid, codePaths } = params\n const itemUuid = codePaths.reduce(\n (currentParentUuid: string | undefined, code) =>\n currentParentUuid\n ? getCategoryItemUuidByCode({ survey, categoryUuid, parentItemUuid: currentParentUuid, code })\n : undefined,\n 'null'\n )\n return itemUuid ? getCategoryItemByUuid({ survey, itemUuid }) : undefined\n}\n\nexport const getCategoryItemsInLevel = (params: { survey: Survey; categoryUuid: string; levelIndex?: number }) => {\n const { survey, categoryUuid, levelIndex = 0 } = params\n const rootItems = getCategoryItems({ survey, categoryUuid })\n if (levelIndex === 0) return rootItems\n\n let itemsPrevLevel = [...rootItems]\n let currentLevelIndex = 1\n while (currentLevelIndex <= levelIndex) {\n const itemsInLevel = []\n for (const item of itemsPrevLevel) {\n const { uuid: parentItemUuid } = item\n itemsInLevel.push(...getCategoryItems({ survey, categoryUuid, parentItemUuid }))\n }\n currentLevelIndex += 1\n itemsPrevLevel = itemsInLevel\n }\n return itemsPrevLevel\n}\n\nexport const getCategoryItemsByNodeDef = (params: { survey: Survey; nodeDef: NodeDefCode }) => {\n const { survey, nodeDef } = params\n const categoryUuid = NodeDefs.getCategoryUuid(nodeDef)!\n const levelIndex = getNodeDefCategoryLevelIndex({ survey, nodeDef })\n return getCategoryItemsInLevel({ survey, categoryUuid, levelIndex })\n}\n\nexport const getTaxonByUuid = (params: { survey: Survey; taxonUuid: string }): Taxon | undefined => {\n const { survey, taxonUuid } = params\n return survey.refData?.taxonIndex?.[taxonUuid]\n}\n\nexport const getTaxonByCode = (params: {\n survey: Survey\n taxonomyUuid: string\n taxonCode: string\n}): Taxon | undefined => {\n const { survey, taxonomyUuid, taxonCode } = params\n const taxonUuid = survey.refData?.taxonUuidIndex?.[taxonomyUuid]?.[taxonCode]\n return taxonUuid ? getTaxonByUuid({ survey, taxonUuid }) : undefined\n}\n\nexport const getTaxonVernacularNameUuid = (params: {\n survey: Survey\n taxonomyUuid: string\n taxonCode: string\n vernacularName: string\n}): string | undefined => {\n const { survey, taxonomyUuid, taxonCode, vernacularName } = params\n const taxon = getTaxonByCode({ survey, taxonomyUuid, taxonCode })\n const vernacularNameObj = Object.values(taxon?.vernacularNames ?? {})\n .flat()\n .find((vernNameObj) => vernNameObj.props.name === vernacularName)\n return vernacularNameObj?.uuid\n}\n\nexport const includesTaxonVernacularName = (params: {\n survey: Survey\n nodeDef: NodeDefTaxon\n taxonCode: string\n vernacularNameUuid: string\n}): boolean => {\n const { survey, nodeDef, taxonCode, vernacularNameUuid } = params\n const taxonomyUuid = NodeDefs.getTaxonomyUuid(nodeDef)\n if (!taxonomyUuid) return false\n\n const taxon = getTaxonByCode({ survey, taxonomyUuid, taxonCode })\n const vernacularNamesByLang = taxon?.vernacularNames ?? {}\n\n return Object.values(vernacularNamesByLang).some((vernacularNames) =>\n vernacularNames.some((vernacularName) => vernacularName.uuid === vernacularNameUuid)\n )\n}\n"]}
|
|
1
|
+
{"version":3,"file":"refsData.js","sourceRoot":"","sources":["../../../src/survey/surveys/refsData.ts"],"names":[],"mappings":"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","sourcesContent":["import { Survey } from '../survey'\nimport { CategoryItem, CategoryItems } from '../../category'\nimport { Taxon } from '../../taxonomy'\nimport { NodeDefCode, NodeDefs, NodeDefTaxon } from '../../nodeDef'\nimport { getNodeDefCategoryLevelIndex } from './nodeDefs'\n\nexport const getCategoryItemByUuid = (params: { survey: Survey; itemUuid: string }): CategoryItem | undefined => {\n const { survey, itemUuid } = params\n return survey.refData?.categoryItemIndex[itemUuid]\n}\n\nconst nullParentItemUuid = 'null'\n\nexport const getCategoryItems = (params: {\n survey: Survey\n categoryUuid: string\n parentItemUuid?: string\n}): CategoryItem[] => {\n const { survey, categoryUuid, parentItemUuid = nullParentItemUuid } = params\n const itemUuids: string[] = Object.values(\n survey.refData?.categoryItemUuidIndex?.[categoryUuid]?.[parentItemUuid] ?? {}\n )\n const items = itemUuids.reduce((acc: CategoryItem[], itemUuid) => {\n const item = getCategoryItemByUuid({ survey, itemUuid })\n if (item) acc.push(item)\n return acc\n }, [])\n return items.sort((item1, item2) => {\n const index1 = CategoryItems.getIndex(item1)\n const index2 = CategoryItems.getIndex(item2)\n if (Number.isNaN(index1) && Number.isNaN(index2)) {\n return (item1.id ?? 0) - (item2.id ?? 0)\n }\n if (Number.isNaN(index1)) {\n return 1\n }\n if (Number.isNaN(index2)) {\n return -1\n }\n return index1 - index2\n })\n}\n\nexport const getCategoryItemUuidByCode = (params: {\n survey: Survey\n categoryUuid: string\n parentItemUuid: string | undefined\n code: string\n}): string | undefined => {\n const { survey, categoryUuid, parentItemUuid = nullParentItemUuid, code } = params\n return survey.refData?.categoryItemUuidIndex?.[categoryUuid]?.[parentItemUuid]?.[code]\n}\n\nexport const getCategoryItemByCodePaths = (params: {\n survey: Survey\n categoryUuid: string\n codePaths: string[]\n}): CategoryItem | undefined => {\n const { survey, categoryUuid, codePaths } = params\n const itemUuid = codePaths.reduce(\n (currentParentUuid: string | undefined, code) =>\n currentParentUuid\n ? getCategoryItemUuidByCode({ survey, categoryUuid, parentItemUuid: currentParentUuid, code })\n : undefined,\n 'null'\n )\n return itemUuid ? getCategoryItemByUuid({ survey, itemUuid }) : undefined\n}\n\nexport const getCategoryItemsInLevel = (params: { survey: Survey; categoryUuid: string; levelIndex?: number }) => {\n const { survey, categoryUuid, levelIndex = 0 } = params\n const rootItems = getCategoryItems({ survey, categoryUuid })\n if (levelIndex === 0) return rootItems\n\n let itemsPrevLevel = [...rootItems]\n let currentLevelIndex = 1\n while (currentLevelIndex <= levelIndex) {\n const itemsInLevel = []\n for (const item of itemsPrevLevel) {\n const { uuid: parentItemUuid } = item\n itemsInLevel.push(...getCategoryItems({ survey, categoryUuid, parentItemUuid }))\n }\n currentLevelIndex += 1\n itemsPrevLevel = itemsInLevel\n }\n return itemsPrevLevel\n}\n\nexport const getCategoryItemsByNodeDef = (params: { survey: Survey; nodeDef: NodeDefCode }) => {\n const { survey, nodeDef } = params\n const categoryUuid = NodeDefs.getCategoryUuid(nodeDef)!\n const levelIndex = getNodeDefCategoryLevelIndex({ survey, nodeDef })\n return getCategoryItemsInLevel({ survey, categoryUuid, levelIndex })\n}\n\nexport const getTaxonByUuid = (params: { survey: Survey; taxonUuid: string }): Taxon | undefined => {\n const { survey, taxonUuid } = params\n return survey.refData?.taxonIndex?.[taxonUuid]\n}\n\nexport const getTaxonByCode = (params: {\n survey: Survey\n taxonomyUuid: string\n taxonCode: string\n}): Taxon | undefined => {\n const { survey, taxonomyUuid, taxonCode } = params\n const taxonUuid = survey.refData?.taxonUuidIndex?.[taxonomyUuid]?.[taxonCode]\n return taxonUuid ? getTaxonByUuid({ survey, taxonUuid }) : undefined\n}\n\nexport const getTaxonVernacularNameUuid = (params: {\n survey: Survey\n taxonomyUuid: string\n taxonCode: string\n vernacularName: string\n}): string | undefined => {\n const { survey, taxonomyUuid, taxonCode, vernacularName } = params\n const taxon = getTaxonByCode({ survey, taxonomyUuid, taxonCode })\n const vernacularNameObj = Object.values(taxon?.vernacularNames ?? {})\n .flat()\n .find((vernNameObj) => vernNameObj.props.name === vernacularName)\n return vernacularNameObj?.uuid\n}\n\nexport const includesTaxonVernacularName = (params: {\n survey: Survey\n nodeDef: NodeDefTaxon\n taxonCode: string\n vernacularNameUuid: string\n}): boolean => {\n const { survey, nodeDef, taxonCode, vernacularNameUuid } = params\n const taxonomyUuid = NodeDefs.getTaxonomyUuid(nodeDef)\n if (!taxonomyUuid) return false\n\n const taxon = getTaxonByCode({ survey, taxonomyUuid, taxonCode })\n const vernacularNamesByLang = taxon?.vernacularNames ?? {}\n\n return Object.values(vernacularNamesByLang).some((vernacularNames) =>\n vernacularNames.some((vernacularName) => vernacularName.uuid === vernacularNameUuid)\n )\n}\n"]}
|
|
@@ -2,10 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isRecordsMergeWithSameKeysAllowed = exports.isRecordsWithErrorsUploadFromMobileAllowed = exports.isRecordsUploadFromMobileAllowed = exports.isRecordsDownloadInMobileAllowed = exports.isVisibleInMobile = exports.isDataAnalystViewNotOwnedRecordsAllowed = exports.isDataEditorViewNotOwnedRecordsAllowed = exports.isSecurityPropEnabled = exports.getSecurity = void 0;
|
|
4
4
|
const survey_1 = require("../survey");
|
|
5
|
-
const getSecurity = (survey) => {
|
|
6
|
-
var _a;
|
|
7
|
-
return (Object.assign(Object.assign({}, survey_1.surveySecurityDefaults), (_a = survey === null || survey === void 0 ? void 0 : survey.props) === null || _a === void 0 ? void 0 : _a.security));
|
|
8
|
-
};
|
|
5
|
+
const getSecurity = (survey) => { var _a; return (Object.assign(Object.assign({}, survey_1.surveySecurityDefaults), (_a = survey === null || survey === void 0 ? void 0 : survey.props) === null || _a === void 0 ? void 0 : _a.security)); };
|
|
9
6
|
exports.getSecurity = getSecurity;
|
|
10
7
|
const isSecurityPropEnabled = (prop) => (survey) => !!(0, exports.getSecurity)(survey)[prop];
|
|
11
8
|
exports.isSecurityPropEnabled = isSecurityPropEnabled;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surveyGettersSecurity.js","sourceRoot":"","sources":["../../../src/survey/surveys/surveyGettersSecurity.ts"],"names":[],"mappings":";;;AAAA,sCAA8F;AAEvF,MAAM,WAAW,GAAG,CAAC,MAAc,EAAkB,EAAE
|
|
1
|
+
{"version":3,"file":"surveyGettersSecurity.js","sourceRoot":"","sources":["../../../src/survey/surveys/surveyGettersSecurity.ts"],"names":[],"mappings":";;;AAAA,sCAA8F;AAEvF,MAAM,WAAW,GAAG,CAAC,MAAc,EAAkB,EAAE,kBAAC,iCAC1D,+BAAsB,GACtB,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,QAAQ,EAC1B,GAAA,CAAA;AAHW,QAAA,WAAW,GAAX,WAAW,CAGtB;AAEK,MAAM,qBAAqB,GAChC,CAAC,IAAwB,EAAE,EAAE,CAC7B,CAAC,MAAc,EAAW,EAAE,CAC1B,CAAC,CAAC,IAAA,QAAA,WAAW,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;AAHlB,QAAA,qBAAqB,GAArB,qBAAqB,CAGH;AAExB,MAAM,sCAAsC,GAAG,CAAC,MAAc,EAAW,EAAE,CAChF,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,oCAAoC,CAAC,CAAC,MAAM,CAAC,CAAA;AAD3E,QAAA,sCAAsC,GAAtC,sCAAsC,CACqC;AAEjF,MAAM,uCAAuC,GAAG,CAAC,MAAc,EAAW,EAAE,CACjF,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,CAAA;AAD5E,QAAA,uCAAuC,GAAvC,uCAAuC,CACqC;AAElF,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAW,EAAE,CAC3D,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AADtD,QAAA,iBAAiB,GAAjB,iBAAiB,CACqC;AAE5D,MAAM,gCAAgC,GAAG,CAAC,MAAc,EAAW,EAAE,CAC1E,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAA;AADnE,QAAA,gCAAgC,GAAhC,gCAAgC,CACmC;AAEzE,MAAM,gCAAgC,GAAG,CAAC,MAAc,EAAW,EAAE,CAC1E,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAA;AADnE,QAAA,gCAAgC,GAAhC,gCAAgC,CACmC;AAEzE,MAAM,0CAA0C,GAAG,CAAC,MAAc,EAAW,EAAE,CACpF,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,sCAAsC,CAAC,CAAC,MAAM,CAAC,CAAA;AAD7E,QAAA,0CAA0C,GAA1C,0CAA0C,CACmC;AAEnF,MAAM,iCAAiC,GAAG,CAAC,MAAc,EAAW,EAAE,CAC3E,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAA;AADpE,QAAA,iCAAiC,GAAjC,iCAAiC,CACmC","sourcesContent":["import { Survey, SurveySecurity, surveySecurityDefaults, SurveySecurityProp } from '../survey'\n\nexport const getSecurity = (survey: Survey): SurveySecurity => ({\n ...surveySecurityDefaults,\n ...survey?.props?.security,\n})\n\nexport const isSecurityPropEnabled =\n (prop: SurveySecurityProp) =>\n (survey: Survey): boolean =>\n !!getSecurity(survey)[prop]\n\nexport const isDataEditorViewNotOwnedRecordsAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.dataEditorViewNotOwnedRecordsAllowed)(survey)\n\nexport const isDataAnalystViewNotOwnedRecordsAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.dataAnalystViewNotOwnedRecordsAllowed)(survey)\n\nexport const isVisibleInMobile = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.visibleInMobile)(survey)\n\nexport const isRecordsDownloadInMobileAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.allowRecordsDownloadInMobile)(survey)\n\nexport const isRecordsUploadFromMobileAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.allowRecordsUploadFromMobile)(survey)\n\nexport const isRecordsWithErrorsUploadFromMobileAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.allowRecordsWithErrorsUploadFromMobile)(survey)\n\nexport const isRecordsMergeWithSameKeysAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.allowRecordsMergeWithSameKeys)(survey)\n"]}
|
|
@@ -49,7 +49,8 @@ const getTaxonomyByUuid = (params) => {
|
|
|
49
49
|
};
|
|
50
50
|
exports.getTaxonomyByUuid = getTaxonomyByUuid;
|
|
51
51
|
const getCycleKeys = (survey) => {
|
|
52
|
-
var _a
|
|
52
|
+
var _a;
|
|
53
|
+
var _b;
|
|
53
54
|
const cycles = (_b = (_a = survey.props) === null || _a === void 0 ? void 0 : _a.cycles) !== null && _b !== void 0 ? _b : {};
|
|
54
55
|
return Object.keys(cycles);
|
|
55
56
|
};
|
|
@@ -67,12 +68,9 @@ const getDefaultCycleKey = (survey) => {
|
|
|
67
68
|
: defaultCycleKey;
|
|
68
69
|
};
|
|
69
70
|
exports.getDefaultCycleKey = getDefaultCycleKey;
|
|
70
|
-
const getSRSs = (survey) => {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
// backwards compatibility with Arena: srs stored in info in UI
|
|
74
|
-
(_d = (_c = survey.info) === null || _c === void 0 ? void 0 : _c.props) === null || _d === void 0 ? void 0 : _d.srs) !== null && _e !== void 0 ? _e : [];
|
|
75
|
-
};
|
|
71
|
+
const getSRSs = (survey) => { var _a, _b, _c; var _d, _e; return (_e = (_d = (_a = survey.props) === null || _a === void 0 ? void 0 : _a.srs) !== null && _d !== void 0 ? _d :
|
|
72
|
+
// backwards compatibility with Arena: srs stored in info in UI
|
|
73
|
+
(_c = (_b = survey.info) === null || _b === void 0 ? void 0 : _b.props) === null || _c === void 0 ? void 0 : _c.srs) !== null && _e !== void 0 ? _e : []; };
|
|
76
74
|
exports.getSRSs = getSRSs;
|
|
77
75
|
const getSRSIndex = (survey) => (0, exports.getSRSs)(survey).reduce((acc, srs) => {
|
|
78
76
|
acc[srs.code] = srs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surveysGetters.js","sourceRoot":"","sources":["../../../src/survey/surveys/surveysGetters.ts"],"names":[],"mappings":";;;AAAA,qCAAyD;AAKzD,uCAA6C;AAGtC,MAAM,OAAO,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAA;AAAvD,QAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"surveysGetters.js","sourceRoot":"","sources":["../../../src/survey/surveys/surveysGetters.ts"],"names":[],"mappings":"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","sourcesContent":["import { AuthGroupName, UserAuthGroup } from '../../auth'\nimport { Category } from '../../category'\nimport { LanguageCode } from '../../language'\nimport { SRS, SRSIndex } from '../../srs'\nimport { Taxonomy } from '../../taxonomy'\nimport { Arrays, Objects } from '../../utils'\nimport { Survey } from '../survey'\n\nexport const getName = (survey: Survey): string => survey.props.name\n\nexport const getLanguages = (survey: Survey): LanguageCode[] => survey.props.languages\n\nexport const getDefaultLanguage = (survey: Survey): LanguageCode => getLanguages(survey)[0]\n\nconst getMultilangPropValue =\n (prop: 'labels' | 'descriptions' | 'fieldManualLinks') =>\n (langCode?: LanguageCode) =>\n (survey: Survey): string | undefined => {\n const languageCode = langCode ?? getDefaultLanguage(survey)\n return survey.props[prop]?.[languageCode]\n }\nexport const getLabel = getMultilangPropValue('labels')\nexport const getDescription = getMultilangPropValue('descriptions')\nexport const getFieldManualLink = getMultilangPropValue('fieldManualLinks')\n\nexport const getLabelOrName =\n (langCode?: LanguageCode) =>\n (survey: Survey): string => {\n const label = getLabel(langCode)(survey)\n return label ?? getName(survey)\n }\n\nexport const getCategoryByName = (params: { survey: Survey; categoryName: string }): Category | undefined => {\n const { survey, categoryName } = params\n return survey.categories\n ? Object.values(survey.categories).find((category) => category.props.name === categoryName)\n : undefined\n}\n\nexport const getCategoryByUuid = (params: { survey: Survey; categoryUuid: string }): Category | undefined => {\n const { survey, categoryUuid } = params\n return survey.categories?.[categoryUuid]\n}\n\nexport const getTaxonomyByName = (params: { survey: Survey; taxonomyName: string }): Taxonomy | undefined => {\n const { survey, taxonomyName } = params\n return survey.taxonomies\n ? Object.values(survey.taxonomies).find((taxonomy) => taxonomy.props.name === taxonomyName)\n : undefined\n}\n\nexport const getTaxonomyByUuid = (params: { survey: Survey; taxonomyUuid: string }): Taxonomy | undefined => {\n const { survey, taxonomyUuid } = params\n return survey.taxonomies?.[taxonomyUuid]\n}\n\nexport const getCycleKeys = (survey: Survey): string[] => {\n const cycles = survey.props?.cycles ?? {}\n return Object.keys(cycles)\n}\n\nexport const getLastCycleKey = (survey: Survey): string => Arrays.last(getCycleKeys(survey)) as string\n\nexport const isKeepNonApplicableValues = (survey: Survey): boolean => survey?.props?.keepNonApplicableValues === true\n\nexport const getDefaultCycleKey = (survey: Survey) => {\n const defaultCycleKey = survey.props?.defaultCycleKey\n const lastCycleKey = getLastCycleKey(survey)\n return Objects.isEmpty(defaultCycleKey) || Number(defaultCycleKey) > Number(lastCycleKey)\n ? lastCycleKey\n : defaultCycleKey\n}\n\nexport const getSRSs = (survey: Survey): SRS[] =>\n survey.props?.srs ??\n // backwards compatibility with Arena: srs stored in info in UI\n (survey as any).info?.props?.srs ??\n []\n\nexport const getSRSIndex = (survey: Survey): SRSIndex =>\n getSRSs(survey).reduce((acc: SRSIndex, srs) => {\n acc[srs.code] = srs\n return acc\n }, {})\n\nexport const getSRSByCode =\n (code: string) =>\n (survey: Survey): SRS | undefined =>\n getSRSIndex(survey)[code]\n\nexport const getAuthGroups = (survey: Survey): UserAuthGroup[] => survey?.authGroups ?? []\n\nexport const getAuthGroupAdmin = (survey: Survey): UserAuthGroup | undefined =>\n getAuthGroups(survey).find((authGroup) => authGroup.name === AuthGroupName.surveyAdmin)\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surveysUtils.js","sourceRoot":"","sources":["../../../src/survey/surveys/surveysUtils.ts"],"names":[],"mappings":";;;AAEA,2CAA8D;AAC9D,sCAAwD;AACxD,iDAAqD;AACrD,yCAA6C;AAEtC,MAAM,2BAA2B,GAAG,CAAC,MAI3C,EAAkB,EAAE;;IACnB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,CAAA;IACrD,MAAM,YAAY,GAAG,kBAAQ,CAAC,eAAe,CAAC,UAAU,CAAE,CAAA;IAC1D,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,UAAU,0CAAG,YAAY,CAAC,CAAA;IAClD,IAAI,CAAC,QAAQ,IAAI,CAAC,kBAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,IAAA,2BAAgB,EAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AAClF,CAAC,CAAA;AAZY,QAAA,2BAA2B
|
|
1
|
+
{"version":3,"file":"surveysUtils.js","sourceRoot":"","sources":["../../../src/survey/surveys/surveysUtils.ts"],"names":[],"mappings":";;;AAEA,2CAA8D;AAC9D,sCAAwD;AACxD,iDAAqD;AACrD,yCAA6C;AAEtC,MAAM,2BAA2B,GAAG,CAAC,MAI3C,EAAkB,EAAE;;IACnB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,CAAA;IACrD,MAAM,YAAY,GAAG,kBAAQ,CAAC,eAAe,CAAC,UAAU,CAAE,CAAA;IAC1D,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,UAAU,0CAAG,YAAY,CAAC,CAAA;IAClD,IAAI,CAAC,QAAQ,IAAI,CAAC,kBAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,IAAA,2BAAgB,EAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AAClF,CAAC,CAAA;AAZY,QAAA,2BAA2B,GAA3B,2BAA2B,CAYvC;AAEM,MAAM,2CAA2C,GAAG,CAAC,OAAqB,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE;IACvG,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,MAAM,qBAAqB,GAAwB,EAAE,CAAA;IACrD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAA;IACvB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACnC,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,cAAc,CAAA;QACnD,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/C,IAAI,kBAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,kBAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC9E,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC7B,CAAC;YACD,MAAM,eAAe,GAAG,CAAC,6BAAoB,CAAC,UAAU,EAAE,6BAAoB,CAAC,aAAa,CAAC,CAAA;YAC7F,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAmB,EAAE,cAAc,EAAE,EAAE;gBAChF,MAAM,iBAAiB,GAAG,IAAA,mCAAoB,EAAC;oBAC7C,MAAM;oBACN,WAAW,EAAE,kBAAkB;oBAC/B,cAAc;iBACf,CAAC,CAAA;gBACF,GAAG,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAA;gBAC9B,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;QAC3B,CAAC;QACD,qBAAqB,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;IAClD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AA1BY,QAAA,2CAA2C,GAA3C,2CAA2C,CA0BvD","sourcesContent":["import { CategoryItem } from '../../category'\nimport { Dictionary } from '../../common'\nimport { NodeDef, NodeDefCode, NodeDefs } from '../../nodeDef'\nimport { Survey, SurveyDependencyType } from '../survey'\nimport { getNodeDefDependents } from './dependencies'\nimport { getCategoryItems } from './refsData'\n\nexport const getEnumeratingCategoryItems = (params: {\n survey: Survey\n enumerator: NodeDefCode\n parentItemUuid?: string\n}): CategoryItem[] => {\n const { survey, enumerator, parentItemUuid } = params\n const categoryUuid = NodeDefs.getCategoryUuid(enumerator)!\n const category = survey.categories?.[categoryUuid]\n if (!category || (NodeDefs.getParentCodeDefUuid(enumerator) && !parentItemUuid)) {\n return []\n }\n return getCategoryItems({ survey, categoryUuid: category.uuid, parentItemUuid })\n}\n\nexport const findApplicableDependentEnumeratedEntityDefs = (nodeDef: NodeDef<any>) => (survey: Survey) => {\n const result = []\n const visitedNodeDefsByUuid: Dictionary<boolean> = {}\n const stack = [nodeDef]\n while (stack.length > 0) {\n const currentNodeDef = stack.pop()!\n const { uuid: currentNodeDefUuid } = currentNodeDef\n if (!visitedNodeDefsByUuid[currentNodeDefUuid]) {\n if (NodeDefs.isEntity(currentNodeDef) && NodeDefs.isEnumerate(currentNodeDef)) {\n result.push(currentNodeDef)\n }\n const dependencyTypes = [SurveyDependencyType.applicable, SurveyDependencyType.defaultValues]\n const dependents = dependencyTypes.reduce((acc: NodeDef<any>[], dependencyType) => {\n const dependentsPartial = getNodeDefDependents({\n survey,\n nodeDefUuid: currentNodeDefUuid,\n dependencyType,\n })\n acc.push(...dependentsPartial)\n return acc\n }, [])\n stack.push(...dependents)\n }\n visitedNodeDefsByUuid[currentNodeDefUuid] = true\n }\n return result\n}\n"]}
|
package/dist/taxonomy/taxa.d.ts
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import { Taxon } from './taxon';
|
|
2
2
|
import { VernacularName } from './taxonVernacularName';
|
|
3
|
+
declare const getCode: (taxon: Taxon) => string;
|
|
4
|
+
declare const getScientificName: (taxon: Taxon) => string;
|
|
5
|
+
declare const getVernacularNameByUuid: (vernacularNameUuid: string) => (taxon: Taxon) => VernacularName | undefined;
|
|
6
|
+
declare const getVernacularNameAndLang: (vernacularNameUuid: string) => (taxon: Taxon) => {
|
|
7
|
+
vernacularName: string;
|
|
8
|
+
vernacularLang: string | undefined;
|
|
9
|
+
} | {
|
|
10
|
+
vernacularName?: undefined;
|
|
11
|
+
vernacularLang?: undefined;
|
|
12
|
+
};
|
|
13
|
+
declare const isUnknownOrUnlisted: (taxon: Taxon) => boolean;
|
|
3
14
|
export declare const Taxa: {
|
|
4
|
-
getCode:
|
|
5
|
-
getScientificName:
|
|
6
|
-
getVernacularNameByUuid:
|
|
7
|
-
getVernacularNameAndLang:
|
|
8
|
-
|
|
9
|
-
vernacularLang: string | undefined;
|
|
10
|
-
} | {
|
|
11
|
-
vernacularName?: undefined;
|
|
12
|
-
vernacularLang?: undefined;
|
|
13
|
-
};
|
|
14
|
-
isUnknownOrUnlisted: (taxon: Taxon) => boolean;
|
|
15
|
+
getCode: typeof getCode;
|
|
16
|
+
getScientificName: typeof getScientificName;
|
|
17
|
+
getVernacularNameByUuid: typeof getVernacularNameByUuid;
|
|
18
|
+
getVernacularNameAndLang: typeof getVernacularNameAndLang;
|
|
19
|
+
isUnknownOrUnlisted: typeof isUnknownOrUnlisted;
|
|
15
20
|
};
|
|
21
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taxa.js","sourceRoot":"","sources":["../../src/taxonomy/taxa.ts"],"names":[],"mappings":";;;AAGA,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAA;AAClD,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAA;AACtE,MAAM,uBAAuB,GAC3B,CAAC,kBAA0B,EAAE,EAAE,CAC/B,CAAC,KAAY,EAA8B,EAAE;;IAC3C,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"taxa.js","sourceRoot":"","sources":["../../src/taxonomy/taxa.ts"],"names":[],"mappings":";;;AAGA,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAA;AAClD,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAA;AACtE,MAAM,uBAAuB,GAC3B,CAAC,kBAA0B,EAAE,EAAE,CAC/B,CAAC,KAAY,EAA8B,EAAE;;IAC3C,MAAM,qBAAqB,SAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,mCAAI,EAAE,CAAA;IAC1D,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;IACjE,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE,CAAC;QACvD,KAAK,MAAM,cAAc,IAAI,mBAAmB,EAAE,CAAC;YACjD,IAAI,cAAc,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC/C,OAAO,cAAc,CAAA;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAEH,MAAM,qBAAqB,GAAG,CAAC,cAA8B,EAAsB,EAAE,kBAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,0CAAE,IAAI,GAAA,CAAA;AACjH,MAAM,qBAAqB,GAAG,CAAC,cAA8B,EAAsB,EAAE,kBAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,0CAAE,IAAI,GAAA,CAAA;AAEjH,MAAM,wBAAwB,GAAG,CAAC,kBAA0B,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE;IAChF,IAAI,cAAc,EAAE,cAAc,CAAA;IAClC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAA;IAC5E,IAAI,iBAAiB,EAAE,CAAC;QACtB,cAAc,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;QACzD,cAAc,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;IAC3D,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;QACrC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;IACvC,CAAC;IACD,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACjE,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,KAAY,EAAW,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AAEjF,QAAA,IAAI,GAAG;IAClB,OAAO;IACP,iBAAiB;IACjB,uBAAuB;IACvB,wBAAwB;IACxB,mBAAmB;CACpB,CAAA","sourcesContent":["import { Taxon } from './taxon'\nimport { VernacularName } from './taxonVernacularName'\n\nconst getCode = (taxon: Taxon) => taxon.props.code\nconst getScientificName = (taxon: Taxon) => taxon.props.scientificName\nconst getVernacularNameByUuid =\n (vernacularNameUuid: string) =>\n (taxon: Taxon): VernacularName | undefined => {\n const vernacularNamesByLang = taxon?.vernacularNames ?? {}\n const vernacularNameArrays = Object.values(vernacularNamesByLang)\n for (const vernacularNameArray of vernacularNameArrays) {\n for (const vernacularName of vernacularNameArray) {\n if (vernacularName.uuid === vernacularNameUuid) {\n return vernacularName\n }\n }\n }\n return undefined\n }\n\nconst getVernacularNameName = (vernacularName: VernacularName): string | undefined => vernacularName?.props?.name\nconst getVernacularNameLang = (vernacularName: VernacularName): string | undefined => vernacularName?.props?.lang\n\nconst getVernacularNameAndLang = (vernacularNameUuid: string) => (taxon: Taxon) => {\n let vernacularName, vernacularLang\n const vernacularNameObj = getVernacularNameByUuid(vernacularNameUuid)(taxon)\n if (vernacularNameObj) {\n vernacularName = getVernacularNameName(vernacularNameObj)\n vernacularLang = getVernacularNameLang(vernacularNameObj)\n } else {\n vernacularName = taxon.vernacularName\n vernacularLang = taxon.vernacularLang\n }\n return vernacularName ? { vernacularName, vernacularLang } : {}\n}\n\nconst isUnknownOrUnlisted = (taxon: Taxon): boolean => ['UNK', 'UNL'].includes(getCode(taxon))\n\nexport const Taxa = {\n getCode,\n getScientificName,\n getVernacularNameByUuid,\n getVernacularNameAndLang,\n isUnknownOrUnlisted,\n}\n"]}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Survey } from '../survey';
|
|
2
2
|
import { Taxon } from './taxon';
|
|
3
|
+
declare const generateTaxon: (params: {
|
|
4
|
+
survey: Survey;
|
|
5
|
+
taxonomyUuid: string;
|
|
6
|
+
}) => Taxon | null;
|
|
3
7
|
export declare const TaxonGenerator: {
|
|
4
|
-
generateTaxon:
|
|
5
|
-
survey: Survey;
|
|
6
|
-
taxonomyUuid: string;
|
|
7
|
-
}) => Taxon | null;
|
|
8
|
+
generateTaxon: typeof generateTaxon;
|
|
8
9
|
};
|
|
10
|
+
export {};
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { ExtraPropDef } from '../extraProp';
|
|
2
2
|
import { Taxonomy } from './taxonomy';
|
|
3
|
+
declare const getExtraPropDefs: (taxonomy: Taxonomy) => import("..").ExtraPropDefs | undefined;
|
|
4
|
+
declare const getExtraPropDefNames: (taxonomy: Taxonomy) => string[];
|
|
5
|
+
declare const getExtraPropDefByName: (name: string) => (taxonomy: Taxonomy) => ExtraPropDef | undefined;
|
|
3
6
|
export declare const Taxonomies: {
|
|
4
|
-
getExtraPropDefs:
|
|
5
|
-
getExtraPropDefNames:
|
|
6
|
-
getExtraPropDefByName:
|
|
7
|
+
getExtraPropDefs: typeof getExtraPropDefs;
|
|
8
|
+
getExtraPropDefNames: typeof getExtraPropDefNames;
|
|
9
|
+
getExtraPropDefByName: typeof getExtraPropDefByName;
|
|
7
10
|
};
|
|
11
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taxonomies.js","sourceRoot":"","sources":["../../src/taxonomy/taxonomies.ts"],"names":[],"mappings":";;;AAGA,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAA;AAE9E,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"taxonomies.js","sourceRoot":"","sources":["../../src/taxonomy/taxonomies.ts"],"names":[],"mappings":";;;AAGA,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAA;AAE9E,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAY,EAAE,kBAAC,MAAM,CAAC,IAAI,OAAC,gBAAgB,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC,GAAA,CAAA;AAE5G,MAAM,qBAAqB,GACzB,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,QAAkB,EAA4B,EAAE,kBAC/C,MAAA,gBAAgB,CAAC,QAAQ,CAAC,0CAAG,IAAI,CAAC,GAAA,CAAA;AAEzB,QAAA,UAAU,GAAG;IACxB,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;CACtB,CAAA","sourcesContent":["import { ExtraPropDef } from '../extraProp'\nimport { Taxonomy } from './taxonomy'\n\nconst getExtraPropDefs = (taxonomy: Taxonomy) => taxonomy.props.extraPropsDefs\n\nconst getExtraPropDefNames = (taxonomy: Taxonomy): string[] => Object.keys(getExtraPropDefs(taxonomy) ?? {})\n\nconst getExtraPropDefByName =\n (name: string) =>\n (taxonomy: Taxonomy): ExtraPropDef | undefined =>\n getExtraPropDefs(taxonomy)?.[name]\n\nexport const Taxonomies = {\n getExtraPropDefs,\n getExtraPropDefNames,\n getExtraPropDefByName,\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributeBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/attributeBuilder.ts"],"names":[],"mappings":";;;AAAA,wCAAgF;AAEhF,8CAAkF;AAClF,4CAAiD;AACjD,4CAAiD;AACjD,+CAA2C;AAE3C,
|
|
1
|
+
{"version":3,"file":"attributeBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/attributeBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node, NodeFactory, NodeValueCode, NodeValueTaxon } from '../../../node'\nimport { NodeMeta } from '../../../node/node'\nimport { NodeDef, NodeDefCode, NodeDefTaxon, NodeDefType } from '../../../nodeDef'\nimport { Record, Records } from '../../../record'\nimport { Survey, Surveys } from '../../../survey'\nimport { NodeBuilder } from './nodeBuilder'\n\nexport class AttributeBuilder extends NodeBuilder {\n private readonly value: any\n\n constructor(nodeDefName: string, value: any = null) {\n super(nodeDefName)\n this.value = value\n }\n\n private buildCodeValue(params: { survey: Survey; nodeDef: NodeDefCode }) {\n const { survey, nodeDef } = params\n\n if (this.value.itemUuid) {\n // value is already a NodeValueCode object\n return this.value\n }\n\n const code = this.value\n const item = Surveys.getCategoryItemByCodePaths({\n survey,\n categoryUuid: nodeDef.props.categoryUuid,\n codePaths: [code],\n })\n if (!item) {\n throw new Error(`could not find category item with code: ${code}`)\n }\n\n return {\n itemUuid: item.uuid,\n code: item.props.code,\n } as NodeValueCode\n }\n\n private buildTaxonValue(params: { survey: Survey; nodeDef: NodeDefTaxon }) {\n const { survey, nodeDef } = params\n\n if (this.value.taxonUuid) {\n // value is already a NodeValueTaxon object\n return this.value\n }\n const taxonCode = this.value.code || this.value\n const taxonomyUuid = nodeDef.props.taxonomyUuid\n\n const taxon = Surveys.getTaxonByCode({ survey, taxonomyUuid, taxonCode })\n if (!taxon) {\n throw new Error(`could not find taxon with code: ${JSON.stringify(taxonCode)}`)\n }\n\n return {\n taxonUuid: taxon.uuid,\n code: taxon.props.code,\n scientificName: taxon.props.scientificName,\n } as NodeValueTaxon\n }\n\n private buildValue(params: { survey: Survey }) {\n const { survey } = params\n const nodeDef = this.getNodeDef({ survey })\n\n if (this.value === null || this.value === undefined) return null\n\n if (nodeDef.type === NodeDefType.code) {\n return this.buildCodeValue({ survey, nodeDef: nodeDef as NodeDefCode })\n }\n if (nodeDef.type === NodeDefType.taxon) {\n return this.buildTaxonValue({ survey, nodeDef: nodeDef as NodeDefTaxon })\n }\n return this.value\n }\n\n private buildMeta(params: { nodeDef: NodeDef<any>; record: Record; parentNode?: Node }): NodeMeta {\n const { nodeDef, record, parentNode } = params\n\n const meta: NodeMeta = {}\n\n if (nodeDef.type === NodeDefType.code) {\n const nodeDefCode = nodeDef as NodeDefCode\n if (nodeDefCode.props.parentCodeDefUuid && parentNode) {\n const parentCodeAttribute = Records.getParentCodeAttribute({ parentNode, nodeDef: nodeDefCode })(record)\n if (!parentCodeAttribute) throw new Error('Could not find the parent code attibute')\n return { ...meta, hCode: [parentCodeAttribute.uuid] }\n }\n }\n\n return meta\n }\n\n build(params: { survey: Survey; record: Record; parentNode?: Node }): Record {\n const { survey, record, parentNode } = params\n\n const nodeDef = this.getNodeDef({ survey })\n\n const value = this.buildValue({ survey })\n\n const attribute = NodeFactory.createInstance({\n nodeDefUuid: nodeDef.uuid,\n parentNode,\n recordUuid: record.uuid,\n value,\n })\n attribute.meta = {\n ...attribute.meta,\n ...this.buildMeta({ nodeDef, parentNode, record }),\n }\n return Records.addNode(attribute)(record)\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/entityBuilder.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AACjD,4CAAiD;AAEjD,+CAA2C;AAE3C,
|
|
1
|
+
{"version":3,"file":"entityBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/entityBuilder.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AACjD,4CAAiD;AAEjD,+CAA2C;AAE3C,mBAA2B,SAAQ,yBAAW;IAG5C,YAAY,WAAmB,EAAE,GAAG,aAA4B;QAC9D,KAAK,CAAC,WAAW,CAAC,CAAA;QAHH,kBAAa,GAAkB,EAAE,CAAA;QAIhD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,MAA6D;QACjE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;QAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAE3C,MAAM,MAAM,GAAG,kBAAW,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAE7G,IAAI,aAAa,GAAG,gBAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;QAEnD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAC1C,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;QAC3F,CAAC,CAAC,CAAA;QAEF,OAAO,aAAa,CAAA;IACtB,CAAC;CACF","sourcesContent":["import { Node, NodeFactory } from '../../../node'\nimport { Record, Records } from '../../../record'\nimport { Survey } from '../../../survey'\nimport { NodeBuilder } from './nodeBuilder'\n\nexport class EntityBuilder extends NodeBuilder {\n private readonly childBuilders: NodeBuilder[] = []\n\n constructor(nodeDefName: string, ...childBuilders: NodeBuilder[]) {\n super(nodeDefName)\n this.childBuilders = childBuilders\n }\n\n build(params: { survey: Survey; record: Record; parentNode?: Node }): Record {\n const { survey, record, parentNode } = params\n\n const nodeDef = this.getNodeDef({ survey })\n\n const entity = NodeFactory.createInstance({ nodeDefUuid: nodeDef.uuid, recordUuid: record.uuid, parentNode })\n\n let recordUpdated = Records.addNode(entity)(record)\n\n this.childBuilders.forEach((childBuilder) => {\n recordUpdated = childBuilder.build({ survey, record: recordUpdated, parentNode: entity })\n })\n\n return recordUpdated\n }\n}\n"]}
|
|
@@ -2,7 +2,9 @@ import { AttributeBuilder } from './attributeBuilder';
|
|
|
2
2
|
import { EntityBuilder } from './entityBuilder';
|
|
3
3
|
import { NodeBuilder } from './nodeBuilder';
|
|
4
4
|
export { RecordBuilder } from './recordBuilder';
|
|
5
|
+
declare const attribute: (nodeDefName: string, value?: any) => AttributeBuilder;
|
|
6
|
+
declare const entity: (nodeDefName: string, ...childBuilders: NodeBuilder[]) => EntityBuilder;
|
|
5
7
|
export declare const RecordNodeBuilders: {
|
|
6
|
-
attribute:
|
|
7
|
-
entity:
|
|
8
|
+
attribute: typeof attribute;
|
|
9
|
+
entity: typeof entity;
|
|
8
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/index.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,mDAA+C;AAG/C,iDAA+C;AAAtC,8GAAA,aAAa,OAAA;AAEtB,MAAM,SAAS,GAAG,CAAC,WAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/index.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,mDAA+C;AAG/C,iDAA+C;AAAtC,8GAAA,aAAa,OAAA;AAEtB,MAAM,SAAS,GAAG,CAAC,WAAmB,EAAE,KAAK,GAAQ,IAAI,EAAoB,EAAE,CAAC,IAAI,mCAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AAExH,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,GAAG,aAA4B,EAAiB,EAAE,CACrF,IAAI,6BAAa,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,CAAA;AAErC,QAAA,kBAAkB,GAAG;IAChC,SAAS;IACT,MAAM;CACP,CAAA","sourcesContent":["import { AttributeBuilder } from './attributeBuilder'\nimport { EntityBuilder } from './entityBuilder'\nimport { NodeBuilder } from './nodeBuilder'\n\nexport { RecordBuilder } from './recordBuilder'\n\nconst attribute = (nodeDefName: string, value: any = null): AttributeBuilder => new AttributeBuilder(nodeDefName, value)\n\nconst entity = (nodeDefName: string, ...childBuilders: NodeBuilder[]): EntityBuilder =>\n new EntityBuilder(nodeDefName, ...childBuilders)\n\nexport const RecordNodeBuilders = {\n attribute,\n entity,\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/nodeBuilder.ts"],"names":[],"mappings":";;;AAKA
|
|
1
|
+
{"version":3,"file":"nodeBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/nodeBuilder.ts"],"names":[],"mappings":";;;AAKA;IAGE,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAES,UAAU,CAAC,MAA0B;;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,OAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,CAAA;QAE1G,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,WAAW,sBAAsB,CAAC,CAAA;QAC/E,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CAGF","sourcesContent":["import { Node } from '../../../node'\nimport { NodeDef, NodeDefProps, NodeDefType } from '../../../nodeDef'\nimport { Record } from '../../../record'\nimport { Survey } from '../../../survey'\n\nexport abstract class NodeBuilder {\n protected nodeDefName: string\n\n constructor(nodeDefName: string) {\n this.nodeDefName = nodeDefName\n }\n\n protected getNodeDef(params: { survey: Survey }): NodeDef<NodeDefType, NodeDefProps> {\n const nodeDef = Object.values(params.survey.nodeDefs ?? {}).find((n) => n.props.name === this.nodeDefName)\n\n if (!nodeDef) {\n throw new Error(`Node def with name ${this.nodeDefName} not found in survey`)\n }\n\n return nodeDef\n }\n\n abstract build(params: { survey: Survey; record: Record; parentNode?: Node }): Record\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/recordBuilder.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAKvD
|
|
1
|
+
{"version":3,"file":"recordBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/recordBuilder.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAKvD;IAKE,YAAY,IAAU,EAAE,MAAc,EAAE,iBAAgC;QACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;IAC5C,CAAC;IAED,KAAK;QACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAC7B,MAAM,MAAM,GAAG,sBAAa,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9E,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACzD,CAAC;CACF","sourcesContent":["import { Record, RecordFactory } from '../../../record'\nimport { User } from '../../../auth'\nimport { Survey } from '../../../survey'\nimport { EntityBuilder } from './entityBuilder'\n\nexport class RecordBuilder {\n private readonly survey: Survey\n private readonly user: User\n private readonly rootEntityBuilder: EntityBuilder\n\n constructor(user: User, survey: Survey, rootEntityBuilder: EntityBuilder) {\n this.survey = survey\n this.user = user\n this.rootEntityBuilder = rootEntityBuilder\n }\n\n build(): Record {\n const { survey, user } = this\n const record = RecordFactory.createInstance({ surveyUuid: survey.uuid, user })\n return this.rootEntityBuilder.build({ survey, record })\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"categoryBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/surveyBuilder/categoryBuilder.ts"],"names":[],"mappings":";;;AAAA,gDAAgH;AAKhH
|
|
1
|
+
{"version":3,"file":"categoryBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/surveyBuilder/categoryBuilder.ts"],"names":[],"mappings":";;;AAAA,gDAAgH;AAKhH;IAME,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;IACvB,CAAC;IAED,MAAM,CAAC,GAAG,UAAoB;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAG,YAAmC;QAC1C,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU,CAAC,cAA6B;QACtC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK;QACH,MAAM,QAAQ,GAAG,0BAAe,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAC/G,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAA8B,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBACpF,GAAG,CAAC,KAAK,CAAC,GAAG,+BAAoB,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;gBAClG,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;YACN,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;QAC1B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QAErF,OAAO;YACL,QAAQ;YACR,KAAK;SACN,CAAA;IACH,CAAC;CACF","sourcesContent":["import { Category, CategoryFactory, CategoryItem, CategoryLevel, CategoryLevelFactory } from '../../../category'\nimport { Dictionary } from '../../../common'\nimport { ExtraPropDefs } from '../../../extraProp'\nimport { CategoryItemBuilder } from './categoryItemBuilder'\n\nexport class CategoryBuilder {\n private readonly name: string\n private itemBuilders: CategoryItemBuilder[]\n private levelNames: string[]\n private _extraProps: ExtraPropDefs\n\n constructor(name: string) {\n this.name = name\n this.levelNames = []\n this.itemBuilders = []\n this._extraProps = {}\n }\n\n levels(...levelNames: string[]): this {\n this.levelNames = levelNames\n return this\n }\n\n items(...itemBuilders: CategoryItemBuilder[]): this {\n this.itemBuilders = [...itemBuilders]\n return this\n }\n\n extraProps(extraPropsDefs: ExtraPropDefs): this {\n this._extraProps = extraPropsDefs\n return this\n }\n\n build(): { category: Category; items: CategoryItem[] } {\n const category = CategoryFactory.createInstance({ props: { name: this.name, itemExtraDef: this._extraProps } })\n if (this.levelNames.length > 0) {\n const levels = this.levelNames.reduce((acc: Dictionary<CategoryLevel>, name, index) => {\n acc[index] = CategoryLevelFactory.createInstance({ categoryUuid: category.uuid, props: { name } })\n return acc\n }, {})\n category.levels = levels\n }\n const items = this.itemBuilders.flatMap((itemBuilder) => itemBuilder.build(category))\n\n return {\n category,\n items,\n }\n }\n}\n"]}
|