synapse-react-client 4.0.38 → 4.0.41

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 (350) hide show
  1. package/dist/SWC.index.d.ts +1 -0
  2. package/dist/SWC.index.d.ts.map +1 -1
  3. package/dist/SWC.index.js +2 -1
  4. package/dist/SWC.index.js.map +1 -1
  5. package/dist/aridhia-queries/useAridhiaQuery.d.ts +6 -2
  6. package/dist/aridhia-queries/useAridhiaQuery.d.ts.map +1 -1
  7. package/dist/aridhia-queries/useAridhiaQuery.js +3 -0
  8. package/dist/aridhia-queries/useAridhiaQuery.js.map +1 -1
  9. package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.d.ts +1 -0
  10. package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.d.ts.map +1 -1
  11. package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js +12 -12
  12. package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
  13. package/dist/components/Aridhia/AridhiaAccessStatus.d.ts +2 -1
  14. package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
  15. package/dist/components/Aridhia/AridhiaAccessStatus.js +57 -31
  16. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  17. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts +12 -0
  18. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts.map +1 -0
  19. package/dist/components/Aridhia/AridhiaDarStatusPopover.js +56 -0
  20. package/dist/components/Aridhia/AridhiaDarStatusPopover.js.map +1 -0
  21. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.d.ts.map +1 -1
  22. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.js +38 -30
  23. package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.js.map +1 -1
  24. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +15 -14
  25. package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -1
  26. package/dist/components/Aridhia/RdcaDapEligibilityDialog.d.ts +11 -0
  27. package/dist/components/Aridhia/RdcaDapEligibilityDialog.d.ts.map +1 -0
  28. package/dist/components/Aridhia/RdcaDapEligibilityDialog.js +37 -0
  29. package/dist/components/Aridhia/RdcaDapEligibilityDialog.js.map +1 -0
  30. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +2 -2
  31. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  32. package/dist/components/Aridhia/aridhiaFairPortalUrls.d.ts +10 -0
  33. package/dist/components/Aridhia/aridhiaFairPortalUrls.d.ts.map +1 -0
  34. package/dist/components/Aridhia/aridhiaFairPortalUrls.js +11 -0
  35. package/dist/components/Aridhia/aridhiaFairPortalUrls.js.map +1 -0
  36. package/dist/components/Aridhia/rdcaDapConstants.d.ts +3 -0
  37. package/dist/components/Aridhia/rdcaDapConstants.d.ts.map +1 -0
  38. package/dist/components/Aridhia/rdcaDapConstants.js +6 -0
  39. package/dist/components/Aridhia/rdcaDapConstants.js.map +1 -0
  40. package/dist/components/Authentication/Constants.d.ts +4 -0
  41. package/dist/components/Authentication/Constants.d.ts.map +1 -1
  42. package/dist/components/Authentication/Constants.js +5 -2
  43. package/dist/components/Authentication/Constants.js.map +1 -1
  44. package/dist/components/Authentication/RecoveryCodeGrid.d.ts.map +1 -1
  45. package/dist/components/Authentication/RecoveryCodeGrid.js +8 -1
  46. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  47. package/dist/components/Authentication/RegenerateBackupCodesWarning.js +4 -1
  48. package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
  49. package/dist/components/Authentication/TOTPForm.d.ts.map +1 -1
  50. package/dist/components/Authentication/TOTPForm.js +20 -18
  51. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  52. package/dist/components/Authentication/TwoFactorBackupCodes.d.ts.map +1 -1
  53. package/dist/components/Authentication/TwoFactorBackupCodes.js +41 -12
  54. package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
  55. package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
  56. package/dist/components/Authentication/TwoFactorEnrollmentForm.js +74 -71
  57. package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
  58. package/dist/components/DataExplorer/DataExplorer.css +1 -1
  59. package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -1
  60. package/dist/components/DataExplorer/DataExplorer.js +50 -50
  61. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  62. package/dist/components/DataExplorer/DataExplorer.module.js +16 -16
  63. package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -1
  64. package/dist/components/DataExplorer/DataExplorer.module.scss +29 -6
  65. package/dist/components/DataGrid/columns/DateTimeColumn.d.ts +16 -7
  66. package/dist/components/DataGrid/columns/DateTimeColumn.d.ts.map +1 -1
  67. package/dist/components/DataGrid/columns/DateTimeColumn.js +79 -57
  68. package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
  69. package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
  70. package/dist/components/DataGrid/components/ReorderColumnsDialog.js +43 -46
  71. package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
  72. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  73. package/dist/components/DataGrid/utils/columnFactory.js +11 -8
  74. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  75. package/dist/components/DatePicker/DatePicker.d.ts +10 -0
  76. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -0
  77. package/dist/components/DatePicker/DatePicker.js +18 -0
  78. package/dist/components/DatePicker/DatePicker.js.map +1 -0
  79. package/dist/components/EntityCitation/EntityCitation.d.ts.map +1 -1
  80. package/dist/components/EntityCitation/EntityCitation.js +8 -5
  81. package/dist/components/EntityCitation/EntityCitation.js.map +1 -1
  82. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.d.ts +11 -0
  83. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.d.ts.map +1 -0
  84. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js +61 -0
  85. package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js.map +1 -0
  86. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts +33 -0
  87. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -0
  88. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +187 -0
  89. package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -0
  90. package/dist/components/FormTemplateEditor/FormTemplatePreview.d.ts +14 -0
  91. package/dist/components/FormTemplateEditor/FormTemplatePreview.d.ts.map +1 -0
  92. package/dist/components/FormTemplateEditor/FormTemplatePreview.js +83 -0
  93. package/dist/components/FormTemplateEditor/FormTemplatePreview.js.map +1 -0
  94. package/dist/components/FormTemplateEditor/JsonSchemaBodyEditor.d.ts +13 -0
  95. package/dist/components/FormTemplateEditor/JsonSchemaBodyEditor.d.ts.map +1 -0
  96. package/dist/components/FormTemplateEditor/JsonSchemaBodyEditor.js +33 -0
  97. package/dist/components/FormTemplateEditor/JsonSchemaBodyEditor.js.map +1 -0
  98. package/dist/components/FormTemplateEditor/formTemplateValidation.d.ts +32 -0
  99. package/dist/components/FormTemplateEditor/formTemplateValidation.d.ts.map +1 -0
  100. package/dist/components/FormTemplateEditor/formTemplateValidation.js +75 -0
  101. package/dist/components/FormTemplateEditor/formTemplateValidation.js.map +1 -0
  102. package/dist/components/FormTemplateEditor/schemaFieldUtils.d.ts +25 -0
  103. package/dist/components/FormTemplateEditor/schemaFieldUtils.d.ts.map +1 -0
  104. package/dist/components/FormTemplateEditor/schemaFieldUtils.js +66 -0
  105. package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -0
  106. package/dist/components/FormTemplateEditor/useSaveFormTemplate.d.ts +28 -0
  107. package/dist/components/FormTemplateEditor/useSaveFormTemplate.d.ts.map +1 -0
  108. package/dist/components/FormTemplateEditor/useSaveFormTemplate.js +39 -0
  109. package/dist/components/FormTemplateEditor/useSaveFormTemplate.js.map +1 -0
  110. package/dist/components/FormTemplateEditor/utils.d.ts +21 -0
  111. package/dist/components/FormTemplateEditor/utils.d.ts.map +1 -0
  112. package/dist/components/FormTemplateEditor/utils.js +27 -0
  113. package/dist/components/FormTemplateEditor/utils.js.map +1 -0
  114. package/dist/components/HasAccess/AccessIcon.d.ts +3 -1
  115. package/dist/components/HasAccess/AccessIcon.d.ts.map +1 -1
  116. package/dist/components/HasAccess/AccessIcon.js +11 -1
  117. package/dist/components/HasAccess/AccessIcon.js.map +1 -1
  118. package/dist/components/JsonSchemaForm/CustomFormContext.d.ts +1 -1
  119. package/dist/components/JsonSchemaForm/CustomFormContext.d.ts.map +1 -1
  120. package/dist/components/JsonSchemaForm/JsonSchemaForm.css +1 -1
  121. package/dist/components/JsonSchemaForm/JsonSchemaForm.module.js +1 -1
  122. package/dist/components/JsonSchemaForm/JsonSchemaForm.module.js.map +1 -1
  123. package/dist/components/JsonSchemaForm/JsonSchemaForm.module.scss +6 -1
  124. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.d.ts.map +1 -1
  125. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js +4 -0
  126. package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
  127. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.d.ts +2 -1
  128. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.d.ts.map +1 -1
  129. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js +81 -53
  130. package/dist/components/PortalHomePageHeader/PortalHomePageHeader.js.map +1 -1
  131. package/dist/components/ProjectInfo/ProjectInfo.d.ts.map +1 -1
  132. package/dist/components/ProjectInfo/ProjectInfo.js +3 -2
  133. package/dist/components/ProjectInfo/ProjectInfo.js.map +1 -1
  134. package/dist/components/QueryBuilder/FilterConditionRow.css +1 -0
  135. package/dist/components/QueryBuilder/FilterConditionRow.d.ts +8 -0
  136. package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -0
  137. package/dist/components/QueryBuilder/FilterConditionRow.js +260 -0
  138. package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -0
  139. package/dist/components/QueryBuilder/FilterConditionRow.module.js +16 -0
  140. package/dist/components/QueryBuilder/FilterConditionRow.module.js.map +1 -0
  141. package/dist/components/QueryBuilder/FilterConditionRow.module.scss +101 -0
  142. package/dist/components/QueryBuilder/FilterGroupNode.css +1 -0
  143. package/dist/components/QueryBuilder/FilterGroupNode.d.ts +11 -0
  144. package/dist/components/QueryBuilder/FilterGroupNode.d.ts.map +1 -0
  145. package/dist/components/QueryBuilder/FilterGroupNode.js +134 -0
  146. package/dist/components/QueryBuilder/FilterGroupNode.js.map +1 -0
  147. package/dist/components/QueryBuilder/FilterGroupNode.module.js +16 -0
  148. package/dist/components/QueryBuilder/FilterGroupNode.module.js.map +1 -0
  149. package/dist/components/QueryBuilder/FilterGroupNode.module.scss +92 -0
  150. package/dist/components/QueryBuilder/QBDragHandle.d.ts +10 -0
  151. package/dist/components/QueryBuilder/QBDragHandle.d.ts.map +1 -0
  152. package/dist/components/QueryBuilder/QBDragHandle.js +22 -0
  153. package/dist/components/QueryBuilder/QBDragHandle.js.map +1 -0
  154. package/dist/components/QueryBuilder/QueryBuilderControls.css +1 -0
  155. package/dist/components/QueryBuilder/QueryBuilderControls.d.ts +21 -0
  156. package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -0
  157. package/dist/components/QueryBuilder/QueryBuilderControls.js +143 -0
  158. package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -0
  159. package/dist/components/QueryBuilder/QueryBuilderControls.module.js +17 -0
  160. package/dist/components/QueryBuilder/QueryBuilderControls.module.js.map +1 -0
  161. package/dist/components/QueryBuilder/QueryBuilderControls.module.scss +79 -0
  162. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +39 -0
  163. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -0
  164. package/dist/components/QueryBuilder/QueryBuilderInternalContext.js +19 -0
  165. package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -0
  166. package/dist/components/QueryBuilder/qbTreeToReadable.d.ts +14 -0
  167. package/dist/components/QueryBuilder/qbTreeToReadable.d.ts.map +1 -0
  168. package/dist/components/QueryBuilder/qbTreeToReadable.js +89 -0
  169. package/dist/components/QueryBuilder/qbTreeToReadable.js.map +1 -0
  170. package/dist/components/QueryBuilder/queryBuilderDnd.d.ts +27 -0
  171. package/dist/components/QueryBuilder/queryBuilderDnd.d.ts.map +1 -0
  172. package/dist/components/QueryBuilder/queryBuilderDnd.js +41 -0
  173. package/dist/components/QueryBuilder/queryBuilderDnd.js.map +1 -0
  174. package/dist/components/QueryBuilder/queryBuilderDrag.css +1 -0
  175. package/dist/components/QueryBuilder/queryBuilderDrag.module.js +8 -0
  176. package/dist/components/QueryBuilder/queryBuilderDrag.module.js.map +1 -0
  177. package/dist/components/QueryBuilder/queryBuilderDrag.module.scss +12 -0
  178. package/dist/components/QueryBuilder/queryBuilderId.d.ts +2 -0
  179. package/dist/components/QueryBuilder/queryBuilderId.d.ts.map +1 -0
  180. package/dist/components/QueryBuilder/queryBuilderId.js +9 -0
  181. package/dist/components/QueryBuilder/queryBuilderId.js.map +1 -0
  182. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +24 -0
  183. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -0
  184. package/dist/components/QueryBuilder/queryBuilderMetadata.js +91 -0
  185. package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -0
  186. package/dist/components/QueryBuilder/queryBuilderOperations.d.ts +71 -0
  187. package/dist/components/QueryBuilder/queryBuilderOperations.d.ts.map +1 -0
  188. package/dist/components/QueryBuilder/queryBuilderOperations.js +203 -0
  189. package/dist/components/QueryBuilder/queryBuilderOperations.js.map +1 -0
  190. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +3 -2
  191. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -1
  192. package/dist/components/QueryBuilder/queryBuilderTranslation.js +82 -84
  193. package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -1
  194. package/dist/components/QueryBuilder/useQBCombinedSql.d.ts +11 -0
  195. package/dist/components/QueryBuilder/useQBCombinedSql.d.ts.map +1 -0
  196. package/dist/components/QueryBuilder/useQBCombinedSql.js +29 -0
  197. package/dist/components/QueryBuilder/useQBCombinedSql.js.map +1 -0
  198. package/dist/components/QueryBuilder/useQBFacetSourceMetadata.d.ts +18 -0
  199. package/dist/components/QueryBuilder/useQBFacetSourceMetadata.d.ts.map +1 -0
  200. package/dist/components/QueryBuilder/useQBFacetSourceMetadata.js +27 -0
  201. package/dist/components/QueryBuilder/useQBFacetSourceMetadata.js.map +1 -0
  202. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +14 -1
  203. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  204. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +183 -119
  205. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  206. package/dist/components/RssFeedCards/RssFeedCards.d.ts +1 -0
  207. package/dist/components/RssFeedCards/RssFeedCards.d.ts.map +1 -1
  208. package/dist/components/RssFeedCards/RssFeedCards.js +11 -11
  209. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  210. package/dist/components/SynapseChat/SynapseChat.d.ts +7 -1
  211. package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
  212. package/dist/components/SynapseChat/SynapseChat.js +76 -71
  213. package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
  214. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts +3 -1
  215. package/dist/components/SynapseChat/SynapsePortalChatDialog.d.ts.map +1 -1
  216. package/dist/components/SynapseChat/SynapsePortalChatDialog.js +24 -13
  217. package/dist/components/SynapseChat/SynapsePortalChatDialog.js.map +1 -1
  218. package/dist/components/SynapseChat/portalChatSessionStorage.d.ts +23 -0
  219. package/dist/components/SynapseChat/portalChatSessionStorage.d.ts.map +1 -0
  220. package/dist/components/SynapseChat/portalChatSessionStorage.js +29 -0
  221. package/dist/components/SynapseChat/portalChatSessionStorage.js.map +1 -0
  222. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts +6 -0
  223. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
  224. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +92 -79
  225. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  226. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts +3 -4
  227. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
  228. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +2 -2
  229. package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
  230. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js +1 -1
  231. package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
  232. package/dist/components/entity/page/action_menu/EntityActionMenu.d.ts.map +1 -1
  233. package/dist/components/entity/page/action_menu/EntityActionMenu.js +9 -2
  234. package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
  235. package/dist/components/entity/page/title_bar/EntityPageTitleBar.d.ts +0 -1
  236. package/dist/components/entity/page/title_bar/EntityPageTitleBar.d.ts.map +1 -1
  237. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +36 -37
  238. package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
  239. package/dist/components/menu/ComplexMenu.js +1 -1
  240. package/dist/components/menu/ComplexMenu.js.map +1 -1
  241. package/dist/components/menu/DropdownMenu.d.ts.map +1 -1
  242. package/dist/components/menu/DropdownMenu.js +4 -0
  243. package/dist/components/menu/DropdownMenu.js.map +1 -1
  244. package/dist/components/styled/LeftRightPanel.d.ts.map +1 -1
  245. package/dist/components/styled/LeftRightPanel.js +19 -2
  246. package/dist/components/styled/LeftRightPanel.js.map +1 -1
  247. package/dist/features/entity/metadata-task/hooks/useMarkCurationTaskInProgress.d.ts +10 -0
  248. package/dist/features/entity/metadata-task/hooks/useMarkCurationTaskInProgress.d.ts.map +1 -0
  249. package/dist/features/entity/metadata-task/hooks/useMarkCurationTaskInProgress.js +20 -0
  250. package/dist/features/entity/metadata-task/hooks/useMarkCurationTaskInProgress.js.map +1 -0
  251. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.d.ts.map +1 -1
  252. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js +29 -20
  253. package/dist/features/entity/metadata-task/hooks/useOpenCuratorButton.js.map +1 -1
  254. package/dist/mocks/accessRequirement/mockFormTemplates.d.ts +16 -0
  255. package/dist/mocks/accessRequirement/mockFormTemplates.d.ts.map +1 -0
  256. package/dist/mocks/accessRequirement/mockFormTemplates.js +63 -0
  257. package/dist/mocks/accessRequirement/mockFormTemplates.js.map +1 -0
  258. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts +7 -0
  259. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.d.ts.map +1 -0
  260. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js +47 -0
  261. package/dist/mocks/accessRequirement/mockJsonSchemaAccessRequirements.js.map +1 -0
  262. package/dist/mocks/accessRequirement/mockJsonSchemas.d.ts +27 -0
  263. package/dist/mocks/accessRequirement/mockJsonSchemas.d.ts.map +1 -0
  264. package/dist/mocks/accessRequirement/mockJsonSchemas.js +83 -0
  265. package/dist/mocks/accessRequirement/mockJsonSchemas.js.map +1 -0
  266. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +18 -1
  267. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
  268. package/dist/mocks/msw/handlers/aridhiaHandlers.js +39 -33
  269. package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
  270. package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts +41 -14
  271. package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts.map +1 -1
  272. package/dist/mocks/msw/handlers/asyncJobHandlers.js +53 -44
  273. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  274. package/dist/mocks/msw/handlers/chatHandlers.d.ts.map +1 -1
  275. package/dist/mocks/msw/handlers/chatHandlers.js +19 -13
  276. package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
  277. package/dist/mocks/msw/handlers/formTemplateHandlers.d.ts +5 -0
  278. package/dist/mocks/msw/handlers/formTemplateHandlers.d.ts.map +1 -0
  279. package/dist/mocks/msw/handlers/formTemplateHandlers.js +65 -0
  280. package/dist/mocks/msw/handlers/formTemplateHandlers.js.map +1 -0
  281. package/dist/mocks/msw/handlers/schemaHandlers.d.ts +2 -1
  282. package/dist/mocks/msw/handlers/schemaHandlers.d.ts.map +1 -1
  283. package/dist/mocks/msw/handlers/schemaHandlers.js +13 -7
  284. package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
  285. package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts.map +1 -1
  286. package/dist/mocks/msw/handlers/searchQueryHandlers.js +24 -18
  287. package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
  288. package/dist/mocks/msw/handlers/tableQueryHandlers.d.ts.map +1 -1
  289. package/dist/mocks/msw/handlers/tableQueryHandlers.js +35 -16
  290. package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
  291. package/dist/mocks/msw/handlers.d.ts.map +1 -1
  292. package/dist/mocks/msw/handlers.js +49 -47
  293. package/dist/mocks/msw/handlers.js.map +1 -1
  294. package/dist/style/abstracts/_cssVariables.scss +7 -0
  295. package/dist/style/components/_query-wrapper-plot-nav.scss +9 -0
  296. package/dist/style/main.css +1 -1
  297. package/dist/synapse-queries/KeyFactory.d.ts +5 -1
  298. package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
  299. package/dist/synapse-queries/KeyFactory.js +14 -2
  300. package/dist/synapse-queries/KeyFactory.js.map +1 -1
  301. package/dist/synapse-queries/chat/useChat.d.ts.map +1 -1
  302. package/dist/synapse-queries/chat/useChat.js +2 -4
  303. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  304. package/dist/synapse-queries/dataaccess/index.d.ts +1 -0
  305. package/dist/synapse-queries/dataaccess/index.d.ts.map +1 -1
  306. package/dist/synapse-queries/dataaccess/index.js +4 -3
  307. package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts +41 -0
  308. package/dist/synapse-queries/dataaccess/useFormTemplate.d.ts.map +1 -0
  309. package/dist/synapse-queries/dataaccess/useFormTemplate.js +63 -0
  310. package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -0
  311. package/dist/synapse-queries/index.js +186 -180
  312. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts +9 -0
  313. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts.map +1 -0
  314. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js +22 -0
  315. package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js.map +1 -0
  316. package/dist/testutils/ReactQueryMockUtils.js.map +1 -1
  317. package/dist/testutils/vitest.setup.js +18 -9
  318. package/dist/testutils/vitest.setup.js.map +1 -1
  319. package/dist/tsconfig.build.tsbuildinfo +1 -1
  320. package/dist/utils/APIConstants.d.ts +1 -0
  321. package/dist/utils/APIConstants.d.ts.map +1 -1
  322. package/dist/utils/APIConstants.js +2 -2
  323. package/dist/utils/APIConstants.js.map +1 -1
  324. package/dist/utils/appendFinalQueryParamKey.d.ts.map +1 -1
  325. package/dist/utils/appendFinalQueryParamKey.js +4 -1
  326. package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
  327. package/dist/utils/functions/ArrayUtils.d.ts +3 -0
  328. package/dist/utils/functions/ArrayUtils.d.ts.map +1 -1
  329. package/dist/utils/functions/ArrayUtils.js +7 -1
  330. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  331. package/dist/utils/jsonschema/generateDataAccessSchema.d.ts +26 -0
  332. package/dist/utils/jsonschema/generateDataAccessSchema.d.ts.map +1 -0
  333. package/dist/utils/jsonschema/generateDataAccessSchema.js +28 -0
  334. package/dist/utils/jsonschema/generateDataAccessSchema.js.map +1 -0
  335. package/dist/utils/jsonschema/getType.d.ts.map +1 -1
  336. package/dist/utils/jsonschema/getType.js +4 -1
  337. package/dist/utils/jsonschema/getType.js.map +1 -1
  338. package/dist/utils/jsonschema/submissionContext.d.ts +86 -0
  339. package/dist/utils/jsonschema/submissionContext.d.ts.map +1 -0
  340. package/dist/utils/jsonschema/submissionContext.js +186 -0
  341. package/dist/utils/jsonschema/submissionContext.js.map +1 -0
  342. package/package.json +10 -8
  343. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.d.ts +0 -6
  344. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.d.ts.map +0 -1
  345. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js +0 -32
  346. package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +0 -1
  347. package/dist/components/entity/page/title_bar/TitleBarProperties.d.ts +0 -9
  348. package/dist/components/entity/page/title_bar/TitleBarProperties.d.ts.map +0 -1
  349. package/dist/components/entity/page/title_bar/TitleBarProperties.js +0 -24
  350. package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +0 -1
