synapse-react-client 3.0.32 → 3.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/dist/containers/CardContainer.js +3 -1
  2. package/dist/containers/CardContainer.js.map +1 -1
  3. package/dist/containers/Carousel.js +5 -2
  4. package/dist/containers/Carousel.js.map +1 -1
  5. package/dist/containers/CopyToClipboardInput.js +2 -2
  6. package/dist/containers/CopyToClipboardInput.js.map +1 -1
  7. package/dist/containers/EntityIcon.d.ts +1 -0
  8. package/dist/containers/EntityIcon.js +3 -2
  9. package/dist/containers/EntityIcon.js.map +1 -1
  10. package/dist/containers/GenericCard.d.ts +20 -9
  11. package/dist/containers/GenericCard.js +85 -93
  12. package/dist/containers/GenericCard.js.map +1 -1
  13. package/dist/containers/IconSvg.d.ts +1 -1
  14. package/dist/containers/IconSvg.js +6 -0
  15. package/dist/containers/IconSvg.js.map +1 -1
  16. package/dist/containers/MarkdownSynapse.d.ts +23 -9
  17. package/dist/containers/MarkdownSynapse.js +30 -30
  18. package/dist/containers/MarkdownSynapse.js.map +1 -1
  19. package/dist/containers/QueryContext.d.ts +1 -1
  20. package/dist/containers/QueryVisualizationWrapper.js +7 -5
  21. package/dist/containers/QueryVisualizationWrapper.js.map +1 -1
  22. package/dist/containers/QueryWrapper.js +5 -10
  23. package/dist/containers/QueryWrapper.js.map +1 -1
  24. package/dist/containers/SubsectionRowRenderer.js +5 -1
  25. package/dist/containers/SubsectionRowRenderer.js.map +1 -1
  26. package/dist/containers/SynapseNavDrawer.js +1 -1
  27. package/dist/containers/SynapseNavDrawer.js.map +1 -1
  28. package/dist/containers/TableFeedCards.js +8 -4
  29. package/dist/containers/TableFeedCards.js.map +1 -1
  30. package/dist/containers/UpsetPlot.js +3 -0
  31. package/dist/containers/UpsetPlot.js.map +1 -1
  32. package/dist/containers/UserCardList.js +7 -4
  33. package/dist/containers/UserCardList.js.map +1 -1
  34. package/dist/containers/UserCardListRotate.js +3 -1
  35. package/dist/containers/UserCardListRotate.js.map +1 -1
  36. package/dist/containers/UserCardSmall.js +18 -20
  37. package/dist/containers/UserCardSmall.js.map +1 -1
  38. package/dist/containers/dataaccess/SubmissionPage.js +6 -6
  39. package/dist/containers/dataaccess/SubmissionPage.js.map +1 -1
  40. package/dist/containers/download_list_v2/DownloadCartPage.js +10 -5
  41. package/dist/containers/download_list_v2/DownloadCartPage.js.map +1 -1
  42. package/dist/containers/entity_finder/EntityFinder.js +12 -49
  43. package/dist/containers/entity_finder/EntityFinder.js.map +1 -1
  44. package/dist/containers/entity_finder/EntityFinderHeader.d.ts +21 -0
  45. package/dist/containers/entity_finder/EntityFinderHeader.js +3 -0
  46. package/dist/containers/entity_finder/EntityFinderHeader.js.map +1 -0
  47. package/dist/containers/entity_finder/details/EntityDetailsList.d.ts +5 -2
  48. package/dist/containers/entity_finder/details/EntityDetailsList.js +3 -3
  49. package/dist/containers/entity_finder/details/EntityDetailsList.js.map +1 -1
  50. package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js +1 -1
  51. package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js.map +1 -1
  52. package/dist/containers/entity_finder/details/configurations/FavoritesDetails.js +1 -1
  53. package/dist/containers/entity_finder/details/configurations/FavoritesDetails.js.map +1 -1
  54. package/dist/containers/entity_finder/details/configurations/ProjectListDetails.d.ts +3 -0
  55. package/dist/containers/entity_finder/details/configurations/ProjectListDetails.js +7 -3
  56. package/dist/containers/entity_finder/details/configurations/ProjectListDetails.js.map +1 -1
  57. package/dist/containers/entity_finder/details/configurations/SearchDetails.js +13 -1
  58. package/dist/containers/entity_finder/details/configurations/SearchDetails.js.map +1 -1
  59. package/dist/containers/entity_finder/details/view/DetailsView.d.ts +4 -4
  60. package/dist/containers/entity_finder/details/view/DetailsView.js +2 -2
  61. package/dist/containers/entity_finder/details/view/DetailsView.js.map +1 -1
  62. package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.js +2 -2
  63. package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.js.map +1 -1
  64. package/dist/containers/entity_finder/tree/EntityTree.js +3 -3
  65. package/dist/containers/entity_finder/tree/EntityTree.js.map +1 -1
  66. package/dist/containers/entity_finder/tree/VirtualizedTree.d.ts +3 -3
  67. package/dist/containers/entity_finder/tree/VirtualizedTree.js +26 -3
  68. package/dist/containers/entity_finder/tree/VirtualizedTree.js.map +1 -1
  69. package/dist/containers/entity_finder/useEntitySelection.d.ts +4 -0
  70. package/dist/containers/entity_finder/useEntitySelection.js +56 -0
  71. package/dist/containers/entity_finder/useEntitySelection.js.map +1 -0
  72. package/dist/containers/evaluation_queues/CalendarWithIconFormGroup.js +5 -2
  73. package/dist/containers/evaluation_queues/CalendarWithIconFormGroup.js.map +1 -1
  74. package/dist/containers/evaluation_queues/EvaluationCard.js +4 -4
  75. package/dist/containers/evaluation_queues/EvaluationCard.js.map +1 -1
  76. package/dist/containers/evaluation_queues/EvaluationEditor.js +15 -15
  77. package/dist/containers/evaluation_queues/EvaluationEditor.js.map +1 -1
  78. package/dist/containers/evaluation_queues/EvaluationEditorPage.js +1 -1
  79. package/dist/containers/evaluation_queues/EvaluationEditorPage.js.map +1 -1
  80. package/dist/containers/evaluation_queues/EvaluationRoundEditor.js +1 -1
  81. package/dist/containers/evaluation_queues/EvaluationRoundEditor.js.map +1 -1
  82. package/dist/containers/evaluation_queues/EvaluationRoundEditorDropdown.js +1 -1
  83. package/dist/containers/evaluation_queues/EvaluationRoundEditorDropdown.js.map +1 -1
  84. package/dist/containers/evaluation_queues/round_limits/EvaluationRoundLimitOptionsList.js +1 -1
  85. package/dist/containers/evaluation_queues/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  86. package/dist/containers/home_page/featured_tools/FeaturedToolsList.js +10 -5
  87. package/dist/containers/home_page/featured_tools/FeaturedToolsList.js.map +1 -1
  88. package/dist/containers/home_page/goals/Goals.js +9 -1
  89. package/dist/containers/home_page/goals/Goals.js.map +1 -1
  90. package/dist/containers/home_page/programs/Programs.js +13 -6
  91. package/dist/containers/home_page/programs/Programs.js.map +1 -1
  92. package/dist/containers/home_page/project_view_carousel/ProjectViewCarousel.js +17 -5
  93. package/dist/containers/home_page/project_view_carousel/ProjectViewCarousel.js.map +1 -1
  94. package/dist/containers/home_page/resources/Resources.js +3 -0
  95. package/dist/containers/home_page/resources/Resources.js.map +1 -1
  96. package/dist/containers/oauth/CreateOAuthClient.d.ts +12 -0
  97. package/dist/containers/oauth/CreateOAuthClient.js +204 -0
  98. package/dist/containers/oauth/CreateOAuthClient.js.map +1 -0
  99. package/dist/containers/oauth/OAuthManagement.d.ts +2 -0
  100. package/dist/containers/oauth/OAuthManagement.js +128 -0
  101. package/dist/containers/oauth/OAuthManagement.js.map +1 -0
  102. package/dist/containers/personal_access_token/AccessTokenPage.js +11 -39
  103. package/dist/containers/personal_access_token/AccessTokenPage.js.map +1 -1
  104. package/dist/containers/personal_access_token/CreateAccessTokenModal.js +4 -4
  105. package/dist/containers/personal_access_token/CreateAccessTokenModal.js.map +1 -1
  106. package/dist/containers/provenance/ActivityNodeLabel.d.ts +3 -0
  107. package/dist/containers/provenance/ActivityNodeLabel.js +27 -0
  108. package/dist/containers/provenance/ActivityNodeLabel.js.map +1 -0
  109. package/dist/containers/provenance/EntityNodeLabel.d.ts +3 -0
  110. package/dist/containers/provenance/EntityNodeLabel.js +29 -0
  111. package/dist/containers/provenance/EntityNodeLabel.js.map +1 -0
  112. package/dist/containers/provenance/EntityPlaceholderNodeLabel.d.ts +6 -0
  113. package/dist/containers/provenance/EntityPlaceholderNodeLabel.js +23 -0
  114. package/dist/containers/provenance/EntityPlaceholderNodeLabel.js.map +1 -0
  115. package/dist/containers/provenance/ExpandGraphNodeLabel.d.ts +7 -0
  116. package/dist/containers/provenance/ExpandGraphNodeLabel.js +18 -0
  117. package/dist/containers/provenance/ExpandGraphNodeLabel.js.map +1 -0
  118. package/dist/containers/provenance/ExternalGraphNodeLabel.d.ts +3 -0
  119. package/dist/containers/provenance/ExternalGraphNodeLabel.js +16 -0
  120. package/dist/containers/provenance/ExternalGraphNodeLabel.js.map +1 -0
  121. package/dist/containers/provenance/ProvenanceEntityIcon.d.ts +6 -0
  122. package/dist/containers/provenance/ProvenanceEntityIcon.js +87 -0
  123. package/dist/containers/provenance/ProvenanceEntityIcon.js.map +1 -0
  124. package/dist/containers/provenance/ProvenanceExternalIcon.d.ts +5 -0
  125. package/dist/containers/provenance/ProvenanceExternalIcon.js +26 -0
  126. package/dist/containers/provenance/ProvenanceExternalIcon.js.map +1 -0
  127. package/dist/containers/provenance/ProvenanceGraph.d.ts +12 -0
  128. package/dist/containers/provenance/ProvenanceGraph.js +309 -0
  129. package/dist/containers/provenance/ProvenanceGraph.js.map +1 -0
  130. package/dist/containers/provenance/ProvenanceGraphUtils.d.ts +66 -0
  131. package/dist/containers/provenance/ProvenanceGraphUtils.js +175 -0
  132. package/dist/containers/provenance/ProvenanceGraphUtils.js.map +1 -0
  133. package/dist/containers/provenance/ProvenanceUtils.d.ts +32 -0
  134. package/dist/containers/provenance/ProvenanceUtils.js +145 -0
  135. package/dist/containers/provenance/ProvenanceUtils.js.map +1 -0
  136. package/dist/containers/provenance/UndefinedNodeLabel.d.ts +2 -0
  137. package/dist/containers/provenance/UndefinedNodeLabel.js +14 -0
  138. package/dist/containers/provenance/UndefinedNodeLabel.js.map +1 -0
  139. package/dist/containers/row_renderers/utils/CardFooter.js +1 -1
  140. package/dist/containers/row_renderers/utils/CardFooter.js.map +1 -1
  141. package/dist/containers/synapse_form_wrapper/SynapseFormUtils.d.ts +6 -0
  142. package/dist/containers/synapse_form_wrapper/SynapseFormUtils.js +43 -0
  143. package/dist/containers/synapse_form_wrapper/SynapseFormUtils.js.map +1 -0
  144. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.d.ts +0 -4
  145. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js +14 -45
  146. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js.map +1 -1
  147. package/dist/containers/synapse_table_functions/SynapseTableCell.d.ts +2 -2
  148. package/dist/containers/synapse_table_functions/SynapseTableCell.js +3 -1
  149. package/dist/containers/synapse_table_functions/SynapseTableCell.js.map +1 -1
  150. package/dist/containers/table/SynapseTable.d.ts +0 -7
  151. package/dist/containers/table/SynapseTable.js +4 -21
  152. package/dist/containers/table/SynapseTable.js.map +1 -1
  153. package/dist/containers/table/TablePagination.js +7 -2
  154. package/dist/containers/table/TablePagination.js.map +1 -1
  155. package/dist/containers/table/TopLevelControls.js +1 -1
  156. package/dist/containers/table/TopLevelControls.js.map +1 -1
  157. package/dist/containers/table/datasets/DatasetItemsEditor.d.ts +18 -7
  158. package/dist/containers/table/datasets/DatasetItemsEditor.js +95 -28
  159. package/dist/containers/table/datasets/DatasetItemsEditor.js.map +1 -1
  160. package/dist/containers/table/table-top/ColumnSelection.js +2 -6
  161. package/dist/containers/table/table-top/ColumnSelection.js.map +1 -1
  162. package/dist/containers/trash/TrashCanList.d.ts +2 -0
  163. package/dist/containers/trash/TrashCanList.js +144 -0
  164. package/dist/containers/trash/TrashCanList.js.map +1 -0
  165. package/dist/containers/widgets/Checkbox.d.ts +1 -0
  166. package/dist/containers/widgets/Checkbox.js +4 -4
  167. package/dist/containers/widgets/Checkbox.js.map +1 -1
  168. package/dist/containers/widgets/ElementWithTooltip.js +2 -8
  169. package/dist/containers/widgets/ElementWithTooltip.js.map +1 -1
  170. package/dist/containers/widgets/Range.d.ts +1 -1
  171. package/dist/containers/widgets/Range.js +2 -2
  172. package/dist/containers/widgets/Range.js.map +1 -1
  173. package/dist/containers/widgets/SynapseImage.d.ts +1 -1
  174. package/dist/containers/widgets/facet-nav/FacetNavPanel.js +9 -1
  175. package/dist/containers/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  176. package/dist/containers/widgets/query-filter/RangeFacetFilter.d.ts +1 -1
  177. package/dist/containers/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  178. package/dist/index.d.ts +2 -1
  179. package/dist/index.js +4 -2
  180. package/dist/index.js.map +1 -1
  181. package/dist/style/base/_core.scss +1 -2
  182. package/dist/style/bootstrap4_backports/_base-import.scss +3 -0
  183. package/dist/style/bootstrap4_backports/_overrides.scss +7 -2
  184. package/dist/style/components/_all.scss +2 -1
  185. package/dist/style/components/_copy-to-clipboard.scss +2 -0
  186. package/dist/style/components/_dataset-editor.scss +4 -1
  187. package/dist/style/components/_oauth-editor.scss +33 -0
  188. package/dist/style/components/_provenance.scss +71 -0
  189. package/dist/style/components/entity_finder/_tree-node-browse.scss +2 -1
  190. package/dist/style/components/entity_finder/_tree-view.scss +0 -3
  191. package/dist/style/main.css +119 -71
  192. package/dist/umd/synapse-react-client.development.css +120 -71
  193. package/dist/umd/synapse-react-client.development.css.map +2 -2
  194. package/dist/umd/synapse-react-client.development.js +79555 -64473
  195. package/dist/umd/synapse-react-client.development.js.map +3 -3
  196. package/dist/umd/synapse-react-client.production.min.css +1 -1
  197. package/dist/umd/synapse-react-client.production.min.js +96 -93
  198. package/dist/umd.index.d.ts +6 -3
  199. package/dist/umd.index.js +7 -3
  200. package/dist/umd.index.js.map +1 -1
  201. package/dist/utils/APIConstants.d.ts +8 -0
  202. package/dist/utils/APIConstants.js +19 -1
  203. package/dist/utils/APIConstants.js.map +1 -1
  204. package/dist/utils/SynapseClient.d.ts +48 -13
  205. package/dist/utils/SynapseClient.js +250 -208
  206. package/dist/utils/SynapseClient.js.map +1 -1
  207. package/dist/utils/functions/EntityTypeUtils.d.ts +3 -1
  208. package/dist/utils/functions/EntityTypeUtils.js +37 -7
  209. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  210. package/dist/utils/hooks/SynapseAPI/index.d.ts +1 -0
  211. package/dist/utils/hooks/SynapseAPI/index.js +1 -0
  212. package/dist/utils/hooks/SynapseAPI/index.js.map +1 -1
  213. package/dist/utils/hooks/SynapseAPI/oauth/index.d.ts +1 -0
  214. package/dist/utils/hooks/SynapseAPI/oauth/index.js +5 -0
  215. package/dist/utils/hooks/SynapseAPI/oauth/index.js.map +1 -0
  216. package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.d.ts +9 -0
  217. package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.js +79 -0
  218. package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.js.map +1 -0
  219. package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.d.ts +6 -0
  220. package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.js +81 -0
  221. package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.js.map +1 -0
  222. package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.d.ts +4 -0
  223. package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.js +21 -0
  224. package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.js.map +1 -0
  225. package/dist/utils/hooks/useGetInfoFromIds.js +2 -1
  226. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  227. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.d.ts +20 -22
  228. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js +28 -32
  229. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
  230. package/dist/utils/synapseTypes/Entity/Entity.d.ts +8 -5
  231. package/dist/utils/synapseTypes/Entity/Entity.js +5 -1
  232. package/dist/utils/synapseTypes/Entity/Entity.js.map +1 -1
  233. package/dist/utils/synapseTypes/EntityHeader.d.ts +2 -0
  234. package/dist/utils/synapseTypes/OAuthClient.d.ts +39 -0
  235. package/dist/utils/synapseTypes/OAuthClient.js +12 -0
  236. package/dist/utils/synapseTypes/OAuthClient.js.map +1 -0
  237. package/dist/utils/synapseTypes/Provenance/Provenance.d.ts +41 -0
  238. package/dist/utils/synapseTypes/Provenance/Provenance.js +6 -0
  239. package/dist/utils/synapseTypes/Provenance/Provenance.js.map +1 -0
  240. package/dist/utils/synapseTypes/Table/Dataset.d.ts +13 -9
  241. package/dist/utils/synapseTypes/Table/Dataset.js.map +1 -1
  242. package/dist/utils/synapseTypes/Table/QueryResult.d.ts +1 -1
  243. package/dist/utils/synapseTypes/TrashedEntity.d.ts +17 -0
  244. package/dist/utils/synapseTypes/TrashedEntity.js +3 -0
  245. package/dist/utils/synapseTypes/TrashedEntity.js.map +1 -0
  246. package/dist/utils/synapseTypes/VersionInfo.d.ts +2 -2
  247. package/dist/utils/synapseTypes/index.d.ts +1 -0
  248. package/dist/utils/synapseTypes/index.js +1 -0
  249. package/dist/utils/synapseTypes/index.js.map +1 -1
  250. package/package.json +10 -4
  251. package/dist/containers/HasAccess.d.ts +0 -85
  252. package/dist/containers/HasAccess.js +0 -353
  253. package/dist/containers/HasAccess.js.map +0 -1
