-
+
onConnectorClick(id)}>
{seeMoreText}
diff --git a/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx b/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx
index 835b0eccca7..05d1e47cf00 100644
--- a/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx
+++ b/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx
@@ -1,6 +1,6 @@
import NoResultsSvg from '../../../assets/search/noResults.svg';
import { AriaSearchResultsAlert } from '../../ariaSearchResults/ariaSearchResultsAlert';
-import { isDesignerBuiltInConnector } from '../../connections';
+import { isBuiltInConnector } from '../../connectors';
import { getConnectorCategoryString } from '../../utils';
import type { OperationActionData } from './interfaces';
import { OperationSearchCard } from './operationSearchCard';
@@ -140,9 +140,9 @@ export const OperationActionDataFromOperation = (operation: DiscoveryOperation
(data: Record, filter: (_key: string,
.reduce((res: any, [key, value]: any) => ({ ...res, [key]: value }), {});
};
-export const getConnectorCategoryString = (connectorId: string): string => {
+export const getConnectorCategoryString = (connector: Connector | OperationApi | string): string => {
const intl = getIntl();
const builtInText = intl.formatMessage({
defaultMessage: 'In App',
@@ -363,7 +364,7 @@ export const getConnectorCategoryString = (connectorId: string): string => {
description: 'Custom category name text',
});
- return isDesignerBuiltInConnector(connectorId) ? builtInText : isDesignerCustomConnector(connectorId) ? customText : azureText;
+ return isBuiltInConnector(connector) ? builtInText : isCustomConnector(connector) ? customText : azureText;
};
export const convertUIElementNameToAutomationId = (uiElementName: string): string => {
diff --git a/libs/designer/src/lib/core/actions/bjsworkflow/add.ts b/libs/designer/src/lib/core/actions/bjsworkflow/add.ts
index 3bcbc284fd8..187be0bed79 100644
--- a/libs/designer/src/lib/core/actions/bjsworkflow/add.ts
+++ b/libs/designer/src/lib/core/actions/bjsworkflow/add.ts
@@ -13,7 +13,7 @@ import { initializeTokensAndVariables } from '../../state/tokens/tokensSlice';
import type { WorkflowState } from '../../state/workflow/workflowInterfaces';
import { addNode, setFocusNode } from '../../state/workflow/workflowSlice';
import type { AppDispatch, RootState } from '../../store';
-import { getBrandColorFromConnector, getBrandColorFromManifest, getIconUriFromConnector, getIconUriFromManifest } from '../../utils/card';
+import { getBrandColorFromManifest, getIconUriFromManifest } from '../../utils/card';
import { getTriggerNodeId, isRootNodeInGraph } from '../../utils/graph';
import { updateDynamicDataInNode } from '../../utils/parameters/helper';
import { getInputParametersFromSwagger, getOutputParametersFromSwagger } from '../../utils/swagger/operation';
@@ -30,16 +30,16 @@ import type { NodeDataWithOperationMetadata } from './operationdeserializer';
import type { Settings } from './settings';
import { getOperationSettings, getSplitOnValue } from './settings';
import { ConnectionService, OperationManifestService, StaticResultService } from '@microsoft/designer-client-services-logic-apps';
-import type { SwaggerParser } from '@microsoft/logic-apps-shared';
-import { ManifestParser } from '@microsoft/logic-apps-shared';
+import { getBrandColorFromConnector, getIconUriFromConnector } from '@microsoft/designer-ui';
import type {
+ SwaggerParser,
Connector,
DiscoveryOperation,
DiscoveryResultTypes,
OperationManifest,
SomeKindOfAzureOperationDiscovery,
} from '@microsoft/logic-apps-shared';
-import { equals, getRecordEntry } from '@microsoft/logic-apps-shared';
+import { ManifestParser, equals, getRecordEntry } from '@microsoft/logic-apps-shared';
import type { Dispatch } from '@reduxjs/toolkit';
import { createAsyncThunk } from '@reduxjs/toolkit';
import { batch } from 'react-redux';
diff --git a/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts b/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts
index eed8c64ffc6..8eb1d7040d0 100644
--- a/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts
+++ b/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts
@@ -11,7 +11,6 @@ import { WorkflowKind } from '../../state/workflow/workflowInterfaces';
import type { WorkflowParameterDefinition } from '../../state/workflowparameters/workflowparametersSlice';
import { initializeParameters } from '../../state/workflowparameters/workflowparametersSlice';
import type { RootState } from '../../store';
-import { getBrandColorFromConnector, getIconUriFromConnector } from '../../utils/card';
import { getTriggerNodeId, isRootNodeInGraph } from '../../utils/graph';
import { getSplitOnOptions, getUpdatedManifestForSchemaDependency, getUpdatedManifestForSplitOn, toOutputInfo } from '../../utils/outputs';
import {
@@ -46,10 +45,9 @@ import {
FunctionService,
ApiManagementService,
} from '@microsoft/designer-client-services-logic-apps';
-import type { OutputToken, ParameterInfo } from '@microsoft/designer-ui';
-import { getIntl } from '@microsoft/logic-apps-shared';
-import type { SchemaProperty, InputParameter, SwaggerParser, OutputParameter } from '@microsoft/logic-apps-shared';
+import { getBrandColorFromConnector, getIconUriFromConnector, type OutputToken, type ParameterInfo } from '@microsoft/designer-ui';
import {
+ getIntl,
isDynamicListExtension,
isDynamicPropertiesExtension,
isDynamicSchemaExtension,
@@ -59,8 +57,6 @@ import {
DynamicSchemaType,
ManifestParser,
PropertyName,
-} from '@microsoft/logic-apps-shared';
-import {
CustomSwaggerServiceNames,
UnsupportedException,
clone,
@@ -70,6 +66,10 @@ import {
getObjectPropertyValue,
} from '@microsoft/logic-apps-shared';
import type {
+ SchemaProperty,
+ InputParameter,
+ SwaggerParser,
+ OutputParameter,
CustomSwaggerServiceDetails,
OperationInfo,
OperationManifest,
diff --git a/libs/designer/src/lib/core/index.ts b/libs/designer/src/lib/core/index.ts
index 34f57d9b42d..f9410c439a3 100644
--- a/libs/designer/src/lib/core/index.ts
+++ b/libs/designer/src/lib/core/index.ts
@@ -27,4 +27,4 @@ export { getOutputTokenSections, getExpressionTokenSections } from './utils/toke
export { getTriggerNodeId } from './utils/graph';
export { updateParameterValidation } from './state/operation/operationMetadataSlice';
export { updateWorkflowParameters } from './actions/bjsworkflow/initialize';
-export { getBrandColorFromManifest, getIconUriFromManifest, getBrandColorFromConnector, getIconUriFromConnector } from './utils/card';
+export { getBrandColorFromManifest, getIconUriFromManifest } from './utils/card';
diff --git a/libs/designer/src/lib/core/utils/card.ts b/libs/designer/src/lib/core/utils/card.ts
index 6e45b7de98b..fbfe2969ec6 100644
--- a/libs/designer/src/lib/core/utils/card.ts
+++ b/libs/designer/src/lib/core/utils/card.ts
@@ -1,5 +1,5 @@
-import type { Connector, OperationManifest } from '@microsoft/logic-apps-shared';
-import { fallbackConnectorIconUrl } from '@microsoft/logic-apps-shared';
+import { getBrandColorFromConnector, getIconUriFromConnector } from '@microsoft/designer-ui';
+import type { OperationManifest } from '@microsoft/utils-logic-apps';
export function getBrandColorFromManifest(manifest: OperationManifest): string {
return manifest.properties?.brandColor ?? getBrandColorFromConnector(manifest.properties?.connector);
@@ -8,19 +8,3 @@ export function getBrandColorFromManifest(manifest: OperationManifest): string {
export function getIconUriFromManifest(manifest: OperationManifest): string {
return manifest.properties?.iconUri ?? getIconUriFromConnector(manifest.properties?.connector);
}
-
-export function getBrandColorFromConnector(connector: Connector | undefined): string {
- if (!connector) return '#000000';
- const {
- properties: { brandColor, metadata },
- } = connector;
- return brandColor ?? metadata?.brandColor ?? '#000000';
-}
-
-export function getIconUriFromConnector(connector: Connector | undefined): string {
- if (!connector) return '';
- const {
- properties: { iconUrl, iconUri, generalInformation },
- } = connector;
- return fallbackConnectorIconUrl(iconUrl ?? iconUri ?? generalInformation?.iconUrl);
-}
diff --git a/libs/designer/src/lib/core/utils/outputs.ts b/libs/designer/src/lib/core/utils/outputs.ts
index b2c27223b64..3458940b192 100644
--- a/libs/designer/src/lib/core/utils/outputs.ts
+++ b/libs/designer/src/lib/core/utils/outputs.ts
@@ -15,7 +15,6 @@ import {
import { addDynamicTokens } from '../state/tokens/tokensSlice';
import type { WorkflowKind } from '../state/workflow/workflowInterfaces';
import type { WorkflowParameterDefinition } from '../state/workflowparameters/workflowparametersSlice';
-import { getBrandColorFromConnector, getIconUriFromConnector } from './card';
import { getTokenExpressionValueForManifestBasedOperation } from './loops';
import { getDynamicOutputsFromSchema, getDynamicSchema } from './parameters/dynamicdata';
import {
@@ -26,8 +25,12 @@ import {
} from './parameters/helper';
import { convertOutputsToTokens, getTokenTitle } from './tokens';
import { OperationManifestService } from '@microsoft/designer-client-services-logic-apps';
-import { generateSchemaFromJsonString, ValueSegmentType } from '@microsoft/designer-ui';
-import { getIntl } from '@microsoft/logic-apps-shared';
+import {
+ generateSchemaFromJsonString,
+ getBrandColorFromConnector,
+ getIconUriFromConnector,
+ ValueSegmentType,
+} from '@microsoft/designer-ui';
import type {
Expression,
ExpressionFunction,
@@ -35,9 +38,12 @@ import type {
OutputParameter,
OutputParameters,
OpenApiSchema,
+ OpenAPIV2,
+ OperationManifest,
} from '@microsoft/logic-apps-shared';
import {
create,
+ getIntl,
OutputKeys,
OutputSource,
ExpressionParser,
@@ -45,9 +51,6 @@ import {
isTemplateExpression,
isFunction,
isStringLiteral,
-} from '@microsoft/logic-apps-shared';
-import type { OpenAPIV2, OperationManifest } from '@microsoft/logic-apps-shared';
-import {
ConnectionReferenceKeyFormat,
getObjectPropertyValue,
safeSetObjectPropertyValue,
diff --git a/libs/designer/src/lib/core/utils/swagger/operation.ts b/libs/designer/src/lib/core/utils/swagger/operation.ts
index af0e1406962..55c0dc917fa 100644
--- a/libs/designer/src/lib/core/utils/swagger/operation.ts
+++ b/libs/designer/src/lib/core/utils/swagger/operation.ts
@@ -16,7 +16,6 @@ import type { DependencyInfo, NodeInputs, NodeOperation, OutputInfo } from '../.
import { ErrorLevel, updateErrorDetails, DynamicLoadStatus, initializeOperationInfo } from '../../state/operation/operationMetadataSlice';
import { addResultSchema } from '../../state/staticresultschema/staticresultsSlice';
import type { WorkflowKind } from '../../state/workflow/workflowInterfaces';
-import { getBrandColorFromConnector, getIconUriFromConnector } from '../card';
import { toOutputInfo, updateOutputsForBatchingTrigger } from '../outputs';
import {
addRecurrenceParametersInGroup,
@@ -29,16 +28,22 @@ import {
} from '../parameters/helper';
import { loadInputValuesFromDefinition } from './inputsbuilder';
import { LogEntryLevel, LoggerService, StaticResultService } from '@microsoft/designer-client-services-logic-apps';
-import type { LAOperation, OutputParameter, SwaggerParser } from '@microsoft/logic-apps-shared';
+import { getBrandColorFromConnector, getIconUriFromConnector } from '@microsoft/designer-ui';
+import type { LAOperation, OutputParameter, SwaggerParser, LogicAppsV2, OperationInfo } from '@microsoft/logic-apps-shared';
import {
create,
isDynamicSchemaExtension,
ParameterLocations,
removeConnectionPrefix,
isTemplateExpression,
+ copyArray,
+ map,
+ RecurrenceType,
+ equals,
+ parsePathnameAndQueryKeyFromUri,
+ startsWith,
+ unmap,
} from '@microsoft/logic-apps-shared';
-import type { LogicAppsV2, OperationInfo } from '@microsoft/logic-apps-shared';
-import { copyArray, map, RecurrenceType, equals, parsePathnameAndQueryKeyFromUri, startsWith, unmap } from '@microsoft/logic-apps-shared';
import type { Dispatch } from '@reduxjs/toolkit';
interface OperationInputInfo {
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/allConnections.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/allConnections.tsx
index 5622fb7751a..51d40fba6f3 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/allConnections.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/allConnections.tsx
@@ -1,10 +1,4 @@
-import {
- type RootState,
- useConnectionMapping,
- useConnectionRefs,
- getIconUriFromConnector,
- getBrandColorFromConnector,
-} from '../../../../core';
+import { type RootState, useConnectionMapping, useConnectionRefs } from '../../../../core';
import { useConnector } from '../../../../core/state/connection/connectionSelector';
import { ConnectorConnectionsCard } from './connectorConnectionsCard';
import { Accordion, AccordionItem, type AccordionToggleEventHandler } from '@fluentui/react-components';
@@ -93,9 +87,7 @@ const ConnectorCardWrapper = ({ apiId, connectionRefs, disconnectedNodes }: Conn
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
index 4b05f694611..1c6f9debb6b 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
@@ -1,15 +1,20 @@
import { useAllConnectionErrors } from '../../../../core';
import { ConnectionEntry } from './connectionEntry';
import { Text, AccordionHeader, AccordionPanel, Spinner, Badge } from '@fluentui/react-components';
-import { getConnectorCategoryString, isDesignerBuiltInConnector } from '@microsoft/designer-ui';
+import {
+ getBrandColorFromConnector,
+ getConnectorCategoryString,
+ getDisplayNameFromConnector,
+ getIconUriFromConnector,
+ isBuiltInConnector,
+} from '@microsoft/designer-ui';
+import type { Connector } from '@microsoft/logic-apps-shared';
import { fallbackConnectorIconUrl } from '@microsoft/logic-apps-shared';
import { useMemo } from 'react';
export interface ConnectorConnectionsCardProps {
connectorId: string;
- title: string;
- brandColor?: string;
- iconUri?: string;
+ connector: Connector | undefined;
connectionRefs?: Record;
disconnectedNodes?: string[];
isLoading?: boolean;
@@ -17,14 +22,16 @@ export interface ConnectorConnectionsCardProps {
export const ConnectorConnectionsCard: React.FC = ({
connectorId,
- title,
- brandColor,
- iconUri,
+ connector,
connectionRefs = {},
disconnectedNodes = [],
isLoading = false,
}) => {
- const isBuiltIn = isDesignerBuiltInConnector(connectorId);
+ const title = getDisplayNameFromConnector(connector) ?? connectorId;
+ const iconUri = getIconUriFromConnector(connector);
+ const brandColor = getBrandColorFromConnector(connector);
+
+ const isBuiltIn = isBuiltInConnector(connectorId);
const category = getConnectorCategoryString(connectorId);
const allErrors = useAllConnectionErrors();
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnectionWrapper.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnectionWrapper.tsx
index a8da35fdcdf..08a0ce5439e 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnectionWrapper.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnectionWrapper.tsx
@@ -1,6 +1,6 @@
import constants from '../../../../common/constants';
import type { AppDispatch, RootState } from '../../../../core';
-import { getIconUriFromConnector, useOperationInfo, useSelectedNodeId, useSelectedNodeIds } from '../../../../core';
+import { useOperationInfo, useSelectedNodeId, useSelectedNodeIds } from '../../../../core';
import type { ConnectionPayload } from '../../../../core/actions/bjsworkflow/connections';
import {
getConnectionMetadata,
@@ -29,6 +29,7 @@ import { CreateConnection } from './createConnection';
import { Spinner } from '@fluentui/react-components';
import type { ConnectionCreationInfo, ConnectionParametersMetadata } from '@microsoft/designer-client-services-logic-apps';
import { ConnectionService, LogEntryLevel, LoggerService, WorkflowService } from '@microsoft/designer-client-services-logic-apps';
+import { getIconUriFromConnector } from '@microsoft/designer-ui';
import {
getRecordEntry,
safeSetObjectPropertyValue,
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/selectConnection/selectConnection.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/selectConnection/selectConnection.tsx
index 6202304d05e..286c75a12dd 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/selectConnection/selectConnection.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/selectConnection/selectConnection.tsx
@@ -1,4 +1,4 @@
-import { type AppDispatch, getIconUriFromConnector } from '../../../../core';
+import { type AppDispatch } from '../../../../core';
import { updateNodeConnection } from '../../../../core/actions/bjsworkflow/connections';
import { useConnectionsForConnector } from '../../../../core/queries/connections';
import { useNodeConnectionId, useConnectorByNodeId } from '../../../../core/state/connection/connectionSelector';
@@ -10,6 +10,7 @@ import { ConnectionTable } from './connectionTable';
import { MessageBar, MessageBarType } from '@fluentui/react';
import { Body1Strong, Button, Divider, Spinner } from '@fluentui/react-components';
import { ConnectionService } from '@microsoft/designer-client-services-logic-apps';
+import { getIconUriFromConnector } from '@microsoft/designer-ui';
import { type Connection, type Connector } from '@microsoft/logic-apps-shared';
import { useCallback, useEffect, useMemo } from 'react';
import { useIntl } from 'react-intl';
diff --git a/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx b/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx
index 55fdbbff8e1..f3eaa17036d 100644
--- a/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx
+++ b/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx
@@ -1,16 +1,15 @@
import { useAllApiIdsWithActions, useAllApiIdsWithTriggers, useAllConnectors } from '../../../core/queries/browse';
import { selectOperationGroupId } from '../../../core/state/panel/panelSlice';
import { SearchService } from '@microsoft/designer-client-services-logic-apps';
-import { BrowseGrid, isDesignerBuiltInConnector, isDesignerCustomConnector } from '@microsoft/designer-ui';
+import { BrowseGrid, isBuiltInConnector, isCustomConnector } from '@microsoft/designer-ui';
import { type Connector, cleanConnectorId } from '@microsoft/logic-apps-shared';
import { useCallback, useMemo } from 'react';
import { useDispatch } from 'react-redux';
const defaultFilterConnector = (connector: Connector, runtimeFilter: string): boolean => {
- if (runtimeFilter === 'inapp' && !isDesignerBuiltInConnector(connector.id)) return false;
- else if (runtimeFilter === 'custom' && !isDesignerCustomConnector(connector.id)) return false;
- else if (runtimeFilter === 'shared')
- if (isDesignerBuiltInConnector(connector.id) || isDesignerCustomConnector(connector.id)) return false;
+ if (runtimeFilter === 'inapp' && !isBuiltInConnector(connector)) return false;
+ else if (runtimeFilter === 'custom' && !isCustomConnector(connector)) return false;
+ else if (runtimeFilter === 'shared') if (isBuiltInConnector(connector) || isCustomConnector(connector)) return false;
return true;
};
diff --git a/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx b/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx
index e66ece17bb4..08af3b0a610 100644
--- a/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx
+++ b/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx
@@ -1,7 +1,7 @@
import type { AppDispatch } from '../../../core';
import { selectOperationGroupId } from '../../../core/state/panel/panelSlice';
import { SearchService, type ISearchService } from '@microsoft/designer-client-services-logic-apps';
-import { SearchResultsGrid, isDesignerBuiltInConnector, isDesignerCustomConnector } from '@microsoft/designer-ui';
+import { SearchResultsGrid, isBuiltInConnector, isCustomConnector } from '@microsoft/designer-ui';
import type { DiscoveryOpArray, DiscoveryOperation, DiscoveryResultTypes } from '@microsoft/logic-apps-shared';
import { useDebouncedEffect } from '@react-hookz/web';
import Fuse from 'fuse.js';
@@ -126,14 +126,10 @@ class DefaultSearchOperationsService implements Pick {
if (runtimeFilter) {
- if (runtimeFilter === 'inapp' && !isDesignerBuiltInConnector(searchResult.item.properties.api.id)) return false;
- else if (runtimeFilter === 'custom' && !isDesignerCustomConnector(searchResult.item.properties.api.id)) return false;
+ if (runtimeFilter === 'inapp' && !isBuiltInConnector(searchResult.item.properties.api)) return false;
+ else if (runtimeFilter === 'custom' && !isCustomConnector(searchResult.item.properties.api)) return false;
else if (runtimeFilter === 'shared')
- if (
- isDesignerBuiltInConnector(searchResult.item.properties.api.id) ||
- isDesignerCustomConnector(searchResult.item.properties.api.id)
- )
- return false;
+ if (isBuiltInConnector(searchResult.item.properties.api) || isCustomConnector(searchResult.item.properties.api)) return false;
}
if (actionType) {
diff --git a/libs/logic-apps-shared/src/utils/src/lib/helpers/connections.ts b/libs/logic-apps-shared/src/utils/src/lib/helpers/connections.ts
index ce82b8376ad..18f450401ca 100644
--- a/libs/logic-apps-shared/src/utils/src/lib/helpers/connections.ts
+++ b/libs/logic-apps-shared/src/utils/src/lib/helpers/connections.ts
@@ -11,14 +11,14 @@ export function isArmResourceId(resourceId: string): boolean {
return resourceId ? resourceId.startsWith('/subscriptions/') : false;
}
-export const isBuiltInConnector = (connectorId: string) => {
+export const isBuiltInConnectorId = (connectorId: string) => {
if (connectorsShownAsAzure.includes(connectorId)) return false;
return !isArmResourceId(connectorId);
};
export const getConnectorName = (connectorId: string): string => connectorId?.split('/').at(-1) ?? '';
-export const isCustomConnector = (connectorId: string) => {
+export const isCustomConnectorId = (connectorId: string) => {
// Note: connectorId format: /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Web/customApis/{connector}
const fields = connectorId.split('/');
if (fields.length !== 9) return false;
@@ -32,7 +32,7 @@ export const isCustomConnector = (connectorId: string) => {
return true;
};
-export const isManagedConnector = (connectorId: string) => {
+export const isManagedConnectorId = (connectorId: string) => {
// Note: connectorId format: /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Logic/integrationServiceEnvironments/{ise}/managedApis/{connector}
const fields = connectorId.split('/');
if (fields.length !== 11) return false;
@@ -47,7 +47,7 @@ export const isManagedConnector = (connectorId: string) => {
return true;
};
-export const isSharedManagedConnector = (connectorId: string) => {
+export const isSharedManagedConnectorId = (connectorId: string) => {
// Note: connectorId format: /subscriptions/{sub}/providers/Microsoft.Web/locations/{location}/managedApis/{connector}
const fields = connectorId.split('/');
if (fields.length !== 9) return false;
@@ -61,7 +61,7 @@ export const isSharedManagedConnector = (connectorId: string) => {
return true;
};
-export const isSharedManagedConnectorFromPApps = (connectorId: string) => {
+export const isSharedManagedConnectorIdFromPApps = (connectorId: string) => {
// Note: connectorId format: /providers/Microsoft.PowerApps/apis/{connector}
const fields = connectorId.split('/');
if (fields.length !== 5) return false;
diff --git a/libs/services/designer-client-services/src/lib/base/connection.ts b/libs/services/designer-client-services/src/lib/base/connection.ts
index aadd9f2c2a5..ee604a5415b 100644
--- a/libs/services/designer-client-services/src/lib/base/connection.ts
+++ b/libs/services/designer-client-services/src/lib/base/connection.ts
@@ -8,10 +8,9 @@ import type {
ConnectorWithSwagger,
} from '../connection';
import type { HttpRequestOptions, IHttpClient, QueryParameters } from '../httpClient';
-import { SwaggerParser } from '@microsoft/logic-apps-shared';
import type { Connection, Connector, OpenAPIV2 } from '@microsoft/logic-apps-shared';
import {
- isCustomConnector,
+ isCustomConnectorId,
getUniqueName,
HTTP_METHODS,
UserErrorCode,
@@ -19,6 +18,7 @@ import {
isArmResourceId,
ArgumentException,
equals,
+ SwaggerParser,
} from '@microsoft/logic-apps-shared';
export interface ApiHubServiceDetails {
@@ -252,7 +252,7 @@ export abstract class BaseConnectionService implements IConnectionService {
protected async getConnectionsForConnector(connectorId: string): Promise {
if (isArmResourceId(connectorId)) {
// Right now there isn't a name $filter for custom connections, so we need to filter them manually
- if (isCustomConnector(connectorId)) {
+ if (isCustomConnectorId(connectorId)) {
const { location, apiVersion, httpClient } = this.options;
const response = await httpClient.get({
uri: `${this._subscriptionResourceGroupWebUrl}/connections`,
diff --git a/libs/services/designer-client-services/src/lib/host.ts b/libs/services/designer-client-services/src/lib/host.ts
index 986c58c0d9e..9c2ee66ff1c 100644
--- a/libs/services/designer-client-services/src/lib/host.ts
+++ b/libs/services/designer-client-services/src/lib/host.ts
@@ -1,3 +1,4 @@
+import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
import { AssertionErrorCode, AssertionException } from '@microsoft/logic-apps-shared';
export const ContentType = {
@@ -6,10 +7,12 @@ export const ContentType = {
} as const;
export type ContentType = (typeof ContentType)[keyof typeof ContentType];
+export type IsConnectorFn = (connector: OperationApi | Connector | string) => boolean;
+
export interface IHostService {
fetchAndDisplayContent(title: string, url: string, type: ContentType): void;
- isBuiltInConnector?(connectorId: string): boolean;
- isCustomConnector?(connectorId: string): boolean;
+ isBuiltInConnector?: IsConnectorFn;
+ isCustomConnector?: IsConnectorFn;
openWorkflowParametersBlade?(): void;
openConnectionResource?(connectionId: string): void;
}
diff --git a/libs/services/designer-client-services/src/lib/staticresultschema/index.ts b/libs/services/designer-client-services/src/lib/staticresultschema/index.ts
index c735f5c2555..35f03265e40 100644
--- a/libs/services/designer-client-services/src/lib/staticresultschema/index.ts
+++ b/libs/services/designer-client-services/src/lib/staticresultschema/index.ts
@@ -22,10 +22,10 @@ import { ParseJsonStaticResultSchema } from './schemas/parseJson';
import { QueryStaticResultSchema } from './schemas/query';
import type { ManifestParser, SwaggerParser } from '@microsoft/logic-apps-shared';
import {
- isCustomConnector,
- isManagedConnector,
- isSharedManagedConnectorFromPApps,
- isSharedManagedConnector,
+ isCustomConnectorId,
+ isManagedConnectorId,
+ isSharedManagedConnectorIdFromPApps,
+ isSharedManagedConnectorId,
} from '@microsoft/logic-apps-shared';
/**
@@ -76,10 +76,10 @@ export class StaticResultSchemaService implements IStaticResultSchemaService {
break;
default:
if (
- (isSharedManagedConnector(connectorId) ||
- isSharedManagedConnectorFromPApps(connectorId) ||
- isCustomConnector(connectorId) ||
- isManagedConnector(connectorId)) &&
+ (isSharedManagedConnectorId(connectorId) ||
+ isSharedManagedConnectorIdFromPApps(connectorId) ||
+ isCustomConnectorId(connectorId) ||
+ isManagedConnectorId(connectorId)) &&
parser
) {
return getStaticResultSchemaForAPIConnector(operationId, parser);
From 0631c11f2b1eaf2e9cf1a1f9b03184363b0b318f Mon Sep 17 00:00:00 2001
From: ek <1350074+ek68794998@users.noreply.github.com>
Date: Fri, 1 Mar 2024 17:15:39 -0800
Subject: [PATCH 05/14] Fix some controls still using connector ID
---
.../src/lib/connectors/connectorPredicates.ts | 13 ++++---
.../src/lib/connectors/connectorProperties.ts | 37 ++++++++++---------
.../recommendationpanel/browseResults.tsx | 4 +-
.../operationSearchGroup/index.tsx | 2 +-
.../connectorConnectionsCard.tsx | 4 +-
.../designer-client-services/src/lib/host.ts | 4 +-
6 files changed, 34 insertions(+), 30 deletions(-)
diff --git a/libs/designer-ui/src/lib/connectors/connectorPredicates.ts b/libs/designer-ui/src/lib/connectors/connectorPredicates.ts
index 88220a13d24..d115c1ac76c 100644
--- a/libs/designer-ui/src/lib/connectors/connectorPredicates.ts
+++ b/libs/designer-ui/src/lib/connectors/connectorPredicates.ts
@@ -1,21 +1,24 @@
-import type { IsConnectorFn } from '@microsoft/designer-client-services-logic-apps';
import { HostService } from '@microsoft/designer-client-services-logic-apps';
+import type { Connector, OperationApi} from '@microsoft/logic-apps-shared';
import { isBuiltInConnectorId, isCustomConnectorId, isString } from '@microsoft/logic-apps-shared';
+import { getAllConnectorProperties } from './connectorProperties';
-export const isBuiltInConnector: IsConnectorFn = (connector) => {
+export const isBuiltInConnector = (connector: Connector | OperationApi | string): boolean => {
const hostIsBuiltInConnectorFn = HostService()?.isBuiltInConnector;
if (hostIsBuiltInConnectorFn) {
- return hostIsBuiltInConnectorFn(connector);
+ const connectorParameter = isString(connector) ? connector : getAllConnectorProperties(connector);
+ return hostIsBuiltInConnectorFn(connectorParameter);
}
const connectorId = isString(connector) ? connector : connector.id;
return isBuiltInConnectorId(connectorId);
};
-export const isCustomConnector: IsConnectorFn = (connector) => {
+export const isCustomConnector = (connector: Connector | OperationApi | string): boolean => {
const hostIsCustomConnectorFn = HostService()?.isCustomConnector;
if (hostIsCustomConnectorFn) {
- return hostIsCustomConnectorFn(connector);
+ const connectorParameter = isString(connector) ? connector : getAllConnectorProperties(connector);
+ return hostIsCustomConnectorFn(connectorParameter);
}
const connectorId = isString(connector) ? connector : connector.id;
diff --git a/libs/designer-ui/src/lib/connectors/connectorProperties.ts b/libs/designer-ui/src/lib/connectors/connectorProperties.ts
index ae0b2626044..541d58b1148 100644
--- a/libs/designer-ui/src/lib/connectors/connectorProperties.ts
+++ b/libs/designer-ui/src/lib/connectors/connectorProperties.ts
@@ -1,33 +1,34 @@
import type { Connector, ConnectorProperty, OperationApi } from '@microsoft/logic-apps-shared';
import { fallbackConnectorIconUrl } from '@microsoft/logic-apps-shared';
-export const getBrandColorFromConnector = (connector: Connector | OperationApi | undefined): string => {
- return getFlatConnectorData(connector)?.brandColor ?? '#000000';
+export const getAllConnectorProperties = (connector: Connector | OperationApi | undefined): Partial => {
+ if (!connector) {
+ return {};
+ }
+
+ if ('properties' in connector) {
+ return { id: connector.id, ...connector.properties };
+ }
+
+ return connector;
};
-export const getDisplayNameFromConnector = (connector: Connector | OperationApi | undefined): string => {
- return getFlatConnectorData(connector)?.displayName ?? '';
+export const getBrandColorFromConnector = (connector: Connector | OperationApi | undefined): string => {
+ console.log(connector, getAllConnectorProperties(connector), getAllConnectorProperties(connector)?.brandColor);
+ return getAllConnectorProperties(connector)?.brandColor ?? '#000000';
};
export const getDescriptionFromConnector = (connector: Connector | OperationApi | undefined): string => {
- const connectorData = getFlatConnectorData(connector);
+ const connectorData = getAllConnectorProperties(connector);
return connectorData.description ?? connectorData.generalInformation?.description ?? '';
};
+export const getDisplayNameFromConnector = (connector: Connector | OperationApi | undefined): string => {
+ return getAllConnectorProperties(connector)?.displayName ?? '';
+};
+
export const getIconUriFromConnector = (connector: Connector | OperationApi | undefined): string => {
- const connectorData = getFlatConnectorData(connector);
+ const connectorData = getAllConnectorProperties(connector);
const iconUrl = connectorData.iconUrl ?? connectorData.iconUri ?? connectorData.generalInformation?.iconUrl;
return fallbackConnectorIconUrl(iconUrl);
};
-
-const getFlatConnectorData = (connector: Connector | OperationApi | undefined): Partial => {
- if (!connector) {
- return {};
- }
-
- if ('properties' in connector) {
- return { id: connector.id, ...connector.properties };
- }
-
- return connector;
-};
diff --git a/libs/designer-ui/src/lib/panel/recommendationpanel/browseResults.tsx b/libs/designer-ui/src/lib/panel/recommendationpanel/browseResults.tsx
index 0c13d4fefe7..eb4760349ee 100644
--- a/libs/designer-ui/src/lib/panel/recommendationpanel/browseResults.tsx
+++ b/libs/designer-ui/src/lib/panel/recommendationpanel/browseResults.tsx
@@ -35,9 +35,9 @@ export const BrowseGrid = (props: BrowseGridProps) => {
diff --git a/libs/designer-ui/src/lib/panel/recommendationpanel/operationSearchGroup/index.tsx b/libs/designer-ui/src/lib/panel/recommendationpanel/operationSearchGroup/index.tsx
index e5cf0237ee3..4030879c4e0 100644
--- a/libs/designer-ui/src/lib/panel/recommendationpanel/operationSearchGroup/index.tsx
+++ b/libs/designer-ui/src/lib/panel/recommendationpanel/operationSearchGroup/index.tsx
@@ -20,7 +20,7 @@ export const OperationSearchGroup = (props: OperationSearchGroupProps) => {
const intl = useIntl();
- const category = getConnectorCategoryString(id);
+ const category = getConnectorCategoryString(operationApi);
const seeMoreText = intl.formatMessage({
defaultMessage: 'See more',
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
index 1c6f9debb6b..eb1b9be63c9 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
@@ -31,8 +31,8 @@ export const ConnectorConnectionsCard: React.FC =
const iconUri = getIconUriFromConnector(connector);
const brandColor = getBrandColorFromConnector(connector);
- const isBuiltIn = isBuiltInConnector(connectorId);
- const category = getConnectorCategoryString(connectorId);
+ const isBuiltIn = isBuiltInConnector(connector ?? connectorId);
+ const category = getConnectorCategoryString(connector ?? connectorId);
const allErrors = useAllConnectionErrors();
const hasErrors = useMemo(() => {
diff --git a/libs/services/designer-client-services/src/lib/host.ts b/libs/services/designer-client-services/src/lib/host.ts
index 9c2ee66ff1c..18c19125fc7 100644
--- a/libs/services/designer-client-services/src/lib/host.ts
+++ b/libs/services/designer-client-services/src/lib/host.ts
@@ -1,4 +1,4 @@
-import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
+import type { ConnectorProperty, OperationApi } from '@microsoft/logic-apps-shared';
import { AssertionErrorCode, AssertionException } from '@microsoft/logic-apps-shared';
export const ContentType = {
@@ -7,7 +7,7 @@ export const ContentType = {
} as const;
export type ContentType = (typeof ContentType)[keyof typeof ContentType];
-export type IsConnectorFn = (connector: OperationApi | Connector | string) => boolean;
+type IsConnectorFn = (connector: Partial | string) => boolean;
export interface IHostService {
fetchAndDisplayContent(title: string, url: string, type: ContentType): void;
From 854b5ff42e9a86401b949e11080b55a4620e2dbb Mon Sep 17 00:00:00 2001
From: ek <1350074+ek68794998@users.noreply.github.com>
Date: Fri, 1 Mar 2024 17:15:59 -0800
Subject: [PATCH 06/14] Permit known `isBuiltIn` and `isCustomApi` fields on
`OperationApi`
---
.../src/utils/src/lib/models/operationDiscoveryResults.ts | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libs/logic-apps-shared/src/utils/src/lib/models/operationDiscoveryResults.ts b/libs/logic-apps-shared/src/utils/src/lib/models/operationDiscoveryResults.ts
index 36d1c5bde8a..a301bd909d9 100644
--- a/libs/logic-apps-shared/src/utils/src/lib/models/operationDiscoveryResults.ts
+++ b/libs/logic-apps-shared/src/utils/src/lib/models/operationDiscoveryResults.ts
@@ -10,6 +10,8 @@ export interface OperationApi {
iconUri: string;
category?: 'Standard'; // could be consumption too
id: string;
+ isBuiltIn?: boolean;
+ isCustomApi?: boolean;
location?: string;
name?: string;
tier?: string;
From 0fd489f0a63015ebbfc94212a04d98096f6ea35e Mon Sep 17 00:00:00 2001
From: ek <1350074+ek68794998@users.noreply.github.com>
Date: Fri, 1 Mar 2024 17:29:24 -0800
Subject: [PATCH 07/14] Add tests for new `connections/*` fns
---
.../__test__/connectorPredicates.spec.tsx | 70 +++++++
.../__test__/connectorProperties.spec.tsx | 188 ++++++++++++++++++
.../src/lib/connectors/connectorProperties.ts | 1 -
3 files changed, 258 insertions(+), 1 deletion(-)
create mode 100644 libs/designer-ui/src/lib/connectors/__test__/connectorPredicates.spec.tsx
create mode 100644 libs/designer-ui/src/lib/connectors/__test__/connectorProperties.spec.tsx
diff --git a/libs/designer-ui/src/lib/connectors/__test__/connectorPredicates.spec.tsx b/libs/designer-ui/src/lib/connectors/__test__/connectorPredicates.spec.tsx
new file mode 100644
index 00000000000..5abbb40256f
--- /dev/null
+++ b/libs/designer-ui/src/lib/connectors/__test__/connectorPredicates.spec.tsx
@@ -0,0 +1,70 @@
+import { isBuiltInConnector } from '../index';
+import * as DesignerClientServices from '@microsoft/designer-client-services-logic-apps';
+import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
+
+const getMinimalHostService = (): DesignerClientServices.IHostService => ({
+ fetchAndDisplayContent: jest.fn(),
+});
+
+describe('lib/connectors/connectorProperties', () => {
+ afterEach(() => {
+ jest.restoreAllMocks();
+ });
+
+ describe('isBuiltInConnector', () => {
+ describe('works with no host service callbacks using', () => {
+ test('string input', () => {
+ jest.spyOn(DesignerClientServices, 'HostService').mockImplementation(getMinimalHostService);
+
+ expect(isBuiltInConnector('/builtin/Terminate')).toBe(true);
+ expect(isBuiltInConnector('/subscriptions/special/builtin/format')).toBe(false);
+ });
+
+ test('Connector input', () => {
+ jest.spyOn(DesignerClientServices, 'HostService').mockImplementation(getMinimalHostService);
+
+ expect(isBuiltInConnector({ id: '/builtin/Terminate' } as Connector)).toBe(true);
+ expect(isBuiltInConnector({ id: '/subscriptions/special/builtin/format' } as Connector)).toBe(false);
+ });
+
+ test('OperationApi input', () => {
+ jest.spyOn(DesignerClientServices, 'HostService').mockImplementation(getMinimalHostService);
+
+ expect(isBuiltInConnector({ id: '/builtin/Terminate' } as OperationApi)).toBe(true);
+ expect(isBuiltInConnector({ id: '/subscriptions/special/builtin/format' } as OperationApi)).toBe(false);
+ });
+ });
+
+ describe('works with host service callback using', () => {
+ test('string input', () => {
+ jest.spyOn(DesignerClientServices, 'HostService').mockImplementation(() => ({
+ ...getMinimalHostService(),
+ isBuiltInConnector: jest.fn().mockImplementation((value: string) => value === '/subscriptions/special/builtin/format'),
+ }));
+
+ expect(isBuiltInConnector('/builtin/Terminate')).toBe(false);
+ expect(isBuiltInConnector('/subscriptions/special/builtin/format')).toBe(true);
+ });
+
+ test('Connector input', () => {
+ jest.spyOn(DesignerClientServices, 'HostService').mockImplementation(() => ({
+ ...getMinimalHostService(),
+ isBuiltInConnector: jest.fn().mockImplementation((value: Connector) => value.id === '/subscriptions/special/builtin/format'),
+ }));
+
+ expect(isBuiltInConnector({ id: '/builtin/Terminate' } as Connector)).toBe(false);
+ expect(isBuiltInConnector({ id: '/subscriptions/special/builtin/format' } as Connector)).toBe(true);
+ });
+
+ test('OperationApi input', () => {
+ jest.spyOn(DesignerClientServices, 'HostService').mockImplementation(() => ({
+ ...getMinimalHostService(),
+ isBuiltInConnector: jest.fn().mockImplementation((value: OperationApi) => value.id === '/subscriptions/special/builtin/format'),
+ }));
+
+ expect(isBuiltInConnector({ id: '/builtin/Terminate' } as OperationApi)).toBe(false);
+ expect(isBuiltInConnector({ id: '/subscriptions/special/builtin/format' } as OperationApi)).toBe(true);
+ });
+ });
+ });
+});
diff --git a/libs/designer-ui/src/lib/connectors/__test__/connectorProperties.spec.tsx b/libs/designer-ui/src/lib/connectors/__test__/connectorProperties.spec.tsx
new file mode 100644
index 00000000000..657d6dc25e7
--- /dev/null
+++ b/libs/designer-ui/src/lib/connectors/__test__/connectorProperties.spec.tsx
@@ -0,0 +1,188 @@
+import {
+ getAllConnectorProperties,
+ getBrandColorFromConnector,
+ getDescriptionFromConnector,
+ getDisplayNameFromConnector,
+ getIconUriFromConnector,
+} from '../index';
+import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
+
+describe('lib/connectors/connectorProperties', () => {
+ describe('getAllConnectorProperties', () => {
+ test('works for a Connector', () => {
+ const connector = {
+ id: '/connector/id',
+ properties: {
+ brandColor: 'red',
+ },
+ } as Connector;
+ expect(getAllConnectorProperties(connector)).toEqual({
+ brandColor: 'red',
+ id: '/connector/id',
+ });
+ });
+
+ test('works for an OperationApi', () => {
+ const connector = {
+ brandColor: 'red',
+ id: '/connector/id',
+ } as OperationApi;
+ expect(getAllConnectorProperties(connector)).toEqual({
+ brandColor: 'red',
+ id: '/connector/id',
+ });
+ });
+
+ test('works for undefined', () => {
+ expect(getAllConnectorProperties(undefined)).toEqual({});
+ });
+ });
+
+ describe('getBrandColorFromConnector', () => {
+ test('works for a Connector', () => {
+ const connector = {
+ properties: {
+ brandColor: 'red',
+ },
+ } as Connector;
+ expect(getBrandColorFromConnector(connector)).toBe('red');
+ });
+
+ test('works for an OperationApi', () => {
+ const connector = {
+ brandColor: 'red',
+ } as OperationApi;
+ expect(getBrandColorFromConnector(connector)).toBe('red');
+ });
+
+ test('works for undefined', () => {
+ expect(getBrandColorFromConnector(undefined)).toBe('#000000');
+ });
+ });
+
+ describe('getDescriptionFromConnector', () => {
+ describe('works for a Connector with', () => {
+ test('standard field only', () => {
+ const connector = {
+ properties: {
+ description: 'My connector',
+ },
+ } as Connector;
+ expect(getDescriptionFromConnector(connector)).toBe('My connector');
+ });
+
+ test('general information only', () => {
+ const connector = {
+ properties: {
+ generalInformation: {
+ description: 'My connector',
+ },
+ },
+ } as Connector;
+ expect(getDescriptionFromConnector(connector)).toBe('My connector');
+ });
+
+ test('general information and standard field', () => {
+ const connector = {
+ properties: {
+ description: 'My connector 1',
+ generalInformation: {
+ description: 'My connector 2',
+ },
+ },
+ } as Connector;
+ expect(getDescriptionFromConnector(connector)).toBe('My connector 1');
+ });
+ });
+
+ test('works for an OperationApi', () => {
+ const connector = {
+ description: 'My connector',
+ } as OperationApi;
+ expect(getDescriptionFromConnector(connector)).toBe('My connector');
+ });
+
+ test('works for undefined', () => {
+ expect(getDescriptionFromConnector(undefined)).toBe('');
+ });
+ });
+
+ describe('getDisplayNameFromConnector', () => {
+ test('works for a Connector', () => {
+ const connector = {
+ properties: {
+ displayName: 'My connector',
+ },
+ } as Connector;
+ expect(getDisplayNameFromConnector(connector)).toBe('My connector');
+ });
+
+ test('works for an OperationApi', () => {
+ const connector = {
+ displayName: 'My connector',
+ } as OperationApi;
+ expect(getDisplayNameFromConnector(connector)).toBe('My connector');
+ });
+
+ test('works for undefined', () => {
+ expect(getDisplayNameFromConnector(undefined)).toBe('');
+ });
+ });
+
+ describe('getIconUriFromConnector', () => {
+ describe('works for a Connector with', () => {
+ test('standard iconUrl field only', () => {
+ const connector = {
+ properties: {
+ iconUrl: 'https://example.com/icon.png',
+ },
+ } as Connector;
+ expect(getIconUriFromConnector(connector)).toBe('https://example.com/icon.png');
+ });
+
+ test('standard iconUri only', () => {
+ const connector = {
+ properties: {
+ iconUri: 'https://example.com/icon.png',
+ },
+ } as Connector;
+ expect(getIconUriFromConnector(connector)).toBe('https://example.com/icon.png');
+ });
+
+ test('general information only', () => {
+ const connector = {
+ properties: {
+ generalInformation: {
+ iconUrl: 'https://example.com/icon.png',
+ },
+ },
+ } as Connector;
+ expect(getIconUriFromConnector(connector)).toBe('https://example.com/icon.png');
+ });
+
+ test('general information and standard fields', () => {
+ const connector = {
+ properties: {
+ iconUri: 'https://example.com/icon1.png',
+ iconUrl: 'https://example.com/icon2.png',
+ generalInformation: {
+ iconUrl: 'https://example.com/icon3.png',
+ },
+ },
+ } as Connector;
+ expect(getIconUriFromConnector(connector)).toBe('https://example.com/icon2.png');
+ });
+ });
+
+ test('works for an OperationApi', () => {
+ const connector = {
+ description: 'https://example.com/icon.png',
+ } as OperationApi;
+ expect(getDescriptionFromConnector(connector)).toBe('https://example.com/icon.png');
+ });
+
+ test('works for undefined', () => {
+ expect(getDescriptionFromConnector(undefined)).toBe('');
+ });
+ });
+});
diff --git a/libs/designer-ui/src/lib/connectors/connectorProperties.ts b/libs/designer-ui/src/lib/connectors/connectorProperties.ts
index 541d58b1148..234a9ac92b0 100644
--- a/libs/designer-ui/src/lib/connectors/connectorProperties.ts
+++ b/libs/designer-ui/src/lib/connectors/connectorProperties.ts
@@ -14,7 +14,6 @@ export const getAllConnectorProperties = (connector: Connector | OperationApi |
};
export const getBrandColorFromConnector = (connector: Connector | OperationApi | undefined): string => {
- console.log(connector, getAllConnectorProperties(connector), getAllConnectorProperties(connector)?.brandColor);
return getAllConnectorProperties(connector)?.brandColor ?? '#000000';
};
From f3d58a9ed3c6419b37fc0da4086ad1d5521f553d Mon Sep 17 00:00:00 2001
From: ek <1350074+ek68794998@users.noreply.github.com>
Date: Fri, 1 Mar 2024 17:41:50 -0800
Subject: [PATCH 08/14] Clean up imports
---
.../src/lib/connectors/connectorPredicates.ts | 4 +-
libs/designer-ui/src/lib/utils/utils.ts | 2 +-
.../src/lib/core/actions/bjsworkflow/add.ts | 6 +--
.../core/actions/bjsworkflow/initialize.ts | 52 +++++++++----------
libs/designer/src/lib/core/utils/card.ts | 2 +-
libs/designer/src/lib/core/utils/outputs.ts | 36 ++++++-------
.../src/lib/core/utils/swagger/operation.ts | 16 +++---
.../allConnections/allConnections.tsx | 2 +-
.../connectorConnectionsCard.tsx | 2 +-
.../createConnectionWrapper.tsx | 4 +-
.../selectConnection/selectConnection.tsx | 2 +-
.../ui/panel/recommendation/browseView.tsx | 2 +-
.../src/utils/src/lib/helpers/connections.ts | 2 +-
.../src/lib/base/connection.ts | 12 ++---
.../src/lib/staticresultschema/index.ts | 2 +-
15 files changed, 73 insertions(+), 73 deletions(-)
diff --git a/libs/designer-ui/src/lib/connectors/connectorPredicates.ts b/libs/designer-ui/src/lib/connectors/connectorPredicates.ts
index d115c1ac76c..314f962906a 100644
--- a/libs/designer-ui/src/lib/connectors/connectorPredicates.ts
+++ b/libs/designer-ui/src/lib/connectors/connectorPredicates.ts
@@ -1,7 +1,7 @@
+import { getAllConnectorProperties } from './connectorProperties';
import { HostService } from '@microsoft/designer-client-services-logic-apps';
-import type { Connector, OperationApi} from '@microsoft/logic-apps-shared';
+import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
import { isBuiltInConnectorId, isCustomConnectorId, isString } from '@microsoft/logic-apps-shared';
-import { getAllConnectorProperties } from './connectorProperties';
export const isBuiltInConnector = (connector: Connector | OperationApi | string): boolean => {
const hostIsBuiltInConnectorFn = HostService()?.isBuiltInConnector;
diff --git a/libs/designer-ui/src/lib/utils/utils.ts b/libs/designer-ui/src/lib/utils/utils.ts
index 1cf45456487..d94fb86b1c1 100644
--- a/libs/designer-ui/src/lib/utils/utils.ts
+++ b/libs/designer-ui/src/lib/utils/utils.ts
@@ -1,7 +1,7 @@
import { isBuiltInConnector, isCustomConnector } from '../connectors';
import Constants from '../constants';
import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
-import { getIntl, equals } from '@microsoft/logic-apps-shared';
+import { equals, getIntl } from '@microsoft/logic-apps-shared';
/**
* Returns a string with a duration, possibly abbreviated, e.g., 15s or 15 second(s)
diff --git a/libs/designer/src/lib/core/actions/bjsworkflow/add.ts b/libs/designer/src/lib/core/actions/bjsworkflow/add.ts
index 187be0bed79..939906df56c 100644
--- a/libs/designer/src/lib/core/actions/bjsworkflow/add.ts
+++ b/libs/designer/src/lib/core/actions/bjsworkflow/add.ts
@@ -17,8 +17,8 @@ import { getBrandColorFromManifest, getIconUriFromManifest } from '../../utils/c
import { getTriggerNodeId, isRootNodeInGraph } from '../../utils/graph';
import { updateDynamicDataInNode } from '../../utils/parameters/helper';
import { getInputParametersFromSwagger, getOutputParametersFromSwagger } from '../../utils/swagger/operation';
-import { getTokenNodeIds, getBuiltInTokens, convertOutputsToTokens } from '../../utils/tokens';
-import { setVariableMetadata, getVariableDeclarations, getAllVariables } from '../../utils/variables';
+import { convertOutputsToTokens, getBuiltInTokens, getTokenNodeIds } from '../../utils/tokens';
+import { getAllVariables, getVariableDeclarations, setVariableMetadata } from '../../utils/variables';
import { isConnectionRequiredForOperation, updateNodeConnection } from './connections';
import {
getInputParametersFromManifest,
@@ -32,12 +32,12 @@ import { getOperationSettings, getSplitOnValue } from './settings';
import { ConnectionService, OperationManifestService, StaticResultService } from '@microsoft/designer-client-services-logic-apps';
import { getBrandColorFromConnector, getIconUriFromConnector } from '@microsoft/designer-ui';
import type {
- SwaggerParser,
Connector,
DiscoveryOperation,
DiscoveryResultTypes,
OperationManifest,
SomeKindOfAzureOperationDiscovery,
+ SwaggerParser,
} from '@microsoft/logic-apps-shared';
import { ManifestParser, equals, getRecordEntry } from '@microsoft/logic-apps-shared';
import type { Dispatch } from '@reduxjs/toolkit';
diff --git a/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts b/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts
index 8eb1d7040d0..125b4e2ba8a 100644
--- a/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts
+++ b/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts
@@ -4,7 +4,7 @@ import type { WorkflowNode } from '../../parsers/models/workflowNode';
import { getConnectorWithSwagger, getSwaggerFromEndpoint } from '../../queries/connections';
import { getOperationManifest } from '../../queries/operation';
import type { DependencyInfo, NodeInputs, NodeOperation, NodeOutputs, OutputInfo } from '../../state/operation/operationMetadataSlice';
-import { updateNodeSettings, updateNodeParameters, DynamicLoadStatus, updateOutputs } from '../../state/operation/operationMetadataSlice';
+import { DynamicLoadStatus, updateNodeParameters, updateNodeSettings, updateOutputs } from '../../state/operation/operationMetadataSlice';
import type { UpdateUpstreamNodesPayload } from '../../state/tokens/tokensSlice';
import { updateTokens, updateUpstreamNodes } from '../../state/tokens/tokensSlice';
import { WorkflowKind } from '../../state/workflow/workflowInterfaces';
@@ -14,6 +14,7 @@ import type { RootState } from '../../store';
import { getTriggerNodeId, isRootNodeInGraph } from '../../utils/graph';
import { getSplitOnOptions, getUpdatedManifestForSchemaDependency, getUpdatedManifestForSplitOn, toOutputInfo } from '../../utils/outputs';
import {
+ ParameterGroupKeys,
addRecurrenceParametersInGroup,
getAllInputParameters,
getDependentParameters,
@@ -21,7 +22,6 @@ import {
getParameterFromName,
getParametersSortedByVisibility,
loadParameterValuesArrayFromDefault,
- ParameterGroupKeys,
toParameterInfoMap,
updateParameterWithValues,
} from '../../utils/parameters/helper';
@@ -32,48 +32,48 @@ import type { NodeInputsWithDependencies, NodeOutputsWithDependencies } from './
import type { Settings } from './settings';
import type {
IConnectionService,
+ IOAuthService,
IOperationManifestService,
ISearchService,
- IOAuthService,
IWorkflowService,
} from '@microsoft/designer-client-services-logic-apps';
import {
- WorkflowService,
- LoggerService,
+ ApiManagementService,
+ FunctionService,
LogEntryLevel,
+ LoggerService,
OperationManifestService,
- FunctionService,
- ApiManagementService,
+ WorkflowService,
} from '@microsoft/designer-client-services-logic-apps';
import { getBrandColorFromConnector, getIconUriFromConnector, type OutputToken, type ParameterInfo } from '@microsoft/designer-ui';
+import type {
+ CustomSwaggerServiceDetails,
+ InputParameter,
+ OperationInfo,
+ OperationManifest,
+ OperationManifestProperties,
+ OutputParameter,
+ SchemaProperty,
+ SwaggerParser,
+} from '@microsoft/logic-apps-shared';
import {
+ ConnectionReferenceKeyFormat,
+ CustomSwaggerServiceNames,
+ DynamicSchemaType,
+ ManifestParser,
+ PropertyName,
+ UnsupportedException,
+ clone,
+ equals,
getIntl,
+ getObjectPropertyValue,
isDynamicListExtension,
isDynamicPropertiesExtension,
isDynamicSchemaExtension,
isDynamicTreeExtension,
isLegacyDynamicValuesExtension,
isLegacyDynamicValuesTreeExtension,
- DynamicSchemaType,
- ManifestParser,
- PropertyName,
- CustomSwaggerServiceNames,
- UnsupportedException,
- clone,
- equals,
- ConnectionReferenceKeyFormat,
unmap,
- getObjectPropertyValue,
-} from '@microsoft/logic-apps-shared';
-import type {
- SchemaProperty,
- InputParameter,
- SwaggerParser,
- OutputParameter,
- CustomSwaggerServiceDetails,
- OperationInfo,
- OperationManifest,
- OperationManifestProperties,
} from '@microsoft/logic-apps-shared';
import type { Dispatch } from '@reduxjs/toolkit';
diff --git a/libs/designer/src/lib/core/utils/card.ts b/libs/designer/src/lib/core/utils/card.ts
index fbfe2969ec6..36da0873818 100644
--- a/libs/designer/src/lib/core/utils/card.ts
+++ b/libs/designer/src/lib/core/utils/card.ts
@@ -1,5 +1,5 @@
import { getBrandColorFromConnector, getIconUriFromConnector } from '@microsoft/designer-ui';
-import type { OperationManifest } from '@microsoft/utils-logic-apps';
+import type { OperationManifest } from '@microsoft/logic-apps-shared';
export function getBrandColorFromManifest(manifest: OperationManifest): string {
return manifest.properties?.brandColor ?? getBrandColorFromConnector(manifest.properties?.connector);
diff --git a/libs/designer/src/lib/core/utils/outputs.ts b/libs/designer/src/lib/core/utils/outputs.ts
index 3458940b192..a065e22a585 100644
--- a/libs/designer/src/lib/core/utils/outputs.ts
+++ b/libs/designer/src/lib/core/utils/outputs.ts
@@ -7,9 +7,9 @@ import { getOperationManifest } from '../queries/operation';
import type { DependencyInfo, NodeInputs, NodeOperation, NodeOutputs, OutputInfo } from '../state/operation/operationMetadataSlice';
import {
ErrorLevel,
- updateErrorDetails,
- clearDynamicOutputs,
addDynamicOutputs,
+ clearDynamicOutputs,
+ updateErrorDetails,
updateExisitingInputTokenTitles,
} from '../state/operation/operationMetadataSlice';
import { addDynamicTokens } from '../state/tokens/tokensSlice';
@@ -26,40 +26,40 @@ import {
import { convertOutputsToTokens, getTokenTitle } from './tokens';
import { OperationManifestService } from '@microsoft/designer-client-services-logic-apps';
import {
+ ValueSegmentType,
generateSchemaFromJsonString,
getBrandColorFromConnector,
getIconUriFromConnector,
- ValueSegmentType,
} from '@microsoft/designer-ui';
import type {
Expression,
ExpressionFunction,
ExpressionLiteral,
- OutputParameter,
- OutputParameters,
- OpenApiSchema,
OpenAPIV2,
+ OpenApiSchema,
OperationManifest,
+ OutputParameter,
+ OutputParameters,
} from '@microsoft/logic-apps-shared';
import {
- create,
- getIntl,
- OutputKeys,
- OutputSource,
+ AssertionErrorCode,
+ AssertionException,
+ ConnectionReferenceKeyFormat,
ExpressionParser,
ExtensionProperties,
- isTemplateExpression,
+ OutputKeys,
+ OutputSource,
+ clone,
+ create,
+ equals,
+ getIntl,
+ getObjectPropertyValue,
isFunction,
isStringLiteral,
- ConnectionReferenceKeyFormat,
- getObjectPropertyValue,
+ isTemplateExpression,
+ parseErrorMessage,
safeSetObjectPropertyValue,
unmap,
- AssertionErrorCode,
- AssertionException,
- clone,
- equals,
- parseErrorMessage,
} from '@microsoft/logic-apps-shared';
import type { Dispatch } from '@reduxjs/toolkit';
diff --git a/libs/designer/src/lib/core/utils/swagger/operation.ts b/libs/designer/src/lib/core/utils/swagger/operation.ts
index 55c0dc917fa..0c139674b30 100644
--- a/libs/designer/src/lib/core/utils/swagger/operation.ts
+++ b/libs/designer/src/lib/core/utils/swagger/operation.ts
@@ -13,34 +13,34 @@ import type {
import { getOperationSettings } from '../../actions/bjsworkflow/settings';
import { getConnectorWithSwagger } from '../../queries/connections';
import type { DependencyInfo, NodeInputs, NodeOperation, OutputInfo } from '../../state/operation/operationMetadataSlice';
-import { ErrorLevel, updateErrorDetails, DynamicLoadStatus, initializeOperationInfo } from '../../state/operation/operationMetadataSlice';
+import { DynamicLoadStatus, ErrorLevel, initializeOperationInfo, updateErrorDetails } from '../../state/operation/operationMetadataSlice';
import { addResultSchema } from '../../state/staticresultschema/staticresultsSlice';
import type { WorkflowKind } from '../../state/workflow/workflowInterfaces';
import { toOutputInfo, updateOutputsForBatchingTrigger } from '../outputs';
import {
+ ParameterGroupKeys,
addRecurrenceParametersInGroup,
getDependentParameters,
getParametersSortedByVisibility,
loadParameterValuesFromDefault,
- ParameterGroupKeys,
toParameterInfoMap,
updateParameterWithValues,
} from '../parameters/helper';
import { loadInputValuesFromDefinition } from './inputsbuilder';
import { LogEntryLevel, LoggerService, StaticResultService } from '@microsoft/designer-client-services-logic-apps';
import { getBrandColorFromConnector, getIconUriFromConnector } from '@microsoft/designer-ui';
-import type { LAOperation, OutputParameter, SwaggerParser, LogicAppsV2, OperationInfo } from '@microsoft/logic-apps-shared';
+import type { LAOperation, LogicAppsV2, OperationInfo, OutputParameter, SwaggerParser } from '@microsoft/logic-apps-shared';
import {
+ ParameterLocations,
+ RecurrenceType,
+ copyArray,
create,
+ equals,
isDynamicSchemaExtension,
- ParameterLocations,
- removeConnectionPrefix,
isTemplateExpression,
- copyArray,
map,
- RecurrenceType,
- equals,
parsePathnameAndQueryKeyFromUri,
+ removeConnectionPrefix,
startsWith,
unmap,
} from '@microsoft/logic-apps-shared';
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/allConnections.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/allConnections.tsx
index 51d40fba6f3..7bfca49e6e0 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/allConnections.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/allConnections.tsx
@@ -1,4 +1,4 @@
-import { type RootState, useConnectionMapping, useConnectionRefs } from '../../../../core';
+import { useConnectionMapping, useConnectionRefs, type RootState } from '../../../../core';
import { useConnector } from '../../../../core/state/connection/connectionSelector';
import { ConnectorConnectionsCard } from './connectorConnectionsCard';
import { Accordion, AccordionItem, type AccordionToggleEventHandler } from '@fluentui/react-components';
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
index eb1b9be63c9..5efa06b4433 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
@@ -1,6 +1,6 @@
import { useAllConnectionErrors } from '../../../../core';
import { ConnectionEntry } from './connectionEntry';
-import { Text, AccordionHeader, AccordionPanel, Spinner, Badge } from '@fluentui/react-components';
+import { AccordionHeader, AccordionPanel, Badge, Spinner, Text } from '@fluentui/react-components';
import {
getBrandColorFromConnector,
getConnectorCategoryString,
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnectionWrapper.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnectionWrapper.tsx
index 08a0ce5439e..6baad221553 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnectionWrapper.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnectionWrapper.tsx
@@ -3,11 +3,11 @@ import type { AppDispatch, RootState } from '../../../../core';
import { useOperationInfo, useSelectedNodeId, useSelectedNodeIds } from '../../../../core';
import type { ConnectionPayload } from '../../../../core/actions/bjsworkflow/connections';
import {
+ getApiHubAuthentication,
getConnectionMetadata,
getConnectionProperties,
- getApiHubAuthentication,
- updateNodeConnection,
needsOAuth,
+ updateNodeConnection,
} from '../../../../core/actions/bjsworkflow/connections';
import { getUniqueConnectionName } from '../../../../core/queries/connections';
import {
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/selectConnection/selectConnection.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/selectConnection/selectConnection.tsx
index 286c75a12dd..ac583877460 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/selectConnection/selectConnection.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/selectConnection/selectConnection.tsx
@@ -1,7 +1,7 @@
import { type AppDispatch } from '../../../../core';
import { updateNodeConnection } from '../../../../core/actions/bjsworkflow/connections';
import { useConnectionsForConnector } from '../../../../core/queries/connections';
-import { useNodeConnectionId, useConnectorByNodeId } from '../../../../core/state/connection/connectionSelector';
+import { useConnectorByNodeId, useNodeConnectionId } from '../../../../core/state/connection/connectionSelector';
import { useIsXrmConnectionReferenceMode } from '../../../../core/state/designerOptions/designerOptionsSelectors';
import { useReferencePanelMode, useSelectedNodeIds } from '../../../../core/state/panel/panelSelectors';
import { openPanel, setIsCreatingConnection } from '../../../../core/state/panel/panelSlice';
diff --git a/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx b/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx
index f3eaa17036d..4edd3d2a8e1 100644
--- a/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx
+++ b/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx
@@ -2,7 +2,7 @@ import { useAllApiIdsWithActions, useAllApiIdsWithTriggers, useAllConnectors } f
import { selectOperationGroupId } from '../../../core/state/panel/panelSlice';
import { SearchService } from '@microsoft/designer-client-services-logic-apps';
import { BrowseGrid, isBuiltInConnector, isCustomConnector } from '@microsoft/designer-ui';
-import { type Connector, cleanConnectorId } from '@microsoft/logic-apps-shared';
+import { cleanConnectorId, type Connector } from '@microsoft/logic-apps-shared';
import { useCallback, useMemo } from 'react';
import { useDispatch } from 'react-redux';
diff --git a/libs/logic-apps-shared/src/utils/src/lib/helpers/connections.ts b/libs/logic-apps-shared/src/utils/src/lib/helpers/connections.ts
index 18f450401ca..a8f25c5d478 100644
--- a/libs/logic-apps-shared/src/utils/src/lib/helpers/connections.ts
+++ b/libs/logic-apps-shared/src/utils/src/lib/helpers/connections.ts
@@ -1,7 +1,7 @@
import type { Connection, ConnectionStatus, ManagedIdentity } from '../models';
import { ResourceIdentityType } from '../models';
+import type { ConnectionParameter, Connector } from '../models/connector';
import { ConnectionParameterTypes } from '../models/connector';
-import type { Connector, ConnectionParameter } from '../models/connector';
import { equals, hasProperty } from './functions';
import type { IntlShape } from 'react-intl';
diff --git a/libs/services/designer-client-services/src/lib/base/connection.ts b/libs/services/designer-client-services/src/lib/base/connection.ts
index ee604a5415b..b26889529dc 100644
--- a/libs/services/designer-client-services/src/lib/base/connection.ts
+++ b/libs/services/designer-client-services/src/lib/base/connection.ts
@@ -3,22 +3,22 @@ import type { HttpResponse } from '../common/exceptions/service';
import type {
ConnectionCreationInfo,
ConnectionParametersMetadata,
+ ConnectorWithSwagger,
CreateConnectionResult,
IConnectionService,
- ConnectorWithSwagger,
} from '../connection';
import type { HttpRequestOptions, IHttpClient, QueryParameters } from '../httpClient';
import type { Connection, Connector, OpenAPIV2 } from '@microsoft/logic-apps-shared';
import {
- isCustomConnectorId,
- getUniqueName,
+ ArgumentException,
HTTP_METHODS,
+ SwaggerParser,
UserErrorCode,
UserException,
- isArmResourceId,
- ArgumentException,
equals,
- SwaggerParser,
+ getUniqueName,
+ isArmResourceId,
+ isCustomConnectorId,
} from '@microsoft/logic-apps-shared';
export interface ApiHubServiceDetails {
diff --git a/libs/services/designer-client-services/src/lib/staticresultschema/index.ts b/libs/services/designer-client-services/src/lib/staticresultschema/index.ts
index 35f03265e40..15ace5d7276 100644
--- a/libs/services/designer-client-services/src/lib/staticresultschema/index.ts
+++ b/libs/services/designer-client-services/src/lib/staticresultschema/index.ts
@@ -24,8 +24,8 @@ import type { ManifestParser, SwaggerParser } from '@microsoft/logic-apps-shared
import {
isCustomConnectorId,
isManagedConnectorId,
- isSharedManagedConnectorIdFromPApps,
isSharedManagedConnectorId,
+ isSharedManagedConnectorIdFromPApps,
} from '@microsoft/logic-apps-shared';
/**
From 3c972d744c18f43df3c9f9f0eb90beb091c02eae Mon Sep 17 00:00:00 2001
From: ek <1350074+ek68794998@users.noreply.github.com>
Date: Fri, 1 Mar 2024 18:00:09 -0800
Subject: [PATCH 09/14] Fix missing `metadata` field & add test for it
---
.../__test__/connectorProperties.spec.tsx | 39 +++++++++++++++----
.../src/lib/connectors/connectorProperties.ts | 3 +-
2 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/libs/designer-ui/src/lib/connectors/__test__/connectorProperties.spec.tsx b/libs/designer-ui/src/lib/connectors/__test__/connectorProperties.spec.tsx
index 657d6dc25e7..2a3c7f056f9 100644
--- a/libs/designer-ui/src/lib/connectors/__test__/connectorProperties.spec.tsx
+++ b/libs/designer-ui/src/lib/connectors/__test__/connectorProperties.spec.tsx
@@ -39,13 +39,38 @@ describe('lib/connectors/connectorProperties', () => {
});
describe('getBrandColorFromConnector', () => {
- test('works for a Connector', () => {
- const connector = {
- properties: {
- brandColor: 'red',
- },
- } as Connector;
- expect(getBrandColorFromConnector(connector)).toBe('red');
+ describe('works for a Connector with', () => {
+ test('standard field only', () => {
+ const connector = {
+ properties: {
+ brandColor: 'red',
+ },
+ } as Connector;
+ expect(getBrandColorFromConnector(connector)).toBe('red');
+ });
+
+ test('metadata field only', () => {
+ const connector = {
+ properties: {
+ metadata: {
+ brandColor: 'red',
+ },
+ },
+ } as Connector;
+ expect(getBrandColorFromConnector(connector)).toBe('red');
+ });
+
+ test('standard field and metadata field', () => {
+ const connector = {
+ properties: {
+ brandColor: 'red',
+ metadata: {
+ brandColor: 'blue',
+ },
+ },
+ } as Connector;
+ expect(getBrandColorFromConnector(connector)).toBe('red');
+ });
});
test('works for an OperationApi', () => {
diff --git a/libs/designer-ui/src/lib/connectors/connectorProperties.ts b/libs/designer-ui/src/lib/connectors/connectorProperties.ts
index 234a9ac92b0..5b1f1f4fd4c 100644
--- a/libs/designer-ui/src/lib/connectors/connectorProperties.ts
+++ b/libs/designer-ui/src/lib/connectors/connectorProperties.ts
@@ -14,7 +14,8 @@ export const getAllConnectorProperties = (connector: Connector | OperationApi |
};
export const getBrandColorFromConnector = (connector: Connector | OperationApi | undefined): string => {
- return getAllConnectorProperties(connector)?.brandColor ?? '#000000';
+ const connectorData = getAllConnectorProperties(connector);
+ return connectorData?.brandColor ?? connectorData.metadata?.brandColor ?? '#000000';
};
export const getDescriptionFromConnector = (connector: Connector | OperationApi | undefined): string => {
From b60c4bf394ae9eb0d883c720ba23a568f723d947 Mon Sep 17 00:00:00 2001
From: ek <1350074+ek68794998@users.noreply.github.com>
Date: Mon, 4 Mar 2024 12:47:39 -0800
Subject: [PATCH 10/14] Move `connectors` helpers to `logic-apps-shared`
---
.../src/lib/connectorsummarycard/index.tsx | 2 +-
libs/designer-ui/src/lib/index.ts | 1 -
.../recommendationpanel/searchResult.tsx | 2 +-
libs/designer-ui/src/lib/utils/utils.ts | 3 +-
.../src/lib/core/actions/bjsworkflow/add.ts | 33 +++++----
.../core/actions/bjsworkflow/initialize.ts | 68 ++++++++++---------
libs/designer/src/lib/core/utils/card.ts | 2 +-
libs/designer/src/lib/core/utils/outputs.ts | 4 +-
.../src/lib/core/utils/swagger/operation.ts | 3 +-
.../connectorConnectionsCard.tsx | 10 +--
.../createConnectionWrapper.tsx | 2 +-
.../selectConnection/selectConnection.tsx | 3 +-
.../ui/panel/recommendation/browseView.tsx | 4 +-
.../ui/panel/recommendation/searchView.tsx | 3 +-
.../__test__/connectorPredicates.spec.tsx | 2 +-
.../__test__/connectorProperties.spec.tsx | 2 +-
.../connectors/connectorPredicates.ts | 5 +-
.../connectors/connectorProperties.ts | 4 +-
.../src/lib/helpers}/connectors/index.ts | 0
.../src/utils/src/lib/helpers/index.ts | 1 +
20 files changed, 81 insertions(+), 73 deletions(-)
rename libs/{designer-ui/src/lib => logic-apps-shared/src/utils/src/lib/helpers}/connectors/__test__/connectorPredicates.spec.tsx (97%)
rename libs/{designer-ui/src/lib => logic-apps-shared/src/utils/src/lib/helpers}/connectors/__test__/connectorProperties.spec.tsx (98%)
rename libs/{designer-ui/src/lib => logic-apps-shared/src/utils/src/lib/helpers}/connectors/connectorPredicates.ts (86%)
rename libs/{designer-ui/src/lib => logic-apps-shared/src/utils/src/lib/helpers}/connectors/connectorProperties.ts (92%)
rename libs/{designer-ui/src/lib => logic-apps-shared/src/utils/src/lib/helpers}/connectors/index.ts (100%)
diff --git a/libs/designer-ui/src/lib/connectorsummarycard/index.tsx b/libs/designer-ui/src/lib/connectorsummarycard/index.tsx
index 09e7730ad9a..0aff00eba08 100644
--- a/libs/designer-ui/src/lib/connectorsummarycard/index.tsx
+++ b/libs/designer-ui/src/lib/connectorsummarycard/index.tsx
@@ -1,7 +1,7 @@
-import { getDescriptionFromConnector, getDisplayNameFromConnector, getIconUriFromConnector, isBuiltInConnector } from '../connectors';
import { InfoDot } from '../infoDot';
import { Text, css } from '@fluentui/react';
import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
+import { getDescriptionFromConnector, getDisplayNameFromConnector, getIconUriFromConnector, isBuiltInConnector } from '@microsoft/logic-apps-shared';
import { useCallback } from 'react';
export interface ConnectorSummaryCardProps {
diff --git a/libs/designer-ui/src/lib/index.ts b/libs/designer-ui/src/lib/index.ts
index 7d038804466..9fe4f1620fd 100644
--- a/libs/designer-ui/src/lib/index.ts
+++ b/libs/designer-ui/src/lib/index.ts
@@ -19,7 +19,6 @@ export * from './checkbox';
// export * from './colorizer'
export * from './code';
export * from './combobox';
-export * from './connectors';
export { default as UIConstants } from './constants';
export * from './html';
// export * from './conditioncontrol';
diff --git a/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx b/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx
index 05d1e47cf00..de588f3d5e0 100644
--- a/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx
+++ b/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx
@@ -1,6 +1,5 @@
import NoResultsSvg from '../../../assets/search/noResults.svg';
import { AriaSearchResultsAlert } from '../../ariaSearchResults/ariaSearchResultsAlert';
-import { isBuiltInConnector } from '../../connectors';
import { getConnectorCategoryString } from '../../utils';
import type { OperationActionData } from './interfaces';
import { OperationSearchCard } from './operationSearchCard';
@@ -8,6 +7,7 @@ import { OperationSearchGroup } from './operationSearchGroup';
import { List, Text } from '@fluentui/react';
import { Spinner } from '@fluentui/react-components';
import type { DiscoveryOpArray, DiscoveryOperation, DiscoveryResultTypes } from '@microsoft/logic-apps-shared';
+import { isBuiltInConnector } from '@microsoft/logic-apps-shared';
import type { PropsWithChildren } from 'react';
import React, { useMemo } from 'react';
import { useIntl } from 'react-intl';
diff --git a/libs/designer-ui/src/lib/utils/utils.ts b/libs/designer-ui/src/lib/utils/utils.ts
index d94fb86b1c1..decc989fde0 100644
--- a/libs/designer-ui/src/lib/utils/utils.ts
+++ b/libs/designer-ui/src/lib/utils/utils.ts
@@ -1,7 +1,6 @@
-import { isBuiltInConnector, isCustomConnector } from '../connectors';
import Constants from '../constants';
import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
-import { equals, getIntl } from '@microsoft/logic-apps-shared';
+import { equals, getIntl, isBuiltInConnector, isCustomConnector } from '@microsoft/logic-apps-shared';
/**
* Returns a string with a duration, possibly abbreviated, e.g., 15s or 15 second(s)
diff --git a/libs/designer/src/lib/core/actions/bjsworkflow/add.ts b/libs/designer/src/lib/core/actions/bjsworkflow/add.ts
index 939906df56c..f7bd95e5dca 100644
--- a/libs/designer/src/lib/core/actions/bjsworkflow/add.ts
+++ b/libs/designer/src/lib/core/actions/bjsworkflow/add.ts
@@ -1,3 +1,22 @@
+import { ConnectionService, OperationManifestService, StaticResultService } from '@microsoft/designer-client-services-logic-apps';
+import type {
+ Connector,
+ DiscoveryOperation,
+ DiscoveryResultTypes,
+ OperationManifest,
+ SomeKindOfAzureOperationDiscovery,
+ SwaggerParser,
+} from '@microsoft/logic-apps-shared';
+import {
+ ManifestParser,
+ equals,
+ getBrandColorFromConnector,
+ getIconUriFromConnector,
+ getRecordEntry,
+} from '@microsoft/logic-apps-shared';
+import type { Dispatch } from '@reduxjs/toolkit';
+import { createAsyncThunk } from '@reduxjs/toolkit';
+import { batch } from 'react-redux';
import Constants from '../../../common/constants';
import type { WorkflowNode } from '../../parsers/models/workflowNode';
import { getConnectionsForConnector, getConnectorWithSwagger } from '../../queries/connections';
@@ -29,20 +48,6 @@ import {
import type { NodeDataWithOperationMetadata } from './operationdeserializer';
import type { Settings } from './settings';
import { getOperationSettings, getSplitOnValue } from './settings';
-import { ConnectionService, OperationManifestService, StaticResultService } from '@microsoft/designer-client-services-logic-apps';
-import { getBrandColorFromConnector, getIconUriFromConnector } from '@microsoft/designer-ui';
-import type {
- Connector,
- DiscoveryOperation,
- DiscoveryResultTypes,
- OperationManifest,
- SomeKindOfAzureOperationDiscovery,
- SwaggerParser,
-} from '@microsoft/logic-apps-shared';
-import { ManifestParser, equals, getRecordEntry } from '@microsoft/logic-apps-shared';
-import type { Dispatch } from '@reduxjs/toolkit';
-import { createAsyncThunk } from '@reduxjs/toolkit';
-import { batch } from 'react-redux';
type AddOperationPayload = {
operation: DiscoveryOperation | undefined;
diff --git a/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts b/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts
index 125b4e2ba8a..e63742ce799 100644
--- a/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts
+++ b/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts
@@ -1,35 +1,3 @@
-import Constants from '../../../common/constants';
-import { ImpersonationSource, type ConnectionReferences, type WorkflowParameter } from '../../../common/models/workflow';
-import type { WorkflowNode } from '../../parsers/models/workflowNode';
-import { getConnectorWithSwagger, getSwaggerFromEndpoint } from '../../queries/connections';
-import { getOperationManifest } from '../../queries/operation';
-import type { DependencyInfo, NodeInputs, NodeOperation, NodeOutputs, OutputInfo } from '../../state/operation/operationMetadataSlice';
-import { DynamicLoadStatus, updateNodeParameters, updateNodeSettings, updateOutputs } from '../../state/operation/operationMetadataSlice';
-import type { UpdateUpstreamNodesPayload } from '../../state/tokens/tokensSlice';
-import { updateTokens, updateUpstreamNodes } from '../../state/tokens/tokensSlice';
-import { WorkflowKind } from '../../state/workflow/workflowInterfaces';
-import type { WorkflowParameterDefinition } from '../../state/workflowparameters/workflowparametersSlice';
-import { initializeParameters } from '../../state/workflowparameters/workflowparametersSlice';
-import type { RootState } from '../../store';
-import { getTriggerNodeId, isRootNodeInGraph } from '../../utils/graph';
-import { getSplitOnOptions, getUpdatedManifestForSchemaDependency, getUpdatedManifestForSplitOn, toOutputInfo } from '../../utils/outputs';
-import {
- ParameterGroupKeys,
- addRecurrenceParametersInGroup,
- getAllInputParameters,
- getDependentParameters,
- getInputsValueFromDefinitionForManifest,
- getParameterFromName,
- getParametersSortedByVisibility,
- loadParameterValuesArrayFromDefault,
- toParameterInfoMap,
- updateParameterWithValues,
-} from '../../utils/parameters/helper';
-import { createLiteralValueSegment } from '../../utils/parameters/segment';
-import { getOutputParametersFromSwagger } from '../../utils/swagger/operation';
-import { convertOutputsToTokens, getBuiltInTokens, getTokenNodeIds } from '../../utils/tokens';
-import type { NodeInputsWithDependencies, NodeOutputsWithDependencies } from './operationdeserializer';
-import type { Settings } from './settings';
import type {
IConnectionService,
IOAuthService,
@@ -45,7 +13,7 @@ import {
OperationManifestService,
WorkflowService,
} from '@microsoft/designer-client-services-logic-apps';
-import { getBrandColorFromConnector, getIconUriFromConnector, type OutputToken, type ParameterInfo } from '@microsoft/designer-ui';
+import type { OutputToken, ParameterInfo } from '@microsoft/designer-ui';
import type {
CustomSwaggerServiceDetails,
InputParameter,
@@ -65,6 +33,8 @@ import {
UnsupportedException,
clone,
equals,
+ getBrandColorFromConnector,
+ getIconUriFromConnector,
getIntl,
getObjectPropertyValue,
isDynamicListExtension,
@@ -76,6 +46,38 @@ import {
unmap,
} from '@microsoft/logic-apps-shared';
import type { Dispatch } from '@reduxjs/toolkit';
+import Constants from '../../../common/constants';
+import { ImpersonationSource, type ConnectionReferences, type WorkflowParameter } from '../../../common/models/workflow';
+import type { WorkflowNode } from '../../parsers/models/workflowNode';
+import { getConnectorWithSwagger, getSwaggerFromEndpoint } from '../../queries/connections';
+import { getOperationManifest } from '../../queries/operation';
+import type { DependencyInfo, NodeInputs, NodeOperation, NodeOutputs, OutputInfo } from '../../state/operation/operationMetadataSlice';
+import { DynamicLoadStatus, updateNodeParameters, updateNodeSettings, updateOutputs } from '../../state/operation/operationMetadataSlice';
+import type { UpdateUpstreamNodesPayload } from '../../state/tokens/tokensSlice';
+import { updateTokens, updateUpstreamNodes } from '../../state/tokens/tokensSlice';
+import { WorkflowKind } from '../../state/workflow/workflowInterfaces';
+import type { WorkflowParameterDefinition } from '../../state/workflowparameters/workflowparametersSlice';
+import { initializeParameters } from '../../state/workflowparameters/workflowparametersSlice';
+import type { RootState } from '../../store';
+import { getTriggerNodeId, isRootNodeInGraph } from '../../utils/graph';
+import { getSplitOnOptions, getUpdatedManifestForSchemaDependency, getUpdatedManifestForSplitOn, toOutputInfo } from '../../utils/outputs';
+import {
+ ParameterGroupKeys,
+ addRecurrenceParametersInGroup,
+ getAllInputParameters,
+ getDependentParameters,
+ getInputsValueFromDefinitionForManifest,
+ getParameterFromName,
+ getParametersSortedByVisibility,
+ loadParameterValuesArrayFromDefault,
+ toParameterInfoMap,
+ updateParameterWithValues,
+} from '../../utils/parameters/helper';
+import { createLiteralValueSegment } from '../../utils/parameters/segment';
+import { getOutputParametersFromSwagger } from '../../utils/swagger/operation';
+import { convertOutputsToTokens, getBuiltInTokens, getTokenNodeIds } from '../../utils/tokens';
+import type { NodeInputsWithDependencies, NodeOutputsWithDependencies } from './operationdeserializer';
+import type { Settings } from './settings';
export interface ServiceOptions {
connectionService: IConnectionService;
diff --git a/libs/designer/src/lib/core/utils/card.ts b/libs/designer/src/lib/core/utils/card.ts
index 36da0873818..d415fae688f 100644
--- a/libs/designer/src/lib/core/utils/card.ts
+++ b/libs/designer/src/lib/core/utils/card.ts
@@ -1,5 +1,5 @@
-import { getBrandColorFromConnector, getIconUriFromConnector } from '@microsoft/designer-ui';
import type { OperationManifest } from '@microsoft/logic-apps-shared';
+import { getBrandColorFromConnector, getIconUriFromConnector } from '@microsoft/logic-apps-shared';
export function getBrandColorFromManifest(manifest: OperationManifest): string {
return manifest.properties?.brandColor ?? getBrandColorFromConnector(manifest.properties?.connector);
diff --git a/libs/designer/src/lib/core/utils/outputs.ts b/libs/designer/src/lib/core/utils/outputs.ts
index a065e22a585..0b18e230f8d 100644
--- a/libs/designer/src/lib/core/utils/outputs.ts
+++ b/libs/designer/src/lib/core/utils/outputs.ts
@@ -28,8 +28,6 @@ import { OperationManifestService } from '@microsoft/designer-client-services-lo
import {
ValueSegmentType,
generateSchemaFromJsonString,
- getBrandColorFromConnector,
- getIconUriFromConnector,
} from '@microsoft/designer-ui';
import type {
Expression,
@@ -52,6 +50,8 @@ import {
clone,
create,
equals,
+ getBrandColorFromConnector,
+ getIconUriFromConnector,
getIntl,
getObjectPropertyValue,
isFunction,
diff --git a/libs/designer/src/lib/core/utils/swagger/operation.ts b/libs/designer/src/lib/core/utils/swagger/operation.ts
index 0c139674b30..32894ca9f88 100644
--- a/libs/designer/src/lib/core/utils/swagger/operation.ts
+++ b/libs/designer/src/lib/core/utils/swagger/operation.ts
@@ -28,7 +28,6 @@ import {
} from '../parameters/helper';
import { loadInputValuesFromDefinition } from './inputsbuilder';
import { LogEntryLevel, LoggerService, StaticResultService } from '@microsoft/designer-client-services-logic-apps';
-import { getBrandColorFromConnector, getIconUriFromConnector } from '@microsoft/designer-ui';
import type { LAOperation, LogicAppsV2, OperationInfo, OutputParameter, SwaggerParser } from '@microsoft/logic-apps-shared';
import {
ParameterLocations,
@@ -36,6 +35,8 @@ import {
copyArray,
create,
equals,
+ getBrandColorFromConnector,
+ getIconUriFromConnector,
isDynamicSchemaExtension,
isTemplateExpression,
map,
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
index 5efa06b4433..08cb3fb816f 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
@@ -2,14 +2,14 @@ import { useAllConnectionErrors } from '../../../../core';
import { ConnectionEntry } from './connectionEntry';
import { AccordionHeader, AccordionPanel, Badge, Spinner, Text } from '@fluentui/react-components';
import {
- getBrandColorFromConnector,
getConnectorCategoryString,
- getDisplayNameFromConnector,
- getIconUriFromConnector,
- isBuiltInConnector,
} from '@microsoft/designer-ui';
import type { Connector } from '@microsoft/logic-apps-shared';
-import { fallbackConnectorIconUrl } from '@microsoft/logic-apps-shared';
+import { fallbackConnectorIconUrl,
+ getBrandColorFromConnector,
+ getDisplayNameFromConnector,
+ getIconUriFromConnector,
+ isBuiltInConnector, } from '@microsoft/logic-apps-shared';
import { useMemo } from 'react';
export interface ConnectorConnectionsCardProps {
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnectionWrapper.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnectionWrapper.tsx
index 8ca5b184223..3c07756ecc9 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnectionWrapper.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/createConnection/createConnectionWrapper.tsx
@@ -29,8 +29,8 @@ import { CreateConnection } from './createConnection';
import { Spinner } from '@fluentui/react-components';
import type { ConnectionCreationInfo, ConnectionParametersMetadata } from '@microsoft/designer-client-services-logic-apps';
import { ConnectionService, LogEntryLevel, LoggerService, WorkflowService } from '@microsoft/designer-client-services-logic-apps';
-import { getIconUriFromConnector } from '@microsoft/designer-ui';
import {
+ getIconUriFromConnector,
getRecordEntry,
safeSetObjectPropertyValue,
type Connection,
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/selectConnection/selectConnection.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/selectConnection/selectConnection.tsx
index ac583877460..8313648aea8 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/selectConnection/selectConnection.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/selectConnection/selectConnection.tsx
@@ -10,8 +10,7 @@ import { ConnectionTable } from './connectionTable';
import { MessageBar, MessageBarType } from '@fluentui/react';
import { Body1Strong, Button, Divider, Spinner } from '@fluentui/react-components';
import { ConnectionService } from '@microsoft/designer-client-services-logic-apps';
-import { getIconUriFromConnector } from '@microsoft/designer-ui';
-import { type Connection, type Connector } from '@microsoft/logic-apps-shared';
+import { getIconUriFromConnector, type Connection, type Connector } from '@microsoft/logic-apps-shared';
import { useCallback, useEffect, useMemo } from 'react';
import { useIntl } from 'react-intl';
import { useDispatch } from 'react-redux';
diff --git a/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx b/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx
index 4edd3d2a8e1..29c61447ce0 100644
--- a/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx
+++ b/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx
@@ -1,8 +1,8 @@
import { useAllApiIdsWithActions, useAllApiIdsWithTriggers, useAllConnectors } from '../../../core/queries/browse';
import { selectOperationGroupId } from '../../../core/state/panel/panelSlice';
import { SearchService } from '@microsoft/designer-client-services-logic-apps';
-import { BrowseGrid, isBuiltInConnector, isCustomConnector } from '@microsoft/designer-ui';
-import { cleanConnectorId, type Connector } from '@microsoft/logic-apps-shared';
+import { BrowseGrid } from '@microsoft/designer-ui';
+import { cleanConnectorId, isBuiltInConnector, isCustomConnector, type Connector } from '@microsoft/logic-apps-shared';
import { useCallback, useMemo } from 'react';
import { useDispatch } from 'react-redux';
diff --git a/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx b/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx
index 08af3b0a610..2525ceb7ea7 100644
--- a/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx
+++ b/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx
@@ -1,8 +1,9 @@
import type { AppDispatch } from '../../../core';
import { selectOperationGroupId } from '../../../core/state/panel/panelSlice';
import { SearchService, type ISearchService } from '@microsoft/designer-client-services-logic-apps';
-import { SearchResultsGrid, isBuiltInConnector, isCustomConnector } from '@microsoft/designer-ui';
+import { SearchResultsGrid } from '@microsoft/designer-ui';
import type { DiscoveryOpArray, DiscoveryOperation, DiscoveryResultTypes } from '@microsoft/logic-apps-shared';
+import { isBuiltInConnector, isCustomConnector } from '@microsoft/logic-apps-shared';
import { useDebouncedEffect } from '@react-hookz/web';
import Fuse from 'fuse.js';
import React, { useEffect, useState } from 'react';
diff --git a/libs/designer-ui/src/lib/connectors/__test__/connectorPredicates.spec.tsx b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorPredicates.spec.tsx
similarity index 97%
rename from libs/designer-ui/src/lib/connectors/__test__/connectorPredicates.spec.tsx
rename to libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorPredicates.spec.tsx
index 5abbb40256f..5578bf5448e 100644
--- a/libs/designer-ui/src/lib/connectors/__test__/connectorPredicates.spec.tsx
+++ b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorPredicates.spec.tsx
@@ -1,6 +1,6 @@
+import type { Connector, OperationApi } from '../../../models';
import { isBuiltInConnector } from '../index';
import * as DesignerClientServices from '@microsoft/designer-client-services-logic-apps';
-import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
const getMinimalHostService = (): DesignerClientServices.IHostService => ({
fetchAndDisplayContent: jest.fn(),
diff --git a/libs/designer-ui/src/lib/connectors/__test__/connectorProperties.spec.tsx b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorProperties.spec.tsx
similarity index 98%
rename from libs/designer-ui/src/lib/connectors/__test__/connectorProperties.spec.tsx
rename to libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorProperties.spec.tsx
index 2a3c7f056f9..b89aee3dd84 100644
--- a/libs/designer-ui/src/lib/connectors/__test__/connectorProperties.spec.tsx
+++ b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorProperties.spec.tsx
@@ -1,3 +1,4 @@
+import type { Connector, OperationApi } from '../../../models';
import {
getAllConnectorProperties,
getBrandColorFromConnector,
@@ -5,7 +6,6 @@ import {
getDisplayNameFromConnector,
getIconUriFromConnector,
} from '../index';
-import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
describe('lib/connectors/connectorProperties', () => {
describe('getAllConnectorProperties', () => {
diff --git a/libs/designer-ui/src/lib/connectors/connectorPredicates.ts b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorPredicates.ts
similarity index 86%
rename from libs/designer-ui/src/lib/connectors/connectorPredicates.ts
rename to libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorPredicates.ts
index 314f962906a..05873a0caf7 100644
--- a/libs/designer-ui/src/lib/connectors/connectorPredicates.ts
+++ b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorPredicates.ts
@@ -1,7 +1,8 @@
+import type { Connector, OperationApi } from '../../models';
+import { isBuiltInConnectorId, isCustomConnectorId } from '../connections';
+import { isString } from '../functions';
import { getAllConnectorProperties } from './connectorProperties';
import { HostService } from '@microsoft/designer-client-services-logic-apps';
-import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
-import { isBuiltInConnectorId, isCustomConnectorId, isString } from '@microsoft/logic-apps-shared';
export const isBuiltInConnector = (connector: Connector | OperationApi | string): boolean => {
const hostIsBuiltInConnectorFn = HostService()?.isBuiltInConnector;
diff --git a/libs/designer-ui/src/lib/connectors/connectorProperties.ts b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorProperties.ts
similarity index 92%
rename from libs/designer-ui/src/lib/connectors/connectorProperties.ts
rename to libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorProperties.ts
index 5b1f1f4fd4c..ff3da1b9ce8 100644
--- a/libs/designer-ui/src/lib/connectors/connectorProperties.ts
+++ b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorProperties.ts
@@ -1,5 +1,5 @@
-import type { Connector, ConnectorProperty, OperationApi } from '@microsoft/logic-apps-shared';
-import { fallbackConnectorIconUrl } from '@microsoft/logic-apps-shared';
+import type { Connector, ConnectorProperty, OperationApi } from "../../models";
+import { fallbackConnectorIconUrl } from "../connections";
export const getAllConnectorProperties = (connector: Connector | OperationApi | undefined): Partial => {
if (!connector) {
diff --git a/libs/designer-ui/src/lib/connectors/index.ts b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/index.ts
similarity index 100%
rename from libs/designer-ui/src/lib/connectors/index.ts
rename to libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/index.ts
diff --git a/libs/logic-apps-shared/src/utils/src/lib/helpers/index.ts b/libs/logic-apps-shared/src/utils/src/lib/helpers/index.ts
index ee2da4548da..17f110289b3 100644
--- a/libs/logic-apps-shared/src/utils/src/lib/helpers/index.ts
+++ b/libs/logic-apps-shared/src/utils/src/lib/helpers/index.ts
@@ -1,5 +1,6 @@
export * from './color';
export * from './connections';
+export * from './connectors';
export * from './functions';
export * from './guid';
export * from './stringFunctions';
From a9ce42f5677b0bc8dd1b9b8b2a0dd722bb02c6cb Mon Sep 17 00:00:00 2001
From: ek <1350074+ek68794998@users.noreply.github.com>
Date: Mon, 4 Mar 2024 13:04:24 -0800
Subject: [PATCH 11/14] Clean up some imports
---
libs/designer-ui/src/lib/authentication/index.tsx | 3 +--
libs/designer-ui/src/lib/authentication/util.ts | 3 +--
libs/designer-ui/src/lib/code/util.ts | 13 ++++++++++---
.../allConnections/connectorConnectionsCard.tsx | 6 ++++--
4 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/libs/designer-ui/src/lib/authentication/index.tsx b/libs/designer-ui/src/lib/authentication/index.tsx
index 71510ef869f..684fb241571 100644
--- a/libs/designer-ui/src/lib/authentication/index.tsx
+++ b/libs/designer-ui/src/lib/authentication/index.tsx
@@ -12,9 +12,8 @@ import { MSIAuthentication } from './MSIAuth/MSIAuth';
import { RawAuthentication } from './RawAuth';
import { parseAuthEditor } from './util';
import type { IDropdownOption } from '@fluentui/react/lib/Dropdown';
-import { getIntl } from '@microsoft/logic-apps-shared';
import type { ManagedIdentity } from '@microsoft/logic-apps-shared';
-import { AssertionErrorCode, AssertionException, format } from '@microsoft/logic-apps-shared';
+import { getIntl, AssertionErrorCode, AssertionException, format } from '@microsoft/logic-apps-shared';
import { useUpdateEffect } from '@react-hookz/web';
import { useState } from 'react';
import { useIntl } from 'react-intl';
diff --git a/libs/designer-ui/src/lib/authentication/util.ts b/libs/designer-ui/src/lib/authentication/util.ts
index fa758a1120d..0fa5c814efd 100644
--- a/libs/designer-ui/src/lib/authentication/util.ts
+++ b/libs/designer-ui/src/lib/authentication/util.ts
@@ -6,9 +6,8 @@ import { ValueSegmentType } from '../editor';
import { convertStringToSegments } from '../editor/base/utils/editorToSegment';
import { convertKeyValueItemToSegments } from '../editor/base/utils/keyvalueitem';
import { AuthenticationOAuthType } from './AADOAuth/AADOAuth';
-import { getIntl } from '@microsoft/logic-apps-shared';
import type { ManagedIdentity } from '@microsoft/logic-apps-shared';
-import { guid, equals, ResourceIdentityType } from '@microsoft/logic-apps-shared';
+import { getIntl, guid, equals, ResourceIdentityType } from '@microsoft/logic-apps-shared';
export interface AuthProperty {
displayName: string;
diff --git a/libs/designer-ui/src/lib/code/util.ts b/libs/designer-ui/src/lib/code/util.ts
index f00a5d6a203..04b7bc6f0dc 100644
--- a/libs/designer-ui/src/lib/code/util.ts
+++ b/libs/designer-ui/src/lib/code/util.ts
@@ -1,9 +1,16 @@
import constants from '../constants';
import type { Token, ValueSegment } from '../editor';
import { TokenType } from '../editor';
-import { getIntl } from '@microsoft/logic-apps-shared';
-import { decodePropertySegment, OutputKeys } from '@microsoft/logic-apps-shared';
-import { ArgumentException, endsWith, equals, prettifyJsonString, UnsupportedException } from '@microsoft/logic-apps-shared';
+import {
+ ArgumentException,
+ OutputKeys,
+ UnsupportedException,
+ decodePropertySegment,
+ endsWith,
+ equals,
+ getIntl,
+ prettifyJsonString,
+} from '@microsoft/logic-apps-shared';
const OperationCategory = {
Actions: 'actions',
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
index 08cb3fb816f..9e70685ab47 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
@@ -5,11 +5,13 @@ import {
getConnectorCategoryString,
} from '@microsoft/designer-ui';
import type { Connector } from '@microsoft/logic-apps-shared';
-import { fallbackConnectorIconUrl,
+import {
+ fallbackConnectorIconUrl,
getBrandColorFromConnector,
getDisplayNameFromConnector,
getIconUriFromConnector,
- isBuiltInConnector, } from '@microsoft/logic-apps-shared';
+ isBuiltInConnector,
+} from '@microsoft/logic-apps-shared';
import { useMemo } from 'react';
export interface ConnectorConnectionsCardProps {
From 4ae21dd608f060c0805b5a8178daa5d92b842da1 Mon Sep 17 00:00:00 2001
From: ek <1350074+ek68794998@users.noreply.github.com>
Date: Tue, 5 Mar 2024 15:44:40 -0800
Subject: [PATCH 12/14] Move some functions into logic-apps-shared
---
.../lib/connectors/__test__/predicates.spec.tsx} | 6 +++---
libs/designer-ui/src/lib/connectors/index.ts | 1 +
.../src/lib/connectors/predicates.ts} | 6 ++----
.../src/lib/connectorsummarycard/index.tsx | 5 +++--
libs/designer-ui/src/lib/index.ts | 1 +
.../lib/panel/recommendationpanel/searchResult.tsx | 14 +++++++-------
libs/designer-ui/src/lib/utils/utils.ts | 5 +++--
.../allConnections/connectorConnectionsCard.tsx | 6 +++---
.../src/lib/ui/panel/recommendation/browseView.tsx | 8 ++++----
.../src/lib/ui/panel/recommendation/searchView.tsx | 7 +++----
.../connectors.spec.tsx} | 4 ++--
.../connectorProperties.ts => connectors.ts} | 5 +++--
.../src/utils/src/lib/helpers/connectors/index.ts | 2 --
13 files changed, 35 insertions(+), 35 deletions(-)
rename libs/{logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorPredicates.spec.tsx => designer-ui/src/lib/connectors/__test__/predicates.spec.tsx} (96%)
create mode 100644 libs/designer-ui/src/lib/connectors/index.ts
rename libs/{logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorPredicates.ts => designer-ui/src/lib/connectors/predicates.ts} (80%)
rename libs/logic-apps-shared/src/utils/src/lib/helpers/{connectors/__test__/connectorProperties.spec.tsx => __test__/connectors.spec.tsx} (98%)
rename libs/logic-apps-shared/src/utils/src/lib/helpers/{connectors/connectorProperties.ts => connectors.ts} (94%)
delete mode 100644 libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/index.ts
diff --git a/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorPredicates.spec.tsx b/libs/designer-ui/src/lib/connectors/__test__/predicates.spec.tsx
similarity index 96%
rename from libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorPredicates.spec.tsx
rename to libs/designer-ui/src/lib/connectors/__test__/predicates.spec.tsx
index 5578bf5448e..bf7de6f4fe1 100644
--- a/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorPredicates.spec.tsx
+++ b/libs/designer-ui/src/lib/connectors/__test__/predicates.spec.tsx
@@ -1,12 +1,12 @@
-import type { Connector, OperationApi } from '../../../models';
-import { isBuiltInConnector } from '../index';
import * as DesignerClientServices from '@microsoft/designer-client-services-logic-apps';
+import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
+import { isBuiltInConnector } from '../index';
const getMinimalHostService = (): DesignerClientServices.IHostService => ({
fetchAndDisplayContent: jest.fn(),
});
-describe('lib/connectors/connectorProperties', () => {
+describe('lib/connectors', () => {
afterEach(() => {
jest.restoreAllMocks();
});
diff --git a/libs/designer-ui/src/lib/connectors/index.ts b/libs/designer-ui/src/lib/connectors/index.ts
new file mode 100644
index 00000000000..42e836b675f
--- /dev/null
+++ b/libs/designer-ui/src/lib/connectors/index.ts
@@ -0,0 +1 @@
+export * from './predicates';
\ No newline at end of file
diff --git a/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorPredicates.ts b/libs/designer-ui/src/lib/connectors/predicates.ts
similarity index 80%
rename from libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorPredicates.ts
rename to libs/designer-ui/src/lib/connectors/predicates.ts
index 05873a0caf7..fdab289fe38 100644
--- a/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorPredicates.ts
+++ b/libs/designer-ui/src/lib/connectors/predicates.ts
@@ -1,8 +1,6 @@
-import type { Connector, OperationApi } from '../../models';
-import { isBuiltInConnectorId, isCustomConnectorId } from '../connections';
-import { isString } from '../functions';
-import { getAllConnectorProperties } from './connectorProperties';
import { HostService } from '@microsoft/designer-client-services-logic-apps';
+import type { Connector, OperationApi} from '@microsoft/logic-apps-shared';
+import { getAllConnectorProperties, isBuiltInConnectorId, isCustomConnectorId, isString } from '@microsoft/logic-apps-shared';
export const isBuiltInConnector = (connector: Connector | OperationApi | string): boolean => {
const hostIsBuiltInConnectorFn = HostService()?.isBuiltInConnector;
diff --git a/libs/designer-ui/src/lib/connectorsummarycard/index.tsx b/libs/designer-ui/src/lib/connectorsummarycard/index.tsx
index 0aff00eba08..9a95ec4bc63 100644
--- a/libs/designer-ui/src/lib/connectorsummarycard/index.tsx
+++ b/libs/designer-ui/src/lib/connectorsummarycard/index.tsx
@@ -1,8 +1,9 @@
-import { InfoDot } from '../infoDot';
import { Text, css } from '@fluentui/react';
import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
-import { getDescriptionFromConnector, getDisplayNameFromConnector, getIconUriFromConnector, isBuiltInConnector } from '@microsoft/logic-apps-shared';
+import { getDescriptionFromConnector, getDisplayNameFromConnector, getIconUriFromConnector } from '@microsoft/logic-apps-shared';
import { useCallback } from 'react';
+import { isBuiltInConnector } from '../connectors/predicates';
+import { InfoDot } from '../infoDot';
export interface ConnectorSummaryCardProps {
connector: Connector | OperationApi;
diff --git a/libs/designer-ui/src/lib/index.ts b/libs/designer-ui/src/lib/index.ts
index 9fe4f1620fd..7d038804466 100644
--- a/libs/designer-ui/src/lib/index.ts
+++ b/libs/designer-ui/src/lib/index.ts
@@ -19,6 +19,7 @@ export * from './checkbox';
// export * from './colorizer'
export * from './code';
export * from './combobox';
+export * from './connectors';
export { default as UIConstants } from './constants';
export * from './html';
// export * from './conditioncontrol';
diff --git a/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx b/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx
index de588f3d5e0..6f0933956d1 100644
--- a/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx
+++ b/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx
@@ -1,16 +1,16 @@
-import NoResultsSvg from '../../../assets/search/noResults.svg';
-import { AriaSearchResultsAlert } from '../../ariaSearchResults/ariaSearchResultsAlert';
-import { getConnectorCategoryString } from '../../utils';
-import type { OperationActionData } from './interfaces';
-import { OperationSearchCard } from './operationSearchCard';
-import { OperationSearchGroup } from './operationSearchGroup';
import { List, Text } from '@fluentui/react';
import { Spinner } from '@fluentui/react-components';
import type { DiscoveryOpArray, DiscoveryOperation, DiscoveryResultTypes } from '@microsoft/logic-apps-shared';
-import { isBuiltInConnector } from '@microsoft/logic-apps-shared';
import type { PropsWithChildren } from 'react';
import React, { useMemo } from 'react';
import { useIntl } from 'react-intl';
+import NoResultsSvg from '../../../assets/search/noResults.svg';
+import { AriaSearchResultsAlert } from '../../ariaSearchResults/ariaSearchResultsAlert';
+import { isBuiltInConnector } from '../../connectors';
+import { getConnectorCategoryString } from '../../utils';
+import type { OperationActionData } from './interfaces';
+import { OperationSearchCard } from './operationSearchCard';
+import { OperationSearchGroup } from './operationSearchGroup';
export type SearchResultsGridProps = {
isLoadingMore: boolean;
diff --git a/libs/designer-ui/src/lib/utils/utils.ts b/libs/designer-ui/src/lib/utils/utils.ts
index decc989fde0..34955cc4149 100644
--- a/libs/designer-ui/src/lib/utils/utils.ts
+++ b/libs/designer-ui/src/lib/utils/utils.ts
@@ -1,6 +1,7 @@
-import Constants from '../constants';
import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
-import { equals, getIntl, isBuiltInConnector, isCustomConnector } from '@microsoft/logic-apps-shared';
+import { equals, getIntl } from '@microsoft/logic-apps-shared';
+import { isBuiltInConnector, isCustomConnector } from '../connectors';
+import Constants from '../constants';
/**
* Returns a string with a duration, possibly abbreviated, e.g., 15s or 15 second(s)
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
index 9e70685ab47..202c1e682b8 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
@@ -1,8 +1,7 @@
-import { useAllConnectionErrors } from '../../../../core';
-import { ConnectionEntry } from './connectionEntry';
import { AccordionHeader, AccordionPanel, Badge, Spinner, Text } from '@fluentui/react-components';
import {
getConnectorCategoryString,
+ isBuiltInConnector,
} from '@microsoft/designer-ui';
import type { Connector } from '@microsoft/logic-apps-shared';
import {
@@ -10,9 +9,10 @@ import {
getBrandColorFromConnector,
getDisplayNameFromConnector,
getIconUriFromConnector,
- isBuiltInConnector,
} from '@microsoft/logic-apps-shared';
import { useMemo } from 'react';
+import { useAllConnectionErrors } from '../../../../core';
+import { ConnectionEntry } from './connectionEntry';
export interface ConnectorConnectionsCardProps {
connectorId: string;
diff --git a/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx b/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx
index 29c61447ce0..dfb7f442885 100644
--- a/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx
+++ b/libs/designer/src/lib/ui/panel/recommendation/browseView.tsx
@@ -1,10 +1,10 @@
-import { useAllApiIdsWithActions, useAllApiIdsWithTriggers, useAllConnectors } from '../../../core/queries/browse';
-import { selectOperationGroupId } from '../../../core/state/panel/panelSlice';
import { SearchService } from '@microsoft/designer-client-services-logic-apps';
-import { BrowseGrid } from '@microsoft/designer-ui';
-import { cleanConnectorId, isBuiltInConnector, isCustomConnector, type Connector } from '@microsoft/logic-apps-shared';
+import { BrowseGrid, isBuiltInConnector, isCustomConnector } from '@microsoft/designer-ui';
+import { cleanConnectorId, type Connector } from '@microsoft/logic-apps-shared';
import { useCallback, useMemo } from 'react';
import { useDispatch } from 'react-redux';
+import { useAllApiIdsWithActions, useAllApiIdsWithTriggers, useAllConnectors } from '../../../core/queries/browse';
+import { selectOperationGroupId } from '../../../core/state/panel/panelSlice';
const defaultFilterConnector = (connector: Connector, runtimeFilter: string): boolean => {
if (runtimeFilter === 'inapp' && !isBuiltInConnector(connector)) return false;
diff --git a/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx b/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx
index 2525ceb7ea7..08515626599 100644
--- a/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx
+++ b/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx
@@ -1,13 +1,12 @@
-import type { AppDispatch } from '../../../core';
-import { selectOperationGroupId } from '../../../core/state/panel/panelSlice';
import { SearchService, type ISearchService } from '@microsoft/designer-client-services-logic-apps';
-import { SearchResultsGrid } from '@microsoft/designer-ui';
+import { SearchResultsGrid, isBuiltInConnector, isCustomConnector } from '@microsoft/designer-ui';
import type { DiscoveryOpArray, DiscoveryOperation, DiscoveryResultTypes } from '@microsoft/logic-apps-shared';
-import { isBuiltInConnector, isCustomConnector } from '@microsoft/logic-apps-shared';
import { useDebouncedEffect } from '@react-hookz/web';
import Fuse from 'fuse.js';
import React, { useEffect, useState } from 'react';
import { useDispatch } from 'react-redux';
+import type { AppDispatch } from '../../../core';
+import { selectOperationGroupId } from '../../../core/state/panel/panelSlice';
type SearchViewProps = {
searchTerm: string;
diff --git a/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorProperties.spec.tsx b/libs/logic-apps-shared/src/utils/src/lib/helpers/__test__/connectors.spec.tsx
similarity index 98%
rename from libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorProperties.spec.tsx
rename to libs/logic-apps-shared/src/utils/src/lib/helpers/__test__/connectors.spec.tsx
index b89aee3dd84..edfbb0aa4f3 100644
--- a/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/__test__/connectorProperties.spec.tsx
+++ b/libs/logic-apps-shared/src/utils/src/lib/helpers/__test__/connectors.spec.tsx
@@ -1,4 +1,4 @@
-import type { Connector, OperationApi } from '../../../models';
+import { Connector, OperationApi } from '../../models';
import {
getAllConnectorProperties,
getBrandColorFromConnector,
@@ -7,7 +7,7 @@ import {
getIconUriFromConnector,
} from '../index';
-describe('lib/connectors/connectorProperties', () => {
+describe('utils/src/lib/helpers/connectors', () => {
describe('getAllConnectorProperties', () => {
test('works for a Connector', () => {
const connector = {
diff --git a/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorProperties.ts b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors.ts
similarity index 94%
rename from libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorProperties.ts
rename to libs/logic-apps-shared/src/utils/src/lib/helpers/connectors.ts
index ff3da1b9ce8..e85a32f7018 100644
--- a/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/connectorProperties.ts
+++ b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors.ts
@@ -1,5 +1,6 @@
-import type { Connector, ConnectorProperty, OperationApi } from "../../models";
-import { fallbackConnectorIconUrl } from "../connections";
+import type { Connector, ConnectorProperty, OperationApi } from "../models";
+import { fallbackConnectorIconUrl } from "./connections";
+
export const getAllConnectorProperties = (connector: Connector | OperationApi | undefined): Partial => {
if (!connector) {
diff --git a/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/index.ts b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/index.ts
deleted file mode 100644
index 1c84603965c..00000000000
--- a/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './connectorPredicates';
-export * from './connectorProperties';
From e727889170503f267c8a3eaf66e1d82c02f4ae10 Mon Sep 17 00:00:00 2001
From: ek <1350074+ek68794998@users.noreply.github.com>
Date: Tue, 5 Mar 2024 16:00:21 -0800
Subject: [PATCH 13/14] Fix some import merge conflicts
---
libs/designer/src/lib/core/utils/swagger/operation.ts | 1 +
.../src/utils/src/lib/helpers/__test__/connectors.spec.tsx | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/libs/designer/src/lib/core/utils/swagger/operation.ts b/libs/designer/src/lib/core/utils/swagger/operation.ts
index a69a65b0c36..32894ca9f88 100644
--- a/libs/designer/src/lib/core/utils/swagger/operation.ts
+++ b/libs/designer/src/lib/core/utils/swagger/operation.ts
@@ -41,6 +41,7 @@ import {
isTemplateExpression,
map,
parsePathnameAndQueryKeyFromUri,
+ removeConnectionPrefix,
startsWith,
unmap,
} from '@microsoft/logic-apps-shared';
diff --git a/libs/logic-apps-shared/src/utils/src/lib/helpers/__test__/connectors.spec.tsx b/libs/logic-apps-shared/src/utils/src/lib/helpers/__test__/connectors.spec.tsx
index edfbb0aa4f3..c1a450959a4 100644
--- a/libs/logic-apps-shared/src/utils/src/lib/helpers/__test__/connectors.spec.tsx
+++ b/libs/logic-apps-shared/src/utils/src/lib/helpers/__test__/connectors.spec.tsx
@@ -1,4 +1,4 @@
-import { Connector, OperationApi } from '../../models';
+import type { Connector, OperationApi } from '../../models';
import {
getAllConnectorProperties,
getBrandColorFromConnector,
From c8d5ee0ddca9d88e89e10e841ff53707cd677c29 Mon Sep 17 00:00:00 2001
From: ek <1350074+ek68794998@users.noreply.github.com>
Date: Tue, 5 Mar 2024 16:29:12 -0800
Subject: [PATCH 14/14] Fix a bunch of unnecessary import changes
---
.../src/lib/authentication/index.tsx | 2 +-
.../recommendationpanel/searchResult.tsx | 12 +--
libs/designer-ui/src/lib/utils/utils.ts | 4 +-
.../src/lib/core/actions/bjsworkflow/add.ts | 32 +++---
.../core/actions/bjsworkflow/initialize.ts | 100 +++++++++---------
.../connectorConnectionsCard.tsx | 9 +-
.../ui/panel/recommendation/searchView.tsx | 4 +-
.../src/utils/src/lib/helpers/connectors.ts | 5 +-
8 files changed, 79 insertions(+), 89 deletions(-)
diff --git a/libs/designer-ui/src/lib/authentication/index.tsx b/libs/designer-ui/src/lib/authentication/index.tsx
index 16db07a506c..7828c7fb517 100644
--- a/libs/designer-ui/src/lib/authentication/index.tsx
+++ b/libs/designer-ui/src/lib/authentication/index.tsx
@@ -12,8 +12,8 @@ import { MSIAuthentication } from './MSIAuth/MSIAuth';
import { RawAuthentication } from './RawAuth';
import { parseAuthEditor } from './util';
import type { IDropdownOption } from '@fluentui/react/lib/Dropdown';
-import type { ManagedIdentity } from '@microsoft/logic-apps-shared';
import { AssertionErrorCode, AssertionException, format, getIntl } from '@microsoft/logic-apps-shared';
+import type { ManagedIdentity } from '@microsoft/logic-apps-shared';
import { useUpdateEffect } from '@react-hookz/web';
import { useState } from 'react';
import { useIntl } from 'react-intl';
diff --git a/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx b/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx
index 6f0933956d1..05d1e47cf00 100644
--- a/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx
+++ b/libs/designer-ui/src/lib/panel/recommendationpanel/searchResult.tsx
@@ -1,9 +1,3 @@
-import { List, Text } from '@fluentui/react';
-import { Spinner } from '@fluentui/react-components';
-import type { DiscoveryOpArray, DiscoveryOperation, DiscoveryResultTypes } from '@microsoft/logic-apps-shared';
-import type { PropsWithChildren } from 'react';
-import React, { useMemo } from 'react';
-import { useIntl } from 'react-intl';
import NoResultsSvg from '../../../assets/search/noResults.svg';
import { AriaSearchResultsAlert } from '../../ariaSearchResults/ariaSearchResultsAlert';
import { isBuiltInConnector } from '../../connectors';
@@ -11,6 +5,12 @@ import { getConnectorCategoryString } from '../../utils';
import type { OperationActionData } from './interfaces';
import { OperationSearchCard } from './operationSearchCard';
import { OperationSearchGroup } from './operationSearchGroup';
+import { List, Text } from '@fluentui/react';
+import { Spinner } from '@fluentui/react-components';
+import type { DiscoveryOpArray, DiscoveryOperation, DiscoveryResultTypes } from '@microsoft/logic-apps-shared';
+import type { PropsWithChildren } from 'react';
+import React, { useMemo } from 'react';
+import { useIntl } from 'react-intl';
export type SearchResultsGridProps = {
isLoadingMore: boolean;
diff --git a/libs/designer-ui/src/lib/utils/utils.ts b/libs/designer-ui/src/lib/utils/utils.ts
index 34955cc4149..d94fb86b1c1 100644
--- a/libs/designer-ui/src/lib/utils/utils.ts
+++ b/libs/designer-ui/src/lib/utils/utils.ts
@@ -1,7 +1,7 @@
-import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
-import { equals, getIntl } from '@microsoft/logic-apps-shared';
import { isBuiltInConnector, isCustomConnector } from '../connectors';
import Constants from '../constants';
+import type { Connector, OperationApi } from '@microsoft/logic-apps-shared';
+import { equals, getIntl } from '@microsoft/logic-apps-shared';
/**
* Returns a string with a duration, possibly abbreviated, e.g., 15s or 15 second(s)
diff --git a/libs/designer/src/lib/core/actions/bjsworkflow/add.ts b/libs/designer/src/lib/core/actions/bjsworkflow/add.ts
index f7bd95e5dca..437276c6f03 100644
--- a/libs/designer/src/lib/core/actions/bjsworkflow/add.ts
+++ b/libs/designer/src/lib/core/actions/bjsworkflow/add.ts
@@ -1,22 +1,3 @@
-import { ConnectionService, OperationManifestService, StaticResultService } from '@microsoft/designer-client-services-logic-apps';
-import type {
- Connector,
- DiscoveryOperation,
- DiscoveryResultTypes,
- OperationManifest,
- SomeKindOfAzureOperationDiscovery,
- SwaggerParser,
-} from '@microsoft/logic-apps-shared';
-import {
- ManifestParser,
- equals,
- getBrandColorFromConnector,
- getIconUriFromConnector,
- getRecordEntry,
-} from '@microsoft/logic-apps-shared';
-import type { Dispatch } from '@reduxjs/toolkit';
-import { createAsyncThunk } from '@reduxjs/toolkit';
-import { batch } from 'react-redux';
import Constants from '../../../common/constants';
import type { WorkflowNode } from '../../parsers/models/workflowNode';
import { getConnectionsForConnector, getConnectorWithSwagger } from '../../queries/connections';
@@ -48,6 +29,19 @@ import {
import type { NodeDataWithOperationMetadata } from './operationdeserializer';
import type { Settings } from './settings';
import { getOperationSettings, getSplitOnValue } from './settings';
+import { ConnectionService, OperationManifestService, StaticResultService } from '@microsoft/designer-client-services-logic-apps';
+import type {
+ Connector,
+ DiscoveryOperation,
+ DiscoveryResultTypes,
+ OperationManifest,
+ SomeKindOfAzureOperationDiscovery,
+ SwaggerParser,
+} from '@microsoft/logic-apps-shared';
+import { ManifestParser, equals, getBrandColorFromConnector, getIconUriFromConnector, getRecordEntry } from '@microsoft/logic-apps-shared';
+import type { Dispatch } from '@reduxjs/toolkit';
+import { createAsyncThunk } from '@reduxjs/toolkit';
+import { batch } from 'react-redux';
type AddOperationPayload = {
operation: DiscoveryOperation | undefined;
diff --git a/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts b/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts
index e63742ce799..ea55ab481ea 100644
--- a/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts
+++ b/libs/designer/src/lib/core/actions/bjsworkflow/initialize.ts
@@ -1,58 +1,10 @@
-import type {
- IConnectionService,
- IOAuthService,
- IOperationManifestService,
- ISearchService,
- IWorkflowService,
-} from '@microsoft/designer-client-services-logic-apps';
-import {
- ApiManagementService,
- FunctionService,
- LogEntryLevel,
- LoggerService,
- OperationManifestService,
- WorkflowService,
-} from '@microsoft/designer-client-services-logic-apps';
-import type { OutputToken, ParameterInfo } from '@microsoft/designer-ui';
-import type {
- CustomSwaggerServiceDetails,
- InputParameter,
- OperationInfo,
- OperationManifest,
- OperationManifestProperties,
- OutputParameter,
- SchemaProperty,
- SwaggerParser,
-} from '@microsoft/logic-apps-shared';
-import {
- ConnectionReferenceKeyFormat,
- CustomSwaggerServiceNames,
- DynamicSchemaType,
- ManifestParser,
- PropertyName,
- UnsupportedException,
- clone,
- equals,
- getBrandColorFromConnector,
- getIconUriFromConnector,
- getIntl,
- getObjectPropertyValue,
- isDynamicListExtension,
- isDynamicPropertiesExtension,
- isDynamicSchemaExtension,
- isDynamicTreeExtension,
- isLegacyDynamicValuesExtension,
- isLegacyDynamicValuesTreeExtension,
- unmap,
-} from '@microsoft/logic-apps-shared';
-import type { Dispatch } from '@reduxjs/toolkit';
import Constants from '../../../common/constants';
import { ImpersonationSource, type ConnectionReferences, type WorkflowParameter } from '../../../common/models/workflow';
import type { WorkflowNode } from '../../parsers/models/workflowNode';
import { getConnectorWithSwagger, getSwaggerFromEndpoint } from '../../queries/connections';
import { getOperationManifest } from '../../queries/operation';
import type { DependencyInfo, NodeInputs, NodeOperation, NodeOutputs, OutputInfo } from '../../state/operation/operationMetadataSlice';
-import { DynamicLoadStatus, updateNodeParameters, updateNodeSettings, updateOutputs } from '../../state/operation/operationMetadataSlice';
+import { updateNodeSettings, updateNodeParameters, DynamicLoadStatus, updateOutputs } from '../../state/operation/operationMetadataSlice';
import type { UpdateUpstreamNodesPayload } from '../../state/tokens/tokensSlice';
import { updateTokens, updateUpstreamNodes } from '../../state/tokens/tokensSlice';
import { WorkflowKind } from '../../state/workflow/workflowInterfaces';
@@ -62,7 +14,6 @@ import type { RootState } from '../../store';
import { getTriggerNodeId, isRootNodeInGraph } from '../../utils/graph';
import { getSplitOnOptions, getUpdatedManifestForSchemaDependency, getUpdatedManifestForSplitOn, toOutputInfo } from '../../utils/outputs';
import {
- ParameterGroupKeys,
addRecurrenceParametersInGroup,
getAllInputParameters,
getDependentParameters,
@@ -70,6 +21,7 @@ import {
getParameterFromName,
getParametersSortedByVisibility,
loadParameterValuesArrayFromDefault,
+ ParameterGroupKeys,
toParameterInfoMap,
updateParameterWithValues,
} from '../../utils/parameters/helper';
@@ -78,6 +30,54 @@ import { getOutputParametersFromSwagger } from '../../utils/swagger/operation';
import { convertOutputsToTokens, getBuiltInTokens, getTokenNodeIds } from '../../utils/tokens';
import type { NodeInputsWithDependencies, NodeOutputsWithDependencies } from './operationdeserializer';
import type { Settings } from './settings';
+import type {
+ IConnectionService,
+ IOperationManifestService,
+ ISearchService,
+ IOAuthService,
+ IWorkflowService,
+} from '@microsoft/designer-client-services-logic-apps';
+import {
+ WorkflowService,
+ LoggerService,
+ LogEntryLevel,
+ OperationManifestService,
+ FunctionService,
+ ApiManagementService,
+} from '@microsoft/designer-client-services-logic-apps';
+import type { OutputToken, ParameterInfo } from '@microsoft/designer-ui';
+import {
+ clone,
+ ConnectionReferenceKeyFormat,
+ CustomSwaggerServiceNames,
+ DynamicSchemaType,
+ equals,
+ getBrandColorFromConnector,
+ getIconUriFromConnector,
+ getIntl,
+ getObjectPropertyValue,
+ isDynamicListExtension,
+ isDynamicPropertiesExtension,
+ isDynamicSchemaExtension,
+ isDynamicTreeExtension,
+ isLegacyDynamicValuesExtension,
+ isLegacyDynamicValuesTreeExtension,
+ ManifestParser,
+ PropertyName,
+ unmap,
+ UnsupportedException,
+} from '@microsoft/logic-apps-shared';
+import type {
+ CustomSwaggerServiceDetails,
+ InputParameter,
+ OperationInfo,
+ OperationManifest,
+ OperationManifestProperties,
+ OutputParameter,
+ SchemaProperty,
+ SwaggerParser,
+} from '@microsoft/logic-apps-shared';
+import type { Dispatch } from '@reduxjs/toolkit';
export interface ServiceOptions {
connectionService: IConnectionService;
diff --git a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
index 202c1e682b8..dfb8a1d3dd3 100644
--- a/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
+++ b/libs/designer/src/lib/ui/panel/connectionsPanel/allConnections/connectorConnectionsCard.tsx
@@ -1,8 +1,7 @@
+import { useAllConnectionErrors } from '../../../../core';
+import { ConnectionEntry } from './connectionEntry';
import { AccordionHeader, AccordionPanel, Badge, Spinner, Text } from '@fluentui/react-components';
-import {
- getConnectorCategoryString,
- isBuiltInConnector,
-} from '@microsoft/designer-ui';
+import { getConnectorCategoryString, isBuiltInConnector } from '@microsoft/designer-ui';
import type { Connector } from '@microsoft/logic-apps-shared';
import {
fallbackConnectorIconUrl,
@@ -11,8 +10,6 @@ import {
getIconUriFromConnector,
} from '@microsoft/logic-apps-shared';
import { useMemo } from 'react';
-import { useAllConnectionErrors } from '../../../../core';
-import { ConnectionEntry } from './connectionEntry';
export interface ConnectorConnectionsCardProps {
connectorId: string;
diff --git a/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx b/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx
index 08515626599..08af3b0a610 100644
--- a/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx
+++ b/libs/designer/src/lib/ui/panel/recommendation/searchView.tsx
@@ -1,3 +1,5 @@
+import type { AppDispatch } from '../../../core';
+import { selectOperationGroupId } from '../../../core/state/panel/panelSlice';
import { SearchService, type ISearchService } from '@microsoft/designer-client-services-logic-apps';
import { SearchResultsGrid, isBuiltInConnector, isCustomConnector } from '@microsoft/designer-ui';
import type { DiscoveryOpArray, DiscoveryOperation, DiscoveryResultTypes } from '@microsoft/logic-apps-shared';
@@ -5,8 +7,6 @@ import { useDebouncedEffect } from '@react-hookz/web';
import Fuse from 'fuse.js';
import React, { useEffect, useState } from 'react';
import { useDispatch } from 'react-redux';
-import type { AppDispatch } from '../../../core';
-import { selectOperationGroupId } from '../../../core/state/panel/panelSlice';
type SearchViewProps = {
searchTerm: string;
diff --git a/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors.ts b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors.ts
index e85a32f7018..21dfb5e97e7 100644
--- a/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors.ts
+++ b/libs/logic-apps-shared/src/utils/src/lib/helpers/connectors.ts
@@ -1,6 +1,5 @@
-import type { Connector, ConnectorProperty, OperationApi } from "../models";
-import { fallbackConnectorIconUrl } from "./connections";
-
+import type { Connector, ConnectorProperty, OperationApi } from '../models';
+import { fallbackConnectorIconUrl } from './connections';
export const getAllConnectorProperties = (connector: Connector | OperationApi | undefined): Partial => {
if (!connector) {