@openforis/arena-core 2.3.38 → 2.3.40

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.
Files changed (383) hide show
  1. package/dist/auth/authGroup.js.map +1 -1
  2. package/dist/auth/authGroups.d.ts +21 -11
  3. package/dist/auth/authGroups.js.map +1 -1
  4. package/dist/auth/authorizer.d.ts +64 -38
  5. package/dist/auth/authorizer.js.map +1 -1
  6. package/dist/auth/permission.js.map +1 -1
  7. package/dist/auth/user.js.map +1 -1
  8. package/dist/auth/users.d.ts +19 -9
  9. package/dist/auth/users.js +3 -2
  10. package/dist/auth/users.js.map +1 -1
  11. package/dist/category/categories.d.ts +7 -3
  12. package/dist/category/categories.js.map +1 -1
  13. package/dist/category/categoryImportSummary.js.map +1 -1
  14. package/dist/category/categoryItemGenerator.d.ts +6 -4
  15. package/dist/category/categoryItems.d.ts +9 -4
  16. package/dist/category/categoryItems.js +2 -1
  17. package/dist/category/categoryItems.js.map +1 -1
  18. package/dist/category/factory.js.map +1 -1
  19. package/dist/chain/chain.js.map +1 -1
  20. package/dist/common/index.js.map +1 -1
  21. package/dist/dataExport/FlatDataExportModel.js.map +1 -1
  22. package/dist/dataExport/FlatDataExportOptions.js.map +1 -1
  23. package/dist/dataExport/FlatDataFiles.d.ts +7 -5
  24. package/dist/dataExport/UniqueFileNamesGenerator.js.map +1 -1
  25. package/dist/dataQuery/dataQuery.js.map +1 -1
  26. package/dist/dataQuery/dataQuerySummaries.d.ts +28 -15
  27. package/dist/dataQuery/dataQuerySummaries.js +3 -3
  28. package/dist/dataQuery/dataQuerySummaries.js.map +1 -1
  29. package/dist/error/SystemError.js.map +1 -1
  30. package/dist/esm/auth/authGroups.js.map +1 -1
  31. package/dist/esm/auth/users.js +3 -2
  32. package/dist/esm/auth/users.js.map +1 -1
  33. package/dist/esm/category/categories.js.map +1 -1
  34. package/dist/esm/category/categoryItems.js +2 -1
  35. package/dist/esm/category/categoryItems.js.map +1 -1
  36. package/dist/esm/dataExport/FlatDataExportModel.js.map +1 -1
  37. package/dist/esm/dataQuery/dataQuerySummaries.js +3 -3
  38. package/dist/esm/dataQuery/dataQuerySummaries.js.map +1 -1
  39. package/dist/esm/expression/javascript/evaluator.js.map +1 -1
  40. package/dist/esm/extraProp/extraProps.js.map +1 -1
  41. package/dist/esm/geo/pointFactory.js.map +1 -1
  42. package/dist/esm/geo/points/bearing.js +1 -1
  43. package/dist/esm/geo/points/bearing.js.map +1 -1
  44. package/dist/esm/geo/points/distance.js +1 -1
  45. package/dist/esm/geo/points/distance.js.map +1 -1
  46. package/dist/esm/geo/points/isValid.js.map +1 -1
  47. package/dist/esm/geo/points/transform.js.map +1 -1
  48. package/dist/esm/job/JobBase.js +4 -3
  49. package/dist/esm/job/JobBase.js.map +1 -1
  50. package/dist/esm/message/messages.js +9 -8
  51. package/dist/esm/message/messages.js.map +1 -1
  52. package/dist/esm/node/factory.js +2 -1
  53. package/dist/esm/node/factory.js.map +1 -1
  54. package/dist/esm/node/nodeValueFormatter.js +2 -1
  55. package/dist/esm/node/nodeValueFormatter.js.map +1 -1
  56. package/dist/esm/node/nodeValues.js +3 -2
  57. package/dist/esm/node/nodeValues.js.map +1 -1
  58. package/dist/esm/node/nodes.js +4 -4
  59. package/dist/esm/node/nodes.js.map +1 -1
  60. package/dist/esm/nodeDef/nodeDefs.js +10 -10
  61. package/dist/esm/nodeDef/nodeDefs.js.map +1 -1
  62. package/dist/esm/nodeDefExpressionEvaluator/evaluator.js.map +1 -1
  63. package/dist/esm/nodeDefExpressionEvaluator/functions.js.map +1 -1
  64. package/dist/esm/nodeDefExpressionEvaluator/node/identifier.js +3 -2
  65. package/dist/esm/nodeDefExpressionEvaluator/node/identifier.js.map +1 -1
  66. package/dist/esm/nodeDefExpressionEvaluator/node/member.js.map +1 -1
  67. package/dist/esm/nodeDefExpressionEvaluator/validator.js.map +1 -1
  68. package/dist/esm/record/_records/nodeDefSelfReferences.js.map +1 -1
  69. package/dist/esm/record/_records/recordGetters.js.map +1 -1
  70. package/dist/esm/record/_records/recordNodesIndexReader.js +6 -4
  71. package/dist/esm/record/_records/recordNodesIndexReader.js.map +1 -1
  72. package/dist/esm/record/_records/recordNodesIndexUpdater.js +10 -7
  73. package/dist/esm/record/_records/recordNodesIndexUpdater.js.map +1 -1
  74. package/dist/esm/record/_records/recordPagesValidation.js.map +1 -1
  75. package/dist/esm/record/_records/recordUpdater.js.map +1 -1
  76. package/dist/esm/record/factory.js +2 -1
  77. package/dist/esm/record/factory.js.map +1 -1
  78. package/dist/esm/record/recordCloner.js +2 -1
  79. package/dist/esm/record/recordCloner.js.map +1 -1
  80. package/dist/esm/record/recordExpressionEvaluator/functions.js.map +1 -1
  81. package/dist/esm/record/recordExpressionEvaluator/node/identifier/identifier.js +3 -2
  82. package/dist/esm/record/recordExpressionEvaluator/node/identifier/identifier.js.map +1 -1
  83. package/dist/esm/record/recordExpressionEvaluator/recordExpressionEvaluator.js +4 -7
  84. package/dist/esm/record/recordExpressionEvaluator/recordExpressionEvaluator.js.map +1 -1
  85. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js.map +1 -1
  86. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsBooleanUpdater.js.map +1 -1
  87. package/dist/esm/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js.map +1 -1
  88. package/dist/esm/record/recordNodesUpdater/recordNodesDeleter.js.map +1 -1
  89. package/dist/esm/record/recordNodesUpdater/recordNodesUpdater.js.map +1 -1
  90. package/dist/esm/record/recordNodesUpdater/recordUpdateResult.js.map +1 -1
  91. package/dist/esm/record/recordUpdater.js.map +1 -1
  92. package/dist/esm/record/recordValidator/attributeTypeValidator.js +2 -2
  93. package/dist/esm/record/recordValidator/attributeTypeValidator.js.map +1 -1
  94. package/dist/esm/record/recordValidator/attributeUniqueValidator.js.map +1 -1
  95. package/dist/esm/record/recordValidator/attributeValidator.js.map +1 -1
  96. package/dist/esm/record/recordValidator/recordValidator.js.map +1 -1
  97. package/dist/esm/survey/nodeDefsFixer.js.map +1 -1
  98. package/dist/esm/survey/refData/factory.js +3 -2
  99. package/dist/esm/survey/refData/factory.js.map +1 -1
  100. package/dist/esm/survey/surveyDocImageFactory.js.map +1 -1
  101. package/dist/esm/survey/surveyDocImages.js.map +1 -1
  102. package/dist/esm/survey/surveyFileFactory.js.map +1 -1
  103. package/dist/esm/survey/surveys/_nodeDefs/nodeDefsIndex.js.map +1 -1
  104. package/dist/esm/survey/surveys/_nodeDefs/nodeDefsReader.js.map +1 -1
  105. package/dist/esm/survey/surveys/dependencies.js +2 -1
  106. package/dist/esm/survey/surveys/dependencies.js.map +1 -1
  107. package/dist/esm/survey/surveys/nodeDefs.js +4 -2
  108. package/dist/esm/survey/surveys/nodeDefs.js.map +1 -1
  109. package/dist/esm/survey/surveys/refsData.js +2 -1
  110. package/dist/esm/survey/surveys/refsData.js.map +1 -1
  111. package/dist/esm/survey/surveys/surveyGettersSecurity.js +1 -4
  112. package/dist/esm/survey/surveys/surveyGettersSecurity.js.map +1 -1
  113. package/dist/esm/survey/surveys/surveysGetters.js +5 -7
  114. package/dist/esm/survey/surveys/surveysGetters.js.map +1 -1
  115. package/dist/esm/taxonomy/taxa.js.map +1 -1
  116. package/dist/esm/taxonomy/taxonomies.js.map +1 -1
  117. package/dist/esm/tests/builder/recordBuilder/attributeBuilder.js.map +1 -1
  118. package/dist/esm/tests/builder/recordBuilder/index.js.map +1 -1
  119. package/dist/esm/tests/builder/recordBuilder/nodeBuilder.js.map +1 -1
  120. package/dist/esm/tests/builder/surveyBuilder/categoryItemBuilder.js.map +1 -1
  121. package/dist/esm/tests/builder/surveyBuilder/nodeDefAttributeBuilder.js.map +1 -1
  122. package/dist/esm/tests/builder/surveyBuilder/nodeDefBuilder.js.map +1 -1
  123. package/dist/esm/utils/_objects/camelize.js.map +1 -1
  124. package/dist/esm/utils/arrays.js.map +1 -1
  125. package/dist/esm/utils/dates.js.map +1 -1
  126. package/dist/esm/utils/fileNames.js.map +1 -1
  127. package/dist/esm/utils/fileProcessor.js +2 -1
  128. package/dist/esm/utils/fileProcessor.js.map +1 -1
  129. package/dist/esm/utils/numbers.js.map +1 -1
  130. package/dist/esm/utils/queue.js.map +1 -1
  131. package/dist/esm/utils/versions.js.map +1 -1
  132. package/dist/esm/validation/factory.js.map +1 -1
  133. package/dist/esm/validation/fieldValidators/numeric.js.map +1 -1
  134. package/dist/esm/validation/fieldValidators/numericPositive.js.map +1 -1
  135. package/dist/esm/validation/validationResults.js +1 -1
  136. package/dist/esm/validation/validationResults.js.map +1 -1
  137. package/dist/esm/validation/validations.js +2 -2
  138. package/dist/esm/validation/validations.js.map +1 -1
  139. package/dist/esm/validation/validator.js.map +1 -1
  140. package/dist/expression/javascript/evaluator.js.map +1 -1
  141. package/dist/expression/javascript/global.js.map +1 -1
  142. package/dist/expression/javascript/node/array.js.map +1 -1
  143. package/dist/expression/javascript/node/binary.js.map +1 -1
  144. package/dist/expression/javascript/node/call.js.map +1 -1
  145. package/dist/expression/javascript/node/compound.js.map +1 -1
  146. package/dist/expression/javascript/node/conditional.js.map +1 -1
  147. package/dist/expression/javascript/node/identifier.js.map +1 -1
  148. package/dist/expression/javascript/node/literal.js.map +1 -1
  149. package/dist/expression/javascript/node/member.js.map +1 -1
  150. package/dist/expression/javascript/node/sequence.js.map +1 -1
  151. package/dist/expression/javascript/node/this.js.map +1 -1
  152. package/dist/expression/javascript/node/unary.js.map +1 -1
  153. package/dist/expression/javascript/parser/jsep.js.map +1 -1
  154. package/dist/expression/javascript/parser/parser.js.map +1 -1
  155. package/dist/expression/node.js.map +1 -1
  156. package/dist/expression/variable.js.map +1 -1
  157. package/dist/extraProp/extraProp.js.map +1 -1
  158. package/dist/extraProp/extraProps.d.ts +9 -6
  159. package/dist/extraProp/extraProps.js.map +1 -1
  160. package/dist/extraProp/extraPropsDataGenerator.d.ts +7 -5
  161. package/dist/geo/pointFactory.js.map +1 -1
  162. package/dist/geo/points/bearing.js +5 -2
  163. package/dist/geo/points/bearing.js.map +1 -1
  164. package/dist/geo/points/distance.js +5 -2
  165. package/dist/geo/points/distance.js.map +1 -1
  166. package/dist/geo/points/equals.js.map +1 -1
  167. package/dist/geo/points/getSrs.js.map +1 -1
  168. package/dist/geo/points/index.d.ts +18 -14
  169. package/dist/geo/points/isFilled.js.map +1 -1
  170. package/dist/geo/points/isValid.js.map +1 -1
  171. package/dist/geo/points/parse.js.map +1 -1
  172. package/dist/geo/points/pointAtDistance.js.map +1 -1
  173. package/dist/geo/points/toLatLong.js.map +1 -1
  174. package/dist/geo/points/toString.js.map +1 -1
  175. package/dist/geo/points/transform.js.map +1 -1
  176. package/dist/job/JobBase.js +4 -3
  177. package/dist/job/JobBase.js.map +1 -1
  178. package/dist/job/jobEvent.js.map +1 -1
  179. package/dist/job/status.js.map +1 -1
  180. package/dist/language/languageCode.js.map +1 -1
  181. package/dist/language/languages.js.map +1 -1
  182. package/dist/message/message.js.map +1 -1
  183. package/dist/message/messages.d.ts +54 -28
  184. package/dist/message/messages.js +9 -8
  185. package/dist/message/messages.js.map +1 -1
  186. package/dist/node/factory.js +2 -1
  187. package/dist/node/factory.js.map +1 -1
  188. package/dist/node/node.js.map +1 -1
  189. package/dist/node/nodeValueFormatter.d.ts +2 -1
  190. package/dist/node/nodeValueFormatter.js +2 -1
  191. package/dist/node/nodeValueFormatter.js.map +1 -1
  192. package/dist/node/nodeValueProps.js.map +1 -1
  193. package/dist/node/nodeValues.d.ts +62 -41
  194. package/dist/node/nodeValues.js +3 -2
  195. package/dist/node/nodeValues.js.map +1 -1
  196. package/dist/node/nodes.d.ts +112 -86
  197. package/dist/node/nodes.js +4 -4
  198. package/dist/node/nodes.js.map +1 -1
  199. package/dist/nodeDef/nodeDef.js.map +1 -1
  200. package/dist/nodeDef/nodeDefs.d.ts +173 -86
  201. package/dist/nodeDef/nodeDefs.js +10 -10
  202. package/dist/nodeDef/nodeDefs.js.map +1 -1
  203. package/dist/nodeDef/types/entity.js.map +1 -1
  204. package/dist/nodeDef/types/file.js.map +1 -1
  205. package/dist/nodeDef/types/formHeader.js.map +1 -1
  206. package/dist/nodeDef/types/text.js.map +1 -1
  207. package/dist/nodeDefExpressionEvaluator/evaluator.js.map +1 -1
  208. package/dist/nodeDefExpressionEvaluator/functions.js.map +1 -1
  209. package/dist/nodeDefExpressionEvaluator/node/identifier.js +3 -2
  210. package/dist/nodeDefExpressionEvaluator/node/identifier.js.map +1 -1
  211. package/dist/nodeDefExpressionEvaluator/node/member.js.map +1 -1
  212. package/dist/nodeDefExpressionEvaluator/node/nodeDefExpressionNativeProperties.d.ts +11 -8
  213. package/dist/nodeDefExpressionEvaluator/node/thisEvaluator.d.ts +1 -1
  214. package/dist/nodeDefExpressionEvaluator/node/thisEvaluator.js.map +1 -1
  215. package/dist/nodeDefExpressionEvaluator/validator.js.map +1 -1
  216. package/dist/record/_records/nodeDefSelfReferences.d.ts +12 -4
  217. package/dist/record/_records/nodeDefSelfReferences.js.map +1 -1
  218. package/dist/record/_records/recordCompletion.js.map +1 -1
  219. package/dist/record/_records/recordGetters.js.map +1 -1
  220. package/dist/record/_records/recordNodesIndexReader.d.ts +14 -8
  221. package/dist/record/_records/recordNodesIndexReader.js +6 -4
  222. package/dist/record/_records/recordNodesIndexReader.js.map +1 -1
  223. package/dist/record/_records/recordNodesIndexUpdater.d.ts +22 -12
  224. package/dist/record/_records/recordNodesIndexUpdater.js +10 -7
  225. package/dist/record/_records/recordNodesIndexUpdater.js.map +1 -1
  226. package/dist/record/_records/recordPagesValidation.js.map +1 -1
  227. package/dist/record/_records/recordUpdater.js.map +1 -1
  228. package/dist/record/_records/recordUtils.js.map +1 -1
  229. package/dist/record/factory.js +2 -1
  230. package/dist/record/factory.js.map +1 -1
  231. package/dist/record/nodePointers.d.ts +13 -10
  232. package/dist/record/recordCloner.d.ts +11 -10
  233. package/dist/record/recordCloner.js +2 -1
  234. package/dist/record/recordCloner.js.map +1 -1
  235. package/dist/record/recordExpressionEvaluator/functions.js.map +1 -1
  236. package/dist/record/recordExpressionEvaluator/node/identifier/identifier.js +3 -2
  237. package/dist/record/recordExpressionEvaluator/node/identifier/identifier.js.map +1 -1
  238. package/dist/record/recordExpressionEvaluator/node/identifier/nodesFinder.d.ts +8 -6
  239. package/dist/record/recordExpressionEvaluator/node/thisEvaluator.js.map +1 -1
  240. package/dist/record/recordExpressionEvaluator/nodeValueExtractor.d.ts +7 -5
  241. package/dist/record/recordExpressionEvaluator/recordExpressionEvaluator.js +4 -7
  242. package/dist/record/recordExpressionEvaluator/recordExpressionEvaluator.js.map +1 -1
  243. package/dist/record/recordFixer.d.ts +19 -10
  244. package/dist/record/recordNodesUpdater/index.d.ts +8 -7
  245. package/dist/record/recordNodesUpdater/recordEnumeratingItemsExpressionEvaluator.js.map +1 -1
  246. package/dist/record/recordNodesUpdater/recordExpressionValueConverter.d.ts +2 -1
  247. package/dist/record/recordNodesUpdater/recordNodeDependentsApplicableUpdater.js.map +1 -1
  248. package/dist/record/recordNodesUpdater/recordNodeDependentsBooleanUpdater.js.map +1 -1
  249. package/dist/record/recordNodesUpdater/recordNodeDependentsCodeAttributesUpdater.js.map +1 -1
  250. package/dist/record/recordNodesUpdater/recordNodeDependentsCountUpdater.js.map +1 -1
  251. package/dist/record/recordNodesUpdater/recordNodeDependentsDefaultValuesUpdater.js.map +1 -1
  252. package/dist/record/recordNodesUpdater/recordNodeDependentsEditableUpdater.js.map +1 -1
  253. package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratedEntitiesUpdater.js.map +1 -1
  254. package/dist/record/recordNodesUpdater/recordNodeDependentsEnumeratingItemsUpdater.js.map +1 -1
  255. package/dist/record/recordNodesUpdater/recordNodeDependentsFileNamesEvaluator.js.map +1 -1
  256. package/dist/record/recordNodesUpdater/recordNodeDependentsVisibleUpdater.js.map +1 -1
  257. package/dist/record/recordNodesUpdater/recordNodesCreator.js.map +1 -1
  258. package/dist/record/recordNodesUpdater/recordNodesDeleter.js.map +1 -1
  259. package/dist/record/recordNodesUpdater/recordNodesDependentsUpdaterCommons.js.map +1 -1
  260. package/dist/record/recordNodesUpdater/recordNodesUpdater.js.map +1 -1
  261. package/dist/record/recordNodesUpdater/recordUpdateResult.js.map +1 -1
  262. package/dist/record/recordPrettyPrinter.d.ts +18 -15
  263. package/dist/record/recordPrettyPrinter.js.map +1 -1
  264. package/dist/record/recordStep.d.ts +5 -2
  265. package/dist/record/recordStep.js.map +1 -1
  266. package/dist/record/recordUpdater.d.ts +22 -15
  267. package/dist/record/recordUpdater.js.map +1 -1
  268. package/dist/record/recordValidations.d.ts +21 -14
  269. package/dist/record/recordValidator/attributeKeyValidator.d.ts +8 -6
  270. package/dist/record/recordValidator/attributeKeyValidator.js.map +1 -1
  271. package/dist/record/recordValidator/attributeTypeValidator.d.ts +2 -1
  272. package/dist/record/recordValidator/attributeTypeValidator.js +2 -2
  273. package/dist/record/recordValidator/attributeTypeValidator.js.map +1 -1
  274. package/dist/record/recordValidator/attributeUniqueValidator.d.ts +1 -5
  275. package/dist/record/recordValidator/attributeUniqueValidator.js.map +1 -1
  276. package/dist/record/recordValidator/attributeValidator.d.ts +3 -1
  277. package/dist/record/recordValidator/attributeValidator.js.map +1 -1
  278. package/dist/record/recordValidator/countVaildator.d.ts +21 -17
  279. package/dist/record/recordValidator/index.d.ts +4 -3
  280. package/dist/record/recordValidator/recordValidator.js.map +1 -1
  281. package/dist/record/records.d.ts +62 -220
  282. package/dist/registry/serviceRegistry.js.map +1 -1
  283. package/dist/registry/serviceType.js.map +1 -1
  284. package/dist/srs/srs.js.map +1 -1
  285. package/dist/survey/nodeDefsFixer.d.ts +5 -4
  286. package/dist/survey/nodeDefsFixer.js.map +1 -1
  287. package/dist/survey/refData/factory.js +3 -2
  288. package/dist/survey/refData/factory.js.map +1 -1
  289. package/dist/survey/survey.d.ts +2 -2
  290. package/dist/survey/survey.js.map +1 -1
  291. package/dist/survey/surveyDocImageFactory.js.map +1 -1
  292. package/dist/survey/surveyDocImages.d.ts +11 -5
  293. package/dist/survey/surveyDocImages.js.map +1 -1
  294. package/dist/survey/surveyFileFactory.js.map +1 -1
  295. package/dist/survey/surveys/_nodeDefs/nodeDefsIndex.js.map +1 -1
  296. package/dist/survey/surveys/_nodeDefs/nodeDefsReader.js.map +1 -1
  297. package/dist/survey/surveys/dependencies.js +2 -1
  298. package/dist/survey/surveys/dependencies.js.map +1 -1
  299. package/dist/survey/surveys/index.d.ts +82 -255
  300. package/dist/survey/surveys/nodeDefs.d.ts +4 -6
  301. package/dist/survey/surveys/nodeDefs.js +4 -2
  302. package/dist/survey/surveys/nodeDefs.js.map +1 -1
  303. package/dist/survey/surveys/refsData.js +2 -1
  304. package/dist/survey/surveys/refsData.js.map +1 -1
  305. package/dist/survey/surveys/surveyGettersSecurity.js +1 -4
  306. package/dist/survey/surveys/surveyGettersSecurity.js.map +1 -1
  307. package/dist/survey/surveys/surveysGetters.js +5 -7
  308. package/dist/survey/surveys/surveysGetters.js.map +1 -1
  309. package/dist/survey/surveys/surveysUtils.js.map +1 -1
  310. package/dist/taxonomy/taxa.d.ts +17 -11
  311. package/dist/taxonomy/taxa.js.map +1 -1
  312. package/dist/taxonomy/taxonGenerator.d.ts +6 -4
  313. package/dist/taxonomy/taxonomies.d.ts +7 -3
  314. package/dist/taxonomy/taxonomies.js.map +1 -1
  315. package/dist/tests/builder/recordBuilder/attributeBuilder.js.map +1 -1
  316. package/dist/tests/builder/recordBuilder/entityBuilder.js.map +1 -1
  317. package/dist/tests/builder/recordBuilder/index.d.ts +4 -2
  318. package/dist/tests/builder/recordBuilder/index.js.map +1 -1
  319. package/dist/tests/builder/recordBuilder/nodeBuilder.js.map +1 -1
  320. package/dist/tests/builder/recordBuilder/recordBuilder.js.map +1 -1
  321. package/dist/tests/builder/surveyBuilder/categoryBuilder.js.map +1 -1
  322. package/dist/tests/builder/surveyBuilder/categoryItemBuilder.js.map +1 -1
  323. package/dist/tests/builder/surveyBuilder/index.d.ts +30 -15
  324. package/dist/tests/builder/surveyBuilder/nodeDefAttributeBuilder.js.map +1 -1
  325. package/dist/tests/builder/surveyBuilder/nodeDefBuilder.js.map +1 -1
  326. package/dist/tests/builder/surveyBuilder/nodeDefCodeBuilder.js.map +1 -1
  327. package/dist/tests/builder/surveyBuilder/nodeDefEntityBuilder.js.map +1 -1
  328. package/dist/tests/builder/surveyBuilder/nodeDefTaxonBuilder.js.map +1 -1
  329. package/dist/tests/builder/surveyBuilder/surveyBuilder.js.map +1 -1
  330. package/dist/tests/builder/surveyBuilder/taxonBuilder.js.map +1 -1
  331. package/dist/tests/builder/surveyBuilder/taxonomyBuilder.js.map +1 -1
  332. package/dist/utils/_objects/assoc.js.map +1 -1
  333. package/dist/utils/_objects/assocPath.js.map +1 -1
  334. package/dist/utils/_objects/camelize.js.map +1 -1
  335. package/dist/utils/_objects/deepMerge.js.map +1 -1
  336. package/dist/utils/_objects/deleteEmptyProps.js.map +1 -1
  337. package/dist/utils/_objects/difference.js.map +1 -1
  338. package/dist/utils/_objects/dissoc.js.map +1 -1
  339. package/dist/utils/_objects/dissocPath.js.map +1 -1
  340. package/dist/utils/_objects/dissocPathIfEmpty.js.map +1 -1
  341. package/dist/utils/_objects/index.d.ts +34 -48
  342. package/dist/utils/_objects/isEmpty.js.map +1 -1
  343. package/dist/utils/_objects/isNil.js.map +1 -1
  344. package/dist/utils/_objects/isNotEmpty.js.map +1 -1
  345. package/dist/utils/_objects/parse.js.map +1 -1
  346. package/dist/utils/_objects/path.js.map +1 -1
  347. package/dist/utils/_objects/propertyOf.js.map +1 -1
  348. package/dist/utils/_objects/setInPath.js.map +1 -1
  349. package/dist/utils/_objects/stringify.js.map +1 -1
  350. package/dist/utils/arrays.d.ts +25 -15
  351. package/dist/utils/arrays.js.map +1 -1
  352. package/dist/utils/dates.d.ts +101 -48
  353. package/dist/utils/dates.js.map +1 -1
  354. package/dist/utils/fileNames.d.ts +7 -3
  355. package/dist/utils/fileNames.js.map +1 -1
  356. package/dist/utils/fileProcessor.js +2 -1
  357. package/dist/utils/fileProcessor.js.map +1 -1
  358. package/dist/utils/numbers.d.ts +42 -13
  359. package/dist/utils/numbers.js.map +1 -1
  360. package/dist/utils/promises.d.ts +12 -1
  361. package/dist/utils/queue.js.map +1 -1
  362. package/dist/utils/retryProcessor.js.map +1 -1
  363. package/dist/utils/strings.d.ts +22 -11
  364. package/dist/utils/uuids.d.ts +3 -1
  365. package/dist/utils/versions.d.ts +19 -7
  366. package/dist/utils/versions.js.map +1 -1
  367. package/dist/validation/factory.js.map +1 -1
  368. package/dist/validation/fieldValidators/email.js.map +1 -1
  369. package/dist/validation/fieldValidators/index.d.ts +12 -6
  370. package/dist/validation/fieldValidators/name.js.map +1 -1
  371. package/dist/validation/fieldValidators/notKeyword.js.map +1 -1
  372. package/dist/validation/fieldValidators/numeric.js.map +1 -1
  373. package/dist/validation/fieldValidators/numericPositive.js.map +1 -1
  374. package/dist/validation/fieldValidators/required.js.map +1 -1
  375. package/dist/validation/validation.js.map +1 -1
  376. package/dist/validation/validationResults.d.ts +17 -9
  377. package/dist/validation/validationResults.js +1 -1
  378. package/dist/validation/validationResults.js.map +1 -1
  379. package/dist/validation/validations.d.ts +71 -35
  380. package/dist/validation/validations.js +2 -2
  381. package/dist/validation/validations.js.map +1 -1
  382. package/dist/validation/validator.js.map +1 -1
  383. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"nodeDefs.js","sourceRoot":"","sources":["../../../src/survey/surveys/nodeDefs.ts"],"names":[],"mappings":"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","sourcesContent":["import { Survey } from '../survey'\nimport {\n NodeDef,\n NodeDefCode,\n NodeDefCodeProps,\n NodeDefEntity,\n NodeDefEntityChildPosition,\n NodeDefMap,\n NodeDefProps,\n NodeDefType,\n NodeDefs,\n} from '../../nodeDef'\nimport { Arrays, Objects, Queue } from '../../utils'\nimport { SystemError } from '../../error'\nimport * as NodeDefsReader from './_nodeDefs/nodeDefsReader'\nimport * as NodeDefsIndex from './_nodeDefs/nodeDefsIndex'\nimport { TraverseMethod } from '../../common'\nimport { getCategoryByUuid } from './surveysGetters'\n\nexport const getNodeDefsArray = NodeDefsReader.getNodeDefsArray\n\nexport const findNodeDefByUuid = (params: {\n survey: Survey\n uuid: string\n}): NodeDef<NodeDefType, NodeDefProps> | undefined => {\n const { survey, uuid } = params\n return survey.nodeDefs?.[uuid]\n}\n\nexport const getNodeDefByUuid = (params: { survey: Survey; uuid: string }): NodeDef<NodeDefType, NodeDefProps> => {\n const { survey, uuid } = params\n const nodeDef = findNodeDefByUuid({ survey, uuid })\n if (!nodeDef) throw new SystemError('survey.nodeDefUuidNotFound', { uuid })\n return nodeDef\n}\n\nexport const findNodeDefByName = (params: {\n survey: Survey\n name: string\n}): NodeDef<NodeDefType, NodeDefProps> | undefined => {\n const { survey, name } = params\n const nodeDefUuidByNameIndex = survey.nodeDefsIndex?.nodeDefUuidByName\n if (nodeDefUuidByNameIndex) {\n const uuid = nodeDefUuidByNameIndex[name]\n return findNodeDefByUuid({ survey, uuid })\n }\n return getNodeDefsArray(survey).find((nodeDef) => nodeDef.props.name === name)\n}\n\nexport const getNodeDefByName = (params: { survey: Survey; name: string }): NodeDef<NodeDefType, NodeDefProps> => {\n const { survey, name } = params\n const nodeDef = findNodeDefByName({ survey, name })\n if (!nodeDef) {\n throw new SystemError('survey.nodeDefNameNotFound', { name })\n }\n return nodeDef\n}\n\nexport const getNodeDefsByUuids = (params: { survey: Survey; uuids: string[] }) => {\n const { survey, uuids } = params\n return uuids.map((uuid) => getNodeDefByUuid({ survey, uuid }))\n}\n\nexport const findNodeDefsByUuids = (params: {\n survey: Survey\n uuids: string[]\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, uuids } = params\n return uuids.reduce((acc: NodeDef<NodeDefType, NodeDefProps>[], uuid) => {\n const nodeDef = findNodeDefByUuid({ survey, uuid })\n if (nodeDef) {\n acc.push(nodeDef)\n }\n return acc\n }, [])\n}\n\nexport const getNodeDefParent = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDefEntity | undefined => {\n const { survey, nodeDef } = params\n if (!nodeDef.parentUuid) return undefined\n return getNodeDefByUuid({ survey, uuid: nodeDef.parentUuid }) as NodeDefEntity\n}\n\nexport const getNodeDefAncestorMultipleEntity = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDefEntity | undefined => {\n const { survey, nodeDef } = params\n return findAncestorNodeDef({\n survey,\n nodeDef,\n predicate: (entityDef) => NodeDefs.isRoot(entityDef) || NodeDefs.isMultiple(entityDef),\n })\n}\n\nexport const isNodeDefAncestor = (params: {\n nodeDefAncestor: NodeDef<NodeDefType, NodeDefProps>\n nodeDefDescendant: NodeDef<NodeDefType, NodeDefProps>\n}): boolean => {\n const { nodeDefAncestor, nodeDefDescendant } = params\n\n return Arrays.startsWith(nodeDefDescendant.meta.h, [...nodeDefAncestor.meta.h, nodeDefAncestor.uuid])\n}\n\nexport const getNodeDefRoot = (params: { survey: Survey }): NodeDefEntity => {\n const { survey } = params\n if (!survey.nodeDefs) throw new SystemError('survey.emptyNodeDefs')\n\n const rootDefUuidInIndex = survey.nodeDefsIndex?.rootDefUuid\n\n const rootDef = rootDefUuidInIndex\n ? getNodeDefByUuid({ survey, uuid: rootDefUuidInIndex })\n : getNodeDefsArray(survey).find((nodeDef) => !nodeDef.parentUuid)\n\n if (!rootDef) throw new SystemError('survey.rootDefNotFound')\n\n return rootDef as NodeDefEntity\n}\n\nexport const getNodeDefSource = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDef<NodeDefType, NodeDefProps> | undefined => {\n const { survey, nodeDef } = params\n return nodeDef.virtual ? getNodeDefParent({ survey, nodeDef }) : undefined\n}\n\nexport const getNodeDefChildren = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n includeAnalysis?: boolean\n includeLayoutElements?: boolean\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, nodeDef, includeAnalysis = false, includeLayoutElements = false } = params\n\n if (!survey.nodeDefs) return []\n\n let childDefs = []\n // try to get children using index\n if (survey.nodeDefsIndex) {\n const childrenUuids = Object.keys(survey.nodeDefsIndex.childDefUuidPresenceByParentUuid?.[nodeDef.uuid] ?? {})\n childDefs = getNodeDefsByUuids({ survey, uuids: childrenUuids })\n } else {\n // calculate children\n childDefs = NodeDefsReader.calculateNodeDefChildren(nodeDef)(survey)\n }\n if (includeAnalysis && includeLayoutElements) {\n return childDefs\n }\n return childDefs.filter((childDef) => {\n if (!includeAnalysis && childDef.analysis) return false\n if (!includeLayoutElements && NodeDefs.isLayoutElement(childDef)) return false\n return true\n })\n}\n\nexport const getQualifierDefs = (params: { survey: Survey }): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey } = params\n const qualifierPresence = survey.nodeDefsIndex?.qualifierPresenceByUuid\n if (qualifierPresence) {\n const qualifierUuids = Object.keys(qualifierPresence)\n return getNodeDefsByUuids({ survey, uuids: qualifierUuids })\n } else {\n return getNodeDefsArray(survey).filter((nodeDef) => NodeDefs.isQualifier(nodeDef))\n }\n}\n\nconst getIndexInChain = (params: { survey: Survey; nodeDef: NodeDef<any> }): number => {\n const { survey, nodeDef } = params\n const areaBasedEstimatedOf = NodeDefs.getAreaBasedEstimatedOf(nodeDef)\n const areaBasedEstimatedOfNodeDef = areaBasedEstimatedOf\n ? getNodeDefByUuid({ survey, uuid: areaBasedEstimatedOf })\n : null\n const nodeDefToConsider = areaBasedEstimatedOfNodeDef ?? nodeDef\n return nodeDefToConsider?.propsAdvanced?.index ?? 0\n}\n\nconst getNodeDefChildrenUuidsSortedByLayout = (params: {\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n cycle: string\n children: NodeDef<any>[]\n}): string[] => {\n const { nodeDef, cycle, children } = params\n\n const entityDef = nodeDef as NodeDefEntity\n\n const childrenEntitiesInOwnPageSortedUuids = NodeDefs.getChildrenEntitiesInOwnPageUudis(cycle)(entityDef) ?? []\n const layoutChildren = NodeDefs.getLayoutChildren(cycle)(entityDef) ?? []\n const childrenByUuids = children.reduce((acc: NodeDefMap, child) => {\n acc[child.uuid] = child\n return acc\n }, {})\n const childrenUuids = Object.keys(childrenByUuids)\n\n if (layoutChildren.length === 0 && childrenEntitiesInOwnPageSortedUuids.length === 0) {\n return childrenUuids\n }\n const sortedChildrenDefsInSamePageUuids = NodeDefs.isLayoutRenderTypeTable(cycle)(entityDef)\n ? (layoutChildren as string[])\n : [...(layoutChildren as NodeDefEntityChildPosition[])]\n .sort(\n (gridItem1: NodeDefEntityChildPosition, gridItem2: NodeDefEntityChildPosition) =>\n gridItem1.y - gridItem2.y || gridItem1.x - gridItem2.x\n )\n .map((gridItem) => gridItem.i)\n .filter((nodeDefUuid) => !!childrenByUuids[nodeDefUuid])\n\n const missingChildrenUuidsInLayout = childrenUuids.filter((childUuid) => {\n const childDef = childrenByUuids[childUuid]\n return (\n !sortedChildrenDefsInSamePageUuids.includes(childUuid) &&\n !childrenEntitiesInOwnPageSortedUuids.includes(childUuid) &&\n NodeDefs.isInCycle(cycle)(childDef)\n )\n })\n\n return (\n sortedChildrenDefsInSamePageUuids\n // add child uuids missing in layout at the end\n .concat(missingChildrenUuidsInLayout)\n // add child entities in own page at the very end\n .concat(childrenEntitiesInOwnPageSortedUuids)\n )\n}\n\nconst _booleanToNumber = (value: boolean | undefined): number => (value ? 1 : 0)\nconst _compareBooleans = (value1: boolean | undefined, value2: boolean | undefined): number =>\n _booleanToNumber(value1) - _booleanToNumber(value2)\n\nexport const getNodeDefChildrenSorted = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n cycle: string\n includeAnalysis?: boolean\n includeLayoutElements?: boolean\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, nodeDef, cycle, includeAnalysis, includeLayoutElements } = params\n\n const children = getNodeDefChildren({ survey, nodeDef, includeAnalysis, includeLayoutElements }).filter(\n NodeDefs.isInCycle(cycle)\n )\n\n const childrenUuidsSortedByLayout = getNodeDefChildrenUuidsSortedByLayout({ nodeDef, cycle, children })\n\n return children.sort((child1, child2) => {\n if (includeAnalysis && (child1.analysis || child2.analysis)) {\n // analysis attribute at the end\n const analysisComparison = _compareBooleans(child1.analysis, child2.analysis)\n if (analysisComparison !== 0) return analysisComparison\n\n // sort by chain index\n const indexInChainComparison =\n getIndexInChain({ survey, nodeDef: child1 }) - getIndexInChain({ survey, nodeDef: child2 })\n if (indexInChainComparison !== 0) return indexInChainComparison\n\n // one node def is the area base estimated of the other\n const areaBasedEstimatedOfComparison = _compareBooleans(\n !!NodeDefs.getAreaBasedEstimatedOf(child1),\n !!NodeDefs.getAreaBasedEstimatedOf(child2)\n )\n if (areaBasedEstimatedOfComparison !== 0) return areaBasedEstimatedOfComparison\n\n return (child1.id ?? 0) - (child2.id ?? 0)\n }\n // keep sorting as defined in layout props\n return childrenUuidsSortedByLayout.indexOf(child1.uuid) - childrenUuidsSortedByLayout.indexOf(child2.uuid)\n })\n}\n\nexport const visitAncestorsAndSelfNodeDef = (params: {\n survey: Survey\n nodeDef: NodeDef<any>\n visitor: (nodeDef: NodeDef<any>) => void\n stopIfFn?: () => boolean\n includeSelf?: boolean\n}): void => {\n const { survey, nodeDef, visitor, stopIfFn, includeSelf = true } = params\n if (includeSelf) {\n visitor(nodeDef)\n }\n let currentParent = getNodeDefParent({ survey, nodeDef })\n while (currentParent) {\n visitor(currentParent)\n if (stopIfFn?.()) {\n break\n }\n currentParent = getNodeDefParent({ survey, nodeDef: currentParent })\n }\n}\n\nexport const findAncestorNodeDef = (params: {\n survey: Survey\n nodeDef: NodeDef<any>\n predicate: (entityDef: NodeDefEntity) => boolean\n}): NodeDefEntity | undefined => {\n const { survey, nodeDef, predicate } = params\n let result: NodeDefEntity | undefined = undefined\n visitAncestorsAndSelfNodeDef({\n survey,\n nodeDef,\n // ancestors only: the node def itself is never an ancestor (e.g. a multiple attribute)\n includeSelf: false,\n visitor: (entityDef) => {\n if (predicate(entityDef)) {\n result = entityDef\n }\n },\n stopIfFn: () => !!result,\n })\n return result\n}\n\ntype NodeDefTraverseParams = {\n nodeDef: NodeDef<any>\n visitor: (nodeDef: NodeDef<any>) => void\n shouldTraverse: (nodeDef: NodeDef<any>) => boolean\n getChildren: (nodeDef: NodeDef<any>) => NodeDef<any>[]\n}\n\nconst traverseBreadthFirst = ({ nodeDef, visitor, shouldTraverse, getChildren }: NodeDefTraverseParams) => {\n const queue = new Queue()\n\n queue.enqueue(nodeDef)\n\n while (!queue.isEmpty()) {\n const visitedNodeDef = queue.dequeue()\n\n visitor(visitedNodeDef)\n\n if (shouldTraverse(visitedNodeDef)) {\n queue.enqueueItems(getChildren(visitedNodeDef))\n }\n }\n}\n\nconst traverseDepthFirst = ({ nodeDef, visitor, shouldTraverse, getChildren }: NodeDefTraverseParams) => {\n const stack: NodeDef<any>[] = []\n\n stack.push(nodeDef)\n\n while (stack.length > 0) {\n const visitedNodeDef = stack.pop()!\n\n visitor(visitedNodeDef)\n\n if (shouldTraverse(visitedNodeDef)) {\n const children = getChildren(visitedNodeDef)\n // add children to stack in reverse order\n for (let index = children.length - 1; index >= 0; index--) {\n stack.push(children[index])\n }\n }\n }\n}\n\nexport const visitDescendantsAndSelfNodeDef = (params: {\n survey: Survey\n cycle?: string\n nodeDef: NodeDef<any>\n visitor: (nodeDef: NodeDef<any>) => void\n includeAnalysis?: boolean\n traverseMethod?: TraverseMethod\n traverseOnlySingleEntities?: boolean\n}) => {\n const {\n survey,\n cycle,\n nodeDef,\n visitor,\n includeAnalysis = false,\n traverseMethod = TraverseMethod.bfs,\n traverseOnlySingleEntities = false,\n } = params\n\n const getNodeDefChildrenInternal = (visitedNodeDef: NodeDef<any>) =>\n Objects.isEmpty(cycle)\n ? getNodeDefChildren({ survey, nodeDef: visitedNodeDef, includeAnalysis })\n : getNodeDefChildrenSorted({ survey, nodeDef: visitedNodeDef, cycle: cycle!, includeAnalysis })\n\n const shouldTraverse = (visitedNodeDef: NodeDef<any>): boolean =>\n visitedNodeDef.type === NodeDefType.entity &&\n (visitedNodeDef === nodeDef ||\n NodeDefs.isRoot(visitedNodeDef) ||\n !traverseOnlySingleEntities ||\n NodeDefs.isSingle(visitedNodeDef))\n\n const traverseParams = { nodeDef, visitor, shouldTraverse, getChildren: getNodeDefChildrenInternal }\n if (traverseMethod === TraverseMethod.bfs) {\n traverseBreadthFirst(traverseParams)\n } else {\n traverseDepthFirst(traverseParams)\n }\n}\n\nexport const visitNodeDefs = (params: {\n survey: Survey\n visitor: (nodeDef: NodeDef<any>) => void\n includeAnalysis?: boolean\n traverseMethod?: TraverseMethod\n}) => {\n const { survey, visitor, traverseMethod = TraverseMethod.bfs, includeAnalysis = false } = params\n const rootDef = getNodeDefRoot({ survey })\n return visitDescendantsAndSelfNodeDef({ survey, nodeDef: rootDef, visitor, traverseMethod, includeAnalysis })\n}\n\n// Node Def Code\nexport const getNodeDefParentCode = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefCode | undefined => {\n const { survey, nodeDef } = params\n const parentCodeDefUuid = nodeDef.props.parentCodeDefUuid\n if (!parentCodeDefUuid) return undefined\n const parentCodeDef = getNodeDefByUuid({ survey, uuid: parentCodeDefUuid })\n return parentCodeDef as NodeDefCode\n}\n\nexport const getNodeDefAncestorCodes = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefCode[] => {\n const { survey, nodeDef } = params\n const ancestors = []\n let currentParentCode = getNodeDefParentCode({ survey, nodeDef })\n while (currentParentCode) {\n ancestors.unshift(currentParentCode)\n currentParentCode = getNodeDefParentCode({ survey, nodeDef: currentParentCode })\n }\n return ancestors\n}\n\nexport const isNodeDefParentCode = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): boolean => {\n const { survey, nodeDef } = params\n const nodeDefsArray = getNodeDefsArray(survey)\n return nodeDefsArray.some((def) => {\n try {\n return nodeDef.uuid === (def as NodeDef<NodeDefType.code, NodeDefCodeProps>).props.parentCodeDefUuid\n } catch {\n // ignore it: def is not a code attribute definition\n return\n }\n })\n}\n\nexport const getNodeDefCategoryLevelIndex = (params: { survey: Survey; nodeDef: NodeDefCode }): number => {\n const { survey, nodeDef } = params\n const parentCodeNodeDef = getNodeDefParentCode({ survey, nodeDef })\n return parentCodeNodeDef ? 1 + getNodeDefCategoryLevelIndex({ survey, nodeDef: parentCodeNodeDef }) : 0\n}\n\nexport const getDependentCodeAttributeDefs = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefCode[] => {\n const { survey, nodeDef } = params\n\n const categoryUuid = NodeDefs.getCategoryUuid(nodeDef)\n if (!categoryUuid) return []\n\n const category = getCategoryByUuid({ survey, categoryUuid })\n const levelsCount = Object.keys(category?.levels ?? {}).length\n if (levelsCount <= 1) return []\n\n const nodeDefsArray = getNodeDefsArray(survey)\n return nodeDefsArray.filter(\n (def) => def.type === NodeDefType.code && NodeDefs.getParentCodeDefUuid(def as NodeDefCode) === nodeDef.uuid\n ) as NodeDefCode[]\n}\n\nexport const getDependentEnumeratedEntityDefs = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefEntity[] => {\n const { survey, nodeDef } = params\n const result: NodeDefEntity[] = []\n const dependentCodeAttributeDefs = getDependentCodeAttributeDefs({ survey, nodeDef })\n for (const dependentCodeDef of dependentCodeAttributeDefs) {\n if (NodeDefs.isKey(dependentCodeDef)) {\n const entityDef = getNodeDefAncestorMultipleEntity({ survey, nodeDef: dependentCodeDef })\n if (entityDef && NodeDefs.isEnumerate(entityDef)) {\n result.push(entityDef)\n }\n }\n }\n return result\n}\n\nexport const getNodeDefKeys = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n cycle?: string\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, cycle, nodeDef } = params\n\n return getDescendantsInSingleEntities({\n survey,\n cycle,\n nodeDef,\n predicate: (visitedNodeDef) =>\n NodeDefs.isKey(visitedNodeDef) &&\n !visitedNodeDef.deleted &&\n (Objects.isEmpty(cycle) || NodeDefs.isInCycle(cycle!)(visitedNodeDef)),\n })\n}\n\nexport const getRootKeys = (params: { survey: Survey; cycle?: string }) => {\n const { survey, cycle } = params\n const rootDef = getNodeDefRoot({ survey })\n return getNodeDefKeys({ survey, nodeDef: rootDef, cycle })\n}\n\nexport const getNodeDefEnumerator = (params: { survey: Survey; entityDef: NodeDefEntity }): NodeDefCode | undefined => {\n const { survey, entityDef } = params\n if (!entityDef.props.enumerate) return undefined\n\n const children = getNodeDefChildren({ survey, nodeDef: entityDef })\n const codeAttributeKeys = children.filter((child) => child.type === NodeDefType.code && child.props.key)\n if (codeAttributeKeys.length === 1) {\n return codeAttributeKeys[0] as NodeDefCode\n }\n return undefined\n}\n\nexport const isNodeDefEnumerator = (params: { survey: Survey; nodeDef: NodeDef<NodeDefType> }): boolean => {\n const { survey, nodeDef } = params\n if (nodeDef.type !== NodeDefType.code) return false\n const entityDef = getNodeDefParent({ survey, nodeDef })\n if (!entityDef) return false\n const enumerator = getNodeDefEnumerator({ survey, entityDef })\n return enumerator?.uuid === nodeDef.uuid\n}\n\nexport const getDescendantsInSingleEntities = (params: {\n survey: Survey\n cycle?: string\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n predicate?: (visitedNodeDef: NodeDef<NodeDefType, NodeDefProps>) => boolean\n includeAnalysis?: boolean\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, cycle, nodeDef, predicate, includeAnalysis } = params\n const result: NodeDef<any>[] = []\n visitDescendantsAndSelfNodeDef({\n survey,\n cycle,\n nodeDef,\n visitor: (visitedNodeDef) => {\n if (!predicate || predicate(visitedNodeDef)) {\n result.push(visitedNodeDef)\n }\n },\n includeAnalysis,\n traverseOnlySingleEntities: true,\n })\n return result\n}\n\nexport const getNodeDefsIncludedInMultipleEntitySummary = (params: {\n survey: Survey\n cycle: string\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, cycle, nodeDef } = params\n return getDescendantsInSingleEntities({\n survey,\n cycle,\n nodeDef,\n predicate: (visitedNodeDef) => NodeDefs.isIncludedInMultipleEntitySummary(cycle)(visitedNodeDef),\n })\n}\n\nconst { buildAndAssocNodeDefsIndex, addNodeDefToIndex, updateNodeDefUuidByNameIndex, deleteNodeDefIndex } =\n NodeDefsIndex\nexport { buildAndAssocNodeDefsIndex, addNodeDefToIndex, updateNodeDefUuidByNameIndex, deleteNodeDefIndex }\n"]}
