UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

170 lines (169 loc) 5.7 kB
import { jsx as n, Fragment as _ } from "react/jsx-runtime"; import "../../../../utils/PermissionLevelToAccessType.js"; import { VALUE_NOT_SET as j } from "../../../../utils/SynapseConstants.js"; import { Suspense as w, useMemo as m } from "react"; import "../../../../synapse-client/SynapseClient.js"; import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode"; import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse"; import "@sage-bionetworks/synapse-client/util/SynapseClientError"; import { ColumnTypeEnum as a } from "@sage-bionetworks/synapse-types"; import "../../../../utils/functions/EntityTypeUtils.js"; import { cloneDeep as V, partition as P, sortBy as v, pick as p } from "lodash-es"; import "@sage-bionetworks/synapse-client/util/synapseClientFetch"; import "../../../../utils/context/SynapseContext.js"; import d from "../../../../utils/hooks/useGetInfoFromIds.js"; import "@tanstack/react-query"; import "@tanstack/query-core"; import "lodash-es/isEmpty"; import "lodash-es/isEqual"; import "lodash-es/xorWith"; import "@mui/material"; import "@sage-bionetworks/synapse-client"; import { getCorrespondingSelectedFacet as Q, getCorrespondingColumnForFacet as G } from "../../../../utils/functions/queryUtils.js"; import "../../../../utils/hooks/useCookiePreferences.js"; import "../../../../utils/hooks/useSourceAppConfigs.js"; import "universal-cookie"; import "../../../../utils/AppUtils/session/ApplicationSessionContext.js"; import "../../../../utils/context/FullContextProvider.js"; import "../../../../utils/context/DocumentMetadataContext.js"; import '../../../../style/components/_spinner.css';/* empty css */ import "react-router"; import { isFacetColumnValuesRequest as H } from "../../../../utils/types/IsType.js"; import { useQueryContext as k } from "../../../QueryContext/QueryContext.js"; import "use-deep-compare-effect"; import { useSuspenseGetQueryMetadata as Y } from "../../../QueryWrapper/useGetQueryMetadata.js"; import { useQueryVisualizationContext as B } from "../../../QueryVisualizationWrapper/QueryVisualizationContext.js"; import { EnumFacetFilterSkeleton as z } from "./EnumFacetFilterSkeleton.js"; import J from "./EnumFacetFilterUI.js"; import { getAllIsSelected as K, valueToLabel as W } from "./EnumFacetFilterUtils.js"; function X(l) { const { facet: e, containerAs: s = "Collapsible", dropdownType: C = "Icon", hideCollapsible: A = !1, defaultShowAllValues: N = !1 } = l, { nextQueryRequest: i, addValueToSelectedFacet: R, removeSelectedFacet: D, removeValueFromSelectedFacet: b, resetDebounceTimer: U } = k(), { data: f } = Y(), { getColumnDisplayName: h } = B(), T = m(() => { const t = Q( e, V(i.query.selectedFacets) ); if (t && !H(t)) { console.error( "The facet rendered in EnumFacetFilter is not a FacetColumnValuesRequest", e ); return; } return t; }, [e, i.query.selectedFacets]), L = K( V(i), e ), o = f.columnModels ? G(e, f.columnModels) : void 0, F = m(() => { switch (o?.columnType) { case a.DOUBLE: case a.DATE: case a.INTEGER: return !0; default: return !1; } }, [o]), g = o?.columnType === a.USERID || o?.columnType === a.USERID_LIST ? e.facetValues.map((t) => t.value) : [], y = d({ ids: g, type: "USER_PROFILE" }), q = o?.columnType === a.ENTITYID || o?.columnType === a.ENTITYID_LIST ? e.facetValues.map((t) => t.value) : [], S = d({ ids: q, type: "ENTITY_HEADER" }), x = o?.columnType === a.EVALUATIONID ? e.facetValues.map((t) => t.value) : [], I = d({ ids: x, type: "EVALUATION_QUEUE" }), M = m(() => { const t = e.facetValues.map( (r) => ({ ...r, // Selected status should be based on the 'nextQuery', not the result data // This ensures the checkboxes respond instantly to user interaction, like while waiting for multiple changes to debounce isSelected: T?.facetValues.includes(r.value) ?? !1, displayText: W( r, y, S, I ) }) ), E = P( t, (r) => r.value === j ), O = E[0], c = E[1]; let u = c; return (o == null || o.facetSortConfig == null) && (F ? u = v(c, (r) => Number(r.value)) : u = v( c, (r) => r.displayText.toLowerCase() )), [...u, ...O]; }, [ e.facetValues, o, T?.facetValues, y, S, I, F ]); return o ? /* @__PURE__ */ n( J, { facetTitle: h(e.columnName, e.jsonPath), filterIsActive: !L, facetValues: M, containerAs: s, dropdownType: C, hideCollapsible: A, defaultShowAllValues: N, onHoverOverValue: () => { U(); }, onAddValueToSelection: (t) => { R( p(e, ["columnName", "jsonPath"]), t, { debounce: !0 } ); }, onRemoveValueFromSelection: (t) => { b( p(e, ["columnName", "jsonPath"]), t, { debounce: !0 } ); }, onRemoveAllFacetSelections: () => D(p(e, ["columnName", "jsonPath"])), canMultiSelect: !0 } ) : /* @__PURE__ */ n(_, {}); } function _e(l) { const { containerAs: e = "Collapsible", dropdownType: s = "Icon" } = l; return /* @__PURE__ */ n( w, { fallback: /* @__PURE__ */ n( z, { containerAs: e, dropdownType: s } ), children: /* @__PURE__ */ n(X, { ...l }) } ); } export { _e as EnumFacetFilter }; //# sourceMappingURL=EnumFacetFilter.js.map