@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
package/dist/message/messages.js
CHANGED
|
@@ -14,13 +14,13 @@ const getDateCreated = (message) => message.dateCreated;
|
|
|
14
14
|
const getDateModified = (message) => message.dateModified;
|
|
15
15
|
const getDateValidUntil = (message) => { var _a; return (_a = message.props) === null || _a === void 0 ? void 0 : _a.dateValidUntil; };
|
|
16
16
|
const getDateScheduledAt = (message) => { var _a; return (_a = message.props) === null || _a === void 0 ? void 0 : _a.dateScheduledAt; };
|
|
17
|
-
const getNotificationTypes = (message) => { var _a
|
|
17
|
+
const getNotificationTypes = (message) => { var _a; var _b; return (_b = (_a = message.props) === null || _a === void 0 ? void 0 : _a.notificationTypes) !== null && _b !== void 0 ? _b : []; };
|
|
18
18
|
const getSubject = (message) => { var _a; return (_a = message.props) === null || _a === void 0 ? void 0 : _a.subject; };
|
|
19
19
|
const getBody = (message) => { var _a; return (_a = message.props) === null || _a === void 0 ? void 0 : _a.body; };
|
|
20
|
-
const getTargetAppIds = (message) => { var _a
|
|
21
|
-
const getTargetUserTypes = (message) => { var _a
|
|
22
|
-
const getTargetUserEmails = (message) => { var _a
|
|
23
|
-
const getTargetExcludedUserEmails = (message) => { var _a
|
|
20
|
+
const getTargetAppIds = (message) => { var _a; var _b; return (_b = (_a = message.props) === null || _a === void 0 ? void 0 : _a.targetAppIds) !== null && _b !== void 0 ? _b : []; };
|
|
21
|
+
const getTargetUserTypes = (message) => { var _a; var _b; return (_b = (_a = message.props) === null || _a === void 0 ? void 0 : _a.targetUserTypes) !== null && _b !== void 0 ? _b : []; };
|
|
22
|
+
const getTargetUserEmails = (message) => { var _a; var _b; return (_b = (_a = message.props) === null || _a === void 0 ? void 0 : _a.targetUserEmails) !== null && _b !== void 0 ? _b : []; };
|
|
23
|
+
const getTargetExcludedUserEmails = (message) => { var _a; var _b; return (_b = (_a = message.props) === null || _a === void 0 ? void 0 : _a.targetExcludedUserEmails) !== null && _b !== void 0 ? _b : []; };
|
|
24
24
|
const assocStatus = (status) => (message) => utils_1.Objects.assoc({ obj: message, prop: 'status', value: status });
|
|
25
25
|
const assocProp = (propKey, propValue) => (message) => utils_1.Objects.assocPath({ obj: message, path: ['props', propKey], value: propValue });
|
|
26
26
|
const assocSubject = (subject) => (message) => assocProp(message_1.MessagePropsKey.subject, subject)(message);
|
|
@@ -76,9 +76,10 @@ const clearNotApplicableProps = (message) => {
|
|
|
76
76
|
return messageNext;
|
|
77
77
|
};
|
|
78
78
|
const replaceBodyTemplateVariables = ({ i18n, user }) => (message) => {
|
|
79
|
-
var _a
|
|
80
|
-
|
|
81
|
-
const
|
|
79
|
+
var _a;
|
|
80
|
+
var _b;
|
|
81
|
+
const body = (_b = getBody(message)) !== null && _b !== void 0 ? _b : '';
|
|
82
|
+
const titleKey = (_a = user.props) === null || _a === void 0 ? void 0 : _a.title;
|
|
82
83
|
const name = user.name;
|
|
83
84
|
const titleAndNameParts = [];
|
|
84
85
|
if (utils_1.Objects.isNotEmpty(name)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/message/messages.ts"],"names":[],"mappings":";;;AAAA,kCAA+D;AAE/D,oCAAkC;AAElC,uCAAmH;AAEnH,MAAM,WAAW,GAAG;IAClB,yBAAe,CAAC,gBAAgB;IAChC,yBAAe,CAAC,eAAe;IAC/B,yBAAe,CAAC,wBAAwB;CACzC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAiB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAA;AAErE,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAoB,EAAE,CAAC,OAAO,CAAC,WAAW,CAAA;AAElF,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAoB,EAAE,CAAC,OAAO,CAAC,YAAY,CAAA;AAEpF,MAAM,iBAAiB,GAAG,CAAC,OAAgB,EAAoB,EAAE,WAAC,OAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,cAAc,CAAA,EAAA,CAAA;AAE/F,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAoB,EAAE,WAAC,OAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,eAAe,CAAA,EAAA,CAAA;AAEjG,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAA6B,EAAE,eAAC,OAAA,MAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,iBAAiB,mCAAI,EAAE,CAAA,EAAA,CAAA;AAEpH,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAsB,EAAE,WAAC,OAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,OAAO,CAAA,EAAA,CAAA;AAEnF,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAsB,EAAE,WAAC,OAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,IAAI,CAAA,EAAA,CAAA;AAE7E,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAY,EAAE,eAAC,OAAA,MAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,YAAY,mCAAI,EAAE,CAAA,EAAA,CAAA;AAEzF,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAA2B,EAAE,eAAC,OAAA,MAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,eAAe,mCAAI,EAAE,CAAA,EAAA,CAAA;AAE9G,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAY,EAAE,eAAC,OAAA,MAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,gBAAgB,mCAAI,EAAE,CAAA,EAAA,CAAA;AAEjG,MAAM,2BAA2B,GAAG,CAAC,OAAgB,EAAY,EAAE,eAAC,OAAA,MAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,wBAAwB,mCAAI,EAAE,CAAA,EAAA,CAAA;AAEjH,MAAM,WAAW,GACf,CAAC,MAAqB,EAAE,EAAE,CAC1B,CAAC,OAAgB,EAAW,EAAE,CAC5B,eAAO,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AAElE,MAAM,SAAS,GACb,CAAC,OAAwB,EAAE,SAAc,EAAE,EAAE,CAC7C,CAAC,OAAgB,EAAW,EAAE,CAC5B,eAAO,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;AAEnF,MAAM,YAAY,GAChB,CAAC,OAAe,EAAE,EAAE,CACpB,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAA;AAExD,MAAM,SAAS,GACb,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;AAElD,MAAM,sBAAsB,GAC1B,CAAC,iBAA4C,EAAE,EAAE,CACjD,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAA;AAE5E,MAAM,iBAAiB,GACrB,CAAC,YAAsB,EAAE,EAAE,CAC3B,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AAElE,MAAM,oBAAoB,GACxB,CAAC,eAAwC,EAAE,EAAE,CAC7C,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAA;AAExE,MAAM,qBAAqB,GACzB,CAAC,MAAgB,EAAE,EAAE,CACrB,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEhE,MAAM,6BAA6B,GACjC,CAAC,MAAgB,EAAE,EAAE,CACrB,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAExE,MAAM,mBAAmB,GACvB,CAAC,cAAgC,EAAE,EAAE,CACrC,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAA;AAEtE,MAAM,eAAe,GACnB,CAAC,IAAU,EAAE,EAAE,CACf,CAAC,OAAgB,EAAW,EAAE;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,mFAAmF;IACnF,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC7C,IAAI,UAAU,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;QACvD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,WAAW,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;QACzD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1D,CAAC;IACD,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,GAAG,CAAC;QAC3C,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,YAAY,CAAC,IAAI,YAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnF,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,YAAY,CAAC;YACnD,CAAC,CAAC,YAAK,CAAC,kBAAkB,CAAC,oBAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,cAAc,CAAC,IAAI,YAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACvF,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,YAAY,CAAC;YACnD,CAAC,CAAC,YAAK,CAAC,kBAAkB,CAAC,oBAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,YAAY,CAAC;YACnD,CAAC,CAAC,YAAK,CAAC,kBAAkB,CAAC,oBAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,WAAW,CAAC;YAClD,CAAC,CAAC,YAAK,CAAC,kBAAkB,CAAC,oBAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAA;AACH,CAAC,CAAA;AAEH,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAW,EAAE;IACrD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;AACpF,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAAC,OAAgB,EAAW,EAAE;IAC5D,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,WAAW,GAAG,OAAO,CAAA;IACzB,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/G,WAAW,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,CAAA;IAClE,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,UAAU,CAAC;QAC3E,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAA;IACxC,WAAW,GAAG,6BAA6B,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,CAAA;IAC5E,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,4BAA4B,GAChC,CAAC,EAAE,IAAI,EAAE,IAAI,EAA8B,EAAE,EAAE,CAC/C,CAAC,OAAgB,EAAW,EAAE;;IAC5B,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAA;IACnC,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,CAAA;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IACtB,MAAM,iBAAiB,GAAG,EAAE,CAAA;IAC5B,IAAI,eAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,eAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,gBAAS,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAA;QACpD,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IACD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAC5F,MAAM,SAAS,GAAG,IAAI;SACnB,UAAU,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;SACpD,UAAU,CAAC,cAAc,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,MAAM,CAAC,CAAA;IAC7C,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC,CAAA;AAEU,QAAA,QAAQ,GAAG;IACtB,SAAS;IACT,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,UAAU;IACV,OAAO;IACP,eAAe;IACf,kBAAkB;IAClB,mBAAmB;IACnB,2BAA2B;IAC3B,WAAW;IACX,YAAY;IACZ,SAAS;IACT,sBAAsB;IACtB,iBAAiB;IACjB,oBAAoB;IACpB,qBAAqB;IACrB,6BAA6B;IAC7B,mBAAmB;IACnB,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,4BAA4B;CAC7B,CAAA","sourcesContent":["import { AuthGroupName, User, Users, UserTitle } from '../auth'\nimport type { I18n } from '../common'\nimport { Objects } from '../utils'\n\nimport { Message, MessageNotificationType, MessagePropsKey, MessageStatus, MessageTargetUserType } from './message'\n\nconst hiddenProps = [\n MessagePropsKey.targetUserEmails,\n MessagePropsKey.targetUserUuids,\n MessagePropsKey.targetExcludedUserEmails,\n]\n\nconst getStatus = (message: Message): MessageStatus => message.status\n\nconst getDateCreated = (message: Message): Date | undefined => message.dateCreated\n\nconst getDateModified = (message: Message): Date | undefined => message.dateModified\n\nconst getDateValidUntil = (message: Message): Date | undefined => message.props?.dateValidUntil\n\nconst getDateScheduledAt = (message: Message): Date | undefined => message.props?.dateScheduledAt\n\nconst getNotificationTypes = (message: Message): MessageNotificationType[] => message.props?.notificationTypes ?? []\n\nconst getSubject = (message: Message): string | undefined => message.props?.subject\n\nconst getBody = (message: Message): string | undefined => message.props?.body\n\nconst getTargetAppIds = (message: Message): string[] => message.props?.targetAppIds ?? []\n\nconst getTargetUserTypes = (message: Message): MessageTargetUserType[] => message.props?.targetUserTypes ?? []\n\nconst getTargetUserEmails = (message: Message): string[] => message.props?.targetUserEmails ?? []\n\nconst getTargetExcludedUserEmails = (message: Message): string[] => message.props?.targetExcludedUserEmails ?? []\n\nconst assocStatus =\n (status: MessageStatus) =>\n (message: Message): Message =>\n Objects.assoc({ obj: message, prop: 'status', value: status })\n\nconst assocProp =\n (propKey: MessagePropsKey, propValue: any) =>\n (message: Message): Message =>\n Objects.assocPath({ obj: message, path: ['props', propKey], value: propValue })\n\nconst assocSubject =\n (subject: string) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.subject, subject)(message)\n\nconst assocBody =\n (body: string) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.body, body)(message)\n\nconst assocNotificationTypes =\n (notificationTypes: MessageNotificationType[]) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.notificationTypes, notificationTypes)(message)\n\nconst assocTargetAppIds =\n (targetAppIds: string[]) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.targetAppIds, targetAppIds)(message)\n\nconst assocTargetUserTypes =\n (targetUserTypes: MessageTargetUserType[]) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.targetUserTypes, targetUserTypes)(message)\n\nconst assocTargetUserEmails =\n (emails: string[]) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.targetUserEmails, emails)(message)\n\nconst assocTargetExcludedUserEmails =\n (emails: string[]) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.targetExcludedUserEmails, emails)(message)\n\nconst assocDateValidUntil =\n (dateValidUntil: Date | undefined) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.dateValidUntil, dateValidUntil)(message)\n\nconst isTargetingUser =\n (user: User) =>\n (message: Message): boolean => {\n const now = Date.now()\n // dates can be strings (e.g. when the message comes from JSON): compare timestamps\n const validUntil = getDateValidUntil(message)\n if (validUntil && new Date(validUntil).getTime() < now) {\n return false\n }\n const scheduledAt = getDateScheduledAt(message)\n if (scheduledAt && new Date(scheduledAt).getTime() > now) {\n return false\n }\n const targets = getTargetUserTypes(message)\n if (targets.includes(MessageTargetUserType.Individual)) {\n return getTargetUserEmails(message).includes(user.email)\n }\n if (getTargetExcludedUserEmails(message).includes(user.email)) {\n return false\n }\n return (\n targets.includes(MessageTargetUserType.All) ||\n (targets.includes(MessageTargetUserType.SystemAdmins) && Users.isSystemAdmin(user)) ||\n (targets.includes(MessageTargetUserType.SurveyAdmins) &&\n !!Users.getAuthGroupByName(AuthGroupName.surveyAdmin)(user)) ||\n (targets.includes(MessageTargetUserType.SurveyManagers) && Users.isSurveyManager(user)) ||\n (targets.includes(MessageTargetUserType.DataAnalysts) &&\n !!Users.getAuthGroupByName(AuthGroupName.dataAnalyst)(user)) ||\n (targets.includes(MessageTargetUserType.DataCleaners) &&\n !!Users.getAuthGroupByName(AuthGroupName.dataCleanser)(user)) ||\n (targets.includes(MessageTargetUserType.DataEditors) &&\n !!Users.getAuthGroupByName(AuthGroupName.dataEditor)(user))\n )\n }\n\nconst clearHiddenProps = (message: Message): Message => {\n return hiddenProps.reduce((msg, prop) => assocProp(prop, undefined)(msg), message)\n}\n\nconst clearNotApplicableProps = (message: Message): Message => {\n const targets = getTargetUserTypes(message)\n let messageNext = message\n const targetEmailsNext = targets.includes(MessageTargetUserType.Individual) ? getTargetUserEmails(message) : []\n messageNext = assocTargetUserEmails(targetEmailsNext)(messageNext)\n const excludedEmailsNext = targets.includes(MessageTargetUserType.Individual)\n ? []\n : getTargetExcludedUserEmails(message)\n messageNext = assocTargetExcludedUserEmails(excludedEmailsNext)(messageNext)\n return messageNext\n}\n\nconst replaceBodyTemplateVariables =\n ({ i18n, user }: { i18n: I18n; user: User }) =>\n (message: Message): Message => {\n const body = getBody(message) ?? ''\n const titleKey = user.props?.title\n const name = user.name\n const titleAndNameParts = []\n if (Objects.isNotEmpty(name)) {\n titleAndNameParts.push(name)\n }\n if (Objects.isNotEmpty(titleKey) && UserTitle.preferNotToSay !== titleKey) {\n const title = i18n.t(`user.titleValues.${titleKey}`)\n titleAndNameParts.unshift(title)\n }\n const userTitleAndName = titleAndNameParts.length > 0 ? titleAndNameParts.join(' ') : 'User'\n const bodyFixed = body\n .replaceAll('{{userTitleAndName}}', userTitleAndName)\n .replaceAll('{{userName}}', name ?? 'User')\n return assocBody(bodyFixed)(message)\n }\n\nexport const Messages = {\n getStatus,\n getDateCreated,\n getDateModified,\n getDateScheduledAt,\n getDateValidUntil,\n getNotificationTypes,\n getSubject,\n getBody,\n getTargetAppIds,\n getTargetUserTypes,\n getTargetUserEmails,\n getTargetExcludedUserEmails,\n assocStatus,\n assocSubject,\n assocBody,\n assocNotificationTypes,\n assocTargetAppIds,\n assocTargetUserTypes,\n assocTargetUserEmails,\n assocTargetExcludedUserEmails,\n assocDateValidUntil,\n isTargetingUser,\n clearHiddenProps,\n clearNotApplicableProps,\n replaceBodyTemplateVariables,\n}\n"]}
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/message/messages.ts"],"names":[],"mappings":";;;AAAA,kCAA+D;AAE/D,oCAAkC;AAElC,uCAAmH;AAEnH,MAAM,WAAW,GAAG;IAClB,yBAAe,CAAC,gBAAgB;IAChC,yBAAe,CAAC,eAAe;IAC/B,yBAAe,CAAC,wBAAwB;CACzC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAiB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAA;AAErE,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAoB,EAAE,CAAC,OAAO,CAAC,WAAW,CAAA;AAElF,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAoB,EAAE,CAAC,OAAO,CAAC,YAAY,CAAA;AAEpF,MAAM,iBAAiB,GAAG,CAAC,OAAgB,EAAoB,EAAE,kBAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,cAAc,GAAA,CAAA;AAE/F,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAoB,EAAE,kBAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,eAAe,GAAA,CAAA;AAEjG,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAA6B,EAAE,gCAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,iBAAiB,mCAAI,EAAE,GAAA,CAAA;AAEpH,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAsB,EAAE,kBAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,OAAO,GAAA,CAAA;AAEnF,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAsB,EAAE,kBAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,IAAI,GAAA,CAAA;AAE7E,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAY,EAAE,gCAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,YAAY,mCAAI,EAAE,GAAA,CAAA;AAEzF,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAA2B,EAAE,gCAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,eAAe,mCAAI,EAAE,GAAA,CAAA;AAE9G,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAY,EAAE,gCAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,gBAAgB,mCAAI,EAAE,GAAA,CAAA;AAEjG,MAAM,2BAA2B,GAAG,CAAC,OAAgB,EAAY,EAAE,gCAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,wBAAwB,mCAAI,EAAE,GAAA,CAAA;AAEjH,MAAM,WAAW,GACf,CAAC,MAAqB,EAAE,EAAE,CAC1B,CAAC,OAAgB,EAAW,EAAE,CAC5B,eAAO,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AAElE,MAAM,SAAS,GACb,CAAC,OAAwB,EAAE,SAAc,EAAE,EAAE,CAC7C,CAAC,OAAgB,EAAW,EAAE,CAC5B,eAAO,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;AAEnF,MAAM,YAAY,GAChB,CAAC,OAAe,EAAE,EAAE,CACpB,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAA;AAExD,MAAM,SAAS,GACb,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;AAElD,MAAM,sBAAsB,GAC1B,CAAC,iBAA4C,EAAE,EAAE,CACjD,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAA;AAE5E,MAAM,iBAAiB,GACrB,CAAC,YAAsB,EAAE,EAAE,CAC3B,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;AAElE,MAAM,oBAAoB,GACxB,CAAC,eAAwC,EAAE,EAAE,CAC7C,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAA;AAExE,MAAM,qBAAqB,GACzB,CAAC,MAAgB,EAAE,EAAE,CACrB,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAEhE,MAAM,6BAA6B,GACjC,CAAC,MAAgB,EAAE,EAAE,CACrB,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;AAExE,MAAM,mBAAmB,GACvB,CAAC,cAAgC,EAAE,EAAE,CACrC,CAAC,OAAgB,EAAW,EAAE,CAC5B,SAAS,CAAC,yBAAe,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAA;AAEtE,MAAM,eAAe,GACnB,CAAC,IAAU,EAAE,EAAE,CACf,CAAC,OAAgB,EAAW,EAAE;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,mFAAmF;IACnF,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC7C,IAAI,UAAU,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;QACvD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,WAAW,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;QACzD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1D,CAAC;IACD,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,GAAG,CAAC;QAC3C,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,YAAY,CAAC,IAAI,YAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnF,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,YAAY,CAAC;YACnD,CAAC,CAAC,YAAK,CAAC,kBAAkB,CAAC,oBAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,cAAc,CAAC,IAAI,YAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACvF,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,YAAY,CAAC;YACnD,CAAC,CAAC,YAAK,CAAC,kBAAkB,CAAC,oBAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,YAAY,CAAC;YACnD,CAAC,CAAC,YAAK,CAAC,kBAAkB,CAAC,oBAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,WAAW,CAAC;YAClD,CAAC,CAAC,YAAK,CAAC,kBAAkB,CAAC,oBAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAA;AACH,CAAC,CAAA;AAEH,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAW,EAAE;IACrD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;AACpF,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAAC,OAAgB,EAAW,EAAE;IAC5D,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,WAAW,GAAG,OAAO,CAAA;IACzB,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/G,WAAW,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,CAAA;IAClE,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,+BAAqB,CAAC,UAAU,CAAC;QAC3E,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAA;IACxC,WAAW,GAAG,6BAA6B,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,CAAA;IAC5E,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,4BAA4B,GAChC,CAAC,EAAE,IAAI,EAAE,IAAI,EAA8B,EAAE,EAAE,CAC/C,CAAC,OAAgB,EAAW,EAAE;;;IAC5B,MAAM,IAAI,SAAG,OAAO,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAA;IACnC,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,CAAA;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IACtB,MAAM,iBAAiB,GAAG,EAAE,CAAA;IAC5B,IAAI,eAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,eAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,gBAAS,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAA;QACpD,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IACD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAC5F,MAAM,SAAS,GAAG,IAAI;SACnB,UAAU,CAAC,sBAAsB,EAAE,gBAAgB,CAAC;SACpD,UAAU,CAAC,cAAc,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,MAAM,CAAC,CAAA;IAC7C,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC,CAAA;AAEU,QAAA,QAAQ,GAAG;IACtB,SAAS;IACT,cAAc;IACd,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,UAAU;IACV,OAAO;IACP,eAAe;IACf,kBAAkB;IAClB,mBAAmB;IACnB,2BAA2B;IAC3B,WAAW;IACX,YAAY;IACZ,SAAS;IACT,sBAAsB;IACtB,iBAAiB;IACjB,oBAAoB;IACpB,qBAAqB;IACrB,6BAA6B;IAC7B,mBAAmB;IACnB,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,4BAA4B;CAC7B,CAAA","sourcesContent":["import { AuthGroupName, User, Users, UserTitle } from '../auth'\nimport type { I18n } from '../common'\nimport { Objects } from '../utils'\n\nimport { Message, MessageNotificationType, MessagePropsKey, MessageStatus, MessageTargetUserType } from './message'\n\nconst hiddenProps = [\n MessagePropsKey.targetUserEmails,\n MessagePropsKey.targetUserUuids,\n MessagePropsKey.targetExcludedUserEmails,\n]\n\nconst getStatus = (message: Message): MessageStatus => message.status\n\nconst getDateCreated = (message: Message): Date | undefined => message.dateCreated\n\nconst getDateModified = (message: Message): Date | undefined => message.dateModified\n\nconst getDateValidUntil = (message: Message): Date | undefined => message.props?.dateValidUntil\n\nconst getDateScheduledAt = (message: Message): Date | undefined => message.props?.dateScheduledAt\n\nconst getNotificationTypes = (message: Message): MessageNotificationType[] => message.props?.notificationTypes ?? []\n\nconst getSubject = (message: Message): string | undefined => message.props?.subject\n\nconst getBody = (message: Message): string | undefined => message.props?.body\n\nconst getTargetAppIds = (message: Message): string[] => message.props?.targetAppIds ?? []\n\nconst getTargetUserTypes = (message: Message): MessageTargetUserType[] => message.props?.targetUserTypes ?? []\n\nconst getTargetUserEmails = (message: Message): string[] => message.props?.targetUserEmails ?? []\n\nconst getTargetExcludedUserEmails = (message: Message): string[] => message.props?.targetExcludedUserEmails ?? []\n\nconst assocStatus =\n (status: MessageStatus) =>\n (message: Message): Message =>\n Objects.assoc({ obj: message, prop: 'status', value: status })\n\nconst assocProp =\n (propKey: MessagePropsKey, propValue: any) =>\n (message: Message): Message =>\n Objects.assocPath({ obj: message, path: ['props', propKey], value: propValue })\n\nconst assocSubject =\n (subject: string) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.subject, subject)(message)\n\nconst assocBody =\n (body: string) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.body, body)(message)\n\nconst assocNotificationTypes =\n (notificationTypes: MessageNotificationType[]) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.notificationTypes, notificationTypes)(message)\n\nconst assocTargetAppIds =\n (targetAppIds: string[]) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.targetAppIds, targetAppIds)(message)\n\nconst assocTargetUserTypes =\n (targetUserTypes: MessageTargetUserType[]) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.targetUserTypes, targetUserTypes)(message)\n\nconst assocTargetUserEmails =\n (emails: string[]) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.targetUserEmails, emails)(message)\n\nconst assocTargetExcludedUserEmails =\n (emails: string[]) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.targetExcludedUserEmails, emails)(message)\n\nconst assocDateValidUntil =\n (dateValidUntil: Date | undefined) =>\n (message: Message): Message =>\n assocProp(MessagePropsKey.dateValidUntil, dateValidUntil)(message)\n\nconst isTargetingUser =\n (user: User) =>\n (message: Message): boolean => {\n const now = Date.now()\n // dates can be strings (e.g. when the message comes from JSON): compare timestamps\n const validUntil = getDateValidUntil(message)\n if (validUntil && new Date(validUntil).getTime() < now) {\n return false\n }\n const scheduledAt = getDateScheduledAt(message)\n if (scheduledAt && new Date(scheduledAt).getTime() > now) {\n return false\n }\n const targets = getTargetUserTypes(message)\n if (targets.includes(MessageTargetUserType.Individual)) {\n return getTargetUserEmails(message).includes(user.email)\n }\n if (getTargetExcludedUserEmails(message).includes(user.email)) {\n return false\n }\n return (\n targets.includes(MessageTargetUserType.All) ||\n (targets.includes(MessageTargetUserType.SystemAdmins) && Users.isSystemAdmin(user)) ||\n (targets.includes(MessageTargetUserType.SurveyAdmins) &&\n !!Users.getAuthGroupByName(AuthGroupName.surveyAdmin)(user)) ||\n (targets.includes(MessageTargetUserType.SurveyManagers) && Users.isSurveyManager(user)) ||\n (targets.includes(MessageTargetUserType.DataAnalysts) &&\n !!Users.getAuthGroupByName(AuthGroupName.dataAnalyst)(user)) ||\n (targets.includes(MessageTargetUserType.DataCleaners) &&\n !!Users.getAuthGroupByName(AuthGroupName.dataCleanser)(user)) ||\n (targets.includes(MessageTargetUserType.DataEditors) &&\n !!Users.getAuthGroupByName(AuthGroupName.dataEditor)(user))\n )\n }\n\nconst clearHiddenProps = (message: Message): Message => {\n return hiddenProps.reduce((msg, prop) => assocProp(prop, undefined)(msg), message)\n}\n\nconst clearNotApplicableProps = (message: Message): Message => {\n const targets = getTargetUserTypes(message)\n let messageNext = message\n const targetEmailsNext = targets.includes(MessageTargetUserType.Individual) ? getTargetUserEmails(message) : []\n messageNext = assocTargetUserEmails(targetEmailsNext)(messageNext)\n const excludedEmailsNext = targets.includes(MessageTargetUserType.Individual)\n ? []\n : getTargetExcludedUserEmails(message)\n messageNext = assocTargetExcludedUserEmails(excludedEmailsNext)(messageNext)\n return messageNext\n}\n\nconst replaceBodyTemplateVariables =\n ({ i18n, user }: { i18n: I18n; user: User }) =>\n (message: Message): Message => {\n const body = getBody(message) ?? ''\n const titleKey = user.props?.title\n const name = user.name\n const titleAndNameParts = []\n if (Objects.isNotEmpty(name)) {\n titleAndNameParts.push(name)\n }\n if (Objects.isNotEmpty(titleKey) && UserTitle.preferNotToSay !== titleKey) {\n const title = i18n.t(`user.titleValues.${titleKey}`)\n titleAndNameParts.unshift(title)\n }\n const userTitleAndName = titleAndNameParts.length > 0 ? titleAndNameParts.join(' ') : 'User'\n const bodyFixed = body\n .replaceAll('{{userTitleAndName}}', userTitleAndName)\n .replaceAll('{{userName}}', name ?? 'User')\n return assocBody(bodyFixed)(message)\n }\n\nexport const Messages = {\n getStatus,\n getDateCreated,\n getDateModified,\n getDateScheduledAt,\n getDateValidUntil,\n getNotificationTypes,\n getSubject,\n getBody,\n getTargetAppIds,\n getTargetUserTypes,\n getTargetUserEmails,\n getTargetExcludedUserEmails,\n assocStatus,\n assocSubject,\n assocBody,\n assocNotificationTypes,\n assocTargetAppIds,\n assocTargetUserTypes,\n assocTargetUserEmails,\n assocTargetExcludedUserEmails,\n assocDateValidUntil,\n isTargetingUser,\n clearHiddenProps,\n clearNotApplicableProps,\n replaceBodyTemplateVariables,\n}\n"]}
|
package/dist/node/factory.js
CHANGED
|
@@ -4,7 +4,8 @@ exports.NodePlaceholderFactory = exports.NodeFactory = void 0;
|
|
|
4
4
|
const utils_1 = require("../utils");
|
|
5
5
|
exports.NodeFactory = {
|
|
6
6
|
createInstance: (params) => {
|
|
7
|
-
var _a
|
|
7
|
+
var _a;
|
|
8
|
+
var _b;
|
|
8
9
|
const { nodeDefUuid, recordUuid, parentNode, surveyUuid, value } = params;
|
|
9
10
|
const now = utils_1.Dates.nowFormattedForStorage();
|
|
10
11
|
return {
|
package/dist/node/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/node/factory.ts"],"names":[],"mappings":";;;AACA,oCAAuC;AAW1B,QAAA,WAAW,GAAqC;IAC3D,cAAc,EAAE,CAAC,MAAyB,EAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/node/factory.ts"],"names":[],"mappings":";;;AACA,oCAAuC;AAW1B,QAAA,WAAW,GAAqC;IAC3D,cAAc,EAAE,CAAC,MAAyB,EAAQ,EAAE;;;QAClD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;QACzE,MAAM,GAAG,GAAG,aAAK,CAAC,sBAAsB,EAAE,CAAA;QAE1C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,GAAG;YAChB,YAAY,EAAE,GAAG;YACjB,IAAI,EAAE;gBACJ,CAAC,EAAE,CAAC,GAAG,OAAC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,0CAAE,CAAC,mCAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAC,CAAC,CAAC,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACrF;YACD,WAAW;YACX,UAAU,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI;YAC5B,UAAU;YACV,UAAU;YACV,KAAK;YACL,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;SACjB,CAAA;IACH,CAAC;CACF,CAAA;AAEY,QAAA,sBAAsB,GAAqC;IACtE,cAAc,EAAE,CAAC,MAAyB,EAAQ,EAAE;QAClD,uCACK,QAAA,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,KACrC,WAAW,EAAE,IAAI,IAClB;IACH,CAAC;CACF,CAAA","sourcesContent":["import { Factory } from '../common'\nimport { Dates, UUIDs } from '../utils'\nimport { Node } from './node'\n\nexport type NodeFactoryParams = {\n nodeDefUuid: string\n recordUuid: string\n parentNode?: Node\n surveyUuid?: string\n value?: any\n}\n\nexport const NodeFactory: Factory<Node, NodeFactoryParams> = {\n createInstance: (params: NodeFactoryParams): Node => {\n const { nodeDefUuid, recordUuid, parentNode, surveyUuid, value } = params\n const now = Dates.nowFormattedForStorage()\n\n return {\n created: true,\n dateCreated: now,\n dateModified: now,\n meta: {\n h: [...(parentNode?.meta?.h ?? []), ...(parentNode?.uuid ? [parentNode?.uuid] : [])],\n },\n nodeDefUuid,\n parentUuid: parentNode?.uuid,\n recordUuid,\n surveyUuid,\n value,\n uuid: UUIDs.v4(),\n }\n },\n}\n\nexport const NodePlaceholderFactory: Factory<Node, NodeFactoryParams> = {\n createInstance: (params: NodeFactoryParams): Node => {\n return {\n ...NodeFactory.createInstance(params),\n placeholder: true,\n }\n },\n}\n"]}
|
package/dist/node/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/node/node.ts"],"names":[],"mappings":";;;AAGA,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EAHW,QAAQ,
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/node/node.ts"],"names":[],"mappings":";;;AAGA,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EAHW,QAAQ,aAAR,QAAQ,GAAR,QAAQ,QAGnB;AAED,IAAY,YAEX;AAFD,WAAY,YAAY;IACtB,uBAAO,CAAA;AACT,CAAC,EAFW,YAAY,aAAZ,YAAY,GAAZ,YAAY,QAEvB","sourcesContent":["import { CategoryItem } from '../category'\nimport { Taxon } from '../taxonomy'\n\nexport enum NodeKeys {\n meta = 'meta',\n value = 'value',\n}\n\nexport enum NodeMetaKeys {\n h = 'h',\n}\n\nexport interface NodeMeta {\n /**\n * Applicability of the node children (by definition UUID). If not defined, the children are applicable by default.\n */\n childApplicability?: { [uuid: string]: boolean }\n /**\n * Whether the node children (by definition UUID) are editable (true) or read-only (false).\n * If not defined, the children are editable by default.\n */\n cEdit?: { [uuid: string]: boolean }\n /**\n * Maximum number of children (by definition UUID) for the node.\n */\n childrenMaxCount?: { [uuid: string]: number }\n /**\n * Minimum number of children (by definition UUID) for the node.\n */\n childrenMinCount?: { [uuid: string]: number }\n /**\n * Whether the node children (by definition UUID) are visible (true) or hidden (false).\n * If not defined, the children are visible by default.\n */\n cVis?: { [uuid: string]: boolean }\n /**\n * Hierarchy of ancestor node UUIDs.\n */\n h?: string[]\n /**\n * Hierarchy of code attribute ancestor UUIDs (according to the parent code defs specified).\n */\n hCode?: string[]\n /**\n * True if the value has been auto-filled from the node default value\n */\n defaultValueApplied?: boolean\n /**\n * True if the value has been auto-filled from the user group qualifier\n */\n qualifierValueApplied?: boolean\n}\n\nexport interface NodeRefData {\n categoryItem?: CategoryItem\n taxon?: Taxon\n}\n\nexport interface Node {\n dateCreated?: string\n dateModified?: string\n id?: number\n meta?: NodeMeta\n nodeDefUuid: string\n parentUuid?: string\n recordUuid: string\n refData?: NodeRefData\n uuid: string\n value?: any\n placeholder?: boolean\n surveyUuid?: string\n\n // transient status variables\n /**\n * Record node has been created but not persisted yet.\n */\n created?: boolean\n /**\n * Record node has been deleted.\n */\n deleted?: boolean\n /**\n * Record node has been modified but not persisted yet.\n */\n updated?: boolean\n}\n\nexport interface NodesMap {\n [key: string]: Node\n}\n"]}
|
|
@@ -12,7 +12,8 @@ type FormatParams = {
|
|
|
12
12
|
quoteLabels?: boolean;
|
|
13
13
|
lang?: LanguageCode;
|
|
14
14
|
};
|
|
15
|
+
declare const format: (params: FormatParams) => any;
|
|
15
16
|
export declare const NodeValueFormatter: {
|
|
16
|
-
format:
|
|
17
|
+
format: typeof format;
|
|
17
18
|
};
|
|
18
19
|
export {};
|
|
@@ -8,7 +8,8 @@ const taxonomy_1 = require("../taxonomy");
|
|
|
8
8
|
const utils_1 = require("../utils");
|
|
9
9
|
const nodeValues_1 = require("./nodeValues");
|
|
10
10
|
const extractCategoryItem = (params) => {
|
|
11
|
-
var _a
|
|
11
|
+
var _a;
|
|
12
|
+
var _b;
|
|
12
13
|
const { survey, node, value } = params;
|
|
13
14
|
const itemUuid = nodeValues_1.NodeValues.getValueItemUuid(value);
|
|
14
15
|
if (!itemUuid)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeValueFormatter.js","sourceRoot":"","sources":["../../src/node/nodeValueFormatter.ts"],"names":[],"mappings":";;;AAAA,0CAAyD;AAEzD,wCAAwF;AACxF,sCAA2C;AAC3C,0CAAkC;AAClC,oCAAwE;AAExE,6CAAyC;AAEzC,MAAM,mBAAmB,GAAG,CAAC,MAAmD,EAA4B,EAAE
|
|
1
|
+
{"version":3,"file":"nodeValueFormatter.js","sourceRoot":"","sources":["../../src/node/nodeValueFormatter.ts"],"names":[],"mappings":"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","sourcesContent":["import { CategoryItem, CategoryItems } from '../category'\nimport { LanguageCode } from '../language'\nimport { NodeDef, NodeDefCode, NodeDefDecimal, NodeDefs, NodeDefType } from '../nodeDef'\nimport { Survey, Surveys } from '../survey'\nimport { Taxa } from '../taxonomy'\nimport { DateFormats, Dates, Numbers, Objects, Strings } from '../utils'\nimport { Node } from './node'\nimport { NodeValues } from './nodeValues'\n\nconst extractCategoryItem = (params: { survey: Survey; node?: Node; value: any }): CategoryItem | undefined => {\n const { survey, node, value } = params\n\n const itemUuid = NodeValues.getValueItemUuid(value)\n if (!itemUuid) return undefined\n\n const item = node?.refData?.categoryItem ?? Surveys.getCategoryItemByUuid({ survey, itemUuid })\n // check the validity of the reference data category item\n return item?.props && Objects.isNotEmpty(CategoryItems.getCode(item)) ? item : undefined\n}\n\ntype FormatParams = {\n survey: Survey\n cycle: string\n nodeDef: NodeDef<NodeDefType>\n node?: Node\n value: any\n showLabel?: boolean\n quoteLabels?: boolean\n lang?: LanguageCode\n}\n\nconst formatters: { [key in NodeDefType]?: (params: FormatParams) => any } = {\n [NodeDefType.code]: (params: FormatParams) => {\n const { survey, cycle, nodeDef, node, value, showLabel, quoteLabels, lang } = params\n\n if (!showLabel) {\n // item code already inside value, no need to get category item\n const itemCode = NodeValues.getValueCode(value)\n if (!Objects.isEmpty(itemCode)) return itemCode\n }\n const categoryItem = extractCategoryItem({ survey, node, value })\n if (!categoryItem) return null\n\n if (showLabel) {\n let result\n if (NodeDefs.isCodeShown(cycle)(nodeDef as NodeDefCode)) {\n result = CategoryItems.getLabelWithCode(categoryItem, lang!)\n } else {\n result = CategoryItems.getLabel(categoryItem, lang!, true)\n }\n return quoteLabels ? Strings.quote(result) : result\n }\n return CategoryItems.getCode(categoryItem)\n },\n [NodeDefType.date]: (params: FormatParams) => {\n const { value } = params\n const dateParsed = Dates.parseISO(value)\n return Dates.format(dateParsed, DateFormats.dateDisplay)\n },\n [NodeDefType.decimal]: (params: FormatParams) => {\n const { value, nodeDef } = params\n return Numbers.formatDecimal(value, NodeDefs.getMaxNumberDecimalDigits(nodeDef as NodeDefDecimal))\n },\n [NodeDefType.integer]: (params: FormatParams) => {\n const { value } = params\n return Numbers.formatInteger(Number(value))\n },\n [NodeDefType.taxon]: (params: FormatParams) => {\n const { survey, value, showLabel } = params\n const taxonUuid = NodeValues.getValueTaxonUuid(value)\n if (!taxonUuid) return null\n const taxon = Surveys.getTaxonByUuid({ survey, taxonUuid })\n if (!taxon) return null\n return showLabel ? Taxa.getScientificName(taxon) : Taxa.getCode(taxon)\n },\n [NodeDefType.text]: (params: FormatParams) => {\n const { value, quoteLabels } = params\n return quoteLabels ? Strings.quote(value) : value\n },\n}\n\nconst format = (params: FormatParams) => {\n const { nodeDef, value } = params\n if (Objects.isEmpty(value)) {\n return ''\n }\n const formatter = formatters[NodeDefs.getType(nodeDef)]\n const formatValue = (v: any) => (formatter ? formatter({ ...params, value: v }) : v)\n\n return NodeDefs.isMultiple(nodeDef) && Array.isArray(value) ? value.map(formatValue).join(', ') : formatValue(value)\n}\n\nexport const NodeValueFormatter = {\n format,\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeValueProps.js","sourceRoot":"","sources":["../../src/node/nodeValueProps.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,uCAAqB,CAAA;IACrB,iCAAe,CAAA;AACjB,CAAC,EAJW,cAAc,
|
|
1
|
+
{"version":3,"file":"nodeValueProps.js","sourceRoot":"","sources":["../../src/node/nodeValueProps.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,uCAAqB,CAAA;IACrB,iCAAe,CAAA;AACjB,CAAC,EAJW,cAAc,aAAd,cAAc,GAAd,cAAc,QAIzB;AAED,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,+BAAO,CAAA;IACP,+BAAO,CAAA;IACP,mCAAW,CAAA;IACX,6CAAqB,CAAA;IACrB,6CAAqB,CAAA;IACrB,6DAAqC,CAAA;AACvC,CAAC,EAPW,oBAAoB,aAApB,oBAAoB,GAApB,oBAAoB,QAO/B;AAED,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,6BAAW,CAAA;IACX,iCAAe,CAAA;IACf,+BAAa,CAAA;AACf,CAAC,EAJW,cAAc,aAAd,cAAc,GAAd,cAAc,QAIzB;AAED,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,uCAAqB,CAAA;IACrB,2DAAyC,CAAA;IACzC,uCAAqB,CAAA;AACvB,CAAC,EALW,cAAc,aAAd,cAAc,GAAd,cAAc,QAKzB;AAED,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,oDAAiC,CAAA;IACjC,0CAAuB,CAAA;IACvB,oDAAiC,CAAA;IACjC,4DAAyC,CAAA;AAC3C,CAAC,EANW,eAAe,aAAf,eAAe,GAAf,eAAe,QAM1B;AAED,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;AACrB,CAAC,EAJW,cAAc,aAAd,cAAc,GAAd,cAAc,QAIzB","sourcesContent":["export enum ValuePropsCode {\n code = 'code',\n itemUuid = 'itemUuid',\n label = 'label',\n}\n\nexport enum ValuePropsCoordinate {\n x = 'x',\n y = 'y',\n srs = 'srs',\n accuracy = 'accuracy',\n altitude = 'altitude',\n altitudeAccuracy = 'altitudeAccuracy',\n}\n\nexport enum ValuePropsDate {\n day = 'day',\n month = 'month',\n year = 'year',\n}\n\nexport enum ValuePropsFile {\n fileUuid = 'fileUuid',\n fileName = 'fileName',\n fileNameCalculated = 'fileNameCalculated',\n fileSize = 'fileSize',\n}\n\nexport enum ValuePropsTaxon {\n code = 'code',\n scientificName = 'scientificName',\n taxonUuid = 'taxonUuid',\n vernacularName = 'vernacularName',\n vernacularNameUuid = 'vernacularNameUuid',\n}\n\nexport enum ValuePropsTime {\n hour = 'hour',\n minute = 'minute',\n seconds = 'seconds',\n}\n"]}
|
|
@@ -13,6 +13,36 @@ export declare const ValuePropsByType: {
|
|
|
13
13
|
[key: string]: string;
|
|
14
14
|
} | null;
|
|
15
15
|
};
|
|
16
|
+
declare const newCodeValue: (params: {
|
|
17
|
+
itemUuid: string;
|
|
18
|
+
}) => {
|
|
19
|
+
itemUuid: string;
|
|
20
|
+
};
|
|
21
|
+
declare const getItemUuid: (node: Node) => string | undefined;
|
|
22
|
+
declare const getValueCode: (value: any) => string | undefined;
|
|
23
|
+
declare const getValueItemUuid: (value: any) => string | undefined;
|
|
24
|
+
declare const getFileName: (node: Node) => string | undefined;
|
|
25
|
+
declare const getFileNameCalculated: (node: Node) => string | undefined;
|
|
26
|
+
declare const getFileSize: (node: Node) => string | undefined;
|
|
27
|
+
declare const getFileUuid: (node: Node) => string | undefined;
|
|
28
|
+
declare const getTaxonUuid: (node: Node) => string | undefined;
|
|
29
|
+
declare const getValueTaxonUuid: (value: any) => string | undefined;
|
|
30
|
+
declare const getScientificName: (node: Node) => string | undefined;
|
|
31
|
+
declare const getValueScientificName: (value: any) => string | undefined;
|
|
32
|
+
declare const getVernacularName: (node: Node) => string | undefined;
|
|
33
|
+
declare const getValueVernacularName: (value: any) => string | undefined;
|
|
34
|
+
declare const getVernacularNameUuid: (node: Node) => string | undefined;
|
|
35
|
+
declare const getValueVernacularNameUuid: (value: any) => string | undefined;
|
|
36
|
+
declare const getTimeSeconds: (node: Node) => number;
|
|
37
|
+
declare const isValueProp: (params: {
|
|
38
|
+
nodeDef: NodeDef<NodeDefType, NodeDefProps>;
|
|
39
|
+
prop: string;
|
|
40
|
+
}) => boolean;
|
|
41
|
+
declare const getNodeValueProp: (params: {
|
|
42
|
+
nodeDef: NodeDef<NodeDefType, NodeDefProps>;
|
|
43
|
+
node: Node;
|
|
44
|
+
prop: string;
|
|
45
|
+
}) => any;
|
|
16
46
|
interface NodeValuesCompareParams {
|
|
17
47
|
survey: Survey;
|
|
18
48
|
nodeDef: NodeDef<NodeDefType, any>;
|
|
@@ -22,6 +52,11 @@ interface NodeValuesCompareParams {
|
|
|
22
52
|
parentNode?: Node;
|
|
23
53
|
strict?: boolean;
|
|
24
54
|
}
|
|
55
|
+
declare const isValueEqual: (params: NodeValuesCompareParams) => boolean;
|
|
56
|
+
declare const getValueAsPoint: (params: {
|
|
57
|
+
survey: Survey;
|
|
58
|
+
node: Node;
|
|
59
|
+
}) => Point | null;
|
|
25
60
|
export declare const NodeValues: {
|
|
26
61
|
ValuePropsByType: {
|
|
27
62
|
boolean: {
|
|
@@ -39,15 +74,18 @@ export declare const NodeValues: {
|
|
|
39
74
|
decimal: {
|
|
40
75
|
[key: string]: string;
|
|
41
76
|
} | null;
|
|
42
|
-
geo: {
|
|
43
|
-
[key: string]: string;
|
|
44
|
-
} | null;
|
|
45
77
|
entity: {
|
|
46
78
|
[key: string]: string;
|
|
47
79
|
} | null;
|
|
48
80
|
file: {
|
|
49
81
|
[key: string]: string;
|
|
50
82
|
} | null;
|
|
83
|
+
formHeader: {
|
|
84
|
+
[key: string]: string;
|
|
85
|
+
} | null;
|
|
86
|
+
geo: {
|
|
87
|
+
[key: string]: string;
|
|
88
|
+
} | null;
|
|
51
89
|
integer: {
|
|
52
90
|
[key: string]: string;
|
|
53
91
|
} | null;
|
|
@@ -60,9 +98,6 @@ export declare const NodeValues: {
|
|
|
60
98
|
time: {
|
|
61
99
|
[key: string]: string;
|
|
62
100
|
} | null;
|
|
63
|
-
formHeader: {
|
|
64
|
-
[key: string]: string;
|
|
65
|
-
} | null;
|
|
66
101
|
};
|
|
67
102
|
ValuePropsCode: typeof ValuePropsCode;
|
|
68
103
|
ValuePropsCoordinate: typeof ValuePropsCoordinate;
|
|
@@ -70,45 +105,31 @@ export declare const NodeValues: {
|
|
|
70
105
|
ValuePropsFile: typeof ValuePropsFile;
|
|
71
106
|
ValuePropsTaxon: typeof ValuePropsTaxon;
|
|
72
107
|
ValuePropsTime: typeof ValuePropsTime;
|
|
73
|
-
getNodeValueProp:
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
prop: string;
|
|
81
|
-
}) => boolean;
|
|
82
|
-
getValueAsPoint: (params: {
|
|
83
|
-
survey: Survey;
|
|
84
|
-
node: Node;
|
|
85
|
-
}) => Point | null;
|
|
86
|
-
newCodeValue: (params: {
|
|
87
|
-
itemUuid: string;
|
|
88
|
-
}) => {
|
|
89
|
-
itemUuid: string;
|
|
90
|
-
};
|
|
91
|
-
getItemUuid: (node: Node) => string | undefined;
|
|
92
|
-
getValueCode: (value: any) => string | undefined;
|
|
93
|
-
getValueItemUuid: (value: any) => string | undefined;
|
|
108
|
+
getNodeValueProp: typeof getNodeValueProp;
|
|
109
|
+
isValueProp: typeof isValueProp;
|
|
110
|
+
getValueAsPoint: typeof getValueAsPoint;
|
|
111
|
+
newCodeValue: typeof newCodeValue;
|
|
112
|
+
getItemUuid: typeof getItemUuid;
|
|
113
|
+
getValueCode: typeof getValueCode;
|
|
114
|
+
getValueItemUuid: typeof getValueItemUuid;
|
|
94
115
|
getDateYear: (node: Node) => number;
|
|
95
116
|
getDateMonth: (node: Node) => number;
|
|
96
117
|
getDateDay: (node: Node) => number;
|
|
97
|
-
getFileName:
|
|
98
|
-
getFileNameCalculated:
|
|
99
|
-
getFileSize:
|
|
100
|
-
getFileUuid:
|
|
101
|
-
getTaxonUuid:
|
|
102
|
-
getValueTaxonUuid:
|
|
103
|
-
getScientificName:
|
|
104
|
-
getValueScientificName:
|
|
105
|
-
getVernacularName:
|
|
106
|
-
getValueVernacularName:
|
|
107
|
-
getVernacularNameUuid:
|
|
108
|
-
getValueVernacularNameUuid:
|
|
118
|
+
getFileName: typeof getFileName;
|
|
119
|
+
getFileNameCalculated: typeof getFileNameCalculated;
|
|
120
|
+
getFileSize: typeof getFileSize;
|
|
121
|
+
getFileUuid: typeof getFileUuid;
|
|
122
|
+
getTaxonUuid: typeof getTaxonUuid;
|
|
123
|
+
getValueTaxonUuid: typeof getValueTaxonUuid;
|
|
124
|
+
getScientificName: typeof getScientificName;
|
|
125
|
+
getValueScientificName: typeof getValueScientificName;
|
|
126
|
+
getVernacularName: typeof getVernacularName;
|
|
127
|
+
getValueVernacularName: typeof getValueVernacularName;
|
|
128
|
+
getVernacularNameUuid: typeof getVernacularNameUuid;
|
|
129
|
+
getValueVernacularNameUuid: typeof getValueVernacularNameUuid;
|
|
109
130
|
getTimeHour: (node: Node) => number;
|
|
110
131
|
getTimeMinute: (node: Node) => number;
|
|
111
|
-
getTimeSeconds:
|
|
112
|
-
isValueEqual:
|
|
132
|
+
getTimeSeconds: typeof getTimeSeconds;
|
|
133
|
+
isValueEqual: typeof isValueEqual;
|
|
113
134
|
};
|
|
114
135
|
export {};
|
package/dist/node/nodeValues.js
CHANGED
|
@@ -46,9 +46,10 @@ const getItemUuid = (node) => getNodeValuePropRaw({ node, prop: nodeValueProps_1
|
|
|
46
46
|
const getValueCode = (value) => getValuePropRaw({ value, prop: nodeValueProps_1.ValuePropsCode[nodeValueProps_1.ValuePropsCode.code] });
|
|
47
47
|
const getValueItemUuid = (value) => getValuePropRaw({ value, prop: nodeValueProps_1.ValuePropsCode[nodeValueProps_1.ValuePropsCode.itemUuid] });
|
|
48
48
|
const getDateTimePart = (params) => {
|
|
49
|
-
var _a
|
|
49
|
+
var _a;
|
|
50
|
+
var _b;
|
|
50
51
|
const { node, index, separator } = params;
|
|
51
|
-
return Number((
|
|
52
|
+
return Number((_a = ((_b = node.value) !== null && _b !== void 0 ? _b : '').split(separator)[index]) === null || _a === void 0 ? void 0 : _a.trim());
|
|
52
53
|
};
|
|
53
54
|
// Date
|
|
54
55
|
const getDatePart = (index) => (node) => getDateTimePart({ node, index, separator: '-' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeValues.js","sourceRoot":"","sources":["../../src/node/nodeValues.ts"],"names":[],"mappings":"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","sourcesContent":["import { CategoryItems } from '../category'\nimport { Point, PointFactory } from '../geo'\nimport { NodeDef, NodeDefCode, NodeDefProps, NodeDefType } from '../nodeDef'\nimport { Record, Records } from '../record'\nimport { Survey, Surveys } from '../survey'\nimport { DateFormats, Dates, Objects } from '../utils'\nimport { Node } from './node'\nimport { NodeValueCoordinate } from './nodeValue/coordinate'\nimport {\n ValuePropsCode,\n ValuePropsCoordinate,\n ValuePropsDate,\n ValuePropsFile,\n ValuePropsTaxon,\n ValuePropsTime,\n} from './nodeValueProps'\n\n/**\n * Props of node value indexed by node def type.\n * The node definitions here are only the ones of \"composite\" attributes.\n */\nexport const ValuePropsByType: { [key in NodeDefType]: { [key: string]: string } | null } = {\n [NodeDefType.boolean]: null,\n [NodeDefType.code]: ValuePropsCode,\n [NodeDefType.coordinate]: ValuePropsCoordinate,\n [NodeDefType.date]: ValuePropsDate,\n [NodeDefType.decimal]: null,\n [NodeDefType.geo]: null,\n [NodeDefType.entity]: null,\n [NodeDefType.file]: ValuePropsFile,\n [NodeDefType.integer]: null,\n [NodeDefType.taxon]: ValuePropsTaxon,\n [NodeDefType.time]: ValuePropsTime,\n [NodeDefType.text]: null,\n // layout elements\n [NodeDefType.formHeader]: null,\n}\n\nconst getValuePropRaw = (params: { value: any; prop: string; defaultValue?: any }): any => {\n const { value, prop, defaultValue } = params\n const valueProp = value?.[prop]\n return valueProp === undefined ? defaultValue : valueProp\n}\n\nconst getNodeValuePropRaw = (params: { node: Node; prop: string; defaultValue?: any }): any => {\n const { node, prop, defaultValue } = params\n return getValuePropRaw({ value: node.value, prop, defaultValue })\n}\n\n// Code\nconst newCodeValue = (params: { itemUuid: string }) => {\n const { itemUuid } = params\n return { [ValuePropsCode[ValuePropsCode.itemUuid]]: itemUuid }\n}\n\nconst getItemUuid = (node: Node): string | undefined =>\n getNodeValuePropRaw({ node, prop: ValuePropsCode[ValuePropsCode.itemUuid] })\n\nconst getValueCode = (value: any): string | undefined =>\n getValuePropRaw({ value, prop: ValuePropsCode[ValuePropsCode.code] })\n\nconst getValueItemUuid = (value: any): string | undefined =>\n getValuePropRaw({ value, prop: ValuePropsCode[ValuePropsCode.itemUuid] })\n\nconst getDateTimePart = (params: { node: Node; index: number; separator: string }): number => {\n const { node, index, separator } = params\n return Number((node.value ?? '').split(separator)[index]?.trim())\n}\n\n// Date\nconst getDatePart =\n (index: number) =>\n (node: Node): number =>\n getDateTimePart({ node, index, separator: '-' })\nconst getDateYear = getDatePart(0)\nconst getDateMonth = getDatePart(1)\nconst getDateDay = getDatePart(2)\n\nconst _datePropGetters: { [key in ValuePropsDate]: (node: Node) => number } = {\n [ValuePropsDate.day]: getDateDay,\n [ValuePropsDate.month]: getDateMonth,\n [ValuePropsDate.year]: getDateYear,\n}\n\n// File\nconst getFileName = (node: Node): string | undefined => getNodeValuePropRaw({ node, prop: ValuePropsFile.fileName })\nconst getFileNameCalculated = (node: Node): string | undefined =>\n getNodeValuePropRaw({ node, prop: ValuePropsFile.fileNameCalculated })\nconst getFileSize = (node: Node): string | undefined => getNodeValuePropRaw({ node, prop: ValuePropsFile.fileSize })\nconst getFileUuid = (node: Node): string | undefined => getNodeValuePropRaw({ node, prop: ValuePropsFile.fileUuid })\n\n// Taxon\nconst getTaxonUuid = (node: Node): string | undefined =>\n getNodeValuePropRaw({ node, prop: ValuePropsTaxon[ValuePropsTaxon.taxonUuid] })\nconst getValueTaxonUuid = (value: any): string | undefined =>\n getValuePropRaw({ value, prop: ValuePropsTaxon[ValuePropsTaxon.taxonUuid] })\nconst getScientificName = (node: Node): string | undefined =>\n getNodeValuePropRaw({ node, prop: ValuePropsTaxon[ValuePropsTaxon.scientificName] })\nconst getValueScientificName = (value: any): string | undefined =>\n getValuePropRaw({ value, prop: ValuePropsTaxon[ValuePropsTaxon.scientificName] })\nconst getVernacularName = (node: Node): string | undefined =>\n getNodeValuePropRaw({ node, prop: ValuePropsTaxon[ValuePropsTaxon.vernacularName] })\nconst getValueVernacularName = (value: any): string | undefined =>\n getValuePropRaw({ value, prop: ValuePropsTaxon[ValuePropsTaxon.vernacularName] })\nconst getVernacularNameUuid = (node: Node): string | undefined =>\n getNodeValuePropRaw({ node, prop: ValuePropsTaxon[ValuePropsTaxon.vernacularNameUuid] })\nconst getValueVernacularNameUuid = (value: any): string | undefined =>\n getValuePropRaw({ value, prop: ValuePropsTaxon[ValuePropsTaxon.vernacularNameUuid] })\n\n// Time\nconst _getTimePart =\n (index: number) =>\n (node: Node): number =>\n getDateTimePart({ node, index, separator: ':' })\nconst getTimeHour = _getTimePart(0)\nconst getTimeMinute = _getTimePart(1)\nconst getTimeSeconds = (node: Node): number => {\n const parts = (node.value ?? '').split(':')\n return parts.length > 2 ? _getTimePart(2)(node) : 0\n}\n\nconst _timePropGetters: { [key in ValuePropsTime]: any } = {\n [ValuePropsTime.hour]: getTimeHour,\n [ValuePropsTime.minute]: getTimeMinute,\n [ValuePropsTime.seconds]: getTimeSeconds,\n}\n\nconst _valuePropGetters: { [key in NodeDefType]?: (prop: string) => (node: Node) => number } = {\n [NodeDefType.date]: (prop: string) => _datePropGetters[ValuePropsDate[prop as keyof typeof ValuePropsDate]],\n [NodeDefType.time]: (prop: string) => _timePropGetters[ValuePropsTime[prop as keyof typeof ValuePropsTime]],\n}\n\nconst isValueProp = (params: { nodeDef: NodeDef<NodeDefType, NodeDefProps>; prop: string }): boolean => {\n const { nodeDef, prop } = params\n return Object.values(ValuePropsByType[nodeDef.type] ?? {}).includes(prop)\n}\n\nconst getNodeValueProp = (params: { nodeDef: NodeDef<NodeDefType, NodeDefProps>; node: Node; prop: string }): any => {\n const { nodeDef, node, prop } = params\n const propGetter: any = _valuePropGetters[nodeDef.type]\n return propGetter ? propGetter(prop)(node) : getNodeValuePropRaw({ node, prop })\n}\n\n// value compare\n\nconst singlePropValueEqualComparator = (params: NodeValuesCompareParams): boolean => {\n const { value, valueSearch } = params\n return value === valueSearch || String(value) === String(valueSearch)\n}\n\nconst extractCategoryItemUuidFromValue = (params: NodeValuesCompareParams): string | undefined => {\n const { survey, nodeDef, record, parentNode, value } = params\n const valueItemUuid = getValueItemUuid(value)\n if (valueItemUuid) {\n return valueItemUuid\n }\n // find itemUuid by code\n const valueCode = getValueCode(value)\n if (Objects.isEmpty(valueCode)) return undefined\n\n const nodeDefCode = nodeDef as NodeDefCode\n const code = valueCode!\n const categoryUuid = nodeDefCode.props?.categoryUuid\n const levelIndex = Surveys.getNodeDefCategoryLevelIndex({ survey, nodeDef: nodeDefCode })\n if (levelIndex === 0) {\n return Surveys.getCategoryItemUuidByCode({ survey, categoryUuid, parentItemUuid: undefined, code })\n }\n if (!record || !parentNode) return undefined\n\n const parentCodeAttribute = Records.getParentCodeAttribute({ parentNode, nodeDef: nodeDef as NodeDefCode })(record)\n if (!parentCodeAttribute) return undefined\n\n const parentItemUuid = getItemUuid(parentCodeAttribute)\n if (!parentItemUuid) return undefined\n\n return Surveys.getCategoryItemUuidByCode({\n survey,\n categoryUuid,\n parentItemUuid,\n code,\n })\n}\n\nconst extractCategoryItemCodeFromValue = (params: { survey: Survey; value: any }): string | undefined => {\n const { survey, value } = params\n const itemUuid = getValueItemUuid(value)\n if (itemUuid) {\n const item = Surveys.getCategoryItemByUuid({ survey, itemUuid })\n return item ? CategoryItems.getCode(item) : undefined\n }\n return getValueCode(value)\n}\n\nconst dateTimeComparator =\n (params: { formatsSource: DateFormats[]; formatTo: DateFormats }) =>\n (paramsComparator: NodeValuesCompareParams): boolean => {\n const { formatsSource, formatTo } = params\n const { value, valueSearch } = paramsComparator\n const toDateTime = (val: any) => {\n if (val instanceof Date) {\n return Dates.format(val, formatTo)\n }\n const formatFrom = formatsSource.find((format) => Dates.isValidDateInFormat(val, format))\n return formatFrom ? Dates.convertDate({ dateStr: val, formatFrom, formatTo }) : null\n }\n const dateTime = toDateTime(value)\n const dateTimeSearch = toDateTime(valueSearch)\n return !!dateTime && !!dateTimeSearch && dateTime === dateTimeSearch\n }\n\nconst valueComparatorByNodeDefType: { [key in NodeDefType]?: (params: NodeValuesCompareParams) => boolean } = {\n [NodeDefType.boolean]: singlePropValueEqualComparator,\n [NodeDefType.code]: (params: NodeValuesCompareParams): boolean => {\n const { survey, record, value, valueSearch, strict } = params\n if (!strict || !record) {\n // compare just codes (record not available, tricky to find the \"correct\" category item without knowing its parent item)\n const code = extractCategoryItemCodeFromValue({ survey, value })\n const codeSearch = extractCategoryItemCodeFromValue({ survey, value: valueSearch })\n return !!code && !!codeSearch && code === codeSearch\n }\n const itemUuid = extractCategoryItemUuidFromValue(params)\n const itemUuidSearch = extractCategoryItemUuidFromValue({\n ...params,\n value: valueSearch,\n })\n return !!itemUuidSearch && !!itemUuid && itemUuidSearch === itemUuid\n },\n [NodeDefType.coordinate]: (params: NodeValuesCompareParams) => {\n const { value, valueSearch } = params\n return Objects.isEqual(value, valueSearch)\n },\n [NodeDefType.date]: dateTimeComparator({\n formatsSource: [DateFormats.dateDisplay, DateFormats.dateStorage],\n formatTo: DateFormats.dateStorage,\n }),\n [NodeDefType.decimal]: singlePropValueEqualComparator,\n [NodeDefType.integer]: singlePropValueEqualComparator,\n [NodeDefType.taxon]: ({ value, valueSearch }) => {\n if (value === valueSearch) return true\n if (!value) return false\n if (!valueSearch) return false\n return value[ValuePropsTaxon.taxonUuid] === valueSearch[ValuePropsTaxon.taxonUuid]\n },\n [NodeDefType.text]: singlePropValueEqualComparator,\n [NodeDefType.time]: dateTimeComparator({\n formatsSource: [DateFormats.timeStorage, DateFormats.timeWithSeconds],\n formatTo: DateFormats.timeWithSeconds,\n }),\n}\n\ninterface NodeValuesCompareParams {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, any>\n value: any\n valueSearch: any\n record?: Record\n parentNode?: Node\n strict?: boolean\n}\n\nconst isValueEqual = (params: NodeValuesCompareParams): boolean => {\n const { survey, nodeDef, value, valueSearch, record = undefined, parentNode = undefined, strict = false } = params\n if (value === valueSearch) return true\n if (Objects.isEmpty(value) || Objects.isEmpty(valueSearch)) return false\n\n const valueComparator = valueComparatorByNodeDefType[nodeDef.type]\n if (!valueComparator) {\n return Objects.isEqual(value, valueSearch)\n }\n return valueComparator({ survey, nodeDef, record, parentNode, value, valueSearch, strict })\n}\n\nconst getValueAsPoint = (params: { survey: Survey; node: Node }): Point | null => {\n const { survey, node } = params\n const nodeValue = node?.value\n\n if (!nodeValue) return null\n\n const nodeDef = Surveys.getNodeDefByUuid({ survey, uuid: node.nodeDefUuid })\n if (nodeDef.type === NodeDefType.coordinate) {\n const { x, y, srs } = nodeValue as NodeValueCoordinate\n\n const srsObject = Surveys.getSRSByCode(srs)(survey)\n if (!srsObject) return null\n\n return PointFactory.createInstance({ srs, x, y })\n }\n return null\n}\n\nexport const NodeValues = {\n ValuePropsByType,\n ValuePropsCode,\n ValuePropsCoordinate,\n ValuePropsDate,\n ValuePropsFile,\n ValuePropsTaxon,\n ValuePropsTime,\n\n getNodeValueProp,\n isValueProp,\n\n // coordinate\n getValueAsPoint,\n\n // code\n newCodeValue,\n getItemUuid,\n getValueCode,\n getValueItemUuid,\n\n // date\n getDateYear,\n getDateMonth,\n getDateDay,\n\n // file\n getFileName,\n getFileNameCalculated,\n getFileSize,\n getFileUuid,\n\n // taxon\n getTaxonUuid,\n getValueTaxonUuid,\n getScientificName,\n getValueScientificName,\n getVernacularName,\n getValueVernacularName,\n getVernacularNameUuid,\n getValueVernacularNameUuid,\n\n // time\n getTimeHour,\n getTimeMinute,\n getTimeSeconds,\n\n // utils\n isValueEqual,\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nodeValues.js","sourceRoot":"","sources":["../../src/node/nodeValues.ts"],"names":[],"mappings":"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","sourcesContent":["import { CategoryItems } from '../category'\nimport { Point, PointFactory } from '../geo'\nimport { NodeDef, NodeDefCode, NodeDefProps, NodeDefType } from '../nodeDef'\nimport { Record, Records } from '../record'\nimport { Survey, Surveys } from '../survey'\nimport { DateFormats, Dates, Objects } from '../utils'\nimport { Node } from './node'\nimport { NodeValueCoordinate } from './nodeValue/coordinate'\nimport {\n ValuePropsCode,\n ValuePropsCoordinate,\n ValuePropsDate,\n ValuePropsFile,\n ValuePropsTaxon,\n ValuePropsTime,\n} from './nodeValueProps'\n\n/**\n * Props of node value indexed by node def type.\n * The node definitions here are only the ones of \"composite\" attributes.\n */\nexport const ValuePropsByType: { [key in NodeDefType]: { [key: string]: string } | null } = {\n [NodeDefType.boolean]: null,\n [NodeDefType.code]: ValuePropsCode,\n [NodeDefType.coordinate]: ValuePropsCoordinate,\n [NodeDefType.date]: ValuePropsDate,\n [NodeDefType.decimal]: null,\n [NodeDefType.geo]: null,\n [NodeDefType.entity]: null,\n [NodeDefType.file]: ValuePropsFile,\n [NodeDefType.integer]: null,\n [NodeDefType.taxon]: ValuePropsTaxon,\n [NodeDefType.time]: ValuePropsTime,\n [NodeDefType.text]: null,\n // layout elements\n [NodeDefType.formHeader]: null,\n}\n\nconst getValuePropRaw = (params: { value: any; prop: string; defaultValue?: any }): any => {\n const { value, prop, defaultValue } = params\n const valueProp = value?.[prop]\n return valueProp === undefined ? defaultValue : valueProp\n}\n\nconst getNodeValuePropRaw = (params: { node: Node; prop: string; defaultValue?: any }): any => {\n const { node, prop, defaultValue } = params\n return getValuePropRaw({ value: node.value, prop, defaultValue })\n}\n\n// Code\nconst newCodeValue = (params: { itemUuid: string }) => {\n const { itemUuid } = params\n return { [ValuePropsCode[ValuePropsCode.itemUuid]]: itemUuid }\n}\n\nconst getItemUuid = (node: Node): string | undefined =>\n getNodeValuePropRaw({ node, prop: ValuePropsCode[ValuePropsCode.itemUuid] })\n\nconst getValueCode = (value: any): string | undefined =>\n getValuePropRaw({ value, prop: ValuePropsCode[ValuePropsCode.code] })\n\nconst getValueItemUuid = (value: any): string | undefined =>\n getValuePropRaw({ value, prop: ValuePropsCode[ValuePropsCode.itemUuid] })\n\nconst getDateTimePart = (params: { node: Node; index: number; separator: string }): number => {\n const { node, index, separator } = params\n return Number((node.value ?? '').split(separator)[index]?.trim())\n}\n\n// Date\nconst getDatePart =\n (index: number) =>\n (node: Node): number =>\n getDateTimePart({ node, index, separator: '-' })\nconst getDateYear = getDatePart(0)\nconst getDateMonth = getDatePart(1)\nconst getDateDay = getDatePart(2)\n\nconst _datePropGetters: { [key in ValuePropsDate]: (node: Node) => number } = {\n [ValuePropsDate.day]: getDateDay,\n [ValuePropsDate.month]: getDateMonth,\n [ValuePropsDate.year]: getDateYear,\n}\n\n// File\nconst getFileName = (node: Node): string | undefined => getNodeValuePropRaw({ node, prop: ValuePropsFile.fileName })\nconst getFileNameCalculated = (node: Node): string | undefined =>\n getNodeValuePropRaw({ node, prop: ValuePropsFile.fileNameCalculated })\nconst getFileSize = (node: Node): string | undefined => getNodeValuePropRaw({ node, prop: ValuePropsFile.fileSize })\nconst getFileUuid = (node: Node): string | undefined => getNodeValuePropRaw({ node, prop: ValuePropsFile.fileUuid })\n\n// Taxon\nconst getTaxonUuid = (node: Node): string | undefined =>\n getNodeValuePropRaw({ node, prop: ValuePropsTaxon[ValuePropsTaxon.taxonUuid] })\nconst getValueTaxonUuid = (value: any): string | undefined =>\n getValuePropRaw({ value, prop: ValuePropsTaxon[ValuePropsTaxon.taxonUuid] })\nconst getScientificName = (node: Node): string | undefined =>\n getNodeValuePropRaw({ node, prop: ValuePropsTaxon[ValuePropsTaxon.scientificName] })\nconst getValueScientificName = (value: any): string | undefined =>\n getValuePropRaw({ value, prop: ValuePropsTaxon[ValuePropsTaxon.scientificName] })\nconst getVernacularName = (node: Node): string | undefined =>\n getNodeValuePropRaw({ node, prop: ValuePropsTaxon[ValuePropsTaxon.vernacularName] })\nconst getValueVernacularName = (value: any): string | undefined =>\n getValuePropRaw({ value, prop: ValuePropsTaxon[ValuePropsTaxon.vernacularName] })\nconst getVernacularNameUuid = (node: Node): string | undefined =>\n getNodeValuePropRaw({ node, prop: ValuePropsTaxon[ValuePropsTaxon.vernacularNameUuid] })\nconst getValueVernacularNameUuid = (value: any): string | undefined =>\n getValuePropRaw({ value, prop: ValuePropsTaxon[ValuePropsTaxon.vernacularNameUuid] })\n\n// Time\nconst _getTimePart =\n (index: number) =>\n (node: Node): number =>\n getDateTimePart({ node, index, separator: ':' })\nconst getTimeHour = _getTimePart(0)\nconst getTimeMinute = _getTimePart(1)\nconst getTimeSeconds = (node: Node): number => {\n const parts = (node.value ?? '').split(':')\n return parts.length > 2 ? _getTimePart(2)(node) : 0\n}\n\nconst _timePropGetters: { [key in ValuePropsTime]: any } = {\n [ValuePropsTime.hour]: getTimeHour,\n [ValuePropsTime.minute]: getTimeMinute,\n [ValuePropsTime.seconds]: getTimeSeconds,\n}\n\nconst _valuePropGetters: { [key in NodeDefType]?: (prop: string) => (node: Node) => number } = {\n [NodeDefType.date]: (prop: string) => _datePropGetters[ValuePropsDate[prop as keyof typeof ValuePropsDate]],\n [NodeDefType.time]: (prop: string) => _timePropGetters[ValuePropsTime[prop as keyof typeof ValuePropsTime]],\n}\n\nconst isValueProp = (params: { nodeDef: NodeDef<NodeDefType, NodeDefProps>; prop: string }): boolean => {\n const { nodeDef, prop } = params\n return Object.values(ValuePropsByType[nodeDef.type] ?? {}).includes(prop)\n}\n\nconst getNodeValueProp = (params: { nodeDef: NodeDef<NodeDefType, NodeDefProps>; node: Node; prop: string }): any => {\n const { nodeDef, node, prop } = params\n const propGetter: any = _valuePropGetters[nodeDef.type]\n return propGetter ? propGetter(prop)(node) : getNodeValuePropRaw({ node, prop })\n}\n\n// value compare\n\nconst singlePropValueEqualComparator = (params: NodeValuesCompareParams): boolean => {\n const { value, valueSearch } = params\n return value === valueSearch || String(value) === String(valueSearch)\n}\n\nconst extractCategoryItemUuidFromValue = (params: NodeValuesCompareParams): string | undefined => {\n const { survey, nodeDef, record, parentNode, value } = params\n const valueItemUuid = getValueItemUuid(value)\n if (valueItemUuid) {\n return valueItemUuid\n }\n // find itemUuid by code\n const valueCode = getValueCode(value)\n if (Objects.isEmpty(valueCode)) return undefined\n\n const nodeDefCode = nodeDef as NodeDefCode\n const code = valueCode!\n const categoryUuid = nodeDefCode.props?.categoryUuid\n const levelIndex = Surveys.getNodeDefCategoryLevelIndex({ survey, nodeDef: nodeDefCode })\n if (levelIndex === 0) {\n return Surveys.getCategoryItemUuidByCode({ survey, categoryUuid, parentItemUuid: undefined, code })\n }\n if (!record || !parentNode) return undefined\n\n const parentCodeAttribute = Records.getParentCodeAttribute({ parentNode, nodeDef: nodeDef as NodeDefCode })(record)\n if (!parentCodeAttribute) return undefined\n\n const parentItemUuid = getItemUuid(parentCodeAttribute)\n if (!parentItemUuid) return undefined\n\n return Surveys.getCategoryItemUuidByCode({\n survey,\n categoryUuid,\n parentItemUuid,\n code,\n })\n}\n\nconst extractCategoryItemCodeFromValue = (params: { survey: Survey; value: any }): string | undefined => {\n const { survey, value } = params\n const itemUuid = getValueItemUuid(value)\n if (itemUuid) {\n const item = Surveys.getCategoryItemByUuid({ survey, itemUuid })\n return item ? CategoryItems.getCode(item) : undefined\n }\n return getValueCode(value)\n}\n\nconst dateTimeComparator =\n (params: { formatsSource: DateFormats[]; formatTo: DateFormats }) =>\n (paramsComparator: NodeValuesCompareParams): boolean => {\n const { formatsSource, formatTo } = params\n const { value, valueSearch } = paramsComparator\n const toDateTime = (val: any) => {\n if (val instanceof Date) {\n return Dates.format(val, formatTo)\n }\n const formatFrom = formatsSource.find((format) => Dates.isValidDateInFormat(val, format))\n return formatFrom ? Dates.convertDate({ dateStr: val, formatFrom, formatTo }) : null\n }\n const dateTime = toDateTime(value)\n const dateTimeSearch = toDateTime(valueSearch)\n return !!dateTime && !!dateTimeSearch && dateTime === dateTimeSearch\n }\n\nconst valueComparatorByNodeDefType: { [key in NodeDefType]?: (params: NodeValuesCompareParams) => boolean } = {\n [NodeDefType.boolean]: singlePropValueEqualComparator,\n [NodeDefType.code]: (params: NodeValuesCompareParams): boolean => {\n const { survey, record, value, valueSearch, strict } = params\n if (!strict || !record) {\n // compare just codes (record not available, tricky to find the \"correct\" category item without knowing its parent item)\n const code = extractCategoryItemCodeFromValue({ survey, value })\n const codeSearch = extractCategoryItemCodeFromValue({ survey, value: valueSearch })\n return !!code && !!codeSearch && code === codeSearch\n }\n const itemUuid = extractCategoryItemUuidFromValue(params)\n const itemUuidSearch = extractCategoryItemUuidFromValue({\n ...params,\n value: valueSearch,\n })\n return !!itemUuidSearch && !!itemUuid && itemUuidSearch === itemUuid\n },\n [NodeDefType.coordinate]: (params: NodeValuesCompareParams) => {\n const { value, valueSearch } = params\n return Objects.isEqual(value, valueSearch)\n },\n [NodeDefType.date]: dateTimeComparator({\n formatsSource: [DateFormats.dateDisplay, DateFormats.dateStorage],\n formatTo: DateFormats.dateStorage,\n }),\n [NodeDefType.decimal]: singlePropValueEqualComparator,\n [NodeDefType.integer]: singlePropValueEqualComparator,\n [NodeDefType.taxon]: ({ value, valueSearch }) => {\n if (value === valueSearch) return true\n if (!value) return false\n if (!valueSearch) return false\n return value[ValuePropsTaxon.taxonUuid] === valueSearch[ValuePropsTaxon.taxonUuid]\n },\n [NodeDefType.text]: singlePropValueEqualComparator,\n [NodeDefType.time]: dateTimeComparator({\n formatsSource: [DateFormats.timeStorage, DateFormats.timeWithSeconds],\n formatTo: DateFormats.timeWithSeconds,\n }),\n}\n\ninterface NodeValuesCompareParams {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, any>\n value: any\n valueSearch: any\n record?: Record\n parentNode?: Node\n strict?: boolean\n}\n\nconst isValueEqual = (params: NodeValuesCompareParams): boolean => {\n const { survey, nodeDef, value, valueSearch, record = undefined, parentNode = undefined, strict = false } = params\n if (value === valueSearch) return true\n if (Objects.isEmpty(value) || Objects.isEmpty(valueSearch)) return false\n\n const valueComparator = valueComparatorByNodeDefType[nodeDef.type]\n if (!valueComparator) {\n return Objects.isEqual(value, valueSearch)\n }\n return valueComparator({ survey, nodeDef, record, parentNode, value, valueSearch, strict })\n}\n\nconst getValueAsPoint = (params: { survey: Survey; node: Node }): Point | null => {\n const { survey, node } = params\n const nodeValue = node?.value\n\n if (!nodeValue) return null\n\n const nodeDef = Surveys.getNodeDefByUuid({ survey, uuid: node.nodeDefUuid })\n if (nodeDef.type === NodeDefType.coordinate) {\n const { x, y, srs } = nodeValue as NodeValueCoordinate\n\n const srsObject = Surveys.getSRSByCode(srs)(survey)\n if (!srsObject) return null\n\n return PointFactory.createInstance({ srs, x, y })\n }\n return null\n}\n\nexport const NodeValues = {\n ValuePropsByType,\n ValuePropsCode,\n ValuePropsCoordinate,\n ValuePropsDate,\n ValuePropsFile,\n ValuePropsTaxon,\n ValuePropsTime,\n\n getNodeValueProp,\n isValueProp,\n\n // coordinate\n getValueAsPoint,\n\n // code\n newCodeValue,\n getItemUuid,\n getValueCode,\n getValueItemUuid,\n\n // date\n getDateYear,\n getDateMonth,\n getDateDay,\n\n // file\n getFileName,\n getFileNameCalculated,\n getFileSize,\n getFileUuid,\n\n // taxon\n getTaxonUuid,\n getValueTaxonUuid,\n getScientificName,\n getValueScientificName,\n getVernacularName,\n getValueVernacularName,\n getVernacularNameUuid,\n getValueVernacularNameUuid,\n\n // time\n getTimeHour,\n getTimeMinute,\n getTimeSeconds,\n\n // utils\n isValueEqual,\n}\n"]}
|