synapse-react-client 3.1.37 → 3.1.38-SWC-6490

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -26226,6 +26226,7 @@ __export(SynapseClient_exports, {
26226
26226
  getSchema: () => getSchema,
26227
26227
  getSchemaBinding: () => getSchemaBinding,
26228
26228
  getSchemaValidationResults: () => getSchemaValidationResults,
26229
+ getSubjects: () => getSubjects,
26229
26230
  getSubmissionById: () => getSubmissionById,
26230
26231
  getSubmissionTeams: () => getSubmissionTeams,
26231
26232
  getSubscribers: () => getSubscribers,
@@ -27432,7 +27433,25 @@ __export(functions_exports, {
27432
27433
  // src/utils/functions/queryUtils.ts
27433
27434
  var import_lodash_es3 = require("lodash-es");
27434
27435
 
27435
- // ../synapse-types/src/AccessToken/ScopeDescriptions.ts
27436
+ // ../synapse-types/dist/index.mjs
27437
+ var ApprovalState = /* @__PURE__ */ ((ApprovalState2) => {
27438
+ ApprovalState2["APPROVED"] = "APPROVED";
27439
+ ApprovalState2["REVOKED"] = "REVOKED";
27440
+ return ApprovalState2;
27441
+ })(ApprovalState || {});
27442
+ var AccessType = /* @__PURE__ */ ((AccessType2) => {
27443
+ AccessType2["GAIN_ACCESS"] = "GAIN_ACCESS";
27444
+ AccessType2["RENEW_ACCESS"] = "RENEW_ACCESS";
27445
+ AccessType2["REVOKE_ACCESS"] = "REVOKE_ACCESS";
27446
+ return AccessType2;
27447
+ })(AccessType || {});
27448
+ var SubmissionState = /* @__PURE__ */ ((SubmissionState2) => {
27449
+ SubmissionState2["SUBMITTED"] = "SUBMITTED";
27450
+ SubmissionState2["APPROVED"] = "APPROVED";
27451
+ SubmissionState2["REJECTED"] = "REJECTED";
27452
+ SubmissionState2["CANCELLED"] = "CANCELLED";
27453
+ return SubmissionState2;
27454
+ })(SubmissionState || {});
27436
27455
  var scopeDescriptions = {
27437
27456
  openid: {
27438
27457
  displayName: "OpenID",
@@ -27459,34 +27478,33 @@ var scopeDescriptions = {
27459
27478
  description: "Permission to access the resources authorized here when you are not logged in, until you explicitly revoke access"
27460
27479
  }
27461
27480
  };
27462
-
27463
- // ../synapse-types/src/CertificationQuiz/Questions.ts
27464
27481
  var MULTICHOICE_RESPONSE_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.quiz.MultichoiceResponse";
27465
-
27466
- // ../synapse-types/src/docker/DockerRepository.ts
27482
+ var DiscussionThreadOrder = /* @__PURE__ */ ((DiscussionThreadOrder2) => {
27483
+ DiscussionThreadOrder2["NUMBER_OF_REPLIES"] = "NUMBER_OF_REPLIES";
27484
+ DiscussionThreadOrder2["NUMBER_OF_VIEWS"] = "NUMBER_OF_VIEWS";
27485
+ DiscussionThreadOrder2["PINNED_AND_LAST_ACTIVITY"] = "PINNED_AND_LAST_ACTIVITY";
27486
+ DiscussionThreadOrder2["THREAD_TITLE"] = "THREAD_TITLE";
27487
+ return DiscussionThreadOrder2;
27488
+ })(DiscussionThreadOrder || {});
27489
+ var DiscussionReplyOrder = /* @__PURE__ */ ((DiscussionReplyOrder2) => {
27490
+ DiscussionReplyOrder2["CREATED_ON"] = "CREATED_ON";
27491
+ return DiscussionReplyOrder2;
27492
+ })(DiscussionReplyOrder || {});
27493
+ var DiscussionFilter = /* @__PURE__ */ ((DiscussionFilter22) => {
27494
+ DiscussionFilter22["NO_FILTER"] = "NO_FILTER";
27495
+ DiscussionFilter22["DELETED_ONLY"] = "DELETED_ONLY";
27496
+ DiscussionFilter22["EXCLUDE_DELETED"] = "EXCLUDE_DELETED";
27497
+ return DiscussionFilter22;
27498
+ })(DiscussionFilter || {});
27467
27499
  var DOCKER_REPOSITORY_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.docker.DockerRepository";
27468
-
27469
- // ../synapse-types/src/Entity/FileEntity.ts
27470
27500
  var FILE_ENTITY_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.FileEntity";
27471
-
27472
- // ../synapse-types/src/Table/MaterializedView.ts
27473
27501
  var MATERIALIZED_VIEW_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.table.MaterializedView";
27474
-
27475
- // ../synapse-types/src/Table/EntityView.ts
27476
27502
  var ENTITY_VIEW_TYPE_MASK_FILE = 1;
27477
27503
  var ENTITY_VIEW_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.table.EntityView";
27478
-
27479
- // ../synapse-types/src/Table/SubmissionView.ts
27480
27504
  var SUBMISSION_VIEW_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.table.SubmissionView";
27481
-
27482
- // ../synapse-types/src/Table/Dataset.ts
27483
27505
  var DATASET_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.table.Dataset";
27484
27506
  var DATASET_COLLECTION_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.table.DatasetCollection";
27485
-
27486
- // ../synapse-types/src/Table/VirtualTable.ts
27487
27507
  var VIRTUAL_TABLE_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.table.VirtualTable";
27488
-
27489
- // ../synapse-types/src/Table/ConcreteType.ts
27490
27508
  var TABLE_ENTITY_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.table.TableEntity";
27491
27509
  var VIEW_CONCRETE_TYPE_VALUES = [
27492
27510
  ENTITY_VIEW_CONCRETE_TYPE_VALUE,
@@ -27500,23 +27518,13 @@ var TABLE_CONCRETE_TYPE_VALUES = [
27500
27518
  MATERIALIZED_VIEW_CONCRETE_TYPE_VALUE,
27501
27519
  VIRTUAL_TABLE_CONCRETE_TYPE_VALUE
27502
27520
  ];
27503
-
27504
- // ../synapse-types/src/Entity/Entity.ts
27505
27521
  var VERSIONABLE_ENTITY_CONCRETE_TYPE_VALUES = [
27506
27522
  FILE_ENTITY_CONCRETE_TYPE_VALUE,
27507
27523
  ...TABLE_CONCRETE_TYPE_VALUES
27508
27524
  ];
27509
-
27510
- // ../synapse-types/src/Entity/Folder.ts
27511
27525
  var FOLDER_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.Folder";
27512
-
27513
- // ../synapse-types/src/Entity/Link.ts
27514
27526
  var LINK_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.Link";
27515
-
27516
- // ../synapse-types/src/Entity/Project.ts
27517
27527
  var PROJECT_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.Project";
27518
-
27519
- // ../synapse-types/src/EntityBundle.ts
27520
27528
  var ALL_ENTITY_BUNDLE_FIELDS = {
27521
27529
  includeEntity: true,
27522
27530
  includeEntityPath: true,
@@ -27533,40 +27541,67 @@ var ALL_ENTITY_BUNDLE_FIELDS = {
27533
27541
  includeThreadCount: true,
27534
27542
  includeRestrictionInformation: true
27535
27543
  };
27536
-
27537
- // ../synapse-types/src/EntityType.ts
27538
- var EntityType = /* @__PURE__ */ ((EntityType3) => {
27539
- EntityType3["PROJECT"] = "project";
27540
- EntityType3["FOLDER"] = "folder";
27541
- EntityType3["FILE"] = "file";
27542
- EntityType3["TABLE"] = "table";
27543
- EntityType3["LINK"] = "link";
27544
- EntityType3["ENTITY_VIEW"] = "entityview";
27545
- EntityType3["DOCKER_REPO"] = "dockerrepo";
27546
- EntityType3["SUBMISSION_VIEW"] = "submissionview";
27547
- EntityType3["DATASET"] = "dataset";
27548
- EntityType3["DATASET_COLLECTION"] = "datasetcollection";
27549
- EntityType3["MATERIALIZED_VIEW"] = "materializedview";
27550
- EntityType3["VIRTUAL_TABLE"] = "virtualtable";
27551
- return EntityType3;
27544
+ var SortBy = /* @__PURE__ */ ((SortBy2) => {
27545
+ SortBy2["NAME"] = "NAME";
27546
+ SortBy2["CREATED_ON"] = "CREATED_ON";
27547
+ SortBy2["MODIFIED_ON"] = "MODIFIED_ON";
27548
+ return SortBy2;
27549
+ })(SortBy || {});
27550
+ var Direction = /* @__PURE__ */ ((Direction2) => {
27551
+ Direction2["ASC"] = "ASC";
27552
+ Direction2["DESC"] = "DESC";
27553
+ return Direction2;
27554
+ })(Direction || {});
27555
+ var EntityType = /* @__PURE__ */ ((EntityType22) => {
27556
+ EntityType22["PROJECT"] = "project";
27557
+ EntityType22["FOLDER"] = "folder";
27558
+ EntityType22["FILE"] = "file";
27559
+ EntityType22["TABLE"] = "table";
27560
+ EntityType22["LINK"] = "link";
27561
+ EntityType22["ENTITY_VIEW"] = "entityview";
27562
+ EntityType22["DOCKER_REPO"] = "dockerrepo";
27563
+ EntityType22["SUBMISSION_VIEW"] = "submissionview";
27564
+ EntityType22["DATASET"] = "dataset";
27565
+ EntityType22["DATASET_COLLECTION"] = "datasetcollection";
27566
+ EntityType22["MATERIALIZED_VIEW"] = "materializedview";
27567
+ EntityType22["VIRTUAL_TABLE"] = "virtualtable";
27568
+ return EntityType22;
27552
27569
  })(EntityType || {});
27553
-
27554
- // ../synapse-types/src/File/S3FileHandle.ts
27570
+ var ErrorResponseCode = /* @__PURE__ */ ((ErrorResponseCode2) => {
27571
+ ErrorResponseCode2["PASSWORD_RESET_VIA_EMAIL_REQUIRED"] = "PASSWORD_RESET_VIA_EMAIL_REQUIRED";
27572
+ ErrorResponseCode2["USER_CERTIFICATION_REQUIRED"] = "USER_CERTIFICATION_REQUIRED";
27573
+ ErrorResponseCode2["INVALID_TABLE_QUERY_FACET_COLUMN_REQUEST"] = "INVALID_TABLE_QUERY_FACET_COLUMN_REQUEST";
27574
+ ErrorResponseCode2["OAUTH_CLIENT_NOT_VERIFIED"] = "OAUTH_CLIENT_NOT_VERIFIED";
27575
+ ErrorResponseCode2["TWO_FA_REQUIRED"] = "TWO_FA_REQUIRED";
27576
+ return ErrorResponseCode2;
27577
+ })(ErrorResponseCode || {});
27555
27578
  var S3_FILE_HANDLE_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.file.S3FileHandle";
27556
-
27557
- // ../synapse-types/src/File/GoogleCloudFileHandle.ts
27558
27579
  var GOOGLE_CLOUD_FILE_HANDLE_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.file.GoogleCloudFileHandle";
27559
-
27560
- // ../synapse-types/src/File/ExternalFileHandle.ts
27561
27580
  var EXTERNAL_FILE_HANDLE_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.file.ExternalFileHandle";
27562
-
27563
- // ../synapse-types/src/File/ExternalObjectStoreFileHandle.ts
27564
27581
  var EXTERNAL_OBJECT_STORE_FILE_HANDLE_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.file.ExternalObjectStoreFileHandle";
27565
-
27566
- // ../synapse-types/src/File/ProxyFileHandle.ts
27567
27582
  var PROXY_FILE_HANDLE_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.file.ProxyFileHandle";
27568
-
27569
- // ../synapse-types/src/MarkdownCommands.ts
27583
+ var FileHandleAssociateType = /* @__PURE__ */ ((FileHandleAssociateType2) => {
27584
+ FileHandleAssociateType2["FileEntity"] = "FileEntity";
27585
+ FileHandleAssociateType2["TableEntity"] = "TableEntity";
27586
+ FileHandleAssociateType2["WikiAttachment"] = "WikiAttachment";
27587
+ FileHandleAssociateType2["WikiMarkdown"] = "WikiMarkdown";
27588
+ FileHandleAssociateType2["UserProfileAttachment"] = "UserProfileAttachment";
27589
+ FileHandleAssociateType2["MessageAttachment"] = "MessageAttachment";
27590
+ FileHandleAssociateType2["TeamAttachment"] = "TeamAttachment";
27591
+ FileHandleAssociateType2["SubmissionAttachment"] = "SubmissionAttachment";
27592
+ FileHandleAssociateType2["VerificationSubmission"] = "VerificationSubmission";
27593
+ FileHandleAssociateType2["AccessRequirementAttachment"] = "AccessRequirementAttachment";
27594
+ FileHandleAssociateType2["DataAccessRequestAttachment"] = "DataAccessRequestAttachment";
27595
+ FileHandleAssociateType2["DataAccessSubmissionAttachment"] = "DataAccessSubmissionAttachment";
27596
+ return FileHandleAssociateType2;
27597
+ })(FileHandleAssociateType || {});
27598
+ var StatusEnum = /* @__PURE__ */ ((StatusEnum22) => {
27599
+ StatusEnum22["WAITING_FOR_SUBMISSION"] = "WAITING_FOR_SUBMISSION";
27600
+ StatusEnum22["SUBMITTED_WAITING_FOR_REVIEW"] = "SUBMITTED_WAITING_FOR_REVIEW";
27601
+ StatusEnum22["ACCEPTED"] = "ACCEPTED";
27602
+ StatusEnum22["REJECTED"] = "REJECTED";
27603
+ return StatusEnum22;
27604
+ })(StatusEnum || {});
27570
27605
  var commandList = [
27571
27606
  "title",
27572
27607
  "bold",
@@ -27621,8 +27656,6 @@ var MARKDOWN_COMMANDS_DATA = {
27621
27656
  closeSyntax: "](image-url)"
27622
27657
  }
27623
27658
  };
27624
-
27625
- // ../synapse-types/src/ObjectType.ts
27626
27659
  var ObjectType = /* @__PURE__ */ ((ObjectType2) => {
27627
27660
  ObjectType2["ENTITY"] = "ENTITY";
27628
27661
  ObjectType2["ENTITY_CONTAINER"] = "ENTITY_CONTAINER";
@@ -27656,38 +27689,97 @@ var ObjectType = /* @__PURE__ */ ((ObjectType2) => {
27656
27689
  ObjectType2["MEMBERSHIP_INVITATION"] = "MEMBERSHIP_INVITATION";
27657
27690
  return ObjectType2;
27658
27691
  })(ObjectType || {});
27659
-
27660
- // ../synapse-types/src/Provenance/Provenance.ts
27692
+ var AliasType = /* @__PURE__ */ ((AliasType2) => {
27693
+ AliasType2["USER_NAME"] = "USER_NAME";
27694
+ AliasType2["TEAM_NAME"] = "TEAM_NAME";
27695
+ AliasType2["USER_EMAIL"] = "USER_EMAIL";
27696
+ AliasType2["USER_OPEN_ID"] = "USER_OPEN_ID";
27697
+ AliasType2["USER_ORCID"] = "USER_ORCID";
27698
+ return AliasType2;
27699
+ })(AliasType || {});
27661
27700
  var USED_ENTITY_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.provenance.UsedEntity";
27662
-
27663
- // ../synapse-types/src/SignedToken/SignedTokenConcreteType.ts
27701
+ var RestrictableObjectType = /* @__PURE__ */ ((RestrictableObjectType2) => {
27702
+ RestrictableObjectType2["ENTITY"] = "ENTITY";
27703
+ RestrictableObjectType2["EVALUATION"] = "EVALUATION";
27704
+ RestrictableObjectType2["TEAM"] = "TEAM";
27705
+ return RestrictableObjectType2;
27706
+ })(RestrictableObjectType || {});
27707
+ var RestrictionLevel = /* @__PURE__ */ ((RestrictionLevel2) => {
27708
+ RestrictionLevel2["OPEN"] = "OPEN";
27709
+ RestrictionLevel2["RESTRICTED_BY_TERMS_OF_USE"] = "RESTRICTED_BY_TERMS_OF_USE";
27710
+ RestrictionLevel2["CONTROLLED_BY_ACT"] = "CONTROLLED_BY_ACT";
27711
+ return RestrictionLevel2;
27712
+ })(RestrictionLevel || {});
27664
27713
  var MEMBERSHIP_INVITATION_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.MembershipInvtnSignedToken";
27665
27714
  var JOIN_TEAM_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.JoinTeamSignedToken";
27666
27715
  var INVITEE_VERIFICATION_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.InviteeVerificationSignedToken";
27667
-
27668
- // ../synapse-types/src/util/IsType.ts
27669
27716
  function isTypeViaConcreteTypeFactory(...expectedConcreteTypes) {
27670
27717
  return (object) => !!(object && typeof object === "object" && "concreteType" in object && expectedConcreteTypes.includes(object["concreteType"]));
27671
27718
  }
27672
-
27673
- // ../synapse-types/src/SignedToken/JoinTeamSignedToken.ts
27674
27719
  var isJoinTeamSignedToken = isTypeViaConcreteTypeFactory(
27675
27720
  JOIN_TEAM_CONCRETE_TYPE_VALUE
27676
27721
  );
27677
-
27678
- // ../synapse-types/src/SignedToken/MembershipInvtnSignedToken.ts
27679
27722
  var isMembershipInvtnSignedToken = isTypeViaConcreteTypeFactory(
27680
27723
  MEMBERSHIP_INVITATION_CONCRETE_TYPE_VALUE
27681
27724
  );
27682
-
27683
- // ../synapse-types/src/Table/FacetColumnRequest.ts
27725
+ var SubscriptionObjectType = /* @__PURE__ */ ((SubscriptionObjectType22) => {
27726
+ SubscriptionObjectType22["FORUM"] = "FORUM";
27727
+ SubscriptionObjectType22["THREAD"] = "THREAD";
27728
+ SubscriptionObjectType22["DATA_ACCESS_SUBMISSION"] = "DATA_ACCESS_SUBMISSION";
27729
+ SubscriptionObjectType22["DATA_ACCESS_SUBMISSION_STATUS"] = "DATA_ACCESS_SUBMISSION_STATUS";
27730
+ return SubscriptionObjectType22;
27731
+ })(SubscriptionObjectType || {});
27732
+ var SortByType = /* @__PURE__ */ ((SortByType2) => {
27733
+ SortByType2["SUBSCRIPTION_ID"] = "SUBSCRIPTION_ID";
27734
+ SortByType2["SUBSCRIBER_ID"] = "SUBSCRIBER_ID";
27735
+ SortByType2["OBJECT_ID"] = "OBJECT_ID";
27736
+ SortByType2["OBJECT_TYPE"] = "OBJECT_TYPE";
27737
+ SortByType2["CREATED_ON"] = "CREATED_ON";
27738
+ return SortByType2;
27739
+ })(SortByType || {});
27740
+ var ColumnTypeEnum = /* @__PURE__ */ ((ColumnTypeEnum2) => {
27741
+ ColumnTypeEnum2["STRING"] = "STRING";
27742
+ ColumnTypeEnum2["DOUBLE"] = "DOUBLE";
27743
+ ColumnTypeEnum2["BOOLEAN"] = "BOOLEAN";
27744
+ ColumnTypeEnum2["INTEGER"] = "INTEGER";
27745
+ ColumnTypeEnum2["DATE"] = "DATE";
27746
+ ColumnTypeEnum2["FILEHANDLEID"] = "FILEHANDLEID";
27747
+ ColumnTypeEnum2["ENTITYID"] = "ENTITYID";
27748
+ ColumnTypeEnum2["LINK"] = "LINK";
27749
+ ColumnTypeEnum2["MEDIUMTEXT"] = "MEDIUMTEXT";
27750
+ ColumnTypeEnum2["LARGETEXT"] = "LARGETEXT";
27751
+ ColumnTypeEnum2["USERID"] = "USERID";
27752
+ ColumnTypeEnum2["STRING_LIST"] = "STRING_LIST";
27753
+ ColumnTypeEnum2["INTEGER_LIST"] = "INTEGER_LIST";
27754
+ ColumnTypeEnum2["BOOLEAN_LIST"] = "BOOLEAN_LIST";
27755
+ ColumnTypeEnum2["DATE_LIST"] = "DATE_LIST";
27756
+ ColumnTypeEnum2["USERID_LIST"] = "USERID_LIST";
27757
+ ColumnTypeEnum2["ENTITYID_LIST"] = "ENTITYID_LIST";
27758
+ ColumnTypeEnum2["EVALUATIONID"] = "EVALUATIONID";
27759
+ return ColumnTypeEnum2;
27760
+ })(ColumnTypeEnum || {});
27684
27761
  var FACET_COLUMN_VALUES_REQUEST_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.table.FacetColumnValuesRequest";
27685
27762
  var FACET_COLUMN_RANGE_REQUEST_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.table.FacetColumnRangeRequest";
27686
-
27687
- // ../synapse-types/src/Table/QueryFilter.ts
27763
+ var ColumnSingleValueFilterOperator = /* @__PURE__ */ ((ColumnSingleValueFilterOperator2) => {
27764
+ ColumnSingleValueFilterOperator2["LIKE"] = "LIKE";
27765
+ ColumnSingleValueFilterOperator2["EQUAL"] = "EQUAL";
27766
+ ColumnSingleValueFilterOperator2["IN"] = "IN";
27767
+ return ColumnSingleValueFilterOperator2;
27768
+ })(ColumnSingleValueFilterOperator || {});
27769
+ var ColumnMultiValueFunction = /* @__PURE__ */ ((ColumnMultiValueFunction2) => {
27770
+ ColumnMultiValueFunction2["HAS"] = "HAS";
27771
+ ColumnMultiValueFunction2["HAS_LIKE"] = "HAS_LIKE";
27772
+ return ColumnMultiValueFunction2;
27773
+ })(ColumnMultiValueFunction || {});
27688
27774
  var COLUMN_SINGLE_VALUE_QUERY_FILTER_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter";
27689
27775
  var COLUMN_MULTI_VALUE_FUNCTION_QUERY_FILTER_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter";
27690
27776
  var TEXT_MATCHES_QUERY_FILTER_CONCRETE_TYPE_VALUE = "org.sagebionetworks.repo.model.table.TextMatchesQueryFilter";
27777
+ var TYPE_FILTER = /* @__PURE__ */ ((TYPE_FILTER2) => {
27778
+ TYPE_FILTER2["USERS_ONLY"] = "USERS_ONLY";
27779
+ TYPE_FILTER2["TEAMS_ONLY"] = "TEAMS_ONLY";
27780
+ TYPE_FILTER2["ALL"] = "ALL";
27781
+ return TYPE_FILTER2;
27782
+ })(TYPE_FILTER || {});
27691
27783
 
27692
27784
  // src/utils/types/IsType.ts
27693
27785
  function isTypeViaConcreteTypeFactory2(...expectedConcreteTypes) {
@@ -27839,7 +27931,7 @@ function removePrefixIfSynId(value) {
27839
27931
  var getIgnoredQueryFilterSearchParamKey = (key, namespace) => {
27840
27932
  return `__${namespace ?? ""}_${key}`;
27841
27933
  };
27842
- var getAdditionalFilters = (entityId, searchParams, operator = "LIKE" /* LIKE */) => {
27934
+ var getAdditionalFilters = (entityId, searchParams, operator = ColumnSingleValueFilterOperator.LIKE) => {
27843
27935
  const localStorageQueryFiltersString = localStorage.getItem(
27844
27936
  QUERY_FILTERS_LOCAL_STORAGE_KEY(entityId)
27845
27937
  );
@@ -27858,7 +27950,7 @@ var getAdditionalFilters = (entityId, searchParams, operator = "LIKE" /* LIKE */
27858
27950
  additionalFilters = additionalFilters.concat(
27859
27951
  Object.keys(searchParams || {}).filter((key) => !isQueryWrapperKey(key)).map((key) => {
27860
27952
  switch (operator) {
27861
- case "EQUAL" /* EQUAL */: {
27953
+ case ColumnSingleValueFilterOperator.EQUAL: {
27862
27954
  const filter2 = {
27863
27955
  concreteType: "org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter",
27864
27956
  columnName: key,
@@ -27867,7 +27959,7 @@ var getAdditionalFilters = (entityId, searchParams, operator = "LIKE" /* LIKE */
27867
27959
  };
27868
27960
  return filter2;
27869
27961
  }
27870
- case "IN" /* IN */: {
27962
+ case ColumnSingleValueFilterOperator.IN: {
27871
27963
  const filter2 = {
27872
27964
  concreteType: "org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter",
27873
27965
  columnName: key,
@@ -27876,7 +27968,7 @@ var getAdditionalFilters = (entityId, searchParams, operator = "LIKE" /* LIKE */
27876
27968
  };
27877
27969
  return filter2;
27878
27970
  }
27879
- case "HAS" /* HAS */: {
27971
+ case ColumnMultiValueFunction.HAS: {
27880
27972
  const filter2 = {
27881
27973
  concreteType: "org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter",
27882
27974
  columnName: key,
@@ -27885,7 +27977,7 @@ var getAdditionalFilters = (entityId, searchParams, operator = "LIKE" /* LIKE */
27885
27977
  };
27886
27978
  return filter2;
27887
27979
  }
27888
- case "LIKE" /* LIKE */: {
27980
+ case ColumnSingleValueFilterOperator.LIKE: {
27889
27981
  const filter2 = {
27890
27982
  concreteType: "org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter",
27891
27983
  columnName: key,
@@ -27895,7 +27987,7 @@ var getAdditionalFilters = (entityId, searchParams, operator = "LIKE" /* LIKE */
27895
27987
  };
27896
27988
  return filter2;
27897
27989
  }
27898
- case "HAS_LIKE" /* HAS_LIKE */: {
27990
+ case ColumnMultiValueFunction.HAS_LIKE: {
27899
27991
  const filter2 = {
27900
27992
  concreteType: "org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter",
27901
27993
  columnName: key,
@@ -28326,7 +28418,7 @@ async function returnIfTwoFactorAuthError(fn) {
28326
28418
  try {
28327
28419
  response = await fn();
28328
28420
  } catch (e) {
28329
- if (e instanceof SynapseClientError && e.status === 401 && e.errorResponse && "errorCode" in e.errorResponse && e.errorResponse.errorCode === "TWO_FA_REQUIRED" /* TWO_FA_REQUIRED */ && e.errorResponse.concreteType === "org.sagebionetworks.repo.model.auth.TwoFactorAuthErrorResponse") {
28421
+ if (e instanceof SynapseClientError && e.status === 401 && e.errorResponse && "errorCode" in e.errorResponse && e.errorResponse.errorCode === ErrorResponseCode.TWO_FA_REQUIRED && e.errorResponse.concreteType === "org.sagebionetworks.repo.model.auth.TwoFactorAuthErrorResponse") {
28330
28422
  return e.errorResponse;
28331
28423
  } else {
28332
28424
  throw e;
@@ -28701,7 +28793,7 @@ var updateMyUserProfile = (profile, accessToken = void 0) => {
28701
28793
  0 /* REPO_ENDPOINT */
28702
28794
  );
28703
28795
  };
28704
- var getUserGroupHeaders = (prefix = "", typeFilter = "ALL" /* ALL */, offset = 0, limit = 20) => {
28796
+ var getUserGroupHeaders = (prefix = "", typeFilter = TYPE_FILTER.ALL, offset = 0, limit = 20) => {
28705
28797
  return doGet(
28706
28798
  USER_GROUP_HEADERS + `?prefix=${prefix}&typeFilter=${typeFilter}&offset=${offset}&limit=${limit}`,
28707
28799
  void 0,
@@ -28843,7 +28935,7 @@ var getEntityBundleV2 = (entityId, requestObject, version, accessToken) => {
28843
28935
  function getObjectTypeToString(key) {
28844
28936
  return ObjectType[key];
28845
28937
  }
28846
- var getEntityWiki = (accessToken, ownerId, wikiId = "", objectType = "ENTITY" /* ENTITY */) => {
28938
+ var getEntityWiki = (accessToken, ownerId, wikiId = "", objectType = ObjectType.ENTITY) => {
28847
28939
  const objectTypeString = getObjectTypeToString(objectType);
28848
28940
  const url = `/repo/v1/${objectTypeString?.toLocaleLowerCase()}/${ownerId}/wiki/${wikiId}`;
28849
28941
  return doGet(url, accessToken, 0 /* REPO_ENDPOINT */);
@@ -29042,7 +29134,7 @@ var getWikiPageKeyForAccessRequirement = (accessToken, ownerId) => {
29042
29134
  0 /* REPO_ENDPOINT */
29043
29135
  );
29044
29136
  };
29045
- var getWikiAttachmentsFromEntity = (accessToken, id, wikiId, objectType = "ENTITY" /* ENTITY */) => {
29137
+ var getWikiAttachmentsFromEntity = (accessToken, id, wikiId, objectType = ObjectType.ENTITY) => {
29046
29138
  const objectTypeString = getObjectTypeToString(objectType);
29047
29139
  const url = `/repo/v1/${objectTypeString.toLocaleLowerCase()}/${id}/wiki2/${wikiId}/attachmenthandles`;
29048
29140
  return doGet(url, accessToken, 0 /* REPO_ENDPOINT */);
@@ -29051,7 +29143,7 @@ var getWikiAttachmentsFromEvaluation = (accessToken, id, wikiId) => {
29051
29143
  const url = `/repo/v1/evaluation/${id}/wiki/${wikiId}/attachmenthandles`;
29052
29144
  return doGet(url, accessToken, 0 /* REPO_ENDPOINT */);
29053
29145
  };
29054
- var getPresignedUrlForWikiAttachment = (accessToken, id, wikiId, fileName, objectType = "ENTITY" /* ENTITY */) => {
29146
+ var getPresignedUrlForWikiAttachment = (accessToken, id, wikiId, fileName, objectType = ObjectType.ENTITY) => {
29055
29147
  const objectTypeString = getObjectTypeToString(objectType);
29056
29148
  const url = `/repo/v1/${objectTypeString.toLocaleLowerCase()}/${id}/wiki2/${wikiId}/attachment?fileName=${fileName}&redirect=false`;
29057
29149
  return doGet(url, accessToken, 0 /* REPO_ENDPOINT */);
@@ -29342,7 +29434,7 @@ var getFileResult = (fileEntity, accessToken, includeFileHandles, includePreSign
29342
29434
  const fileHandleAssociationList = [
29343
29435
  {
29344
29436
  associateObjectId: fileEntity.id,
29345
- associateObjectType: "FileEntity" /* FileEntity */,
29437
+ associateObjectType: FileHandleAssociateType.FileEntity,
29346
29438
  fileHandleId: fileEntity.dataFileHandleId
29347
29439
  }
29348
29440
  ];
@@ -30291,7 +30383,7 @@ var deleteReply = (accessToken, replyId) => {
30291
30383
  0 /* REPO_ENDPOINT */
30292
30384
  );
30293
30385
  };
30294
- var getReplies = (accessToken, threadId, limit = 30, offset = 0, sort = "CREATED_ON" /* CREATED_ON */, ascending = true, filter2 = "EXCLUDE_DELETED" /* EXCLUDE_DELETED */) => {
30386
+ var getReplies = (accessToken, threadId, limit = 30, offset = 0, sort = DiscussionReplyOrder.CREATED_ON, ascending = true, filter2 = DiscussionFilter.EXCLUDE_DELETED) => {
30295
30387
  const params = new URLSearchParams();
30296
30388
  params.set("offset", offset.toString());
30297
30389
  params.set("limit", limit.toString());
@@ -30406,7 +30498,7 @@ var forumSearch = (discussionSearchRequest, forumId, accessToken) => {
30406
30498
  0 /* REPO_ENDPOINT */
30407
30499
  );
30408
30500
  };
30409
- var getForumThread = (accessToken, forumId, offset = 0, limit = 20, sort = "PINNED_AND_LAST_ACTIVITY" /* PINNED_AND_LAST_ACTIVITY */, ascending = true, filter2 = "EXCLUDE_DELETED" /* EXCLUDE_DELETED */) => {
30501
+ var getForumThread = (accessToken, forumId, offset = 0, limit = 20, sort = DiscussionThreadOrder.PINNED_AND_LAST_ACTIVITY, ascending = true, filter2 = DiscussionFilter.EXCLUDE_DELETED) => {
30410
30502
  const params = new URLSearchParams();
30411
30503
  params.set("offset", offset.toString());
30412
30504
  params.set("limit", limit?.toString());
@@ -30609,6 +30701,17 @@ var getEntityDownloadActionsRequired = (entityId, accessToken) => {
30609
30701
  0 /* REPO_ENDPOINT */
30610
30702
  );
30611
30703
  };
30704
+ function getSubjects(accessToken, requirementId, nextPageToken) {
30705
+ const params = new URLSearchParams();
30706
+ if (nextPageToken) {
30707
+ params.set("nextPageToken", nextPageToken);
30708
+ }
30709
+ return doGet(
30710
+ `/repo/v1/accessRequirement/${requirementId}/subjects?${params.toString()}`,
30711
+ accessToken,
30712
+ 0 /* REPO_ENDPOINT */
30713
+ );
30714
+ }
30612
30715
 
30613
30716
  // src/synapse-client/index.ts
30614
30717
  var synapse_client_default = SynapseClient_exports;
@@ -33188,7 +33291,7 @@ function FileEntityPreview(props) {
33188
33291
  fileHandleAssociation: {
33189
33292
  fileHandleId: dataFileHandleId,
33190
33293
  associateObjectId: bundle.entity.id,
33191
- associateObjectType: "FileEntity" /* FileEntity */
33294
+ associateObjectType: FileHandleAssociateType.FileEntity
33192
33295
  },
33193
33296
  previewType
33194
33297
  }
@@ -33211,7 +33314,7 @@ function FileEntityPreview(props) {
33211
33314
  fileHandleAssociation: {
33212
33315
  fileHandleId: previewFileHandle.id,
33213
33316
  associateObjectId: bundle.entity.id,
33214
- associateObjectType: "FileEntity" /* FileEntity */
33317
+ associateObjectType: FileHandleAssociateType.FileEntity
33215
33318
  },
33216
33319
  previewType
33217
33320
  }
@@ -33899,7 +34002,7 @@ var UserCard = (props) => {
33899
34002
  const { data: fetchedPrincipalId, isLoading: isLoadingAliasLookup } = useGetPrincipalIdForAlias(
33900
34003
  {
33901
34004
  alias,
33902
- type: "USER_NAME" /* USER_NAME */
34005
+ type: AliasType.USER_NAME
33903
34006
  },
33904
34007
  { enabled: !!alias }
33905
34008
  );
@@ -34178,7 +34281,17 @@ function useSubmitDataAccessRequest(options) {
34178
34281
  const queryClient = (0, import_react_query11.useQueryClient)();
34179
34282
  const { accessToken, keyFactory } = useSynapseContext();
34180
34283
  return (0, import_react_query11.useMutation)(
34181
- ({ request }) => synapse_client_default.submitDataAccessRequest(request, accessToken),
34284
+ async ({ request, accessRequirementId }) => {
34285
+ if (request.subjectId == null || request.subjectType == null) {
34286
+ const { subjects } = await synapse_client_default.getSubjects(
34287
+ accessToken,
34288
+ accessRequirementId
34289
+ );
34290
+ request.subjectId = subjects[0].id;
34291
+ request.subjectType = subjects[0].type;
34292
+ }
34293
+ return synapse_client_default.submitDataAccessRequest(request, accessToken);
34294
+ },
34182
34295
  {
34183
34296
  ...options,
34184
34297
  onSuccess: async (data, variables, ctx) => {
@@ -34559,23 +34672,23 @@ function getEntityTypeFromHeader(header) {
34559
34672
  if (header.node_type) {
34560
34673
  return header.node_type;
34561
34674
  }
34562
- return header.type === void 0 ? "project" /* PROJECT */ : convertToEntityType(header.type);
34675
+ return header.type === void 0 ? EntityType.PROJECT : convertToEntityType(header.type);
34563
34676
  }
34564
34677
  function isContainerType(type) {
34565
34678
  switch (type) {
34566
- case "project" /* PROJECT */:
34567
- case "folder" /* FOLDER */:
34679
+ case EntityType.PROJECT:
34680
+ case EntityType.FOLDER:
34568
34681
  return true;
34569
- case "link" /* LINK */:
34570
- case "dockerrepo" /* DOCKER_REPO */:
34571
- case "file" /* FILE */:
34572
- case "table" /* TABLE */:
34573
- case "submissionview" /* SUBMISSION_VIEW */:
34574
- case "entityview" /* ENTITY_VIEW */:
34575
- case "dataset" /* DATASET */:
34576
- case "datasetcollection" /* DATASET_COLLECTION */:
34577
- case "materializedview" /* MATERIALIZED_VIEW */:
34578
- case "virtualtable" /* VIRTUAL_TABLE */:
34682
+ case EntityType.LINK:
34683
+ case EntityType.DOCKER_REPO:
34684
+ case EntityType.FILE:
34685
+ case EntityType.TABLE:
34686
+ case EntityType.SUBMISSION_VIEW:
34687
+ case EntityType.ENTITY_VIEW:
34688
+ case EntityType.DATASET:
34689
+ case EntityType.DATASET_COLLECTION:
34690
+ case EntityType.MATERIALIZED_VIEW:
34691
+ case EntityType.VIRTUAL_TABLE:
34579
34692
  return false;
34580
34693
  default:
34581
34694
  throw new Error(`Unknown entity type: ${type}`);
@@ -34583,19 +34696,19 @@ function isContainerType(type) {
34583
34696
  }
34584
34697
  function isTableType(type) {
34585
34698
  switch (type) {
34586
- case "project" /* PROJECT */:
34587
- case "folder" /* FOLDER */:
34588
- case "link" /* LINK */:
34589
- case "dockerrepo" /* DOCKER_REPO */:
34590
- case "file" /* FILE */:
34699
+ case EntityType.PROJECT:
34700
+ case EntityType.FOLDER:
34701
+ case EntityType.LINK:
34702
+ case EntityType.DOCKER_REPO:
34703
+ case EntityType.FILE:
34591
34704
  return false;
34592
- case "table" /* TABLE */:
34593
- case "submissionview" /* SUBMISSION_VIEW */:
34594
- case "entityview" /* ENTITY_VIEW */:
34595
- case "dataset" /* DATASET */:
34596
- case "datasetcollection" /* DATASET_COLLECTION */:
34597
- case "materializedview" /* MATERIALIZED_VIEW */:
34598
- case "virtualtable" /* VIRTUAL_TABLE */:
34705
+ case EntityType.TABLE:
34706
+ case EntityType.SUBMISSION_VIEW:
34707
+ case EntityType.ENTITY_VIEW:
34708
+ case EntityType.DATASET:
34709
+ case EntityType.DATASET_COLLECTION:
34710
+ case EntityType.MATERIALIZED_VIEW:
34711
+ case EntityType.VIRTUAL_TABLE:
34599
34712
  return true;
34600
34713
  default:
34601
34714
  throw new Error(`Unknown entity type: ${type}`);
@@ -34603,29 +34716,29 @@ function isTableType(type) {
34603
34716
  }
34604
34717
  function entityTypeToFriendlyName(entityType) {
34605
34718
  switch (entityType) {
34606
- case "project" /* PROJECT */:
34719
+ case EntityType.PROJECT:
34607
34720
  return "Project";
34608
- case "folder" /* FOLDER */:
34721
+ case EntityType.FOLDER:
34609
34722
  return "Folder";
34610
- case "file" /* FILE */:
34723
+ case EntityType.FILE:
34611
34724
  return "File";
34612
- case "table" /* TABLE */:
34725
+ case EntityType.TABLE:
34613
34726
  return "Table";
34614
- case "link" /* LINK */:
34727
+ case EntityType.LINK:
34615
34728
  return "Link";
34616
- case "entityview" /* ENTITY_VIEW */:
34729
+ case EntityType.ENTITY_VIEW:
34617
34730
  return "View";
34618
- case "dockerrepo" /* DOCKER_REPO */:
34731
+ case EntityType.DOCKER_REPO:
34619
34732
  return "Docker Repository";
34620
- case "submissionview" /* SUBMISSION_VIEW */:
34733
+ case EntityType.SUBMISSION_VIEW:
34621
34734
  return "Submission View";
34622
- case "dataset" /* DATASET */:
34735
+ case EntityType.DATASET:
34623
34736
  return "Dataset";
34624
- case "datasetcollection" /* DATASET_COLLECTION */:
34737
+ case EntityType.DATASET_COLLECTION:
34625
34738
  return "Dataset Collection";
34626
- case "materializedview" /* MATERIALIZED_VIEW */:
34739
+ case EntityType.MATERIALIZED_VIEW:
34627
34740
  return "Materialized View";
34628
- case "virtualtable" /* VIRTUAL_TABLE */:
34741
+ case EntityType.VIRTUAL_TABLE:
34629
34742
  return "Virtual Table";
34630
34743
  default:
34631
34744
  console.warn("Entity type could not be mapped to name:", entityType);
@@ -34634,71 +34747,71 @@ function entityTypeToFriendlyName(entityType) {
34634
34747
  }
34635
34748
  function convertToEntityType(typeString) {
34636
34749
  switch (typeString) {
34637
- case "project" /* PROJECT */:
34750
+ case EntityType.PROJECT:
34638
34751
  case "org.sagebionetworks.repo.model.Project":
34639
- return "project" /* PROJECT */;
34640
- case "folder" /* FOLDER */:
34752
+ return EntityType.PROJECT;
34753
+ case EntityType.FOLDER:
34641
34754
  case "org.sagebionetworks.repo.model.Folder":
34642
- return "folder" /* FOLDER */;
34643
- case "file" /* FILE */:
34755
+ return EntityType.FOLDER;
34756
+ case EntityType.FILE:
34644
34757
  case FILE_ENTITY_CONCRETE_TYPE_VALUE:
34645
- return "file" /* FILE */;
34646
- case "link" /* LINK */:
34758
+ return EntityType.FILE;
34759
+ case EntityType.LINK:
34647
34760
  case "org.sagebionetworks.repo.model.Link":
34648
- return "link" /* LINK */;
34649
- case "dockerrepo" /* DOCKER_REPO */:
34761
+ return EntityType.LINK;
34762
+ case EntityType.DOCKER_REPO:
34650
34763
  case "org.sagebionetworks.repo.model.docker.DockerRepository":
34651
- return "dockerrepo" /* DOCKER_REPO */;
34652
- case "table" /* TABLE */:
34764
+ return EntityType.DOCKER_REPO;
34765
+ case EntityType.TABLE:
34653
34766
  case TABLE_ENTITY_CONCRETE_TYPE_VALUE:
34654
- return "table" /* TABLE */;
34655
- case "submissionview" /* SUBMISSION_VIEW */:
34767
+ return EntityType.TABLE;
34768
+ case EntityType.SUBMISSION_VIEW:
34656
34769
  case "org.sagebionetworks.repo.model.table.SubmissionView":
34657
- return "submissionview" /* SUBMISSION_VIEW */;
34658
- case "entityview" /* ENTITY_VIEW */:
34770
+ return EntityType.SUBMISSION_VIEW;
34771
+ case EntityType.ENTITY_VIEW:
34659
34772
  case ENTITY_VIEW_CONCRETE_TYPE_VALUE:
34660
- return "entityview" /* ENTITY_VIEW */;
34661
- case "dataset" /* DATASET */:
34773
+ return EntityType.ENTITY_VIEW;
34774
+ case EntityType.DATASET:
34662
34775
  case DATASET_CONCRETE_TYPE_VALUE:
34663
- return "dataset" /* DATASET */;
34664
- case "datasetcollection" /* DATASET_COLLECTION */:
34776
+ return EntityType.DATASET;
34777
+ case EntityType.DATASET_COLLECTION:
34665
34778
  case DATASET_COLLECTION_CONCRETE_TYPE_VALUE:
34666
- return "datasetcollection" /* DATASET_COLLECTION */;
34667
- case "materializedview" /* MATERIALIZED_VIEW */:
34779
+ return EntityType.DATASET_COLLECTION;
34780
+ case EntityType.MATERIALIZED_VIEW:
34668
34781
  case MATERIALIZED_VIEW_CONCRETE_TYPE_VALUE:
34669
- return "materializedview" /* MATERIALIZED_VIEW */;
34670
- case "virtualtable" /* VIRTUAL_TABLE */:
34782
+ return EntityType.MATERIALIZED_VIEW;
34783
+ case EntityType.VIRTUAL_TABLE:
34671
34784
  case VIRTUAL_TABLE_CONCRETE_TYPE_VALUE:
34672
- return "virtualtable" /* VIRTUAL_TABLE */;
34785
+ return EntityType.VIRTUAL_TABLE;
34673
34786
  default:
34674
34787
  throw new Error(`Unknown entity type: ${typeString}`);
34675
34788
  }
34676
34789
  }
34677
34790
  function convertToConcreteEntityType(type) {
34678
34791
  switch (type) {
34679
- case "project" /* PROJECT */:
34792
+ case EntityType.PROJECT:
34680
34793
  return "org.sagebionetworks.repo.model.Project";
34681
- case "folder" /* FOLDER */:
34794
+ case EntityType.FOLDER:
34682
34795
  return "org.sagebionetworks.repo.model.Folder";
34683
- case "file" /* FILE */:
34796
+ case EntityType.FILE:
34684
34797
  return "org.sagebionetworks.repo.model.FileEntity";
34685
- case "link" /* LINK */:
34798
+ case EntityType.LINK:
34686
34799
  return "org.sagebionetworks.repo.model.Link";
34687
- case "dockerrepo" /* DOCKER_REPO */:
34800
+ case EntityType.DOCKER_REPO:
34688
34801
  return "org.sagebionetworks.repo.model.docker.DockerRepository";
34689
- case "table" /* TABLE */:
34802
+ case EntityType.TABLE:
34690
34803
  return "org.sagebionetworks.repo.model.table.TableEntity";
34691
- case "submissionview" /* SUBMISSION_VIEW */:
34804
+ case EntityType.SUBMISSION_VIEW:
34692
34805
  return "org.sagebionetworks.repo.model.table.SubmissionView";
34693
- case "entityview" /* ENTITY_VIEW */:
34806
+ case EntityType.ENTITY_VIEW:
34694
34807
  return "org.sagebionetworks.repo.model.table.EntityView";
34695
- case "dataset" /* DATASET */:
34808
+ case EntityType.DATASET:
34696
34809
  return "org.sagebionetworks.repo.model.table.Dataset";
34697
- case "datasetcollection" /* DATASET_COLLECTION */:
34810
+ case EntityType.DATASET_COLLECTION:
34698
34811
  return "org.sagebionetworks.repo.model.table.DatasetCollection";
34699
- case "materializedview" /* MATERIALIZED_VIEW */:
34812
+ case EntityType.MATERIALIZED_VIEW:
34700
34813
  return "org.sagebionetworks.repo.model.table.MaterializedView";
34701
- case "virtualtable" /* VIRTUAL_TABLE */:
34814
+ case EntityType.VIRTUAL_TABLE:
34702
34815
  return "org.sagebionetworks.repo.model.table.VirtualTable";
34703
34816
  default:
34704
34817
  throw new Error(`Unknown entity type: ${type}`);
@@ -34706,19 +34819,19 @@ function convertToConcreteEntityType(type) {
34706
34819
  }
34707
34820
  function isVersionableEntityType(type) {
34708
34821
  switch (type) {
34709
- case "project" /* PROJECT */:
34710
- case "folder" /* FOLDER */:
34711
- case "link" /* LINK */:
34712
- case "dockerrepo" /* DOCKER_REPO */:
34713
- case "submissionview" /* SUBMISSION_VIEW */:
34714
- case "materializedview" /* MATERIALIZED_VIEW */:
34715
- case "virtualtable" /* VIRTUAL_TABLE */:
34822
+ case EntityType.PROJECT:
34823
+ case EntityType.FOLDER:
34824
+ case EntityType.LINK:
34825
+ case EntityType.DOCKER_REPO:
34826
+ case EntityType.SUBMISSION_VIEW:
34827
+ case EntityType.MATERIALIZED_VIEW:
34828
+ case EntityType.VIRTUAL_TABLE:
34716
34829
  return false;
34717
- case "file" /* FILE */:
34718
- case "table" /* TABLE */:
34719
- case "entityview" /* ENTITY_VIEW */:
34720
- case "dataset" /* DATASET */:
34721
- case "datasetcollection" /* DATASET_COLLECTION */:
34830
+ case EntityType.FILE:
34831
+ case EntityType.TABLE:
34832
+ case EntityType.ENTITY_VIEW:
34833
+ case EntityType.DATASET:
34834
+ case EntityType.DATASET_COLLECTION:
34722
34835
  return true;
34723
34836
  default:
34724
34837
  throw new Error(`Unknown entity type: ${type}`);
@@ -35693,18 +35806,18 @@ var import_react86 = __toESM(require("react"));
35693
35806
  var import_react85 = __toESM(require("react"));
35694
35807
  var getIconTypeForEntity = (type) => {
35695
35808
  switch (type) {
35696
- case "project" /* PROJECT */:
35697
- case "folder" /* FOLDER */:
35698
- case "file" /* FILE */:
35699
- case "table" /* TABLE */:
35700
- case "link" /* LINK */:
35701
- case "entityview" /* ENTITY_VIEW */:
35702
- case "dockerrepo" /* DOCKER_REPO */:
35703
- case "submissionview" /* SUBMISSION_VIEW */:
35704
- case "dataset" /* DATASET */:
35705
- case "datasetcollection" /* DATASET_COLLECTION */:
35706
- case "materializedview" /* MATERIALIZED_VIEW */:
35707
- case "virtualtable" /* VIRTUAL_TABLE */:
35809
+ case EntityType.PROJECT:
35810
+ case EntityType.FOLDER:
35811
+ case EntityType.FILE:
35812
+ case EntityType.TABLE:
35813
+ case EntityType.LINK:
35814
+ case EntityType.ENTITY_VIEW:
35815
+ case EntityType.DOCKER_REPO:
35816
+ case EntityType.SUBMISSION_VIEW:
35817
+ case EntityType.DATASET:
35818
+ case EntityType.DATASET_COLLECTION:
35819
+ case EntityType.MATERIALIZED_VIEW:
35820
+ case EntityType.VIRTUAL_TABLE:
35708
35821
  return type2SvgIconName[type];
35709
35822
  default:
35710
35823
  return "";
@@ -35782,7 +35895,7 @@ var ProvenanceEntityIcon = (props) => {
35782
35895
  const { entityHeader } = props;
35783
35896
  if (entityHeader) {
35784
35897
  const entityType = convertToEntityType(entityHeader?.type);
35785
- if (entityType == "file" /* FILE */) {
35898
+ if (entityType == EntityType.FILE) {
35786
35899
  const lastPeriodIndex = entityHeader.name.lastIndexOf(".");
35787
35900
  if (lastPeriodIndex > -1) {
35788
35901
  const extension = entityHeader.name.slice(lastPeriodIndex);
@@ -35794,7 +35907,7 @@ var ProvenanceEntityIcon = (props) => {
35794
35907
  return /* @__PURE__ */ import_react86.default.createElement(EntityTypeIcon, { type: entityType, includeTooltip: false });
35795
35908
  }
35796
35909
  }
35797
- return /* @__PURE__ */ import_react86.default.createElement(EntityTypeIcon, { type: "file" /* FILE */, includeTooltip: false });
35910
+ return /* @__PURE__ */ import_react86.default.createElement(EntityTypeIcon, { type: EntityType.FILE, includeTooltip: false });
35798
35911
  };
35799
35912
 
35800
35913
  // src/components/ProvenanceGraph/EntityNodeLabel.tsx
@@ -36463,7 +36576,7 @@ var SynapseImage = class extends import_react96.default.Component {
36463
36576
  const fileHandleAssociationList = [
36464
36577
  {
36465
36578
  associateObjectId: synapseId,
36466
- associateObjectType: "FileEntity" /* FileEntity */,
36579
+ associateObjectType: FileHandleAssociateType.FileEntity,
36467
36580
  fileHandleId: data.dataFileHandleId
36468
36581
  }
36469
36582
  ];
@@ -36499,7 +36612,7 @@ var SynapseImage = class extends import_react96.default.Component {
36499
36612
  const fileHandleAssociationList = [
36500
36613
  {
36501
36614
  associateObjectId: this.props.wikiId,
36502
- associateObjectType: "WikiAttachment" /* WikiAttachment */,
36615
+ associateObjectType: FileHandleAssociateType.WikiAttachment,
36503
36616
  fileHandleId: id
36504
36617
  }
36505
36618
  ];
@@ -36734,7 +36847,7 @@ var testDownloadSpeed = (accessToken) => {
36734
36847
  const fileHandleAssociationList = [
36735
36848
  {
36736
36849
  associateObjectId: fileEntity.id,
36737
- associateObjectType: "FileEntity" /* FileEntity */,
36850
+ associateObjectType: FileHandleAssociateType.FileEntity,
36738
36851
  fileHandleId: fileEntity.dataFileHandleId
36739
36852
  }
36740
36853
  ];
@@ -36998,7 +37111,7 @@ var DownloadConfirmation = ({
36998
37111
  parentId: folderId,
36999
37112
  includeSumFileSizes: true,
37000
37113
  includeTotalChildCount: true,
37001
- includeTypes: ["file" /* FILE */]
37114
+ includeTypes: [EntityType.FILE]
37002
37115
  });
37003
37116
  (0, import_use_deep_compare_effect2.default)(() => {
37004
37117
  if (isSuccess && entityChildrenData && downloadListStatistics) {
@@ -37511,13 +37624,13 @@ var getDisplayValue = (value, columnType) => {
37511
37624
  return SynapseConstants_exports.FRIENDLY_VALUE_NOT_SET;
37512
37625
  }
37513
37626
  switch (columnType) {
37514
- case "ENTITYID" /* ENTITYID */:
37515
- case "ENTITYID_LIST" /* ENTITYID_LIST */:
37627
+ case ColumnTypeEnum.ENTITYID:
37628
+ case ColumnTypeEnum.ENTITYID_LIST:
37516
37629
  return getDisplayValueForEntityColumn(value);
37517
- case "USERID" /* USERID */:
37518
- case "USERID_LIST" /* USERID_LIST */:
37630
+ case ColumnTypeEnum.USERID:
37631
+ case ColumnTypeEnum.USERID_LIST:
37519
37632
  return getDisplayValueUserIdColumn(value);
37520
- case "EVALUATIONID" /* EVALUATIONID */:
37633
+ case ColumnTypeEnum.EVALUATIONID:
37521
37634
  return getDisplayValueEvaluationIdColumn(value);
37522
37635
  default:
37523
37636
  return value;
@@ -38971,24 +39084,13 @@ function ManagedACTAccessRequirementFormWikiWrapper(props) {
38971
39084
  // src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm.tsx
38972
39085
  function ResearchProjectForm(props) {
38973
39086
  const { onSave, managedACTAccessRequirement, onHide } = props;
38974
- const [projectLead, setProjectLead] = (0, import_react130.useState)("");
38975
- const [institution, setInstitution] = (0, import_react130.useState)("");
38976
- const [intendedDataUseStatement, setIntendedDataUseStatement] = (0, import_react130.useState)(managedACTAccessRequirement.isIDURequired ? "" : void 0);
39087
+ const [projectLead, setProjectLead] = (0, import_react130.useState)(void 0);
39088
+ const [institution, setInstitution] = (0, import_react130.useState)(void 0);
39089
+ const [intendedDataUseStatement, setIntendedDataUseStatement] = (0, import_react130.useState)(void 0);
38977
39090
  const [alert2, setAlert] = (0, import_react130.useState)();
38978
39091
  const { data: existingResearchProject, isLoading: isLoadingInitialData } = useGetResearchProject(String(managedACTAccessRequirement.id), {
38979
39092
  // Infinite staleTime ensures this won't be refetched unless explicitly invalidated by the mutation
38980
39093
  staleTime: Infinity,
38981
- onSuccess: (data) => {
38982
- if (data?.projectLead) {
38983
- setProjectLead(data?.projectLead);
38984
- }
38985
- if (data?.institution) {
38986
- setInstitution(data?.institution);
38987
- }
38988
- if (data?.intendedDataUseStatement) {
38989
- setIntendedDataUseStatement(data?.intendedDataUseStatement);
38990
- }
38991
- },
38992
39094
  onError: (e) => {
38993
39095
  console.log(
38994
39096
  "RequestDataAccessStep1: Error getting research project data: ",
@@ -38996,6 +39098,26 @@ function ResearchProjectForm(props) {
38996
39098
  );
38997
39099
  }
38998
39100
  });
39101
+ (0, import_react130.useEffect)(() => {
39102
+ if (projectLead == void 0 && existingResearchProject?.projectLead) {
39103
+ setProjectLead(existingResearchProject?.projectLead);
39104
+ }
39105
+ if (institution == void 0 && existingResearchProject?.institution) {
39106
+ setInstitution(existingResearchProject?.institution);
39107
+ }
39108
+ if (intendedDataUseStatement == void 0 && existingResearchProject?.intendedDataUseStatement) {
39109
+ setIntendedDataUseStatement(
39110
+ existingResearchProject?.intendedDataUseStatement
39111
+ );
39112
+ }
39113
+ }, [
39114
+ existingResearchProject?.institution,
39115
+ existingResearchProject?.intendedDataUseStatement,
39116
+ existingResearchProject?.projectLead,
39117
+ institution,
39118
+ intendedDataUseStatement,
39119
+ projectLead
39120
+ ]);
38999
39121
  const { mutate, isLoading: isLoadingUpdate } = useUpdateResearchProject({
39000
39122
  onSuccess: (data) => {
39001
39123
  if (onSave) {
@@ -39306,7 +39428,8 @@ var UserSearchBoxV2 = (props) => {
39306
39428
  input: {
39307
39429
  gridArea: "1 / 2 / 4 / 4 !important"
39308
39430
  }
39309
- })
39431
+ }),
39432
+ menu: (base) => ({ ...base, zIndex: 2 })
39310
39433
  },
39311
39434
  components: customSelectComponents,
39312
39435
  onChange: (option) => {
@@ -39331,7 +39454,7 @@ function DataAccessRequestAccessorsEditor(props) {
39331
39454
  if (!currentAccessorIds.includes(ugh.ownerId)) {
39332
39455
  const selectedAccessor = {
39333
39456
  userId: ugh.ownerId,
39334
- type: "GAIN_ACCESS" /* GAIN_ACCESS */
39457
+ type: AccessType.GAIN_ACCESS
39335
39458
  };
39336
39459
  previousValue.push(selectedAccessor);
39337
39460
  }
@@ -39365,7 +39488,7 @@ function DataAccessRequestAccessorsEditor(props) {
39365
39488
  UserSearchBoxV2_default,
39366
39489
  {
39367
39490
  inputId: "requesters",
39368
- typeFilter: "USERS_ONLY" /* USERS_ONLY */,
39491
+ typeFilter: TYPE_FILTER.USERS_ONLY,
39369
39492
  onChange: onSelectUserCallback,
39370
39493
  filterPredicate: (userGroupHeader) => !accessorChanges.map((ac) => ac.userId).includes(userGroupHeader.ownerId),
39371
39494
  value: null
@@ -39385,7 +39508,7 @@ function DataAccessRequestAccessorsEditor(props) {
39385
39508
  }
39386
39509
  ),
39387
39510
  // only display delete button if the user profile is not the current user and has not had access before
39388
- user?.ownerId !== ac.userId && ac.type === "GAIN_ACCESS" /* GAIN_ACCESS */ && /* @__PURE__ */ import_react135.default.createElement(
39511
+ user?.ownerId !== ac.userId && ac.type === AccessType.GAIN_ACCESS && /* @__PURE__ */ import_react135.default.createElement(
39389
39512
  Button_default,
39390
39513
  {
39391
39514
  "aria-label": `Remove user`,
@@ -39399,7 +39522,8 @@ function DataAccessRequestAccessorsEditor(props) {
39399
39522
  /* @__PURE__ */ import_react135.default.createElement(IconSvg_default, { icon: "clear" })
39400
39523
  ),
39401
39524
  // Renewal/Revoke data access, only display if isRenewal is true
39402
- isRenewal && user?.ownerId !== ac.userId && ac.type !== "GAIN_ACCESS" /* GAIN_ACCESS */ && /* @__PURE__ */ import_react135.default.createElement(import_react135.default.Fragment, null, /* @__PURE__ */ import_react135.default.createElement(
39525
+ // TODO: It's possible to that the accessors list is in an illegal state with no way to recover -- see PLFM-7893
39526
+ isRenewal && user?.ownerId !== ac.userId && ac.type !== AccessType.GAIN_ACCESS && /* @__PURE__ */ import_react135.default.createElement(import_react135.default.Fragment, null, /* @__PURE__ */ import_react135.default.createElement(
39403
39527
  RadioGroup,
39404
39528
  {
39405
39529
  id: `accessor-renewal-${ac.userId}`,
@@ -39407,11 +39531,11 @@ function DataAccessRequestAccessorsEditor(props) {
39407
39531
  options: [
39408
39532
  {
39409
39533
  label: "Renew",
39410
- value: "RENEW_ACCESS" /* RENEW_ACCESS */
39534
+ value: AccessType.RENEW_ACCESS
39411
39535
  },
39412
39536
  {
39413
39537
  label: "Revoke",
39414
- value: "REVOKE_ACCESS" /* REVOKE_ACCESS */
39538
+ value: AccessType.REVOKE_ACCESS
39415
39539
  }
39416
39540
  ],
39417
39541
  onChange: (value) => onAccessorAccessTypeChange(
@@ -39431,7 +39555,8 @@ var FileUpload = (props) => {
39431
39555
  id,
39432
39556
  buttonProps = { variant: "contained" },
39433
39557
  label = "Browse...",
39434
- uploadCallback
39558
+ onUploadStart,
39559
+ onComplete
39435
39560
  } = props;
39436
39561
  const { accessToken } = useSynapseContext();
39437
39562
  const hiddenFileInput = import_react136.default.useRef(null);
@@ -39442,6 +39567,9 @@ var FileUpload = (props) => {
39442
39567
  };
39443
39568
  const changeHandler = async (e) => {
39444
39569
  if (e.target.files && e.target.files.length > 0) {
39570
+ if (onUploadStart) {
39571
+ onUploadStart();
39572
+ }
39445
39573
  const file = e.target.files[0];
39446
39574
  try {
39447
39575
  const resp = await uploadFile(
@@ -39449,16 +39577,16 @@ var FileUpload = (props) => {
39449
39577
  file.name,
39450
39578
  file
39451
39579
  );
39452
- if (uploadCallback) {
39453
- uploadCallback({
39580
+ if (onComplete) {
39581
+ onComplete({
39454
39582
  success: true,
39455
39583
  resp
39456
39584
  });
39457
39585
  }
39458
39586
  } catch (e2) {
39459
39587
  console.log("FileUpload: fail to upload file", e2);
39460
- if (uploadCallback) {
39461
- uploadCallback({
39588
+ if (onComplete) {
39589
+ onComplete({
39462
39590
  success: false,
39463
39591
  error: e2
39464
39592
  });
@@ -39494,16 +39622,12 @@ function DirectDownloadButton(props) {
39494
39622
  includeFileHandles: false,
39495
39623
  includePreviewPreSignedURLs: false
39496
39624
  };
39497
- try {
39498
- const file = await getFiles(batchFileRequest, accessToken);
39499
- const preSignedURL = file.requestedFiles[0].preSignedURL;
39500
- if (!preSignedURL) {
39501
- console.log("Fail to get file download link");
39502
- } else {
39503
- window.open(preSignedURL);
39504
- }
39505
- } catch (e) {
39506
- console.log("Fail to get file download link", e);
39625
+ const file = await getFiles(batchFileRequest, accessToken);
39626
+ const preSignedURL = file.requestedFiles[0].preSignedURL;
39627
+ if (!preSignedURL) {
39628
+ console.log("Fail to get file download link");
39629
+ } else {
39630
+ window.open(preSignedURL);
39507
39631
  }
39508
39632
  };
39509
39633
  return /* @__PURE__ */ import_react137.default.createElement(
@@ -39528,8 +39652,10 @@ function UploadDocumentField(props) {
39528
39652
  id,
39529
39653
  documentName,
39530
39654
  isMultiFileUpload = false,
39531
- onClearAttachment
39655
+ onClearAttachment,
39656
+ isLoading = false
39532
39657
  } = props;
39658
+ const [isUploading, setIsUploading] = (0, import_react138.useState)(false);
39533
39659
  const { data: fileData } = useGetFileBatch(
39534
39660
  {
39535
39661
  includeFileHandles: true,
@@ -39554,9 +39680,14 @@ function UploadDocumentField(props) {
39554
39680
  FileUpload_default,
39555
39681
  {
39556
39682
  id: `${id}-upload`,
39557
- uploadCallback,
39683
+ onUploadStart: () => setIsUploading(true),
39684
+ onComplete: (res) => {
39685
+ setIsUploading(false);
39686
+ uploadCallback(res);
39687
+ },
39558
39688
  label: `Upload ${documentName}`,
39559
39689
  buttonProps: {
39690
+ disabled: isLoading,
39560
39691
  variant: "outlined",
39561
39692
  endIcon: /* @__PURE__ */ import_react138.default.createElement(IconSvg_default, { icon: "upload", wrap: false })
39562
39693
  }
@@ -39590,7 +39721,16 @@ function UploadDocumentField(props) {
39590
39721
  },
39591
39722
  /* @__PURE__ */ import_react138.default.createElement(IconSvg_default, { icon: "clear" })
39592
39723
  ));
39593
- })
39724
+ }),
39725
+ isUploading && /* @__PURE__ */ import_react138.default.createElement(
39726
+ Button_default,
39727
+ {
39728
+ disabled: true,
39729
+ variant: "text",
39730
+ endIcon: /* @__PURE__ */ import_react138.default.createElement(IconSvg_default, { icon: "download", wrap: false })
39731
+ },
39732
+ "Uploading..."
39733
+ )
39594
39734
  );
39595
39735
  }
39596
39736
 
@@ -39639,6 +39779,23 @@ function DocumentTemplate(props) {
39639
39779
  }
39640
39780
 
39641
39781
  // src/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm.tsx
39782
+ var import_utils148 = require("@rjsf/utils");
39783
+ function AccessorRequirementHelpText(props) {
39784
+ const { managedACTAccessRequirement } = props;
39785
+ let link = "";
39786
+ let msg = "";
39787
+ if (managedACTAccessRequirement.isCertifiedUserRequired && managedACTAccessRequirement.isValidatedProfileRequired) {
39788
+ link = "https://help.synapse.org/docs/User-Types.2007072795.html";
39789
+ msg = "All data requesters must be certified users and have a validated user profile.";
39790
+ } else if (managedACTAccessRequirement.isCertifiedUserRequired) {
39791
+ link = "https://help.synapse.org/docs/User-Types.2007072795.html#UserAccountTiers-CertifiedUsers";
39792
+ msg = "All data requesters must be a certified user.";
39793
+ } else if (managedACTAccessRequirement.isValidatedProfileRequired) {
39794
+ link = "https://help.synapse.org/docs/User-Types.2007072795.html#UserAccountTiers-ValidatedUsers";
39795
+ msg = "All data requesters must have a validated user profile.";
39796
+ }
39797
+ return link && msg ? /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, managedACTAccessRequirement.isDUCRequired ? /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, "This list should match those listed on your DUC.", /* @__PURE__ */ import_react140.default.createElement("br", null)) : "", msg, " ", /* @__PURE__ */ import_react140.default.createElement(Link_default, { href: link, target: "_blank", rel: "noreferrer" }, "Learn more")) : /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null);
39798
+ }
39642
39799
  function DataAccessRequestAccessorsFilesForm(props) {
39643
39800
  const {
39644
39801
  onSubmissionCreated,
@@ -39647,45 +39804,19 @@ function DataAccessRequestAccessorsFilesForm(props) {
39647
39804
  researchProjectId,
39648
39805
  onCancel
39649
39806
  } = props;
39650
- const { data: user } = useGetCurrentUserProfile();
39807
+ const { accessToken } = useSynapseContext();
39808
+ const isLoggedIn = Boolean(accessToken);
39809
+ const { data: user } = useGetCurrentUserProfile({ enabled: isLoggedIn });
39651
39810
  const [alert2, setAlert] = (0, import_react140.useState)();
39652
- const [dataAccessRequest, setDataAccessRequest] = (0, import_react140.useState)();
39653
- useGetDataAccessRequestForUpdate(String(managedACTAccessRequirement.id), {
39654
- // We append the current user onto the accessorChanges, so we wait for that data to populate
39655
- enabled: !!user,
39811
+ const [accessorChanges, setAccessorChanges] = (0, import_react140.useState)();
39812
+ const [summaryOfUse, setSummaryOfUse] = (0, import_react140.useState)();
39813
+ const [publication, setPublication] = (0, import_react140.useState)();
39814
+ const { data: dataAccessRequest, isLoading: isLoadingGetDataAccessRequest } = useGetDataAccessRequestForUpdate(String(managedACTAccessRequirement.id), {
39815
+ enabled: isLoggedIn,
39656
39816
  // Infinite staleTime ensures this won't get re-fetched unless explicitly invalidated by the mutation
39657
39817
  staleTime: Infinity,
39658
- select: (data) => {
39659
- const isRenewal2 = data.concreteType === "org.sagebionetworks.repo.model.dataaccess.Renewal";
39660
- const currentUserWithGainAccess = {
39661
- userId: user.ownerId,
39662
- type: isRenewal2 ? "RENEW_ACCESS" /* RENEW_ACCESS */ : "GAIN_ACCESS" /* GAIN_ACCESS */
39663
- };
39664
- if (!data.accessorChanges) {
39665
- data.accessorChanges = [currentUserWithGainAccess];
39666
- } else {
39667
- data.accessorChanges = [
39668
- currentUserWithGainAccess,
39669
- ...data.accessorChanges
39670
- ];
39671
- }
39672
- const seen = /* @__PURE__ */ new Set();
39673
- data.accessorChanges = data.accessorChanges.filter((accessorChange) => {
39674
- return seen.has(accessorChange.userId) ? false : seen.add(accessorChange.userId);
39675
- });
39676
- data.researchProjectId = researchProjectId;
39677
- return data;
39678
- },
39679
- onSuccess: (data) => {
39680
- setAlert(void 0);
39681
- setDataAccessRequest(data);
39682
- },
39683
- onError: (err) => {
39684
- setAlert({
39685
- key: "error",
39686
- message: err.reason
39687
- });
39688
- }
39818
+ // This call should never fail, so if we run into an error, throwing to an error boundary is acceptable
39819
+ useErrorBoundary: true
39689
39820
  });
39690
39821
  const isRenewal = dataAccessRequest?.concreteType === "org.sagebionetworks.repo.model.dataaccess.Renewal";
39691
39822
  function onError(e) {
@@ -39695,24 +39826,93 @@ function DataAccessRequestAccessorsFilesForm(props) {
39695
39826
  message: getErrorMessage(e.reason)
39696
39827
  });
39697
39828
  }
39698
- const { mutate: submit } = useSubmitDataAccessRequest({
39829
+ const { mutate: submit, isLoading: isLoadingSubmitDataAccessRequest } = useSubmitDataAccessRequest({
39699
39830
  onSuccess: () => {
39700
39831
  onSubmissionCreated();
39701
39832
  },
39702
39833
  onError
39703
39834
  });
39704
- const { mutateAsync: updateRequestAsync } = useUpdateDataAccessRequest({
39835
+ const {
39836
+ mutateAsync: updateRequestAsync,
39837
+ isLoading: isLoadingUpdateDataAccessRequest
39838
+ } = useUpdateDataAccessRequest({
39705
39839
  onError
39706
39840
  });
39841
+ const isLoading = isLoadingGetDataAccessRequest || isLoadingUpdateDataAccessRequest || isLoadingSubmitDataAccessRequest;
39842
+ (0, import_react140.useEffect)(() => {
39843
+ if (dataAccessRequest && user) {
39844
+ let shouldUpdate = false;
39845
+ if (!dataAccessRequest.researchProjectId) {
39846
+ dataAccessRequest.researchProjectId = researchProjectId;
39847
+ shouldUpdate = true;
39848
+ }
39849
+ const currentUserWithGainAccess = {
39850
+ userId: user.ownerId,
39851
+ type: isRenewal ? AccessType.RENEW_ACCESS : AccessType.GAIN_ACCESS
39852
+ };
39853
+ if (!dataAccessRequest.accessorChanges || !dataAccessRequest.accessorChanges.find(
39854
+ (item) => (0, import_utils148.deepEquals)(item, currentUserWithGainAccess)
39855
+ )) {
39856
+ dataAccessRequest.accessorChanges = [
39857
+ currentUserWithGainAccess,
39858
+ ...dataAccessRequest.accessorChanges || []
39859
+ ];
39860
+ shouldUpdate = true;
39861
+ }
39862
+ const seen = /* @__PURE__ */ new Set();
39863
+ const uniqueAccessorChanges = dataAccessRequest.accessorChanges.filter(
39864
+ (accessorChange) => {
39865
+ return seen.has(accessorChange.userId) ? false : seen.add(accessorChange.userId);
39866
+ }
39867
+ );
39868
+ if (uniqueAccessorChanges.length !== dataAccessRequest.accessorChanges.length) {
39869
+ dataAccessRequest.accessorChanges = uniqueAccessorChanges;
39870
+ shouldUpdate = true;
39871
+ }
39872
+ if (shouldUpdate) {
39873
+ updateRequestAsync(dataAccessRequest);
39874
+ }
39875
+ }
39876
+ }, [
39877
+ dataAccessRequest,
39878
+ isRenewal,
39879
+ researchProjectId,
39880
+ updateRequestAsync,
39881
+ user
39882
+ ]);
39883
+ (0, import_react140.useEffect)(() => {
39884
+ if (dataAccessRequest) {
39885
+ if (dataAccessRequest.accessorChanges && accessorChanges == void 0) {
39886
+ setAccessorChanges(dataAccessRequest.accessorChanges);
39887
+ }
39888
+ if (isRenewal && dataAccessRequest.publication && publication == void 0) {
39889
+ setPublication(dataAccessRequest.publication);
39890
+ }
39891
+ if (isRenewal && dataAccessRequest.summaryOfUse && summaryOfUse == void 0) {
39892
+ setSummaryOfUse(dataAccessRequest.summaryOfUse);
39893
+ }
39894
+ }
39895
+ }, [dataAccessRequest]);
39896
+ function getDataAccessRequestWithLocalState() {
39897
+ return {
39898
+ ...dataAccessRequest,
39899
+ // append local state to the request
39900
+ accessorChanges,
39901
+ publication,
39902
+ summaryOfUse
39903
+ };
39904
+ }
39707
39905
  async function handleSubmit() {
39708
39906
  if (dataAccessRequest) {
39709
- const requestObject = await updateRequestAsync(dataAccessRequest);
39907
+ const requestObject = await updateRequestAsync(
39908
+ getDataAccessRequestWithLocalState()
39909
+ );
39710
39910
  submit({
39711
39911
  request: {
39712
39912
  requestId: requestObject.id,
39713
39913
  requestEtag: requestObject.etag,
39714
39914
  subjectId: entityId,
39715
- subjectType: "ENTITY" /* ENTITY */
39915
+ subjectType: RestrictableObjectType.ENTITY
39716
39916
  },
39717
39917
  accessRequirementId: String(managedACTAccessRequirement.id)
39718
39918
  });
@@ -39722,41 +39922,30 @@ function DataAccessRequestAccessorsFilesForm(props) {
39722
39922
  return /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement("strong", null, "Sorry, there is an error in submitting your request."), /* @__PURE__ */ import_react140.default.createElement("br", null), reason);
39723
39923
  };
39724
39924
  const onAccessorChange = (updater) => {
39725
- setDataAccessRequest((req) => ({
39726
- ...req,
39727
- // Copy the array so the caller doesn't have to worry about immutability
39728
- accessorChanges: [...updater(req.accessorChanges || [])]
39729
- }));
39925
+ setAccessorChanges([...updater(accessorChanges || [])]);
39730
39926
  };
39731
39927
  const onClearAttachment = (fid) => {
39732
- setDataAccessRequest((req) => {
39733
- if (req) {
39734
- return {
39735
- ...req,
39736
- attachments: req.attachments?.filter((item) => item !== fid)
39737
- };
39738
- }
39739
- return req;
39928
+ updateRequestAsync({
39929
+ ...dataAccessRequest,
39930
+ attachments: dataAccessRequest.attachments?.filter((item) => item !== fid)
39740
39931
  });
39741
39932
  };
39742
39933
  const uploadCallback = (data, context) => {
39743
39934
  if (data.resp && data.success) {
39744
39935
  const uploadResponse = data.resp;
39745
39936
  if (context === "attachments") {
39746
- setDataAccessRequest((req) => {
39747
- return {
39748
- ...req,
39749
- attachments: [
39750
- ...req.attachments || [],
39751
- uploadResponse.fileHandleId
39752
- ]
39753
- };
39937
+ updateRequestAsync({
39938
+ ...dataAccessRequest,
39939
+ attachments: [
39940
+ ...dataAccessRequest.attachments || [],
39941
+ uploadResponse.fileHandleId
39942
+ ]
39754
39943
  });
39755
39944
  } else {
39756
- setDataAccessRequest((req) => ({
39757
- ...req,
39945
+ updateRequestAsync({
39946
+ ...dataAccessRequest,
39758
39947
  [context]: uploadResponse.fileHandleId
39759
- }));
39948
+ });
39760
39949
  }
39761
39950
  } else if (!data.success && data.error) {
39762
39951
  console.log(
@@ -39769,46 +39958,24 @@ function DataAccessRequestAccessorsFilesForm(props) {
39769
39958
  });
39770
39959
  }
39771
39960
  };
39772
- const handleTextAreaInputChange = (e, key) => {
39773
- const value = e.target.value;
39774
- setDataAccessRequest((req) => ({
39775
- ...req,
39776
- [key]: value
39777
- }));
39778
- };
39779
- const AccessorRequirementHelpText = () => {
39780
- let link = "";
39781
- let msg = "";
39782
- if (managedACTAccessRequirement.isCertifiedUserRequired && managedACTAccessRequirement.isValidatedProfileRequired) {
39783
- link = "https://help.synapse.org/docs/User-Types.2007072795.html";
39784
- msg = "All data requesters must be certified users and have a validated user profile.";
39785
- } else if (managedACTAccessRequirement.isCertifiedUserRequired) {
39786
- link = "https://help.synapse.org/docs/User-Types.2007072795.html#UserAccountTiers-CertifiedUsers";
39787
- msg = "All data requesters must be a certified user.";
39788
- } else if (managedACTAccessRequirement.isValidatedProfileRequired) {
39789
- link = "https://help.synapse.org/docs/User-Types.2007072795.html#UserAccountTiers-ValidatedUsers";
39790
- msg = "All data requesters must have a validated user profile.";
39791
- }
39792
- return link && msg ? /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, managedACTAccessRequirement.isDUCRequired ? /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, "This list should match those listed on your DUC.", /* @__PURE__ */ import_react140.default.createElement("br", null)) : "", msg, " ", /* @__PURE__ */ import_react140.default.createElement(Link_default, { href: link, target: "_blank", rel: "noreferrer" }, "Learn more")) : /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null);
39793
- };
39794
39961
  const ducFileHandleAssociation = dataAccessRequest?.ducFileHandleId ? [
39795
39962
  {
39796
39963
  fileHandleId: dataAccessRequest?.ducFileHandleId,
39797
- associateObjectType: "AccessRequirementAttachment" /* AccessRequirementAttachment */,
39798
- associateObjectId: String(managedACTAccessRequirement.id)
39964
+ associateObjectType: FileHandleAssociateType.DataAccessRequestAttachment,
39965
+ associateObjectId: String(dataAccessRequest.id)
39799
39966
  }
39800
39967
  ] : [];
39801
39968
  const irbFileHandleAssociation = dataAccessRequest?.irbFileHandleId ? [
39802
39969
  {
39803
39970
  fileHandleId: dataAccessRequest.irbFileHandleId,
39804
- associateObjectType: "AccessRequirementAttachment" /* AccessRequirementAttachment */,
39805
- associateObjectId: String(managedACTAccessRequirement.id)
39971
+ associateObjectType: FileHandleAssociateType.DataAccessRequestAttachment,
39972
+ associateObjectId: String(dataAccessRequest.id)
39806
39973
  }
39807
39974
  ] : [];
39808
39975
  const attachmentFileHandleAssociations = (dataAccessRequest?.attachments || []).map((attachmentFileHandleId) => ({
39809
39976
  fileHandleId: attachmentFileHandleId,
39810
- associateObjectType: "AccessRequirementAttachment" /* AccessRequirementAttachment */,
39811
- associateObjectId: String(managedACTAccessRequirement.id)
39977
+ associateObjectType: FileHandleAssociateType.DataAccessRequestAttachment,
39978
+ associateObjectId: String(dataAccessRequest.id)
39812
39979
  })) ?? [];
39813
39980
  return /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement(DialogTitle_default, null, /* @__PURE__ */ import_react140.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: "5px" }, "Request Access", /* @__PURE__ */ import_react140.default.createElement(Box_default, { sx: { flexGrow: 1 } }), /* @__PURE__ */ import_react140.default.createElement(IconButton_default, { onClick: props.onHide }, /* @__PURE__ */ import_react140.default.createElement(IconSvg_default, { icon: "close", wrap: false, sx: { color: "grey.700" } })))), /* @__PURE__ */ import_react140.default.createElement(DialogContent_default, null, /* @__PURE__ */ import_react140.default.createElement(
39814
39981
  ManagedACTAccessRequirementFormWikiWrapper,
@@ -39826,13 +39993,18 @@ function DataAccessRequestAccessorsFilesForm(props) {
39826
39993
  onSubmit: (e) => e.preventDefault()
39827
39994
  },
39828
39995
  /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { mb: 2 } }, "Please provide the information below to submit the request for access."),
39829
- dataAccessRequest && /* @__PURE__ */ import_react140.default.createElement(
39996
+ dataAccessRequest && user && /* @__PURE__ */ import_react140.default.createElement(
39830
39997
  DataAccessRequestAccessorsEditor,
39831
39998
  {
39832
- accessorChanges: dataAccessRequest.accessorChanges || [],
39999
+ accessorChanges: accessorChanges || [],
39833
40000
  onChange: onAccessorChange,
39834
40001
  isRenewal,
39835
- helpText: /* @__PURE__ */ import_react140.default.createElement(AccessorRequirementHelpText, null)
40002
+ helpText: /* @__PURE__ */ import_react140.default.createElement(
40003
+ AccessorRequirementHelpText,
40004
+ {
40005
+ managedACTAccessRequirement
40006
+ }
40007
+ )
39836
40008
  }
39837
40009
  ),
39838
40010
  (managedACTAccessRequirement?.isDUCRequired || managedACTAccessRequirement?.isIRBApprovalRequired || managedACTAccessRequirement?.areOtherAttachmentsRequired || isRenewal) && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } }),
@@ -39843,61 +40015,66 @@ function DataAccessRequestAccessorsFilesForm(props) {
39843
40015
  description: "As a first step, you will need to download the most current version of the Data Use Certificate.",
39844
40016
  fileHandleAssociation: {
39845
40017
  fileHandleId: managedACTAccessRequirement.ducTemplateFileHandleId,
39846
- associateObjectType: "AccessRequirementAttachment" /* AccessRequirementAttachment */,
40018
+ associateObjectType: FileHandleAssociateType.AccessRequirementAttachment,
39847
40019
  associateObjectId: String(managedACTAccessRequirement.id)
39848
40020
  },
39849
40021
  downloadButtonText: "Download DUC Template"
39850
40022
  }
39851
- ), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "headline3", sx: { mt: 4, mb: 2 } }, "Fill out and upload a Data Use Certificate"), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { my: 2 } }, "You must download and fill out a Data Use Certificate (DUC). Be sure to upload the completed DUC below once you've completed it."), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", component: "ol" }, /* @__PURE__ */ import_react140.default.createElement("li", null, "Download the DUC template file."), /* @__PURE__ */ import_react140.default.createElement("li", null, "Fill out the DUC template, following the instructions in the file."), /* @__PURE__ */ import_react140.default.createElement("li", null, "Upload the completed certificate using the button below:")), /* @__PURE__ */ import_react140.default.createElement(
40023
+ ), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "headline3", sx: { mt: 4, mb: 2 } }, "Fill out and upload a Data Use Certificate"), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { my: 2 } }, "You must download and fill out a Data Use Certificate (DUC). Be sure to upload the completed DUC below once you've completed it."), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", component: "ol" }, /* @__PURE__ */ import_react140.default.createElement("li", null, "Download the DUC template file."), /* @__PURE__ */ import_react140.default.createElement("li", null, "Fill out the DUC template, following the instructions in the file."), /* @__PURE__ */ import_react140.default.createElement("li", null, "Upload the completed certificate using the button below:")), /* @__PURE__ */ import_react140.default.createElement(SynapseErrorBoundary, null, /* @__PURE__ */ import_react140.default.createElement(
39852
40024
  UploadDocumentField,
39853
40025
  {
39854
40026
  id: "duc",
40027
+ isLoading,
39855
40028
  uploadCallback: (resp) => uploadCallback(resp, "ducFileHandleId"),
39856
40029
  documentName: "Data Use Certificate",
39857
40030
  fileHandleAssociations: ducFileHandleAssociation
39858
40031
  }
39859
- ), (managedACTAccessRequirement?.isIRBApprovalRequired || managedACTAccessRequirement?.areOtherAttachmentsRequired || isRenewal) && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } })),
39860
- managedACTAccessRequirement?.isIRBApprovalRequired && /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "headline3", sx: { my: 2 } }, "IRB Approval"), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { my: 2 } }, "Upload a signed IRB letter on institutional letterhead. The letter must include the names of all the datasets requested, as well as the names of the data requesters above. Use the button below to upload the document."), /* @__PURE__ */ import_react140.default.createElement(
40032
+ )), (managedACTAccessRequirement?.isIRBApprovalRequired || managedACTAccessRequirement?.areOtherAttachmentsRequired || isRenewal) && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } })),
40033
+ managedACTAccessRequirement?.isIRBApprovalRequired && /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "headline3", sx: { my: 2 } }, "IRB Approval"), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { my: 2 } }, "Upload a signed IRB letter on institutional letterhead. The letter must include the names of all the datasets requested, as well as the names of the data requesters above. Use the button below to upload the document."), /* @__PURE__ */ import_react140.default.createElement(SynapseErrorBoundary, null, /* @__PURE__ */ import_react140.default.createElement(
39861
40034
  UploadDocumentField,
39862
40035
  {
39863
40036
  id: "irb",
40037
+ isLoading,
39864
40038
  documentName: "IRB Approval Letter",
39865
40039
  uploadCallback: (resp) => uploadCallback(resp, "irbFileHandleId"),
39866
40040
  fileHandleAssociations: irbFileHandleAssociation
39867
40041
  }
39868
- ), (managedACTAccessRequirement?.areOtherAttachmentsRequired || isRenewal) && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } })),
40042
+ )), (managedACTAccessRequirement?.areOtherAttachmentsRequired || isRenewal) && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } })),
39869
40043
  /* Attachments */
39870
- managedACTAccessRequirement?.areOtherAttachmentsRequired && /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "headline3", sx: { my: 2 } }, "Upload other required documents"), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { my: 2 } }, "You must upload other required documents. Please review the instructions to gain data access to determine which documents must also be uploaded."), /* @__PURE__ */ import_react140.default.createElement(
40044
+ managedACTAccessRequirement?.areOtherAttachmentsRequired && /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "headline3", sx: { my: 2 } }, "Upload other required documents"), /* @__PURE__ */ import_react140.default.createElement(Typography_default, { variant: "body1", sx: { my: 2 } }, "You must upload other required documents. Please review the instructions to gain data access to determine which documents must also be uploaded."), /* @__PURE__ */ import_react140.default.createElement(SynapseErrorBoundary, null, /* @__PURE__ */ import_react140.default.createElement(
39871
40045
  UploadDocumentField,
39872
40046
  {
39873
40047
  id: "file-attachment",
40048
+ isLoading,
39874
40049
  documentName: "Attachment",
39875
40050
  uploadCallback: (res) => uploadCallback(res, "attachments"),
39876
40051
  isMultiFileUpload: true,
39877
40052
  fileHandleAssociations: attachmentFileHandleAssociations,
39878
40053
  onClearAttachment
39879
40054
  }
39880
- ), isRenewal && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } })),
40055
+ )), isRenewal && /* @__PURE__ */ import_react140.default.createElement(Divider_default, { sx: { my: 4 } })),
39881
40056
  // Publications & Summary of Use
39882
40057
  isRenewal && /* @__PURE__ */ import_react140.default.createElement(import_react140.default.Fragment, null, /* @__PURE__ */ import_react140.default.createElement(
39883
40058
  TextField3,
39884
40059
  {
39885
40060
  id: "publications",
39886
40061
  label: "Publication(s)",
40062
+ disabled: isLoadingSubmitDataAccessRequest,
39887
40063
  multiline: true,
39888
40064
  rows: 3,
39889
- value: dataAccessRequest?.publication,
39890
- onChange: (e) => handleTextAreaInputChange(e, "publication")
40065
+ value: publication,
40066
+ onChange: (e) => setPublication(e.target.value)
39891
40067
  }
39892
40068
  ), /* @__PURE__ */ import_react140.default.createElement(
39893
40069
  TextField3,
39894
40070
  {
39895
40071
  id: "summaryOfUse",
39896
40072
  label: "Summary of use",
39897
- value: dataAccessRequest?.summaryOfUse,
40073
+ value: summaryOfUse,
40074
+ disabled: isLoadingSubmitDataAccessRequest,
39898
40075
  multiline: true,
39899
40076
  rows: 3,
39900
- onChange: (e) => handleTextAreaInputChange(e, "summaryOfUse")
40077
+ onChange: (e) => setSummaryOfUse(e.target.value)
39901
40078
  }
39902
40079
  ))
39903
40080
  )
@@ -39905,9 +40082,10 @@ function DataAccessRequestAccessorsFilesForm(props) {
39905
40082
  Button_default,
39906
40083
  {
39907
40084
  variant: "outlined",
40085
+ disabled: isLoadingSubmitDataAccessRequest,
39908
40086
  onClick: () => {
39909
40087
  if (dataAccessRequest) {
39910
- onCancel(dataAccessRequest);
40088
+ onCancel(getDataAccessRequestWithLocalState());
39911
40089
  }
39912
40090
  }
39913
40091
  },
@@ -39916,6 +40094,7 @@ function DataAccessRequestAccessorsFilesForm(props) {
39916
40094
  Button_default,
39917
40095
  {
39918
40096
  variant: "contained",
40097
+ disabled: isLoadingSubmitDataAccessRequest,
39919
40098
  onClick: () => {
39920
40099
  handleSubmit();
39921
40100
  }
@@ -40568,7 +40747,7 @@ function ManagedACTAccessRequirementItem(props) {
40568
40747
  });
40569
40748
  const [hideMarkdown, setHideMarkdown] = (0, import_react154.useState)(true);
40570
40749
  const [alert2, setAlert] = (0, import_react154.useState)();
40571
- const isApproved = accessRequirementStatus?.currentSubmissionStatus?.state === "APPROVED" /* APPROVED */;
40750
+ const isApproved = accessRequirementStatus?.currentSubmissionStatus?.state === SubmissionState.APPROVED;
40572
40751
  let markdown = /* @__PURE__ */ import_react153.default.createElement(import_react153.default.Fragment, null);
40573
40752
  if (wikiPage) {
40574
40753
  markdown = /* @__PURE__ */ import_react153.default.createElement(
@@ -40591,8 +40770,8 @@ function ManagedACTAccessRequirementItem(props) {
40591
40770
  },
40592
40771
  alert2.message
40593
40772
  ),
40594
- accessRequirementStatus?.currentSubmissionStatus?.state === "SUBMITTED" /* SUBMITTED */ && /* @__PURE__ */ import_react153.default.createElement(Alert_default, { className: "access-requirement-list-alert", severity: "info" }, /* @__PURE__ */ import_react153.default.createElement("strong", null, "You have submitted a data access request.")),
40595
- accessRequirementStatus?.currentSubmissionStatus?.state === "APPROVED" /* APPROVED */ && /* @__PURE__ */ import_react153.default.createElement(
40773
+ accessRequirementStatus?.currentSubmissionStatus?.state === SubmissionState.SUBMITTED && /* @__PURE__ */ import_react153.default.createElement(Alert_default, { className: "access-requirement-list-alert", severity: "info" }, /* @__PURE__ */ import_react153.default.createElement("strong", null, "You have submitted a data access request.")),
40774
+ accessRequirementStatus?.currentSubmissionStatus?.state === SubmissionState.APPROVED && /* @__PURE__ */ import_react153.default.createElement(
40596
40775
  Alert_default,
40597
40776
  {
40598
40777
  className: "access-requirement-list-alert",
@@ -40600,8 +40779,8 @@ function ManagedACTAccessRequirementItem(props) {
40600
40779
  },
40601
40780
  /* @__PURE__ */ import_react153.default.createElement("strong", null, "Your data access request has been approved.")
40602
40781
  ),
40603
- accessRequirementStatus?.currentSubmissionStatus?.state === "REJECTED" /* REJECTED */ && /* @__PURE__ */ import_react153.default.createElement(Alert_default, { className: "access-requirement-list-alert", severity: "error" }, /* @__PURE__ */ import_react153.default.createElement(import_react153.default.Fragment, null, /* @__PURE__ */ import_react153.default.createElement("strong", null, "Your data access request has been rejected."), /* @__PURE__ */ import_react153.default.createElement("br", null), accessRequirementStatus?.currentSubmissionStatus.rejectedReason || "")),
40604
- accessRequirementStatus?.currentSubmissionStatus?.state === "CANCELLED" /* CANCELLED */ && /* @__PURE__ */ import_react153.default.createElement(
40782
+ accessRequirementStatus?.currentSubmissionStatus?.state === SubmissionState.REJECTED && /* @__PURE__ */ import_react153.default.createElement(Alert_default, { className: "access-requirement-list-alert", severity: "error" }, /* @__PURE__ */ import_react153.default.createElement(import_react153.default.Fragment, null, /* @__PURE__ */ import_react153.default.createElement("strong", null, "Your data access request has been rejected."), /* @__PURE__ */ import_react153.default.createElement("br", null), accessRequirementStatus?.currentSubmissionStatus.rejectedReason || "")),
40783
+ accessRequirementStatus?.currentSubmissionStatus?.state === SubmissionState.CANCELLED && /* @__PURE__ */ import_react153.default.createElement(
40605
40784
  Alert_default,
40606
40785
  {
40607
40786
  className: "access-requirement-list-alert",
@@ -40625,16 +40804,16 @@ function ManagedACTAccessRequirementItem(props) {
40625
40804
  children: "I do not accept"
40626
40805
  });
40627
40806
  } else if ([
40628
- "APPROVED" /* APPROVED */,
40629
- "REJECTED" /* REJECTED */,
40630
- "CANCELLED" /* CANCELLED */
40807
+ SubmissionState.APPROVED,
40808
+ SubmissionState.REJECTED,
40809
+ SubmissionState.CANCELLED
40631
40810
  ].includes(accessRequirementStatus.currentSubmissionStatus.state)) {
40632
40811
  actions.push({
40633
40812
  variant: "outlined",
40634
40813
  onClick: onRequestAccess,
40635
40814
  children: "Update Request"
40636
40815
  });
40637
- } else if (accessRequirementStatus.currentSubmissionStatus.state === "SUBMITTED" /* SUBMITTED */) {
40816
+ } else if (accessRequirementStatus.currentSubmissionStatus.state === SubmissionState.SUBMITTED) {
40638
40817
  actions.push({
40639
40818
  variant: "outlined",
40640
40819
  onClick: () => {
@@ -40650,14 +40829,14 @@ function ManagedACTAccessRequirementItem(props) {
40650
40829
  let requirementItemState = "LOADING" /* LOADING */;
40651
40830
  if (!isLoading) {
40652
40831
  switch (accessRequirementStatus?.currentSubmissionStatus?.state) {
40653
- case "APPROVED" /* APPROVED */:
40832
+ case SubmissionState.APPROVED:
40654
40833
  requirementItemState = "COMPLETE" /* COMPLETE */;
40655
40834
  break;
40656
- case "SUBMITTED" /* SUBMITTED */:
40835
+ case SubmissionState.SUBMITTED:
40657
40836
  requirementItemState = "PENDING" /* PENDING */;
40658
40837
  break;
40659
- case "REJECTED" /* REJECTED */:
40660
- case "CANCELLED" /* CANCELLED */:
40838
+ case SubmissionState.REJECTED:
40839
+ case SubmissionState.CANCELLED:
40661
40840
  default:
40662
40841
  requirementItemState = "LOCKED" /* LOCKED */;
40663
40842
  }
@@ -40719,7 +40898,7 @@ function SelfSignAccessRequirementItem(props) {
40719
40898
  requirementId: accessRequirement?.id,
40720
40899
  submitterId: user?.ownerId,
40721
40900
  accessorId: user?.ownerId,
40722
- state: "APPROVED" /* APPROVED */
40901
+ state: ApprovalState.APPROVED
40723
40902
  };
40724
40903
  createAccessApproval2(accessApprovalRequest);
40725
40904
  };
@@ -42136,7 +42315,7 @@ var Search2 = class extends import_react199.default.Component {
42136
42315
  if (columnModel?.columnType.endsWith("_LIST")) {
42137
42316
  const columnMultiValueQueryFilter = {
42138
42317
  columnName,
42139
- function: "HAS_LIKE" /* HAS_LIKE */,
42318
+ function: ColumnMultiValueFunction.HAS_LIKE,
42140
42319
  values: [`%${searchText}%`],
42141
42320
  concreteType: "org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter"
42142
42321
  };
@@ -42144,7 +42323,7 @@ var Search2 = class extends import_react199.default.Component {
42144
42323
  } else {
42145
42324
  const columnSingleValueQueryFilter = {
42146
42325
  columnName,
42147
- operator: "LIKE" /* LIKE */,
42326
+ operator: ColumnSingleValueFilterOperator.LIKE,
42148
42327
  values: [`%${searchText}%`],
42149
42328
  concreteType: "org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter"
42150
42329
  };
@@ -42164,11 +42343,11 @@ var Search2 = class extends import_react199.default.Component {
42164
42343
  };
42165
42344
  isSupportedColumn = (columnModel) => {
42166
42345
  switch (columnModel?.columnType) {
42167
- case "FILEHANDLEID" /* FILEHANDLEID */:
42168
- case "ENTITYID" /* ENTITYID */:
42169
- case "DATE" /* DATE */:
42170
- case "DATE_LIST" /* DATE_LIST */:
42171
- case "USERID" /* USERID */:
42346
+ case ColumnTypeEnum.FILEHANDLEID:
42347
+ case ColumnTypeEnum.ENTITYID:
42348
+ case ColumnTypeEnum.DATE:
42349
+ case ColumnTypeEnum.DATE_LIST:
42350
+ case ColumnTypeEnum.USERID:
42172
42351
  return false;
42173
42352
  default:
42174
42353
  return true;
@@ -43623,17 +43802,17 @@ var EnumFacetFilter = ({
43623
43802
  const selectedValuesMap = {};
43624
43803
  let timer;
43625
43804
  const allIsSelected = facetValues.filter((item) => item.isSelected).length === 0;
43626
- const userIds = columnModel?.columnType === "USERID" /* USERID */ || columnModel?.columnType === "USERID_LIST" /* USERID_LIST */ ? facetValues.map((facet) => facet.value) : [];
43805
+ const userIds = columnModel?.columnType === ColumnTypeEnum.USERID || columnModel?.columnType === ColumnTypeEnum.USERID_LIST ? facetValues.map((facet) => facet.value) : [];
43627
43806
  const userGroupHeaders = useGetInfoFromIds({
43628
43807
  ids: userIds,
43629
43808
  type: "USER_PROFILE"
43630
43809
  });
43631
- const entityIds = columnModel?.columnType === "ENTITYID" /* ENTITYID */ || columnModel?.columnType === "ENTITYID_LIST" /* ENTITYID_LIST */ ? facetValues.map((facet) => facet.value) : [];
43810
+ const entityIds = columnModel?.columnType === ColumnTypeEnum.ENTITYID || columnModel?.columnType === ColumnTypeEnum.ENTITYID_LIST ? facetValues.map((facet) => facet.value) : [];
43632
43811
  const entityHeaders = useGetInfoFromIds({
43633
43812
  ids: entityIds,
43634
43813
  type: "ENTITY_HEADER"
43635
43814
  });
43636
- const evaluationIds = columnModel?.columnType === "EVALUATIONID" /* EVALUATIONID */ ? facetValues.map((facet) => facet.value) : [];
43815
+ const evaluationIds = columnModel?.columnType === ColumnTypeEnum.EVALUATIONID ? facetValues.map((facet) => facet.value) : [];
43637
43816
  const evaluations = useGetInfoFromIds({
43638
43817
  ids: evaluationIds,
43639
43818
  type: "EVALUATION_QUEUE"
@@ -44626,7 +44805,7 @@ async function extractPlotDataArray(facetToPlot, columnType, index, plotType, ac
44626
44805
  SynapseConstants_exports.FRIENDLY_VALUE_NOT_SET
44627
44806
  );
44628
44807
  const filteredValues = facetValues.map((value) => value.value).filter((val) => val !== SynapseConstants_exports.VALUE_NOT_SET);
44629
- if (columnType2 === "ENTITYID" /* ENTITYID */ || columnType2 === "ENTITYID_LIST" /* ENTITYID_LIST */) {
44808
+ if (columnType2 === ColumnTypeEnum.ENTITYID || columnType2 === ColumnTypeEnum.ENTITYID_LIST) {
44630
44809
  const response = await synapse_client_default.getEntityHeadersByIds(
44631
44810
  filteredValues,
44632
44811
  accessToken2
@@ -44634,7 +44813,7 @@ async function extractPlotDataArray(facetToPlot, columnType, index, plotType, ac
44634
44813
  for (const header of response.results) {
44635
44814
  map.set(header.id, header.name);
44636
44815
  }
44637
- } else if (columnType2 === "USERID" /* USERID */ || columnType2 === "USERID_LIST" /* USERID_LIST */) {
44816
+ } else if (columnType2 === ColumnTypeEnum.USERID || columnType2 === ColumnTypeEnum.USERID_LIST) {
44638
44817
  const response = await synapse_client_default.getGroupHeadersBatch(
44639
44818
  filteredValues,
44640
44819
  accessToken2
@@ -45718,13 +45897,13 @@ var getFileHandleAssociation = (table, fileHandleId, rowSynapseId) => {
45718
45897
  fileHandleAssociation = {
45719
45898
  fileHandleId,
45720
45899
  associateObjectId: table?.id ?? "",
45721
- associateObjectType: "TableEntity" /* TableEntity */
45900
+ associateObjectType: FileHandleAssociateType.TableEntity
45722
45901
  };
45723
45902
  } else if (rowSynapseId) {
45724
45903
  fileHandleAssociation = {
45725
45904
  fileHandleId,
45726
45905
  associateObjectId: rowSynapseId,
45727
- associateObjectType: "FileEntity" /* FileEntity */
45906
+ associateObjectType: FileHandleAssociateType.FileEntity
45728
45907
  };
45729
45908
  }
45730
45909
  }
@@ -45811,7 +45990,7 @@ var SynapseCardLabel = (props) => {
45811
45990
  if (isHeader) {
45812
45991
  newClassName = className?.concat(" ", "SRC-lightLink");
45813
45992
  }
45814
- if (columnModelType === "USERID_LIST" /* USERID_LIST */ && strList) {
45993
+ if (columnModelType === ColumnTypeEnum.USERID_LIST && strList) {
45815
45994
  return /* @__PURE__ */ import_react240.default.createElement("p", null, strList.map((val, index) => {
45816
45995
  return /* @__PURE__ */ import_react240.default.createElement(import_react240.default.Fragment, { key: val }, /* @__PURE__ */ import_react240.default.createElement(
45817
45996
  UserCard_default,
@@ -45823,7 +46002,7 @@ var SynapseCardLabel = (props) => {
45823
46002
  ), index < strList.length - 1 && ",\xA0\xA0");
45824
46003
  }));
45825
46004
  }
45826
- if (columnModelType === "USERID" /* USERID */ && str) {
46005
+ if (columnModelType === ColumnTypeEnum.USERID && str) {
45827
46006
  return /* @__PURE__ */ import_react240.default.createElement(UserCard_default, { ownerId: str, size: SMALL_USER_CARD, className: newClassName });
45828
46007
  }
45829
46008
  if (!labelLink) {
@@ -46238,7 +46417,7 @@ var GenericCard = class extends import_react240.default.Component {
46238
46417
  className: "SRC-boldText SRC-blackText",
46239
46418
  style: { margin: "none" }
46240
46419
  },
46241
- !titleLinkConfig && titleColumnType === "FILEHANDLEID" /* FILEHANDLEID */ && fileHandleAssociation ? /* @__PURE__ */ import_react240.default.createElement(
46420
+ !titleLinkConfig && titleColumnType === ColumnTypeEnum.FILEHANDLEID && fileHandleAssociation ? /* @__PURE__ */ import_react240.default.createElement(
46242
46421
  FileHandleLink,
46243
46422
  {
46244
46423
  fileHandleAssociation,
@@ -46512,7 +46691,7 @@ var UserCardList = class extends import_react244.default.Component {
46512
46691
  (el) => el.name === "institution"
46513
46692
  );
46514
46693
  const ownerId = data.queryResult.queryResults.headers.findIndex(
46515
- (el) => el.columnType === "USERID" /* USERID */
46694
+ (el) => el.columnType === ColumnTypeEnum.USERID
46516
46695
  );
46517
46696
  const nullOwnerIdsRows = data.queryResult.queryResults.rows.filter(
46518
46697
  (el) => !el.values[ownerId]
@@ -46642,7 +46821,7 @@ function CardContainer(props) {
46642
46821
  let cards;
46643
46822
  if (type === MEDIUM_USER_CARD) {
46644
46823
  const userIdColumnIndex = data.queryResult.queryResults.headers.findIndex(
46645
- (el) => el.columnType === "USERID" /* USERID */
46824
+ (el) => el.columnType === ColumnTypeEnum.USERID
46646
46825
  );
46647
46826
  if (userIdColumnIndex === -1) {
46648
46827
  throw Error(
@@ -46785,7 +46964,7 @@ var DirectDownload = (props) => {
46785
46964
  safariDownloadWindow.document.body.innerHTML = "Downloading file on Safari...";
46786
46965
  }
46787
46966
  try {
46788
- if (associatedObjectType === "TableEntity" /* TableEntity */) {
46967
+ if (associatedObjectType === FileHandleAssociateType.TableEntity) {
46789
46968
  const files = await getTableEntityFileHandle(true);
46790
46969
  preSignedURL = files.requestedFiles[0].preSignedURL;
46791
46970
  } else {
@@ -46859,7 +47038,7 @@ var DirectDownload = (props) => {
46859
47038
  }).catch((err) => {
46860
47039
  console.log("Error on getFileEntityFileHandle = ", err);
46861
47040
  });
46862
- } else if (associatedObjectType === "TableEntity" /* TableEntity */) {
47041
+ } else if (associatedObjectType === FileHandleAssociateType.TableEntity) {
46863
47042
  const files = await getTableEntityFileHandle();
46864
47043
  const fh = files.requestedFiles[0].fileHandle;
46865
47044
  if (displayFileName && fh && hasFileHandle(fh)) {
@@ -46989,7 +47168,7 @@ function useGetFileHandleDownloadType(entityId, entityVersionNumber) {
46989
47168
  );
46990
47169
  const restrictionInformationRequest = import_react248.default.useMemo(
46991
47170
  () => ({
46992
- restrictableObjectType: "ENTITY" /* ENTITY */,
47171
+ restrictableObjectType: RestrictableObjectType.ENTITY,
46993
47172
  objectId: entityId
46994
47173
  }),
46995
47174
  [entityId]
@@ -47035,7 +47214,7 @@ function HasAccessV2(props) {
47035
47214
  const { accessToken } = useSynapseContext();
47036
47215
  const restrictionInformationRequest = import_react248.default.useMemo(
47037
47216
  () => ({
47038
- restrictableObjectType: "ENTITY" /* ENTITY */,
47217
+ restrictableObjectType: RestrictableObjectType.ENTITY,
47039
47218
  objectId: entityId
47040
47219
  }),
47041
47220
  [entityId]
@@ -47069,7 +47248,7 @@ function HasAccessV2(props) {
47069
47248
  let linkText = "";
47070
47249
  if (hasUnmetAccessRequirement) {
47071
47250
  linkText = "Request Access";
47072
- } else if ("OPEN" /* OPEN */ === restrictionLevel) {
47251
+ } else if (RestrictionLevel.OPEN === restrictionLevel) {
47073
47252
  return /* @__PURE__ */ import_react248.default.createElement(import_react248.default.Fragment, null);
47074
47253
  } else {
47075
47254
  linkText = "View Terms";
@@ -47381,7 +47560,7 @@ var SynapseTableCell = ({
47381
47560
  ));
47382
47561
  }
47383
47562
  switch (columnType) {
47384
- case "ENTITYID" /* ENTITYID */:
47563
+ case ColumnTypeEnum.ENTITYID:
47385
47564
  return /* @__PURE__ */ import_react254.default.createElement("p", null, /* @__PURE__ */ import_react254.default.createElement(
47386
47565
  EntityLink,
47387
47566
  {
@@ -47391,49 +47570,49 @@ var SynapseTableCell = ({
47391
47570
  }
47392
47571
  ));
47393
47572
  break;
47394
- case "DATE_LIST" /* DATE_LIST */: {
47573
+ case ColumnTypeEnum.DATE_LIST: {
47395
47574
  const jsonData = JSON.parse(columnValue);
47396
47575
  return /* @__PURE__ */ import_react254.default.createElement("p", null, jsonData.map((val, index) => {
47397
47576
  return /* @__PURE__ */ import_react254.default.createElement("span", { key: index, className: isBold }, formatDate((0, import_dayjs7.default)(Number(val))), index !== jsonData.length - 1 ? ", " : "");
47398
47577
  }), " ");
47399
47578
  }
47400
- case "BOOLEAN_LIST" /* BOOLEAN_LIST */: {
47579
+ case ColumnTypeEnum.BOOLEAN_LIST: {
47401
47580
  const jsonData = JSON.parse(columnValue);
47402
47581
  return /* @__PURE__ */ import_react254.default.createElement("p", null, jsonData.map((val, index) => {
47403
47582
  return /* @__PURE__ */ import_react254.default.createElement("span", { key: index, className: isBold }, val ? "true" : "false", index !== jsonData.length - 1 ? ", " : "");
47404
47583
  }));
47405
47584
  }
47406
- case "FILEHANDLEID" /* FILEHANDLEID */:
47585
+ case ColumnTypeEnum.FILEHANDLEID:
47407
47586
  return /* @__PURE__ */ import_react254.default.createElement(import_react254.default.Fragment, null, entity && /* @__PURE__ */ import_react254.default.createElement(
47408
47587
  DirectDownload_default,
47409
47588
  {
47410
47589
  associatedObjectId: entity.id,
47411
- associatedObjectType: "TableEntity" /* TableEntity */,
47590
+ associatedObjectType: FileHandleAssociateType.TableEntity,
47412
47591
  fileHandleId: columnValue,
47413
47592
  displayFileName: true
47414
47593
  }
47415
47594
  ));
47416
- case "ENTITYID_LIST" /* ENTITYID_LIST */: {
47595
+ case ColumnTypeEnum.ENTITYID_LIST: {
47417
47596
  const jsonData = JSON.parse(columnValue);
47418
47597
  return /* @__PURE__ */ import_react254.default.createElement("p", null, /* @__PURE__ */ import_react254.default.createElement(EntityIdList_default, { entityIdList: jsonData }));
47419
47598
  }
47420
- case "USERID_LIST" /* USERID_LIST */: {
47599
+ case ColumnTypeEnum.USERID_LIST: {
47421
47600
  const jsonData = JSON.parse(columnValue);
47422
47601
  return /* @__PURE__ */ import_react254.default.createElement(UserIdList_default, { userIds: jsonData });
47423
47602
  }
47424
- case "STRING_LIST" /* STRING_LIST */:
47425
- case "INTEGER_LIST" /* INTEGER_LIST */: {
47603
+ case ColumnTypeEnum.STRING_LIST:
47604
+ case ColumnTypeEnum.INTEGER_LIST: {
47426
47605
  const jsonData = JSON.parse(columnValue);
47427
47606
  return /* @__PURE__ */ import_react254.default.createElement("p", { className: isBold }, jsonData.map((val, index) => {
47428
47607
  return /* @__PURE__ */ import_react254.default.createElement(import_react254.default.Fragment, { key: val }, val, index !== jsonData.length - 1 ? ", " : "");
47429
47608
  }));
47430
47609
  }
47431
- case "EVALUATIONID" /* EVALUATIONID */: {
47610
+ case ColumnTypeEnum.EVALUATIONID: {
47432
47611
  return /* @__PURE__ */ import_react254.default.createElement(EvaluationIdRenderer_default, { evaluationId: columnValue });
47433
47612
  }
47434
- case "DATE" /* DATE */:
47613
+ case ColumnTypeEnum.DATE:
47435
47614
  return /* @__PURE__ */ import_react254.default.createElement("p", { className: isBold }, formatDate((0, import_dayjs7.default)(Number(columnValue))));
47436
- case "USERID" /* USERID */:
47615
+ case ColumnTypeEnum.USERID:
47437
47616
  if (Object.prototype.hasOwnProperty.call(mapUserIdToHeader, columnValue)) {
47438
47617
  const cachedData = mapUserIdToHeader[columnValue];
47439
47618
  const { ownerId, userName } = cachedData;
@@ -47465,14 +47644,14 @@ var SynapseTableCell = ({
47465
47644
  }
47466
47645
  }
47467
47646
  break;
47468
- case "LINK" /* LINK */:
47647
+ case ColumnTypeEnum.LINK:
47469
47648
  return /* @__PURE__ */ import_react254.default.createElement("a", { target: "_blank", rel: "noopener noreferrer", href: columnValue }, columnValue);
47470
- case "STRING" /* STRING */:
47471
- case "DOUBLE" /* DOUBLE */:
47472
- case "INTEGER" /* INTEGER */:
47473
- case "BOOLEAN" /* BOOLEAN */:
47474
- case "MEDIUMTEXT" /* MEDIUMTEXT */:
47475
- case "LARGETEXT" /* LARGETEXT */: {
47649
+ case ColumnTypeEnum.STRING:
47650
+ case ColumnTypeEnum.DOUBLE:
47651
+ case ColumnTypeEnum.INTEGER:
47652
+ case ColumnTypeEnum.BOOLEAN:
47653
+ case ColumnTypeEnum.MEDIUMTEXT:
47654
+ case ColumnTypeEnum.LARGETEXT: {
47476
47655
  return /* @__PURE__ */ import_react254.default.createElement("p", { className: isBold }, columnValue);
47477
47656
  }
47478
47657
  default:
@@ -47798,11 +47977,11 @@ var SynapseTable = class extends import_react259.default.Component {
47798
47977
  const mapUserIdToHeader = (0, import_lodash_es18.cloneDeep)(this.state.mapUserIdToHeader);
47799
47978
  const entityIdColumnIndicies = getColumnIndicesWithType(
47800
47979
  data,
47801
- "ENTITYID" /* ENTITYID */
47980
+ ColumnTypeEnum.ENTITYID
47802
47981
  );
47803
47982
  const userIdColumnIndicies = getColumnIndicesWithType(
47804
47983
  data,
47805
- "USERID" /* USERID */
47984
+ ColumnTypeEnum.USERID
47806
47985
  );
47807
47986
  const distinctEntityIds = getUniqueEntities(
47808
47987
  data,
@@ -48160,15 +48339,15 @@ var SynapseTable = class extends import_react259.default.Component {
48160
48339
  }
48161
48340
  isSortableColumn(column) {
48162
48341
  switch (column) {
48163
- case "USERID" /* USERID */:
48164
- case "ENTITYID" /* ENTITYID */:
48165
- case "FILEHANDLEID" /* FILEHANDLEID */:
48166
- case "STRING_LIST" /* STRING_LIST */:
48167
- case "INTEGER_LIST" /* INTEGER_LIST */:
48168
- case "BOOLEAN_LIST" /* BOOLEAN_LIST */:
48169
- case "DATE_LIST" /* DATE_LIST */:
48170
- case "USERID_LIST" /* USERID_LIST */:
48171
- case "ENTITYID_LIST" /* ENTITYID_LIST */:
48342
+ case ColumnTypeEnum.USERID:
48343
+ case ColumnTypeEnum.ENTITYID:
48344
+ case ColumnTypeEnum.FILEHANDLEID:
48345
+ case ColumnTypeEnum.STRING_LIST:
48346
+ case ColumnTypeEnum.INTEGER_LIST:
48347
+ case ColumnTypeEnum.BOOLEAN_LIST:
48348
+ case ColumnTypeEnum.DATE_LIST:
48349
+ case ColumnTypeEnum.USERID_LIST:
48350
+ case ColumnTypeEnum.ENTITYID_LIST:
48172
48351
  return false;
48173
48352
  default:
48174
48353
  return true;
@@ -48201,7 +48380,7 @@ var SynapseTable = class extends import_react259.default.Component {
48201
48380
  );
48202
48381
  const columnModel = columnModels.find((el) => el.name === column.name);
48203
48382
  const isLockedColumn = column.name.toLowerCase() === lockedColumn?.columnName?.toLowerCase();
48204
- const isEntityIDColumn = columnModel && columnModel.name == "id" && columnModel.columnType == "ENTITYID" /* ENTITYID */;
48383
+ const isEntityIDColumn = columnModel && columnModel.name == "id" && columnModel.columnType == ColumnTypeEnum.ENTITYID;
48205
48384
  return /* @__PURE__ */ import_react259.default.createElement("th", { key: column.name }, /* @__PURE__ */ import_react259.default.createElement("div", { className: "SRC-split" }, /* @__PURE__ */ import_react259.default.createElement("span", { style: { whiteSpace: "nowrap" } }, displayColumnName), /* @__PURE__ */ import_react259.default.createElement("div", { className: "SRC-centerContent" }, isFacetSelection && !isLockedColumn && this.configureFacetDropdown(
48206
48385
  facet,
48207
48386
  columnModel,
@@ -48735,7 +48914,7 @@ function SynapseVideo({ params }) {
48735
48914
  const fileHandleAssociationList = [
48736
48915
  {
48737
48916
  associateObjectId: videoKey,
48738
- associateObjectType: "FileEntity" /* FileEntity */,
48917
+ associateObjectType: FileHandleAssociateType.FileEntity,
48739
48918
  fileHandleId: data.dataFileHandleId
48740
48919
  }
48741
48920
  ];
@@ -51632,7 +51811,7 @@ var SortIcon = ({ direction, active, ...props }) => /* @__PURE__ */ import_react
51632
51811
  fill: "none",
51633
51812
  xmlns: "http://www.w3.org/2000/svg"
51634
51813
  },
51635
- direction.toUpperCase() === "DESC" /* DESC */ ? /* @__PURE__ */ import_react308.default.createElement(
51814
+ direction.toUpperCase() === Direction.DESC ? /* @__PURE__ */ import_react308.default.createElement(
51636
51815
  "path",
51637
51816
  {
51638
51817
  className: "SRC-Sort-Path",
@@ -52061,7 +52240,7 @@ var DateTimeWidget = ({
52061
52240
  };
52062
52241
 
52063
52242
  // src/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.tsx
52064
- var import_utils171 = require("@rjsf/utils");
52243
+ var import_utils173 = require("@rjsf/utils");
52065
52244
  var import_react315 = __toESM(require("react"));
52066
52245
  var import_use_deep_compare_effect8 = require("use-deep-compare-effect");
52067
52246
  function ObjectFieldTemplate(props) {
@@ -52079,13 +52258,13 @@ function ObjectFieldTemplate(props) {
52079
52258
  title,
52080
52259
  uiSchema
52081
52260
  } = props;
52082
- const options = (0, import_utils171.getUiOptions)(uiSchema);
52083
- const TitleFieldTemplate = (0, import_utils171.getTemplate)(
52261
+ const options = (0, import_utils173.getUiOptions)(uiSchema);
52262
+ const TitleFieldTemplate = (0, import_utils173.getTemplate)(
52084
52263
  "TitleFieldTemplate",
52085
52264
  registry,
52086
52265
  options
52087
52266
  );
52088
- const DescriptionFieldTemplate2 = (0, import_utils171.getTemplate)("DescriptionFieldTemplate", registry, options);
52267
+ const DescriptionFieldTemplate2 = (0, import_utils173.getTemplate)("DescriptionFieldTemplate", registry, options);
52089
52268
  const previousSchemaDefinedProperties = (0, import_react315.useRef)(/* @__PURE__ */ new Set());
52090
52269
  (0, import_use_deep_compare_effect8.useDeepCompareEffectNoCheck)(() => {
52091
52270
  if ("properties" in schema && schema.properties) {
@@ -52093,7 +52272,7 @@ function ObjectFieldTemplate(props) {
52093
52272
  const schemaDefinedProperties = new Set(
52094
52273
  propertyKeys.filter((key) => {
52095
52274
  const propertyObject = schema.properties[key];
52096
- return !propertyObject[import_utils171.ADDITIONAL_PROPERTY_FLAG];
52275
+ return !propertyObject[import_utils173.ADDITIONAL_PROPERTY_FLAG];
52097
52276
  })
52098
52277
  );
52099
52278
  if (previousSchemaDefinedProperties.current != null) {
@@ -52144,7 +52323,7 @@ function ObjectFieldTemplate(props) {
52144
52323
  registry,
52145
52324
  schema
52146
52325
  }
52147
- ), properties.map((prop) => prop.content), (0, import_utils171.canExpand)(schema, uiSchema, formData) && /* @__PURE__ */ import_react315.default.createElement(Tooltip_default, { title: "Add a new custom field", placement: "top" }, /* @__PURE__ */ import_react315.default.createElement(
52326
+ ), properties.map((prop) => prop.content), (0, import_utils173.canExpand)(schema, uiSchema, formData) && /* @__PURE__ */ import_react315.default.createElement(Tooltip_default, { title: "Add a new custom field", placement: "top" }, /* @__PURE__ */ import_react315.default.createElement(
52148
52327
  Button_default,
52149
52328
  {
52150
52329
  sx: { my: 2 },
@@ -52182,7 +52361,7 @@ var import_validator_ajv82 = __toESM(require("@rjsf/validator-ajv8"));
52182
52361
  // src/components/SchemaDrivenAnnotationEditor/field/CustomObjectField.tsx
52183
52362
  var import_react317 = __toESM(require("react"));
52184
52363
  var import_core3 = require("@rjsf/core");
52185
- var import_utils172 = require("@rjsf/utils");
52364
+ var import_utils174 = require("@rjsf/utils");
52186
52365
  function CustomObjectField(props) {
52187
52366
  const {
52188
52367
  fields: { ObjectField }
@@ -52190,11 +52369,11 @@ function CustomObjectField(props) {
52190
52369
  (0, import_react317.useEffect)(() => {
52191
52370
  const { schema, formData, onChange } = props;
52192
52371
  const newFormData = { ...formData };
52193
- if (schema[import_utils172.PROPERTIES_KEY]) {
52194
- Object.entries(schema[import_utils172.PROPERTIES_KEY]).forEach(
52372
+ if (schema[import_utils174.PROPERTIES_KEY]) {
52373
+ Object.entries(schema[import_utils174.PROPERTIES_KEY]).forEach(
52195
52374
  ([key, propertySchema]) => {
52196
52375
  const data = newFormData[key];
52197
- if (propertySchema[import_utils172.ADDITIONAL_PROPERTY_FLAG]) {
52376
+ if (propertySchema[import_utils174.ADDITIONAL_PROPERTY_FLAG]) {
52198
52377
  if (!Array.isArray(data)) {
52199
52378
  newFormData[key] = convertToArray(data);
52200
52379
  }
@@ -52205,7 +52384,7 @@ function CustomObjectField(props) {
52205
52384
  }
52206
52385
  }
52207
52386
  );
52208
- if (!(0, import_utils172.deepEquals)(formData, newFormData)) {
52387
+ if (!(0, import_utils174.deepEquals)(formData, newFormData)) {
52209
52388
  onChange(newFormData);
52210
52389
  }
52211
52390
  }
@@ -52306,20 +52485,20 @@ function ArrayFieldItemTemplate(props) {
52306
52485
  }
52307
52486
 
52308
52487
  // src/components/SchemaDrivenAnnotationEditor/template/ArrayFieldTemplate.tsx
52309
- var import_utils173 = require("@rjsf/utils");
52488
+ var import_utils175 = require("@rjsf/utils");
52310
52489
  var import_react319 = __toESM(require("react"));
52311
52490
  var import_icons_material12 = require("@mui/icons-material");
52312
52491
  function ArrayFieldTemplate(props) {
52313
52492
  const { idSchema, uiSchema, items, registry, schema } = props;
52314
- const uiOptions = (0, import_utils173.getUiOptions)(uiSchema);
52315
- const ArrayFieldTitleTemplate2 = (0, import_utils173.getTemplate)("ArrayFieldTitleTemplate", registry, uiOptions);
52316
- const ArrayFieldDescriptionTemplate2 = (0, import_utils173.getTemplate)("ArrayFieldDescriptionTemplate", registry, uiOptions);
52317
- const ArrayFieldItemTemplate2 = (0, import_utils173.getTemplate)(
52493
+ const uiOptions = (0, import_utils175.getUiOptions)(uiSchema);
52494
+ const ArrayFieldTitleTemplate2 = (0, import_utils175.getTemplate)("ArrayFieldTitleTemplate", registry, uiOptions);
52495
+ const ArrayFieldDescriptionTemplate2 = (0, import_utils175.getTemplate)("ArrayFieldDescriptionTemplate", registry, uiOptions);
52496
+ const ArrayFieldItemTemplate2 = (0, import_utils175.getTemplate)(
52318
52497
  "ArrayFieldItemTemplate",
52319
52498
  registry,
52320
52499
  uiOptions
52321
52500
  );
52322
- const isAdditionalProperty = !!props.schema[import_utils173.ADDITIONAL_PROPERTY_FLAG];
52501
+ const isAdditionalProperty = !!props.schema[import_utils175.ADDITIONAL_PROPERTY_FLAG];
52323
52502
  const additionalPropertyContext = useAdditionalPropertyContext();
52324
52503
  const [showDetails, setShowDetails] = (0, import_react319.useState)(false);
52325
52504
  (0, import_react319.useEffect)(() => {
@@ -52380,7 +52559,7 @@ function ArrayFieldTemplate(props) {
52380
52559
  var ArrayFieldTemplate_default = ArrayFieldTemplate;
52381
52560
 
52382
52561
  // src/components/SchemaDrivenAnnotationEditor/template/WrapIfAdditionalTemplate.tsx
52383
- var import_utils174 = require("@rjsf/utils");
52562
+ var import_utils176 = require("@rjsf/utils");
52384
52563
  var import_react320 = __toESM(require("react"));
52385
52564
  function WrapIfAdditionalTemplate(props) {
52386
52565
  const {
@@ -52396,8 +52575,8 @@ function WrapIfAdditionalTemplate(props) {
52396
52575
  registry
52397
52576
  } = props;
52398
52577
  const { translateString } = registry;
52399
- const keyLabel = translateString(import_utils174.TranslatableString.KeyLabel, [""]);
52400
- const additional = import_utils174.ADDITIONAL_PROPERTY_FLAG in schema;
52578
+ const keyLabel = translateString(import_utils176.TranslatableString.KeyLabel, [""]);
52579
+ const additional = import_utils176.ADDITIONAL_PROPERTY_FLAG in schema;
52401
52580
  if (!additional) {
52402
52581
  return /* @__PURE__ */ import_react320.default.createElement("div", { className: classNames }, children);
52403
52582
  }
@@ -52423,7 +52602,7 @@ function WrapIfAdditionalTemplate(props) {
52423
52602
 
52424
52603
  // src/components/SchemaDrivenAnnotationEditor/template/FieldTemplate.tsx
52425
52604
  var import_react321 = __toESM(require("react"));
52426
- var import_utils175 = require("@rjsf/utils");
52605
+ var import_utils177 = require("@rjsf/utils");
52427
52606
  var import_icons_material13 = require("@mui/icons-material");
52428
52607
  function FieldTemplate(props) {
52429
52608
  const {
@@ -52440,8 +52619,8 @@ function FieldTemplate(props) {
52440
52619
  uiSchema,
52441
52620
  schema
52442
52621
  } = props;
52443
- const uiOptions = (0, import_utils175.getUiOptions)(uiSchema);
52444
- const WrapIfAdditionalTemplate2 = (0, import_utils175.getTemplate)("WrapIfAdditionalTemplate", registry, uiOptions);
52622
+ const uiOptions = (0, import_utils177.getUiOptions)(uiSchema);
52623
+ const WrapIfAdditionalTemplate2 = (0, import_utils177.getTemplate)("WrapIfAdditionalTemplate", registry, uiOptions);
52445
52624
  const [showDetails, setShowDetails] = (0, import_react321.useState)(false);
52446
52625
  if (hidden) {
52447
52626
  return /* @__PURE__ */ import_react321.default.createElement("div", { className: "hidden" }, children);
@@ -52477,14 +52656,14 @@ function ArrayFieldTitleTemplate(props) {
52477
52656
  var import_icons_material14 = require("@mui/icons-material");
52478
52657
  var import_react323 = __toESM(require("react"));
52479
52658
  var import_ContentCopy2 = __toESM(require("@mui/icons-material/ContentCopy"));
52480
- var import_utils176 = require("@rjsf/utils");
52659
+ var import_utils178 = require("@rjsf/utils");
52481
52660
  var buttonSx = { minWidth: "unset", width: "40px", height: "40px" };
52482
52661
  function AddButton({ uiSchema, registry, ...props }) {
52483
52662
  const { translateString } = registry;
52484
52663
  return /* @__PURE__ */ import_react323.default.createElement(
52485
52664
  Button_default,
52486
52665
  {
52487
- title: translateString(import_utils176.TranslatableString.AddItemButton),
52666
+ title: translateString(import_utils178.TranslatableString.AddItemButton),
52488
52667
  ...props,
52489
52668
  color: "primary",
52490
52669
  variant: "contained",
@@ -52515,7 +52694,7 @@ function IconButtonTemplate(props) {
52515
52694
  return /* @__PURE__ */ import_react323.default.createElement(
52516
52695
  IconButton_default,
52517
52696
  {
52518
- title: translateString(import_utils176.TranslatableString.RemoveButton),
52697
+ title: translateString(import_utils178.TranslatableString.RemoveButton),
52519
52698
  ...otherProps,
52520
52699
  color: "default",
52521
52700
  sx: buttonSx
@@ -52584,15 +52763,15 @@ function DescriptionFieldTemplate(props) {
52584
52763
 
52585
52764
  // src/components/SchemaDrivenAnnotationEditor/template/ArrayFieldDescriptionTemplate.tsx
52586
52765
  var import_react326 = __toESM(require("react"));
52587
- var import_utils177 = require("@rjsf/utils");
52766
+ var import_utils179 = require("@rjsf/utils");
52588
52767
  function ArrayFieldDescriptionTemplate(props) {
52589
52768
  const { idSchema, description, registry, schema, uiSchema } = props;
52590
- const options = (0, import_utils177.getUiOptions)(uiSchema, registry.globalUiOptions);
52769
+ const options = (0, import_utils179.getUiOptions)(uiSchema, registry.globalUiOptions);
52591
52770
  const { label: displayLabel } = options;
52592
52771
  if (displayLabel === false) {
52593
52772
  return null;
52594
52773
  }
52595
- const DescriptionFieldTemplate2 = (0, import_utils177.getTemplate)("DescriptionFieldTemplate", registry, options);
52774
+ const DescriptionFieldTemplate2 = (0, import_utils179.getTemplate)("DescriptionFieldTemplate", registry, options);
52596
52775
  const id = `${idSchema.$id}__description`;
52597
52776
  return /* @__PURE__ */ import_react326.default.createElement(
52598
52777
  DescriptionFieldTemplate2,
@@ -52608,7 +52787,7 @@ function ArrayFieldDescriptionTemplate(props) {
52608
52787
 
52609
52788
  // src/components/SchemaDrivenAnnotationEditor/template/BaseInputTemplate.tsx
52610
52789
  var import_react327 = __toESM(require("react"));
52611
- var import_utils178 = require("@rjsf/utils");
52790
+ var import_utils180 = require("@rjsf/utils");
52612
52791
  var TYPES_THAT_SHRINK_LABEL = ["date", "datetime-local", "file", "time"];
52613
52792
  function BaseInputTemplate(props) {
52614
52793
  const {
@@ -52638,14 +52817,14 @@ function BaseInputTemplate(props) {
52638
52817
  ...textFieldProps
52639
52818
  } = props;
52640
52819
  const hideLabel = true;
52641
- const inputProps = (0, import_utils178.getInputProps)(schema, type, options);
52820
+ const inputProps = (0, import_utils180.getInputProps)(schema, type, options);
52642
52821
  const { step, min, max, ...rest } = inputProps;
52643
52822
  const otherProps = {
52644
52823
  inputProps: {
52645
52824
  step,
52646
52825
  min,
52647
52826
  max,
52648
- ...schema.examples ? { list: (0, import_utils178.examplesId)(id) } : void 0
52827
+ ...schema.examples ? { list: (0, import_utils180.examplesId)(id) } : void 0
52649
52828
  },
52650
52829
  ...rest
52651
52830
  };
@@ -52666,7 +52845,7 @@ function BaseInputTemplate(props) {
52666
52845
  id,
52667
52846
  name: id,
52668
52847
  placeholder: derivedValuePlaceholder || placeholder,
52669
- label: (0, import_utils178.labelValue)(label || void 0, hideLabel, false),
52848
+ label: (0, import_utils180.labelValue)(label || void 0, hideLabel, false),
52670
52849
  autoFocus: autofocus,
52671
52850
  required: false,
52672
52851
  disabled: disabled || readonly,
@@ -52681,9 +52860,9 @@ function BaseInputTemplate(props) {
52681
52860
  inputProps: {
52682
52861
  "aria-label": id
52683
52862
  },
52684
- "aria-describedby": (0, import_utils178.ariaDescribedByIds)(id, !!schema.examples)
52863
+ "aria-describedby": (0, import_utils180.ariaDescribedByIds)(id, !!schema.examples)
52685
52864
  }
52686
- ), Array.isArray(schema.examples) && /* @__PURE__ */ import_react327.default.createElement("datalist", { id: (0, import_utils178.examplesId)(id) }, schema.examples.concat(
52865
+ ), Array.isArray(schema.examples) && /* @__PURE__ */ import_react327.default.createElement("datalist", { id: (0, import_utils180.examplesId)(id) }, schema.examples.concat(
52687
52866
  schema.default && !schema.examples.includes(schema.default) ? [schema.default] : []
52688
52867
  ).map((example) => {
52689
52868
  return /* @__PURE__ */ import_react327.default.createElement("option", { key: example, value: example });
@@ -52692,13 +52871,13 @@ function BaseInputTemplate(props) {
52692
52871
 
52693
52872
  // src/components/SchemaDrivenAnnotationEditor/template/FieldErrorTemplate.tsx
52694
52873
  var import_react328 = __toESM(require("react"));
52695
- var import_utils179 = require("@rjsf/utils");
52874
+ var import_utils181 = require("@rjsf/utils");
52696
52875
  function FieldErrorTemplate(props) {
52697
52876
  const { errors = [], idSchema } = props;
52698
52877
  if (errors.length === 0) {
52699
52878
  return null;
52700
52879
  }
52701
- const id = (0, import_utils179.errorId)(idSchema);
52880
+ const id = (0, import_utils181.errorId)(idSchema);
52702
52881
  return /* @__PURE__ */ import_react328.default.createElement(List_default, { dense: true, disablePadding: true }, errors.map((error, i) => {
52703
52882
  return /* @__PURE__ */ import_react328.default.createElement(ListItem_default, { key: i, disableGutters: true }, /* @__PURE__ */ import_react328.default.createElement(FormHelperText_default, { id, sx: { color: "error.main" } }, error));
52704
52883
  }));
@@ -52982,7 +53161,7 @@ function getStorageLocationName(fileHandle) {
52982
53161
  }
52983
53162
  function getDataFileHandle(entityBundle) {
52984
53163
  let dataFileHandle = void 0;
52985
- if (entityBundle.entityType === "file" /* FILE */) {
53164
+ if (entityBundle.entityType === EntityType.FILE) {
52986
53165
  dataFileHandle = entityBundle.fileHandles.filter(
52987
53166
  (fh) => fh.id === entityBundle.entity.dataFileHandleId
52988
53167
  )[0];
@@ -53328,7 +53507,7 @@ var EntityBadgeIcons = (props) => {
53328
53507
  "data-testid": "discussion-icon"
53329
53508
  }
53330
53509
  )
53331
- ), showUnlink && bundle.entityType === "link" /* LINK */ && bundle.permissions?.canDelete && /* @__PURE__ */ import_react333.default.createElement(import_react333.default.Fragment, null, /* @__PURE__ */ import_react333.default.createElement(
53510
+ ), showUnlink && bundle.entityType === EntityType.LINK && bundle.permissions?.canDelete && /* @__PURE__ */ import_react333.default.createElement(import_react333.default.Fragment, null, /* @__PURE__ */ import_react333.default.createElement(
53332
53511
  WarningDialog_default,
53333
53512
  {
53334
53513
  open: showUnlinkConfirmModal,
@@ -53474,7 +53653,7 @@ function getLatestVersionText(versionSelection, entityType) {
53474
53653
  let versionDisplay = "Latest";
53475
53654
  let snapshotDisplay = "";
53476
53655
  if (isTableType(entityType)) {
53477
- if (entityType === "dataset" /* DATASET */) {
53656
+ if (entityType === EntityType.DATASET) {
53478
53657
  versionDisplay = "Draft";
53479
53658
  snapshotDisplay = "Stable Version";
53480
53659
  } else {
@@ -53844,7 +54023,7 @@ var DetailsView = ({
53844
54023
  if (sort && setSort) {
53845
54024
  setSort(
53846
54025
  key,
53847
- order === "asc" ? "ASC" /* ASC */ : "DESC" /* DESC */
54026
+ order === "asc" ? Direction.ASC : Direction.DESC
53848
54027
  );
53849
54028
  }
53850
54029
  },
@@ -53907,7 +54086,7 @@ var DetailsView = ({
53907
54086
  /* @__PURE__ */ import_react336.default.createElement(
53908
54087
  import_react_base_table.Column,
53909
54088
  {
53910
- key: "NAME" /* NAME */,
54089
+ key: SortBy.NAME,
53911
54090
  title: "Name",
53912
54091
  width: 800,
53913
54092
  sortable: sort != null,
@@ -53957,7 +54136,7 @@ var DetailsView = ({
53957
54136
  /* @__PURE__ */ import_react336.default.createElement(
53958
54137
  import_react_base_table.Column,
53959
54138
  {
53960
- key: "CREATED_ON" /* CREATED_ON */,
54139
+ key: SortBy.CREATED_ON,
53961
54140
  sortable: sort != null,
53962
54141
  title: "Created On",
53963
54142
  width: 220,
@@ -53968,7 +54147,7 @@ var DetailsView = ({
53968
54147
  /* @__PURE__ */ import_react336.default.createElement(
53969
54148
  import_react_base_table.Column,
53970
54149
  {
53971
- key: "MODIFIED_ON" /* MODIFIED_ON */,
54150
+ key: SortBy.MODIFIED_ON,
53972
54151
  title: "Modified On",
53973
54152
  width: 220,
53974
54153
  minWidth: 170,
@@ -53991,8 +54170,8 @@ var DetailsView = ({
53991
54170
 
53992
54171
  // src/components/EntityFinder/details/configurations/EntityChildrenDetails.tsx
53993
54172
  var EntityChildrenDetails = ({ parentContainerId, ...sharedProps }) => {
53994
- const [sortBy3, setSortBy] = (0, import_react337.useState)("NAME" /* NAME */);
53995
- const [sortDirection, setSortDirection] = (0, import_react337.useState)("ASC" /* ASC */);
54173
+ const [sortBy3, setSortBy] = (0, import_react337.useState)(SortBy.NAME);
54174
+ const [sortDirection, setSortDirection] = (0, import_react337.useState)(Direction.ASC);
53996
54175
  const getChildrenInfiniteRequestObject = {
53997
54176
  parentId: parentContainerId,
53998
54177
  includeTotalChildCount: true,
@@ -54685,7 +54864,7 @@ function EntityTree(props) {
54685
54864
  initialContainer = null,
54686
54865
  currentContainer,
54687
54866
  setCurrentContainer,
54688
- visibleTypes = ["project" /* PROJECT */, "folder" /* FOLDER */],
54867
+ visibleTypes = [EntityType.PROJECT, EntityType.FOLDER],
54689
54868
  toggleSelection,
54690
54869
  selectedEntities,
54691
54870
  setDetailsViewConfiguration,
@@ -54968,7 +55147,7 @@ function EntityTree(props) {
54968
55147
  // src/components/EntityFinder/EntityFinder.tsx
54969
55148
  var DEFAULT_SELECTABLE_TYPES = Object.values(EntityType);
54970
55149
  var TABLE_DEFAULT_VISIBLE_TYPES = Object.values(EntityType);
54971
- var TREE_DEFAULT_VISIBLE_TYPES = ["project" /* PROJECT */, "folder" /* FOLDER */];
55150
+ var TREE_DEFAULT_VISIBLE_TYPES = [EntityType.PROJECT, EntityType.FOLDER];
54972
55151
  var NO_VERSION_NUMBER = -1;
54973
55152
  var searchForOnlyTypesBooleanQuery = (entityTypes) => {
54974
55153
  const allTypes = Object.values(EntityType);
@@ -55576,7 +55755,7 @@ var ChallengeDataTable = ({
55576
55755
  if (sort && setSort) {
55577
55756
  setSort(
55578
55757
  key,
55579
- order === "asc" ? "ASC" /* ASC */ : "DESC" /* DESC */
55758
+ order === "asc" ? Direction.ASC : Direction.DESC
55580
55759
  );
55581
55760
  }
55582
55761
  },
@@ -55639,7 +55818,7 @@ var ChallengeDataTable = ({
55639
55818
  /* @__PURE__ */ import_react348.default.createElement(
55640
55819
  import_react_base_table2.Column,
55641
55820
  {
55642
- key: "NAME" /* NAME */,
55821
+ key: SortBy.NAME,
55643
55822
  title: "File Name",
55644
55823
  width: 500,
55645
55824
  sortable: sort != null,
@@ -55661,7 +55840,7 @@ var ChallengeDataTable = ({
55661
55840
  /* @__PURE__ */ import_react348.default.createElement(
55662
55841
  import_react_base_table2.Column,
55663
55842
  {
55664
- key: "MODIFIED_ON" /* MODIFIED_ON */,
55843
+ key: SortBy.MODIFIED_ON,
55665
55844
  title: "Modified On",
55666
55845
  width: 220,
55667
55846
  minWidth: 170,
@@ -55695,8 +55874,8 @@ var ChallengeDataTable = ({
55695
55874
 
55696
55875
  // src/components/ChallengeDataDownload/ChallengeEntityChildrenDetails.tsx
55697
55876
  var ChallengeEntityChildrenDetails = ({ parentContainerId, ...sharedProps }) => {
55698
- const [sortBy3, setSortBy] = (0, import_react349.useState)("NAME" /* NAME */);
55699
- const [sortDirection, setSortDirection] = (0, import_react349.useState)("ASC" /* ASC */);
55877
+ const [sortBy3, setSortBy] = (0, import_react349.useState)(SortBy.NAME);
55878
+ const [sortDirection, setSortDirection] = (0, import_react349.useState)(Direction.ASC);
55700
55879
  const getChildrenInfiniteRequestObject = {
55701
55880
  parentId: parentContainerId,
55702
55881
  includeTotalChildCount: true,
@@ -55785,9 +55964,9 @@ function ChallengeDataDownload({
55785
55964
  versionSelection: "REQUIRED" /* REQUIRED */,
55786
55965
  selectColumnType: "checkbox",
55787
55966
  enableSelectAll: true,
55788
- visibleTypes: ["file" /* FILE */],
55967
+ visibleTypes: [EntityType.FILE],
55789
55968
  selected: selectedEntities,
55790
- selectableTypes: ["file" /* FILE */],
55969
+ selectableTypes: [EntityType.FILE],
55791
55970
  isIdSelected,
55792
55971
  isSelectable: () => true,
55793
55972
  toggleSelection
@@ -55966,7 +56145,7 @@ function DownloadListTable(props) {
55966
56145
  role: "button",
55967
56146
  style: { height: "20px" },
55968
56147
  active: sort?.field === columnSortBy,
55969
- direction: sort?.field === columnSortBy ? sort.direction === "DESC" ? "DESC" /* DESC */ : "ASC" /* ASC */ : "DESC" /* DESC */,
56148
+ direction: sort?.field === columnSortBy ? sort.direction === "DESC" ? Direction.DESC : Direction.ASC : Direction.DESC,
55970
56149
  onClick: () => {
55971
56150
  const direction = columnSortBy === sort?.field ? sort.direction === "ASC" ? "DESC" : "ASC" : "DESC";
55972
56151
  setSort({
@@ -56052,7 +56231,7 @@ function DownloadListTable(props) {
56052
56231
  DirectDownload_default,
56053
56232
  {
56054
56233
  associatedObjectId: item.fileEntityId,
56055
- associatedObjectType: "FileEntity" /* FileEntity */,
56234
+ associatedObjectType: FileHandleAssociateType.FileEntity,
56056
56235
  entityVersionNumber: item.versionNumber.toString(),
56057
56236
  displayFileName: false,
56058
56237
  onClickCallback: (isExternalLink) => {
@@ -57614,7 +57793,7 @@ var ExternalFileHandleLink = (props) => {
57614
57793
  requestedFiles: [
57615
57794
  {
57616
57795
  associateObjectId: synId,
57617
- associateObjectType: "FileEntity" /* FileEntity */,
57796
+ associateObjectType: FileHandleAssociateType.FileEntity,
57618
57797
  fileHandleId: fileEntity2.dataFileHandleId
57619
57798
  }
57620
57799
  ],
@@ -58681,7 +58860,7 @@ var UserMentionModal = ({
58681
58860
  {
58682
58861
  placeholder: "Search for a user or team name",
58683
58862
  onChange: onUserChange,
58684
- typeFilter: "ALL" /* ALL */,
58863
+ typeFilter: TYPE_FILTER.ALL,
58685
58864
  focusOnSelect: true
58686
58865
  }
58687
58866
  ),
@@ -58947,7 +59126,7 @@ var DiscussionReply = ({
58947
59126
  MarkdownSynapse_default,
58948
59127
  {
58949
59128
  markdown: message,
58950
- objectType: "REPLY" /* REPLY */
59129
+ objectType: ObjectType.REPLY
58951
59130
  }
58952
59131
  ), /* @__PURE__ */ import_react387.default.createElement("span", null, "posted ", formatDate((0, import_dayjs19.default)(reply.createdOn), "M/D/YYYY")), /* @__PURE__ */ import_react387.default.createElement("div", { style: { float: "right" } }, /* @__PURE__ */ import_react387.default.createElement("button", { onClick: () => onClickLink() }, /* @__PURE__ */ import_react387.default.createElement(IconSvg_default, { icon: "link" })), isCurrentUserAuthor && /* @__PURE__ */ import_react387.default.createElement("button", { onClick: () => setShowReplyModal(true) }, /* @__PURE__ */ import_react387.default.createElement(IconSvg_default, { icon: "edit" })), entityBundle?.permissions.canModerate && /* @__PURE__ */ import_react387.default.createElement("button", { onClick: () => setShowDeleteModal(true) }, /* @__PURE__ */ import_react387.default.createElement(IconSvg_default, { icon: "delete" }))))), /* @__PURE__ */ import_react387.default.createElement(
58953
59132
  ForumThreadEditor,
@@ -58999,8 +59178,8 @@ function useGetSubscription(objectId, objectType, options) {
58999
59178
  const subscriptionRequest = {
59000
59179
  objectType,
59001
59180
  idList: [objectId],
59002
- sortByType: "OBJECT_ID" /* OBJECT_ID */,
59003
- sortDirection: "ASC" /* ASC */
59181
+ sortByType: SortByType.OBJECT_ID,
59182
+ sortDirection: Direction.ASC
59004
59183
  };
59005
59184
  const subscriptionList = await synapse_client_default.postSubscriptionList(
59006
59185
  accessToken,
@@ -59214,7 +59393,7 @@ function DiscussionThread(props) {
59214
59393
  );
59215
59394
  const { subscription, toggleSubscribed, isLoading } = useSubscription(
59216
59395
  threadId,
59217
- "THREAD" /* THREAD */
59396
+ SubscriptionObjectType.THREAD
59218
59397
  );
59219
59398
  const { mutate: deleteThread2 } = useDeleteThread({
59220
59399
  onSuccess: () => {
@@ -59273,7 +59452,7 @@ function DiscussionThread(props) {
59273
59452
  SubscribersModal,
59274
59453
  {
59275
59454
  id: threadId,
59276
- objectType: "THREAD" /* THREAD */,
59455
+ objectType: SubscriptionObjectType.THREAD,
59277
59456
  showModal: showSubscriberModal,
59278
59457
  handleModal: setShowSubscriberModal
59279
59458
  }
@@ -59281,7 +59460,7 @@ function DiscussionThread(props) {
59281
59460
  MarkdownSynapse_default,
59282
59461
  {
59283
59462
  markdown: threadBody,
59284
- objectType: "THREAD" /* THREAD */
59463
+ objectType: ObjectType.THREAD
59285
59464
  }
59286
59465
  )), /* @__PURE__ */ import_react390.default.createElement("span", null, "posted ", formatDate((0, import_dayjs20.default)(threadData.createdOn), "M/D/YYYY")), /* @__PURE__ */ import_react390.default.createElement(
59287
59466
  ForumThreadEditor,
@@ -59453,7 +59632,7 @@ var ForumTable = ({
59453
59632
  onClickLink
59454
59633
  }) => {
59455
59634
  const [sort, setSort] = (0, import_react391.useState)(
59456
- "PINNED_AND_LAST_ACTIVITY" /* PINNED_AND_LAST_ACTIVITY */
59635
+ DiscussionThreadOrder.PINNED_AND_LAST_ACTIVITY
59457
59636
  );
59458
59637
  const [isAscending, setIsAscending] = (0, import_react391.useState)(false);
59459
59638
  const { data, hasNextPage, fetchNextPage } = useGetForumInfinite(
@@ -59478,36 +59657,36 @@ var ForumTable = ({
59478
59657
  {
59479
59658
  role: "button",
59480
59659
  "aria-label": "Sort by Topic",
59481
- active: sort === "THREAD_TITLE" /* THREAD_TITLE */,
59482
- direction: sort === "THREAD_TITLE" ? isAscending === false ? "DESC" /* DESC */ : "ASC" /* ASC */ : "DESC" /* DESC */,
59483
- onClick: () => onSort("THREAD_TITLE" /* THREAD_TITLE */)
59660
+ active: sort === DiscussionThreadOrder.THREAD_TITLE,
59661
+ direction: sort === "THREAD_TITLE" ? isAscending === false ? Direction.DESC : Direction.ASC : Direction.DESC,
59662
+ onClick: () => onSort(DiscussionThreadOrder.THREAD_TITLE)
59484
59663
  }
59485
59664
  ))), /* @__PURE__ */ import_react391.default.createElement("th", null, "Author"), /* @__PURE__ */ import_react391.default.createElement("th", null, "Active Users"), /* @__PURE__ */ import_react391.default.createElement("th", null, /* @__PURE__ */ import_react391.default.createElement("span", { className: "SRC-split" }, /* @__PURE__ */ import_react391.default.createElement("span", null, "Replies"), /* @__PURE__ */ import_react391.default.createElement(
59486
59665
  Sort_default,
59487
59666
  {
59488
59667
  role: "button",
59489
59668
  "aria-label": "Sort by Replies",
59490
- active: sort === "NUMBER_OF_REPLIES" /* NUMBER_OF_REPLIES */,
59491
- direction: sort === "NUMBER_OF_REPLIES" ? isAscending === false ? "DESC" /* DESC */ : "ASC" /* ASC */ : "DESC" /* DESC */,
59492
- onClick: () => onSort("NUMBER_OF_REPLIES" /* NUMBER_OF_REPLIES */)
59669
+ active: sort === DiscussionThreadOrder.NUMBER_OF_REPLIES,
59670
+ direction: sort === "NUMBER_OF_REPLIES" ? isAscending === false ? Direction.DESC : Direction.ASC : Direction.DESC,
59671
+ onClick: () => onSort(DiscussionThreadOrder.NUMBER_OF_REPLIES)
59493
59672
  }
59494
59673
  ))), /* @__PURE__ */ import_react391.default.createElement("th", null, /* @__PURE__ */ import_react391.default.createElement("span", { className: "SRC-split" }, /* @__PURE__ */ import_react391.default.createElement("span", null, "Views"), /* @__PURE__ */ import_react391.default.createElement(
59495
59674
  Sort_default,
59496
59675
  {
59497
59676
  role: "button",
59498
59677
  "aria-label": "Sort by Views",
59499
- active: sort === "NUMBER_OF_VIEWS" /* NUMBER_OF_VIEWS */,
59500
- direction: sort === "NUMBER_OF_VIEWS" ? isAscending === false ? "DESC" /* DESC */ : "ASC" /* ASC */ : "DESC" /* DESC */,
59501
- onClick: () => onSort("NUMBER_OF_VIEWS" /* NUMBER_OF_VIEWS */)
59678
+ active: sort === DiscussionThreadOrder.NUMBER_OF_VIEWS,
59679
+ direction: sort === "NUMBER_OF_VIEWS" ? isAscending === false ? Direction.DESC : Direction.ASC : Direction.DESC,
59680
+ onClick: () => onSort(DiscussionThreadOrder.NUMBER_OF_VIEWS)
59502
59681
  }
59503
59682
  ))), /* @__PURE__ */ import_react391.default.createElement("th", null, /* @__PURE__ */ import_react391.default.createElement("span", { className: "SRC-split" }, /* @__PURE__ */ import_react391.default.createElement("span", null, "Activity"), /* @__PURE__ */ import_react391.default.createElement(
59504
59683
  Sort_default,
59505
59684
  {
59506
59685
  role: "button",
59507
59686
  "aria-label": "Sort by Last Activity",
59508
- active: sort === "PINNED_AND_LAST_ACTIVITY" /* PINNED_AND_LAST_ACTIVITY */,
59509
- direction: sort === "PINNED_AND_LAST_ACTIVITY" ? isAscending === false ? "DESC" /* DESC */ : "ASC" /* ASC */ : "DESC" /* DESC */,
59510
- onClick: () => onSort("PINNED_AND_LAST_ACTIVITY" /* PINNED_AND_LAST_ACTIVITY */)
59687
+ active: sort === DiscussionThreadOrder.PINNED_AND_LAST_ACTIVITY,
59688
+ direction: sort === "PINNED_AND_LAST_ACTIVITY" ? isAscending === false ? Direction.DESC : Direction.ASC : Direction.DESC,
59689
+ onClick: () => onSort(DiscussionThreadOrder.PINNED_AND_LAST_ACTIVITY)
59511
59690
  }
59512
59691
  ))))), /* @__PURE__ */ import_react391.default.createElement("tbody", null, threads.map((item) => {
59513
59692
  return /* @__PURE__ */ import_react391.default.createElement("tr", { key: item.id }, /* @__PURE__ */ import_react391.default.createElement("td", null, /* @__PURE__ */ import_react391.default.createElement(Link_default, { onClick: () => onClickLink(item.id) }, item.isPinned ? /* @__PURE__ */ import_react391.default.createElement(IconSvg_default, { icon: "pushpin" }) : /* @__PURE__ */ import_react391.default.createElement(import_react391.default.Fragment, null), item.title)), /* @__PURE__ */ import_react391.default.createElement("td", null, /* @__PURE__ */ import_react391.default.createElement(UserCard_default, { size: SMALL_USER_CARD, ownerId: item.createdBy })), /* @__PURE__ */ import_react391.default.createElement("td", null, item.activeAuthors.map((user) => /* @__PURE__ */ import_react391.default.createElement("div", { key: user, className: "avatarContainer" }, /* @__PURE__ */ import_react391.default.createElement(
@@ -59546,7 +59725,7 @@ var ForumPage = ({
59546
59725
  const [showSubscriberModal, setShowSubscriberModal] = (0, import_react392.useState)(false);
59547
59726
  const { subscription, isLoading, toggleSubscribed } = useSubscription(
59548
59727
  forumId,
59549
- "FORUM" /* FORUM */
59728
+ SubscriptionObjectType.FORUM
59550
59729
  );
59551
59730
  function handleFollowBtn() {
59552
59731
  try {
@@ -59571,7 +59750,7 @@ var ForumPage = ({
59571
59750
  SubscribersModal,
59572
59751
  {
59573
59752
  id: forumId,
59574
- objectType: "FORUM" /* FORUM */,
59753
+ objectType: SubscriptionObjectType.FORUM,
59575
59754
  showModal: showSubscriberModal,
59576
59755
  handleModal: setShowSubscriberModal
59577
59756
  }
@@ -59606,7 +59785,7 @@ var ForumPage = ({
59606
59785
  onClickLink,
59607
59786
  forumId,
59608
59787
  limit,
59609
- filter: "DELETED_ONLY" /* DELETED_ONLY */
59788
+ filter: DiscussionFilter.DELETED_ONLY
59610
59789
  }
59611
59790
  )), /* @__PURE__ */ import_react392.default.createElement(
59612
59791
  ForumTable,
@@ -59614,7 +59793,7 @@ var ForumPage = ({
59614
59793
  onClickLink,
59615
59794
  forumId,
59616
59795
  limit,
59617
- filter: "EXCLUDE_DELETED" /* EXCLUDE_DELETED */
59796
+ filter: DiscussionFilter.EXCLUDE_DELETED
59618
59797
  }
59619
59798
  ), /* @__PURE__ */ import_react392.default.createElement(
59620
59799
  ForumThreadEditor,
@@ -59755,7 +59934,7 @@ var Goals = (props) => {
59755
59934
  (fileId) => {
59756
59935
  return {
59757
59936
  associateObjectId: entityId,
59758
- associateObjectType: "TableEntity" /* TableEntity */,
59937
+ associateObjectType: FileHandleAssociateType.TableEntity,
59759
59938
  fileHandleId: fileId
59760
59939
  };
59761
59940
  }
@@ -61787,7 +61966,7 @@ function ForumTopic(props) {
61787
61966
  });
61788
61967
  const { isSubscribed, isLoading, toggleSubscribed } = useSubscription(
61789
61968
  subscription.objectId,
61790
- "FORUM" /* FORUM */
61969
+ SubscriptionObjectType.FORUM
61791
61970
  );
61792
61971
  let href;
61793
61972
  if (forum) {
@@ -61813,7 +61992,7 @@ function SubscriptionItem(props) {
61813
61992
  const { threadData } = useGetThread(subscription.objectId);
61814
61993
  const { isSubscribed, isLoading, toggleSubscribed } = useSubscription(
61815
61994
  subscription.objectId,
61816
- "THREAD" /* THREAD */
61995
+ SubscriptionObjectType.THREAD
61817
61996
  );
61818
61997
  let href;
61819
61998
  if (threadData) {
@@ -61836,9 +62015,9 @@ function SubscriptionItem(props) {
61836
62015
  function SubscriptionItem2(props) {
61837
62016
  const { subscription } = props;
61838
62017
  switch (subscription.objectType) {
61839
- case "FORUM" /* FORUM */:
62018
+ case SubscriptionObjectType.FORUM:
61840
62019
  return /* @__PURE__ */ import_react424.default.createElement(ForumTopic, { subscription });
61841
- case "THREAD" /* THREAD */:
62020
+ case SubscriptionObjectType.THREAD:
61842
62021
  return /* @__PURE__ */ import_react424.default.createElement(SubscriptionItem, { subscription });
61843
62022
  default:
61844
62023
  console.warn(
@@ -61949,13 +62128,13 @@ var sortOptions = [
61949
62128
  ];
61950
62129
  function SubscriptionPage() {
61951
62130
  const [objectType, setObjectType] = (0, import_react426.useState)(
61952
- "FORUM" /* FORUM */
62131
+ SubscriptionObjectType.FORUM
61953
62132
  );
61954
62133
  const [sortDirection, setSortDirection] = (0, import_react426.useState)(sortOptions[0]);
61955
62134
  const instanceSpecificQueryKey = (0, import_react426.useId)();
61956
62135
  const currentFilter = {
61957
62136
  objectType,
61958
- sortBy: "CREATED_ON" /* CREATED_ON */,
62137
+ sortBy: SortByType.CREATED_ON,
61959
62138
  sortDirection: sortDirection.value
61960
62139
  };
61961
62140
  const { data, hasNextPage, isFetchingNextPage, fetchNextPage } = useGetAllSubscriptions(
@@ -61987,8 +62166,8 @@ function SubscriptionPage() {
61987
62166
  textColor: "secondary",
61988
62167
  indicatorColor: "secondary"
61989
62168
  },
61990
- /* @__PURE__ */ import_react426.default.createElement(Tab_default, { value: "FORUM" /* FORUM */, label: "Project Forums" }),
61991
- /* @__PURE__ */ import_react426.default.createElement(Tab_default, { value: "THREAD" /* THREAD */, label: "Threads" })
62169
+ /* @__PURE__ */ import_react426.default.createElement(Tab_default, { value: SubscriptionObjectType.FORUM, label: "Project Forums" }),
62170
+ /* @__PURE__ */ import_react426.default.createElement(Tab_default, { value: SubscriptionObjectType.THREAD, label: "Threads" })
61992
62171
  ), /* @__PURE__ */ import_react426.default.createElement(Stack_default, { gap: 0.5 }, data?.pages.map((subscription) => /* @__PURE__ */ import_react426.default.createElement(
61993
62172
  SubscriptionItem2,
61994
62173
  {
@@ -62013,11 +62192,11 @@ function SubscriptionPage() {
62013
62192
  var import_react427 = __toESM(require("react"));
62014
62193
  var import_use_deep_compare_effect10 = require("use-deep-compare-effect");
62015
62194
  var LIST_COLUMN_TYPES = [
62016
- "BOOLEAN_LIST" /* BOOLEAN_LIST */,
62017
- "DATE_LIST" /* DATE_LIST */,
62018
- "ENTITYID_LIST" /* ENTITYID_LIST */,
62019
- "INTEGER_LIST" /* INTEGER_LIST */,
62020
- "STRING_LIST" /* STRING_LIST */
62195
+ ColumnTypeEnum.BOOLEAN_LIST,
62196
+ ColumnTypeEnum.DATE_LIST,
62197
+ ColumnTypeEnum.ENTITYID_LIST,
62198
+ ColumnTypeEnum.INTEGER_LIST,
62199
+ ColumnTypeEnum.STRING_LIST
62021
62200
  ];
62022
62201
  var SubsectionRowRenderer = ({
62023
62202
  sql,
@@ -63780,11 +63959,11 @@ var _SynapseFormSubmissionGrid = class extends import_react436.default.Component
63780
63959
  };
63781
63960
  var SynapseFormSubmissionGrid = _SynapseFormSubmissionGrid;
63782
63961
  __publicField(SynapseFormSubmissionGrid, "requestFilter", {
63783
- IN_PROGRESS: ["WAITING_FOR_SUBMISSION" /* WAITING_FOR_SUBMISSION */],
63962
+ IN_PROGRESS: [StatusEnum.WAITING_FOR_SUBMISSION],
63784
63963
  SUBMITTED: [
63785
- "SUBMITTED_WAITING_FOR_REVIEW" /* SUBMITTED_WAITING_FOR_REVIEW */,
63786
- "ACCEPTED" /* ACCEPTED */,
63787
- "REJECTED" /* REJECTED */
63964
+ StatusEnum.SUBMITTED_WAITING_FOR_REVIEW,
63965
+ StatusEnum.ACCEPTED,
63966
+ StatusEnum.REJECTED
63788
63967
  ]
63789
63968
  });
63790
63969
 
@@ -64584,7 +64763,7 @@ var UserCardListRotate = ({
64584
64763
  const { queryResult } = queryResultBundle;
64585
64764
  if (queryResult?.queryResults.rows) {
64586
64765
  const ownerIdColumnIndex = queryResult.queryResults.headers.findIndex(
64587
- (el) => el.columnType === "USERID" /* USERID */
64766
+ (el) => el.columnType === ColumnTypeEnum.USERID
64588
64767
  );
64589
64768
  const ids = queryResult.queryResults.rows.map((d) => d.values[ownerIdColumnIndex]).filter((id) => id !== null);
64590
64769
  if (mounted) {