1
+ {"version":3,"file":"nodeDefs.js","sourceRoot":"","sources":["../../../src/survey/surveys/nodeDefs.ts"],"names":[],"mappings":"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","sourcesContent":["import { Survey } from '../survey'\nimport {\n NodeDef,\n NodeDefCode,\n NodeDefCodeProps,\n NodeDefEntity,\n NodeDefEntityChildPosition,\n NodeDefMap,\n NodeDefProps,\n NodeDefType,\n NodeDefs,\n} from '../../nodeDef'\nimport { Arrays, Objects, Queue } from '../../utils'\nimport { SystemError } from '../../error'\nimport * as NodeDefsReader from './_nodeDefs/nodeDefsReader'\nimport * as NodeDefsIndex from './_nodeDefs/nodeDefsIndex'\nimport { TraverseMethod } from '../../common'\nimport { getCategoryByUuid } from './surveysGetters'\n\nexport const getNodeDefsArray = NodeDefsReader.getNodeDefsArray\n\nexport const findNodeDefByUuid = (params: {\n survey: Survey\n uuid: string\n}): NodeDef<NodeDefType, NodeDefProps> | undefined => {\n const { survey, uuid } = params\n return survey.nodeDefs?.[uuid]\n}\n\nexport const getNodeDefByUuid = (params: { survey: Survey; uuid: string }): NodeDef<NodeDefType, NodeDefProps> => {\n const { survey, uuid } = params\n const nodeDef = findNodeDefByUuid({ survey, uuid })\n if (!nodeDef) throw new SystemError('survey.nodeDefUuidNotFound', { uuid })\n return nodeDef\n}\n\nexport const findNodeDefByName = (params: {\n survey: Survey\n name: string\n}): NodeDef<NodeDefType, NodeDefProps> | undefined => {\n const { survey, name } = params\n const nodeDefUuidByNameIndex = survey.nodeDefsIndex?.nodeDefUuidByName\n if (nodeDefUuidByNameIndex) {\n const uuid = nodeDefUuidByNameIndex[name]\n return findNodeDefByUuid({ survey, uuid })\n }\n return getNodeDefsArray(survey).find((nodeDef) => nodeDef.props.name === name)\n}\n\nexport const getNodeDefByName = (params: { survey: Survey; name: string }): NodeDef<NodeDefType, NodeDefProps> => {\n const { survey, name } = params\n const nodeDef = findNodeDefByName({ survey, name })\n if (!nodeDef) {\n throw new SystemError('survey.nodeDefNameNotFound', { name })\n }\n return nodeDef\n}\n\nexport const getNodeDefsByUuids = (params: { survey: Survey; uuids: string[] }) => {\n const { survey, uuids } = params\n return uuids.map((uuid) => getNodeDefByUuid({ survey, uuid }))\n}\n\nexport const findNodeDefsByUuids = (params: {\n survey: Survey\n uuids: string[]\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, uuids } = params\n return uuids.reduce((acc: NodeDef<NodeDefType, NodeDefProps>[], uuid) => {\n const nodeDef = findNodeDefByUuid({ survey, uuid })\n if (nodeDef) {\n acc.push(nodeDef)\n }\n return acc\n }, [])\n}\n\nexport const getNodeDefParent = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDefEntity | undefined => {\n const { survey, nodeDef } = params\n if (!nodeDef.parentUuid) return undefined\n return getNodeDefByUuid({ survey, uuid: nodeDef.parentUuid }) as NodeDefEntity\n}\n\nexport const getNodeDefAncestorMultipleEntity = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDefEntity | undefined => {\n const { survey, nodeDef } = params\n return findAncestorNodeDef({\n survey,\n nodeDef,\n predicate: (entityDef) => NodeDefs.isRoot(entityDef) || NodeDefs.isMultiple(entityDef),\n })\n}\n\nexport const isNodeDefAncestor = (params: {\n nodeDefAncestor: NodeDef<NodeDefType, NodeDefProps>\n nodeDefDescendant: NodeDef<NodeDefType, NodeDefProps>\n}): boolean => {\n const { nodeDefAncestor, nodeDefDescendant } = params\n\n return Arrays.startsWith(nodeDefDescendant.meta.h, [...nodeDefAncestor.meta.h, nodeDefAncestor.uuid])\n}\n\nexport const getNodeDefRoot = (params: { survey: Survey }): NodeDefEntity => {\n const { survey } = params\n if (!survey.nodeDefs) throw new SystemError('survey.emptyNodeDefs')\n\n const rootDefUuidInIndex = survey.nodeDefsIndex?.rootDefUuid\n\n const rootDef = rootDefUuidInIndex\n ? getNodeDefByUuid({ survey, uuid: rootDefUuidInIndex })\n : getNodeDefsArray(survey).find((nodeDef) => !nodeDef.parentUuid)\n\n if (!rootDef) throw new SystemError('survey.rootDefNotFound')\n\n return rootDef as NodeDefEntity\n}\n\nexport const getNodeDefSource = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDef<NodeDefType, NodeDefProps> | undefined => {\n const { survey, nodeDef } = params\n return nodeDef.virtual ? getNodeDefParent({ survey, nodeDef }) : undefined\n}\n\nexport const getNodeDefChildren = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n includeAnalysis?: boolean\n includeLayoutElements?: boolean\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, nodeDef, includeAnalysis = false, includeLayoutElements = false } = params\n\n if (!survey.nodeDefs) return []\n\n let childDefs = []\n // try to get children using index\n if (survey.nodeDefsIndex) {\n const childrenUuids = Object.keys(survey.nodeDefsIndex.childDefUuidPresenceByParentUuid?.[nodeDef.uuid] ?? {})\n childDefs = getNodeDefsByUuids({ survey, uuids: childrenUuids })\n } else {\n // calculate children\n childDefs = NodeDefsReader.calculateNodeDefChildren(nodeDef)(survey)\n }\n if (includeAnalysis && includeLayoutElements) {\n return childDefs\n }\n return childDefs.filter((childDef) => {\n if (!includeAnalysis && childDef.analysis) return false\n if (!includeLayoutElements && NodeDefs.isLayoutElement(childDef)) return false\n return true\n })\n}\n\nexport const getQualifierDefs = (params: { survey: Survey }): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey } = params\n const qualifierPresence = survey.nodeDefsIndex?.qualifierPresenceByUuid\n if (qualifierPresence) {\n const qualifierUuids = Object.keys(qualifierPresence)\n return getNodeDefsByUuids({ survey, uuids: qualifierUuids })\n } else {\n return getNodeDefsArray(survey).filter((nodeDef) => NodeDefs.isQualifier(nodeDef))\n }\n}\n\nconst getIndexInChain = (params: { survey: Survey; nodeDef: NodeDef<any> }): number => {\n const { survey, nodeDef } = params\n const areaBasedEstimatedOf = NodeDefs.getAreaBasedEstimatedOf(nodeDef)\n const areaBasedEstimatedOfNodeDef = areaBasedEstimatedOf\n ? getNodeDefByUuid({ survey, uuid: areaBasedEstimatedOf })\n : null\n const nodeDefToConsider = areaBasedEstimatedOfNodeDef ?? nodeDef\n return nodeDefToConsider?.propsAdvanced?.index ?? 0\n}\n\nconst getNodeDefChildrenUuidsSortedByLayout = (params: {\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n cycle: string\n children: NodeDef<any>[]\n}): string[] => {\n const { nodeDef, cycle, children } = params\n\n const entityDef = nodeDef as NodeDefEntity\n\n const childrenEntitiesInOwnPageSortedUuids = NodeDefs.getChildrenEntitiesInOwnPageUudis(cycle)(entityDef) ?? []\n const layoutChildren = NodeDefs.getLayoutChildren(cycle)(entityDef) ?? []\n const childrenByUuids = children.reduce((acc: NodeDefMap, child) => {\n acc[child.uuid] = child\n return acc\n }, {})\n const childrenUuids = Object.keys(childrenByUuids)\n\n if (layoutChildren.length === 0 && childrenEntitiesInOwnPageSortedUuids.length === 0) {\n return childrenUuids\n }\n const sortedChildrenDefsInSamePageUuids = NodeDefs.isLayoutRenderTypeTable(cycle)(entityDef)\n ? (layoutChildren as string[])\n : [...(layoutChildren as NodeDefEntityChildPosition[])]\n .sort(\n (gridItem1: NodeDefEntityChildPosition, gridItem2: NodeDefEntityChildPosition) =>\n gridItem1.y - gridItem2.y || gridItem1.x - gridItem2.x\n )\n .map((gridItem) => gridItem.i)\n .filter((nodeDefUuid) => !!childrenByUuids[nodeDefUuid])\n\n const missingChildrenUuidsInLayout = childrenUuids.filter((childUuid) => {\n const childDef = childrenByUuids[childUuid]\n return (\n !sortedChildrenDefsInSamePageUuids.includes(childUuid) &&\n !childrenEntitiesInOwnPageSortedUuids.includes(childUuid) &&\n NodeDefs.isInCycle(cycle)(childDef)\n )\n })\n\n return (\n sortedChildrenDefsInSamePageUuids\n // add child uuids missing in layout at the end\n .concat(missingChildrenUuidsInLayout)\n // add child entities in own page at the very end\n .concat(childrenEntitiesInOwnPageSortedUuids)\n )\n}\n\nconst _booleanToNumber = (value: boolean | undefined): number => (value ? 1 : 0)\nconst _compareBooleans = (value1: boolean | undefined, value2: boolean | undefined): number =>\n _booleanToNumber(value1) - _booleanToNumber(value2)\n\nexport const getNodeDefChildrenSorted = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n cycle: string\n includeAnalysis?: boolean\n includeLayoutElements?: boolean\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, nodeDef, cycle, includeAnalysis, includeLayoutElements } = params\n\n const children = getNodeDefChildren({ survey, nodeDef, includeAnalysis, includeLayoutElements }).filter(\n NodeDefs.isInCycle(cycle)\n )\n\n const childrenUuidsSortedByLayout = getNodeDefChildrenUuidsSortedByLayout({ nodeDef, cycle, children })\n\n return children.sort((child1, child2) => {\n if (includeAnalysis && (child1.analysis || child2.analysis)) {\n // analysis attribute at the end\n const analysisComparison = _compareBooleans(child1.analysis, child2.analysis)\n if (analysisComparison !== 0) return analysisComparison\n\n // sort by chain index\n const indexInChainComparison =\n getIndexInChain({ survey, nodeDef: child1 }) - getIndexInChain({ survey, nodeDef: child2 })\n if (indexInChainComparison !== 0) return indexInChainComparison\n\n // one node def is the area base estimated of the other\n const areaBasedEstimatedOfComparison = _compareBooleans(\n !!NodeDefs.getAreaBasedEstimatedOf(child1),\n !!NodeDefs.getAreaBasedEstimatedOf(child2)\n )\n if (areaBasedEstimatedOfComparison !== 0) return areaBasedEstimatedOfComparison\n\n return (child1.id ?? 0) - (child2.id ?? 0)\n }\n // keep sorting as defined in layout props\n return childrenUuidsSortedByLayout.indexOf(child1.uuid) - childrenUuidsSortedByLayout.indexOf(child2.uuid)\n })\n}\n\nexport const visitAncestorsAndSelfNodeDef = (params: {\n survey: Survey\n nodeDef: NodeDef<any>\n visitor: (nodeDef: NodeDef<any>) => void\n stopIfFn?: () => boolean\n includeSelf?: boolean\n}): void => {\n const { survey, nodeDef, visitor, stopIfFn, includeSelf = true } = params\n if (includeSelf) {\n visitor(nodeDef)\n }\n let currentParent = getNodeDefParent({ survey, nodeDef })\n while (currentParent) {\n visitor(currentParent)\n if (stopIfFn?.()) {\n break\n }\n currentParent = getNodeDefParent({ survey, nodeDef: currentParent })\n }\n}\n\nexport const findAncestorNodeDef = (params: {\n survey: Survey\n nodeDef: NodeDef<any>\n predicate: (entityDef: NodeDefEntity) => boolean\n}): NodeDefEntity | undefined => {\n const { survey, nodeDef, predicate } = params\n let result: NodeDefEntity | undefined = undefined\n visitAncestorsAndSelfNodeDef({\n survey,\n nodeDef,\n // ancestors only: the node def itself is never an ancestor (e.g. a multiple attribute)\n includeSelf: false,\n visitor: (entityDef) => {\n if (predicate(entityDef)) {\n result = entityDef\n }\n },\n stopIfFn: () => !!result,\n })\n return result\n}\n\ntype NodeDefTraverseParams = {\n nodeDef: NodeDef<any>\n visitor: (nodeDef: NodeDef<any>) => void\n shouldTraverse: (nodeDef: NodeDef<any>) => boolean\n getChildren: (nodeDef: NodeDef<any>) => NodeDef<any>[]\n}\n\nconst traverseBreadthFirst = ({ nodeDef, visitor, shouldTraverse, getChildren }: NodeDefTraverseParams) => {\n const queue = new Queue()\n\n queue.enqueue(nodeDef)\n\n while (!queue.isEmpty()) {\n const visitedNodeDef = queue.dequeue()\n\n visitor(visitedNodeDef)\n\n if (shouldTraverse(visitedNodeDef)) {\n queue.enqueueItems(getChildren(visitedNodeDef))\n }\n }\n}\n\nconst traverseDepthFirst = ({ nodeDef, visitor, shouldTraverse, getChildren }: NodeDefTraverseParams) => {\n const stack: NodeDef<any>[] = []\n\n stack.push(nodeDef)\n\n while (stack.length > 0) {\n const visitedNodeDef = stack.pop()!\n\n visitor(visitedNodeDef)\n\n if (shouldTraverse(visitedNodeDef)) {\n const children = getChildren(visitedNodeDef)\n // add children to stack in reverse order\n for (let index = children.length - 1; index >= 0; index--) {\n stack.push(children[index])\n }\n }\n }\n}\n\nexport const visitDescendantsAndSelfNodeDef = (params: {\n survey: Survey\n cycle?: string\n nodeDef: NodeDef<any>\n visitor: (nodeDef: NodeDef<any>) => void\n includeAnalysis?: boolean\n traverseMethod?: TraverseMethod\n traverseOnlySingleEntities?: boolean\n}) => {\n const {\n survey,\n cycle,\n nodeDef,\n visitor,\n includeAnalysis = false,\n traverseMethod = TraverseMethod.bfs,\n traverseOnlySingleEntities = false,\n } = params\n\n const getNodeDefChildrenInternal = (visitedNodeDef: NodeDef<any>) =>\n Objects.isEmpty(cycle)\n ? getNodeDefChildren({ survey, nodeDef: visitedNodeDef, includeAnalysis })\n : getNodeDefChildrenSorted({ survey, nodeDef: visitedNodeDef, cycle: cycle!, includeAnalysis })\n\n const shouldTraverse = (visitedNodeDef: NodeDef<any>): boolean =>\n visitedNodeDef.type === NodeDefType.entity &&\n (visitedNodeDef === nodeDef ||\n NodeDefs.isRoot(visitedNodeDef) ||\n !traverseOnlySingleEntities ||\n NodeDefs.isSingle(visitedNodeDef))\n\n const traverseParams = { nodeDef, visitor, shouldTraverse, getChildren: getNodeDefChildrenInternal }\n if (traverseMethod === TraverseMethod.bfs) {\n traverseBreadthFirst(traverseParams)\n } else {\n traverseDepthFirst(traverseParams)\n }\n}\n\nexport const visitNodeDefs = (params: {\n survey: Survey\n visitor: (nodeDef: NodeDef<any>) => void\n includeAnalysis?: boolean\n traverseMethod?: TraverseMethod\n}) => {\n const { survey, visitor, traverseMethod = TraverseMethod.bfs, includeAnalysis = false } = params\n const rootDef = getNodeDefRoot({ survey })\n return visitDescendantsAndSelfNodeDef({ survey, nodeDef: rootDef, visitor, traverseMethod, includeAnalysis })\n}\n\n// Node Def Code\nexport const getNodeDefParentCode = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefCode | undefined => {\n const { survey, nodeDef } = params\n const parentCodeDefUuid = nodeDef.props.parentCodeDefUuid\n if (!parentCodeDefUuid) return undefined\n const parentCodeDef = getNodeDefByUuid({ survey, uuid: parentCodeDefUuid })\n return parentCodeDef as NodeDefCode\n}\n\nexport const getNodeDefAncestorCodes = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefCode[] => {\n const { survey, nodeDef } = params\n const ancestors = []\n let currentParentCode = getNodeDefParentCode({ survey, nodeDef })\n while (currentParentCode) {\n ancestors.unshift(currentParentCode)\n currentParentCode = getNodeDefParentCode({ survey, nodeDef: currentParentCode })\n }\n return ancestors\n}\n\nexport const isNodeDefParentCode = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): boolean => {\n const { survey, nodeDef } = params\n const nodeDefsArray = getNodeDefsArray(survey)\n return nodeDefsArray.some((def) => {\n try {\n return nodeDef.uuid === (def as NodeDef<NodeDefType.code, NodeDefCodeProps>).props.parentCodeDefUuid\n } catch {\n // ignore it: def is not a code attribute definition\n return\n }\n })\n}\n\nexport const getNodeDefCategoryLevelIndex = (params: { survey: Survey; nodeDef: NodeDefCode }): number => {\n const { survey, nodeDef } = params\n const parentCodeNodeDef = getNodeDefParentCode({ survey, nodeDef })\n return parentCodeNodeDef ? 1 + getNodeDefCategoryLevelIndex({ survey, nodeDef: parentCodeNodeDef }) : 0\n}\n\nexport const getDependentCodeAttributeDefs = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefCode[] => {\n const { survey, nodeDef } = params\n\n const categoryUuid = NodeDefs.getCategoryUuid(nodeDef)\n if (!categoryUuid) return []\n\n const category = getCategoryByUuid({ survey, categoryUuid })\n const levelsCount = Object.keys(category?.levels ?? {}).length\n if (levelsCount <= 1) return []\n\n const nodeDefsArray = getNodeDefsArray(survey)\n return nodeDefsArray.filter(\n (def) => def.type === NodeDefType.code && NodeDefs.getParentCodeDefUuid(def as NodeDefCode) === nodeDef.uuid\n ) as NodeDefCode[]\n}\n\nexport const getDependentEnumeratedEntityDefs = (params: { survey: Survey; nodeDef: NodeDefCode }): NodeDefEntity[] => {\n const { survey, nodeDef } = params\n const result: NodeDefEntity[] = []\n const dependentCodeAttributeDefs = getDependentCodeAttributeDefs({ survey, nodeDef })\n for (const dependentCodeDef of dependentCodeAttributeDefs) {\n if (NodeDefs.isKey(dependentCodeDef)) {\n const entityDef = getNodeDefAncestorMultipleEntity({ survey, nodeDef: dependentCodeDef })\n if (entityDef && NodeDefs.isEnumerate(entityDef)) {\n result.push(entityDef)\n }\n }\n }\n return result\n}\n\nexport const getNodeDefKeys = (params: {\n survey: Survey\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n cycle?: string\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, cycle, nodeDef } = params\n\n return getDescendantsInSingleEntities({\n survey,\n cycle,\n nodeDef,\n predicate: (visitedNodeDef) =>\n NodeDefs.isKey(visitedNodeDef) &&\n !visitedNodeDef.deleted &&\n (Objects.isEmpty(cycle) || NodeDefs.isInCycle(cycle!)(visitedNodeDef)),\n })\n}\n\nexport const getRootKeys = (params: { survey: Survey; cycle?: string }) => {\n const { survey, cycle } = params\n const rootDef = getNodeDefRoot({ survey })\n return getNodeDefKeys({ survey, nodeDef: rootDef, cycle })\n}\n\nexport const getNodeDefEnumerator = (params: { survey: Survey; entityDef: NodeDefEntity }): NodeDefCode | undefined => {\n const { survey, entityDef } = params\n if (!entityDef.props.enumerate) return undefined\n\n const children = getNodeDefChildren({ survey, nodeDef: entityDef })\n const codeAttributeKeys = children.filter((child) => child.type === NodeDefType.code && child.props.key)\n if (codeAttributeKeys.length === 1) {\n return codeAttributeKeys[0] as NodeDefCode\n }\n return undefined\n}\n\nexport const isNodeDefEnumerator = (params: { survey: Survey; nodeDef: NodeDef<NodeDefType> }): boolean => {\n const { survey, nodeDef } = params\n if (nodeDef.type !== NodeDefType.code) return false\n const entityDef = getNodeDefParent({ survey, nodeDef })\n if (!entityDef) return false\n const enumerator = getNodeDefEnumerator({ survey, entityDef })\n return enumerator?.uuid === nodeDef.uuid\n}\n\nexport const getDescendantsInSingleEntities = (params: {\n survey: Survey\n cycle?: string\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n predicate?: (visitedNodeDef: NodeDef<NodeDefType, NodeDefProps>) => boolean\n includeAnalysis?: boolean\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, cycle, nodeDef, predicate, includeAnalysis } = params\n const result: NodeDef<any>[] = []\n visitDescendantsAndSelfNodeDef({\n survey,\n cycle,\n nodeDef,\n visitor: (visitedNodeDef) => {\n if (!predicate || predicate(visitedNodeDef)) {\n result.push(visitedNodeDef)\n }\n },\n includeAnalysis,\n traverseOnlySingleEntities: true,\n })\n return result\n}\n\nexport const getNodeDefsIncludedInMultipleEntitySummary = (params: {\n survey: Survey\n cycle: string\n nodeDef: NodeDef<NodeDefType, NodeDefProps>\n}): NodeDef<NodeDefType, NodeDefProps>[] => {\n const { survey, cycle, nodeDef } = params\n return getDescendantsInSingleEntities({\n survey,\n cycle,\n nodeDef,\n predicate: (visitedNodeDef) => NodeDefs.isIncludedInMultipleEntitySummary(cycle)(visitedNodeDef),\n })\n}\n\nconst { buildAndAssocNodeDefsIndex, addNodeDefToIndex, updateNodeDefUuidByNameIndex, deleteNodeDefIndex } =\n NodeDefsIndex\nexport { buildAndAssocNodeDefsIndex, addNodeDefToIndex, updateNodeDefUuidByNameIndex, deleteNodeDefIndex }\n"]}
@@ -12,7 +12,8 @@ const getCategoryItemByUuid = (params) => {
12
12
  exports.getCategoryItemByUuid = getCategoryItemByUuid;
13
13
  const nullParentItemUuid = 'null';
14
14
  const getCategoryItems = (params) => {
15
- var _a, _b, _c, _d;
15
+ var _a, _b, _c;
16
+ var _d;
16
17
  const { survey, categoryUuid, parentItemUuid = nullParentItemUuid } = params;
17
18
  const itemUuids = Object.values((_d = (_c = (_b = (_a = survey.refData) === null || _a === void 0 ? void 0 : _a.categoryItemUuidIndex) === null || _b === void 0 ? void 0 : _b[categoryUuid]) === null || _c === void 0 ? void 0 : _c[parentItemUuid]) !== null && _d !== void 0 ? _d : {});
18
19
  const items = itemUuids.reduce((acc, itemUuid) => {
@@ -1 +1 @@
1
- {"version":3,"file":"refsData.js","sourceRoot":"","sources":["../../../src/survey/surveys/refsData.ts"],"names":[],"mappings":"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","sourcesContent":["import { Survey } from '../survey'\nimport { CategoryItem, CategoryItems } from '../../category'\nimport { Taxon } from '../../taxonomy'\nimport { NodeDefCode, NodeDefs, NodeDefTaxon } from '../../nodeDef'\nimport { getNodeDefCategoryLevelIndex } from './nodeDefs'\n\nexport const getCategoryItemByUuid = (params: { survey: Survey; itemUuid: string }): CategoryItem | undefined => {\n const { survey, itemUuid } = params\n return survey.refData?.categoryItemIndex[itemUuid]\n}\n\nconst nullParentItemUuid = 'null'\n\nexport const getCategoryItems = (params: {\n survey: Survey\n categoryUuid: string\n parentItemUuid?: string\n}): CategoryItem[] => {\n const { survey, categoryUuid, parentItemUuid = nullParentItemUuid } = params\n const itemUuids: string[] = Object.values(\n survey.refData?.categoryItemUuidIndex?.[categoryUuid]?.[parentItemUuid] ?? {}\n )\n const items = itemUuids.reduce((acc: CategoryItem[], itemUuid) => {\n const item = getCategoryItemByUuid({ survey, itemUuid })\n if (item) acc.push(item)\n return acc\n }, [])\n return items.sort((item1, item2) => {\n const index1 = CategoryItems.getIndex(item1)\n const index2 = CategoryItems.getIndex(item2)\n if (Number.isNaN(index1) && Number.isNaN(index2)) {\n return (item1.id ?? 0) - (item2.id ?? 0)\n }\n if (Number.isNaN(index1)) {\n return 1\n }\n if (Number.isNaN(index2)) {\n return -1\n }\n return index1 - index2\n })\n}\n\nexport const getCategoryItemUuidByCode = (params: {\n survey: Survey\n categoryUuid: string\n parentItemUuid: string | undefined\n code: string\n}): string | undefined => {\n const { survey, categoryUuid, parentItemUuid = nullParentItemUuid, code } = params\n return survey.refData?.categoryItemUuidIndex?.[categoryUuid]?.[parentItemUuid]?.[code]\n}\n\nexport const getCategoryItemByCodePaths = (params: {\n survey: Survey\n categoryUuid: string\n codePaths: string[]\n}): CategoryItem | undefined => {\n const { survey, categoryUuid, codePaths } = params\n const itemUuid = codePaths.reduce(\n (currentParentUuid: string | undefined, code) =>\n currentParentUuid\n ? getCategoryItemUuidByCode({ survey, categoryUuid, parentItemUuid: currentParentUuid, code })\n : undefined,\n 'null'\n )\n return itemUuid ? getCategoryItemByUuid({ survey, itemUuid }) : undefined\n}\n\nexport const getCategoryItemsInLevel = (params: { survey: Survey; categoryUuid: string; levelIndex?: number }) => {\n const { survey, categoryUuid, levelIndex = 0 } = params\n const rootItems = getCategoryItems({ survey, categoryUuid })\n if (levelIndex === 0) return rootItems\n\n let itemsPrevLevel = [...rootItems]\n let currentLevelIndex = 1\n while (currentLevelIndex <= levelIndex) {\n const itemsInLevel = []\n for (const item of itemsPrevLevel) {\n const { uuid: parentItemUuid } = item\n itemsInLevel.push(...getCategoryItems({ survey, categoryUuid, parentItemUuid }))\n }\n currentLevelIndex += 1\n itemsPrevLevel = itemsInLevel\n }\n return itemsPrevLevel\n}\n\nexport const getCategoryItemsByNodeDef = (params: { survey: Survey; nodeDef: NodeDefCode }) => {\n const { survey, nodeDef } = params\n const categoryUuid = NodeDefs.getCategoryUuid(nodeDef)!\n const levelIndex = getNodeDefCategoryLevelIndex({ survey, nodeDef })\n return getCategoryItemsInLevel({ survey, categoryUuid, levelIndex })\n}\n\nexport const getTaxonByUuid = (params: { survey: Survey; taxonUuid: string }): Taxon | undefined => {\n const { survey, taxonUuid } = params\n return survey.refData?.taxonIndex?.[taxonUuid]\n}\n\nexport const getTaxonByCode = (params: {\n survey: Survey\n taxonomyUuid: string\n taxonCode: string\n}): Taxon | undefined => {\n const { survey, taxonomyUuid, taxonCode } = params\n const taxonUuid = survey.refData?.taxonUuidIndex?.[taxonomyUuid]?.[taxonCode]\n return taxonUuid ? getTaxonByUuid({ survey, taxonUuid }) : undefined\n}\n\nexport const getTaxonVernacularNameUuid = (params: {\n survey: Survey\n taxonomyUuid: string\n taxonCode: string\n vernacularName: string\n}): string | undefined => {\n const { survey, taxonomyUuid, taxonCode, vernacularName } = params\n const taxon = getTaxonByCode({ survey, taxonomyUuid, taxonCode })\n const vernacularNameObj = Object.values(taxon?.vernacularNames ?? {})\n .flat()\n .find((vernNameObj) => vernNameObj.props.name === vernacularName)\n return vernacularNameObj?.uuid\n}\n\nexport const includesTaxonVernacularName = (params: {\n survey: Survey\n nodeDef: NodeDefTaxon\n taxonCode: string\n vernacularNameUuid: string\n}): boolean => {\n const { survey, nodeDef, taxonCode, vernacularNameUuid } = params\n const taxonomyUuid = NodeDefs.getTaxonomyUuid(nodeDef)\n if (!taxonomyUuid) return false\n\n const taxon = getTaxonByCode({ survey, taxonomyUuid, taxonCode })\n const vernacularNamesByLang = taxon?.vernacularNames ?? {}\n\n return Object.values(vernacularNamesByLang).some((vernacularNames) =>\n vernacularNames.some((vernacularName) => vernacularName.uuid === vernacularNameUuid)\n )\n}\n"]}
1
+ {"version":3,"file":"refsData.js","sourceRoot":"","sources":["../../../src/survey/surveys/refsData.ts"],"names":[],"mappings":"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","sourcesContent":["import { Survey } from '../survey'\nimport { CategoryItem, CategoryItems } from '../../category'\nimport { Taxon } from '../../taxonomy'\nimport { NodeDefCode, NodeDefs, NodeDefTaxon } from '../../nodeDef'\nimport { getNodeDefCategoryLevelIndex } from './nodeDefs'\n\nexport const getCategoryItemByUuid = (params: { survey: Survey; itemUuid: string }): CategoryItem | undefined => {\n const { survey, itemUuid } = params\n return survey.refData?.categoryItemIndex[itemUuid]\n}\n\nconst nullParentItemUuid = 'null'\n\nexport const getCategoryItems = (params: {\n survey: Survey\n categoryUuid: string\n parentItemUuid?: string\n}): CategoryItem[] => {\n const { survey, categoryUuid, parentItemUuid = nullParentItemUuid } = params\n const itemUuids: string[] = Object.values(\n survey.refData?.categoryItemUuidIndex?.[categoryUuid]?.[parentItemUuid] ?? {}\n )\n const items = itemUuids.reduce((acc: CategoryItem[], itemUuid) => {\n const item = getCategoryItemByUuid({ survey, itemUuid })\n if (item) acc.push(item)\n return acc\n }, [])\n return items.sort((item1, item2) => {\n const index1 = CategoryItems.getIndex(item1)\n const index2 = CategoryItems.getIndex(item2)\n if (Number.isNaN(index1) && Number.isNaN(index2)) {\n return (item1.id ?? 0) - (item2.id ?? 0)\n }\n if (Number.isNaN(index1)) {\n return 1\n }\n if (Number.isNaN(index2)) {\n return -1\n }\n return index1 - index2\n })\n}\n\nexport const getCategoryItemUuidByCode = (params: {\n survey: Survey\n categoryUuid: string\n parentItemUuid: string | undefined\n code: string\n}): string | undefined => {\n const { survey, categoryUuid, parentItemUuid = nullParentItemUuid, code } = params\n return survey.refData?.categoryItemUuidIndex?.[categoryUuid]?.[parentItemUuid]?.[code]\n}\n\nexport const getCategoryItemByCodePaths = (params: {\n survey: Survey\n categoryUuid: string\n codePaths: string[]\n}): CategoryItem | undefined => {\n const { survey, categoryUuid, codePaths } = params\n const itemUuid = codePaths.reduce(\n (currentParentUuid: string | undefined, code) =>\n currentParentUuid\n ? getCategoryItemUuidByCode({ survey, categoryUuid, parentItemUuid: currentParentUuid, code })\n : undefined,\n 'null'\n )\n return itemUuid ? getCategoryItemByUuid({ survey, itemUuid }) : undefined\n}\n\nexport const getCategoryItemsInLevel = (params: { survey: Survey; categoryUuid: string; levelIndex?: number }) => {\n const { survey, categoryUuid, levelIndex = 0 } = params\n const rootItems = getCategoryItems({ survey, categoryUuid })\n if (levelIndex === 0) return rootItems\n\n let itemsPrevLevel = [...rootItems]\n let currentLevelIndex = 1\n while (currentLevelIndex <= levelIndex) {\n const itemsInLevel = []\n for (const item of itemsPrevLevel) {\n const { uuid: parentItemUuid } = item\n itemsInLevel.push(...getCategoryItems({ survey, categoryUuid, parentItemUuid }))\n }\n currentLevelIndex += 1\n itemsPrevLevel = itemsInLevel\n }\n return itemsPrevLevel\n}\n\nexport const getCategoryItemsByNodeDef = (params: { survey: Survey; nodeDef: NodeDefCode }) => {\n const { survey, nodeDef } = params\n const categoryUuid = NodeDefs.getCategoryUuid(nodeDef)!\n const levelIndex = getNodeDefCategoryLevelIndex({ survey, nodeDef })\n return getCategoryItemsInLevel({ survey, categoryUuid, levelIndex })\n}\n\nexport const getTaxonByUuid = (params: { survey: Survey; taxonUuid: string }): Taxon | undefined => {\n const { survey, taxonUuid } = params\n return survey.refData?.taxonIndex?.[taxonUuid]\n}\n\nexport const getTaxonByCode = (params: {\n survey: Survey\n taxonomyUuid: string\n taxonCode: string\n}): Taxon | undefined => {\n const { survey, taxonomyUuid, taxonCode } = params\n const taxonUuid = survey.refData?.taxonUuidIndex?.[taxonomyUuid]?.[taxonCode]\n return taxonUuid ? getTaxonByUuid({ survey, taxonUuid }) : undefined\n}\n\nexport const getTaxonVernacularNameUuid = (params: {\n survey: Survey\n taxonomyUuid: string\n taxonCode: string\n vernacularName: string\n}): string | undefined => {\n const { survey, taxonomyUuid, taxonCode, vernacularName } = params\n const taxon = getTaxonByCode({ survey, taxonomyUuid, taxonCode })\n const vernacularNameObj = Object.values(taxon?.vernacularNames ?? {})\n .flat()\n .find((vernNameObj) => vernNameObj.props.name === vernacularName)\n return vernacularNameObj?.uuid\n}\n\nexport const includesTaxonVernacularName = (params: {\n survey: Survey\n nodeDef: NodeDefTaxon\n taxonCode: string\n vernacularNameUuid: string\n}): boolean => {\n const { survey, nodeDef, taxonCode, vernacularNameUuid } = params\n const taxonomyUuid = NodeDefs.getTaxonomyUuid(nodeDef)\n if (!taxonomyUuid) return false\n\n const taxon = getTaxonByCode({ survey, taxonomyUuid, taxonCode })\n const vernacularNamesByLang = taxon?.vernacularNames ?? {}\n\n return Object.values(vernacularNamesByLang).some((vernacularNames) =>\n vernacularNames.some((vernacularName) => vernacularName.uuid === vernacularNameUuid)\n )\n}\n"]}
@@ -2,10 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isRecordsMergeWithSameKeysAllowed = exports.isRecordsWithErrorsUploadFromMobileAllowed = exports.isRecordsUploadFromMobileAllowed = exports.isRecordsDownloadInMobileAllowed = exports.isVisibleInMobile = exports.isDataAnalystViewNotOwnedRecordsAllowed = exports.isDataEditorViewNotOwnedRecordsAllowed = exports.isSecurityPropEnabled = exports.getSecurity = void 0;
4
4
  const survey_1 = require("../survey");
5
- const getSecurity = (survey) => {
6
- var _a;
7
- return (Object.assign(Object.assign({}, survey_1.surveySecurityDefaults), (_a = survey === null || survey === void 0 ? void 0 : survey.props) === null || _a === void 0 ? void 0 : _a.security));
8
- };
5
+ const getSecurity = (survey) => { var _a; return (Object.assign(Object.assign({}, survey_1.surveySecurityDefaults), (_a = survey === null || survey === void 0 ? void 0 : survey.props) === null || _a === void 0 ? void 0 : _a.security)); };
9
6
  exports.getSecurity = getSecurity;
10
7
  const isSecurityPropEnabled = (prop) => (survey) => !!(0, exports.getSecurity)(survey)[prop];
11
8
  exports.isSecurityPropEnabled = isSecurityPropEnabled;
@@ -1 +1 @@
1
- {"version":3,"file":"surveyGettersSecurity.js","sourceRoot":"","sources":["../../../src/survey/surveys/surveyGettersSecurity.ts"],"names":[],"mappings":";;;AAAA,sCAA8F;AAEvF,MAAM,WAAW,GAAG,CAAC,MAAc,EAAkB,EAAE;;IAAC,OAAA,iCAC1D,+BAAsB,GACtB,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,QAAQ,EAC1B,CAAA;CAAA,CAAA;AAHW,QAAA,WAAW,eAGtB;AAEK,MAAM,qBAAqB,GAChC,CAAC,IAAwB,EAAE,EAAE,CAC7B,CAAC,MAAc,EAAW,EAAE,CAC1B,CAAC,CAAC,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;AAHlB,QAAA,qBAAqB,yBAGH;AAExB,MAAM,sCAAsC,GAAG,CAAC,MAAc,EAAW,EAAE,CAChF,IAAA,6BAAqB,EAAC,2BAAkB,CAAC,oCAAoC,CAAC,CAAC,MAAM,CAAC,CAAA;AAD3E,QAAA,sCAAsC,0CACqC;AAEjF,MAAM,uCAAuC,GAAG,CAAC,MAAc,EAAW,EAAE,CACjF,IAAA,6BAAqB,EAAC,2BAAkB,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,CAAA;AAD5E,QAAA,uCAAuC,2CACqC;AAElF,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAW,EAAE,CAC3D,IAAA,6BAAqB,EAAC,2BAAkB,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AADtD,QAAA,iBAAiB,qBACqC;AAE5D,MAAM,gCAAgC,GAAG,CAAC,MAAc,EAAW,EAAE,CAC1E,IAAA,6BAAqB,EAAC,2BAAkB,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAA;AADnE,QAAA,gCAAgC,oCACmC;AAEzE,MAAM,gCAAgC,GAAG,CAAC,MAAc,EAAW,EAAE,CAC1E,IAAA,6BAAqB,EAAC,2BAAkB,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAA;AADnE,QAAA,gCAAgC,oCACmC;AAEzE,MAAM,0CAA0C,GAAG,CAAC,MAAc,EAAW,EAAE,CACpF,IAAA,6BAAqB,EAAC,2BAAkB,CAAC,sCAAsC,CAAC,CAAC,MAAM,CAAC,CAAA;AAD7E,QAAA,0CAA0C,8CACmC;AAEnF,MAAM,iCAAiC,GAAG,CAAC,MAAc,EAAW,EAAE,CAC3E,IAAA,6BAAqB,EAAC,2BAAkB,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAA;AADpE,QAAA,iCAAiC,qCACmC","sourcesContent":["import { Survey, SurveySecurity, surveySecurityDefaults, SurveySecurityProp } from '../survey'\n\nexport const getSecurity = (survey: Survey): SurveySecurity => ({\n ...surveySecurityDefaults,\n ...survey?.props?.security,\n})\n\nexport const isSecurityPropEnabled =\n (prop: SurveySecurityProp) =>\n (survey: Survey): boolean =>\n !!getSecurity(survey)[prop]\n\nexport const isDataEditorViewNotOwnedRecordsAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.dataEditorViewNotOwnedRecordsAllowed)(survey)\n\nexport const isDataAnalystViewNotOwnedRecordsAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.dataAnalystViewNotOwnedRecordsAllowed)(survey)\n\nexport const isVisibleInMobile = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.visibleInMobile)(survey)\n\nexport const isRecordsDownloadInMobileAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.allowRecordsDownloadInMobile)(survey)\n\nexport const isRecordsUploadFromMobileAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.allowRecordsUploadFromMobile)(survey)\n\nexport const isRecordsWithErrorsUploadFromMobileAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.allowRecordsWithErrorsUploadFromMobile)(survey)\n\nexport const isRecordsMergeWithSameKeysAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.allowRecordsMergeWithSameKeys)(survey)\n"]}
1
+ {"version":3,"file":"surveyGettersSecurity.js","sourceRoot":"","sources":["../../../src/survey/surveys/surveyGettersSecurity.ts"],"names":[],"mappings":";;;AAAA,sCAA8F;AAEvF,MAAM,WAAW,GAAG,CAAC,MAAc,EAAkB,EAAE,kBAAC,iCAC1D,+BAAsB,GACtB,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,QAAQ,EAC1B,GAAA,CAAA;AAHW,QAAA,WAAW,GAAX,WAAW,CAGtB;AAEK,MAAM,qBAAqB,GAChC,CAAC,IAAwB,EAAE,EAAE,CAC7B,CAAC,MAAc,EAAW,EAAE,CAC1B,CAAC,CAAC,IAAA,QAAA,WAAW,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;AAHlB,QAAA,qBAAqB,GAArB,qBAAqB,CAGH;AAExB,MAAM,sCAAsC,GAAG,CAAC,MAAc,EAAW,EAAE,CAChF,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,oCAAoC,CAAC,CAAC,MAAM,CAAC,CAAA;AAD3E,QAAA,sCAAsC,GAAtC,sCAAsC,CACqC;AAEjF,MAAM,uCAAuC,GAAG,CAAC,MAAc,EAAW,EAAE,CACjF,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,CAAA;AAD5E,QAAA,uCAAuC,GAAvC,uCAAuC,CACqC;AAElF,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAW,EAAE,CAC3D,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AADtD,QAAA,iBAAiB,GAAjB,iBAAiB,CACqC;AAE5D,MAAM,gCAAgC,GAAG,CAAC,MAAc,EAAW,EAAE,CAC1E,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAA;AADnE,QAAA,gCAAgC,GAAhC,gCAAgC,CACmC;AAEzE,MAAM,gCAAgC,GAAG,CAAC,MAAc,EAAW,EAAE,CAC1E,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAA;AADnE,QAAA,gCAAgC,GAAhC,gCAAgC,CACmC;AAEzE,MAAM,0CAA0C,GAAG,CAAC,MAAc,EAAW,EAAE,CACpF,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,sCAAsC,CAAC,CAAC,MAAM,CAAC,CAAA;AAD7E,QAAA,0CAA0C,GAA1C,0CAA0C,CACmC;AAEnF,MAAM,iCAAiC,GAAG,CAAC,MAAc,EAAW,EAAE,CAC3E,IAAA,QAAA,qBAAqB,EAAC,2BAAkB,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAA;AADpE,QAAA,iCAAiC,GAAjC,iCAAiC,CACmC","sourcesContent":["import { Survey, SurveySecurity, surveySecurityDefaults, SurveySecurityProp } from '../survey'\n\nexport const getSecurity = (survey: Survey): SurveySecurity => ({\n ...surveySecurityDefaults,\n ...survey?.props?.security,\n})\n\nexport const isSecurityPropEnabled =\n (prop: SurveySecurityProp) =>\n (survey: Survey): boolean =>\n !!getSecurity(survey)[prop]\n\nexport const isDataEditorViewNotOwnedRecordsAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.dataEditorViewNotOwnedRecordsAllowed)(survey)\n\nexport const isDataAnalystViewNotOwnedRecordsAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.dataAnalystViewNotOwnedRecordsAllowed)(survey)\n\nexport const isVisibleInMobile = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.visibleInMobile)(survey)\n\nexport const isRecordsDownloadInMobileAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.allowRecordsDownloadInMobile)(survey)\n\nexport const isRecordsUploadFromMobileAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.allowRecordsUploadFromMobile)(survey)\n\nexport const isRecordsWithErrorsUploadFromMobileAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.allowRecordsWithErrorsUploadFromMobile)(survey)\n\nexport const isRecordsMergeWithSameKeysAllowed = (survey: Survey): boolean =>\n isSecurityPropEnabled(SurveySecurityProp.allowRecordsMergeWithSameKeys)(survey)\n"]}
@@ -49,7 +49,8 @@ const getTaxonomyByUuid = (params) => {
49
49
  };
50
50
  exports.getTaxonomyByUuid = getTaxonomyByUuid;
51
51
  const getCycleKeys = (survey) => {
52
- var _a, _b;
52
+ var _a;
53
+ var _b;
53
54
  const cycles = (_b = (_a = survey.props) === null || _a === void 0 ? void 0 : _a.cycles) !== null && _b !== void 0 ? _b : {};
54
55
  return Object.keys(cycles);
55
56
  };
@@ -67,12 +68,9 @@ const getDefaultCycleKey = (survey) => {
67
68
  : defaultCycleKey;
68
69
  };
69
70
  exports.getDefaultCycleKey = getDefaultCycleKey;
70
- const getSRSs = (survey) => {
71
- var _a, _b, _c, _d, _e;
72
- return (_e = (_b = (_a = survey.props) === null || _a === void 0 ? void 0 : _a.srs) !== null && _b !== void 0 ? _b :
73
- // backwards compatibility with Arena: srs stored in info in UI
74
- (_d = (_c = survey.info) === null || _c === void 0 ? void 0 : _c.props) === null || _d === void 0 ? void 0 : _d.srs) !== null && _e !== void 0 ? _e : [];
75
- };
71
+ const getSRSs = (survey) => { var _a, _b, _c; var _d, _e; return (_e = (_d = (_a = survey.props) === null || _a === void 0 ? void 0 : _a.srs) !== null && _d !== void 0 ? _d :
72
+ // backwards compatibility with Arena: srs stored in info in UI
73
+ (_c = (_b = survey.info) === null || _b === void 0 ? void 0 : _b.props) === null || _c === void 0 ? void 0 : _c.srs) !== null && _e !== void 0 ? _e : []; };
76
74
  exports.getSRSs = getSRSs;
77
75
  const getSRSIndex = (survey) => (0, exports.getSRSs)(survey).reduce((acc, srs) => {
78
76
  acc[srs.code] = srs;
@@ -1 +1 @@
1
- {"version":3,"file":"surveysGetters.js","sourceRoot":"","sources":["../../../src/survey/surveys/surveysGetters.ts"],"names":[],"mappings":"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","sourcesContent":["import { AuthGroupName, UserAuthGroup } from '../../auth'\nimport { Category } from '../../category'\nimport { LanguageCode } from '../../language'\nimport { SRS, SRSIndex } from '../../srs'\nimport { Taxonomy } from '../../taxonomy'\nimport { Arrays, Objects } from '../../utils'\nimport { Survey } from '../survey'\n\nexport const getName = (survey: Survey): string => survey.props.name\n\nexport const getLanguages = (survey: Survey): LanguageCode[] => survey.props.languages\n\nexport const getDefaultLanguage = (survey: Survey): LanguageCode => getLanguages(survey)[0]\n\nconst getMultilangPropValue =\n (prop: 'labels' | 'descriptions' | 'fieldManualLinks') =>\n (langCode?: LanguageCode) =>\n (survey: Survey): string | undefined => {\n const languageCode = langCode ?? getDefaultLanguage(survey)\n return survey.props[prop]?.[languageCode]\n }\nexport const getLabel = getMultilangPropValue('labels')\nexport const getDescription = getMultilangPropValue('descriptions')\nexport const getFieldManualLink = getMultilangPropValue('fieldManualLinks')\n\nexport const getLabelOrName =\n (langCode?: LanguageCode) =>\n (survey: Survey): string => {\n const label = getLabel(langCode)(survey)\n return label ?? getName(survey)\n }\n\nexport const getCategoryByName = (params: { survey: Survey; categoryName: string }): Category | undefined => {\n const { survey, categoryName } = params\n return survey.categories\n ? Object.values(survey.categories).find((category) => category.props.name === categoryName)\n : undefined\n}\n\nexport const getCategoryByUuid = (params: { survey: Survey; categoryUuid: string }): Category | undefined => {\n const { survey, categoryUuid } = params\n return survey.categories?.[categoryUuid]\n}\n\nexport const getTaxonomyByName = (params: { survey: Survey; taxonomyName: string }): Taxonomy | undefined => {\n const { survey, taxonomyName } = params\n return survey.taxonomies\n ? Object.values(survey.taxonomies).find((taxonomy) => taxonomy.props.name === taxonomyName)\n : undefined\n}\n\nexport const getTaxonomyByUuid = (params: { survey: Survey; taxonomyUuid: string }): Taxonomy | undefined => {\n const { survey, taxonomyUuid } = params\n return survey.taxonomies?.[taxonomyUuid]\n}\n\nexport const getCycleKeys = (survey: Survey): string[] => {\n const cycles = survey.props?.cycles ?? {}\n return Object.keys(cycles)\n}\n\nexport const getLastCycleKey = (survey: Survey): string => Arrays.last(getCycleKeys(survey)) as string\n\nexport const isKeepNonApplicableValues = (survey: Survey): boolean => survey?.props?.keepNonApplicableValues === true\n\nexport const getDefaultCycleKey = (survey: Survey) => {\n const defaultCycleKey = survey.props?.defaultCycleKey\n const lastCycleKey = getLastCycleKey(survey)\n return Objects.isEmpty(defaultCycleKey) || Number(defaultCycleKey) > Number(lastCycleKey)\n ? lastCycleKey\n : defaultCycleKey\n}\n\nexport const getSRSs = (survey: Survey): SRS[] =>\n survey.props?.srs ??\n // backwards compatibility with Arena: srs stored in info in UI\n (survey as any).info?.props?.srs ??\n []\n\nexport const getSRSIndex = (survey: Survey): SRSIndex =>\n getSRSs(survey).reduce((acc: SRSIndex, srs) => {\n acc[srs.code] = srs\n return acc\n }, {})\n\nexport const getSRSByCode =\n (code: string) =>\n (survey: Survey): SRS | undefined =>\n getSRSIndex(survey)[code]\n\nexport const getAuthGroups = (survey: Survey): UserAuthGroup[] => survey?.authGroups ?? []\n\nexport const getAuthGroupAdmin = (survey: Survey): UserAuthGroup | undefined =>\n getAuthGroups(survey).find((authGroup) => authGroup.name === AuthGroupName.surveyAdmin)\n"]}
1
+ {"version":3,"file":"surveysGetters.js","sourceRoot":"","sources":["../../../src/survey/surveys/surveysGetters.ts"],"names":[],"mappings":"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","sourcesContent":["import { AuthGroupName, UserAuthGroup } from '../../auth'\nimport { Category } from '../../category'\nimport { LanguageCode } from '../../language'\nimport { SRS, SRSIndex } from '../../srs'\nimport { Taxonomy } from '../../taxonomy'\nimport { Arrays, Objects } from '../../utils'\nimport { Survey } from '../survey'\n\nexport const getName = (survey: Survey): string => survey.props.name\n\nexport const getLanguages = (survey: Survey): LanguageCode[] => survey.props.languages\n\nexport const getDefaultLanguage = (survey: Survey): LanguageCode => getLanguages(survey)[0]\n\nconst getMultilangPropValue =\n (prop: 'labels' | 'descriptions' | 'fieldManualLinks') =>\n (langCode?: LanguageCode) =>\n (survey: Survey): string | undefined => {\n const languageCode = langCode ?? getDefaultLanguage(survey)\n return survey.props[prop]?.[languageCode]\n }\nexport const getLabel = getMultilangPropValue('labels')\nexport const getDescription = getMultilangPropValue('descriptions')\nexport const getFieldManualLink = getMultilangPropValue('fieldManualLinks')\n\nexport const getLabelOrName =\n (langCode?: LanguageCode) =>\n (survey: Survey): string => {\n const label = getLabel(langCode)(survey)\n return label ?? getName(survey)\n }\n\nexport const getCategoryByName = (params: { survey: Survey; categoryName: string }): Category | undefined => {\n const { survey, categoryName } = params\n return survey.categories\n ? Object.values(survey.categories).find((category) => category.props.name === categoryName)\n : undefined\n}\n\nexport const getCategoryByUuid = (params: { survey: Survey; categoryUuid: string }): Category | undefined => {\n const { survey, categoryUuid } = params\n return survey.categories?.[categoryUuid]\n}\n\nexport const getTaxonomyByName = (params: { survey: Survey; taxonomyName: string }): Taxonomy | undefined => {\n const { survey, taxonomyName } = params\n return survey.taxonomies\n ? Object.values(survey.taxonomies).find((taxonomy) => taxonomy.props.name === taxonomyName)\n : undefined\n}\n\nexport const getTaxonomyByUuid = (params: { survey: Survey; taxonomyUuid: string }): Taxonomy | undefined => {\n const { survey, taxonomyUuid } = params\n return survey.taxonomies?.[taxonomyUuid]\n}\n\nexport const getCycleKeys = (survey: Survey): string[] => {\n const cycles = survey.props?.cycles ?? {}\n return Object.keys(cycles)\n}\n\nexport const getLastCycleKey = (survey: Survey): string => Arrays.last(getCycleKeys(survey)) as string\n\nexport const isKeepNonApplicableValues = (survey: Survey): boolean => survey?.props?.keepNonApplicableValues === true\n\nexport const getDefaultCycleKey = (survey: Survey) => {\n const defaultCycleKey = survey.props?.defaultCycleKey\n const lastCycleKey = getLastCycleKey(survey)\n return Objects.isEmpty(defaultCycleKey) || Number(defaultCycleKey) > Number(lastCycleKey)\n ? lastCycleKey\n : defaultCycleKey\n}\n\nexport const getSRSs = (survey: Survey): SRS[] =>\n survey.props?.srs ??\n // backwards compatibility with Arena: srs stored in info in UI\n (survey as any).info?.props?.srs ??\n []\n\nexport const getSRSIndex = (survey: Survey): SRSIndex =>\n getSRSs(survey).reduce((acc: SRSIndex, srs) => {\n acc[srs.code] = srs\n return acc\n }, {})\n\nexport const getSRSByCode =\n (code: string) =>\n (survey: Survey): SRS | undefined =>\n getSRSIndex(survey)[code]\n\nexport const getAuthGroups = (survey: Survey): UserAuthGroup[] => survey?.authGroups ?? []\n\nexport const getAuthGroupAdmin = (survey: Survey): UserAuthGroup | undefined =>\n getAuthGroups(survey).find((authGroup) => authGroup.name === AuthGroupName.surveyAdmin)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"surveysUtils.js","sourceRoot":"","sources":["../../../src/survey/surveys/surveysUtils.ts"],"names":[],"mappings":";;;AAEA,2CAA8D;AAC9D,sCAAwD;AACxD,iDAAqD;AACrD,yCAA6C;AAEtC,MAAM,2BAA2B,GAAG,CAAC,MAI3C,EAAkB,EAAE;;IACnB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,CAAA;IACrD,MAAM,YAAY,GAAG,kBAAQ,CAAC,eAAe,CAAC,UAAU,CAAE,CAAA;IAC1D,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,UAAU,0CAAG,YAAY,CAAC,CAAA;IAClD,IAAI,CAAC,QAAQ,IAAI,CAAC,kBAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,IAAA,2BAAgB,EAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AAClF,CAAC,CAAA;AAZY,QAAA,2BAA2B,+BAYvC;AAEM,MAAM,2CAA2C,GAAG,CAAC,OAAqB,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE;IACvG,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,MAAM,qBAAqB,GAAwB,EAAE,CAAA;IACrD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAA;IACvB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACnC,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,cAAc,CAAA;QACnD,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/C,IAAI,kBAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,kBAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC9E,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC7B,CAAC;YACD,MAAM,eAAe,GAAG,CAAC,6BAAoB,CAAC,UAAU,EAAE,6BAAoB,CAAC,aAAa,CAAC,CAAA;YAC7F,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAmB,EAAE,cAAc,EAAE,EAAE;gBAChF,MAAM,iBAAiB,GAAG,IAAA,mCAAoB,EAAC;oBAC7C,MAAM;oBACN,WAAW,EAAE,kBAAkB;oBAC/B,cAAc;iBACf,CAAC,CAAA;gBACF,GAAG,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAA;gBAC9B,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;QAC3B,CAAC;QACD,qBAAqB,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;IAClD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AA1BY,QAAA,2CAA2C,+CA0BvD","sourcesContent":["import { CategoryItem } from '../../category'\nimport { Dictionary } from '../../common'\nimport { NodeDef, NodeDefCode, NodeDefs } from '../../nodeDef'\nimport { Survey, SurveyDependencyType } from '../survey'\nimport { getNodeDefDependents } from './dependencies'\nimport { getCategoryItems } from './refsData'\n\nexport const getEnumeratingCategoryItems = (params: {\n survey: Survey\n enumerator: NodeDefCode\n parentItemUuid?: string\n}): CategoryItem[] => {\n const { survey, enumerator, parentItemUuid } = params\n const categoryUuid = NodeDefs.getCategoryUuid(enumerator)!\n const category = survey.categories?.[categoryUuid]\n if (!category || (NodeDefs.getParentCodeDefUuid(enumerator) && !parentItemUuid)) {\n return []\n }\n return getCategoryItems({ survey, categoryUuid: category.uuid, parentItemUuid })\n}\n\nexport const findApplicableDependentEnumeratedEntityDefs = (nodeDef: NodeDef<any>) => (survey: Survey) => {\n const result = []\n const visitedNodeDefsByUuid: Dictionary<boolean> = {}\n const stack = [nodeDef]\n while (stack.length > 0) {\n const currentNodeDef = stack.pop()!\n const { uuid: currentNodeDefUuid } = currentNodeDef\n if (!visitedNodeDefsByUuid[currentNodeDefUuid]) {\n if (NodeDefs.isEntity(currentNodeDef) && NodeDefs.isEnumerate(currentNodeDef)) {\n result.push(currentNodeDef)\n }\n const dependencyTypes = [SurveyDependencyType.applicable, SurveyDependencyType.defaultValues]\n const dependents = dependencyTypes.reduce((acc: NodeDef<any>[], dependencyType) => {\n const dependentsPartial = getNodeDefDependents({\n survey,\n nodeDefUuid: currentNodeDefUuid,\n dependencyType,\n })\n acc.push(...dependentsPartial)\n return acc\n }, [])\n stack.push(...dependents)\n }\n visitedNodeDefsByUuid[currentNodeDefUuid] = true\n }\n return result\n}\n"]}
1
+ {"version":3,"file":"surveysUtils.js","sourceRoot":"","sources":["../../../src/survey/surveys/surveysUtils.ts"],"names":[],"mappings":";;;AAEA,2CAA8D;AAC9D,sCAAwD;AACxD,iDAAqD;AACrD,yCAA6C;AAEtC,MAAM,2BAA2B,GAAG,CAAC,MAI3C,EAAkB,EAAE;;IACnB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,CAAA;IACrD,MAAM,YAAY,GAAG,kBAAQ,CAAC,eAAe,CAAC,UAAU,CAAE,CAAA;IAC1D,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,UAAU,0CAAG,YAAY,CAAC,CAAA;IAClD,IAAI,CAAC,QAAQ,IAAI,CAAC,kBAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,IAAA,2BAAgB,EAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AAClF,CAAC,CAAA;AAZY,QAAA,2BAA2B,GAA3B,2BAA2B,CAYvC;AAEM,MAAM,2CAA2C,GAAG,CAAC,OAAqB,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE;IACvG,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,MAAM,qBAAqB,GAAwB,EAAE,CAAA;IACrD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAA;IACvB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACnC,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,cAAc,CAAA;QACnD,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/C,IAAI,kBAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,kBAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC9E,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC7B,CAAC;YACD,MAAM,eAAe,GAAG,CAAC,6BAAoB,CAAC,UAAU,EAAE,6BAAoB,CAAC,aAAa,CAAC,CAAA;YAC7F,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAmB,EAAE,cAAc,EAAE,EAAE;gBAChF,MAAM,iBAAiB,GAAG,IAAA,mCAAoB,EAAC;oBAC7C,MAAM;oBACN,WAAW,EAAE,kBAAkB;oBAC/B,cAAc;iBACf,CAAC,CAAA;gBACF,GAAG,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAA;gBAC9B,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;QAC3B,CAAC;QACD,qBAAqB,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;IAClD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AA1BY,QAAA,2CAA2C,GAA3C,2CAA2C,CA0BvD","sourcesContent":["import { CategoryItem } from '../../category'\nimport { Dictionary } from '../../common'\nimport { NodeDef, NodeDefCode, NodeDefs } from '../../nodeDef'\nimport { Survey, SurveyDependencyType } from '../survey'\nimport { getNodeDefDependents } from './dependencies'\nimport { getCategoryItems } from './refsData'\n\nexport const getEnumeratingCategoryItems = (params: {\n survey: Survey\n enumerator: NodeDefCode\n parentItemUuid?: string\n}): CategoryItem[] => {\n const { survey, enumerator, parentItemUuid } = params\n const categoryUuid = NodeDefs.getCategoryUuid(enumerator)!\n const category = survey.categories?.[categoryUuid]\n if (!category || (NodeDefs.getParentCodeDefUuid(enumerator) && !parentItemUuid)) {\n return []\n }\n return getCategoryItems({ survey, categoryUuid: category.uuid, parentItemUuid })\n}\n\nexport const findApplicableDependentEnumeratedEntityDefs = (nodeDef: NodeDef<any>) => (survey: Survey) => {\n const result = []\n const visitedNodeDefsByUuid: Dictionary<boolean> = {}\n const stack = [nodeDef]\n while (stack.length > 0) {\n const currentNodeDef = stack.pop()!\n const { uuid: currentNodeDefUuid } = currentNodeDef\n if (!visitedNodeDefsByUuid[currentNodeDefUuid]) {\n if (NodeDefs.isEntity(currentNodeDef) && NodeDefs.isEnumerate(currentNodeDef)) {\n result.push(currentNodeDef)\n }\n const dependencyTypes = [SurveyDependencyType.applicable, SurveyDependencyType.defaultValues]\n const dependents = dependencyTypes.reduce((acc: NodeDef<any>[], dependencyType) => {\n const dependentsPartial = getNodeDefDependents({\n survey,\n nodeDefUuid: currentNodeDefUuid,\n dependencyType,\n })\n acc.push(...dependentsPartial)\n return acc\n }, [])\n stack.push(...dependents)\n }\n visitedNodeDefsByUuid[currentNodeDefUuid] = true\n }\n return result\n}\n"]}
@@ -1,15 +1,21 @@
1
1
  import { Taxon } from './taxon';
2
2
  import { VernacularName } from './taxonVernacularName';
3
+ declare const getCode: (taxon: Taxon) => string;
4
+ declare const getScientificName: (taxon: Taxon) => string;
5
+ declare const getVernacularNameByUuid: (vernacularNameUuid: string) => (taxon: Taxon) => VernacularName | undefined;
6
+ declare const getVernacularNameAndLang: (vernacularNameUuid: string) => (taxon: Taxon) => {
7
+ vernacularName: string;
8
+ vernacularLang: string | undefined;
9
+ } | {
10
+ vernacularName?: undefined;
11
+ vernacularLang?: undefined;
12
+ };
13
+ declare const isUnknownOrUnlisted: (taxon: Taxon) => boolean;
3
14
  export declare const Taxa: {
4
- getCode: (taxon: Taxon) => string;
5
- getScientificName: (taxon: Taxon) => string;
6
- getVernacularNameByUuid: (vernacularNameUuid: string) => (taxon: Taxon) => VernacularName | undefined;
7
- getVernacularNameAndLang: (vernacularNameUuid: string) => (taxon: Taxon) => {
8
- vernacularName: string;
9
- vernacularLang: string | undefined;
10
- } | {
11
- vernacularName?: undefined;
12
- vernacularLang?: undefined;
13
- };
14
- isUnknownOrUnlisted: (taxon: Taxon) => boolean;
15
+ getCode: typeof getCode;
16
+ getScientificName: typeof getScientificName;
17
+ getVernacularNameByUuid: typeof getVernacularNameByUuid;
18
+ getVernacularNameAndLang: typeof getVernacularNameAndLang;
19
+ isUnknownOrUnlisted: typeof isUnknownOrUnlisted;
15
20
  };
21
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"taxa.js","sourceRoot":"","sources":["../../src/taxonomy/taxa.ts"],"names":[],"mappings":";;;AAGA,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAA;AAClD,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAA;AACtE,MAAM,uBAAuB,GAC3B,CAAC,kBAA0B,EAAE,EAAE,CAC/B,CAAC,KAAY,EAA8B,EAAE;;IAC3C,MAAM,qBAAqB,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,mCAAI,EAAE,CAAA;IAC1D,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;IACjE,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE,CAAC;QACvD,KAAK,MAAM,cAAc,IAAI,mBAAmB,EAAE,CAAC;YACjD,IAAI,cAAc,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC/C,OAAO,cAAc,CAAA;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAEH,MAAM,qBAAqB,GAAG,CAAC,cAA8B,EAAsB,EAAE,WAAC,OAAA,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,0CAAE,IAAI,CAAA,EAAA,CAAA;AACjH,MAAM,qBAAqB,GAAG,CAAC,cAA8B,EAAsB,EAAE,WAAC,OAAA,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,0CAAE,IAAI,CAAA,EAAA,CAAA;AAEjH,MAAM,wBAAwB,GAAG,CAAC,kBAA0B,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE;IAChF,IAAI,cAAc,EAAE,cAAc,CAAA;IAClC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAA;IAC5E,IAAI,iBAAiB,EAAE,CAAC;QACtB,cAAc,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;QACzD,cAAc,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;IAC3D,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;QACrC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;IACvC,CAAC;IACD,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACjE,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,KAAY,EAAW,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AAEjF,QAAA,IAAI,GAAG;IAClB,OAAO;IACP,iBAAiB;IACjB,uBAAuB;IACvB,wBAAwB;IACxB,mBAAmB;CACpB,CAAA","sourcesContent":["import { Taxon } from './taxon'\nimport { VernacularName } from './taxonVernacularName'\n\nconst getCode = (taxon: Taxon) => taxon.props.code\nconst getScientificName = (taxon: Taxon) => taxon.props.scientificName\nconst getVernacularNameByUuid =\n (vernacularNameUuid: string) =>\n (taxon: Taxon): VernacularName | undefined => {\n const vernacularNamesByLang = taxon?.vernacularNames ?? {}\n const vernacularNameArrays = Object.values(vernacularNamesByLang)\n for (const vernacularNameArray of vernacularNameArrays) {\n for (const vernacularName of vernacularNameArray) {\n if (vernacularName.uuid === vernacularNameUuid) {\n return vernacularName\n }\n }\n }\n return undefined\n }\n\nconst getVernacularNameName = (vernacularName: VernacularName): string | undefined => vernacularName?.props?.name\nconst getVernacularNameLang = (vernacularName: VernacularName): string | undefined => vernacularName?.props?.lang\n\nconst getVernacularNameAndLang = (vernacularNameUuid: string) => (taxon: Taxon) => {\n let vernacularName, vernacularLang\n const vernacularNameObj = getVernacularNameByUuid(vernacularNameUuid)(taxon)\n if (vernacularNameObj) {\n vernacularName = getVernacularNameName(vernacularNameObj)\n vernacularLang = getVernacularNameLang(vernacularNameObj)\n } else {\n vernacularName = taxon.vernacularName\n vernacularLang = taxon.vernacularLang\n }\n return vernacularName ? { vernacularName, vernacularLang } : {}\n}\n\nconst isUnknownOrUnlisted = (taxon: Taxon): boolean => ['UNK', 'UNL'].includes(getCode(taxon))\n\nexport const Taxa = {\n getCode,\n getScientificName,\n getVernacularNameByUuid,\n getVernacularNameAndLang,\n isUnknownOrUnlisted,\n}\n"]}
1
+ {"version":3,"file":"taxa.js","sourceRoot":"","sources":["../../src/taxonomy/taxa.ts"],"names":[],"mappings":";;;AAGA,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAA;AAClD,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAA;AACtE,MAAM,uBAAuB,GAC3B,CAAC,kBAA0B,EAAE,EAAE,CAC/B,CAAC,KAAY,EAA8B,EAAE;;IAC3C,MAAM,qBAAqB,SAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,mCAAI,EAAE,CAAA;IAC1D,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;IACjE,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE,CAAC;QACvD,KAAK,MAAM,cAAc,IAAI,mBAAmB,EAAE,CAAC;YACjD,IAAI,cAAc,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC/C,OAAO,cAAc,CAAA;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAEH,MAAM,qBAAqB,GAAG,CAAC,cAA8B,EAAsB,EAAE,kBAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,0CAAE,IAAI,GAAA,CAAA;AACjH,MAAM,qBAAqB,GAAG,CAAC,cAA8B,EAAsB,EAAE,kBAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,0CAAE,IAAI,GAAA,CAAA;AAEjH,MAAM,wBAAwB,GAAG,CAAC,kBAA0B,EAAE,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE;IAChF,IAAI,cAAc,EAAE,cAAc,CAAA;IAClC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAA;IAC5E,IAAI,iBAAiB,EAAE,CAAC;QACtB,cAAc,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;QACzD,cAAc,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;IAC3D,CAAC;SAAM,CAAC;QACN,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;QACrC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;IACvC,CAAC;IACD,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACjE,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,KAAY,EAAW,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AAEjF,QAAA,IAAI,GAAG;IAClB,OAAO;IACP,iBAAiB;IACjB,uBAAuB;IACvB,wBAAwB;IACxB,mBAAmB;CACpB,CAAA","sourcesContent":["import { Taxon } from './taxon'\nimport { VernacularName } from './taxonVernacularName'\n\nconst getCode = (taxon: Taxon) => taxon.props.code\nconst getScientificName = (taxon: Taxon) => taxon.props.scientificName\nconst getVernacularNameByUuid =\n (vernacularNameUuid: string) =>\n (taxon: Taxon): VernacularName | undefined => {\n const vernacularNamesByLang = taxon?.vernacularNames ?? {}\n const vernacularNameArrays = Object.values(vernacularNamesByLang)\n for (const vernacularNameArray of vernacularNameArrays) {\n for (const vernacularName of vernacularNameArray) {\n if (vernacularName.uuid === vernacularNameUuid) {\n return vernacularName\n }\n }\n }\n return undefined\n }\n\nconst getVernacularNameName = (vernacularName: VernacularName): string | undefined => vernacularName?.props?.name\nconst getVernacularNameLang = (vernacularName: VernacularName): string | undefined => vernacularName?.props?.lang\n\nconst getVernacularNameAndLang = (vernacularNameUuid: string) => (taxon: Taxon) => {\n let vernacularName, vernacularLang\n const vernacularNameObj = getVernacularNameByUuid(vernacularNameUuid)(taxon)\n if (vernacularNameObj) {\n vernacularName = getVernacularNameName(vernacularNameObj)\n vernacularLang = getVernacularNameLang(vernacularNameObj)\n } else {\n vernacularName = taxon.vernacularName\n vernacularLang = taxon.vernacularLang\n }\n return vernacularName ? { vernacularName, vernacularLang } : {}\n}\n\nconst isUnknownOrUnlisted = (taxon: Taxon): boolean => ['UNK', 'UNL'].includes(getCode(taxon))\n\nexport const Taxa = {\n getCode,\n getScientificName,\n getVernacularNameByUuid,\n getVernacularNameAndLang,\n isUnknownOrUnlisted,\n}\n"]}
@@ -1,8 +1,10 @@
1
1
  import { Survey } from '../survey';
2
2
  import { Taxon } from './taxon';
3
+ declare const generateTaxon: (params: {
4
+ survey: Survey;
5
+ taxonomyUuid: string;
6
+ }) => Taxon | null;
3
7
  export declare const TaxonGenerator: {
4
- generateTaxon: (params: {
5
- survey: Survey;
6
- taxonomyUuid: string;
7
- }) => Taxon | null;
8
+ generateTaxon: typeof generateTaxon;
8
9
  };
10
+ export {};
@@ -1,7 +1,11 @@
1
1
  import { ExtraPropDef } from '../extraProp';
2
2
  import { Taxonomy } from './taxonomy';
3
+ declare const getExtraPropDefs: (taxonomy: Taxonomy) => import("..").ExtraPropDefs | undefined;
4
+ declare const getExtraPropDefNames: (taxonomy: Taxonomy) => string[];
5
+ declare const getExtraPropDefByName: (name: string) => (taxonomy: Taxonomy) => ExtraPropDef | undefined;
3
6
  export declare const Taxonomies: {
4
- getExtraPropDefs: (taxonomy: Taxonomy) => import("..").ExtraPropDefs | undefined;
5
- getExtraPropDefNames: (taxonomy: Taxonomy) => string[];
6
- getExtraPropDefByName: (name: string) => (taxonomy: Taxonomy) => ExtraPropDef | undefined;
7
+ getExtraPropDefs: typeof getExtraPropDefs;
8
+ getExtraPropDefNames: typeof getExtraPropDefNames;
9
+ getExtraPropDefByName: typeof getExtraPropDefByName;
7
10
  };
11
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"taxonomies.js","sourceRoot":"","sources":["../../src/taxonomy/taxonomies.ts"],"names":[],"mappings":";;;AAGA,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAA;AAE9E,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAY,EAAE,WAAC,OAAA,MAAM,CAAC,IAAI,CAAC,MAAA,gBAAgB,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAA;AAE5G,MAAM,qBAAqB,GACzB,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,QAAkB,EAA4B,EAAE,WAC/C,OAAA,MAAA,gBAAgB,CAAC,QAAQ,CAAC,0CAAG,IAAI,CAAC,CAAA,EAAA,CAAA;AAEzB,QAAA,UAAU,GAAG;IACxB,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;CACtB,CAAA","sourcesContent":["import { ExtraPropDef } from '../extraProp'\nimport { Taxonomy } from './taxonomy'\n\nconst getExtraPropDefs = (taxonomy: Taxonomy) => taxonomy.props.extraPropsDefs\n\nconst getExtraPropDefNames = (taxonomy: Taxonomy): string[] => Object.keys(getExtraPropDefs(taxonomy) ?? {})\n\nconst getExtraPropDefByName =\n (name: string) =>\n (taxonomy: Taxonomy): ExtraPropDef | undefined =>\n getExtraPropDefs(taxonomy)?.[name]\n\nexport const Taxonomies = {\n getExtraPropDefs,\n getExtraPropDefNames,\n getExtraPropDefByName,\n}\n"]}
1
+ {"version":3,"file":"taxonomies.js","sourceRoot":"","sources":["../../src/taxonomy/taxonomies.ts"],"names":[],"mappings":";;;AAGA,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAA;AAE9E,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAY,EAAE,kBAAC,MAAM,CAAC,IAAI,OAAC,gBAAgB,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC,GAAA,CAAA;AAE5G,MAAM,qBAAqB,GACzB,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,QAAkB,EAA4B,EAAE,kBAC/C,MAAA,gBAAgB,CAAC,QAAQ,CAAC,0CAAG,IAAI,CAAC,GAAA,CAAA;AAEzB,QAAA,UAAU,GAAG;IACxB,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;CACtB,CAAA","sourcesContent":["import { ExtraPropDef } from '../extraProp'\nimport { Taxonomy } from './taxonomy'\n\nconst getExtraPropDefs = (taxonomy: Taxonomy) => taxonomy.props.extraPropsDefs\n\nconst getExtraPropDefNames = (taxonomy: Taxonomy): string[] => Object.keys(getExtraPropDefs(taxonomy) ?? {})\n\nconst getExtraPropDefByName =\n (name: string) =>\n (taxonomy: Taxonomy): ExtraPropDef | undefined =>\n getExtraPropDefs(taxonomy)?.[name]\n\nexport const Taxonomies = {\n getExtraPropDefs,\n getExtraPropDefNames,\n getExtraPropDefByName,\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"attributeBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/attributeBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node, NodeFactory, NodeValueCode, NodeValueTaxon } from '../../../node'\nimport { NodeMeta } from '../../../node/node'\nimport { NodeDef, NodeDefCode, NodeDefTaxon, NodeDefType } from '../../../nodeDef'\nimport { Record, Records } from '../../../record'\nimport { Survey, Surveys } from '../../../survey'\nimport { NodeBuilder } from './nodeBuilder'\n\nexport class AttributeBuilder extends NodeBuilder {\n private readonly value: any\n\n constructor(nodeDefName: string, value: any = null) {\n super(nodeDefName)\n this.value = value\n }\n\n private buildCodeValue(params: { survey: Survey; nodeDef: NodeDefCode }) {\n const { survey, nodeDef } = params\n\n if (this.value.itemUuid) {\n // value is already a NodeValueCode object\n return this.value\n }\n\n const code = this.value\n const item = Surveys.getCategoryItemByCodePaths({\n survey,\n categoryUuid: nodeDef.props.categoryUuid,\n codePaths: [code],\n })\n if (!item) {\n throw new Error(`could not find category item with code: ${code}`)\n }\n\n return {\n itemUuid: item.uuid,\n code: item.props.code,\n } as NodeValueCode\n }\n\n private buildTaxonValue(params: { survey: Survey; nodeDef: NodeDefTaxon }) {\n const { survey, nodeDef } = params\n\n if (this.value.taxonUuid) {\n // value is already a NodeValueTaxon object\n return this.value\n }\n const taxonCode = this.value.code || this.value\n const taxonomyUuid = nodeDef.props.taxonomyUuid\n\n const taxon = Surveys.getTaxonByCode({ survey, taxonomyUuid, taxonCode })\n if (!taxon) {\n throw new Error(`could not find taxon with code: ${JSON.stringify(taxonCode)}`)\n }\n\n return {\n taxonUuid: taxon.uuid,\n code: taxon.props.code,\n scientificName: taxon.props.scientificName,\n } as NodeValueTaxon\n }\n\n private buildValue(params: { survey: Survey }) {\n const { survey } = params\n const nodeDef = this.getNodeDef({ survey })\n\n if (this.value === null || this.value === undefined) return null\n\n if (nodeDef.type === NodeDefType.code) {\n return this.buildCodeValue({ survey, nodeDef: nodeDef as NodeDefCode })\n }\n if (nodeDef.type === NodeDefType.taxon) {\n return this.buildTaxonValue({ survey, nodeDef: nodeDef as NodeDefTaxon })\n }\n return this.value\n }\n\n private buildMeta(params: { nodeDef: NodeDef<any>; record: Record; parentNode?: Node }): NodeMeta {\n const { nodeDef, record, parentNode } = params\n\n const meta: NodeMeta = {}\n\n if (nodeDef.type === NodeDefType.code) {\n const nodeDefCode = nodeDef as NodeDefCode\n if (nodeDefCode.props.parentCodeDefUuid && parentNode) {\n const parentCodeAttribute = Records.getParentCodeAttribute({ parentNode, nodeDef: nodeDefCode })(record)\n if (!parentCodeAttribute) throw new Error('Could not find the parent code attibute')\n return { ...meta, hCode: [parentCodeAttribute.uuid] }\n }\n }\n\n return meta\n }\n\n build(params: { survey: Survey; record: Record; parentNode?: Node }): Record {\n const { survey, record, parentNode } = params\n\n const nodeDef = this.getNodeDef({ survey })\n\n const value = this.buildValue({ survey })\n\n const attribute = NodeFactory.createInstance({\n nodeDefUuid: nodeDef.uuid,\n parentNode,\n recordUuid: record.uuid,\n value,\n })\n attribute.meta = {\n ...attribute.meta,\n ...this.buildMeta({ nodeDef, parentNode, record }),\n }\n return Records.addNode(attribute)(record)\n }\n}\n"]}
1
+ {"version":3,"file":"attributeBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/attributeBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node, NodeFactory, NodeValueCode, NodeValueTaxon } from '../../../node'\nimport { NodeMeta } from '../../../node/node'\nimport { NodeDef, NodeDefCode, NodeDefTaxon, NodeDefType } from '../../../nodeDef'\nimport { Record, Records } from '../../../record'\nimport { Survey, Surveys } from '../../../survey'\nimport { NodeBuilder } from './nodeBuilder'\n\nexport class AttributeBuilder extends NodeBuilder {\n private readonly value: any\n\n constructor(nodeDefName: string, value: any = null) {\n super(nodeDefName)\n this.value = value\n }\n\n private buildCodeValue(params: { survey: Survey; nodeDef: NodeDefCode }) {\n const { survey, nodeDef } = params\n\n if (this.value.itemUuid) {\n // value is already a NodeValueCode object\n return this.value\n }\n\n const code = this.value\n const item = Surveys.getCategoryItemByCodePaths({\n survey,\n categoryUuid: nodeDef.props.categoryUuid,\n codePaths: [code],\n })\n if (!item) {\n throw new Error(`could not find category item with code: ${code}`)\n }\n\n return {\n itemUuid: item.uuid,\n code: item.props.code,\n } as NodeValueCode\n }\n\n private buildTaxonValue(params: { survey: Survey; nodeDef: NodeDefTaxon }) {\n const { survey, nodeDef } = params\n\n if (this.value.taxonUuid) {\n // value is already a NodeValueTaxon object\n return this.value\n }\n const taxonCode = this.value.code || this.value\n const taxonomyUuid = nodeDef.props.taxonomyUuid\n\n const taxon = Surveys.getTaxonByCode({ survey, taxonomyUuid, taxonCode })\n if (!taxon) {\n throw new Error(`could not find taxon with code: ${JSON.stringify(taxonCode)}`)\n }\n\n return {\n taxonUuid: taxon.uuid,\n code: taxon.props.code,\n scientificName: taxon.props.scientificName,\n } as NodeValueTaxon\n }\n\n private buildValue(params: { survey: Survey }) {\n const { survey } = params\n const nodeDef = this.getNodeDef({ survey })\n\n if (this.value === null || this.value === undefined) return null\n\n if (nodeDef.type === NodeDefType.code) {\n return this.buildCodeValue({ survey, nodeDef: nodeDef as NodeDefCode })\n }\n if (nodeDef.type === NodeDefType.taxon) {\n return this.buildTaxonValue({ survey, nodeDef: nodeDef as NodeDefTaxon })\n }\n return this.value\n }\n\n private buildMeta(params: { nodeDef: NodeDef<any>; record: Record; parentNode?: Node }): NodeMeta {\n const { nodeDef, record, parentNode } = params\n\n const meta: NodeMeta = {}\n\n if (nodeDef.type === NodeDefType.code) {\n const nodeDefCode = nodeDef as NodeDefCode\n if (nodeDefCode.props.parentCodeDefUuid && parentNode) {\n const parentCodeAttribute = Records.getParentCodeAttribute({ parentNode, nodeDef: nodeDefCode })(record)\n if (!parentCodeAttribute) throw new Error('Could not find the parent code attibute')\n return { ...meta, hCode: [parentCodeAttribute.uuid] }\n }\n }\n\n return meta\n }\n\n build(params: { survey: Survey; record: Record; parentNode?: Node }): Record {\n const { survey, record, parentNode } = params\n\n const nodeDef = this.getNodeDef({ survey })\n\n const value = this.buildValue({ survey })\n\n const attribute = NodeFactory.createInstance({\n nodeDefUuid: nodeDef.uuid,\n parentNode,\n recordUuid: record.uuid,\n value,\n })\n attribute.meta = {\n ...attribute.meta,\n ...this.buildMeta({ nodeDef, parentNode, record }),\n }\n return Records.addNode(attribute)(record)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"entityBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/entityBuilder.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AACjD,4CAAiD;AAEjD,+CAA2C;AAE3C,MAAa,aAAc,SAAQ,yBAAW;IAG5C,YAAY,WAAmB,EAAE,GAAG,aAA4B;QAC9D,KAAK,CAAC,WAAW,CAAC,CAAA;QAHH,kBAAa,GAAkB,EAAE,CAAA;QAIhD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,MAA6D;QACjE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;QAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAE3C,MAAM,MAAM,GAAG,kBAAW,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAE7G,IAAI,aAAa,GAAG,gBAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;QAEnD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAC1C,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;QAC3F,CAAC,CAAC,CAAA;QAEF,OAAO,aAAa,CAAA;IACtB,CAAC;CACF;AAvBD,sCAuBC","sourcesContent":["import { Node, NodeFactory } from '../../../node'\nimport { Record, Records } from '../../../record'\nimport { Survey } from '../../../survey'\nimport { NodeBuilder } from './nodeBuilder'\n\nexport class EntityBuilder extends NodeBuilder {\n private readonly childBuilders: NodeBuilder[] = []\n\n constructor(nodeDefName: string, ...childBuilders: NodeBuilder[]) {\n super(nodeDefName)\n this.childBuilders = childBuilders\n }\n\n build(params: { survey: Survey; record: Record; parentNode?: Node }): Record {\n const { survey, record, parentNode } = params\n\n const nodeDef = this.getNodeDef({ survey })\n\n const entity = NodeFactory.createInstance({ nodeDefUuid: nodeDef.uuid, recordUuid: record.uuid, parentNode })\n\n let recordUpdated = Records.addNode(entity)(record)\n\n this.childBuilders.forEach((childBuilder) => {\n recordUpdated = childBuilder.build({ survey, record: recordUpdated, parentNode: entity })\n })\n\n return recordUpdated\n }\n}\n"]}
1
+ {"version":3,"file":"entityBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/entityBuilder.ts"],"names":[],"mappings":";;;AAAA,wCAAiD;AACjD,4CAAiD;AAEjD,+CAA2C;AAE3C,mBAA2B,SAAQ,yBAAW;IAG5C,YAAY,WAAmB,EAAE,GAAG,aAA4B;QAC9D,KAAK,CAAC,WAAW,CAAC,CAAA;QAHH,kBAAa,GAAkB,EAAE,CAAA;QAIhD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,MAA6D;QACjE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;QAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAE3C,MAAM,MAAM,GAAG,kBAAW,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAE7G,IAAI,aAAa,GAAG,gBAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;QAEnD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAC1C,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;QAC3F,CAAC,CAAC,CAAA;QAEF,OAAO,aAAa,CAAA;IACtB,CAAC;CACF","sourcesContent":["import { Node, NodeFactory } from '../../../node'\nimport { Record, Records } from '../../../record'\nimport { Survey } from '../../../survey'\nimport { NodeBuilder } from './nodeBuilder'\n\nexport class EntityBuilder extends NodeBuilder {\n private readonly childBuilders: NodeBuilder[] = []\n\n constructor(nodeDefName: string, ...childBuilders: NodeBuilder[]) {\n super(nodeDefName)\n this.childBuilders = childBuilders\n }\n\n build(params: { survey: Survey; record: Record; parentNode?: Node }): Record {\n const { survey, record, parentNode } = params\n\n const nodeDef = this.getNodeDef({ survey })\n\n const entity = NodeFactory.createInstance({ nodeDefUuid: nodeDef.uuid, recordUuid: record.uuid, parentNode })\n\n let recordUpdated = Records.addNode(entity)(record)\n\n this.childBuilders.forEach((childBuilder) => {\n recordUpdated = childBuilder.build({ survey, record: recordUpdated, parentNode: entity })\n })\n\n return recordUpdated\n }\n}\n"]}
@@ -2,7 +2,9 @@ import { AttributeBuilder } from './attributeBuilder';
2
2
  import { EntityBuilder } from './entityBuilder';
3
3
  import { NodeBuilder } from './nodeBuilder';
4
4
  export { RecordBuilder } from './recordBuilder';
5
+ declare const attribute: (nodeDefName: string, value?: any) => AttributeBuilder;
6
+ declare const entity: (nodeDefName: string, ...childBuilders: NodeBuilder[]) => EntityBuilder;
5
7
  export declare const RecordNodeBuilders: {
6
- attribute: (nodeDefName: string, value?: any) => AttributeBuilder;
7
- entity: (nodeDefName: string, ...childBuilders: NodeBuilder[]) => EntityBuilder;
8
+ attribute: typeof attribute;
9
+ entity: typeof entity;
8
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/index.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,mDAA+C;AAG/C,iDAA+C;AAAtC,8GAAA,aAAa,OAAA;AAEtB,MAAM,SAAS,GAAG,CAAC,WAAmB,EAAE,QAAa,IAAI,EAAoB,EAAE,CAAC,IAAI,mCAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AAExH,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,GAAG,aAA4B,EAAiB,EAAE,CACrF,IAAI,6BAAa,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,CAAA;AAErC,QAAA,kBAAkB,GAAG;IAChC,SAAS;IACT,MAAM;CACP,CAAA","sourcesContent":["import { AttributeBuilder } from './attributeBuilder'\nimport { EntityBuilder } from './entityBuilder'\nimport { NodeBuilder } from './nodeBuilder'\n\nexport { RecordBuilder } from './recordBuilder'\n\nconst attribute = (nodeDefName: string, value: any = null): AttributeBuilder => new AttributeBuilder(nodeDefName, value)\n\nconst entity = (nodeDefName: string, ...childBuilders: NodeBuilder[]): EntityBuilder =>\n new EntityBuilder(nodeDefName, ...childBuilders)\n\nexport const RecordNodeBuilders = {\n attribute,\n entity,\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/index.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,mDAA+C;AAG/C,iDAA+C;AAAtC,8GAAA,aAAa,OAAA;AAEtB,MAAM,SAAS,GAAG,CAAC,WAAmB,EAAE,KAAK,GAAQ,IAAI,EAAoB,EAAE,CAAC,IAAI,mCAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AAExH,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,GAAG,aAA4B,EAAiB,EAAE,CACrF,IAAI,6BAAa,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,CAAA;AAErC,QAAA,kBAAkB,GAAG;IAChC,SAAS;IACT,MAAM;CACP,CAAA","sourcesContent":["import { AttributeBuilder } from './attributeBuilder'\nimport { EntityBuilder } from './entityBuilder'\nimport { NodeBuilder } from './nodeBuilder'\n\nexport { RecordBuilder } from './recordBuilder'\n\nconst attribute = (nodeDefName: string, value: any = null): AttributeBuilder => new AttributeBuilder(nodeDefName, value)\n\nconst entity = (nodeDefName: string, ...childBuilders: NodeBuilder[]): EntityBuilder =>\n new EntityBuilder(nodeDefName, ...childBuilders)\n\nexport const RecordNodeBuilders = {\n attribute,\n entity,\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"nodeBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/nodeBuilder.ts"],"names":[],"mappings":";;;AAKA,MAAsB,WAAW;IAG/B,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAES,UAAU,CAAC,MAA0B;;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,CAAA;QAE1G,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,WAAW,sBAAsB,CAAC,CAAA;QAC/E,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CAGF;AAlBD,kCAkBC","sourcesContent":["import { Node } from '../../../node'\nimport { NodeDef, NodeDefProps, NodeDefType } from '../../../nodeDef'\nimport { Record } from '../../../record'\nimport { Survey } from '../../../survey'\n\nexport abstract class NodeBuilder {\n protected nodeDefName: string\n\n constructor(nodeDefName: string) {\n this.nodeDefName = nodeDefName\n }\n\n protected getNodeDef(params: { survey: Survey }): NodeDef<NodeDefType, NodeDefProps> {\n const nodeDef = Object.values(params.survey.nodeDefs ?? {}).find((n) => n.props.name === this.nodeDefName)\n\n if (!nodeDef) {\n throw new Error(`Node def with name ${this.nodeDefName} not found in survey`)\n }\n\n return nodeDef\n }\n\n abstract build(params: { survey: Survey; record: Record; parentNode?: Node }): Record\n}\n"]}
1
+ {"version":3,"file":"nodeBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/nodeBuilder.ts"],"names":[],"mappings":";;;AAKA;IAGE,YAAY,WAAmB;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAES,UAAU,CAAC,MAA0B;;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,OAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,CAAA;QAE1G,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,WAAW,sBAAsB,CAAC,CAAA;QAC/E,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CAGF","sourcesContent":["import { Node } from '../../../node'\nimport { NodeDef, NodeDefProps, NodeDefType } from '../../../nodeDef'\nimport { Record } from '../../../record'\nimport { Survey } from '../../../survey'\n\nexport abstract class NodeBuilder {\n protected nodeDefName: string\n\n constructor(nodeDefName: string) {\n this.nodeDefName = nodeDefName\n }\n\n protected getNodeDef(params: { survey: Survey }): NodeDef<NodeDefType, NodeDefProps> {\n const nodeDef = Object.values(params.survey.nodeDefs ?? {}).find((n) => n.props.name === this.nodeDefName)\n\n if (!nodeDef) {\n throw new Error(`Node def with name ${this.nodeDefName} not found in survey`)\n }\n\n return nodeDef\n }\n\n abstract build(params: { survey: Survey; record: Record; parentNode?: Node }): Record\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"recordBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/recordBuilder.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAKvD,MAAa,aAAa;IAKxB,YAAY,IAAU,EAAE,MAAc,EAAE,iBAAgC;QACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;IAC5C,CAAC;IAED,KAAK;QACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAC7B,MAAM,MAAM,GAAG,sBAAa,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9E,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACzD,CAAC;CACF;AAhBD,sCAgBC","sourcesContent":["import { Record, RecordFactory } from '../../../record'\nimport { User } from '../../../auth'\nimport { Survey } from '../../../survey'\nimport { EntityBuilder } from './entityBuilder'\n\nexport class RecordBuilder {\n private readonly survey: Survey\n private readonly user: User\n private readonly rootEntityBuilder: EntityBuilder\n\n constructor(user: User, survey: Survey, rootEntityBuilder: EntityBuilder) {\n this.survey = survey\n this.user = user\n this.rootEntityBuilder = rootEntityBuilder\n }\n\n build(): Record {\n const { survey, user } = this\n const record = RecordFactory.createInstance({ surveyUuid: survey.uuid, user })\n return this.rootEntityBuilder.build({ survey, record })\n }\n}\n"]}
1
+ {"version":3,"file":"recordBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/recordBuilder/recordBuilder.ts"],"names":[],"mappings":";;;AAAA,4CAAuD;AAKvD;IAKE,YAAY,IAAU,EAAE,MAAc,EAAE,iBAAgC;QACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;IAC5C,CAAC;IAED,KAAK;QACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAC7B,MAAM,MAAM,GAAG,sBAAa,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9E,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACzD,CAAC;CACF","sourcesContent":["import { Record, RecordFactory } from '../../../record'\nimport { User } from '../../../auth'\nimport { Survey } from '../../../survey'\nimport { EntityBuilder } from './entityBuilder'\n\nexport class RecordBuilder {\n private readonly survey: Survey\n private readonly user: User\n private readonly rootEntityBuilder: EntityBuilder\n\n constructor(user: User, survey: Survey, rootEntityBuilder: EntityBuilder) {\n this.survey = survey\n this.user = user\n this.rootEntityBuilder = rootEntityBuilder\n }\n\n build(): Record {\n const { survey, user } = this\n const record = RecordFactory.createInstance({ surveyUuid: survey.uuid, user })\n return this.rootEntityBuilder.build({ survey, record })\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"categoryBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/surveyBuilder/categoryBuilder.ts"],"names":[],"mappings":";;;AAAA,gDAAgH;AAKhH,MAAa,eAAe;IAM1B,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;IACvB,CAAC;IAED,MAAM,CAAC,GAAG,UAAoB;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAG,YAAmC;QAC1C,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU,CAAC,cAA6B;QACtC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK;QACH,MAAM,QAAQ,GAAG,0BAAe,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAC/G,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAA8B,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBACpF,GAAG,CAAC,KAAK,CAAC,GAAG,+BAAoB,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;gBAClG,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;YACN,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;QAC1B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QAErF,OAAO;YACL,QAAQ;YACR,KAAK;SACN,CAAA;IACH,CAAC;CACF;AA5CD,0CA4CC","sourcesContent":["import { Category, CategoryFactory, CategoryItem, CategoryLevel, CategoryLevelFactory } from '../../../category'\nimport { Dictionary } from '../../../common'\nimport { ExtraPropDefs } from '../../../extraProp'\nimport { CategoryItemBuilder } from './categoryItemBuilder'\n\nexport class CategoryBuilder {\n private readonly name: string\n private itemBuilders: CategoryItemBuilder[]\n private levelNames: string[]\n private _extraProps: ExtraPropDefs\n\n constructor(name: string) {\n this.name = name\n this.levelNames = []\n this.itemBuilders = []\n this._extraProps = {}\n }\n\n levels(...levelNames: string[]): this {\n this.levelNames = levelNames\n return this\n }\n\n items(...itemBuilders: CategoryItemBuilder[]): this {\n this.itemBuilders = [...itemBuilders]\n return this\n }\n\n extraProps(extraPropsDefs: ExtraPropDefs): this {\n this._extraProps = extraPropsDefs\n return this\n }\n\n build(): { category: Category; items: CategoryItem[] } {\n const category = CategoryFactory.createInstance({ props: { name: this.name, itemExtraDef: this._extraProps } })\n if (this.levelNames.length > 0) {\n const levels = this.levelNames.reduce((acc: Dictionary<CategoryLevel>, name, index) => {\n acc[index] = CategoryLevelFactory.createInstance({ categoryUuid: category.uuid, props: { name } })\n return acc\n }, {})\n category.levels = levels\n }\n const items = this.itemBuilders.flatMap((itemBuilder) => itemBuilder.build(category))\n\n return {\n category,\n items,\n }\n }\n}\n"]}
1
+ {"version":3,"file":"categoryBuilder.js","sourceRoot":"","sources":["../../../../src/tests/builder/surveyBuilder/categoryBuilder.ts"],"names":[],"mappings":";;;AAAA,gDAAgH;AAKhH;IAME,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;IACvB,CAAC;IAED,MAAM,CAAC,GAAG,UAAoB;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAG,YAAmC;QAC1C,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU,CAAC,cAA6B;QACtC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK;QACH,MAAM,QAAQ,GAAG,0BAAe,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAC/G,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAA8B,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;gBACpF,GAAG,CAAC,KAAK,CAAC,GAAG,+BAAoB,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;gBAClG,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;YACN,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;QAC1B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QAErF,OAAO;YACL,QAAQ;YACR,KAAK;SACN,CAAA;IACH,CAAC;CACF","sourcesContent":["import { Category, CategoryFactory, CategoryItem, CategoryLevel, CategoryLevelFactory } from '../../../category'\nimport { Dictionary } from '../../../common'\nimport { ExtraPropDefs } from '../../../extraProp'\nimport { CategoryItemBuilder } from './categoryItemBuilder'\n\nexport class CategoryBuilder {\n private readonly name: string\n private itemBuilders: CategoryItemBuilder[]\n private levelNames: string[]\n private _extraProps: ExtraPropDefs\n\n constructor(name: string) {\n this.name = name\n this.levelNames = []\n this.itemBuilders = []\n this._extraProps = {}\n }\n\n levels(...levelNames: string[]): this {\n this.levelNames = levelNames\n return this\n }\n\n items(...itemBuilders: CategoryItemBuilder[]): this {\n this.itemBuilders = [...itemBuilders]\n return this\n }\n\n extraProps(extraPropsDefs: ExtraPropDefs): this {\n this._extraProps = extraPropsDefs\n return this\n }\n\n build(): { category: Category; items: CategoryItem[] } {\n const category = CategoryFactory.createInstance({ props: { name: this.name, itemExtraDef: this._extraProps } })\n if (this.levelNames.length > 0) {\n const levels = this.levelNames.reduce((acc: Dictionary<CategoryLevel>, name, index) => {\n acc[index] = CategoryLevelFactory.createInstance({ categoryUuid: category.uuid, props: { name } })\n return acc\n }, {})\n category.levels = levels\n }\n const items = this.itemBuilders.flatMap((itemBuilder) => itemBuilder.build(category))\n\n return {\n category,\n items,\n }\n }\n}\n"]}