LucidCardIntegration

Implements

  • CardIntegrationDependencyMappingConfig

Constructors

new LucidCardIntegration()

new LucidCardIntegration(client): LucidCardIntegration

Parameters

ParameterType
clientEditorClient

Returns

LucidCardIntegration


Properties

addCard?

optional addCard: object;

If specified, allow the user to create new cards and convert other shapes to cards

createCardData()

createCardData: (input) => Promise<object>;

Given the values entered by the user into input fields, create a new data record to represent the
created card, and return information about that record.

Parameters
ParameterType
inputMap<string, SerializedFieldType>
Returns

Promise<object>

collection
collection: CollectionProxy;
primaryKey
primaryKey: string;

getInputFields()

getInputFields: (inputSoFar) => Promise<ExtensionCardFieldDefinition[]>;

Given the values entered by the user so far into input fields, return the list of all input fields
to display in the create-card form.

Parameters
ParameterType
inputSoFarMap<string, SerializedFieldType>
Returns

Promise<ExtensionCardFieldDefinition[]>


autoSync?

optional autoSync: CardIntegrationAutoSyncConfig;

If specified, allows the user to use query to sync with timelines.


bannerActionCallback?

Experimental

optional bannerActionCallback: string;

Optional. Callback function to handle action button clicks in import error banners.


canEditItems()?

Experimental

optional canEditItems: (items) => Promise<Map<string, UserItemEditPermissions>>;

If specified, allows the extension to check whether the user can edit the given items.
Returns a Map with per-item permission results, keyed by item primary key.

Parameters

ParameterType
itemsDataItemProxy[]

Returns

Promise<Map<string, UserItemEditPermissions>>


client

protected readonly client: EditorClient;

dataConnectorName

abstract dataConnectorName: string;

The name of the data connector associated with the card integration.


dependencyMappingPhrases?

optional dependencyMappingPhrases: DependencyMappingPhrasesType;

If specified, the text phrases to show in the dependency mapping UI.
If not specified, dependency mapping for this integration uses the default fallback phrases.

Implementation of

CardIntegrationDependencyMappingConfig.dependencyMappingPhrases


fieldConfiguration

abstract fieldConfiguration: ExtensionFieldConfiguration;

getAdditionalPanelTabsForCard?

Experimental

optional getAdditionalPanelTabsForCard: AdditionalPanelTabsCallback;

If specified, allows for cards to display additional details,
via tabs that are configured by the extension and displayed in the card details panel.


getDefaultConfig()

abstract getDefaultConfig: (dataSource) => Promise<DeepWritableObject<object>>;

Provide the default configuration for a new import

Parameters

ParameterType
dataSourceDataSourceProxy

Returns

Promise<DeepWritableObject<object>>


iconConfiguration?

optional iconConfiguration: object;

fieldLabelIconsCallback?

optional fieldLabelIconsCallback: string;

Optional. Callback function to fetch icons that show next to the field labels in the card details panel

lightIconUrl?

optional lightIconUrl: string;

Optional. URL for an alternate light icon to show in components with a colored background.
If not provided, the primaryIconUrl will be used. Should be at least 24x24.

primaryIconUrl

primaryIconUrl: string;

URL for the primary icon to display in most components, usually on a white background.
Should be at least 24x24.


iconUrl

abstract iconUrl: string;

Deprecated

Use iconConfiguration.primaryIconUrl.
URL for an icon to display in toolbars, etc. Should be at least 24x24.


importCardFromPastedLink?

optional importCardFromPastedLink: object;

A definition of the details required to import a card onto the canvas from a pasted url. The callback returns
necessary data to import cards onto the canvas, or undefined if the link couldn't be interpreted.

Domain can be a single string or an array of strings. Each domain will be registered separately.
Supports wildcard domains like '*.example.com' to match any subdomain.

If any domain has already been registered by another card integration for importing cards from pasted links,
that specific domain registration will be prevented.

callback

callback: ImportCardFromPastedLinkCallback;

domain

domain: string | string[];

importDependencies()?

optional importDependencies: (dependenciesForItems) => Promise<ImportResult[]>;

This allows the user to import cards, by selecting dependencies of a linked item on the canvas.

Parameters

ParameterType
dependenciesForItemsDependenciesForItems

Returns

Promise<ImportResult[]>

Implementation of

CardIntegrationDependencyMappingConfig.importDependencies


importFromSerializedFields()?

optional importFromSerializedFields: (data) => Promise<ImportCardFromDetails | ImportCardFromDetails[]>;

If specified, allows users to import cards by copying a card on one board and pasting it to another board.
This function should interface with SerializedFields to get the data from the copied card necessary to trigger
the import.

Parameters

ParameterType
dataSerializedFields[]

Returns

Promise<ImportCardFromDetails | ImportCardFromDetails[]>


importModal?

optional importModal: LucidCardIntegrationCustomImportModal | LucidCardIntegrationStandardImportModal;

This allows the user to import cards by selecting items from within a modal. You can either create a custom
import modal or the standard import modal can be used.


instanceSwitching?

optional instanceSwitching: object;

Configuration for instance switching. An instance is a singular context for which a user can perform search actions
or import actions in. Switching between instances will reset the state for searching and creating.

getInstances()

getInstances: () => Promise<Instance[]>;

Returns available instances the user can switch between.

Returns

Promise<Instance[]>

getSelectedInstanceId()

getSelectedInstanceId: () => undefined | string;

Returns the currently selected instance ID.

Returns

undefined | string

onInstanceChange()

onInstanceChange: (instance) => Promise<void>;

Called when the user selects a different instance.
The extension should update its state for subsequent operations.

Parameters
ParameterType
instanceInstance
Returns

Promise<void>


itemCollectionLabel

readonly itemCollectionLabel: string = 'project';

Label used to identify a collection of cards worth of data ("project" is the default if you don't
override and provide a different label)


itemLabel

abstract itemLabel: string;

Label used to identify one card worth of data, e.g. "Jira task"


itemsLabel

abstract itemsLabel: string;

Label used to identify multiple cards worth of data, e.g. "Jira tasks"


label

abstract label: string;

Label used to identify the integration, e.g. "Jira", which will be used in menu items, etc.
Should be unique within any given extension.


searchUserByName?

optional searchUserByName: boolean;

Deprecated

Use userSearchCallback instead. The search strategy should be handled internally by the callback implementation.
If we are only able to search by name and not email in the card integration (ex: for JDC)


showDependencyMapping?

optional showDependencyMapping: boolean;

Implementation of

CardIntegrationDependencyMappingConfig.showDependencyMapping


showIntro()?

optional showIntro: () => void;

Deprecated

Use AuthorizationFlowHandlerRegistry.registerAuthorizationFlowHandler.
WARNING: Currently unused and does nothing.

Returns

void


tagCallback?

Experimental

optional tagCallback: string;

Optional. Callback function to derive a tag for any given card.
A tag is a combination of a text label (preferably short, less than two words) and an icon,
which can provide extra user-facing information in the card details panel.


textStyle?

optional textStyle: Partial<TextStyle>;

The default text style to use on cards created as part of this integration.
These can be overridden by values in getDefaultConfig().fieldStyles for
individual fields that should have different styles.


userSearchCallback?

optional userSearchCallback: string;

This is used to search for users in the card integration. It returns an additional email field of the user if available.


Methods

showCardImport()

showCardImport(name): ImportCardsResult

Parameters

ParameterType
namestring

Returns

ImportCardsResult