synapse-react-client 4.0.41 → 4.0.43

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 (396) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/components/AccessRequirementList/AccessRequirementList.d.ts +6 -20
  3. package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
  4. package/dist/components/AccessRequirementList/AccessRequirementList.js +165 -159
  5. package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
  6. package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts +3 -2
  7. package/dist/components/AccessRequirementList/AccessRequirementListItem.d.ts.map +1 -1
  8. package/dist/components/AccessRequirementList/AccessRequirementListItem.js +23 -22
  9. package/dist/components/AccessRequirementList/AccessRequirementListItem.js.map +1 -1
  10. package/dist/components/AccessRequirementList/AccessRequirementListUtils.d.ts +4 -3
  11. package/dist/components/AccessRequirementList/AccessRequirementListUtils.d.ts.map +1 -1
  12. package/dist/components/AccessRequirementList/AccessRequirementListUtils.js +6 -4
  13. package/dist/components/AccessRequirementList/AccessRequirementListUtils.js.map +1 -1
  14. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/JsonSchemaRequestWizard.d.ts +22 -0
  15. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/JsonSchemaRequestWizard.d.ts.map +1 -0
  16. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/JsonSchemaRequestWizard.js +166 -0
  17. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/JsonSchemaRequestWizard.js.map +1 -0
  18. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/RequesterInformationFields.d.ts +18 -0
  19. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/RequesterInformationFields.d.ts.map +1 -0
  20. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/RequesterInformationFields.js +91 -0
  21. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/RequesterInformationFields.js.map +1 -0
  22. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/requesterInformation.d.ts +33 -0
  23. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/requesterInformation.d.ts.map +1 -0
  24. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/requesterInformation.js +49 -0
  25. package/dist/components/AccessRequirementList/JsonSchemaAccessRequirementRequestFlow/requesterInformation.js.map +1 -0
  26. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.d.ts +7 -0
  27. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.d.ts.map +1 -0
  28. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js +30 -0
  29. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js.map +1 -0
  30. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.d.ts.map +1 -1
  31. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js +26 -42
  32. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
  33. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts.map +1 -1
  34. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js +97 -218
  35. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
  36. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DucUploadSection.d.ts +13 -0
  37. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DucUploadSection.d.ts.map +1 -0
  38. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DucUploadSection.js +60 -0
  39. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DucUploadSection.js.map +1 -0
  40. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts +8 -2
  41. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
  42. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +177 -78
  43. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
  44. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.d.ts +4 -3
  45. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.d.ts.map +1 -1
  46. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js +15 -15
  47. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementFormWikiWrapper.js.map +1 -1
  48. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts +3 -2
  49. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
  50. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +88 -103
  51. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
  52. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/PrincipalInvestigatorFields.d.ts +12 -0
  53. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/PrincipalInvestigatorFields.d.ts.map +1 -0
  54. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/PrincipalInvestigatorFields.js +50 -0
  55. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/PrincipalInvestigatorFields.js.map +1 -0
  56. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.d.ts.map +1 -1
  57. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js +14 -30
  58. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
  59. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/{ManagedACTAccessRequirementItem.d.ts → RequestableAccessRequirementItem.d.ts} +9 -8
  60. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestableAccessRequirementItem.d.ts.map +1 -0
  61. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/{ManagedACTAccessRequirementItem.js → RequestableAccessRequirementItem.js} +16 -16
  62. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestableAccessRequirementItem.js.map +1 -0
  63. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/{ManagedACTAccessRequirementItemView.d.ts → RequestableAccessRequirementItemView.d.ts} +8 -7
  64. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestableAccessRequirementItemView.d.ts.map +1 -0
  65. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/{ManagedACTAccessRequirementItemView.js → RequestableAccessRequirementItemView.js} +3 -4
  66. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestableAccessRequirementItemView.js.map +1 -0
  67. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.d.ts.map +1 -1
  68. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +123 -170
  69. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
  70. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.d.ts +2 -2
  71. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.d.ts.map +1 -1
  72. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.js +35 -51
  73. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.js.map +1 -1
  74. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts +3 -2
  75. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
  76. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +107 -91
  77. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
  78. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.d.ts +12 -0
  79. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.d.ts.map +1 -0
  80. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.js +51 -0
  81. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SigningOfficialFields.js.map +1 -0
  82. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.d.ts +12 -0
  83. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.d.ts.map +1 -0
  84. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.js +24 -0
  85. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/eDucSignatureUtils.js.map +1 -0
  86. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts +12 -0
  87. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.d.ts.map +1 -0
  88. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/requestFlowTypes.js +0 -0
  89. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.d.ts +22 -0
  90. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.d.ts.map +1 -0
  91. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.js +32 -0
  92. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/useInitializeRequestAccessors.js.map +1 -0
  93. package/dist/components/AccessRequirementList/RequestDataStep.d.ts +34 -0
  94. package/dist/components/AccessRequirementList/RequestDataStep.d.ts.map +1 -0
  95. package/dist/components/AccessRequirementList/RequestDataStep.js +37 -0
  96. package/dist/components/AccessRequirementList/RequestDataStep.js.map +1 -0
  97. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.d.ts +1 -1
  98. package/dist/components/AccessRequirementList/RequirementItem/UnmanagedACTAccessRequirementItem.js.map +1 -1
  99. package/dist/components/AclEditor/AclEditor.js +20 -20
  100. package/dist/components/Authentication/TwoFactorBackupCodes.js +1 -1
  101. package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
  102. package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
  103. package/dist/components/Authentication/TwoFactorEnrollmentForm.js +79 -69
  104. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  105. package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
  106. package/dist/components/DataGrid/SynapseGrid.js +244 -246
  107. package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
  108. package/dist/components/DataGrid/components/GridLoadingState.d.ts +23 -0
  109. package/dist/components/DataGrid/components/GridLoadingState.d.ts.map +1 -0
  110. package/dist/components/DataGrid/components/GridLoadingState.js +64 -0
  111. package/dist/components/DataGrid/components/GridLoadingState.js.map +1 -0
  112. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
  113. package/dist/components/DataGrid/components/ReorderColumnsDialog.js +30 -29
  114. package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
  115. package/dist/components/DataGrid/useDataGridWebsocket.d.ts +60 -6
  116. package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
  117. package/dist/components/DataGrid/useDataGridWebsocket.js +71 -60
  118. package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
  119. package/dist/components/DataGrid/utils/getNamedColumnIndices.d.ts +11 -0
  120. package/dist/components/DataGrid/utils/getNamedColumnIndices.d.ts.map +1 -0
  121. package/dist/components/DataGrid/utils/getNamedColumnIndices.js +8 -0
  122. package/dist/components/DataGrid/utils/getNamedColumnIndices.js.map +1 -0
  123. package/dist/components/FilePreview/FileHandleContentRenderer.d.ts +6 -2
  124. package/dist/components/FilePreview/FileHandleContentRenderer.d.ts.map +1 -1
  125. package/dist/components/FilePreview/FileHandleContentRenderer.js +27 -14
  126. package/dist/components/FilePreview/FileHandleContentRenderer.js.map +1 -1
  127. package/dist/components/FilePreview/PdfPreview.d.ts +1 -1
  128. package/dist/components/FilePreview/PdfPreview.d.ts.map +1 -1
  129. package/dist/components/FilePreview/PdfPreview.js +15 -16
  130. package/dist/components/FilePreview/PdfPreview.js.map +1 -1
  131. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -1
  132. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +71 -68
  133. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -1
  134. package/dist/components/FormTemplateEditor/FieldLibrary.css +1 -0
  135. package/dist/components/FormTemplateEditor/FieldLibrary.d.ts +17 -0
  136. package/dist/components/FormTemplateEditor/FieldLibrary.d.ts.map +1 -0
  137. package/dist/components/FormTemplateEditor/FieldLibrary.js +88 -0
  138. package/dist/components/FormTemplateEditor/FieldLibrary.js.map +1 -0
  139. package/dist/components/FormTemplateEditor/FieldLibrary.module.js +5 -0
  140. package/dist/components/FormTemplateEditor/FieldLibrary.module.js.map +1 -0
  141. package/dist/components/FormTemplateEditor/FieldLibrary.module.scss +12 -0
  142. package/dist/components/FormTemplateEditor/FieldLibraryRow.d.ts +19 -0
  143. package/dist/components/FormTemplateEditor/FieldLibraryRow.d.ts.map +1 -0
  144. package/dist/components/FormTemplateEditor/FieldLibraryRow.js +115 -0
  145. package/dist/components/FormTemplateEditor/FieldLibraryRow.js.map +1 -0
  146. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.css +1 -0
  147. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.d.ts +9 -0
  148. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.d.ts.map +1 -0
  149. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.js +18 -0
  150. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.js.map +1 -0
  151. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.module.js +5 -0
  152. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.module.js.map +1 -0
  153. package/dist/components/FormTemplateEditor/FieldValidationErrorAlert.module.scss +4 -0
  154. package/dist/components/FormTemplateEditor/FormStructurePanel.d.ts +21 -0
  155. package/dist/components/FormTemplateEditor/FormStructurePanel.d.ts.map +1 -0
  156. package/dist/components/FormTemplateEditor/FormStructurePanel.js +108 -0
  157. package/dist/components/FormTemplateEditor/FormStructurePanel.js.map +1 -0
  158. package/dist/components/FormTemplateEditor/FormTemplateEditor.d.ts +10 -0
  159. package/dist/components/FormTemplateEditor/FormTemplateEditor.d.ts.map +1 -0
  160. package/dist/components/FormTemplateEditor/FormTemplateEditor.js +31 -0
  161. package/dist/components/FormTemplateEditor/FormTemplateEditor.js.map +1 -0
  162. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.d.ts +15 -0
  163. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.d.ts.map +1 -0
  164. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js +234 -0
  165. package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js.map +1 -0
  166. package/dist/components/FormTemplateEditor/FormTemplatePreview.d.ts.map +1 -1
  167. package/dist/components/FormTemplateEditor/FormTemplatePreview.js +29 -41
  168. package/dist/components/FormTemplateEditor/FormTemplatePreview.js.map +1 -1
  169. package/dist/components/FormTemplateEditor/StepCard.d.ts +25 -0
  170. package/dist/components/FormTemplateEditor/StepCard.d.ts.map +1 -0
  171. package/dist/components/FormTemplateEditor/StepCard.js +203 -0
  172. package/dist/components/FormTemplateEditor/StepCard.js.map +1 -0
  173. package/dist/components/FormTemplateEditor/StepFieldRow.d.ts +34 -0
  174. package/dist/components/FormTemplateEditor/StepFieldRow.d.ts.map +1 -0
  175. package/dist/components/FormTemplateEditor/StepFieldRow.js +128 -0
  176. package/dist/components/FormTemplateEditor/StepFieldRow.js.map +1 -0
  177. package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts +19 -0
  178. package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts.map +1 -0
  179. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js +78 -0
  180. package/dist/components/FormTemplateEditor/TemplateFileHandleField.js.map +1 -0
  181. package/dist/components/FormTemplateEditor/dragHandle.css +1 -0
  182. package/dist/components/FormTemplateEditor/dragHandle.module.js +8 -0
  183. package/dist/components/FormTemplateEditor/dragHandle.module.js.map +1 -0
  184. package/dist/components/FormTemplateEditor/dragHandle.module.scss +22 -0
  185. package/dist/components/FormTemplateEditor/dropTarget.css +1 -0
  186. package/dist/components/FormTemplateEditor/dropTarget.module.js +5 -0
  187. package/dist/components/FormTemplateEditor/dropTarget.module.js.map +1 -0
  188. package/dist/components/FormTemplateEditor/dropTarget.module.scss +14 -0
  189. package/dist/components/FormTemplateEditor/formTemplateDraftState.d.ts +48 -0
  190. package/dist/components/FormTemplateEditor/formTemplateDraftState.d.ts.map +1 -0
  191. package/dist/components/FormTemplateEditor/formTemplateDraftState.js +126 -0
  192. package/dist/components/FormTemplateEditor/formTemplateDraftState.js.map +1 -0
  193. package/dist/components/FormTemplateEditor/formTemplateSchema.d.ts +35 -0
  194. package/dist/components/FormTemplateEditor/formTemplateSchema.d.ts.map +1 -0
  195. package/dist/components/FormTemplateEditor/formTemplateSchema.js +35 -0
  196. package/dist/components/FormTemplateEditor/formTemplateSchema.js.map +1 -0
  197. package/dist/components/FormTemplateEditor/schemaFieldUtils.d.ts +3 -1
  198. package/dist/components/FormTemplateEditor/schemaFieldUtils.d.ts.map +1 -1
  199. package/dist/components/FormTemplateEditor/schemaFieldUtils.js +26 -8
  200. package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -1
  201. package/dist/components/FormTemplateEditor/sortableIds.d.ts +23 -0
  202. package/dist/components/FormTemplateEditor/sortableIds.d.ts.map +1 -0
  203. package/dist/components/FormTemplateEditor/sortableIds.js +24 -0
  204. package/dist/components/FormTemplateEditor/sortableIds.js.map +1 -0
  205. package/dist/components/FormTemplateEditor/useFormTemplateDraft.d.ts +33 -0
  206. package/dist/components/FormTemplateEditor/useFormTemplateDraft.d.ts.map +1 -0
  207. package/dist/components/FormTemplateEditor/useFormTemplateDraft.js +59 -0
  208. package/dist/components/FormTemplateEditor/useFormTemplateDraft.js.map +1 -0
  209. package/dist/components/FormTemplateEditor/useFormTemplateDrag.d.ts +9 -0
  210. package/dist/components/FormTemplateEditor/useFormTemplateDrag.d.ts.map +1 -0
  211. package/dist/components/FormTemplateEditor/useFormTemplateDrag.js +66 -0
  212. package/dist/components/FormTemplateEditor/useFormTemplateDrag.js.map +1 -0
  213. package/dist/components/FormTemplateEditor/useSaveFormTemplate.d.ts.map +1 -1
  214. package/dist/components/FormTemplateEditor/useSaveFormTemplate.js +34 -19
  215. package/dist/components/FormTemplateEditor/useSaveFormTemplate.js.map +1 -1
  216. package/dist/components/FormTemplateEditor/utils.d.ts +2 -2
  217. package/dist/components/FormTemplateEditor/utils.d.ts.map +1 -1
  218. package/dist/components/FormTemplateEditor/utils.js +7 -10
  219. package/dist/components/FormTemplateEditor/utils.js.map +1 -1
  220. package/dist/components/JsonSchemaForm/SchemaStepForm.d.ts +21 -0
  221. package/dist/components/JsonSchemaForm/SchemaStepForm.d.ts.map +1 -0
  222. package/dist/components/JsonSchemaForm/SchemaStepForm.js +29 -0
  223. package/dist/components/JsonSchemaForm/SchemaStepForm.js.map +1 -0
  224. package/dist/components/JsonSchemaForm/widgets/SelectWidget.d.ts +11 -0
  225. package/dist/components/JsonSchemaForm/widgets/SelectWidget.d.ts.map +1 -1
  226. package/dist/components/JsonSchemaForm/widgets/SelectWidget.js +28 -19
  227. package/dist/components/JsonSchemaForm/widgets/SelectWidget.js.map +1 -1
  228. package/dist/components/QueryBuilder/FilterConditionRow.d.ts +1 -0
  229. package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -1
  230. package/dist/components/QueryBuilder/FilterConditionRow.js +102 -105
  231. package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -1
  232. package/dist/components/QueryBuilder/FilterGroupNode.js +6 -6
  233. package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -1
  234. package/dist/components/QueryBuilder/QueryBuilderControls.js +88 -81
  235. package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -1
  236. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +7 -0
  237. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -1
  238. package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -1
  239. package/dist/components/QueryBuilder/qbTreeToReadable.d.ts +2 -1
  240. package/dist/components/QueryBuilder/qbTreeToReadable.d.ts.map +1 -1
  241. package/dist/components/QueryBuilder/qbTreeToReadable.js +24 -20
  242. package/dist/components/QueryBuilder/qbTreeToReadable.js.map +1 -1
  243. package/dist/components/QueryBuilder/queryBuilderDrag.css +1 -1
  244. package/dist/components/QueryBuilder/queryBuilderDrag.module.js +2 -2
  245. package/dist/components/QueryBuilder/queryBuilderDrag.module.js.map +1 -1
  246. package/dist/components/QueryBuilder/queryBuilderDrag.module.scss +1 -1
  247. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +16 -0
  248. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -1
  249. package/dist/components/QueryBuilder/queryBuilderMetadata.js +13 -5
  250. package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -1
  251. package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts +18 -0
  252. package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts.map +1 -0
  253. package/dist/components/QueryBuilder/useQBValueDisplayName.js +64 -0
  254. package/dist/components/QueryBuilder/useQBValueDisplayName.js.map +1 -0
  255. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.d.ts +2 -2
  256. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.d.ts.map +1 -1
  257. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js +11 -10
  258. package/dist/components/SetBasicAccessRequirementFields/GovernanceUtils.js.map +1 -1
  259. package/dist/components/SynapseForm/SynapseForm.js +28 -28
  260. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +6 -6
  261. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.d.ts +1 -0
  262. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.d.ts.map +1 -1
  263. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js +13 -11
  264. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js.map +1 -1
  265. package/dist/components/SynapseTable/SearchV2.js +4 -4
  266. package/dist/components/ToastMessage/ToastMessage.d.ts.map +1 -1
  267. package/dist/components/ToastMessage/ToastMessage.js +25 -22
  268. package/dist/components/ToastMessage/ToastMessage.js.map +1 -1
  269. package/dist/components/dataaccess/FormTemplateEditorRoute.d.ts +7 -0
  270. package/dist/components/dataaccess/FormTemplateEditorRoute.d.ts.map +1 -0
  271. package/dist/components/dataaccess/FormTemplateEditorRoute.js +26 -0
  272. package/dist/components/dataaccess/FormTemplateEditorRoute.js.map +1 -0
  273. package/dist/components/dataaccess/FormTemplateTable.d.ts +10 -0
  274. package/dist/components/dataaccess/FormTemplateTable.d.ts.map +1 -0
  275. package/dist/components/dataaccess/FormTemplateTable.js +124 -0
  276. package/dist/components/dataaccess/FormTemplateTable.js.map +1 -0
  277. package/dist/components/dataaccess/ReviewerDashboard.d.ts.map +1 -1
  278. package/dist/components/dataaccess/ReviewerDashboard.js +80 -50
  279. package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
  280. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
  281. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +7 -4
  282. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
  283. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.d.ts.map +1 -1
  284. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js +5 -4
  285. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  286. package/dist/components/widgets/FileHandleLink.d.ts +12 -2
  287. package/dist/components/widgets/FileHandleLink.d.ts.map +1 -1
  288. package/dist/components/widgets/FileHandleLink.js +25 -29
  289. package/dist/components/widgets/FileHandleLink.js.map +1 -1
  290. package/dist/features/curator/dashboard/CuratorDashboardRouter.d.ts.map +1 -1
  291. package/dist/features/curator/dashboard/CuratorDashboardRouter.js +15 -15
  292. package/dist/features/curator/dashboard/CuratorDashboardRouter.js.map +1 -1
  293. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.d.ts.map +1 -1
  294. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js +15 -14
  295. package/dist/features/entity/metadata-task/components/MetadataTasksPageRouter.js.map +1 -1
  296. package/dist/mocks/accessRequirement/mockFormTemplates.d.ts +2 -0
  297. package/dist/mocks/accessRequirement/mockFormTemplates.d.ts.map +1 -1
  298. package/dist/mocks/accessRequirement/mockFormTemplates.js +8 -2
  299. package/dist/mocks/accessRequirement/mockFormTemplates.js.map +1 -1
  300. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts +7 -0
  301. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts.map +1 -1
  302. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js +30 -15
  303. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js.map +1 -1
  304. package/dist/mocks/accessRequirement/mockJsonSchemas.d.ts.map +1 -1
  305. package/dist/mocks/accessRequirement/mockJsonSchemas.js +17 -31
  306. package/dist/mocks/accessRequirement/mockJsonSchemas.js.map +1 -1
  307. package/dist/mocks/dataaccess/MockDataAccessRequest.d.ts +3 -0
  308. package/dist/mocks/dataaccess/MockDataAccessRequest.d.ts.map +1 -1
  309. package/dist/mocks/dataaccess/MockDataAccessRequest.js +24 -12
  310. package/dist/mocks/dataaccess/MockDataAccessRequest.js.map +1 -1
  311. package/dist/mocks/msw/handlers/authHandlers.d.ts +1 -0
  312. package/dist/mocks/msw/handlers/authHandlers.d.ts.map +1 -1
  313. package/dist/mocks/msw/handlers/authHandlers.js +6 -2
  314. package/dist/mocks/msw/handlers/authHandlers.js.map +1 -1
  315. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts +2 -0
  316. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts.map +1 -1
  317. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js +65 -47
  318. package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
  319. package/dist/mocks/msw/handlers/fileHandlers.d.ts.map +1 -1
  320. package/dist/mocks/msw/handlers/fileHandlers.js +25 -21
  321. package/dist/mocks/msw/handlers/fileHandlers.js.map +1 -1
  322. package/dist/mocks/msw/handlers/formTemplateHandlers.d.ts +2 -1
  323. package/dist/mocks/msw/handlers/formTemplateHandlers.d.ts.map +1 -1
  324. package/dist/mocks/msw/handlers/formTemplateHandlers.js +18 -18
  325. package/dist/mocks/msw/handlers/formTemplateHandlers.js.map +1 -1
  326. package/dist/mocks/msw/handlers/schemaHandlers.d.ts +8 -0
  327. package/dist/mocks/msw/handlers/schemaHandlers.d.ts.map +1 -1
  328. package/dist/mocks/msw/handlers/schemaHandlers.js +20 -3
  329. package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
  330. package/dist/mocks/msw/handlers/twoFactorEnrollmentHandlers.d.ts +8 -0
  331. package/dist/mocks/msw/handlers/twoFactorEnrollmentHandlers.d.ts.map +1 -0
  332. package/dist/mocks/msw/handlers/twoFactorEnrollmentHandlers.js +19 -0
  333. package/dist/mocks/msw/handlers/twoFactorEnrollmentHandlers.js.map +1 -0
  334. package/dist/style/abstracts/_cssVariables.scss +13 -0
  335. package/dist/style/components/_toasts.scss +10 -1
  336. package/dist/style/main.css +1 -1
  337. package/dist/synapse-queries/KeyFactory.d.ts +8 -1
  338. package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
  339. package/dist/synapse-queries/KeyFactory.js +17 -4
  340. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  341. package/dist/synapse-queries/auth/index.d.ts +1 -0
  342. package/dist/synapse-queries/auth/index.d.ts.map +1 -1
  343. package/dist/synapse-queries/auth/index.js +2 -1
  344. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.d.ts +11 -0
  345. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.d.ts.map +1 -0
  346. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js +19 -0
  347. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js.map +1 -0
  348. package/dist/synapse-queries/dataaccess/index.js +5 -5
  349. package/dist/synapse-queries/dataaccess/useEDuc.d.ts +18 -0
  350. package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
  351. package/dist/synapse-queries/dataaccess/useEDuc.js +33 -1
  352. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  353. package/dist/synapse-queries/dataaccess/useGeneratedRequestForm.d.ts +19 -0
  354. package/dist/synapse-queries/dataaccess/useGeneratedRequestForm.d.ts.map +1 -0
  355. package/dist/synapse-queries/dataaccess/useGeneratedRequestForm.js +26 -0
  356. package/dist/synapse-queries/dataaccess/useGeneratedRequestForm.js.map +1 -0
  357. package/dist/synapse-queries/file/useDirectUploadToS3.js +6 -6
  358. package/dist/synapse-queries/file/useFileHandle.d.ts +8 -0
  359. package/dist/synapse-queries/file/useFileHandle.d.ts.map +1 -1
  360. package/dist/synapse-queries/file/useFileHandle.js +15 -6
  361. package/dist/synapse-queries/file/useFileHandle.js.map +1 -1
  362. package/dist/synapse-queries/index.js +260 -253
  363. package/dist/synapse-queries/jsonschema/index.js +2 -2
  364. package/dist/synapse-queries/jsonschema/useSchema.d.ts +5 -0
  365. package/dist/synapse-queries/jsonschema/useSchema.d.ts.map +1 -1
  366. package/dist/synapse-queries/jsonschema/useSchema.js +9 -1
  367. package/dist/synapse-queries/jsonschema/useSchema.js.map +1 -1
  368. package/dist/tsconfig.build.tsbuildinfo +1 -1
  369. package/dist/utils/APIConstants.d.ts +1 -0
  370. package/dist/utils/APIConstants.d.ts.map +1 -1
  371. package/dist/utils/APIConstants.js +2 -2
  372. package/dist/utils/APIConstants.js.map +1 -1
  373. package/dist/utils/featureflag/FeatureFlags.d.ts +1 -0
  374. package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
  375. package/dist/utils/featureflag/FeatureFlags.js +1 -1
  376. package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
  377. package/dist/utils/functions/toPascalCase.d.ts +6 -0
  378. package/dist/utils/functions/toPascalCase.d.ts.map +1 -0
  379. package/dist/utils/functions/toPascalCase.js +8 -0
  380. package/dist/utils/functions/toPascalCase.js.map +1 -0
  381. package/dist/utils/hooks/useDetectSSOCode.d.ts.map +1 -1
  382. package/dist/utils/hooks/useDetectSSOCode.js +31 -26
  383. package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
  384. package/dist/utils/jsonschema/schemaData.d.ts +18 -0
  385. package/dist/utils/jsonschema/schemaData.d.ts.map +1 -0
  386. package/dist/utils/jsonschema/schemaData.js +26 -0
  387. package/dist/utils/jsonschema/schemaData.js.map +1 -0
  388. package/dist/utils/jsonschema/submissionContext.d.ts +5 -0
  389. package/dist/utils/jsonschema/submissionContext.d.ts.map +1 -1
  390. package/dist/utils/jsonschema/submissionContext.js +22 -30
  391. package/dist/utils/jsonschema/submissionContext.js.map +1 -1
  392. package/package.json +10 -9
  393. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.d.ts.map +0 -1
  394. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItem.js.map +0 -1
  395. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.d.ts.map +0 -1
  396. package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManagedACTAccessRequirementItemView.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SelectWidget.js","names":[],"sources":["../../../../src/components/JsonSchemaForm/widgets/SelectWidget.tsx"],"sourcesContent":["import { CustomFormContext } from '@/components/JsonSchemaForm/CustomFormContext'\nimport { Widget, WidgetProps, EnumOptionsType } from '@rjsf/utils'\nimport { Autocomplete, TextField } from '@mui/material'\nimport { createFilterOptions } from '@mui/material/Autocomplete'\nimport { isObject } from 'lodash-es'\n\nconst filter = createFilterOptions<EnumOptionsType>()\n\n/**\n * This function finds the enum option that has the corresponding value and returns it.\n *\n * If value is nullish, this fn returns null. If there is no corresponding option, then a new object is returned\n * where the label and value are set to the provided value.\n */\nexport function findValueOption(\n value: string | null | undefined,\n options: EnumOptionsType[],\n): EnumOptionsType | string | null {\n if (value == null) {\n return null\n }\n\n const correspondingOption = options.filter(option => option.value === value)\n if (correspondingOption.length > 0) {\n return correspondingOption[0]\n } else {\n return { value: value, label: value }\n }\n}\n\ntype SelectWidgetProps = WidgetProps & {\n isClearable?: boolean\n}\n\n/**\n * Select widget compatible with react-jsonschema-form enumerations\n */\nexport const SelectWidget: Widget = (props: SelectWidgetProps) => {\n const {\n id,\n options,\n value,\n required,\n disabled,\n readonly,\n multiple,\n autofocus,\n onChange,\n onBlur,\n onFocus,\n placeholder,\n isClearable: _isClearable = true,\n rawErrors,\n registry,\n } = props\n\n const { enumOptions } = options as {\n enumOptions: EnumOptionsType[]\n }\n\n // If the ID includes one of these, then this is a widget used to select a schema in `oneOf` or `anyOf`.\n // In these cases, we should not allow free solo input.\n const isAnyOrOneOfOption = ['__oneof_select', '__anyof_select'].some(\n multiSchemaTag => id.includes(multiSchemaTag),\n )\n\n const allowFreeSolo =\n !isAnyOrOneOfOption &&\n Boolean((registry.formContext as CustomFormContext).allowFreeSoloEnum)\n\n // any/oneOf options should not be clearable\n const isClearable = _isClearable && !isAnyOrOneOfOption\n\n return (\n <Autocomplete\n id={id}\n value={findValueOption(value, enumOptions)}\n freeSolo={allowFreeSolo}\n forcePopupIcon\n selectOnFocus\n clearOnBlur\n handleHomeEndKeys\n options={enumOptions}\n readOnly={readonly}\n disabled={disabled}\n multiple={multiple}\n disableClearable={!isClearable}\n onChange={(event, newValue) => {\n if (isObject(newValue) && 'inputValue' in newValue) {\n // Create a new value from the user input\n onChange(newValue.inputValue)\n } else if (isObject(newValue) && 'value' in newValue) {\n onChange(newValue.value)\n } else if (typeof newValue === 'string') {\n onChange(newValue)\n } else {\n onChange(newValue)\n }\n }}\n renderInput={params => (\n <TextField\n {...params}\n required={required}\n placeholder={placeholder}\n error={rawErrors && rawErrors.length > 0}\n autoFocus={autofocus}\n onFocus={onFocus && (() => onFocus(id, value?.value))}\n onBlur={onBlur && (() => onBlur(id, value?.value))}\n />\n )}\n filterOptions={(options, params) => {\n const filtered = filter(options, params)\n\n const { inputValue } = params\n // Suggest the creation of a new value\n const isExisting = options.some(option => inputValue === option.label)\n if (allowFreeSolo && inputValue !== '' && !isExisting) {\n filtered.push({\n value: inputValue,\n label: `Set to custom value \"${inputValue}\"`,\n })\n }\n\n return filtered\n }}\n />\n )\n}\n"],"mappings":";;;;;AAMA,IAAM,IAAS,EAAqC;AAQpD,SAAgB,EACd,GACA,GACiC;CACjC,IAAI,KAAS,MACX,OAAO;CAGT,IAAM,IAAsB,EAAQ,QAAO,MAAU,EAAO,UAAU,CAAK;CAIzE,OAHE,EAAoB,SAAS,IACxB,EAAoB,KAEpB;EAAS;EAAO,OAAO;CAAM;AAExC;AASA,IAAa,KAAwB,MAA6B;CAChE,IAAM,EACJ,OACA,YACA,UACA,aACA,aACA,aACA,aACA,cACA,aACA,WACA,YACA,gBACA,aAAa,IAAe,IAC5B,cACA,gBACE,GAEE,EAAE,mBAAgB,GAMlB,IAAqB,CAAC,kBAAkB,gBAAgB,EAAE,MAC9D,MAAkB,EAAG,SAAS,CAAc,CAC9C,GAEM,IACJ,CAAC,KACD,EAAS,EAAS,YAAkC,mBAGhD,IAAc,KAAgB,CAAC;CAErC,OACE,kBAAC,GAAD;EACM;EACJ,OAAO,EAAgB,GAAO,CAAW;EACzC,UAAU;EACV,gBAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,SAAS;EACT,UAAU;EACA;EACA;EACV,kBAAkB,CAAC;EACnB,WAAW,GAAO,MAAa;GAC7B,AAAI,EAAS,CAAQ,KAAK,gBAAgB,IAExC,EAAS,EAAS,UAAU,IACnB,EAAS,CAAQ,KAAK,WAAW,IAC1C,EAAS,EAAS,KAAK,IAEvB,EAAS,CAEQ;EAErB;EACA,cAAa,MACX,kBAAC,GAAD;GACE,GAAI;GACM;GACG;GACb,OAAO,KAAa,EAAU,SAAS;GACvC,WAAW;GACX,SAAS,YAAkB,EAAQ,GAAI,GAAO,KAAK;GACnD,QAAQ,YAAiB,EAAO,GAAI,GAAO,KAAK;EACjD,CAAA;EAEH,gBAAgB,GAAS,MAAW;GAClC,IAAM,IAAW,EAAO,GAAS,CAAM,GAEjC,EAAE,kBAAe,GAEjB,IAAa,EAAQ,MAAK,MAAU,MAAe,EAAO,KAAK;GAQrE,OAPI,KAAiB,MAAe,MAAM,CAAC,KACzC,EAAS,KAAK;IACZ,OAAO;IACP,OAAO,wBAAwB,EAAW;GAC5C,CAAC,GAGI;EACT;CACD,CAAA;AAEL"}
1
+ {"version":3,"file":"SelectWidget.js","names":[],"sources":["../../../../src/components/JsonSchemaForm/widgets/SelectWidget.tsx"],"sourcesContent":["import { CustomFormContext } from '@/components/JsonSchemaForm/CustomFormContext'\nimport { Widget, WidgetProps, EnumOptionsType } from '@rjsf/utils'\nimport { Autocomplete, TextField } from '@mui/material'\nimport { createFilterOptions } from '@mui/material/Autocomplete'\nimport { isObject } from 'lodash-es'\n\nconst filter = createFilterOptions<EnumOptionsType>()\n\n/**\n * This function finds the enum option that has the corresponding value and returns it.\n *\n * If value is nullish, this fn returns null. If there is no corresponding option, then a new object is returned\n * where the label and value are set to the provided value.\n */\nexport function findValueOption(\n value: string | null | undefined,\n options: EnumOptionsType[],\n): EnumOptionsType | string | null {\n if (value == null) {\n return null\n }\n\n const correspondingOption = options.filter(option => option.value === value)\n if (correspondingOption.length > 0) {\n return correspondingOption[0]\n } else {\n return { value: value, label: value }\n }\n}\n\n/**\n * Maps a multi-select form value (an array of enum values) to the Autocomplete option objects it\n * selects. Values with no matching option (e.g. free-solo input) become `{ value, label: value }`.\n * A non-array value selects nothing.\n */\nexport function toMultipleAutocompleteValue(\n value: unknown,\n options: EnumOptionsType[],\n): EnumOptionsType[] {\n if (!Array.isArray(value)) {\n return []\n }\n return value.map(\n v =>\n options.find(option => option.value === v) ?? {\n value: v,\n label: String(v),\n },\n )\n}\n\n/**\n * Maps a multi-select Autocomplete selection (option objects and/or free-solo strings) back to the\n * array of enum values stored in the form data.\n */\nexport function fromMultipleAutocompleteValue(newValue: unknown): unknown[] {\n if (!Array.isArray(newValue)) {\n return []\n }\n return newValue.map((v: unknown) =>\n isObject(v) && 'value' in v ? v.value : v,\n )\n}\n\ntype SelectWidgetProps = WidgetProps & {\n isClearable?: boolean\n}\n\n/**\n * Select widget compatible with react-jsonschema-form enumerations\n */\nexport const SelectWidget: Widget = (props: SelectWidgetProps) => {\n const {\n id,\n options,\n value,\n required,\n disabled,\n readonly,\n multiple,\n autofocus,\n onChange,\n onBlur,\n onFocus,\n placeholder,\n isClearable: _isClearable = true,\n rawErrors,\n registry,\n } = props\n\n const { enumOptions } = options as {\n enumOptions: EnumOptionsType[]\n }\n\n // If the ID includes one of these, then this is a widget used to select a schema in `oneOf` or `anyOf`.\n // In these cases, we should not allow free solo input.\n const isAnyOrOneOfOption = ['__oneof_select', '__anyof_select'].some(\n multiSchemaTag => id.includes(multiSchemaTag),\n )\n\n const allowFreeSolo =\n !isAnyOrOneOfOption &&\n Boolean((registry.formContext as CustomFormContext).allowFreeSoloEnum)\n\n // any/oneOf options should not be clearable\n const isClearable = _isClearable && !isAnyOrOneOfOption\n\n return (\n <Autocomplete\n id={id}\n value={\n multiple\n ? toMultipleAutocompleteValue(value, enumOptions)\n : findValueOption(value, enumOptions)\n }\n freeSolo={allowFreeSolo}\n forcePopupIcon\n selectOnFocus\n clearOnBlur\n handleHomeEndKeys\n options={enumOptions}\n readOnly={readonly}\n disabled={disabled}\n multiple={multiple}\n disableClearable={!isClearable}\n onChange={(event, newValue) => {\n if (multiple) {\n onChange(fromMultipleAutocompleteValue(newValue))\n } else if (isObject(newValue) && 'inputValue' in newValue) {\n // Create a new value from the user input\n onChange(newValue.inputValue)\n } else if (isObject(newValue) && 'value' in newValue) {\n onChange(newValue.value)\n } else if (typeof newValue === 'string') {\n onChange(newValue)\n } else {\n onChange(newValue)\n }\n }}\n renderInput={params => (\n <TextField\n {...params}\n required={required}\n placeholder={placeholder}\n error={rawErrors && rawErrors.length > 0}\n autoFocus={autofocus}\n onFocus={onFocus && (() => onFocus(id, value?.value))}\n onBlur={onBlur && (() => onBlur(id, value?.value))}\n />\n )}\n filterOptions={(options, params) => {\n const filtered = filter(options, params)\n\n const { inputValue } = params\n // Suggest the creation of a new value\n const isExisting = options.some(option => inputValue === option.label)\n if (allowFreeSolo && inputValue !== '' && !isExisting) {\n filtered.push({\n value: inputValue,\n label: `Set to custom value \"${inputValue}\"`,\n })\n }\n\n return filtered\n }}\n />\n )\n}\n"],"mappings":";;;;;AAMA,IAAM,IAAS,EAAqC;AAQpD,SAAgB,EACd,GACA,GACiC;CACjC,IAAI,KAAS,MACX,OAAO;CAGT,IAAM,IAAsB,EAAQ,QAAO,MAAU,EAAO,UAAU,CAAK;CAIzE,OAHE,EAAoB,SAAS,IACxB,EAAoB,KAEpB;EAAS;EAAO,OAAO;CAAM;AAExC;AAOA,SAAgB,EACd,GACA,GACmB;CAInB,OAHK,MAAM,QAAQ,CAAK,IAGjB,EAAM,KACX,MACE,EAAQ,MAAK,MAAU,EAAO,UAAU,CAAC,KAAK;EAC5C,OAAO;EACP,OAAO,OAAO,CAAC;CACjB,CACJ,IARS,CAAC;AASZ;AAMA,SAAgB,EAA8B,GAA8B;CAI1E,OAHK,MAAM,QAAQ,CAAQ,IAGpB,EAAS,KAAK,MACnB,EAAS,CAAC,KAAK,WAAW,IAAI,EAAE,QAAQ,CAC1C,IAJS,CAAC;AAKZ;AASA,IAAa,KAAwB,MAA6B;CAChE,IAAM,EACJ,OACA,YACA,UACA,aACA,aACA,aACA,aACA,cACA,aACA,WACA,YACA,gBACA,aAAa,IAAe,IAC5B,cACA,gBACE,GAEE,EAAE,mBAAgB,GAMlB,IAAqB,CAAC,kBAAkB,gBAAgB,EAAE,MAC9D,MAAkB,EAAG,SAAS,CAAc,CAC9C,GAEM,IACJ,CAAC,KACD,EAAS,EAAS,YAAkC,mBAGhD,IAAc,KAAgB,CAAC;CAErC,OACE,kBAAC,GAAD;EACM;EACJ,OACE,IACI,EAA4B,GAAO,CAAW,IAC9C,EAAgB,GAAO,CAAW;EAExC,UAAU;EACV,gBAAA;EACA,eAAA;EACA,aAAA;EACA,mBAAA;EACA,SAAS;EACT,UAAU;EACA;EACA;EACV,kBAAkB,CAAC;EACnB,WAAW,GAAO,MAAa;GAC7B,AAAI,IACF,EAAS,EAA8B,CAAQ,CAAC,IACvC,EAAS,CAAQ,KAAK,gBAAgB,IAE/C,EAAS,EAAS,UAAU,IACnB,EAAS,CAAQ,KAAK,WAAW,IAC1C,EAAS,EAAS,KAAK,IAEvB,EAAS,CAEQ;EAErB;EACA,cAAa,MACX,kBAAC,GAAD;GACE,GAAI;GACM;GACG;GACb,OAAO,KAAa,EAAU,SAAS;GACvC,WAAW;GACX,SAAS,YAAkB,EAAQ,GAAI,GAAO,KAAK;GACnD,QAAQ,YAAiB,EAAO,GAAI,GAAO,KAAK;EACjD,CAAA;EAEH,gBAAgB,GAAS,MAAW;GAClC,IAAM,IAAW,EAAO,GAAS,CAAM,GAEjC,EAAE,kBAAe,GAEjB,IAAa,EAAQ,MAAK,MAAU,MAAe,EAAO,KAAK;GAQrE,OAPI,KAAiB,MAAe,MAAM,CAAC,KACzC,EAAS,KAAK;IACZ,OAAO;IACP,OAAO,wBAAwB,EAAW;GAC5C,CAAC,GAGI;EACT;CACD,CAAA;AAEL"}
@@ -5,4 +5,5 @@ export type FilterConditionRowProps = {
5
5
  index: number;
6
6
  };
7
7
  export declare function FilterConditionRow(props: FilterConditionRowProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare const PILL_FILTER_THRESHOLD = 40;
8
9
  //# sourceMappingURL=FilterConditionRow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterConditionRow.d.ts","sourceRoot":"","sources":["../../../src/components/QueryBuilder/FilterConditionRow.tsx"],"names":[],"mappings":"AA4BA,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAA;AAEhE,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,WAAW,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CA0KhE"}
1
+ {"version":3,"file":"FilterConditionRow.d.ts","sourceRoot":"","sources":["../../../src/components/QueryBuilder/FilterConditionRow.tsx"],"names":[],"mappings":"AA6BA,OAAO,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAA;AAEhE,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,WAAW,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAmKhE;AAuJD,eAAO,MAAM,qBAAqB,KAAK,CAAA"}
@@ -1,61 +1,61 @@
1
1
  import { splitAndTrim as e } from "../../utils/functions/StringUtils.js";
2
2
  import { defaultOpForColumnType as t } from "./queryBuilderOperations.js";
3
- import { availableOpsForKind as n, classifyColumn as r, labelForFacetValue as i, labelForOp as a } from "./queryBuilderMetadata.js";
4
- import { useQueryBuilderInternalContext as o } from "./QueryBuilderInternalContext.js";
5
- import s from "./FilterConditionRow.module.js";
6
- import c from "./queryBuilderDrag.module.js";
7
- import { QBDragHandle as l } from "./QBDragHandle.js";
8
- import { useMemo as u, useState as d } from "react";
9
- import { Autocomplete as f, IconButton as p, InputLabel as m, MenuItem as h, Select as g, TextField as _, ToggleButton as v, ToggleButtonGroup as y, Tooltip as b } from "@mui/material";
10
- import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
11
- import w from "@mui/icons-material/DeleteOutline";
12
- import { useSortable as T } from "@dnd-kit/react/sortable";
3
+ import { availableOpsForKind as n, classifyColumn as r, facetValueMatchesFilter as i, isFacetColumnResultValues as a, labelForOp as o } from "./queryBuilderMetadata.js";
4
+ import { useQueryBuilderInternalContext as s } from "./QueryBuilderInternalContext.js";
5
+ import c from "./FilterConditionRow.module.js";
6
+ import l from "./queryBuilderDrag.module.js";
7
+ import { QBDragHandle as u } from "./QBDragHandle.js";
8
+ import { useCallback as d, useMemo as f, useState as p } from "react";
9
+ import { Autocomplete as m, IconButton as h, InputLabel as g, MenuItem as _, Select as v, TextField as y, ToggleButton as b, ToggleButtonGroup as x, Tooltip as S } from "@mui/material";
10
+ import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
11
+ import { useSortable as E } from "@dnd-kit/react/sortable";
12
+ import D from "@mui/icons-material/DeleteOutline";
13
13
  //#region src/components/QueryBuilder/FilterConditionRow.tsx
14
- function E(e) {
15
- let { condition: i, parentGroupId: d, index: v } = e, { columnModels: y, facetResults: E, onlyFacetedColumns: O, getColumnDisplayName: k, updateConditionAt: M, removeConditionAt: N } = o(), { ref: P, handleRef: F, isDragSource: I } = T({
14
+ function O(e) {
15
+ let { condition: i, parentGroupId: d, index: p } = e, { columnModels: b, facetResults: x, onlyFacetedColumns: O, getColumnDisplayName: A, updateConditionAt: j, removeConditionAt: P } = s(), { ref: F, handleRef: I, isDragSource: L } = E({
16
16
  id: i.id,
17
- index: v,
17
+ index: p,
18
18
  group: d,
19
19
  disabled: { droppable: !0 }
20
- }), L = u(() => new Set(E.filter((e) => e.concreteType === "org.sagebionetworks.repo.model.table.FacetColumnResultValues").map((e) => e.columnName)), [E]), R = u(() => (O ? y.filter((e) => L.has(e.name)) : y).map((e) => ({
20
+ }), R = f(() => new Set(x.filter(a).map((e) => e.columnName)), [x]), z = f(() => (O ? b.filter((e) => R.has(e.name)) : b).map((e) => ({
21
21
  name: e.name,
22
22
  columnType: e.columnType,
23
- label: k(e.name)
23
+ label: A(e.name)
24
24
  })), [
25
- y,
26
- L,
25
+ b,
26
+ R,
27
27
  O,
28
- k
29
- ]), z = R.find((e) => e.name === i.columnName) ?? null, B = i.columnName != null && L.has(i.columnName), V = r(i.columnType, B), H = n(V), U = `qb-op-label-${i.id}`;
30
- return /* @__PURE__ */ C("div", {
31
- ref: P,
32
- className: `${s.row}${I ? ` ${c.dragSource}` : ""}`,
28
+ A
29
+ ]), B = z.find((e) => e.name === i.columnName) ?? null, V = i.columnName != null && R.has(i.columnName), H = r(i.columnType, V), U = n(H), W = `qb-op-label-${i.id}`;
30
+ return /* @__PURE__ */ T("div", {
31
+ ref: F,
32
+ className: `${c.row}${L ? ` ${l.dragSource}` : ""}`,
33
33
  role: "group",
34
34
  "aria-label": `Filter condition${i.columnName ? ` on ${i.columnName}` : ""}`,
35
35
  "data-qb-node-id": i.id,
36
36
  children: [
37
- /* @__PURE__ */ S(l, {
38
- handleRef: F,
37
+ /* @__PURE__ */ w(u, {
38
+ handleRef: I,
39
39
  label: "Drag condition into a condition group"
40
40
  }),
41
- /* @__PURE__ */ S(b, {
41
+ /* @__PURE__ */ w(S, {
42
42
  title: "Remove condition",
43
- children: /* @__PURE__ */ S(p, {
43
+ children: /* @__PURE__ */ w(h, {
44
44
  size: "small",
45
- className: s.remove,
45
+ className: c.remove,
46
46
  "aria-label": "Remove condition",
47
- onClick: () => N(i.id),
48
- children: /* @__PURE__ */ S(w, { fontSize: "small" })
47
+ onClick: () => P(i.id),
48
+ children: /* @__PURE__ */ w(D, { fontSize: "small" })
49
49
  })
50
50
  }),
51
- /* @__PURE__ */ S(f, {
52
- className: s.propertyPicker,
51
+ /* @__PURE__ */ w(m, {
52
+ className: c.propertyPicker,
53
53
  size: "small",
54
- options: R,
54
+ options: z,
55
55
  getOptionLabel: (e) => e.label,
56
56
  isOptionEqualToValue: (e, t) => e.name === t.name,
57
- value: z,
58
- renderInput: (e) => /* @__PURE__ */ S(_, {
57
+ value: B,
58
+ renderInput: (e) => /* @__PURE__ */ w(y, {
59
59
  ...e,
60
60
  variant: "outlined",
61
61
  placeholder: "Select property…",
@@ -66,8 +66,8 @@ function E(e) {
66
66
  }),
67
67
  onChange: (e, a) => {
68
68
  if (a == null) return;
69
- let o = n(r(a.columnType, j(E, a.name))), s = o.length > 0 ? o[0] : t(a.columnType);
70
- M(i.id, {
69
+ let o = n(r(a.columnType, N(x, a.name))), s = o.length > 0 ? o[0] : t(a.columnType);
70
+ j(i.id, {
71
71
  columnName: a.name,
72
72
  columnType: a.columnType,
73
73
  op: s,
@@ -78,48 +78,48 @@ function E(e) {
78
78
  });
79
79
  }
80
80
  }),
81
- H.length > 0 && /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S(m, {
82
- id: U,
81
+ U.length > 0 && /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(g, {
82
+ id: W,
83
83
  sx: { display: "none" },
84
84
  children: "Operator"
85
- }), /* @__PURE__ */ S(g, {
86
- className: s.operatorPicker,
85
+ }), /* @__PURE__ */ w(v, {
86
+ className: c.operatorPicker,
87
87
  size: "small",
88
- labelId: U,
88
+ labelId: W,
89
89
  variant: "outlined",
90
- value: H.includes(i.op) ? i.op : H[0],
90
+ value: U.includes(i.op) ? i.op : U[0],
91
91
  onChange: (e) => {
92
92
  let t = e.target.value;
93
- M(i.id, { op: t });
93
+ j(i.id, { op: t });
94
94
  },
95
95
  "aria-label": "Operator",
96
- children: H.map((e) => /* @__PURE__ */ S(h, {
96
+ children: U.map((e) => /* @__PURE__ */ w(_, {
97
97
  value: e,
98
- children: a(e)
98
+ children: o(e)
99
99
  }, e))
100
100
  })] }),
101
- /* @__PURE__ */ S(D, {
101
+ /* @__PURE__ */ w(k, {
102
102
  condition: i,
103
- columnKind: V,
104
- hasFacet: B,
105
- columnModels: y,
106
- facetValues: B && i.columnName != null ? A(E, i.columnName) : [],
107
- onChange: (e) => M(i.id, e)
103
+ columnKind: H,
104
+ hasFacet: V,
105
+ facetValues: V && i.columnName != null ? M(x, i.columnName) : [],
106
+ onChange: (e) => j(i.id, e)
108
107
  })
109
108
  ]
110
109
  });
111
110
  }
112
- function D(t) {
113
- let { condition: n, columnKind: r, hasFacet: i, facetValues: a, onChange: o } = t, { op: c } = n;
114
- if (c === "has_value" || c === "no_value") return null;
115
- switch (c) {
111
+ function k(t) {
112
+ let { condition: n, columnKind: r, hasFacet: i, facetValues: a, onChange: o } = t, { op: s } = n;
113
+ if (s === "has_value" || s === "no_value") return null;
114
+ switch (s) {
116
115
  case "is_any_of":
117
- case "is_all_of": return (r === "enum" || r === "list") && i ? /* @__PURE__ */ S(k, {
116
+ case "is_all_of": return (r === "enum" || r === "list") && i ? /* @__PURE__ */ w(j, {
117
+ columnName: n.columnName,
118
118
  facetValues: a,
119
119
  selectedValues: n.values,
120
120
  onChange: (e) => o({ values: e })
121
- }) : /* @__PURE__ */ S(_, {
122
- className: s.textInput,
121
+ }) : /* @__PURE__ */ w(y, {
122
+ className: c.textInput,
123
123
  size: "small",
124
124
  variant: "outlined",
125
125
  placeholder: "Comma-separated values",
@@ -127,9 +127,9 @@ function D(t) {
127
127
  slotProps: { htmlInput: { "aria-label": "Values" } },
128
128
  onChange: (t) => o({ values: e(t.target.value) })
129
129
  });
130
- case "between": return /* @__PURE__ */ C(x, { children: [
131
- /* @__PURE__ */ S(_, {
132
- className: s.rangeInput,
130
+ case "between": return /* @__PURE__ */ T(C, { children: [
131
+ /* @__PURE__ */ w(y, {
132
+ className: c.rangeInput,
133
133
  size: "small",
134
134
  variant: "outlined",
135
135
  type: "text",
@@ -138,12 +138,12 @@ function D(t) {
138
138
  slotProps: { htmlInput: { "aria-label": "Minimum" } },
139
139
  onChange: (e) => o({ rangeMin: e.target.value })
140
140
  }),
141
- /* @__PURE__ */ S("span", {
141
+ /* @__PURE__ */ w("span", {
142
142
  "aria-hidden": "true",
143
143
  children: "to"
144
144
  }),
145
- /* @__PURE__ */ S(_, {
146
- className: s.rangeInput,
145
+ /* @__PURE__ */ w(y, {
146
+ className: c.rangeInput,
147
147
  size: "small",
148
148
  variant: "outlined",
149
149
  type: "text",
@@ -154,8 +154,8 @@ function D(t) {
154
154
  })
155
155
  ] });
156
156
  case "gt":
157
- case "gte": return /* @__PURE__ */ S(_, {
158
- className: s.rangeInput,
157
+ case "gte": return /* @__PURE__ */ w(y, {
158
+ className: c.rangeInput,
159
159
  size: "small",
160
160
  variant: "outlined",
161
161
  type: "text",
@@ -164,8 +164,8 @@ function D(t) {
164
164
  onChange: (e) => o({ rangeMin: e.target.value })
165
165
  });
166
166
  case "lt":
167
- case "lte": return /* @__PURE__ */ S(_, {
168
- className: s.rangeInput,
167
+ case "lte": return /* @__PURE__ */ w(y, {
168
+ className: c.rangeInput,
169
169
  size: "small",
170
170
  variant: "outlined",
171
171
  type: "text",
@@ -174,23 +174,23 @@ function D(t) {
174
174
  onChange: (e) => o({ rangeMax: e.target.value })
175
175
  });
176
176
  case "equal":
177
- case "not_equal": return r === "boolean" ? /* @__PURE__ */ C(y, {
178
- className: s.pillGroup,
177
+ case "not_equal": return r === "boolean" ? /* @__PURE__ */ T(x, {
178
+ className: c.pillGroup,
179
179
  exclusive: !0,
180
180
  value: n.values[0] ?? null,
181
181
  onChange: (e, t) => {
182
182
  o({ values: t == null ? [] : [t] });
183
183
  },
184
184
  "aria-label": "Boolean value",
185
- children: [/* @__PURE__ */ S(v, {
185
+ children: [/* @__PURE__ */ w(b, {
186
186
  value: "true",
187
187
  children: "Yes"
188
- }), /* @__PURE__ */ S(v, {
188
+ }), /* @__PURE__ */ w(b, {
189
189
  value: "false",
190
190
  children: "No"
191
191
  })]
192
- }) : /* @__PURE__ */ S(_, {
193
- className: s.textInput,
192
+ }) : /* @__PURE__ */ w(y, {
193
+ className: c.textInput,
194
194
  size: "small",
195
195
  variant: "outlined",
196
196
  value: n.values[0] ?? "",
@@ -200,8 +200,8 @@ function D(t) {
200
200
  case "contains":
201
201
  case "starts_with":
202
202
  case "ends_with":
203
- case "is_exactly": return /* @__PURE__ */ S(_, {
204
- className: s.textInput,
203
+ case "is_exactly": return /* @__PURE__ */ w(y, {
204
+ className: c.textInput,
205
205
  size: "small",
206
206
  variant: "outlined",
207
207
  value: n.text ?? "",
@@ -211,50 +211,47 @@ function D(t) {
211
211
  default: return null;
212
212
  }
213
213
  }
214
- var O = 40;
215
- function k(e) {
216
- let { facetValues: t, selectedValues: n, onChange: r } = e, [a, o] = d(""), c = t.length > O, l = u(() => [...t].sort((e, t) => i(e).localeCompare(i(t), void 0, { sensitivity: "base" })), [t]), f = u(() => {
217
- if (!c || a.trim() === "") return l;
218
- let e = a.trim().toLowerCase();
219
- return l.filter((t) => i(t).toLowerCase().includes(e));
220
- }, [
214
+ var A = 40;
215
+ function j(e) {
216
+ let { columnName: t, facetValues: n, selectedValues: r, onChange: a } = e, { getValueDisplayName: o } = s(), [l, u] = p(""), m = n.length > 40, h = d((e) => o(t, e), [o, t]), g = f(() => [...n].sort((e, t) => h(e).localeCompare(h(t), void 0, { sensitivity: "base" })), [n, h]), _ = f(() => m ? g.filter((e) => i(e, h(e), l)) : g, [
217
+ g,
221
218
  l,
222
- a,
223
- c
219
+ m,
220
+ h
224
221
  ]);
225
- return /* @__PURE__ */ C("div", {
226
- className: s.pillGroupContainer,
227
- children: [c && /* @__PURE__ */ S(_, {
228
- className: s.pillFilter,
222
+ return /* @__PURE__ */ T("div", {
223
+ className: c.pillGroupContainer,
224
+ children: [m && /* @__PURE__ */ w(y, {
225
+ className: c.pillFilter,
229
226
  size: "small",
230
227
  variant: "outlined",
231
- placeholder: `Filter ${t.length} values…`,
232
- value: a,
233
- onChange: (e) => o(e.target.value),
228
+ placeholder: `Filter ${n.length} values…`,
229
+ value: l,
230
+ onChange: (e) => u(e.target.value),
234
231
  slotProps: { htmlInput: { "aria-label": "Filter values" } }
235
- }), /* @__PURE__ */ S("div", {
236
- className: s.pillGroupScroll,
237
- children: /* @__PURE__ */ S(y, {
238
- className: s.pillGroup,
239
- value: n,
240
- onChange: (e, t) => r(t),
232
+ }), /* @__PURE__ */ w("div", {
233
+ className: c.pillGroupScroll,
234
+ children: /* @__PURE__ */ w(x, {
235
+ className: c.pillGroup,
236
+ value: r,
237
+ onChange: (e, t) => a(t),
241
238
  "aria-label": "Selected values",
242
- children: f.map((e) => /* @__PURE__ */ S(v, {
239
+ children: _.map((e) => /* @__PURE__ */ w(b, {
243
240
  value: e,
244
- children: i(e)
241
+ children: h(e)
245
242
  }, e))
246
243
  })
247
244
  })]
248
245
  });
249
246
  }
250
- function A(e, t) {
247
+ function M(e, t) {
251
248
  let n = e.find((e) => e.columnName === t);
252
- return n == null ? [] : n.concreteType === "org.sagebionetworks.repo.model.table.FacetColumnResultValues" ? n.facetValues.map((e) => e.value) : [];
249
+ return n == null || !a(n) ? [] : n.facetValues.map((e) => e.value);
253
250
  }
254
- function j(e, t) {
255
- return e.some((e) => e.columnName === t && e.concreteType === "org.sagebionetworks.repo.model.table.FacetColumnResultValues");
251
+ function N(e, t) {
252
+ return e.some((e) => e.columnName === t && a(e));
256
253
  }
257
254
  //#endregion
258
- export { E as FilterConditionRow };
255
+ export { O as FilterConditionRow, A as PILL_FILTER_THRESHOLD };
259
256
 
260
257
  //# sourceMappingURL=FilterConditionRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterConditionRow.js","names":[],"sources":["../../../src/components/QueryBuilder/FilterConditionRow.tsx"],"sourcesContent":["import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline'\nimport { useSortable } from '@dnd-kit/react/sortable'\nimport {\n Autocomplete,\n IconButton,\n InputLabel,\n MenuItem,\n Select,\n TextField,\n ToggleButton,\n ToggleButtonGroup,\n Tooltip,\n} from '@mui/material'\nimport { ColumnModel } from '@sage-bionetworks/synapse-types'\nimport { useMemo, useState } from 'react'\nimport { splitAndTrim } from '../../utils/functions/StringUtils'\nimport { useQueryBuilderInternalContext } from './QueryBuilderInternalContext'\nimport {\n availableOpsForKind,\n classifyColumn,\n labelForFacetValue,\n labelForOp,\n QBColumnKind,\n} from './queryBuilderMetadata'\nimport styles from './FilterConditionRow.module.scss'\nimport { QBDragHandle } from './QBDragHandle'\nimport dragStyles from './queryBuilderDrag.module.scss'\nimport { defaultOpForColumnType } from './queryBuilderOperations'\nimport { QBCondition, QBConditionOp } from './QueryBuilderTypes'\n\nexport type FilterConditionRowProps = {\n condition: QBCondition\n parentGroupId: string\n index: number\n}\n\nexport function FilterConditionRow(props: FilterConditionRowProps) {\n const { condition, parentGroupId, index } = props\n const {\n columnModels,\n facetResults,\n onlyFacetedColumns,\n getColumnDisplayName,\n updateConditionAt,\n removeConditionAt,\n } = useQueryBuilderInternalContext()\n\n // A condition is a drag source only. Dropping onto a condition has no\n // meaning in a boolean tree — a node joins a group, not another leaf — so\n // groups own every drop zone and this row never becomes a target.\n const {\n ref: sortableRef,\n handleRef,\n isDragSource,\n } = useSortable({\n id: condition.id,\n index,\n group: parentGroupId,\n disabled: { droppable: true },\n })\n\n const facetColumnNames = useMemo(\n () =>\n new Set(\n facetResults\n .filter(\n f =>\n f.concreteType ===\n 'org.sagebionetworks.repo.model.table.FacetColumnResultValues',\n )\n .map(f => f.columnName),\n ),\n [facetResults],\n )\n\n const propertyOptions = useMemo(() => {\n const source = onlyFacetedColumns\n ? columnModels.filter(cm => facetColumnNames.has(cm.name))\n : columnModels\n return source.map(cm => ({\n name: cm.name,\n columnType: cm.columnType as string,\n label: getColumnDisplayName(cm.name),\n }))\n }, [columnModels, facetColumnNames, onlyFacetedColumns, getColumnDisplayName])\n\n const selectedOption =\n propertyOptions.find(opt => opt.name === condition.columnName) ?? null\n\n const hasFacet =\n condition.columnName != null && facetColumnNames.has(condition.columnName)\n const columnKind = classifyColumn(condition.columnType, hasFacet)\n const availableOps = availableOpsForKind(columnKind)\n\n const operatorLabelId = `qb-op-label-${condition.id}`\n\n return (\n <div\n ref={sortableRef}\n className={`${styles.row}${isDragSource ? ` ${dragStyles.dragSource}` : ''}`}\n role=\"group\"\n aria-label={`Filter condition${condition.columnName ? ` on ${condition.columnName}` : ''}`}\n data-qb-node-id={condition.id}\n >\n <QBDragHandle\n handleRef={handleRef}\n label=\"Drag condition into a condition group\"\n />\n\n <Tooltip title=\"Remove condition\">\n <IconButton\n size=\"small\"\n className={styles.remove}\n aria-label=\"Remove condition\"\n onClick={() => removeConditionAt(condition.id)}\n >\n <DeleteOutlineIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n <Autocomplete\n className={styles.propertyPicker}\n size=\"small\"\n options={propertyOptions}\n getOptionLabel={opt => opt.label}\n isOptionEqualToValue={(a, b) => a.name === b.name}\n value={selectedOption}\n renderInput={params => (\n <TextField\n {...params}\n variant=\"outlined\"\n placeholder=\"Select property…\"\n inputProps={{ ...params.inputProps, 'aria-label': 'Property' }}\n />\n )}\n onChange={(_event, value) => {\n if (value == null) return\n // Pick a default op that matches the new column's kind (so a\n // faceted column shifts the row into pill-picker mode, a numeric\n // column into range mode, etc.). Fall back to the raw columnType\n // default if the kind has no ops.\n const nextKind = classifyColumn(\n value.columnType,\n hasFacetForColumnName(facetResults, value.name),\n )\n const opsForKind = availableOpsForKind(nextKind)\n const nextOp =\n opsForKind.length > 0\n ? opsForKind[0]\n : defaultOpForColumnType(value.columnType)\n updateConditionAt(condition.id, {\n columnName: value.name,\n columnType: value.columnType,\n op: nextOp,\n values: [],\n rangeMin: null,\n rangeMax: null,\n text: null,\n })\n }}\n />\n\n {availableOps.length > 0 && (\n <>\n <InputLabel id={operatorLabelId} sx={{ display: 'none' }}>\n Operator\n </InputLabel>\n <Select\n className={styles.operatorPicker}\n size=\"small\"\n labelId={operatorLabelId}\n variant=\"outlined\"\n value={\n availableOps.includes(condition.op)\n ? condition.op\n : availableOps[0]\n }\n onChange={event => {\n const nextOp = event.target.value as QBConditionOp\n updateConditionAt(condition.id, { op: nextOp })\n }}\n aria-label=\"Operator\"\n >\n {availableOps.map(op => (\n <MenuItem key={op} value={op}>\n {labelForOp(op)}\n </MenuItem>\n ))}\n </Select>\n </>\n )}\n\n <ValueInput\n condition={condition}\n columnKind={columnKind}\n hasFacet={hasFacet}\n columnModels={columnModels}\n facetValues={\n hasFacet && condition.columnName != null\n ? findFacetValues(facetResults, condition.columnName)\n : []\n }\n onChange={patch => updateConditionAt(condition.id, patch)}\n />\n </div>\n )\n}\n\ntype ValueInputProps = {\n condition: QBCondition\n columnKind: QBColumnKind\n hasFacet: boolean\n columnModels: ColumnModel[]\n facetValues: string[]\n onChange: (patch: Partial<Omit<QBCondition, 'kind' | 'id'>>) => void\n}\n\nfunction ValueInput(props: ValueInputProps) {\n const { condition, columnKind, hasFacet, facetValues, onChange } = props\n const { op } = condition\n\n // Presence operators have no input at all.\n if (op === 'has_value' || op === 'no_value') return null\n\n switch (op) {\n case 'is_any_of':\n case 'is_all_of':\n if ((columnKind === 'enum' || columnKind === 'list') && hasFacet) {\n return (\n <FacetPillGroup\n facetValues={facetValues}\n selectedValues={condition.values}\n onChange={next => onChange({ values: next })}\n />\n )\n }\n return (\n <TextField\n className={styles.textInput}\n size=\"small\"\n variant=\"outlined\"\n placeholder=\"Comma-separated values\"\n value={condition.values.join(', ')}\n slotProps={{ htmlInput: { 'aria-label': 'Values' } }}\n onChange={event =>\n onChange({ values: splitAndTrim(event.target.value) })\n }\n />\n )\n case 'between':\n return (\n <>\n <TextField\n className={styles.rangeInput}\n size=\"small\"\n variant=\"outlined\"\n type=\"text\"\n placeholder=\"Min\"\n value={condition.rangeMin ?? ''}\n slotProps={{ htmlInput: { 'aria-label': 'Minimum' } }}\n onChange={event => onChange({ rangeMin: event.target.value })}\n />\n <span aria-hidden=\"true\">to</span>\n <TextField\n className={styles.rangeInput}\n size=\"small\"\n variant=\"outlined\"\n type=\"text\"\n placeholder=\"Max\"\n value={condition.rangeMax ?? ''}\n slotProps={{ htmlInput: { 'aria-label': 'Maximum' } }}\n onChange={event => onChange({ rangeMax: event.target.value })}\n />\n </>\n )\n case 'gt':\n case 'gte':\n return (\n <TextField\n className={styles.rangeInput}\n size=\"small\"\n variant=\"outlined\"\n type=\"text\"\n value={condition.rangeMin ?? ''}\n slotProps={{ htmlInput: { 'aria-label': 'Value' } }}\n onChange={event => onChange({ rangeMin: event.target.value })}\n />\n )\n case 'lt':\n case 'lte':\n return (\n <TextField\n className={styles.rangeInput}\n size=\"small\"\n variant=\"outlined\"\n type=\"text\"\n value={condition.rangeMax ?? ''}\n slotProps={{ htmlInput: { 'aria-label': 'Value' } }}\n onChange={event => onChange({ rangeMax: event.target.value })}\n />\n )\n case 'equal':\n case 'not_equal':\n if (columnKind === 'boolean') {\n return (\n <ToggleButtonGroup\n className={styles.pillGroup}\n exclusive\n value={condition.values[0] ?? null}\n onChange={(_event, next: string | null) => {\n onChange({ values: next == null ? [] : [next] })\n }}\n aria-label=\"Boolean value\"\n >\n <ToggleButton value=\"true\">Yes</ToggleButton>\n <ToggleButton value=\"false\">No</ToggleButton>\n </ToggleButtonGroup>\n )\n }\n return (\n <TextField\n className={styles.textInput}\n size=\"small\"\n variant=\"outlined\"\n value={condition.values[0] ?? ''}\n slotProps={{ htmlInput: { 'aria-label': 'Value' } }}\n onChange={event => onChange({ values: [event.target.value] })}\n />\n )\n case 'contains':\n case 'starts_with':\n case 'ends_with':\n case 'is_exactly':\n return (\n <TextField\n className={styles.textInput}\n size=\"small\"\n variant=\"outlined\"\n value={condition.text ?? ''}\n slotProps={{ htmlInput: { 'aria-label': 'Value' } }}\n onChange={event => onChange({ text: event.target.value })}\n />\n )\n default:\n op satisfies never\n return null\n }\n}\n\ntype FacetPillGroupProps = {\n facetValues: string[]\n selectedValues: string[]\n onChange: (next: string[]) => void\n}\n\n// Above this many pills we show a text filter above the group.\nconst PILL_FILTER_THRESHOLD = 40\n\nfunction FacetPillGroup(props: FacetPillGroupProps) {\n const { facetValues, selectedValues, onChange } = props\n const [filter, setFilter] = useState('')\n const showFilter = facetValues.length > PILL_FILTER_THRESHOLD\n\n // Sort alphabetically by the user-facing label so the pill order is\n // predictable regardless of the backend's facet-result ordering.\n const sortedValues = useMemo(() => {\n return [...facetValues].sort((a, b) =>\n labelForFacetValue(a).localeCompare(labelForFacetValue(b), undefined, {\n sensitivity: 'base',\n }),\n )\n }, [facetValues])\n\n const visibleValues = useMemo(() => {\n if (!showFilter || filter.trim() === '') return sortedValues\n const q = filter.trim().toLowerCase()\n return sortedValues.filter(v =>\n labelForFacetValue(v).toLowerCase().includes(q),\n )\n }, [sortedValues, filter, showFilter])\n\n return (\n <div className={styles.pillGroupContainer}>\n {showFilter && (\n <TextField\n className={styles.pillFilter}\n size=\"small\"\n variant=\"outlined\"\n placeholder={`Filter ${facetValues.length} values…`}\n value={filter}\n onChange={event => setFilter(event.target.value)}\n slotProps={{ htmlInput: { 'aria-label': 'Filter values' } }}\n />\n )}\n <div className={styles.pillGroupScroll}>\n <ToggleButtonGroup\n className={styles.pillGroup}\n value={selectedValues}\n onChange={(_event, next: string[]) => onChange(next)}\n aria-label=\"Selected values\"\n >\n {visibleValues.map(value => (\n <ToggleButton key={value} value={value}>\n {labelForFacetValue(value)}\n </ToggleButton>\n ))}\n </ToggleButtonGroup>\n </div>\n </div>\n )\n}\n\nfunction findFacetValues(\n facetResults: readonly ReturnType<\n typeof useQueryBuilderInternalContext\n >['facetResults'][number][],\n columnName: string,\n): string[] {\n const match = facetResults.find(f => f.columnName === columnName)\n if (match == null) return []\n if (\n match.concreteType ===\n 'org.sagebionetworks.repo.model.table.FacetColumnResultValues'\n ) {\n return match.facetValues.map(v => v.value)\n }\n return []\n}\n\nfunction hasFacetForColumnName(\n facetResults: readonly ReturnType<\n typeof useQueryBuilderInternalContext\n >['facetResults'][number][],\n columnName: string,\n): boolean {\n return facetResults.some(\n f =>\n f.columnName === columnName &&\n f.concreteType ===\n 'org.sagebionetworks.repo.model.table.FacetColumnResultValues',\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"FilterConditionRow.js","names":[],"sources":["../../../src/components/QueryBuilder/FilterConditionRow.tsx"],"sourcesContent":["import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline'\nimport { useSortable } from '@dnd-kit/react/sortable'\nimport {\n Autocomplete,\n IconButton,\n InputLabel,\n MenuItem,\n Select,\n TextField,\n ToggleButton,\n ToggleButtonGroup,\n Tooltip,\n} from '@mui/material'\nimport { FacetColumnResult } from '@sage-bionetworks/synapse-types'\nimport { useCallback, useMemo, useState } from 'react'\nimport { splitAndTrim } from '../../utils/functions/StringUtils'\nimport { useQueryBuilderInternalContext } from './QueryBuilderInternalContext'\nimport {\n availableOpsForKind,\n classifyColumn,\n facetValueMatchesFilter,\n isFacetColumnResultValues,\n labelForOp,\n QBColumnKind,\n} from './queryBuilderMetadata'\nimport styles from './FilterConditionRow.module.scss'\nimport { QBDragHandle } from './QBDragHandle'\nimport dragStyles from './queryBuilderDrag.module.scss'\nimport { defaultOpForColumnType } from './queryBuilderOperations'\nimport { QBCondition, QBConditionOp } from './QueryBuilderTypes'\n\nexport type FilterConditionRowProps = {\n condition: QBCondition\n parentGroupId: string\n index: number\n}\n\nexport function FilterConditionRow(props: FilterConditionRowProps) {\n const { condition, parentGroupId, index } = props\n const {\n columnModels,\n facetResults,\n onlyFacetedColumns,\n getColumnDisplayName,\n updateConditionAt,\n removeConditionAt,\n } = useQueryBuilderInternalContext()\n\n // A condition is a drag source only. Dropping onto a condition has no\n // meaning in a boolean tree — a node joins a group, not another leaf — so\n // groups own every drop zone and this row never becomes a target.\n const {\n ref: sortableRef,\n handleRef,\n isDragSource,\n } = useSortable({\n id: condition.id,\n index,\n group: parentGroupId,\n disabled: { droppable: true },\n })\n\n const facetColumnNames = useMemo(\n () =>\n new Set(\n facetResults.filter(isFacetColumnResultValues).map(f => f.columnName),\n ),\n [facetResults],\n )\n\n const propertyOptions = useMemo(() => {\n const source = onlyFacetedColumns\n ? columnModels.filter(cm => facetColumnNames.has(cm.name))\n : columnModels\n return source.map(cm => ({\n name: cm.name,\n columnType: cm.columnType as string,\n label: getColumnDisplayName(cm.name),\n }))\n }, [columnModels, facetColumnNames, onlyFacetedColumns, getColumnDisplayName])\n\n const selectedOption =\n propertyOptions.find(opt => opt.name === condition.columnName) ?? null\n\n const hasFacet =\n condition.columnName != null && facetColumnNames.has(condition.columnName)\n const columnKind = classifyColumn(condition.columnType, hasFacet)\n const availableOps = availableOpsForKind(columnKind)\n\n const operatorLabelId = `qb-op-label-${condition.id}`\n\n return (\n <div\n ref={sortableRef}\n className={`${styles.row}${isDragSource ? ` ${dragStyles.dragSource}` : ''}`}\n role=\"group\"\n aria-label={`Filter condition${condition.columnName ? ` on ${condition.columnName}` : ''}`}\n data-qb-node-id={condition.id}\n >\n <QBDragHandle\n handleRef={handleRef}\n label=\"Drag condition into a condition group\"\n />\n\n <Tooltip title=\"Remove condition\">\n <IconButton\n size=\"small\"\n className={styles.remove}\n aria-label=\"Remove condition\"\n onClick={() => removeConditionAt(condition.id)}\n >\n <DeleteOutlineIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n <Autocomplete\n className={styles.propertyPicker}\n size=\"small\"\n options={propertyOptions}\n getOptionLabel={opt => opt.label}\n isOptionEqualToValue={(a, b) => a.name === b.name}\n value={selectedOption}\n renderInput={params => (\n <TextField\n {...params}\n variant=\"outlined\"\n placeholder=\"Select property…\"\n inputProps={{ ...params.inputProps, 'aria-label': 'Property' }}\n />\n )}\n onChange={(_event, value) => {\n if (value == null) return\n // Pick a default op that matches the new column's kind (so a\n // faceted column shifts the row into pill-picker mode, a numeric\n // column into range mode, etc.). Fall back to the raw columnType\n // default if the kind has no ops.\n const nextKind = classifyColumn(\n value.columnType,\n hasFacetForColumnName(facetResults, value.name),\n )\n const opsForKind = availableOpsForKind(nextKind)\n const nextOp =\n opsForKind.length > 0\n ? opsForKind[0]\n : defaultOpForColumnType(value.columnType)\n updateConditionAt(condition.id, {\n columnName: value.name,\n columnType: value.columnType,\n op: nextOp,\n values: [],\n rangeMin: null,\n rangeMax: null,\n text: null,\n })\n }}\n />\n\n {availableOps.length > 0 && (\n <>\n <InputLabel id={operatorLabelId} sx={{ display: 'none' }}>\n Operator\n </InputLabel>\n <Select\n className={styles.operatorPicker}\n size=\"small\"\n labelId={operatorLabelId}\n variant=\"outlined\"\n value={\n availableOps.includes(condition.op)\n ? condition.op\n : availableOps[0]\n }\n onChange={event => {\n const nextOp = event.target.value as QBConditionOp\n updateConditionAt(condition.id, { op: nextOp })\n }}\n aria-label=\"Operator\"\n >\n {availableOps.map(op => (\n <MenuItem key={op} value={op}>\n {labelForOp(op)}\n </MenuItem>\n ))}\n </Select>\n </>\n )}\n\n <ValueInput\n condition={condition}\n columnKind={columnKind}\n hasFacet={hasFacet}\n facetValues={\n hasFacet && condition.columnName != null\n ? findFacetValues(facetResults, condition.columnName)\n : []\n }\n onChange={patch => updateConditionAt(condition.id, patch)}\n />\n </div>\n )\n}\n\ntype ValueInputProps = {\n condition: QBCondition\n columnKind: QBColumnKind\n hasFacet: boolean\n facetValues: string[]\n onChange: (patch: Partial<Omit<QBCondition, 'kind' | 'id'>>) => void\n}\n\nfunction ValueInput(props: ValueInputProps) {\n const { condition, columnKind, hasFacet, facetValues, onChange } = props\n const { op } = condition\n\n // Presence operators have no input at all.\n if (op === 'has_value' || op === 'no_value') return null\n\n switch (op) {\n case 'is_any_of':\n case 'is_all_of':\n if ((columnKind === 'enum' || columnKind === 'list') && hasFacet) {\n return (\n <FacetPillGroup\n columnName={condition.columnName}\n facetValues={facetValues}\n selectedValues={condition.values}\n onChange={next => onChange({ values: next })}\n />\n )\n }\n return (\n <TextField\n className={styles.textInput}\n size=\"small\"\n variant=\"outlined\"\n placeholder=\"Comma-separated values\"\n value={condition.values.join(', ')}\n slotProps={{ htmlInput: { 'aria-label': 'Values' } }}\n onChange={event =>\n onChange({ values: splitAndTrim(event.target.value) })\n }\n />\n )\n case 'between':\n return (\n <>\n <TextField\n className={styles.rangeInput}\n size=\"small\"\n variant=\"outlined\"\n type=\"text\"\n placeholder=\"Min\"\n value={condition.rangeMin ?? ''}\n slotProps={{ htmlInput: { 'aria-label': 'Minimum' } }}\n onChange={event => onChange({ rangeMin: event.target.value })}\n />\n <span aria-hidden=\"true\">to</span>\n <TextField\n className={styles.rangeInput}\n size=\"small\"\n variant=\"outlined\"\n type=\"text\"\n placeholder=\"Max\"\n value={condition.rangeMax ?? ''}\n slotProps={{ htmlInput: { 'aria-label': 'Maximum' } }}\n onChange={event => onChange({ rangeMax: event.target.value })}\n />\n </>\n )\n case 'gt':\n case 'gte':\n return (\n <TextField\n className={styles.rangeInput}\n size=\"small\"\n variant=\"outlined\"\n type=\"text\"\n value={condition.rangeMin ?? ''}\n slotProps={{ htmlInput: { 'aria-label': 'Value' } }}\n onChange={event => onChange({ rangeMin: event.target.value })}\n />\n )\n case 'lt':\n case 'lte':\n return (\n <TextField\n className={styles.rangeInput}\n size=\"small\"\n variant=\"outlined\"\n type=\"text\"\n value={condition.rangeMax ?? ''}\n slotProps={{ htmlInput: { 'aria-label': 'Value' } }}\n onChange={event => onChange({ rangeMax: event.target.value })}\n />\n )\n case 'equal':\n case 'not_equal':\n if (columnKind === 'boolean') {\n return (\n <ToggleButtonGroup\n className={styles.pillGroup}\n exclusive\n value={condition.values[0] ?? null}\n onChange={(_event, next: string | null) => {\n onChange({ values: next == null ? [] : [next] })\n }}\n aria-label=\"Boolean value\"\n >\n <ToggleButton value=\"true\">Yes</ToggleButton>\n <ToggleButton value=\"false\">No</ToggleButton>\n </ToggleButtonGroup>\n )\n }\n return (\n <TextField\n className={styles.textInput}\n size=\"small\"\n variant=\"outlined\"\n value={condition.values[0] ?? ''}\n slotProps={{ htmlInput: { 'aria-label': 'Value' } }}\n onChange={event => onChange({ values: [event.target.value] })}\n />\n )\n case 'contains':\n case 'starts_with':\n case 'ends_with':\n case 'is_exactly':\n return (\n <TextField\n className={styles.textInput}\n size=\"small\"\n variant=\"outlined\"\n value={condition.text ?? ''}\n slotProps={{ htmlInput: { 'aria-label': 'Value' } }}\n onChange={event => onChange({ text: event.target.value })}\n />\n )\n default:\n op satisfies never\n return null\n }\n}\n\ntype FacetPillGroupProps = {\n columnName: string | null\n facetValues: string[]\n selectedValues: string[]\n onChange: (next: string[]) => void\n}\n\n// Above this many pills we show a text filter above the group.\nexport const PILL_FILTER_THRESHOLD = 40\n\nfunction FacetPillGroup(props: FacetPillGroupProps) {\n const { columnName, facetValues, selectedValues, onChange } = props\n const { getValueDisplayName } = useQueryBuilderInternalContext()\n const [filter, setFilter] = useState('')\n const showFilter = facetValues.length > PILL_FILTER_THRESHOLD\n\n const labelForValue = useCallback(\n (value: string) => getValueDisplayName(columnName, value),\n [getValueDisplayName, columnName],\n )\n\n // Sort alphabetically by the user-facing label so the pill order is\n // predictable regardless of the backend's facet-result ordering.\n const sortedValues = useMemo(() => {\n return [...facetValues].sort((a, b) =>\n labelForValue(a).localeCompare(labelForValue(b), undefined, {\n sensitivity: 'base',\n }),\n )\n }, [facetValues, labelForValue])\n\n const visibleValues = useMemo(() => {\n if (!showFilter) return sortedValues\n return sortedValues.filter(v =>\n facetValueMatchesFilter(v, labelForValue(v), filter),\n )\n }, [sortedValues, filter, showFilter, labelForValue])\n\n return (\n <div className={styles.pillGroupContainer}>\n {showFilter && (\n <TextField\n className={styles.pillFilter}\n size=\"small\"\n variant=\"outlined\"\n placeholder={`Filter ${facetValues.length} values…`}\n value={filter}\n onChange={event => setFilter(event.target.value)}\n slotProps={{ htmlInput: { 'aria-label': 'Filter values' } }}\n />\n )}\n <div className={styles.pillGroupScroll}>\n <ToggleButtonGroup\n className={styles.pillGroup}\n value={selectedValues}\n onChange={(_event, next: string[]) => onChange(next)}\n aria-label=\"Selected values\"\n >\n {visibleValues.map(value => (\n <ToggleButton key={value} value={value}>\n {labelForValue(value)}\n </ToggleButton>\n ))}\n </ToggleButtonGroup>\n </div>\n </div>\n )\n}\n\nfunction findFacetValues(\n facetResults: readonly FacetColumnResult[],\n columnName: string,\n): string[] {\n const match = facetResults.find(f => f.columnName === columnName)\n if (match == null || !isFacetColumnResultValues(match)) return []\n return match.facetValues.map(v => v.value)\n}\n\nfunction hasFacetForColumnName(\n facetResults: readonly FacetColumnResult[],\n columnName: string,\n): boolean {\n return facetResults.some(\n f => f.columnName === columnName && isFacetColumnResultValues(f),\n )\n}\n"],"mappings":"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"}
@@ -8,12 +8,12 @@ import s from "./FilterGroupNode.module.js";
8
8
  import { Button as c, ToggleButton as l, ToggleButtonGroup as u } from "@mui/material";
9
9
  import { jsx as d, jsxs as f } from "react/jsx-runtime";
10
10
  import { useForkRef as p } from "@mui/material/utils";
11
- import { useSortable as m } from "@dnd-kit/react/sortable";
12
- import { pointerIntersection as h } from "@dnd-kit/collision";
13
- import { useDroppable as g } from "@dnd-kit/react";
11
+ import { useDroppable as m } from "@dnd-kit/react";
12
+ import { useSortable as h } from "@dnd-kit/react/sortable";
13
+ import { pointerIntersection as g } from "@dnd-kit/collision";
14
14
  //#region src/components/QueryBuilder/FilterGroupNode.tsx
15
15
  function _(b) {
16
- let { group: x, isRoot: S = !1, parentGroupId: C, index: w, depth: T = 0 } = b, { addConditionAt: E, addChildGroupAt: D, clearGroupAt: O, updateGroupAt: k, removeGroupAt: A } = r(), { ref: j, handleRef: M, isDragSource: N } = m({
16
+ let { group: x, isRoot: S = !1, parentGroupId: C, index: w, depth: T = 0 } = b, { addConditionAt: E, addChildGroupAt: D, clearGroupAt: O, updateGroupAt: k, removeGroupAt: A } = r(), { ref: j, handleRef: M, isDragSource: N } = h({
17
17
  id: x.id,
18
18
  index: w ?? 0,
19
19
  group: C ?? x.id,
@@ -21,10 +21,10 @@ function _(b) {
21
21
  draggable: S,
22
22
  droppable: !0
23
23
  }
24
- }), { ref: P, isDropTarget: F } = g({
24
+ }), { ref: P, isDropTarget: F } = m({
25
25
  id: n(x.id),
26
26
  data: t(x.id),
27
- collisionDetector: h,
27
+ collisionDetector: g,
28
28
  collisionPriority: T
29
29
  }), I = p(j, P), L = {
30
30
  "--qb-accent-color": v(x),
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderControls.d.ts","sourceRoot":"","sources":["../../../src/components/QueryBuilder/QueryBuilderControls.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAe,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAI1D,MAAM,MAAM,yBAAyB,GAAG;IACtC,iEAAiE;IACjE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,2DAA2D;IAC3D,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAID;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CAkLpE"}
1
+ {"version":3,"file":"QueryBuilderControls.d.ts","sourceRoot":"","sources":["../../../src/components/QueryBuilder/QueryBuilderControls.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAe,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAK1D,MAAM,MAAM,yBAAyB,GAAG;IACtC,iEAAiE;IACjE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,2DAA2D;IAC3D,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAID;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CAsLpE"}