@@ -2,7 +2,7 @@ import "react";
2
2
  import { Box as e, Button as t, Stack as n, Typography as r } from "@mui/material";
3
3
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
4
4
  //#region src/components/PortalHomePageHeader/PortalHomePageHeader.tsx
5
- var o = ({ backgroundCss: o, buttonLink: s, title: c, subTitle: l, description: u, backgroundMp4: d, backgroundMp4Css: f, textAreaWidth: p = "746px" }) => /* @__PURE__ */ a(e, {
5
+ var o = ({ backgroundCss: o, buttonLink: s, title: c, subTitle: l, description: u, backgroundMp4: d, backgroundMp4Css: f, textAreaWidth: p = "746px", children: m }) => /* @__PURE__ */ a(e, {
6
6
  "data-testid": "HeaderContainer",
7
7
  sx: {
8
8
  background: o,
@@ -33,67 +33,95 @@ var o = ({ backgroundCss: o, buttonLink: s, title: c, subTitle: l, description:
33
33
  type: "video/mp4"
34
34
  }), "Your browser does not support the video tag."]
35
35
  }), /* @__PURE__ */ a(n, {
36
+ direction: {
37
+ xs: "column",
38
+ lg: "row"
39
+ },
36
40
  sx: {
37
- alignItems: "flex-start",
41
+ alignItems: {
42
+ xs: "flex-start",
43
+ lg: m ? "center" : "flex-start"
44
+ },
45
+ justifyContent: "space-between",
38
46
  padding: {
39
47
  xs: "40px",
40
48
  md: "40px 0"
41
49
  },
42
- gap: "24px",
43
- width: {
44
- sm: "100%",
45
- md: p
50
+ gap: {
51
+ xs: "40px",
52
+ lg: "80px"
46
53
  }
47
54
  },
48
- children: [
49
- /* @__PURE__ */ i(r, {
50
- variant: "headline2",
51
- sx: {
52
- fontWeight: 300,
53
- lineHeight: "130%",
54
- fontSize: {
55
- xs: "36px",
56
- md: "42px"
57
- },
58
- color: "grey.1000"
55
+ children: [/* @__PURE__ */ a(n, {
56
+ sx: {
57
+ alignItems: "flex-start",
58
+ gap: "24px",
59
+ minWidth: 0,
60
+ flex: m ? { lg: "1 1 0" } : void 0,
61
+ width: m ? "100%" : {
62
+ sm: "100%",
63
+ md: p
59
64
  },
60
- children: c
61
- }),
62
- l && /* @__PURE__ */ i(r, {
63
- variant: "headline3",
64
- sx: {
65
- fontSize: "24px",
66
- fontWeight: "400",
67
- lineHeight: "160%",
68
- color: "grey.1000"
69
- },
70
- children: l
71
- }),
72
- /* @__PURE__ */ i(r, {
73
- sx: {
74
- fontSize: "18px",
75
- lineHeight: "140%",
76
- color: "grey.900"
77
- },
78
- children: u
79
- }),
80
- s && /* @__PURE__ */ i(t, {
81
- href: s,
82
- target: "_blank",
83
- variant: "contained",
84
- role: "button",
85
- sx: (e) => ({
86
- whiteSpace: "nowrap",
87
- alignSelf: "flex-start",
88
- padding: "6px 24px",
89
- fontWeight: 600,
90
- boxShadow: "0px 16px 16px 0px rgba(0, 0, 0, 0.10), 0px 4px 4px 0px rgba(0, 0, 0, 0.10), 0px 1px 1px 0px rgba(0, 0, 0, 0.10)",
91
- "&:hover": { boxShadow: "0px 16px 16px 0px rgba(0, 0, 0, 0.10), 0px 4px 4px 0px rgba(0, 0, 0, 0.10), 0px 1px 1px 0px rgba(0, 0, 0, 0.10)" },
92
- [e.breakpoints.down("sm")]: { width: "100%" }
65
+ maxWidth: m ? { md: p } : void 0
66
+ },
67
+ children: [
68
+ /* @__PURE__ */ i(r, {
69
+ variant: "headline2",
70
+ sx: {
71
+ fontWeight: 300,
72
+ lineHeight: "130%",
73
+ fontSize: {
74
+ xs: "36px",
75
+ md: "42px"
76
+ },
77
+ color: "grey.1000"
78
+ },
79
+ children: c
80
+ }),
81
+ l && /* @__PURE__ */ i(r, {
82
+ variant: "headline3",
83
+ sx: {
84
+ fontSize: "24px",
85
+ fontWeight: "400",
86
+ lineHeight: "160%",
87
+ color: "grey.1000"
88
+ },
89
+ children: l
93
90
  }),
94
- children: "Learn more"
95
- })
96
- ]
91
+ /* @__PURE__ */ i(r, {
92
+ sx: {
93
+ fontSize: "18px",
94
+ lineHeight: "140%",
95
+ color: "grey.900"
96
+ },
97
+ children: u
98
+ }),
99
+ s && /* @__PURE__ */ i(t, {
100
+ href: s,
101
+ target: "_blank",
102
+ variant: "contained",
103
+ role: "button",
104
+ sx: (e) => ({
105
+ whiteSpace: "nowrap",
106
+ alignSelf: "flex-start",
107
+ padding: "6px 24px",
108
+ fontWeight: 600,
109
+ boxShadow: "0px 16px 16px 0px rgba(0, 0, 0, 0.10), 0px 4px 4px 0px rgba(0, 0, 0, 0.10), 0px 1px 1px 0px rgba(0, 0, 0, 0.10)",
110
+ "&:hover": { boxShadow: "0px 16px 16px 0px rgba(0, 0, 0, 0.10), 0px 4px 4px 0px rgba(0, 0, 0, 0.10), 0px 1px 1px 0px rgba(0, 0, 0, 0.10)" },
111
+ [e.breakpoints.down("sm")]: { width: "100%" }
112
+ }),
113
+ children: "Learn more"
114
+ })
115
+ ]
116
+ }), m && /* @__PURE__ */ i(e, {
117
+ sx: {
118
+ flex: { lg: "1 1 0" },
119
+ minWidth: 0,
120
+ width: "100%",
121
+ maxWidth: { lg: "600px" }
122
+ },
123
+ children: m
124
+ })]
97
125
  })]
98
126
  });
99
127
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"PortalHomePageHeader.js","names":[],"sources":["../../../src/components/PortalHomePageHeader/PortalHomePageHeader.tsx"],"sourcesContent":["import React from 'react'\nimport { Box, Stack, Typography, Button } from '@mui/material'\n\nexport type PortalHomePageHeaderProps = {\n backgroundCss: string // background of entire header\n buttonLink?: string\n title: React.ReactNode\n subTitle?: React.ReactNode\n description: React.ReactNode\n backgroundMp4?: string\n backgroundMp4Css?: string // while video is loading, what should the background color be?\n textAreaWidth?: string // default is 746px. used for md and up screen sizes\n}\n\nconst PortalHomePageHeader = ({\n backgroundCss,\n buttonLink,\n title,\n subTitle,\n description,\n backgroundMp4,\n backgroundMp4Css,\n textAreaWidth = '746px',\n}: PortalHomePageHeaderProps): React.ReactNode => {\n return (\n <Box\n data-testid=\"HeaderContainer\"\n sx={{\n background: backgroundCss,\n padding: { xs: 0, md: '50px 80px' },\n position: 'relative',\n }}\n >\n {backgroundMp4 && (\n <Box\n component=\"video\"\n autoPlay\n loop\n muted\n playsInline\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'fill',\n zIndex: -1,\n background: backgroundMp4Css,\n }}\n >\n <source src={backgroundMp4} type=\"video/mp4\" />\n Your browser does not support the video tag.\n </Box>\n )}\n <Stack\n sx={{\n alignItems: 'flex-start',\n padding: { xs: '40px', md: '40px 0' },\n gap: '24px',\n width: { sm: '100%', md: textAreaWidth },\n }}\n >\n <Typography\n variant=\"headline2\"\n sx={{\n fontWeight: 300,\n lineHeight: '130%',\n fontSize: { xs: '36px', md: '42px' },\n color: 'grey.1000',\n }}\n >\n {title}\n </Typography>\n {subTitle && (\n <Typography\n variant=\"headline3\"\n sx={{\n fontSize: '24px',\n fontWeight: '400',\n lineHeight: '160%',\n color: 'grey.1000',\n }}\n >\n {subTitle}\n </Typography>\n )}\n <Typography\n sx={{ fontSize: '18px', lineHeight: '140%', color: 'grey.900' }}\n >\n {description}\n </Typography>\n {buttonLink && (\n <Button\n href={buttonLink}\n target=\"_blank\"\n variant=\"contained\"\n role=\"button\"\n sx={theme => ({\n whiteSpace: 'nowrap',\n alignSelf: 'flex-start',\n padding: '6px 24px',\n fontWeight: 600,\n boxShadow:\n '0px 16px 16px 0px rgba(0, 0, 0, 0.10), 0px 4px 4px 0px rgba(0, 0, 0, 0.10), 0px 1px 1px 0px rgba(0, 0, 0, 0.10)',\n '&:hover': {\n boxShadow:\n '0px 16px 16px 0px rgba(0, 0, 0, 0.10), 0px 4px 4px 0px rgba(0, 0, 0, 0.10), 0px 1px 1px 0px rgba(0, 0, 0, 0.10)',\n },\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n })}\n >\n Learn more\n </Button>\n )}\n </Stack>\n </Box>\n )\n}\n\nexport default PortalHomePageHeader\n"],"mappings":";;;;AAcA,IAAM,KAAwB,EAC5B,kBACA,eACA,UACA,aACA,gBACA,kBACA,qBACA,mBAAgB,cAGd,kBAAC,GAAD;CACE,eAAY;CACZ,IAAI;EACF,YAAY;EACZ,SAAS;GAAE,IAAI;GAAG,IAAI;EAAY;EAClC,UAAU;CACZ;WANF,CAQG,KACC,kBAAC,GAAD;EACE,WAAU;EACV,UAAA;EACA,MAAA;EACA,OAAA;EACA,aAAA;EACA,IAAI;GACF,UAAU;GACV,KAAK;GACL,MAAM;GACN,OAAO;GACP,QAAQ;GACR,WAAW;GACX,QAAQ;GACR,YAAY;EACd;YAfF,CAiBE,kBAAC,UAAD;GAAQ,KAAK;GAAe,MAAK;EAAa,CAAA,GAAC,8CAE5C;KAEP,kBAAC,GAAD;EACE,IAAI;GACF,YAAY;GACZ,SAAS;IAAE,IAAI;IAAQ,IAAI;GAAS;GACpC,KAAK;GACL,OAAO;IAAE,IAAI;IAAQ,IAAI;GAAc;EACzC;YANF;GAQE,kBAAC,GAAD;IACE,SAAQ;IACR,IAAI;KACF,YAAY;KACZ,YAAY;KACZ,UAAU;MAAE,IAAI;MAAQ,IAAI;KAAO;KACnC,OAAO;IACT;cAEC;GACS,CAAA;GACX,KACC,kBAAC,GAAD;IACE,SAAQ;IACR,IAAI;KACF,UAAU;KACV,YAAY;KACZ,YAAY;KACZ,OAAO;IACT;cAEC;GACS,CAAA;GAEd,kBAAC,GAAD;IACE,IAAI;KAAE,UAAU;KAAQ,YAAY;KAAQ,OAAO;IAAW;cAE7D;GACS,CAAA;GACX,KACC,kBAAC,GAAD;IACE,MAAM;IACN,QAAO;IACP,SAAQ;IACR,MAAK;IACL,KAAI,OAAU;KACZ,YAAY;KACZ,WAAW;KACX,SAAS;KACT,YAAY;KACZ,WACE;KACF,WAAW,EACT,WACE,kHACJ;MACC,EAAM,YAAY,KAAK,IAAI,IAAI,EAC9B,OAAO,OACT;IACF;cACD;GAEO,CAAA;EAEL;GACJ"}
1
+ {"version":3,"file":"PortalHomePageHeader.js","names":[],"sources":["../../../src/components/PortalHomePageHeader/PortalHomePageHeader.tsx"],"sourcesContent":["import React from 'react'\nimport { Box, Stack, Typography, Button } from '@mui/material'\n\nexport type PortalHomePageHeaderProps = {\n backgroundCss: string // background of entire header\n buttonLink?: string\n title: React.ReactNode\n subTitle?: React.ReactNode\n description: React.ReactNode\n backgroundMp4?: string\n backgroundMp4Css?: string // while video is loading, what should the background color be?\n textAreaWidth?: string // default is 746px. used for md and up screen sizes\n children?: React.ReactNode // rendered at the bottom of the header text area, e.g. a search box\n}\n\nconst PortalHomePageHeader = ({\n backgroundCss,\n buttonLink,\n title,\n subTitle,\n description,\n backgroundMp4,\n backgroundMp4Css,\n textAreaWidth = '746px',\n children,\n}: PortalHomePageHeaderProps): React.ReactNode => {\n return (\n <Box\n data-testid=\"HeaderContainer\"\n sx={{\n background: backgroundCss,\n padding: { xs: 0, md: '50px 80px' },\n position: 'relative',\n }}\n >\n {backgroundMp4 && (\n <Box\n component=\"video\"\n autoPlay\n loop\n muted\n playsInline\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'fill',\n zIndex: -1,\n background: backgroundMp4Css,\n }}\n >\n <source src={backgroundMp4} type=\"video/mp4\" />\n Your browser does not support the video tag.\n </Box>\n )}\n <Stack\n direction={{ xs: 'column', lg: 'row' }}\n sx={{\n alignItems: {\n xs: 'flex-start',\n lg: children ? 'center' : 'flex-start',\n },\n justifyContent: 'space-between',\n padding: { xs: '40px', md: '40px 0' },\n gap: { xs: '40px', lg: '80px' },\n }}\n >\n <Stack\n sx={{\n alignItems: 'flex-start',\n gap: '24px',\n minWidth: 0,\n flex: children ? { lg: '1 1 0' } : undefined,\n width: children ? '100%' : { sm: '100%', md: textAreaWidth },\n maxWidth: children ? { md: textAreaWidth } : undefined,\n }}\n >\n <Typography\n variant=\"headline2\"\n sx={{\n fontWeight: 300,\n lineHeight: '130%',\n fontSize: { xs: '36px', md: '42px' },\n color: 'grey.1000',\n }}\n >\n {title}\n </Typography>\n {subTitle && (\n <Typography\n variant=\"headline3\"\n sx={{\n fontSize: '24px',\n fontWeight: '400',\n lineHeight: '160%',\n color: 'grey.1000',\n }}\n >\n {subTitle}\n </Typography>\n )}\n <Typography\n sx={{ fontSize: '18px', lineHeight: '140%', color: 'grey.900' }}\n >\n {description}\n </Typography>\n {buttonLink && (\n <Button\n href={buttonLink}\n target=\"_blank\"\n variant=\"contained\"\n role=\"button\"\n sx={theme => ({\n whiteSpace: 'nowrap',\n alignSelf: 'flex-start',\n padding: '6px 24px',\n fontWeight: 600,\n boxShadow:\n '0px 16px 16px 0px rgba(0, 0, 0, 0.10), 0px 4px 4px 0px rgba(0, 0, 0, 0.10), 0px 1px 1px 0px rgba(0, 0, 0, 0.10)',\n '&:hover': {\n boxShadow:\n '0px 16px 16px 0px rgba(0, 0, 0, 0.10), 0px 4px 4px 0px rgba(0, 0, 0, 0.10), 0px 1px 1px 0px rgba(0, 0, 0, 0.10)',\n },\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n })}\n >\n Learn more\n </Button>\n )}\n </Stack>\n {children && (\n <Box\n sx={{\n flex: { lg: '1 1 0' },\n minWidth: 0,\n width: '100%',\n maxWidth: { lg: '600px' },\n }}\n >\n {children}\n </Box>\n )}\n </Stack>\n </Box>\n )\n}\n\nexport default PortalHomePageHeader\n"],"mappings":";;;;AAeA,IAAM,KAAwB,EAC5B,kBACA,eACA,UACA,aACA,gBACA,kBACA,qBACA,mBAAgB,SAChB,kBAGE,kBAAC,GAAD;CACE,eAAY;CACZ,IAAI;EACF,YAAY;EACZ,SAAS;GAAE,IAAI;GAAG,IAAI;EAAY;EAClC,UAAU;CACZ;WANF,CAQG,KACC,kBAAC,GAAD;EACE,WAAU;EACV,UAAA;EACA,MAAA;EACA,OAAA;EACA,aAAA;EACA,IAAI;GACF,UAAU;GACV,KAAK;GACL,MAAM;GACN,OAAO;GACP,QAAQ;GACR,WAAW;GACX,QAAQ;GACR,YAAY;EACd;YAfF,CAiBE,kBAAC,UAAD;GAAQ,KAAK;GAAe,MAAK;EAAa,CAAA,GAAC,8CAE5C;KAEP,kBAAC,GAAD;EACE,WAAW;GAAE,IAAI;GAAU,IAAI;EAAM;EACrC,IAAI;GACF,YAAY;IACV,IAAI;IACJ,IAAI,IAAW,WAAW;GAC5B;GACA,gBAAgB;GAChB,SAAS;IAAE,IAAI;IAAQ,IAAI;GAAS;GACpC,KAAK;IAAE,IAAI;IAAQ,IAAI;GAAO;EAChC;YAVF,CAYE,kBAAC,GAAD;GACE,IAAI;IACF,YAAY;IACZ,KAAK;IACL,UAAU;IACV,MAAM,IAAW,EAAE,IAAI,QAAQ,IAAI,KAAA;IACnC,OAAO,IAAW,SAAS;KAAE,IAAI;KAAQ,IAAI;IAAc;IAC3D,UAAU,IAAW,EAAE,IAAI,EAAc,IAAI,KAAA;GAC/C;aARF;IAUE,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,YAAY;MACZ,YAAY;MACZ,UAAU;OAAE,IAAI;OAAQ,IAAI;MAAO;MACnC,OAAO;KACT;eAEC;IACS,CAAA;IACX,KACC,kBAAC,GAAD;KACE,SAAQ;KACR,IAAI;MACF,UAAU;MACV,YAAY;MACZ,YAAY;MACZ,OAAO;KACT;eAEC;IACS,CAAA;IAEd,kBAAC,GAAD;KACE,IAAI;MAAE,UAAU;MAAQ,YAAY;MAAQ,OAAO;KAAW;eAE7D;IACS,CAAA;IACX,KACC,kBAAC,GAAD;KACE,MAAM;KACN,QAAO;KACP,SAAQ;KACR,MAAK;KACL,KAAI,OAAU;MACZ,YAAY;MACZ,WAAW;MACX,SAAS;MACT,YAAY;MACZ,WACE;MACF,WAAW,EACT,WACE,kHACJ;OACC,EAAM,YAAY,KAAK,IAAI,IAAI,EAC9B,OAAO,OACT;KACF;eACD;IAEO,CAAA;GAEL;MACN,KACC,kBAAC,GAAD;GACE,IAAI;IACF,MAAM,EAAE,IAAI,QAAQ;IACpB,UAAU;IACV,OAAO;IACP,UAAU,EAAE,IAAI,QAAQ;GAC1B;GAEC;EACE,CAAA,CAEF;GACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectInfo.d.ts","sourceRoot":"","sources":["../../../src/components/ProjectInfo/ProjectInfo.tsx"],"names":[],"mappings":"AAUA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CA8D1D"}
1
+ {"version":3,"file":"ProjectInfo.d.ts","sourceRoot":"","sources":["../../../src/components/ProjectInfo/ProjectInfo.tsx"],"names":[],"mappings":"AAUA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CA+D1D"}
@@ -7,7 +7,7 @@ import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
7
7
  import { DoiObjectType as c } from "@sage-bionetworks/synapse-client";
8
8
  import l from "@mui/icons-material/ArticleOutlined";
9
9
  //#region src/components/ProjectInfo/ProjectInfo.tsx
10
- var u = "10px 12px";
10
+ var u = "8px";
11
11
  function d(d) {
12
12
  let [f, p] = r(null), { projectId: m } = d, { data: h, isLoading: g } = e({
13
13
  id: m,
@@ -38,7 +38,8 @@ function d(d) {
38
38
  },
39
39
  borderRadius: "6px",
40
40
  fontWeight: 540,
41
- padding: u
41
+ padding: u,
42
+ height: "28px"
42
43
  },
43
44
  variant: "outlined",
44
45
  children: "Project Info"
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectInfo.js","names":[],"sources":["../../../src/components/ProjectInfo/ProjectInfo.tsx"],"sourcesContent":["import { Button } from '@mui/material'\nimport { useState } from 'react'\nimport ProjectInfoPopover from './ProjectInfoPopover'\nimport { useGetDOIAssociation } from '@/synapse-queries/doi/useDOI'\nimport { DoiObjectType } from '@sage-bionetworks/synapse-client'\nimport useGetEntityMetadata from '@/utils/hooks/useGetEntityMetadata'\nimport ArticleOutlinedIcon from '@mui/icons-material/ArticleOutlined'\n\nconst PROJECT_INFO_BUTTON_PADDING = '10px 12px'\n\nexport type ProjectInfoProps = {\n projectId: string\n}\n\nexport default function ProjectInfo(props: ProjectInfoProps) {\n const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>(null)\n\n const { projectId } = props\n\n const {\n data: projectDoiAssociation,\n isLoading: projectDoiAssociationIsLoading,\n } = useGetDOIAssociation({\n id: projectId,\n version: undefined,\n type: DoiObjectType.ENTITY,\n })\n\n const { uploadDestinationString, isLoading: entityMetadataIsLoading } =\n useGetEntityMetadata(projectId)\n\n const isLoading = projectDoiAssociationIsLoading || entityMetadataIsLoading\n\n const open = Boolean(anchorEl)\n const id = open ? 'project-info-popover' : undefined\n\n const handleButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const popover = (\n <ProjectInfoPopover\n id={id}\n projectId={projectId}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n doi={projectDoiAssociation?.doiUri}\n projectStorageLocation={uploadDestinationString}\n isLoading={isLoading}\n />\n )\n\n return (\n <>\n <Button\n aria-describedby={id}\n onClick={handleButtonClick}\n startIcon={<ArticleOutlinedIcon />}\n sx={{\n width: { xs: '100%', sm: 'initial' },\n borderRadius: '6px',\n fontWeight: 540,\n padding: PROJECT_INFO_BUTTON_PADDING,\n }}\n variant=\"outlined\"\n >\n Project Info\n </Button>\n {popover}\n </>\n )\n}\n"],"mappings":";;;;;;;;;AAQA,IAAM,IAA8B;AAMpC,SAAwB,EAAY,GAAyB;CAC3D,IAAM,CAAC,GAAU,KAAe,EAAmC,IAAI,GAEjE,EAAE,iBAAc,GAEhB,EACJ,MAAM,GACN,WAAW,MACT,EAAqB;EACvB,IAAI;EACJ,SAAS,KAAA;EACT,MAAM,EAAc;CACtB,CAAC,GAEK,EAAE,4BAAyB,WAAW,MAC1C,EAAqB,CAAS,GAE1B,IAAY,KAAkC,GAE9C,IAAO,EAAQ,GACf,IAAK,IAAO,yBAAyB,KAAA,GAErC,KAAqB,MAA+C;EACxE,EAAY,EAAM,aAAa;CACjC,GAMM,IACJ,kBAAC,GAAD;EACM;EACO;EACL;EACI;EACV,eAVsB;GACxB,EAAY,IAAI;EAClB;EASI,KAAK,GAAuB;EAC5B,wBAAwB;EACb;CACZ,CAAA;CAGH,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,oBAAkB;EAClB,SAAS;EACT,WAAW,kBAAC,GAAD,CAAsB,CAAA;EACjC,IAAI;GACF,OAAO;IAAE,IAAI;IAAQ,IAAI;GAAU;GACnC,cAAc;GACd,YAAY;GACZ,SAAS;EACX;EACA,SAAQ;YACT;CAEO,CAAA,GACP,CACD,EAAA,CAAA;AAEN"}
1
+ {"version":3,"file":"ProjectInfo.js","names":[],"sources":["../../../src/components/ProjectInfo/ProjectInfo.tsx"],"sourcesContent":["import { Button } from '@mui/material'\nimport { useState } from 'react'\nimport ProjectInfoPopover from './ProjectInfoPopover'\nimport { useGetDOIAssociation } from '@/synapse-queries/doi/useDOI'\nimport { DoiObjectType } from '@sage-bionetworks/synapse-client'\nimport useGetEntityMetadata from '@/utils/hooks/useGetEntityMetadata'\nimport ArticleOutlinedIcon from '@mui/icons-material/ArticleOutlined'\n\nconst PROJECT_INFO_BUTTON_PADDING = '8px'\n\nexport type ProjectInfoProps = {\n projectId: string\n}\n\nexport default function ProjectInfo(props: ProjectInfoProps) {\n const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>(null)\n\n const { projectId } = props\n\n const {\n data: projectDoiAssociation,\n isLoading: projectDoiAssociationIsLoading,\n } = useGetDOIAssociation({\n id: projectId,\n version: undefined,\n type: DoiObjectType.ENTITY,\n })\n\n const { uploadDestinationString, isLoading: entityMetadataIsLoading } =\n useGetEntityMetadata(projectId)\n\n const isLoading = projectDoiAssociationIsLoading || entityMetadataIsLoading\n\n const open = Boolean(anchorEl)\n const id = open ? 'project-info-popover' : undefined\n\n const handleButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const popover = (\n <ProjectInfoPopover\n id={id}\n projectId={projectId}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n doi={projectDoiAssociation?.doiUri}\n projectStorageLocation={uploadDestinationString}\n isLoading={isLoading}\n />\n )\n\n return (\n <>\n <Button\n aria-describedby={id}\n onClick={handleButtonClick}\n startIcon={<ArticleOutlinedIcon />}\n sx={{\n width: { xs: '100%', sm: 'initial' },\n borderRadius: '6px',\n fontWeight: 540,\n padding: PROJECT_INFO_BUTTON_PADDING,\n height: '28px',\n }}\n variant=\"outlined\"\n >\n Project Info\n </Button>\n {popover}\n </>\n )\n}\n"],"mappings":";;;;;;;;;AAQA,IAAM,IAA8B;AAMpC,SAAwB,EAAY,GAAyB;CAC3D,IAAM,CAAC,GAAU,KAAe,EAAmC,IAAI,GAEjE,EAAE,iBAAc,GAEhB,EACJ,MAAM,GACN,WAAW,MACT,EAAqB;EACvB,IAAI;EACJ,SAAS,KAAA;EACT,MAAM,EAAc;CACtB,CAAC,GAEK,EAAE,4BAAyB,WAAW,MAC1C,EAAqB,CAAS,GAE1B,IAAY,KAAkC,GAE9C,IAAO,EAAQ,GACf,IAAK,IAAO,yBAAyB,KAAA,GAErC,KAAqB,MAA+C;EACxE,EAAY,EAAM,aAAa;CACjC,GAMM,IACJ,kBAAC,GAAD;EACM;EACO;EACL;EACI;EACV,eAVsB;GACxB,EAAY,IAAI;EAClB;EASI,KAAK,GAAuB;EAC5B,wBAAwB;EACb;CACZ,CAAA;CAGH,OACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,oBAAkB;EAClB,SAAS;EACT,WAAW,kBAAC,GAAD,CAAsB,CAAA;EACjC,IAAI;GACF,OAAO;IAAE,IAAI;IAAQ,IAAI;GAAU;GACnC,cAAc;GACd,YAAY;GACZ,SAAS;GACT,QAAQ;EACV;EACA,SAAQ;YACT;CAEO,CAAA,GACP,CACD,EAAA,CAAA;AAEN"}
@@ -0,0 +1 @@
1
+ ._row_bmqgz_1{--qb-pill-color:var(--synapse-primary-action-color);align-items:center;gap:8px;min-height:30px;padding:4px 0;display:flex}._remove_bmqgz_10{border:1px solid var(--synapse-border-color-gray);color:var(--synapse-gray-600)!important;border-radius:4px!important;padding:4px!important}._remove_bmqgz_10:hover{color:var(--synapse-error);border-color:var(--synapse-error);background-color:#0000!important}._propertyPicker_bmqgz_22 .MuiOutlinedInput-root,._operatorPicker_bmqgz_23 .MuiOutlinedInput-root,._rangeInput_bmqgz_24 .MuiOutlinedInput-root,._textInput_bmqgz_25 .MuiOutlinedInput-root{height:36px;font-size:14px}._propertyPicker_bmqgz_22{min-width:200px}._operatorPicker_bmqgz_23{min-width:120px}._rangeInput_bmqgz_24{width:120px}._textInput_bmqgz_25{min-width:200px}._pillGroupContainer_bmqgz_46{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}._pillFilter_bmqgz_54{max-width:260px}._pillGroupScroll_bmqgz_58{max-height:120px;overflow-y:auto}._pillGroup_bmqgz_46{flex-wrap:wrap;gap:6px;display:flex}._pillGroup_bmqgz_46 .MuiToggleButton-root,._pillGroup_bmqgz_46 .MuiToggleButtonGroup-grouped{text-transform:none;padding:2px 12px;font-size:13px;line-height:1.4;border:1px solid var(--synapse-gray-dark)!important;border-radius:999px!important;margin:0!important}._pillGroup_bmqgz_46 .MuiToggleButton-root.Mui-selected{background-color:var(--qb-pill-color);color:#fff;border-color:var(--qb-pill-color)}._pillGroup_bmqgz_46 .MuiToggleButton-root.Mui-selected:hover{background-color:var(--qb-pill-color)}
@@ -0,0 +1,8 @@
1
+ import { QBCondition } from './QueryBuilderTypes';
2
+ export type FilterConditionRowProps = {
3
+ condition: QBCondition;
4
+ parentGroupId: string;
5
+ index: number;
6
+ };
7
+ export declare function FilterConditionRow(props: FilterConditionRowProps): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=FilterConditionRow.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,260 @@
1
+ import { splitAndTrim as e } from "../../utils/functions/StringUtils.js";
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";
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({
16
+ id: i.id,
17
+ index: v,
18
+ group: d,
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) => ({
21
+ name: e.name,
22
+ columnType: e.columnType,
23
+ label: k(e.name)
24
+ })), [
25
+ y,
26
+ L,
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}` : ""}`,
33
+ role: "group",
34
+ "aria-label": `Filter condition${i.columnName ? ` on ${i.columnName}` : ""}`,
35
+ "data-qb-node-id": i.id,
36
+ children: [
37
+ /* @__PURE__ */ S(l, {
38
+ handleRef: F,
39
+ label: "Drag condition into a condition group"
40
+ }),
41
+ /* @__PURE__ */ S(b, {
42
+ title: "Remove condition",
43
+ children: /* @__PURE__ */ S(p, {
44
+ size: "small",
45
+ className: s.remove,
46
+ "aria-label": "Remove condition",
47
+ onClick: () => N(i.id),
48
+ children: /* @__PURE__ */ S(w, { fontSize: "small" })
49
+ })
50
+ }),
51
+ /* @__PURE__ */ S(f, {
52
+ className: s.propertyPicker,
53
+ size: "small",
54
+ options: R,
55
+ getOptionLabel: (e) => e.label,
56
+ isOptionEqualToValue: (e, t) => e.name === t.name,
57
+ value: z,
58
+ renderInput: (e) => /* @__PURE__ */ S(_, {
59
+ ...e,
60
+ variant: "outlined",
61
+ placeholder: "Select property…",
62
+ inputProps: {
63
+ ...e.inputProps,
64
+ "aria-label": "Property"
65
+ }
66
+ }),
67
+ onChange: (e, a) => {
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, {
71
+ columnName: a.name,
72
+ columnType: a.columnType,
73
+ op: s,
74
+ values: [],
75
+ rangeMin: null,
76
+ rangeMax: null,
77
+ text: null
78
+ });
79
+ }
80
+ }),
81
+ H.length > 0 && /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S(m, {
82
+ id: U,
83
+ sx: { display: "none" },
84
+ children: "Operator"
85
+ }), /* @__PURE__ */ S(g, {
86
+ className: s.operatorPicker,
87
+ size: "small",
88
+ labelId: U,
89
+ variant: "outlined",
90
+ value: H.includes(i.op) ? i.op : H[0],
91
+ onChange: (e) => {
92
+ let t = e.target.value;
93
+ M(i.id, { op: t });
94
+ },
95
+ "aria-label": "Operator",
96
+ children: H.map((e) => /* @__PURE__ */ S(h, {
97
+ value: e,
98
+ children: a(e)
99
+ }, e))
100
+ })] }),
101
+ /* @__PURE__ */ S(D, {
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)
108
+ })
109
+ ]
110
+ });
111
+ }
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) {
116
+ case "is_any_of":
117
+ case "is_all_of": return (r === "enum" || r === "list") && i ? /* @__PURE__ */ S(k, {
118
+ facetValues: a,
119
+ selectedValues: n.values,
120
+ onChange: (e) => o({ values: e })
121
+ }) : /* @__PURE__ */ S(_, {
122
+ className: s.textInput,
123
+ size: "small",
124
+ variant: "outlined",
125
+ placeholder: "Comma-separated values",
126
+ value: n.values.join(", "),
127
+ slotProps: { htmlInput: { "aria-label": "Values" } },
128
+ onChange: (t) => o({ values: e(t.target.value) })
129
+ });
130
+ case "between": return /* @__PURE__ */ C(x, { children: [
131
+ /* @__PURE__ */ S(_, {
132
+ className: s.rangeInput,
133
+ size: "small",
134
+ variant: "outlined",
135
+ type: "text",
136
+ placeholder: "Min",
137
+ value: n.rangeMin ?? "",
138
+ slotProps: { htmlInput: { "aria-label": "Minimum" } },
139
+ onChange: (e) => o({ rangeMin: e.target.value })
140
+ }),
141
+ /* @__PURE__ */ S("span", {
142
+ "aria-hidden": "true",
143
+ children: "to"
144
+ }),
145
+ /* @__PURE__ */ S(_, {
146
+ className: s.rangeInput,
147
+ size: "small",
148
+ variant: "outlined",
149
+ type: "text",
150
+ placeholder: "Max",
151
+ value: n.rangeMax ?? "",
152
+ slotProps: { htmlInput: { "aria-label": "Maximum" } },
153
+ onChange: (e) => o({ rangeMax: e.target.value })
154
+ })
155
+ ] });
156
+ case "gt":
157
+ case "gte": return /* @__PURE__ */ S(_, {
158
+ className: s.rangeInput,
159
+ size: "small",
160
+ variant: "outlined",
161
+ type: "text",
162
+ value: n.rangeMin ?? "",
163
+ slotProps: { htmlInput: { "aria-label": "Value" } },
164
+ onChange: (e) => o({ rangeMin: e.target.value })
165
+ });
166
+ case "lt":
167
+ case "lte": return /* @__PURE__ */ S(_, {
168
+ className: s.rangeInput,
169
+ size: "small",
170
+ variant: "outlined",
171
+ type: "text",
172
+ value: n.rangeMax ?? "",
173
+ slotProps: { htmlInput: { "aria-label": "Value" } },
174
+ onChange: (e) => o({ rangeMax: e.target.value })
175
+ });
176
+ case "equal":
177
+ case "not_equal": return r === "boolean" ? /* @__PURE__ */ C(y, {
178
+ className: s.pillGroup,
179
+ exclusive: !0,
180
+ value: n.values[0] ?? null,
181
+ onChange: (e, t) => {
182
+ o({ values: t == null ? [] : [t] });
183
+ },
184
+ "aria-label": "Boolean value",
185
+ children: [/* @__PURE__ */ S(v, {
186
+ value: "true",
187
+ children: "Yes"
188
+ }), /* @__PURE__ */ S(v, {
189
+ value: "false",
190
+ children: "No"
191
+ })]
192
+ }) : /* @__PURE__ */ S(_, {
193
+ className: s.textInput,
194
+ size: "small",
195
+ variant: "outlined",
196
+ value: n.values[0] ?? "",
197
+ slotProps: { htmlInput: { "aria-label": "Value" } },
198
+ onChange: (e) => o({ values: [e.target.value] })
199
+ });
200
+ case "contains":
201
+ case "starts_with":
202
+ case "ends_with":
203
+ case "is_exactly": return /* @__PURE__ */ S(_, {
204
+ className: s.textInput,
205
+ size: "small",
206
+ variant: "outlined",
207
+ value: n.text ?? "",
208
+ slotProps: { htmlInput: { "aria-label": "Value" } },
209
+ onChange: (e) => o({ text: e.target.value })
210
+ });
211
+ default: return null;
212
+ }
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
+ }, [
221
+ l,
222
+ a,
223
+ c
224
+ ]);
225
+ return /* @__PURE__ */ C("div", {
226
+ className: s.pillGroupContainer,
227
+ children: [c && /* @__PURE__ */ S(_, {
228
+ className: s.pillFilter,
229
+ size: "small",
230
+ variant: "outlined",
231
+ placeholder: `Filter ${t.length} values…`,
232
+ value: a,
233
+ onChange: (e) => o(e.target.value),
234
+ 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),
241
+ "aria-label": "Selected values",
242
+ children: f.map((e) => /* @__PURE__ */ S(v, {
243
+ value: e,
244
+ children: i(e)
245
+ }, e))
246
+ })
247
+ })]
248
+ });
249
+ }
250
+ function A(e, t) {
251
+ 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) : [];
253
+ }
254
+ function j(e, t) {
255
+ return e.some((e) => e.columnName === t && e.concreteType === "org.sagebionetworks.repo.model.table.FacetColumnResultValues");
256
+ }
257
+ //#endregion
258
+ export { E as FilterConditionRow };
259
+
260
+ //# sourceMappingURL=FilterConditionRow.js.map
@@ -0,0 +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":";;;;;;;;;;;;;AAoCA,SAAgB,EAAmB,GAAgC;CACjE,IAAM,EAAE,cAAW,kBAAe,aAAU,GACtC,EACJ,iBACA,iBACA,uBACA,yBACA,sBACA,yBACE,EAA+B,GAK7B,EACJ,KAAK,GACL,cACA,oBACE,EAAY;EACd,IAAI,EAAU;EACd;EACA,OAAO;EACP,UAAU,EAAE,WAAW,GAAK;CAC9B,CAAC,GAEK,IAAmB,QAErB,IAAI,IACF,EACG,QACC,MACE,EAAE,iBACF,8DACJ,EACC,KAAI,MAAK,EAAE,UAAU,CAC1B,GACF,CAAC,CAAY,CACf,GAEM,IAAkB,SACP,IACX,EAAa,QAAO,MAAM,EAAiB,IAAI,EAAG,IAAI,CAAC,IACvD,GACU,KAAI,OAAO;EACvB,MAAM,EAAG;EACT,YAAY,EAAG;EACf,OAAO,EAAqB,EAAG,IAAI;CACrC,EAAE,GACD;EAAC;EAAc;EAAkB;EAAoB;CAAoB,CAAC,GAEvE,IACJ,EAAgB,MAAK,MAAO,EAAI,SAAS,EAAU,UAAU,KAAK,MAE9D,IACJ,EAAU,cAAc,QAAQ,EAAiB,IAAI,EAAU,UAAU,GACrE,IAAa,EAAe,EAAU,YAAY,CAAQ,GAC1D,IAAe,EAAoB,CAAU,GAE7C,IAAkB,eAAe,EAAU;CAEjD,OACE,kBAAC,OAAD;EACE,KAAK;EACL,WAAW,GAAG,EAAO,MAAM,IAAe,IAAI,EAAW,eAAe;EACxE,MAAK;EACL,cAAY,mBAAmB,EAAU,aAAa,OAAO,EAAU,eAAe;EACtF,mBAAiB,EAAU;YAL7B;GAOE,kBAAC,GAAD;IACa;IACX,OAAM;GACP,CAAA;GAED,kBAAC,GAAD;IAAS,OAAM;cACb,kBAAC,GAAD;KACE,MAAK;KACL,WAAW,EAAO;KAClB,cAAW;KACX,eAAe,EAAkB,EAAU,EAAE;eAE7C,kBAAC,GAAD,EAAmB,UAAS,QAAS,CAAA;IAC3B,CAAA;GACL,CAAA;GAET,kBAAC,GAAD;IACE,WAAW,EAAO;IAClB,MAAK;IACL,SAAS;IACT,iBAAgB,MAAO,EAAI;IAC3B,uBAAuB,GAAG,MAAM,EAAE,SAAS,EAAE;IAC7C,OAAO;IACP,cAAa,MACX,kBAAC,GAAD;KACE,GAAI;KACJ,SAAQ;KACR,aAAY;KACZ,YAAY;MAAE,GAAG,EAAO;MAAY,cAAc;KAAW;IAC9D,CAAA;IAEH,WAAW,GAAQ,MAAU;KAC3B,IAAI,KAAS,MAAM;KASnB,IAAM,IAAa,EAJF,EACf,EAAM,YACN,EAAsB,GAAc,EAAM,IAAI,CAET,CAAQ,GACzC,IACJ,EAAW,SAAS,IAChB,EAAW,KACX,EAAuB,EAAM,UAAU;KAC7C,EAAkB,EAAU,IAAI;MAC9B,YAAY,EAAM;MAClB,YAAY,EAAM;MAClB,IAAI;MACJ,QAAQ,CAAC;MACT,UAAU;MACV,UAAU;MACV,MAAM;KACR,CAAC;IACH;GACD,CAAA;GAEA,EAAa,SAAS,KACrB,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;IAAY,IAAI;IAAiB,IAAI,EAAE,SAAS,OAAO;cAAG;GAE9C,CAAA,GACZ,kBAAC,GAAD;IACE,WAAW,EAAO;IAClB,MAAK;IACL,SAAS;IACT,SAAQ;IACR,OACE,EAAa,SAAS,EAAU,EAAE,IAC9B,EAAU,KACV,EAAa;IAEnB,WAAU,MAAS;KACjB,IAAM,IAAS,EAAM,OAAO;KAC5B,EAAkB,EAAU,IAAI,EAAE,IAAI,EAAO,CAAC;IAChD;IACA,cAAW;cAEV,EAAa,KAAI,MAChB,kBAAC,GAAD;KAAmB,OAAO;eACvB,EAAW,CAAE;IACN,GAFK,CAEL,CACX;GACK,CAAA,CACR,EAAA,CAAA;GAGJ,kBAAC,GAAD;IACa;IACC;IACF;IACI;IACd,aACE,KAAY,EAAU,cAAc,OAChC,EAAgB,GAAc,EAAU,UAAU,IAClD,CAAC;IAEP,WAAU,MAAS,EAAkB,EAAU,IAAI,CAAK;GACzD,CAAA;EACE;;AAET;AAWA,SAAS,EAAW,GAAwB;CAC1C,IAAM,EAAE,cAAW,eAAY,aAAU,gBAAa,gBAAa,GAC7D,EAAE,UAAO;CAGf,IAAI,MAAO,eAAe,MAAO,YAAY,OAAO;CAEpD,QAAQ,GAAR;EACE,KAAK;EACL,KAAK,aAUH,QATK,MAAe,UAAU,MAAe,WAAW,IAEpD,kBAAC,GAAD;GACe;GACb,gBAAgB,EAAU;GAC1B,WAAU,MAAQ,EAAS,EAAE,QAAQ,EAAK,CAAC;EAC5C,CAAA,IAIH,kBAAC,GAAD;GACE,WAAW,EAAO;GAClB,MAAK;GACL,SAAQ;GACR,aAAY;GACZ,OAAO,EAAU,OAAO,KAAK,IAAI;GACjC,WAAW,EAAE,WAAW,EAAE,cAAc,SAAS,EAAE;GACnD,WAAU,MACR,EAAS,EAAE,QAAQ,EAAa,EAAM,OAAO,KAAK,EAAE,CAAC;EAExD,CAAA;EAEL,KAAK,WACH,OACE,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IACE,WAAW,EAAO;IAClB,MAAK;IACL,SAAQ;IACR,MAAK;IACL,aAAY;IACZ,OAAO,EAAU,YAAY;IAC7B,WAAW,EAAE,WAAW,EAAE,cAAc,UAAU,EAAE;IACpD,WAAU,MAAS,EAAS,EAAE,UAAU,EAAM,OAAO,MAAM,CAAC;GAC7D,CAAA;GACD,kBAAC,QAAD;IAAM,eAAY;cAAO;GAAQ,CAAA;GACjC,kBAAC,GAAD;IACE,WAAW,EAAO;IAClB,MAAK;IACL,SAAQ;IACR,MAAK;IACL,aAAY;IACZ,OAAO,EAAU,YAAY;IAC7B,WAAW,EAAE,WAAW,EAAE,cAAc,UAAU,EAAE;IACpD,WAAU,MAAS,EAAS,EAAE,UAAU,EAAM,OAAO,MAAM,CAAC;GAC7D,CAAA;EACD,EAAA,CAAA;EAEN,KAAK;EACL,KAAK,OACH,OACE,kBAAC,GAAD;GACE,WAAW,EAAO;GAClB,MAAK;GACL,SAAQ;GACR,MAAK;GACL,OAAO,EAAU,YAAY;GAC7B,WAAW,EAAE,WAAW,EAAE,cAAc,QAAQ,EAAE;GAClD,WAAU,MAAS,EAAS,EAAE,UAAU,EAAM,OAAO,MAAM,CAAC;EAC7D,CAAA;EAEL,KAAK;EACL,KAAK,OACH,OACE,kBAAC,GAAD;GACE,WAAW,EAAO;GAClB,MAAK;GACL,SAAQ;GACR,MAAK;GACL,OAAO,EAAU,YAAY;GAC7B,WAAW,EAAE,WAAW,EAAE,cAAc,QAAQ,EAAE;GAClD,WAAU,MAAS,EAAS,EAAE,UAAU,EAAM,OAAO,MAAM,CAAC;EAC7D,CAAA;EAEL,KAAK;EACL,KAAK,aAiBH,OAhBI,MAAe,YAEf,kBAAC,GAAD;GACE,WAAW,EAAO;GAClB,WAAA;GACA,OAAO,EAAU,OAAO,MAAM;GAC9B,WAAW,GAAQ,MAAwB;IACzC,EAAS,EAAE,QAAQ,KAAQ,OAAO,CAAC,IAAI,CAAC,CAAI,EAAE,CAAC;GACjD;GACA,cAAW;aAPb,CASE,kBAAC,GAAD;IAAc,OAAM;cAAO;GAAiB,CAAA,GAC5C,kBAAC,GAAD;IAAc,OAAM;cAAQ;GAAgB,CAAA,CAC3B;OAIrB,kBAAC,GAAD;GACE,WAAW,EAAO;GAClB,MAAK;GACL,SAAQ;GACR,OAAO,EAAU,OAAO,MAAM;GAC9B,WAAW,EAAE,WAAW,EAAE,cAAc,QAAQ,EAAE;GAClD,WAAU,MAAS,EAAS,EAAE,QAAQ,CAAC,EAAM,OAAO,KAAK,EAAE,CAAC;EAC7D,CAAA;EAEL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,cACH,OACE,kBAAC,GAAD;GACE,WAAW,EAAO;GAClB,MAAK;GACL,SAAQ;GACR,OAAO,EAAU,QAAQ;GACzB,WAAW,EAAE,WAAW,EAAE,cAAc,QAAQ,EAAE;GAClD,WAAU,MAAS,EAAS,EAAE,MAAM,EAAM,OAAO,MAAM,CAAC;EACzD,CAAA;EAEL,SAEE,OAAO;CACX;AACF;AASA,IAAM,IAAwB;AAE9B,SAAS,EAAe,GAA4B;CAClD,IAAM,EAAE,gBAAa,mBAAgB,gBAAa,GAC5C,CAAC,GAAQ,KAAa,EAAS,EAAE,GACjC,IAAa,EAAY,SAAS,GAIlC,IAAe,QACZ,CAAC,GAAG,CAAW,EAAE,MAAM,GAAG,MAC/B,EAAmB,CAAC,EAAE,cAAc,EAAmB,CAAC,GAAG,KAAA,GAAW,EACpE,aAAa,OACf,CAAC,CACH,GACC,CAAC,CAAW,CAAC,GAEV,IAAgB,QAAc;EAClC,IAAI,CAAC,KAAc,EAAO,KAAK,MAAM,IAAI,OAAO;EAChD,IAAM,IAAI,EAAO,KAAK,EAAE,YAAY;EACpC,OAAO,EAAa,QAAO,MACzB,EAAmB,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,CAChD;CACF,GAAG;EAAC;EAAc;EAAQ;CAAU,CAAC;CAErC,OACE,kBAAC,OAAD;EAAK,WAAW,EAAO;YAAvB,CACG,KACC,kBAAC,GAAD;GACE,WAAW,EAAO;GAClB,MAAK;GACL,SAAQ;GACR,aAAa,UAAU,EAAY,OAAO;GAC1C,OAAO;GACP,WAAU,MAAS,EAAU,EAAM,OAAO,KAAK;GAC/C,WAAW,EAAE,WAAW,EAAE,cAAc,gBAAgB,EAAE;EAC3D,CAAA,GAEH,kBAAC,OAAD;GAAK,WAAW,EAAO;aACrB,kBAAC,GAAD;IACE,WAAW,EAAO;IAClB,OAAO;IACP,WAAW,GAAQ,MAAmB,EAAS,CAAI;IACnD,cAAW;cAEV,EAAc,KAAI,MACjB,kBAAC,GAAD;KAAiC;eAC9B,EAAmB,CAAK;IACb,GAFK,CAEL,CACf;GACgB,CAAA;EAChB,CAAA,CACF;;AAET;AAEA,SAAS,EACP,GAGA,GACU;CACV,IAAM,IAAQ,EAAa,MAAK,MAAK,EAAE,eAAe,CAAU;CAQhE,OAPI,KAAS,OAAa,CAAC,IAEzB,EAAM,iBACN,iEAEO,EAAM,YAAY,KAAI,MAAK,EAAE,KAAK,IAEpC,CAAC;AACV;AAEA,SAAS,EACP,GAGA,GACS;CACT,OAAO,EAAa,MAClB,MACE,EAAE,eAAe,KACjB,EAAE,iBACA,8DACN;AACF"}
@@ -0,0 +1,16 @@
1
+ import './FilterConditionRow.css';var e = {
2
+ row: "_row_bmqgz_1",
3
+ remove: "_remove_bmqgz_10",
4
+ propertyPicker: "_propertyPicker_bmqgz_22",
5
+ operatorPicker: "_operatorPicker_bmqgz_23",
6
+ rangeInput: "_rangeInput_bmqgz_24",
7
+ textInput: "_textInput_bmqgz_25",
8
+ pillGroupContainer: "_pillGroupContainer_bmqgz_46",
9
+ pillFilter: "_pillFilter_bmqgz_54",
10
+ pillGroupScroll: "_pillGroupScroll_bmqgz_58",
11
+ pillGroup: "_pillGroup_bmqgz_46"
12
+ };
13
+ //#endregion
14
+ export { e as default };
15
+
16
+ //# sourceMappingURL=FilterConditionRow.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterConditionRow.module.js","names":[],"sources":["../../../src/components/QueryBuilder/FilterConditionRow.module.scss"],"sourcesContent":[".row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n min-height: 30px;\n\n // Value pills adopt the parent group's accent — parent sets `--qb-pill-color`\n // as inline style on its wrapper (see FilterGroupNode).\n --qb-pill-color: var(--synapse-primary-action-color);\n}\n\n.remove {\n color: var(--synapse-gray-600) !important;\n border: 1px solid var(--synapse-border-color-gray);\n border-radius: 4px !important;\n padding: 4px !important;\n\n &:hover {\n color: var(--synapse-error);\n border-color: var(--synapse-error);\n background-color: transparent !important;\n }\n}\n\n// Match the field heights across the row so Property, Operator, and value\n// inputs all sit on the same baseline. Outlined inputs get consistent\n// padding via MUI defaults; we just fix the height and widths.\n.propertyPicker,\n.operatorPicker,\n.rangeInput,\n.textInput {\n :global(.MuiOutlinedInput-root) {\n height: 36px;\n font-size: 14px;\n }\n}\n\n.propertyPicker {\n min-width: 200px;\n}\n\n.operatorPicker {\n min-width: 120px;\n}\n\n.rangeInput {\n width: 120px;\n}\n\n.textInput {\n min-width: 200px;\n}\n\n.pillGroupContainer {\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1;\n min-width: 0;\n}\n\n.pillFilter {\n max-width: 260px;\n}\n\n.pillGroupScroll {\n max-height: 120px;\n overflow-y: auto;\n}\n\n.pillGroup {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n\n // MUI's ToggleButtonGroup uses `:not(:first-of-type)` rules to collapse\n // grouped buttons into an attached pill bar. `!important` is the pragmatic\n // way to undo that; otherwise our pills have flat left edges and negative\n // margins.\n :global(.MuiToggleButton-root),\n :global(.MuiToggleButtonGroup-grouped) {\n text-transform: none;\n padding: 2px 12px;\n border-radius: 999px !important;\n border: 1px solid var(--synapse-gray-dark) !important;\n margin: 0 !important;\n font-size: 13px;\n line-height: 1.4;\n }\n\n :global(.MuiToggleButton-root.Mui-selected) {\n background-color: var(--qb-pill-color);\n color: white;\n border-color: var(--qb-pill-color);\n }\n\n :global(.MuiToggleButton-root.Mui-selected:hover) {\n background-color: var(--qb-pill-color);\n }\n}\n"],"mappings":""}