@gen3/frontend 0.12.65 → 0.12.67

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 (148) hide show
  1. package/dist/dts/components/Content/FormContent.d.ts +2 -1
  2. package/dist/dts/components/Content/FormContent.d.ts.map +1 -1
  3. package/dist/dts/components/Content/FormContent.js +2 -2
  4. package/dist/dts/components/Content/FormContent.js.map +1 -1
  5. package/dist/dts/components/facets/EnumFacet.js +1 -2
  6. package/dist/dts/components/facets/EnumFacet.js.map +1 -1
  7. package/dist/dts/components/facets/FacetControlsHeader.d.ts.map +1 -1
  8. package/dist/dts/components/facets/FacetControlsHeader.js +2 -2
  9. package/dist/dts/components/facets/FacetControlsHeader.js.map +1 -1
  10. package/dist/dts/components/facets/FacetEnumList.d.ts.map +1 -1
  11. package/dist/dts/components/facets/FacetEnumList.js +18 -7
  12. package/dist/dts/components/facets/FacetEnumList.js.map +1 -1
  13. package/dist/dts/components/facets/components.d.ts +1 -1
  14. package/dist/dts/components/facets/components.d.ts.map +1 -1
  15. package/dist/dts/components/facets/components.js +1 -1
  16. package/dist/dts/components/facets/components.js.map +1 -1
  17. package/dist/dts/components/facets/createFacetCard.d.ts.map +1 -1
  18. package/dist/dts/components/facets/createFacetCard.js +1 -1
  19. package/dist/dts/components/facets/createFacetCard.js.map +1 -1
  20. package/dist/dts/components/facets/createFacetCard.unit.test.d.ts +2 -0
  21. package/dist/dts/components/facets/createFacetCard.unit.test.d.ts.map +1 -0
  22. package/dist/dts/components/facets/createFacetCard.unit.test.js +56 -0
  23. package/dist/dts/components/facets/createFacetCard.unit.test.js.map +1 -0
  24. package/dist/dts/components/facets/utils.d.ts.map +1 -1
  25. package/dist/dts/components/facets/utils.js +1 -0
  26. package/dist/dts/components/facets/utils.js.map +1 -1
  27. package/dist/dts/components/facets/utils.unit.test.js +40 -2
  28. package/dist/dts/components/facets/utils.unit.test.js.map +1 -1
  29. package/dist/dts/features/CohortBuilder/QueryExpression/LogicalOperatorLabel.d.ts +8 -0
  30. package/dist/dts/features/CohortBuilder/QueryExpression/LogicalOperatorLabel.d.ts.map +1 -0
  31. package/dist/dts/features/CohortBuilder/QueryExpression/LogicalOperatorLabel.js +4 -0
  32. package/dist/dts/features/CohortBuilder/QueryExpression/LogicalOperatorLabel.js.map +1 -0
  33. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.d.ts +2 -1
  34. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.d.ts.map +1 -1
  35. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.js +2 -1
  36. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.js.map +1 -1
  37. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.d.ts +1 -0
  38. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.d.ts.map +1 -1
  39. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.js +1 -0
  40. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.js.map +1 -1
  41. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.d.ts.map +1 -1
  42. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.js +4 -3
  43. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.js.map +1 -1
  44. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.unit.test.d.ts +2 -0
  45. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.unit.test.d.ts.map +1 -0
  46. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.unit.test.js +72 -0
  47. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.unit.test.js.map +1 -0
  48. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.d.ts +1 -0
  49. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.d.ts.map +1 -1
  50. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.js +39 -28
  51. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.js.map +1 -1
  52. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.unit.test.d.ts +2 -0
  53. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.unit.test.d.ts.map +1 -0
  54. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.unit.test.js +38 -0
  55. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.unit.test.js.map +1 -0
  56. package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest → GenericRegistrationAccessRequest}/FormContentViews.d.ts +3 -2
  57. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/FormContentViews.d.ts.map +1 -0
  58. package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest → GenericRegistrationAccessRequest}/FormContentViews.js +3 -3
  59. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/FormContentViews.js.map +1 -0
  60. package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest → GenericRegistrationAccessRequest}/FormContentViews.stories.d.ts +3 -1
  61. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/FormContentViews.stories.d.ts.map +1 -0
  62. package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest → GenericRegistrationAccessRequest}/FormContentViews.stories.js +1 -1
  63. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/FormContentViews.stories.js.map +1 -0
  64. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/GenericRegistrationAccessRequestOutcome.d.ts +7 -0
  65. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/GenericRegistrationAccessRequestOutcome.d.ts.map +1 -0
  66. package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest/StudyRegistrationAccessRequestOutcome.js → GenericRegistrationAccessRequest/GenericRegistrationAccessRequestOutcome.js} +3 -3
  67. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/GenericRegistrationAccessRequestOutcome.js.map +1 -0
  68. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/index.d.ts +8 -0
  69. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/index.d.ts.map +1 -0
  70. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/index.js +10 -0
  71. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/index.js.map +1 -0
  72. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/types.d.ts +35 -0
  73. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/types.d.ts.map +1 -0
  74. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/types.js.map +1 -0
  75. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/useGenericRegistration.d.ts +12 -0
  76. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/useGenericRegistration.d.ts.map +1 -0
  77. package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest/useStudyRegistration.js → GenericRegistrationAccessRequest/useGenericRegistration.js} +31 -44
  78. package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/useGenericRegistration.js.map +1 -0
  79. package/dist/dts/features/Study/StudyDetails/StudyDetailsHeaderButtons.d.ts.map +1 -1
  80. package/dist/dts/features/Study/StudyDetails/StudyDetailsHeaderButtons.js +40 -35
  81. package/dist/dts/features/Study/StudyDetails/StudyDetailsHeaderButtons.js.map +1 -1
  82. package/dist/dts/features/Workspace/utils.js +1 -1
  83. package/dist/dts/features/Workspace/utils.js.map +1 -1
  84. package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/data.d.ts +2 -2
  85. package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/data.d.ts.map +1 -1
  86. package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/data.js +3 -3
  87. package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/data.js.map +1 -1
  88. package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/index.d.ts +6 -6
  89. package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/index.d.ts.map +1 -1
  90. package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/index.js +5 -5
  91. package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/index.js.map +1 -1
  92. package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/data.d.ts +4 -0
  93. package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/data.d.ts.map +1 -0
  94. package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/data.js +32 -0
  95. package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/data.js.map +1 -0
  96. package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/index.d.ts +9 -0
  97. package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/index.d.ts.map +1 -0
  98. package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/index.js +12 -0
  99. package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/index.js.map +1 -0
  100. package/dist/index/cjs/{QueryPanel-DNGXxrpC.js → QueryPanel-aGaJfxNv.js} +2 -2
  101. package/dist/index/cjs/{QueryPanel-DNGXxrpC.js.map → QueryPanel-aGaJfxNv.js.map} +1 -1
  102. package/dist/index/cjs/{index-7sUtTikC.js → index-Br1lKHDn.js} +199 -99
  103. package/dist/index/cjs/index-Br1lKHDn.js.map +1 -0
  104. package/dist/index/cjs/index.js +1 -1
  105. package/dist/index/esm/{QueryPanel-C3JVntIb.js → QueryPanel-C0nNrzSx.js} +2 -2
  106. package/dist/index/esm/{QueryPanel-C3JVntIb.js.map → QueryPanel-C0nNrzSx.js.map} +1 -1
  107. package/dist/index/esm/{index-B_0ks9Pi.js → index-CDgLCUE3.js} +201 -101
  108. package/dist/index/esm/index-CDgLCUE3.js.map +1 -0
  109. package/dist/index/esm/index.js +1 -1
  110. package/dist/index.d.ts +4 -1
  111. package/dist/pages/cjs/{CohortBuilder-DircXqXL.js → CohortBuilder-rF69uCsJ.js} +2 -2
  112. package/dist/pages/cjs/{CohortBuilder-DircXqXL.js.map → CohortBuilder-rF69uCsJ.js.map} +1 -1
  113. package/dist/pages/cjs/{QueryPanel-qYWbo2Cb.js → QueryPanel-JOL_9n8f.js} +2 -2
  114. package/dist/pages/cjs/{QueryPanel-qYWbo2Cb.js.map → QueryPanel-JOL_9n8f.js.map} +1 -1
  115. package/dist/pages/cjs/{index-BQzYPjdE.js → index-Dbd5m3GQ.js} +200 -100
  116. package/dist/pages/cjs/index-Dbd5m3GQ.js.map +1 -0
  117. package/dist/pages/cjs/index.js +1 -1
  118. package/dist/pages/esm/{CohortBuilder-CI9PAFLd.js → CohortBuilder-D3EM-FLr.js} +2 -2
  119. package/dist/pages/esm/{CohortBuilder-CI9PAFLd.js.map → CohortBuilder-D3EM-FLr.js.map} +1 -1
  120. package/dist/pages/esm/{QueryPanel-BEqldpr5.js → QueryPanel-0Znj4lFa.js} +2 -2
  121. package/dist/pages/esm/{QueryPanel-BEqldpr5.js.map → QueryPanel-0Znj4lFa.js.map} +1 -1
  122. package/dist/pages/esm/{index-BoZwM5wd.js → index-CxrByAhv.js} +202 -102
  123. package/dist/pages/esm/index-CxrByAhv.js.map +1 -0
  124. package/dist/pages/esm/index.js +1 -1
  125. package/dist/pages.d.ts +1 -0
  126. package/package.json +4 -3
  127. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/FormContentViews.d.ts.map +0 -1
  128. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/FormContentViews.js.map +0 -1
  129. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/FormContentViews.stories.d.ts.map +0 -1
  130. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/FormContentViews.stories.js.map +0 -1
  131. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/StudyRegistrationAccessRequestOutcome.d.ts +0 -7
  132. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/StudyRegistrationAccessRequestOutcome.d.ts.map +0 -1
  133. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/StudyRegistrationAccessRequestOutcome.js.map +0 -1
  134. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/index.d.ts +0 -7
  135. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/index.d.ts.map +0 -1
  136. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/index.js +0 -11
  137. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/index.js.map +0 -1
  138. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/types.d.ts +0 -20
  139. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/types.d.ts.map +0 -1
  140. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/types.js.map +0 -1
  141. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/useStudyRegistration.d.ts +0 -11
  142. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/useStudyRegistration.d.ts.map +0 -1
  143. package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/useStudyRegistration.js.map +0 -1
  144. package/dist/index/cjs/index-7sUtTikC.js.map +0 -1
  145. package/dist/index/esm/index-B_0ks9Pi.js.map +0 -1
  146. package/dist/pages/cjs/index-BQzYPjdE.js.map +0 -1
  147. package/dist/pages/esm/index-BoZwM5wd.js.map +0 -1
  148. /package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest → GenericRegistrationAccessRequest}/types.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/pages/StudyForms/VLMDSubmissionAccessRequest/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,oCAAoC,MAAM,mEAAmE,CAAC;AAOrH,MAAM,mCAAmC,GAAG,CAAC,EAC3C,WAAW,EACX,WAAW,EACX,MAAM,GACmC,EAAE,EAAE;IAC7C,OAAO,CACL,KAAC,aAAa,IACN,WAAW,EAAE,WAAW,EAC9B,cAAc,EAAE;YACd,KAAK,EAAE,iBAAiB;YACxB,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,iBAAiB;SACvB,YAED,KAAC,oCAAoC,IAAC,MAAM,EAAE,MAAM,GAAI,GAC1C,CACjB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,mCAAmC,CAAC"}
