LucidCardIntegration


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.


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.


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.

If the domain has already been registered by another card integration for importing cards from pasted links, this
callback will be prevented from being registered.

callback

callback: ImportCardFromPastedLinkCallback;

domain

domain: 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[]>


importFromSerializedFields()?

optional importFromSerializedFields: (data) => Promise<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>


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.


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;

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