@@ -53,6 +53,7 @@ export * from './Submission';
53
53
  export * from './SubmissionContributor';
54
54
  export * from './SynapseVersion';
55
55
  export * from './Table';
56
+ export * from './TrashedEntity';
56
57
  export * from './UserBundle';
57
58
  export * from './UserEntityPermissions';
58
59
  export * from './UserGroupHeader';
@@ -58,6 +58,7 @@ tslib_1.__exportStar(require("./Submission"), exports);
58
58
  tslib_1.__exportStar(require("./SubmissionContributor"), exports);
59
59
  tslib_1.__exportStar(require("./SynapseVersion"), exports);
60
60
  tslib_1.__exportStar(require("./Table"), exports);
61
+ tslib_1.__exportStar(require("./TrashedEntity"), exports);
61
62
  tslib_1.__exportStar(require("./UserBundle"), exports);
62
63
  tslib_1.__exportStar(require("./UserEntityPermissions"), exports);
63
64
  tslib_1.__exportStar(require("./UserGroupHeader"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/utils/synapseTypes/index.ts"],"names":[],"mappings":";;;AAAA,iBAAiB;AACjB,+DAA+D;AAC/D,2DAAgC;AAChC,+DAAoC;AACpC,8DAAmC;AACnC,8DAAmC;AACnC,wDAA6B;AAC7B,0EAA+C;AAC/C,2EAAgD;AAChD,4DAAiC;AACjC,wDAA6B;AAC7B,2DAAgC;AAChC,6DAAkC;AAClC,4DAAiC;AACjC,2EAAgD;AAChD,4EAAiD;AACjD,oEAAyC;AACzC,qEAA0C;AAC1C,2DAAgC;AAChC,qDAA0B;AAC1B,mDAAwB;AACxB,yDAA8B;AAC9B,2DAAgC;AAChC,yDAA8B;AAC9B,qDAA0B;AAC1B,gEAAqC;AACrC,uDAA4B;AAC5B,uDAA4B;AAC5B,iEAAsC;AACtC,wEAA6C;AAC7C,gEAAqC;AACrC,uDAA4B;AAC5B,kEAAuC;AACvC,8DAAmC;AACnC,uDAA4B;AAC5B,+DAAoC;AACpC,kDAAuB;AACvB,yDAA8B;AAC9B,0DAA+B;AAC/B,mEAAwC;AACxC,kEAAuC;AACvC,8DAAmC;AACnC,wEAA6C;AAC7C,uDAA4B;AAC5B,qEAA0C;AAC1C,gFAAqD;AACrD,6DAAkC;AAClC,6DAAkC;AAClC,0DAA+B;AAC/B,0DAA+B;AAC/B,2DAAgC;AAChC,mEAAwC;AACxC,uDAA4B;AAC5B,uDAA4B;AAC5B,kEAAuC;AACvC,2DAAgC;AAChC,kDAAuB;AACvB,uDAA4B;AAC5B,kEAAuC;AACvC,4DAAiC;AACjC,wEAA6C;AAC7C,2DAAgC;AAChC,wDAA6B;AAC7B,mEAAwC;AACxC,qDAA0B;AAC1B,wDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/utils/synapseTypes/index.ts"],"names":[],"mappings":";;;AAAA,iBAAiB;AACjB,+DAA+D;AAC/D,2DAAgC;AAChC,+DAAoC;AACpC,8DAAmC;AACnC,8DAAmC;AACnC,wDAA6B;AAC7B,0EAA+C;AAC/C,2EAAgD;AAChD,4DAAiC;AACjC,wDAA6B;AAC7B,2DAAgC;AAChC,6DAAkC;AAClC,4DAAiC;AACjC,2EAAgD;AAChD,4EAAiD;AACjD,oEAAyC;AACzC,qEAA0C;AAC1C,2DAAgC;AAChC,qDAA0B;AAC1B,mDAAwB;AACxB,yDAA8B;AAC9B,2DAAgC;AAChC,yDAA8B;AAC9B,qDAA0B;AAC1B,gEAAqC;AACrC,uDAA4B;AAC5B,uDAA4B;AAC5B,iEAAsC;AACtC,wEAA6C;AAC7C,gEAAqC;AACrC,uDAA4B;AAC5B,kEAAuC;AACvC,8DAAmC;AACnC,uDAA4B;AAC5B,+DAAoC;AACpC,kDAAuB;AACvB,yDAA8B;AAC9B,0DAA+B;AAC/B,mEAAwC;AACxC,kEAAuC;AACvC,8DAAmC;AACnC,wEAA6C;AAC7C,uDAA4B;AAC5B,qEAA0C;AAC1C,gFAAqD;AACrD,6DAAkC;AAClC,6DAAkC;AAClC,0DAA+B;AAC/B,0DAA+B;AAC/B,2DAAgC;AAChC,mEAAwC;AACxC,uDAA4B;AAC5B,uDAA4B;AAC5B,kEAAuC;AACvC,2DAAgC;AAChC,kDAAuB;AACvB,0DAA+B;AAC/B,uDAA4B;AAC5B,kEAAuC;AACvC,4DAAiC;AACjC,wEAA6C;AAC7C,2DAAgC;AAChC,wDAA6B;AAC7B,mEAAwC;AACxC,qDAA0B;AAC1B,wDAA6B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synapse-react-client",
3
- "version": "3.0.32",
3
+ "version": "3.0.35",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -22,7 +22,7 @@
22
22
  "@material-ui/lab": "^4.0.0-alpha.57",
23
23
  "@popperjs/core": "^2.10.2",
24
24
  "@rjsf/core": "^4.0.1",
25
- "@sage-bionetworks/react-base-table": "^1.12.3",
25
+ "@sage-bionetworks/react-base-table": "^1.13.2",
26
26
  "@sage-bionetworks/rjsf-core": "^3.1.4",
27
27
  "@types/ua-parser-js": "^0.7.36",
28
28
  "@upsetjs/react": "^1.6.2",
@@ -30,6 +30,7 @@
30
30
  "bootstrap": "^4.6.1",
31
31
  "classnames": "^2.3.1",
32
32
  "column-resizer": "^1.3.5",
33
+ "dagre": "^0.8.5",
33
34
  "downshift": "^6.1.2",
34
35
  "gh-pages": "^3.2.3",
35
36
  "immutable": "4.1.0",
@@ -59,6 +60,7 @@
59
60
  "react-compound-slider": "^2.5.0",
60
61
  "react-datetime": "^3.0.4",
61
62
  "react-error-boundary": "^3.1.1",
63
+ "react-flow-renderer": "^10.3.11",
62
64
  "react-hot-toast": "^2.1.0",
63
65
  "react-intersection-observer": "^8.31.0",
64
66
  "react-mailchimp-subscribe": "^2.1.0",
@@ -109,6 +111,7 @@
109
111
  "@esbuild-plugins/node-globals-polyfill": "^0.1.1",
110
112
  "@esbuild-plugins/node-modules-polyfill": "^0.1.4",
111
113
  "@fal-works/esbuild-plugin-global-externals": "^2.1.2",
114
+ "@juggle/resize-observer": "^3.3.1",
112
115
  "@sage-bionetworks/esbuild-plugin-svgr": "^0.0.4",
113
116
  "@storybook/addon-actions": "^6.5.9",
114
117
  "@storybook/addon-essentials": "^6.5.9",
@@ -123,9 +126,10 @@
123
126
  "@testing-library/react-hooks": "^7.0.1",
124
127
  "@testing-library/user-event": "13.0.16",
125
128
  "@types/brainhubeu__react-carousel": "1.15.0",
129
+ "@types/dagre": "^0.7.47",
126
130
  "@types/enzyme": "^3.10.8",
127
131
  "@types/enzyme-adapter-react-16": "^1.0.5",
128
- "@types/jest": "^28.1.3",
132
+ "@types/jest": "^28.1.5",
129
133
  "@types/jest-when": "^3.5.0",
130
134
  "@types/jquery": "^3.5.14",
131
135
  "@types/katex": "^0.10.2",
@@ -176,7 +180,7 @@
176
180
  "https-browserify": "^1.0.0",
177
181
  "husky": ">=6",
178
182
  "identity-obj-proxy": "^3.0.0",
179
- "jest": "^28.1.1",
183
+ "jest": "^28.1.3",
180
184
  "jest-environment-jsdom": "^28.1.1",
181
185
  "jest-mock-promise": "^1.1.10",
182
186
  "jest-when": "^3.5.1",
@@ -190,6 +194,7 @@
190
194
  "prettier": "^2.6.2",
191
195
  "process": "^0.11.10",
192
196
  "react-select-event": "^5.3.0",
197
+ "react-test-renderer": "16.14.0",
193
198
  "sinon": "^7.2.2",
194
199
  "stream-browserify": "^3.0.0",
195
200
  "stream-http": "^3.2.0",
@@ -198,6 +203,7 @@
198
203
  "typescript": "4.7.4",
199
204
  "vite": "^2.9.12",
200
205
  "vite-plugin-externals": "^0.5.0",
206
+ "weak-napi": "^2.0.2",
201
207
  "yarn": "^1.22.17"
202
208
  },
203
209
  "scripts": {
@@ -1,85 +0,0 @@
1
- /**
2
- * To be reworked so that HasAccess component doesn't need to request file handle information
3
- * because that information can be obtained in the parent component
4
- *
5
- * For example in SynapseTable.tsx, the variable "fileEntityHandle" is available
6
- * for each row Synapse id to store file handle information.
7
- * If the row Synapse id doesn't return a file handle, "fileEntityHandle" will contain
8
- * an object { success:boolean = false , message:string }
9
- * If the row Synapse id returns a file handle, "fileEntityHandle" will contain
10
- * an object { success:boolean = true, data: {fileEntity, fileHandle} }
11
- *
12
- * To set up "fileEntityHandle", the parent component should import "FileEntityHandleQueryWrapper"
13
- * and pass a callback function to "FileEntityHandleQueryWrapper" so that once the file handle information
14
- * is returned, the success for failure result can be saved in the parent state.
15
- * See SynapseTable.tsx as an example.
16
- */
17
- import * as React from 'react';
18
- import { FileHandle, RestrictionInformationResponse, AccessRequirement } from '../utils/synapseTypes/';
19
- import { AccessRequirementListProps } from './access_requirement_list/AccessRequirementList';
20
- import { Icon } from './IconSvg';
21
- export declare type HasAccessProps = {
22
- onHide?: () => void;
23
- fileHandle?: FileHandle;
24
- entityId: string;
25
- isInDownloadList?: boolean;
26
- entityVersionNumber?: string;
27
- forceSamePage?: boolean;
28
- set_arPropsFromHasAccess?: (props: AccessRequirementListProps) => void;
29
- className?: string;
30
- };
31
- declare type HasAccessState = {
32
- restrictionInformation?: RestrictionInformationResponse;
33
- fileHandleDownloadType?: FileHandleDownloadTypeEnum;
34
- displayAccessRequirement: boolean;
35
- accessRequirements?: Array<AccessRequirement>;
36
- isGettingRestrictionInformation: boolean;
37
- isGettingEntityInformation: boolean;
38
- errorOnGetRestrictionInformation: boolean;
39
- };
40
- export declare const GIGABYTE_SIZE: number;
41
- export declare enum FileHandleDownloadTypeEnum {
42
- ExternalCloudFile = "ExternalCloudFile",
43
- ExternalFileLink = "ExternalFileLink",
44
- TooLarge = "TooLarge",
45
- Accessible = "Accessible",
46
- AccessBlockedByRestriction = "AccessBlockedByRestriction",
47
- AccessBlockedByACL = "AccessBlockedByACL",
48
- AccessBlockedToAnonymous = "AccessBlockedToAnonymous",
49
- NoFileHandle = "NoFileHandle"
50
- }
51
- export declare const getDownloadTypeForFileHandle: (fileHandle: FileHandle, isInDownloadList?: boolean) => FileHandleDownloadTypeEnum.ExternalCloudFile | FileHandleDownloadTypeEnum.ExternalFileLink | FileHandleDownloadTypeEnum.TooLarge | FileHandleDownloadTypeEnum.Accessible;
52
- /**
53
- * HasAccess shows if the user has access to the file or not.
54
- *
55
- * The component's behavior changes whether it's passed in a FileHandle or not.
56
- * If passed a file handle then it will give more detailed information about the download.
57
- *
58
- * @export
59
- * @class HasAccess
60
- * @extends {React.Component<HasAccessProps, HasAccessState>}
61
- */
62
- export default class HasAccess extends React.Component<HasAccessProps, HasAccessState> {
63
- static tooltipText: {
64
- AccessBlockedToAnonymous: string;
65
- AccessBlockedByRestriction: string;
66
- AccessBlockedByACL: string;
67
- TooLarge: string;
68
- ExternalFileLink: string;
69
- ExternalCloudFile: string;
70
- };
71
- static contextType: React.Context<import("../utils/SynapseContext").SynapseContextType | undefined>;
72
- constructor(props: HasAccessProps);
73
- componentDidUpdate(prevProps: HasAccessProps): void;
74
- componentDidMount(): void;
75
- refresh: (forceRefresh?: boolean) => void;
76
- updateStateFileHandleAccessBlocked: () => void;
77
- getFileEntityFileHandle: (forceRefresh?: boolean) => Promise<void> | undefined;
78
- getRestrictionInformation: (forceRefresh?: boolean) => Promise<void> | undefined;
79
- renderIconSvg(icon: Icon, color: string): JSX.Element;
80
- renderIcon: (downloadType: FileHandleDownloadTypeEnum | string, restrictionInformation?: RestrictionInformationResponse) => JSX.Element;
81
- handleGetAccess: () => void;
82
- renderARsLink: () => JSX.Element;
83
- render(): JSX.Element;
84
- }
85
- export {};
@@ -1,353 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.getDownloadTypeForFileHandle = exports.FileHandleDownloadTypeEnum = exports.GIGABYTE_SIZE = void 0;
5
- var tslib_1 = require("tslib");
6
- /**
7
- * To be reworked so that HasAccess component doesn't need to request file handle information
8
- * because that information can be obtained in the parent component
9
- *
10
- * For example in SynapseTable.tsx, the variable "fileEntityHandle" is available
11
- * for each row Synapse id to store file handle information.
12
- * If the row Synapse id doesn't return a file handle, "fileEntityHandle" will contain
13
- * an object { success:boolean = false , message:string }
14
- * If the row Synapse id returns a file handle, "fileEntityHandle" will contain
15
- * an object { success:boolean = true, data: {fileEntity, fileHandle} }
16
- *
17
- * To set up "fileEntityHandle", the parent component should import "FileEntityHandleQueryWrapper"
18
- * and pass a callback function to "FileEntityHandleQueryWrapper" so that once the file handle information
19
- * is returned, the success for failure result can be saved in the parent state.
20
- * See SynapseTable.tsx as an example.
21
- */
22
- var React = tslib_1.__importStar(require("react"));
23
- var utils_1 = require("../utils");
24
- var getEndpoint_1 = require("../utils/functions/getEndpoint");
25
- var synapseTypes_1 = require("../utils/synapseTypes/");
26
- var CloudProviderFileHandle_1 = require("../utils/synapseTypes/CloudProviderFileHandle");
27
- var SynapseTableConstants_1 = require("./table/SynapseTableConstants");
28
- var AccessRequirementList_1 = tslib_1.__importStar(require("./access_requirement_list/AccessRequirementList"));
29
- var SynapseConstants_1 = require("../utils/SynapseConstants");
30
- var SynapseContext_1 = require("../utils/SynapseContext");
31
- var IconSvg_1 = tslib_1.__importDefault(require("./IconSvg"));
32
- var useTheme_1 = require("../utils/hooks/useTheme");
33
- var Tooltip_1 = tslib_1.__importDefault(require("../utils/tooltip/Tooltip"));
34
- exports.GIGABYTE_SIZE = Math.pow(2, 30);
35
- var FileHandleDownloadTypeEnum;
36
- (function (FileHandleDownloadTypeEnum) {
37
- FileHandleDownloadTypeEnum["ExternalCloudFile"] = "ExternalCloudFile";
38
- FileHandleDownloadTypeEnum["ExternalFileLink"] = "ExternalFileLink";
39
- FileHandleDownloadTypeEnum["TooLarge"] = "TooLarge";
40
- FileHandleDownloadTypeEnum["Accessible"] = "Accessible";
41
- FileHandleDownloadTypeEnum["AccessBlockedByRestriction"] = "AccessBlockedByRestriction";
42
- FileHandleDownloadTypeEnum["AccessBlockedByACL"] = "AccessBlockedByACL";
43
- FileHandleDownloadTypeEnum["AccessBlockedToAnonymous"] = "AccessBlockedToAnonymous";
44
- FileHandleDownloadTypeEnum["NoFileHandle"] = "NoFileHandle";
45
- })(FileHandleDownloadTypeEnum = exports.FileHandleDownloadTypeEnum || (exports.FileHandleDownloadTypeEnum = {}));
46
- var getDownloadTypeForFileHandle = function (fileHandle, isInDownloadList) {
47
- if (fileHandle && !isInDownloadList) {
48
- return FileHandleDownloadTypeEnum.Accessible;
49
- }
50
- var concreteType = fileHandle.concreteType, contentSize = fileHandle.contentSize;
51
- // check if it's too large
52
- if (contentSize >= exports.GIGABYTE_SIZE) {
53
- return FileHandleDownloadTypeEnum.TooLarge;
54
- }
55
- // check if it's a google cloud file handle
56
- if (concreteType ===
57
- CloudProviderFileHandle_1.CloudProviderFileHandleConcreteTypeEnum.GoogleCloudFileHandle) {
58
- return FileHandleDownloadTypeEnum.ExternalCloudFile;
59
- }
60
- // check if it's an external file handle
61
- if ((0, synapseTypes_1.implementsExternalFileHandleInterface)(fileHandle)) {
62
- return FileHandleDownloadTypeEnum.ExternalFileLink;
63
- }
64
- // otherwise its available
65
- return FileHandleDownloadTypeEnum.Accessible;
66
- };
67
- exports.getDownloadTypeForFileHandle = getDownloadTypeForFileHandle;
68
- /**
69
- * HasAccess shows if the user has access to the file or not.
70
- *
71
- * The component's behavior changes whether it's passed in a FileHandle or not.
72
- * If passed a file handle then it will give more detailed information about the download.
73
- *
74
- * @export
75
- * @class HasAccess
76
- * @extends {React.Component<HasAccessProps, HasAccessState>}
77
- */
78
- var HasAccess = /** @class */ (function (_super) {
79
- tslib_1.__extends(HasAccess, _super);
80
- function HasAccess(props) {
81
- var _this = _super.call(this, props) || this;
82
- _this.refresh = function (forceRefresh) {
83
- if (_this.state.isGettingEntityInformation ||
84
- _this.state.isGettingRestrictionInformation ||
85
- _this.state.errorOnGetRestrictionInformation) {
86
- return;
87
- }
88
- _this.getRestrictionInformation(forceRefresh);
89
- _this.getFileEntityFileHandle(forceRefresh);
90
- };
91
- _this.updateStateFileHandleAccessBlocked = function () {
92
- var fileHandleDownloadType = _this.context.accessToken
93
- ? FileHandleDownloadTypeEnum.AccessBlockedByACL
94
- : FileHandleDownloadTypeEnum.AccessBlockedToAnonymous;
95
- _this.setState({
96
- fileHandleDownloadType: fileHandleDownloadType,
97
- });
98
- };
99
- _this.getFileEntityFileHandle = function (forceRefresh) {
100
- var _a = _this.props, entityId = _a.entityId, entityVersionNumber = _a.entityVersionNumber, isInDownloadList = _a.isInDownloadList, fileHandle = _a.fileHandle;
101
- if (_this.state.fileHandleDownloadType && !forceRefresh) {
102
- // already know the downloadType
103
- return;
104
- }
105
- if (fileHandle) {
106
- var fileHandleDownloadType = (0, exports.getDownloadTypeForFileHandle)(fileHandle, isInDownloadList);
107
- _this.setState({
108
- fileHandleDownloadType: fileHandleDownloadType,
109
- });
110
- return;
111
- }
112
- _this.setState({
113
- isGettingEntityInformation: true,
114
- });
115
- // fileHandle was not passed to us, ask for it.
116
- // is this a FileEntity?
117
- return utils_1.SynapseClient.getEntity(_this.context.accessToken, entityId, entityVersionNumber)
118
- .then(function (entity) {
119
- if (entity.hasOwnProperty('dataFileHandleId')) {
120
- // looks like a FileEntity, get the FileHandle
121
- return utils_1.SynapseClient.getFileResult(entity, _this.context.accessToken, true).then(function (fileHandle) {
122
- var fileHandleDownloadType = (0, exports.getDownloadTypeForFileHandle)(fileHandle.fileHandle, isInDownloadList);
123
- _this.setState({
124
- fileHandleDownloadType: fileHandleDownloadType,
125
- isGettingEntityInformation: false,
126
- });
127
- });
128
- }
129
- else {
130
- // entity looks like something else.
131
- _this.setState({
132
- fileHandleDownloadType: FileHandleDownloadTypeEnum.NoFileHandle,
133
- isGettingEntityInformation: false,
134
- });
135
- return Promise.resolve();
136
- }
137
- })
138
- .catch(function (err) {
139
- // this could be a self-imposed error or one from the backend, only log the latter
140
- if (err.reason) {
141
- console.error('Error on get Entity = ', err);
142
- }
143
- // could not get entity
144
- _this.updateStateFileHandleAccessBlocked();
145
- _this.setState({
146
- isGettingEntityInformation: false,
147
- });
148
- });
149
- };
150
- _this.getRestrictionInformation = function (forceRefresh) {
151
- var entityId = _this.props.entityId;
152
- if (_this.state.restrictionInformation && !forceRefresh) {
153
- return;
154
- }
155
- _this.setState({
156
- isGettingRestrictionInformation: true,
157
- });
158
- var request = {
159
- restrictableObjectType: synapseTypes_1.RestrictableObjectType.ENTITY,
160
- objectId: entityId,
161
- };
162
- return utils_1.SynapseClient.getRestrictionInformation(request, _this.context.accessToken)
163
- .then(function (restrictionInformation) {
164
- _this.setState({
165
- restrictionInformation: restrictionInformation,
166
- });
167
- })
168
- .catch(function (err) {
169
- console.error('Error on getRestrictionInformation. This should not happen: ', err);
170
- _this.setState({
171
- errorOnGetRestrictionInformation: true,
172
- });
173
- })
174
- .finally(function () {
175
- _this.setState({
176
- isGettingRestrictionInformation: false,
177
- });
178
- });
179
- };
180
- _this.renderIcon = function (downloadType, restrictionInformation) {
181
- // if there are any access restrictions
182
- if (restrictionInformation === null || restrictionInformation === void 0 ? void 0 : restrictionInformation.hasUnmetAccessRequirement) {
183
- return (React.createElement(useTheme_1.ThemeContext.Consumer, null, function (theme) { return _this.renderIconSvg('accessClosed', theme.colors.warning); }));
184
- }
185
- switch (downloadType) {
186
- // fileHandle available
187
- case FileHandleDownloadTypeEnum.ExternalFileLink:
188
- case FileHandleDownloadTypeEnum.ExternalCloudFile:
189
- return (React.createElement(useTheme_1.ThemeContext.Consumer, null, function (theme) { return _this.renderIconSvg('link', theme.colors.warning); }));
190
- case FileHandleDownloadTypeEnum.TooLarge:
191
- return (React.createElement(useTheme_1.ThemeContext.Consumer, null, function (theme) { return _this.renderIconSvg('database', theme.colors.error); }));
192
- // was FileEntity, but no fileHandle was available
193
- case FileHandleDownloadTypeEnum.AccessBlockedByACL:
194
- case FileHandleDownloadTypeEnum.AccessBlockedToAnonymous:
195
- return (React.createElement(useTheme_1.ThemeContext.Consumer, null, function (theme) { return _this.renderIconSvg('accessClosed', theme.colors.warning); }));
196
- // was a FileEntity, and fileHandle was available
197
- // or was not a FileEntity, but no unmet access restrictions
198
- case FileHandleDownloadTypeEnum.Accessible:
199
- case FileHandleDownloadTypeEnum.NoFileHandle:
200
- return (React.createElement(useTheme_1.ThemeContext.Consumer, null, function (theme) { return _this.renderIconSvg('accessOpen', theme.colors.success); }));
201
- default:
202
- // nothing is rendered until access requirement is loaded
203
- return React.createElement(React.Fragment, null);
204
- }
205
- };
206
- _this.handleGetAccess = function () {
207
- var _a = _this.props, entityId = _a.entityId, set_arPropsFromHasAccess = _a.set_arPropsFromHasAccess;
208
- utils_1.SynapseClient.getAllAccessRequirements(_this.context.accessToken, entityId).then(function (requirements) {
209
- if ((0, AccessRequirementList_1.checkHasUnsportedRequirement)(requirements)) {
210
- window.open("".concat((0, getEndpoint_1.getEndpoint)(getEndpoint_1.BackendDestinationEnum.PORTAL_ENDPOINT), "#!AccessRequirements:ID=").concat(entityId, "&TYPE=ENTITY"), '_blank');
211
- }
212
- else {
213
- if (set_arPropsFromHasAccess) {
214
- set_arPropsFromHasAccess({
215
- accessRequirementFromProps: requirements,
216
- entityId: entityId,
217
- });
218
- }
219
- else {
220
- _this.setState({
221
- accessRequirements: requirements,
222
- displayAccessRequirement: true,
223
- });
224
- }
225
- }
226
- });
227
- };
228
- // Show Access Requirements
229
- _this.renderARsLink = function () {
230
- var entityId = _this.props.entityId;
231
- var _a = _this.state, restrictionInformation = _a.restrictionInformation, displayAccessRequirement = _a.displayAccessRequirement, accessRequirements = _a.accessRequirements;
232
- if (!restrictionInformation) {
233
- // loading
234
- return React.createElement(React.Fragment, null);
235
- }
236
- var hasUnmetAccessRequirement = restrictionInformation === null || restrictionInformation === void 0 ? void 0 : restrictionInformation.hasUnmetAccessRequirement;
237
- var restrictionLevel = restrictionInformation === null || restrictionInformation === void 0 ? void 0 : restrictionInformation.restrictionLevel;
238
- var linkText = '';
239
- if (hasUnmetAccessRequirement) {
240
- linkText = 'Request Access';
241
- }
242
- else if (synapseTypes_1.RestrictionLevel.OPEN === restrictionLevel) {
243
- // they need to sign in
244
- return React.createElement(React.Fragment, null);
245
- }
246
- else {
247
- linkText = 'View Terms';
248
- }
249
- return (React.createElement(React.Fragment, null,
250
- React.createElement("a", { style: {
251
- fontSize: '14px',
252
- cursor: 'pointer',
253
- marginLeft: '5px',
254
- verticalAlign: 'middle',
255
- }, className: _this.props.className, onClick: _this.handleGetAccess }, linkText),
256
- displayAccessRequirement && (React.createElement(AccessRequirementList_1.default, { entityId: entityId, accessRequirementFromProps: accessRequirements, renderAsModal: true, onHide: function () {
257
- _this.setState({ displayAccessRequirement: false });
258
- _this.refresh();
259
- } }))));
260
- };
261
- _this.getRestrictionInformation = _this.getRestrictionInformation.bind(_this);
262
- _this.getFileEntityFileHandle = _this.getFileEntityFileHandle.bind(_this);
263
- _this.updateStateFileHandleAccessBlocked =
264
- _this.updateStateFileHandleAccessBlocked.bind(_this);
265
- _this.state = {
266
- fileHandleDownloadType: undefined,
267
- displayAccessRequirement: false,
268
- accessRequirements: [],
269
- isGettingEntityInformation: false,
270
- isGettingRestrictionInformation: false,
271
- errorOnGetRestrictionInformation: false,
272
- };
273
- return _this;
274
- }
275
- HasAccess.prototype.componentDidUpdate = function (prevProps) {
276
- // SWC-5821: If the entity ID prop changes, force refresh
277
- if (prevProps.entityId != this.props.entityId) {
278
- this.refresh(true);
279
- }
280
- };
281
- HasAccess.prototype.componentDidMount = function () {
282
- this.refresh();
283
- };
284
- HasAccess.prototype.renderIconSvg = function (icon, color) {
285
- return (React.createElement(IconSvg_1.default, { options: {
286
- icon: icon,
287
- color: color,
288
- } }));
289
- };
290
- HasAccess.prototype.render = function () {
291
- var _a = this.state, restrictionInformation = _a.restrictionInformation, fileHandleDownloadType = _a.fileHandleDownloadType;
292
- if (typeof fileHandleDownloadType === 'undefined') {
293
- // note, this can't be "if (!downloadType)" since DownloadTypeEnum has a 0 value (which is falsy)
294
- // loading
295
- return React.createElement(React.Fragment, null);
296
- }
297
- var tooltipText = HasAccess.tooltipText[fileHandleDownloadType];
298
- if (fileHandleDownloadType ===
299
- FileHandleDownloadTypeEnum.AccessBlockedByACL &&
300
- (restrictionInformation === null || restrictionInformation === void 0 ? void 0 : restrictionInformation.hasUnmetAccessRequirement)) {
301
- // If blocked by ACL check if blocked by Access Restrictions, those can be taken care of
302
- // though they will then be blocked by ACL afterwards.
303
- tooltipText =
304
- HasAccess.tooltipText[FileHandleDownloadTypeEnum.AccessBlockedByRestriction];
305
- }
306
- var entityId = this.props.entityId;
307
- var icon = this.renderIcon(fileHandleDownloadType, restrictionInformation);
308
- var viewARsLink = this.renderARsLink();
309
- var iconContainer = fileHandleDownloadType ===
310
- FileHandleDownloadTypeEnum.AccessBlockedToAnonymous ? (React.createElement("button", { type: "button", className: SynapseConstants_1.SRC_SIGN_IN_CLASS, onClick: function (ev) {
311
- if (ev.isTrusted) {
312
- /*
313
- There is a tricky problem -
314
- The portals listens to click events for buttons with the class SRC_SIGN_IN_CLASS set, it listens to this event
315
- so that it can display the login modal.
316
-
317
- This button has an svg inside of it which is problematic because more often than not clicking this button will
318
- instead click that svg. The event listener in the portals will break as a result.
319
-
320
- Though the svg may get the actual click event, because of event bubbling this button will get its onClick called.
321
- Once onClick is called we can manually dispatch an event off of this button. This does pose a problem, we end up in a
322
- infinite loop because this button keeps disptaching click events, so we can use the isTrusted to recognize if onClick was
323
- triggered programmatically or by user click. Lastly, using { bubbles: true } ensures the event bubbles up to the document level.
324
-
325
- */
326
- var clickEvent = new MouseEvent('click', { bubbles: true });
327
- ev.currentTarget.dispatchEvent(clickEvent);
328
- }
329
- } }, icon)) : (React.createElement("span", { tabIndex: 0, "data-for": entityId, "data-tip": tooltipText }, icon));
330
- return (React.createElement("span", { style: { whiteSpace: 'nowrap' } },
331
- tooltipText && (React.createElement(Tooltip_1.default, { title: tooltipText, id: entityId, enterNextDelay: SynapseTableConstants_1.TOOLTIP_DELAY_SHOW, placement: "top" },
332
- React.createElement(React.Fragment, null,
333
- iconContainer,
334
- viewARsLink))),
335
- !tooltipText && (React.createElement(React.Fragment, null,
336
- icon,
337
- " ",
338
- viewARsLink))));
339
- };
340
- HasAccess.tooltipText = (_a = {},
341
- _a[FileHandleDownloadTypeEnum.AccessBlockedToAnonymous] = 'You must sign in to access this file.',
342
- // Note AccessBlockedByRestriction is never explicitly set, its value is calculated
343
- _a[FileHandleDownloadTypeEnum.AccessBlockedByRestriction] = 'You must request access to this restricted file.',
344
- _a[FileHandleDownloadTypeEnum.AccessBlockedByACL] = 'You do not have download access for this item.',
345
- _a[FileHandleDownloadTypeEnum.TooLarge] = 'This file is too large to download as a package and must be downloaded manually.',
346
- _a[FileHandleDownloadTypeEnum.ExternalFileLink] = 'This is an external link, which must be downloaded manually.',
347
- _a[FileHandleDownloadTypeEnum.ExternalCloudFile] = 'This file must be downloaded manually (e.g. a file in Google Cloud).',
348
- _a);
349
- HasAccess.contextType = SynapseContext_1.SynapseContext;
350
- return HasAccess;
351
- }(React.Component));
352
- exports.default = HasAccess;
353
- //# sourceMappingURL=HasAccess.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HasAccess.js","sourceRoot":"","sources":["../../src/lib/containers/HasAccess.tsx"],"names":[],"mappings":";;;;;AAAA;;;;;;;;;;;;;;;GAeG;AACH,mDAA8B;AAC9B,kCAAwC;AACxC,8DAGuC;AACvC,uDAU+B;AAC/B,yFAAuG;AACvG,uEAAkE;AAClE,+GAGwD;AACxD,8DAA6D;AAC7D,0DAAwD;AACxD,8DAAyC;AACzC,oDAAsD;AACtD,6EAA8C;AAuBjC,QAAA,aAAa,GAAG,SAAA,CAAC,EAAI,EAAE,CAAA,CAAA;AAEpC,IAAY,0BASX;AATD,WAAY,0BAA0B;IACpC,qEAAuC,CAAA;IACvC,mEAAqC,CAAA;IACrC,mDAAqB,CAAA;IACrB,uDAAyB,CAAA;IACzB,uFAAyD,CAAA;IACzD,uEAAyC,CAAA;IACzC,mFAAqD,CAAA;IACrD,2DAA6B,CAAA;AAC/B,CAAC,EATW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QASrC;AAEM,IAAM,4BAA4B,GAAG,UAC1C,UAAsB,EACtB,gBAA0B;IAE1B,IAAI,UAAU,IAAI,CAAC,gBAAgB,EAAE;QACnC,OAAO,0BAA0B,CAAC,UAAU,CAAA;KAC7C;IACO,IAAA,YAAY,GAAkB,UAAU,aAA5B,EAAE,WAAW,GAAK,UAAU,YAAf,CAAe;IAChD,0BAA0B;IAC1B,IAAI,WAAW,IAAI,qBAAa,EAAE;QAChC,OAAO,0BAA0B,CAAC,QAAQ,CAAA;KAC3C;IACD,2CAA2C;IAC3C,IACE,YAAY;QACZ,iEAAuC,CAAC,qBAAqB,EAC7D;QACA,OAAO,0BAA0B,CAAC,iBAAiB,CAAA;KACpD;IACD,wCAAwC;IACxC,IAAI,IAAA,oDAAqC,EAAC,UAAU,CAAC,EAAE;QACrD,OAAO,0BAA0B,CAAC,gBAAgB,CAAA;KACnD;IACD,0BAA0B;IAC1B,OAAO,0BAA0B,CAAC,UAAU,CAAA;AAC9C,CAAC,CAAA;AAzBY,QAAA,4BAA4B,gCAyBxC;AAED;;;;;;;;;GASG;AACH;IAAuC,qCAGtC;IAmBC,mBAAY,KAAqB;QAAjC,YACE,kBAAM,KAAK,CAAC,SAcb;QAaD,aAAO,GAAG,UAAC,YAAsB;YAC/B,IACE,KAAI,CAAC,KAAK,CAAC,0BAA0B;gBACrC,KAAI,CAAC,KAAK,CAAC,+BAA+B;gBAC1C,KAAI,CAAC,KAAK,CAAC,gCAAgC,EAC3C;gBACA,OAAM;aACP;YACD,KAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAA;YAC5C,KAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAA;QAC5C,CAAC,CAAA;QAED,wCAAkC,GAAG;YACnC,IAAM,sBAAsB,GAAG,KAAI,CAAC,OAAO,CAAC,WAAW;gBACrD,CAAC,CAAC,0BAA0B,CAAC,kBAAkB;gBAC/C,CAAC,CAAC,0BAA0B,CAAC,wBAAwB,CAAA;YACvD,KAAI,CAAC,QAAQ,CAAC;gBACZ,sBAAsB,wBAAA;aACvB,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,6BAAuB,GAAG,UAAC,YAAsB;YACzC,IAAA,KACJ,KAAI,CAAC,KAAK,EADJ,QAAQ,cAAA,EAAE,mBAAmB,yBAAA,EAAE,gBAAgB,sBAAA,EAAE,UAAU,gBACvD,CAAA;YAEZ,IAAI,KAAI,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,YAAY,EAAE;gBACtD,gCAAgC;gBAChC,OAAM;aACP;YACD,IAAI,UAAU,EAAE;gBACd,IAAM,sBAAsB,GAAG,IAAA,oCAA4B,EACzD,UAAU,EACV,gBAAgB,CACjB,CAAA;gBACD,KAAI,CAAC,QAAQ,CAAC;oBACZ,sBAAsB,wBAAA;iBACvB,CAAC,CAAA;gBACF,OAAM;aACP;YACD,KAAI,CAAC,QAAQ,CAAC;gBACZ,0BAA0B,EAAE,IAAI;aACjC,CAAC,CAAA;YACF,+CAA+C;YAC/C,wBAAwB;YACxB,OAAO,qBAAa,CAAC,SAAS,CAC5B,KAAI,CAAC,OAAO,CAAC,WAAW,EACxB,QAAQ,EACR,mBAAmB,CACpB;iBACE,IAAI,CAAC,UAAA,MAAM;gBACV,IAAI,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;oBAC7C,8CAA8C;oBAC9C,OAAO,qBAAa,CAAC,aAAa,CAChC,MAAoB,EACpB,KAAI,CAAC,OAAO,CAAC,WAAW,EACxB,IAAI,CACL,CAAC,IAAI,CAAC,UAAC,UAAsB;wBAC5B,IAAM,sBAAsB,GAAG,IAAA,oCAA4B,EACzD,UAAU,CAAC,UAAW,EACtB,gBAAgB,CACjB,CAAA;wBACD,KAAI,CAAC,QAAQ,CAAC;4BACZ,sBAAsB,wBAAA;4BACtB,0BAA0B,EAAE,KAAK;yBAClC,CAAC,CAAA;oBACJ,CAAC,CAAC,CAAA;iBACH;qBAAM;oBACL,oCAAoC;oBACpC,KAAI,CAAC,QAAQ,CAAC;wBACZ,sBAAsB,EAAE,0BAA0B,CAAC,YAAY;wBAC/D,0BAA0B,EAAE,KAAK;qBAClC,CAAC,CAAA;oBACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;iBACzB;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,UAAA,GAAG;gBACR,kFAAkF;gBAClF,IAAI,GAAG,CAAC,MAAM,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAA;iBAC7C;gBACD,uBAAuB;gBACvB,KAAI,CAAC,kCAAkC,EAAE,CAAA;gBACzC,KAAI,CAAC,QAAQ,CAAC;oBACZ,0BAA0B,EAAE,KAAK;iBAClC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACN,CAAC,CAAA;QAED,+BAAyB,GAAG,UAAC,YAAsB;YACzC,IAAA,QAAQ,GAAK,KAAI,CAAC,KAAK,SAAf,CAAe;YAC/B,IAAI,KAAI,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,YAAY,EAAE;gBACtD,OAAM;aACP;YACD,KAAI,CAAC,QAAQ,CAAC;gBACZ,+BAA+B,EAAE,IAAI;aACtC,CAAC,CAAA;YACF,IAAM,OAAO,GAAkC;gBAC7C,sBAAsB,EAAE,qCAAsB,CAAC,MAAM;gBACrD,QAAQ,EAAE,QAAQ;aACnB,CAAA;YACD,OAAO,qBAAa,CAAC,yBAAyB,CAC5C,OAAO,EACP,KAAI,CAAC,OAAO,CAAC,WAAW,CACzB;iBACE,IAAI,CAAC,UAAA,sBAAsB;gBAC1B,KAAI,CAAC,QAAQ,CAAC;oBACZ,sBAAsB,wBAAA;iBACvB,CAAC,CAAA;YACJ,CAAC,CAAC;iBACD,KAAK,CAAC,UAAA,GAAG;gBACR,OAAO,CAAC,KAAK,CACX,8DAA8D,EAC9D,GAAG,CACJ,CAAA;gBACD,KAAI,CAAC,QAAQ,CAAC;oBACZ,gCAAgC,EAAE,IAAI;iBACvC,CAAC,CAAA;YACJ,CAAC,CAAC;iBACD,OAAO,CAAC;gBACP,KAAI,CAAC,QAAQ,CAAC;oBACZ,+BAA+B,EAAE,KAAK;iBACvC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACN,CAAC,CAAA;QAaD,gBAAU,GAAG,UACX,YAAiD,EACjD,sBAAuD;YAEvD,uCAAuC;YACvC,IAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,yBAAyB,EAAE;gBACrD,OAAO,CACL,oBAAC,uBAAY,CAAC,QAAQ,QACnB,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,aAAa,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAxD,CAAwD,CAC5C,CACzB,CAAA;aACF;YACD,QAAQ,YAAY,EAAE;gBACpB,uBAAuB;gBACvB,KAAK,0BAA0B,CAAC,gBAAgB,CAAC;gBACjD,KAAK,0BAA0B,CAAC,iBAAiB;oBAC/C,OAAO,CACL,oBAAC,uBAAY,CAAC,QAAQ,QACnB,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAhD,CAAgD,CACpC,CACzB,CAAA;gBACH,KAAK,0BAA0B,CAAC,QAAQ;oBACtC,OAAO,CACL,oBAAC,uBAAY,CAAC,QAAQ,QACnB,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAlD,CAAkD,CACtC,CACzB,CAAA;gBACH,kDAAkD;gBAClD,KAAK,0BAA0B,CAAC,kBAAkB,CAAC;gBACnD,KAAK,0BAA0B,CAAC,wBAAwB;oBACtD,OAAO,CACL,oBAAC,uBAAY,CAAC,QAAQ,QACnB,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,aAAa,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAxD,CAAwD,CAC5C,CACzB,CAAA;gBACH,iDAAiD;gBACjD,4DAA4D;gBAC5D,KAAK,0BAA0B,CAAC,UAAU,CAAC;gBAC3C,KAAK,0BAA0B,CAAC,YAAY;oBAC1C,OAAO,CACL,oBAAC,uBAAY,CAAC,QAAQ,QACnB,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAtD,CAAsD,CAC1C,CACzB,CAAA;gBACH;oBACE,yDAAyD;oBACzD,OAAO,yCAAK,CAAA;aACf;QACH,CAAC,CAAA;QAED,qBAAe,GAAG;YACV,IAAA,KAAyC,KAAI,CAAC,KAAK,EAAjD,QAAQ,cAAA,EAAE,wBAAwB,8BAAe,CAAA;YACzD,qBAAa,CAAC,wBAAwB,CACpC,KAAI,CAAC,OAAO,CAAC,WAAW,EACxB,QAAQ,CACT,CAAC,IAAI,CAAC,UAAA,YAAY;gBACjB,IAAI,IAAA,oDAA4B,EAAC,YAAY,CAAC,EAAE;oBAC9C,MAAM,CAAC,IAAI,CACT,UAAG,IAAA,yBAAW,EACZ,oCAAsB,CAAC,eAAe,CACvC,qCAA2B,QAAQ,iBAAc,EAClD,QAAQ,CACT,CAAA;iBACF;qBAAM;oBACL,IAAI,wBAAwB,EAAE;wBAC5B,wBAAwB,CAAC;4BACvB,0BAA0B,EAAE,YAAY;4BACxC,QAAQ,UAAA;yBACT,CAAC,CAAA;qBACH;yBAAM;wBACL,KAAI,CAAC,QAAQ,CAAC;4BACZ,kBAAkB,EAAE,YAAY;4BAChC,wBAAwB,EAAE,IAAI;yBAC/B,CAAC,CAAA;qBACH;iBACF;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,2BAA2B;QAC3B,mBAAa,GAAG;YACN,IAAA,QAAQ,GAAK,KAAI,CAAC,KAAK,SAAf,CAAe;YACzB,IAAA,KAIF,KAAI,CAAC,KAAK,EAHZ,sBAAsB,4BAAA,EACtB,wBAAwB,8BAAA,EACxB,kBAAkB,wBACN,CAAA;YACd,IAAI,CAAC,sBAAsB,EAAE;gBAC3B,UAAU;gBACV,OAAO,yCAAK,CAAA;aACb;YACD,IAAM,yBAAyB,GAC7B,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,yBAAyB,CAAA;YACnD,IAAM,gBAAgB,GAAG,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,gBAAgB,CAAA;YACjE,IAAI,QAAQ,GAAG,EAAE,CAAA;YAEjB,IAAI,yBAAyB,EAAE;gBAC7B,QAAQ,GAAG,gBAAgB,CAAA;aAC5B;iBAAM,IAAI,+BAAgB,CAAC,IAAI,KAAK,gBAAgB,EAAE;gBACrD,uBAAuB;gBACvB,OAAO,yCAAK,CAAA;aACb;iBAAM;gBACL,QAAQ,GAAG,YAAY,CAAA;aACxB;YACD,OAAO,CACL;gBACE,2BACE,KAAK,EAAE;wBACL,QAAQ,EAAE,MAAM;wBAChB,MAAM,EAAE,SAAS;wBACjB,UAAU,EAAE,KAAK;wBACjB,aAAa,EAAE,QAAQ;qBACxB,EACD,SAAS,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,OAAO,EAAE,KAAI,CAAC,eAAe,IAE5B,QAAQ,CACP;gBACH,wBAAwB,IAAI,CAC3B,oBAAC,+BAAqB,IACpB,QAAQ,EAAE,QAAQ,EAClB,0BAA0B,EAAE,kBAAkB,EAC9C,aAAa,EAAE,IAAI,EACnB,MAAM,EAAE;wBACN,KAAI,CAAC,QAAQ,CAAC,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,CAAA;wBAClD,KAAI,CAAC,OAAO,EAAE,CAAA;oBAChB,CAAC,GACD,CACH,CACA,CACJ,CAAA;QACH,CAAC,CAAA;QArSC,KAAI,CAAC,yBAAyB,GAAG,KAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAI,CAAC,CAAA;QAC1E,KAAI,CAAC,uBAAuB,GAAG,KAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAI,CAAC,CAAA;QACtE,KAAI,CAAC,kCAAkC;YACrC,KAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,KAAI,CAAC,CAAA;QAEpD,KAAI,CAAC,KAAK,GAAG;YACX,sBAAsB,EAAE,SAAS;YACjC,wBAAwB,EAAE,KAAK;YAC/B,kBAAkB,EAAE,EAAE;YACtB,0BAA0B,EAAE,KAAK;YACjC,+BAA+B,EAAE,KAAK;YACtC,gCAAgC,EAAE,KAAK;SACxC,CAAA;;IACH,CAAC;IAED,sCAAkB,GAAlB,UAAmB,SAAyB;QAC1C,yDAAyD;QACzD,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SACnB;IACH,CAAC;IAED,qCAAiB,GAAjB;QACE,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IA+HD,iCAAa,GAAb,UAAc,IAAU,EAAE,KAAa;QACrC,OAAO,CACL,oBAAC,iBAAO,IACN,OAAO,EAAE;gBACP,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,KAAK;aACb,GACD,CACH,CAAA;IACH,CAAC;IAuID,0BAAM,GAAN;QACQ,IAAA,KAAqD,IAAI,CAAC,KAAK,EAA7D,sBAAsB,4BAAA,EAAE,sBAAsB,4BAAe,CAAA;QACrE,IAAI,OAAO,sBAAsB,KAAK,WAAW,EAAE;YACjD,iGAAiG;YACjG,UAAU;YACV,OAAO,yCAAK,CAAA;SACb;QACD,IAAI,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAA;QAC/D,IACE,sBAAsB;YACpB,0BAA0B,CAAC,kBAAkB;aAC/C,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,yBAAyB,CAAA,EACjD;YACA,wFAAwF;YACxF,sDAAsD;YACtD,WAAW;gBACT,SAAS,CAAC,WAAW,CACnB,0BAA0B,CAAC,0BAA0B,CACtD,CAAA;SACJ;QACD,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;QACpC,IAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,CAAA;QAC5E,IAAM,WAAW,GAAuB,IAAI,CAAC,aAAa,EAAE,CAAA;QAC5D,IAAM,aAAa,GACjB,sBAAsB;YACtB,0BAA0B,CAAC,wBAAwB,CAAC,CAAC,CAAC,CACpD,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,oCAAiB,EAC5B,OAAO,EAAE,UAAA,EAAE;gBACT,IAAI,EAAE,CAAC,SAAS,EAAE;oBAChB;;;;;;;;;;;;;sBAaE;oBACF,IAAM,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;oBAC7D,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;iBAC3C;YACH,CAAC,IAEA,IAAI,CACE,CACV,CAAC,CAAC,CAAC,CACF,8BAAM,QAAQ,EAAE,CAAC,cAAY,QAAQ,cAAY,WAAW,IACzD,IAAI,CACA,CACR,CAAA;QAEH,OAAO,CACL,8BAAM,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;YAClC,WAAW,IAAI,CACd,oBAAC,iBAAO,IACN,KAAK,EAAE,WAAW,EAClB,EAAE,EAAE,QAAQ,EACZ,cAAc,EAAE,0CAAkB,EAClC,SAAS,EAAC,KAAK;gBAEf;oBACG,aAAa;oBACb,WAAW,CACX,CACK,CACX;YACA,CAAC,WAAW,IAAI,CACf;gBACG,IAAI;;gBAAG,WAAW,CAClB,CACJ,CACI,CACR,CAAA;IACH,CAAC;IA3Ya,qBAAW;QACvB,GAAC,0BAA0B,CAAC,wBAAwB,IAClD,uCAAuC;QACzC,mFAAmF;QACnF,GAAC,0BAA0B,CAAC,0BAA0B,IACpD,kDAAkD;QACpD,GAAC,0BAA0B,CAAC,kBAAkB,IAC5C,gDAAgD;QAClD,GAAC,0BAA0B,CAAC,QAAQ,IAClC,kFAAkF;QACpF,GAAC,0BAA0B,CAAC,gBAAgB,IAC1C,8DAA8D;QAChE,GAAC,0BAA0B,CAAC,iBAAiB,IAC3C,sEAAsE;YACzE;IAEM,qBAAW,GAAG,+BAAc,CAAA;IA4XrC,gBAAC;CAAA,AAhZD,CAAuC,KAAK,CAAC,SAAS,GAgZrD;kBAhZoB,SAAS"}