@@ -10,7 +10,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
10
  var dynamic__default = /*#__PURE__*/_interopDefault(dynamic);
11
11
 
12
12
  // Wrapper function for displaying loading element before GqlQueryEditor renders
13
- const GqlQueryEditor = dynamic__default.default(()=>Promise.resolve().then(function () { return require('./index-7sUtTikC.js'); }).then(function (n) { return n.GqlQueryEditor$1; }), {
13
+ const GqlQueryEditor = dynamic__default.default(()=>Promise.resolve().then(function () { return require('./index-Br1lKHDn.js'); }).then(function (n) { return n.GqlQueryEditor$1; }), {
14
14
  loading: ()=>/*#__PURE__*/ jsxRuntime.jsx(core.LoadingOverlay, {
15
15
  visible: true
16
16
  }),
@@ -40,4 +40,4 @@ const GqlQueryEditor = dynamic__default.default(()=>Promise.resolve().then(funct
40
40
  };
41
41
 
42
42
  exports.default = QueryPanel;
43
- //# sourceMappingURL=QueryPanel-DNGXxrpC.js.map
43
+ //# sourceMappingURL=QueryPanel-aGaJfxNv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryPanel-DNGXxrpC.js","sources":["../../../src/features/Query/QueryPanel.tsx"],"sourcesContent":["import dynamic from 'next/dynamic';\nimport React from 'react';\nimport { LoadingOverlay } from '@mantine/core';\nimport type { QueryPanelConfiguration } from './types';\n\n// Wrapper function for displaying loading element before GqlQueryEditor renders\nconst GqlQueryEditor = dynamic(() => import('./GqlQueryEditor'), {\n loading: () => <LoadingOverlay visible={true} />,\n ssr: false,\n});\n\n/**\n * Represents the QueryPanel component responsible for rendering a GraphQL query editor.\n *\n * @param {QueryPanelConfiguration} config - The configuration object for the QueryPanel.\n * @param {Array<{ url: string, label: string }>} [config.graphQLEndpoints=[{ url: 'guppy/graphql', label: 'Flat' }]]\n * An array of GraphQL endpoint objects. Each endpoint object contains the following:\n * - `url` (string): The URL of the GraphQL endpoint. Note this should only be the Gen3 service path (e.g., 'guppy/graphql').\n * - `label` (string): A label for the GraphQL endpoint.\n *\n * @returns {React.Element} The rendered GraphQL query editor.\n */\n\nconst QueryPanel = ({\n graphQLEndpoints = [{ url: 'guppy/graphql', label: 'Flat' }],\n}: QueryPanelConfiguration) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return <GqlQueryEditor graphQLEndpoints={graphQLEndpoints} />;\n};\n\nexport default QueryPanel;\n"],"names":["GqlQueryEditor","dynamic","loading","_jsx","LoadingOverlay","visible","ssr","QueryPanel","graphQLEndpoints","url","label"],"mappings":";;;;;;;;;;;AAKA;AACA,MAAMA,cAAAA,GAAiBC,wBAAAA,CAAQ,IAAM,oDAAO,qBAAA,uDAAA,EAAqB;AAC/DC,IAAAA,OAAAA,EAAS,kBAAMC,cAAA,CAACC,mBAAAA,EAAAA;YAAeC,OAAAA,EAAS;;IACxCC,GAAAA,EAAK;AACP,CAAA,CAAA;AAEA;;;;;;;;;;AAUC,IAED,MAAMC,UAAAA,GAAa,CAAC,EAClBC,gBAAAA,GAAmB;AAAC,IAAA;QAAEC,GAAAA,EAAK,eAAA;QAAiBC,KAAAA,EAAO;AAAO;CAAE,EACpC,GAAA;;;AAGxB,IAAA,qBAAOP,cAAA,CAACH,cAAAA,EAAAA;QAAeQ,gBAAAA,EAAkBA;;AAC3C;;;;"}
1
+ {"version":3,"file":"QueryPanel-aGaJfxNv.js","sources":["../../../src/features/Query/QueryPanel.tsx"],"sourcesContent":["import dynamic from 'next/dynamic';\nimport React from 'react';\nimport { LoadingOverlay } from '@mantine/core';\nimport type { QueryPanelConfiguration } from './types';\n\n// Wrapper function for displaying loading element before GqlQueryEditor renders\nconst GqlQueryEditor = dynamic(() => import('./GqlQueryEditor'), {\n loading: () => <LoadingOverlay visible={true} />,\n ssr: false,\n});\n\n/**\n * Represents the QueryPanel component responsible for rendering a GraphQL query editor.\n *\n * @param {QueryPanelConfiguration} config - The configuration object for the QueryPanel.\n * @param {Array<{ url: string, label: string }>} [config.graphQLEndpoints=[{ url: 'guppy/graphql', label: 'Flat' }]]\n * An array of GraphQL endpoint objects. Each endpoint object contains the following:\n * - `url` (string): The URL of the GraphQL endpoint. Note this should only be the Gen3 service path (e.g., 'guppy/graphql').\n * - `label` (string): A label for the GraphQL endpoint.\n *\n * @returns {React.Element} The rendered GraphQL query editor.\n */\n\nconst QueryPanel = ({\n graphQLEndpoints = [{ url: 'guppy/graphql', label: 'Flat' }],\n}: QueryPanelConfiguration) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return <GqlQueryEditor graphQLEndpoints={graphQLEndpoints} />;\n};\n\nexport default QueryPanel;\n"],"names":["GqlQueryEditor","dynamic","loading","_jsx","LoadingOverlay","visible","ssr","QueryPanel","graphQLEndpoints","url","label"],"mappings":";;;;;;;;;;;AAKA;AACA,MAAMA,cAAAA,GAAiBC,wBAAAA,CAAQ,IAAM,oDAAO,qBAAA,uDAAA,EAAqB;AAC/DC,IAAAA,OAAAA,EAAS,kBAAMC,cAAA,CAACC,mBAAAA,EAAAA;YAAeC,OAAAA,EAAS;;IACxCC,GAAAA,EAAK;AACP,CAAA,CAAA;AAEA;;;;;;;;;;AAUC,IAED,MAAMC,UAAAA,GAAa,CAAC,EAClBC,gBAAAA,GAAmB;AAAC,IAAA;QAAEC,GAAAA,EAAK,eAAA;QAAiBC,KAAAA,EAAO;AAAO;CAAE,EACpC,GAAA;;;AAGxB,IAAA,qBAAOP,cAAA,CAACH,cAAAA,EAAAA;QAAeQ,gBAAAA,EAAkBA;;AAC3C;;;;"}
@@ -7909,6 +7909,7 @@ const OverflowTooltippedLabel = ({ children, label, className = 'flex-grow font-
7909
7909
 
7910
7910
  const QueryExpressionContext = /*#__PURE__*/ React__namespace.default.createContext({
7911
7911
  displayOnly: false,
7912
+ showLogicalOperators: false,
7912
7913
  fieldsAreFlat: true,
7913
7914
  cohortId: null,
7914
7915
  cohortName: 'default',
@@ -7969,6 +7970,12 @@ const QueryExpressionsExpandedContext = /*#__PURE__*/ React__namespace.default.c
7969
7970
  ()=>null
7970
7971
  ]);
7971
7972
 
7973
+ const LogicalOperatorLabel = ({ operator, className = '' })=>/*#__PURE__*/ jsxRuntime.jsx("span", {
7974
+ className: `flex items-center justify-center px-1 text-xs font-bold uppercase text-base-darkest ${className}`,
7975
+ "data-testid": `query-logical-operator-${operator}`,
7976
+ children: operator
7977
+ });
7978
+
7972
7979
  const RemoveButton$1 = ({ value })=>/*#__PURE__*/ jsxRuntime.jsx(core.ActionIcon, {
7973
7980
  size: "xs",
7974
7981
  color: "base.0",
@@ -8030,9 +8037,23 @@ const isRangeOperation = (x)=>{
8030
8037
  const isNestedFilter = (x)=>{
8031
8038
  return 'path' in x;
8032
8039
  };
8033
- const IncludeExcludeQueryElement = ({ index, field, path, operator, operands, displayOnly = false })=>{
8040
+ const buildSetOperation = (field, operator, operands, combineMode)=>combineMode === 'and' ? {
8041
+ operator: 'and',
8042
+ operands: operands.map((value)=>({
8043
+ operator,
8044
+ field,
8045
+ operands: [
8046
+ value
8047
+ ]
8048
+ }))
8049
+ } : {
8050
+ operator,
8051
+ field,
8052
+ operands
8053
+ };
8054
+ const IncludeExcludeQueryElement = ({ index, field, path, operator, operands, displayOnly = false, combineMode = 'or' })=>{
8034
8055
  const [queryExpressionsExpanded, setQueryExpressionsExpanded] = React.useContext(QueryExpressionsExpandedContext);
8035
- const { cohortId: currentCohortId, useRemoveFilter, useUpdateFilters, shouldShowSummary, fieldsAreFlat } = React.useContext(QueryExpressionContext);
8056
+ const { cohortId: currentCohortId, useRemoveFilter, useUpdateFilters, shouldShowSummary, fieldsAreFlat, showLogicalOperators } = React.useContext(QueryExpressionContext);
8036
8057
  const removeCohortFilter = useRemoveFilter();
8037
8058
  const updateCohortFilter = useUpdateFilters();
8038
8059
  useDeepCompare.useDeepCompareEffect(()=>{
@@ -8123,45 +8144,45 @@ const IncludeExcludeQueryElement = ({ index, field, path, operator, operands, di
8123
8144
  gap: "xs",
8124
8145
  children: operandsArray.map((x, i)=>{
8125
8146
  const value = x.toString();
8126
- return /*#__PURE__*/ jsxRuntime.jsx(core.Badge, {
8127
- "data-testid": `query-rep-${field}-${value}-${i}`,
8128
- variant: "filled",
8129
- color: "accent.5",
8130
- size: "md",
8131
- className: `normal-case items-center max-w-[162px] cursor-pointer hover:bg-accent-darker pl-2 ${displayOnly ? 'pr-3' : 'pr-0'}`,
8132
- rightSection: !displayOnly && /*#__PURE__*/ jsxRuntime.jsx(RemoveButton$1, {
8133
- value: value
8134
- }),
8135
- onClick: ()=>{
8136
- if (displayOnly) return;
8137
- const newOperands = operandsArray.filter((o)=>o !== x);
8138
- if (currentCohortId && newOperands.length === 0) {
8139
- setQueryExpressionsExpanded({
8140
- type: 'clear',
8141
- cohortId: currentCohortId,
8142
- field: fieldToUpdate
8143
- });
8144
- removeCohortFilter(index, fieldToUpdate);
8145
- } else {
8146
- updateCohortFilter(index, fieldToUpdate, fieldsAreFlat ? {
8147
- operator: operator,
8148
- field: field,
8149
- operands: newOperands
8150
- } : core$1.buildNestedFilterForOperation(fieldToUpdate, {
8151
- operator: operator,
8152
- field: field,
8153
- operands: newOperands
8154
- }));
8155
- }
8156
- },
8157
- children: /*#__PURE__*/ jsxRuntime.jsx(OverflowTooltippedLabel, {
8158
- label: value,
8159
- className: "flex-grow text-md font-content",
8160
- children: /*#__PURE__*/ jsxRuntime.jsx(QueryRepresentationLabel, {
8161
- value: value.toString(),
8162
- field: field
8147
+ return /*#__PURE__*/ jsxRuntime.jsxs(React__namespace.default.Fragment, {
8148
+ children: [
8149
+ showLogicalOperators && i > 0 && /*#__PURE__*/ jsxRuntime.jsx(LogicalOperatorLabel, {
8150
+ operator: combineMode
8151
+ }),
8152
+ /*#__PURE__*/ jsxRuntime.jsx(core.Badge, {
8153
+ "data-testid": `query-rep-${field}-${value}-${i}`,
8154
+ variant: "filled",
8155
+ color: "accent.5",
8156
+ size: "md",
8157
+ className: `normal-case items-center max-w-[162px] cursor-pointer hover:bg-accent-darker pl-2 ${displayOnly ? 'pr-3' : 'pr-0'}`,
8158
+ rightSection: !displayOnly && /*#__PURE__*/ jsxRuntime.jsx(RemoveButton$1, {
8159
+ value: value
8160
+ }),
8161
+ onClick: ()=>{
8162
+ if (displayOnly) return;
8163
+ const newOperands = operandsArray.filter((o)=>o !== x);
8164
+ if (currentCohortId && newOperands.length === 0) {
8165
+ setQueryExpressionsExpanded({
8166
+ type: 'clear',
8167
+ cohortId: currentCohortId,
8168
+ field: fieldToUpdate
8169
+ });
8170
+ removeCohortFilter(index, fieldToUpdate);
8171
+ } else {
8172
+ const updatedOperation = buildSetOperation(field, operator, newOperands, combineMode);
8173
+ updateCohortFilter(index, fieldToUpdate, fieldsAreFlat ? updatedOperation : core$1.buildNestedFilterForOperation(fieldToUpdate, updatedOperation));
8174
+ }
8175
+ },
8176
+ children: /*#__PURE__*/ jsxRuntime.jsx(OverflowTooltippedLabel, {
8177
+ label: value,
8178
+ className: "flex-grow text-md font-content",
8179
+ children: /*#__PURE__*/ jsxRuntime.jsx(QueryRepresentationLabel, {
8180
+ value: value.toString(),
8181
+ field: field
8182
+ })
8183
+ })
8163
8184
  })
8164
- })
8185
+ ]
8165
8186
  }, `query-rep-${field}-${value}-${i}`);
8166
8187
  })
8167
8188
  })
@@ -8409,6 +8430,25 @@ const QueryElement = ({ index, field, path, children, displayOnly = false })=>{
8409
8430
  upper: f.operands[1]
8410
8431
  }, f.operands[0].field);
8411
8432
  }
8433
+ const enumOperands = f.operands.filter(core$1.isIncludes);
8434
+ const field = enumOperands[0]?.field;
8435
+ if (enumOperands.length === f.operands.length && field && enumOperands.every((operand)=>operand.field === field)) {
8436
+ return /*#__PURE__*/ jsxRuntime.jsx(QueryElement, {
8437
+ field: field,
8438
+ index: this.index,
8439
+ path: this.path,
8440
+ displayOnly: this.displayOnly,
8441
+ children: /*#__PURE__*/ jsxRuntime.jsx(IncludeExcludeQueryElement, {
8442
+ field: field,
8443
+ operator: enumOperands[0].operator,
8444
+ operands: enumOperands.flatMap((operand)=>operand.operands),
8445
+ combineMode: "and",
8446
+ index: this.index,
8447
+ path: this.path,
8448
+ displayOnly: this.displayOnly
8449
+ })
8450
+ }, field);
8451
+ }
8412
8452
  // TODO: handle deeper nesting
8413
8453
  return null;
8414
8454
  };
@@ -8725,7 +8765,7 @@ const QueryExpressionSection = ({ index, showImportExport = false, displayOnly =
8725
8765
  const [filtersSectionCollapsed, setFiltersSectionCollapsed] = React.useState(true);
8726
8766
  const filtersRef = React.useRef(null);
8727
8767
  const [QESectionHeight, setQESectionHeight] = React.useState(0);
8728
- const { cohortName, cohortId, useClearCohortFilters, useGetFilters } = React.useContext(QueryExpressionContext);
8768
+ const { cohortName, cohortId, showLogicalOperators, useClearCohortFilters, useGetFilters } = React.useContext(QueryExpressionContext);
8729
8769
  const clearCohortFilters = useClearCohortFilters();
8730
8770
  const filters = useGetFilters(index);
8731
8771
  useDeepCompare.useDeepCompareEffect(()=>{
@@ -8866,8 +8906,16 @@ const QueryExpressionSection = ({ index, showImportExport = false, displayOnly =
8866
8906
  "data-testid": "text-no-active-cohort-filter",
8867
8907
  className: "flex items-center font-content h-10",
8868
8908
  children: "No filters currently applied."
8869
- }) : Object.keys(filters.root).map((k)=>{
8870
- return convertFilterToComponent(filters.root[k], index, '.', displayOnly);
8909
+ }) : Object.keys(filters.root).map((k, indexInFilters)=>{
8910
+ return /*#__PURE__*/ jsxRuntime.jsxs(React__namespace.default.Fragment, {
8911
+ children: [
8912
+ showLogicalOperators && indexInFilters > 0 && /*#__PURE__*/ jsxRuntime.jsx(LogicalOperatorLabel, {
8913
+ operator: filters.mode,
8914
+ className: "mr-1 mb-2"
8915
+ }),
8916
+ convertFilterToComponent(filters.root[k], index, '.', displayOnly)
8917
+ ]
8918
+ }, k);
8871
8919
  })
8872
8920
  })
8873
8921
  ]
@@ -8914,7 +8962,7 @@ const SUMMARY_THRESHOLD = 10;
8914
8962
  */ const DefaultShouldShowSummary = (field, count)=>{
8915
8963
  return count > SUMMARY_THRESHOLD;
8916
8964
  };
8917
- const QueryExpression = ({ index, shouldShowSummary = DefaultShouldShowSummary, hooks, fieldsAreFlat = true })=>{
8965
+ const QueryExpression = ({ index, shouldShowSummary = DefaultShouldShowSummary, hooks, fieldsAreFlat = true, showLogicalOperators = false })=>{
8918
8966
  const currentCohortId = core$1.useCoreSelector((state)=>core$1.selectCurrentCohortId(state));
8919
8967
  const currentCohortName = core$1.useCoreSelector((state)=>core$1.selectCurrentCohortName(state));
8920
8968
  return /*#__PURE__*/ jsxRuntime.jsx(QueryExpressionContext.Provider, {
@@ -8922,6 +8970,7 @@ const QueryExpression = ({ index, shouldShowSummary = DefaultShouldShowSummary,
8922
8970
  cohortName: currentCohortName,
8923
8971
  cohortId: currentCohortId,
8924
8972
  displayOnly: false,
8973
+ showLogicalOperators,
8925
8974
  fieldsAreFlat: fieldsAreFlat,
8926
8975
  shouldShowSummary: shouldShowSummary,
8927
8976
  useClearCohortFilters: ()=>{
@@ -9423,6 +9472,7 @@ const classifyFacets = (data, index, fieldMapping = [], facetDefinitionsFromConf
9423
9472
  moveValuesToBottom: facetDef?.moveValuesToBottom,
9424
9473
  excludeValues: facetDef?.excludeValues,
9425
9474
  defaultSort: facetDef?.defaultSort,
9475
+ showMatchModeSelector: facetDef?.showMatchModeSelector,
9426
9476
  valueLabel: facetDef?.valueLabel,
9427
9477
  range: facetDef?.range ? {
9428
9478
  minimum: facetDef.range?.minimum ?? Math.floor(Number(value[0].key[0])),
@@ -10727,7 +10777,7 @@ inline-flex
10727
10777
  items-center
10728
10778
  hover:text-primary-lightest
10729
10779
  `;
10730
- const controlsIconStyle = 'text-secondary-contrast hover:text-secondary-lighter';
10780
+ const controlsIconStyle = 'text-secondary-contrast hover:text-secondary-contrast-lighter';
10731
10781
  const FacetText = tw__default.default.div`
10732
10782
  text-secondary-contrast font-heading font-semibold text-sm break-words
10733
10783
  `;
@@ -10850,12 +10900,11 @@ flex items-start justify-between items-center flex-nowrap bg-secondary px-1.5 ro
10850
10900
  if (toggleExpandFilter) toggleExpandFilter(field, true);
10851
10901
  if (toggleSettings) toggleSettings();
10852
10902
  },
10853
- "aria-label": "Search",
10903
+ "aria-label": "Filter settings",
10854
10904
  className: header.iconStyle,
10855
- children: /*#__PURE__*/ jsxRuntime.jsx(react.Icon, {
10856
- width: 12,
10857
- height: 12,
10858
- icon: "gen3:settings",
10905
+ children: /*#__PURE__*/ jsxRuntime.jsx(md.MdSettings, {
10906
+ size: "1.35em",
10907
+ className: header.iconStyle,
10859
10908
  "aria-hidden": "true"
10860
10909
  })
10861
10910
  })
@@ -12214,8 +12263,8 @@ const FacetEnumList = ({ field, facetName, hooks, valueLabel, isSettings = false
12214
12263
  const searchInputRef = React.useRef(null);
12215
12264
  const settingRef = React.useRef(null);
12216
12265
  const [searchTerm, setSearchTerm] = React.useState('');
12217
- // const [combineMode, setCombineMode] = useState<'or' | 'and'>('or');
12218
12266
  const { data, enumFilters, combineMode, isSuccess, error } = hooks.useGetFacetData(field);
12267
+ const [selectedCombineMode, setSelectedCombineMode] = React.useState(combineMode ?? 'or');
12219
12268
  const [selectedEnums, setSelectedEnums] = React.useState(enumFilters ?? []);
12220
12269
  const totalCount = hooks?.useTotalCounts ? hooks.useTotalCounts() : 1;
12221
12270
  const clearFilters = hooks.useClearFilter();
@@ -12249,6 +12298,17 @@ const FacetEnumList = ({ field, facetName, hooks, valueLabel, isSettings = false
12249
12298
  }, [
12250
12299
  enumFilters
12251
12300
  ]);
12301
+ React.useEffect(()=>{
12302
+ // Existing filters are the source of truth when loading or externally
12303
+ // updating a cohort. Keep a user's selected mode when the facet is empty
12304
+ // so they can choose "Match all" before selecting values.
12305
+ if ((enumFilters?.length ?? 0) > 0) {
12306
+ setSelectedCombineMode(combineMode ?? 'or');
12307
+ }
12308
+ }, [
12309
+ combineMode,
12310
+ enumFilters
12311
+ ]);
12252
12312
  const maxValuesToDisplay = DEFAULT_VISIBLE_ITEMS$2;
12253
12313
  // update filters when checkbox is selected
12254
12314
  const handleChange = (value, checked)=>{
@@ -12263,13 +12323,15 @@ const FacetEnumList = ({ field, facetName, hooks, valueLabel, isSettings = false
12263
12323
  ] : [
12264
12324
  value
12265
12325
  ];
12266
- updateFacetEnum(field, updated, updateFacetFilters, clearFilters, combineMode);
12326
+ updateFacetEnum(field, updated, updateFacetFilters, clearFilters, selectedCombineMode);
12267
12327
  } else {
12268
12328
  const updated = selectedEnums?.filter((x)=>x !== value);
12269
- updateFacetEnum(field, updated ?? [], updateFacetFilters, clearFilters, combineMode);
12329
+ updateFacetEnum(field, updated ?? [], updateFacetFilters, clearFilters, selectedCombineMode);
12270
12330
  }
12271
12331
  };
12272
12332
  const handleCombineModeChange = (mode)=>{
12333
+ setSelectedCombineMode(mode);
12334
+ if ((selectedEnums?.length ?? 0) === 0) return;
12273
12335
  updateFacetEnum(field, selectedEnums ?? [], updateFacetFilters, clearFilters, mode);
12274
12336
  };
12275
12337
  const [facetChartData, setFacetChartData] = React.useState({
@@ -12404,23 +12466,24 @@ const FacetEnumList = ({ field, facetName, hooks, valueLabel, isSettings = false
12404
12466
  indicator: 'bg-accent text-accent-contrast'
12405
12467
  },
12406
12468
  ref: settingRef,
12407
- value: combineMode,
12469
+ value: selectedCombineMode,
12470
+ "aria-label": "How selected facet values are matched",
12408
12471
  onChange: (value)=>{
12409
12472
  handleCombineModeChange(value);
12410
12473
  },
12411
12474
  data: [
12412
12475
  {
12413
- label: 'AND',
12414
- value: 'and'
12476
+ label: 'Match any',
12477
+ value: 'or'
12415
12478
  },
12416
12479
  {
12417
- label: 'OR',
12418
- value: 'or'
12480
+ label: 'Match all',
12481
+ value: 'and'
12419
12482
  }
12420
12483
  ]
12421
12484
  }),
12422
12485
  /*#__PURE__*/ jsxRuntime.jsx(core.Tooltip, {
12423
- label: "Combine filters with AND or OR 2",
12486
+ label: "Match any includes cases with at least one selected value. Match all requires every selected value.",
12424
12487
  children: /*#__PURE__*/ jsxRuntime.jsx(react.Icon, {
12425
12488
  icon: "gen3:info",
12426
12489
  height: 12,
@@ -13256,6 +13319,7 @@ const createFacetCard = ({ facetDefinition, valueLabel, hooks: dataFunctions, fa
13256
13319
  width: width,
13257
13320
  hooks: dataFunctions,
13258
13321
  showPercent: showPercent,
13322
+ showSettings: facetDefinition?.showMatchModeSelector,
13259
13323
  sharedWithIndices: facetDefinition?.sharedWithIndices,
13260
13324
  defaultSort: facetDefinition?.defaultSort,
13261
13325
  moveValuesToBottom: facetDefinition?.moveValuesToBottom ?? [],
@@ -17482,17 +17546,11 @@ const SinglePageStudyDetailsPanel = ({ data, studyConfig, authorization })=>{
17482
17546
  });
17483
17547
  };
17484
17548
 
17485
- const userCanRegisterStudy = (userInfo, studyRegistrationAuthZ)=>{
17486
- const actions = userInfo?.authz && studyRegistrationAuthZ ? userInfo.authz[studyRegistrationAuthZ] : undefined;
17487
- const method = 'access';
17488
- const service = 'study_registration';
17489
- return actions?.some((x)=>(x.service === service || x.service === '*') && (x.method === method || x.method === '*')) ?? false;
17490
- };
17491
-
17492
17549
  const StudyDetailsHeaderButtons = ({ onClose, permalink })=>{
17493
17550
  const userInfo = core$1.useCoreSelector((state)=>core$1.selectUserDetails(state));
17494
17551
  const requiresLogin = !userInfo.active;
17495
17552
  const { discoveryConfig: config } = useDiscoveryContext();
17553
+ const router$1 = router.useRouter();
17496
17554
  const index = config.minimalFieldMapping.uid;
17497
17555
  const { studyDetails } = useStudyContext();
17498
17556
  const studyUID = _.toString(studyDetails[index]);
@@ -17500,44 +17558,55 @@ const StudyDetailsHeaderButtons = ({ onClose, permalink })=>{
17500
17558
  const studyRegistrationAuthZ = studyDetails.registration_authz;
17501
17559
  const studyProjectNumber = studyDetails.project_number;
17502
17560
  const showSubmitButton = config.detailView.showSubmitButton;
17503
- const router$1 = router.useRouter();
17504
- const isStudyRegisterable = userCanRegisterStudy(userInfo, studyRegistrationAuthZ);
17505
- const handleRegisterButtonClick = ()=>{
17561
+ const userAuthMapping = core$1.useCoreSelector((state)=>core$1.selectAuthzMappingData(state));
17562
+ const userHasStudyRegistrationAccess = core$1.userHasMethodForServiceOnResource('access', 'study_registration', _.toString(studyRegistrationAuthZ), userAuthMapping);
17563
+ const isStudyRegistered = studyDetails.is_registered;
17564
+ // Study is not yet registered — show register/request-access/login button
17565
+ const showStudyRegistrationButton = showSubmitButton && isStudyRegistered === false;
17566
+ // Study is registered — show appropriate VLMD submission button based on auth state
17567
+ const showSubmitVLMDButton = showSubmitButton && isStudyRegistered && !requiresLogin && userHasStudyRegistrationAccess;
17568
+ const showRequestVLMDAccessButton = showSubmitButton && isStudyRegistered && !requiresLogin && !userHasStudyRegistrationAccess;
17569
+ const showLoginToSubmitVLMDButton = showSubmitButton && isStudyRegistered && requiresLogin;
17570
+ const studyNavQuery = {
17571
+ studyUID,
17572
+ studyName,
17573
+ studyRegistrationAuthZ: _.toString(studyRegistrationAuthZ),
17574
+ studyProjectNumber
17575
+ };
17576
+ const handleStudyRegistrationClick = ()=>{
17506
17577
  if (requiresLogin) {
17507
17578
  void router$1.push('/Login');
17508
- } else if (isStudyRegisterable) {
17579
+ } else if (userHasStudyRegistrationAccess) {
17509
17580
  void router$1.push({
17510
17581
  pathname: '/study-reg',
17511
- query: {
17512
- studyUID: studyUID,
17513
- studyName: studyName,
17514
- studyRegistrationAuthZ: studyRegistrationAuthZ,
17515
- studyProjectNumber: studyProjectNumber
17516
- }
17582
+ query: studyNavQuery
17517
17583
  }, '/study-reg');
17518
17584
  } else {
17519
17585
  void router$1.push({
17520
17586
  pathname: '/study-reg/request-access',
17521
- query: {
17522
- studyUID: studyUID,
17523
- studyName: studyName,
17524
- studyRegistrationAuthZ: studyRegistrationAuthZ,
17525
- studyProjectNumber: studyProjectNumber
17526
- }
17587
+ query: studyNavQuery
17527
17588
  }, '/study-reg/request-access');
17528
17589
  }
17529
17590
  };
17530
- const submitButtonText = React.useMemo(()=>{
17531
- if (requiresLogin) {
17532
- return 'Login to Register This Study';
17533
- } else if (isStudyRegisterable) {
17534
- return 'Register Study';
17535
- } else {
17536
- return `Request Access to Register this Study`;
17537
- }
17591
+ const handleSubmitVLMDClick = ()=>{
17592
+ void router$1.push({
17593
+ pathname: '/vlmd-submission',
17594
+ query: studyNavQuery
17595
+ }, '/vlmd-submission');
17596
+ };
17597
+ const handleRequestVLMDAccessClick = ()=>{
17598
+ void router$1.push({
17599
+ pathname: '/vlmd-submission/request-access',
17600
+ query: studyNavQuery
17601
+ }, '/vlmd-submission/request-access');
17602
+ };
17603
+ const studyRegistrationButtonText = React.useMemo(()=>{
17604
+ if (requiresLogin) return 'Login to Register This Study';
17605
+ if (userHasStudyRegistrationAccess) return 'Register This Study';
17606
+ return 'Request Access to Register This Study';
17538
17607
  }, [
17539
17608
  requiresLogin,
17540
- isStudyRegisterable
17609
+ userHasStudyRegistrationAccess
17541
17610
  ]);
17542
17611
  return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
17543
17612
  children: [
@@ -17547,15 +17616,45 @@ const StudyDetailsHeaderButtons = ({ onClose, permalink })=>{
17547
17616
  variant: "outline",
17548
17617
  children: "Back"
17549
17618
  }),
17550
- showSubmitButton && /*#__PURE__*/ jsxRuntime.jsx(core.Button, {
17619
+ showStudyRegistrationButton && /*#__PURE__*/ jsxRuntime.jsx(core.Button, {
17551
17620
  leftSection: /*#__PURE__*/ jsxRuntime.jsx(fi.FiLogIn, {
17552
17621
  size: 14
17553
17622
  }),
17554
17623
  variant: "subtle",
17555
17624
  color: "black",
17556
17625
  size: "xs",
17557
- onClick: handleRegisterButtonClick,
17558
- children: submitButtonText
17626
+ onClick: handleStudyRegistrationClick,
17627
+ children: studyRegistrationButtonText
17628
+ }),
17629
+ showSubmitVLMDButton && /*#__PURE__*/ jsxRuntime.jsx(core.Button, {
17630
+ leftSection: /*#__PURE__*/ jsxRuntime.jsx(fi.FiLogIn, {
17631
+ size: 14
17632
+ }),
17633
+ variant: "subtle",
17634
+ color: "black",
17635
+ size: "xs",
17636
+ onClick: handleSubmitVLMDClick,
17637
+ children: "Submit Variable-level Metadata"
17638
+ }),
17639
+ showRequestVLMDAccessButton && /*#__PURE__*/ jsxRuntime.jsx(core.Button, {
17640
+ leftSection: /*#__PURE__*/ jsxRuntime.jsx(fi.FiLogIn, {
17641
+ size: 14
17642
+ }),
17643
+ variant: "subtle",
17644
+ color: "black",
17645
+ size: "xs",
17646
+ onClick: handleRequestVLMDAccessClick,
17647
+ children: "Request Access to Submit Variable-level Metadata"
17648
+ }),
17649
+ showLoginToSubmitVLMDButton && /*#__PURE__*/ jsxRuntime.jsx(core.Button, {
17650
+ leftSection: /*#__PURE__*/ jsxRuntime.jsx(fi.FiLogIn, {
17651
+ size: 14
17652
+ }),
17653
+ variant: "subtle",
17654
+ color: "black",
17655
+ size: "xs",
17656
+ onClick: ()=>void router$1.push('/Login'),
17657
+ children: "Login to Submit Variable-level Metadata"
17559
17658
  }),
17560
17659
  /*#__PURE__*/ jsxRuntime.jsx(core.CopyButton, {
17561
17660
  value: permalink,
@@ -30064,7 +30163,7 @@ const DiscoveryPageGetServerSideProps = async ()=>{
30064
30163
  }
30065
30164
  };
30066
30165
 
30067
- const QueryPanel = dynamic__default.default(()=>Promise.resolve().then(function () { return require('./QueryPanel-DNGXxrpC.js'); }), {
30166
+ const QueryPanel = dynamic__default.default(()=>Promise.resolve().then(function () { return require('./QueryPanel-aGaJfxNv.js'); }), {
30068
30167
  ssr: false
30069
30168
  });
30070
30169
  const QueryPage = ({ headerProps, footerProps, configuration: queryProps })=>{
@@ -32779,7 +32878,7 @@ const AdminAuthZPageGetServerSideProps = async ()=>{
32779
32878
  * @param {string} props.keyString - For mantine form to identify elements
32780
32879
  * @param {FormContentProps['form']} props.form - @mantine/form useForm() object
32781
32880
  * @returns {JSX.Element} A JSX element that renders the content dynamically based on the input type and properties.
32782
- */ const FormContent = ({ text, label, initialValue, dropdownData, description, placeholder, disabled, required, tooltip, className = '', type = ContentType.Text, keyString, form })=>{
32881
+ */ const FormContent = ({ text, label, initialValue, dropdownData, description, placeholder, disabled, required, tooltip, className = '', autosize = false, type = ContentType.Text, keyString, form })=>{
32783
32882
  //code for tooltips on form items
32784
32883
  let inputContainer;
32785
32884
  if (tooltip) {
@@ -32905,7 +33004,8 @@ const AdminAuthZPageGetServerSideProps = async ()=>{
32905
33004
  disabled: disabled || form.submitting,
32906
33005
  required: required,
32907
33006
  inputContainer: inputContainer,
32908
- ...form.getInputProps(keyString)
33007
+ ...form.getInputProps(keyString),
33008
+ autosize: autosize
32909
33009
  }, form.key(keyString));
32910
33010
  }
32911
33011
  default:
@@ -34051,7 +34151,7 @@ const ExternalLoginsStatus = ()=>{
34051
34151
  };
34052
34152
 
34053
34153
  const PaymentNumberToString = (x, undefinedValue = 'N/A', precision = 2)=>{
34054
- if (!x || Number.isNaN(x)) return undefinedValue;
34154
+ if (typeof x !== 'number' || Number.isNaN(x)) return undefinedValue;
34055
34155
  return x.toFixed(precision);
34056
34156
  };
34057
34157
 
@@ -42114,4 +42214,4 @@ exports.useUpdateFiltersFlat = useUpdateFiltersFlat;
42114
42214
  exports.userHasMethodForServiceOnResource = userHasMethodForServiceOnResource$1;
42115
42215
  exports.validateObjectHasRequiredFields = validateObjectHasRequiredFields;
42116
42216
  exports.withBasePath = withBasePath;
42117
- //# sourceMappingURL=index-7sUtTikC.js.map
42217
+ //# sourceMappingURL=index-Br1lKHDn.js.map