lucid-extension-sdk 0.0.362 → 0.0.364

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/commandtypes.d.ts CHANGED
@@ -718,6 +718,12 @@ export type AddAuthorizationFlowHandlerQuery = {
718
718
  's': AuthorizationFlowHandlerStage;
719
719
  };
720
720
  export type AddAuthorizationFlowHandlerResult = undefined;
721
+ export type AddCardsActions = {
722
+ /** Get input fields action */
723
+ 'gif': string;
724
+ /** Create card action */
725
+ 'cc': string;
726
+ };
721
727
  export type AddCardIntegrationQuery = {
722
728
  /** Title/name */
723
729
  'n': string;
@@ -770,12 +776,7 @@ export type AddCardIntegrationQuery = {
770
776
  'sh': string;
771
777
  } | undefined;
772
778
  /** If specified, add-card settings */
773
- 'ac'?: {
774
- /** Get input fields action */
775
- 'gif': string;
776
- /** Create card action */
777
- 'cc': string;
778
- } | undefined;
779
+ 'ac'?: AddCardsActions | undefined;
779
780
  /** Whether to enable dependency mapping for this integration */
780
781
  'sdm'?: boolean;
781
782
  /**
@@ -982,6 +983,8 @@ export type AddSpreadsheetIntegrationQuery = {
982
983
  'c'?: boolean;
983
984
  /** getUpstreamSourceUrl */
984
985
  'gu'?: string;
986
+ /** If specified, add-card settings */
987
+ 'ac'?: AddCardsActions | undefined;
985
988
  };
986
989
  /** @ignore until spreadsheet integration is ready for launch (CHART-51946) */
987
990
  export type AddSpreadsheetIntegrationResult = undefined;
@@ -3,8 +3,8 @@ import { DataSourceProxy } from '../../data/datasourceproxy';
3
3
  import { TextStyle } from '../../document/text/textstyle';
4
4
  import { EditorClient } from '../../editorclient';
5
5
  import { SerializedFieldType } from '../data/serializedfield/serializedfields';
6
+ import { DependenciesForItems, ExtensionCardFieldDefinition, ImportResult } from '../sharedcardintegration/cardintegrationdefinitions';
6
7
  import { CardIntegrationConfig } from './cardintegrationconfig';
7
- import { DependenciesForItems, ExtensionCardFieldDefinition, ImportResult } from './cardintegrationdefinitions';
8
8
  import { DependencyMappingPhrasesType } from './dependencymappingphrases';
9
9
  import { LucidCardIntegrationCustomImportModal } from './lucidcardintegrationcustomimportmodal';
10
10
  import { LucidCardIntegrationStandardImportModal } from './lucidcardintegrationstandardimportmodal';
@@ -1,6 +1,6 @@
1
1
  import { EditorClient } from '../../editorclient';
2
2
  import { SerializedFieldType } from '../data/serializedfield/serializedfields';
3
- import { ExtensionCardFieldOption, ExtensionCardUserData } from './cardintegrationdefinitions';
3
+ import { ExtensionCardFieldOption, ExtensionCardUserData } from '../sharedcardintegration/cardintegrationdefinitions';
4
4
  import { LucidCardIntegration } from './lucidcardintegration';
5
5
  export declare class LucidCardIntegrationRegistry {
6
6
  private static nextHookId;
@@ -9,6 +9,7 @@ export declare class LucidCardIntegrationRegistry {
9
9
  static registerFieldSearchCallback(client: EditorClient, callback: (searchText: string, inputSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardFieldOption[]>): string;
10
10
  static registerUserSearchCallback(client: EditorClient, callback: (searchText: string, inputSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardUserData[]>): string;
11
11
  private static registerDependencyMapping;
12
+ private static serializeSearchResult;
12
13
  /**
13
14
  * Register a card integration.
14
15
  */
@@ -6,8 +6,8 @@ const collectionproxy_1 = require("../../data/collectionproxy");
6
6
  const dataitemproxy_1 = require("../../data/dataitemproxy");
7
7
  const datasourceproxy_1 = require("../../data/datasourceproxy");
8
8
  const checks_1 = require("../checks");
9
+ const cardintegrationdefinitions_1 = require("../sharedcardintegration/cardintegrationdefinitions");
9
10
  const cardintegrationconfig_1 = require("./cardintegrationconfig");
10
- const cardintegrationdefinitions_1 = require("./cardintegrationdefinitions");
11
11
  const lucidcardintegrationcustomimportmodal_1 = require("./lucidcardintegrationcustomimportmodal");
12
12
  class LucidCardIntegrationRegistry {
13
13
  static nextHookName() {
@@ -128,6 +128,16 @@ class LucidCardIntegrationRegistry {
128
128
  }
129
129
  return serialized;
130
130
  }
131
+ static serializeSearchResult(searchResult) {
132
+ return {
133
+ 'd': (0, collectiondefinition_1.serializeCollectionDefinition)(searchResult.data),
134
+ 'f': (0, cardintegrationdefinitions_1.serializeCardFieldArrayDefinition)(searchResult.fields),
135
+ 'm': searchResult.partialImportMetadata && {
136
+ 'cid': searchResult.partialImportMetadata.collectionId,
137
+ 'sid': searchResult.partialImportMetadata.syncDataSourceId,
138
+ },
139
+ };
140
+ }
131
141
  /**
132
142
  * Register a card integration.
133
143
  */
@@ -209,14 +219,14 @@ class LucidCardIntegrationRegistry {
209
219
  });
210
220
  client.registerAction(serialized['im']['s'], async ({ 's': param }) => {
211
221
  const result = await importModal.search(new Map(param));
212
- return {
213
- 'd': (0, collectiondefinition_1.serializeCollectionDefinition)(result.data),
214
- 'f': (0, cardintegrationdefinitions_1.serializeCardFieldArrayDefinition)(result.fields),
215
- 'm': result.partialImportMetadata && {
216
- 'cid': result.partialImportMetadata.collectionId,
217
- 'sid': result.partialImportMetadata.syncDataSourceId,
218
- },
219
- };
222
+ if ((0, checks_1.isArray)(result)) {
223
+ return result.map((searchResult) => {
224
+ return this.serializeSearchResult(searchResult);
225
+ });
226
+ }
227
+ else {
228
+ return this.serializeSearchResult(result);
229
+ }
220
230
  });
221
231
  client.registerAction(serialized['im']['i'], async ({ 'pks': primaryKeys, 's': searchFields }) => {
222
232
  const result = await importModal.import(primaryKeys, new Map(searchFields));
@@ -1,5 +1,5 @@
1
1
  import { SerializedFieldType } from '../data/serializedfield/serializedfields';
2
- import { ExtensionCardFieldDefinition, ImportResult, SearchResult } from './cardintegrationdefinitions';
2
+ import { ExtensionCardFieldDefinition, ImportResult, SearchResult } from '../sharedcardintegration/cardintegrationdefinitions';
3
3
  /**
4
4
  * You can use the standard import modal can be used by providing the following data:
5
5
  *
@@ -37,7 +37,7 @@ export interface LucidCardIntegrationStandardImportModal {
37
37
  importModalHeading?: string;
38
38
  useIsolatedSearchBarUI?: boolean;
39
39
  getSearchFields: (searchSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardFieldDefinition[]>;
40
- search: (fields: Map<string, SerializedFieldType>) => Promise<SearchResult>;
40
+ search: (fields: Map<string, SerializedFieldType>) => Promise<SearchResult | SearchResult[]>;
41
41
  import: (primaryKeys: string[], searchFields: Map<string, SerializedFieldType>) => Promise<ImportResult | ImportResult[]>;
42
42
  onSetup?: () => Promise<void>;
43
43
  }
@@ -122,6 +122,10 @@ export declare function deserializeCardFieldDefinition(field: SerializedExtensio
122
122
  export declare function deserializeCardFieldArrayDefinition(fields: SerializedExtensionCardFieldDefinition[]): ExtensionCardFieldDefinition[];
123
123
  /**
124
124
  * Result of searching for data in the import modal
125
+ *
126
+ * If you change this interface, check if your changes need to be synced with
127
+ * editorextensioncardintegrationregistry.ts.
128
+ *
125
129
  */
126
130
  export interface SearchResult {
127
131
  partialImportMetadata?: {
@@ -1,6 +1,9 @@
1
+ import { CollectionProxy } from '../../data/collectionproxy';
1
2
  import { SerializedUpstreamConfig } from '../data/datasource/serializedupstreamconfig';
3
+ import { SerializedFieldType } from '../data/serializedfield/serializedfields';
2
4
  import { SerializedSchema } from '../data/serializedfield/serializedschema';
3
5
  import { JsonSerializable } from '../jsonserializable';
6
+ import { ExtensionCardFieldDefinition } from '../sharedcardintegration/cardintegrationdefinitions';
4
7
  /** @ignore until spreadsheet integration is ready for launch (CHART-51946) */
5
8
  export declare enum LucidSpreadsheetIntegrationFailureType {
6
9
  AuthorizationFailure = "AuthorizationFailure",
@@ -77,4 +80,22 @@ export declare abstract class LucidSpreadsheetIntegration {
77
80
  getUpstreamSourceUrl?(spreadsheetDetails: string, sheetId: string): Promise<{
78
81
  url: string;
79
82
  } | LucidSpreadsheetIntegrationFailureType>;
83
+ /**
84
+ * If specified, allow the user to create new cards and convert other shapes to cards
85
+ */
86
+ addCard?: {
87
+ /**
88
+ * Given the values entered by the user so far into input fields, return the list of all input fields
89
+ * to display in the create-card form.
90
+ */
91
+ getInputFields: (inputSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardFieldDefinition[]>;
92
+ /**
93
+ * Given the values entered by the user into input fields, create a new data record to represent the
94
+ * created card, and return information about that record.
95
+ */
96
+ createCardData: (input: Map<string, SerializedFieldType>) => Promise<{
97
+ collection: CollectionProxy;
98
+ primaryKey: string;
99
+ }>;
100
+ };
80
101
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LucidSpreadsheetIntegrationRegistry = void 0;
4
4
  const checks_1 = require("../checks");
5
+ const cardintegrationdefinitions_1 = require("../sharedcardintegration/cardintegrationdefinitions");
5
6
  const lucidspreadsheetintegration_1 = require("./lucidspreadsheetintegration");
6
7
  /** @ignore until spreadsheet integration is ready for launch (CHART-51946) */
7
8
  class LucidSpreadsheetIntegrationRegistry {
@@ -73,6 +74,24 @@ class LucidSpreadsheetIntegrationRegistry {
73
74
  'di': spreadsheetIntegration.iconConfiguration.darkIconUrl,
74
75
  };
75
76
  }
77
+ if (spreadsheetIntegration.addCard) {
78
+ const addCard = spreadsheetIntegration.addCard;
79
+ serialized['ac'] = {
80
+ 'gif': LucidSpreadsheetIntegrationRegistry.nextHookName(),
81
+ 'cc': LucidSpreadsheetIntegrationRegistry.nextHookName(),
82
+ };
83
+ client.registerAction(serialized['ac']['gif'], async ({ 'i': inputSoFar }) => {
84
+ const result = await addCard.getInputFields(new Map(inputSoFar));
85
+ return (0, cardintegrationdefinitions_1.serializeCardFieldArrayDefinition)(result);
86
+ });
87
+ client.registerAction(serialized['ac']['cc'], async ({ 'i': input }) => {
88
+ const result = await addCard.createCardData(new Map(input));
89
+ return {
90
+ 'c': result.collection.id,
91
+ 'pk': result.primaryKey,
92
+ };
93
+ });
94
+ }
76
95
  if (spreadsheetIntegration.getUpstreamSourceUrl) {
77
96
  const getUpstreamSourceUrl = LucidSpreadsheetIntegrationRegistry.nextHookName();
78
97
  client.registerAction(getUpstreamSourceUrl, async (message) => {
package/index.d.ts CHANGED
@@ -2,7 +2,6 @@ export * from './commandtypes';
2
2
  export * from './core/base64';
3
3
  export * from './core/cardintegration/cardfielddisplaysettings';
4
4
  export * from './core/cardintegration/cardintegrationconfig';
5
- export * from './core/cardintegration/cardintegrationdefinitions';
6
5
  export * from './core/cardintegration/lucidcardintegration';
7
6
  export * from './core/cardintegration/lucidcardintegrationregistry';
8
7
  export * from './core/checks';
@@ -50,6 +49,7 @@ export * from './core/rules/conditiontype';
50
49
  export * from './core/rules/serializedeffect';
51
50
  export * from './core/serializeddataerror';
52
51
  export * from './core/shapedatainheritance';
52
+ export * from './core/sharedcardintegration/cardintegrationdefinitions';
53
53
  export * from './core/spreadsheetintegration/lucidspreadsheetintegration';
54
54
  export * from './core/spreadsheetintegration/lucidspreadsheetintegrationregistry';
55
55
  export * from './core/unfurl/unfurlcallbacks';
package/index.js CHANGED
@@ -18,7 +18,6 @@ __exportStar(require("./commandtypes"), exports);
18
18
  __exportStar(require("./core/base64"), exports);
19
19
  __exportStar(require("./core/cardintegration/cardfielddisplaysettings"), exports);
20
20
  __exportStar(require("./core/cardintegration/cardintegrationconfig"), exports);
21
- __exportStar(require("./core/cardintegration/cardintegrationdefinitions"), exports);
22
21
  __exportStar(require("./core/cardintegration/lucidcardintegration"), exports);
23
22
  __exportStar(require("./core/cardintegration/lucidcardintegrationregistry"), exports);
24
23
  __exportStar(require("./core/checks"), exports);
@@ -66,6 +65,7 @@ __exportStar(require("./core/rules/conditiontype"), exports);
66
65
  __exportStar(require("./core/rules/serializedeffect"), exports);
67
66
  __exportStar(require("./core/serializeddataerror"), exports);
68
67
  __exportStar(require("./core/shapedatainheritance"), exports);
68
+ __exportStar(require("./core/sharedcardintegration/cardintegrationdefinitions"), exports);
69
69
  __exportStar(require("./core/spreadsheetintegration/lucidspreadsheetintegration"), exports);
70
70
  __exportStar(require("./core/spreadsheetintegration/lucidspreadsheetintegrationregistry"), exports);
71
71
  __exportStar(require("./core/unfurl/unfurlcallbacks"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lucid-extension-sdk",
3
- "version": "0.0.362",
3
+ "version": "0.0.364",
4
4
  "description": "Utility classes for writing Lucid Software editor extensions",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",