lucid-extension-sdk 0.0.447 → 0.0.449

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.
Files changed (165) hide show
  1. package/commandtypes.d.ts +32 -5
  2. package/commandtypes.js +2 -2
  3. package/core/assertnever.js +1 -2
  4. package/core/base64.js +2 -3
  5. package/core/cardintegration/cardfielddisplaysettings.d.ts +2 -2
  6. package/core/cardintegration/cardfielddisplaysettings.js +2 -2
  7. package/core/cardintegration/cardintegrationautosyncconfig.d.ts +11 -1
  8. package/core/cardintegration/cardintegrationconfig.d.ts +23 -0
  9. package/core/cardintegration/cardintegrationconfig.js +10 -0
  10. package/core/cardintegration/cardintegrationparams.d.ts +10 -0
  11. package/core/cardintegration/cardpaneltabs/tab.js +3 -3
  12. package/core/cardintegration/cardpaneltabs/tabs/listtab.js +3 -3
  13. package/core/cardintegration/cardpaneltabs/tabs.js +5 -5
  14. package/core/cardintegration/extensiondatapanel/extensiondatapanellistitem.js +4 -4
  15. package/core/cardintegration/extensiondatapanel/extensiondatapanellistitemtag.js +4 -5
  16. package/core/cardintegration/extensiondatapanel/extensiondatapanellistitemtexttag.js +3 -3
  17. package/core/cardintegration/extensiondatapanel/extensiondatapanellistitemusertag.js +3 -3
  18. package/core/cardintegration/lucidcardintegration.d.ts +34 -4
  19. package/core/cardintegration/lucidcardintegration.js +2 -0
  20. package/core/cardintegration/lucidcardintegrationpresetsetupmodal.d.ts +29 -0
  21. package/core/cardintegration/lucidcardintegrationpresetsetupmodal.js +15 -0
  22. package/core/cardintegration/lucidcardintegrationregistry.d.ts +2 -1
  23. package/core/cardintegration/lucidcardintegrationregistry.js +59 -1
  24. package/core/cardintegration/lucidcardintegrationstandardimportmodal.d.ts +1 -0
  25. package/core/cardintegration/useritemeditpermissions.js +4 -4
  26. package/core/checks.d.ts +1 -1
  27. package/core/checks.js +29 -30
  28. package/core/data/datasource/datasourcetype.d.ts +3 -3
  29. package/core/data/datasource/datasourceutils.js +7 -7
  30. package/core/data/datasource/metadatatypes.d.ts +1 -1
  31. package/core/data/datasource/previewdatatypes.js +1 -2
  32. package/core/data/datasource/semanticcollection.d.ts +1 -1
  33. package/core/data/datasource/semanticrelationships.d.ts +1 -1
  34. package/core/data/datasource/semanticrelationships.js +2 -2
  35. package/core/data/datasource/serializeddatasourceproperties.d.ts +2 -2
  36. package/core/data/datasource/serializedimporteddatasource.d.ts +4 -4
  37. package/core/data/datasource/serializedupstreamconfig.d.ts +2 -2
  38. package/core/data/datasource/sourceforeignkeys.js +2 -3
  39. package/core/data/datasource/updatecreationpermission.d.ts +1 -1
  40. package/core/data/datasource/updatecreationpermission.js +2 -2
  41. package/core/data/datasource/upstreamconfig.js +3 -4
  42. package/core/data/datasource/upstreampatchtype.d.ts +2 -2
  43. package/core/data/fieldspecification.d.ts +8 -6
  44. package/core/data/fieldspecification.js +4 -3
  45. package/core/data/fieldtypedefinition/basefieldtypedefinition.js +4 -5
  46. package/core/data/fieldtypedefinition/collectionenumfieldtype.d.ts +3 -2
  47. package/core/data/fieldtypedefinition/collectionenumfieldtype.js +4 -3
  48. package/core/data/fieldtypedefinition/deserializedmapenumfieldtype.d.ts +8 -0
  49. package/core/data/fieldtypedefinition/deserializedmapenumfieldtype.js +32 -7
  50. package/core/data/fieldtypedefinition/fieldtypearray.js +3 -3
  51. package/core/data/fieldtypedefinition/fieldtypedefinition.js +4 -5
  52. package/core/data/fieldtypedefinition/literalfieldtype.js +4 -4
  53. package/core/data/fieldtypedefinition/lucidfields.d.ts +1 -1
  54. package/core/data/fieldtypedefinition/ndimensionalfieldtypearray.js +5 -5
  55. package/core/data/fieldtypedefinition/scalarfieldtype.d.ts +1 -1
  56. package/core/data/fieldtypedefinition/semanticfields.d.ts +1 -1
  57. package/core/data/fieldtypedefinition/semantickind.d.ts +1 -1
  58. package/core/data/fieldtypedefinition/semantickind.js +3 -3
  59. package/core/data/fieldtypedefinition/utils.js +2 -3
  60. package/core/data/formulastring.js +1 -2
  61. package/core/data/lucidicon.js +1 -2
  62. package/core/data/luciduseravatar.js +1 -2
  63. package/core/data/referencekeys/serializedreferencekey.js +4 -4
  64. package/core/data/serializedfield/lucidfielddefaults.js +3 -3
  65. package/core/data/serializedfield/serializeddisplayoption.d.ts +5 -4
  66. package/core/data/serializedfield/serializeddisplayoption.js +1 -0
  67. package/core/data/serializedfield/serializedfielddefinition.d.ts +8 -8
  68. package/core/data/serializedfield/serializedfields.js +4 -4
  69. package/core/data/serializedfield/serializedschema.js +1 -2
  70. package/core/data/utils/getcollectionenumfieldcollection.js +1 -2
  71. package/core/data/utils/getcollectionenumfielditems.js +1 -2
  72. package/core/data/utils/getmaximalorderedsubset.js +1 -2
  73. package/core/defer.d.ts +1 -1
  74. package/core/defer.js +1 -2
  75. package/core/enum.js +5 -6
  76. package/core/format/arrayformat.js +3 -4
  77. package/core/format/enumformat.d.ts +2 -1
  78. package/core/format/enumformat.js +5 -7
  79. package/core/format/format.js +5 -5
  80. package/core/format/mapformat.js +1 -2
  81. package/core/format/maybestringifiedjsvalue.js +1 -2
  82. package/core/format/objectformat.d.ts +5 -1
  83. package/core/format/objectformat.js +8 -5
  84. package/core/format/opaqueformat.js +1 -2
  85. package/core/format/primitiveformat.js +4 -4
  86. package/core/format/recordformat.js +1 -2
  87. package/core/format/simpleformat.js +3 -3
  88. package/core/format/urlformat.d.ts +2 -0
  89. package/core/format/urlformat.js +19 -0
  90. package/core/identity.d.ts +1 -1
  91. package/core/iframe/iframeutils.js +4 -4
  92. package/core/importcardfromdetails/importcardfromdetails.js +3 -3
  93. package/core/iterable.js +3 -4
  94. package/core/jsonserializable.js +3 -4
  95. package/core/map.js +3 -3
  96. package/core/object.js +2 -3
  97. package/core/offsettype.js +2 -2
  98. package/core/opaque.js +2 -3
  99. package/core/primitivedata.d.ts +2 -0
  100. package/core/primitivedata.js +22 -16
  101. package/core/properties/datagraphic/badgeposition.d.ts +1 -1
  102. package/core/properties/datagraphic/badgeposition.js +16 -16
  103. package/core/properties/datagraphic/datagraphicindexes.js +3 -3
  104. package/core/properties/datagraphic/staticdatagraphicsettings.js +3 -4
  105. package/core/properties/fillcolor.js +2 -2
  106. package/core/properties/shadow.js +2 -3
  107. package/core/properties/strokestyle.js +3 -3
  108. package/core/pruners/pruners.js +5 -6
  109. package/core/result.js +4 -5
  110. package/core/rules/conditions.d.ts +6 -2
  111. package/core/rules/conditions.js +6 -1
  112. package/core/rules/conditiontype.d.ts +2 -1
  113. package/core/rules/conditiontype.js +1 -0
  114. package/core/serializeddataerror.js +1 -2
  115. package/core/sharedcardintegration/cardintegrationdefinitions.d.ts +80 -15
  116. package/core/sharedcardintegration/cardintegrationdefinitions.js +49 -17
  117. package/core/spreadsheetintegration/lucidspreadsheetintegration.d.ts +9 -1
  118. package/core/spreadsheetintegration/lucidspreadsheetintegrationregistry.d.ts +8 -0
  119. package/core/spreadsheetintegration/lucidspreadsheetintegrationregistry.js +31 -4
  120. package/core/unfurl/unfurldetails.js +3 -3
  121. package/core/unfurl/unfurliframe.js +6 -6
  122. package/core/unfurl/unfurlrefresherrortype.d.ts +1 -1
  123. package/core/unfurl/unfurlthumbnail.js +3 -3
  124. package/core/validators/compactvalidatorsandpruners.d.ts +29 -2
  125. package/core/validators/compactvalidatorsandpruners.js +48 -13
  126. package/core/validators/validators.d.ts +1 -1
  127. package/core/validators/validators.js +44 -39
  128. package/data/branchedcollectionid.js +2 -3
  129. package/data/collectiondefinition.js +3 -3
  130. package/data/collectionproxy.js +2 -2
  131. package/data/displayoptiondefinition.d.ts +7 -7
  132. package/data/displayoptiondefinition.js +21 -6
  133. package/data/fieldconstraintdefinition.d.ts +3 -5
  134. package/data/fieldconstraintdefinition.js +4 -4
  135. package/data/referencekeydefinition.js +3 -4
  136. package/data/schemadefinition.d.ts +2 -1
  137. package/data/schemadefinition.js +14 -6
  138. package/dataconnector/actions/getmergedpatches.js +1 -2
  139. package/dataconnector/actions/managewebhookresponsebody.js +1 -2
  140. package/dataconnector/actions/patch.js +3 -3
  141. package/dataconnector/actions/patch.test.js +5 -6
  142. package/dataconnector/actions/patchresponsebody.d.ts +2 -2
  143. package/dataconnector/actions/patchresponsebody.js +3 -3
  144. package/dataconnector/actions/serializedactions.js +2 -2
  145. package/dataconnector/actions/serializedpatchtypes.d.ts +4 -0
  146. package/dataconnector/datasourceupdatetypes.js +8 -7
  147. package/dataconnector/debugserver.js +2 -3
  148. package/dataconnector/throwunsuccessful.js +1 -2
  149. package/document/blockclasses/blockproxyregistry.js +1 -2
  150. package/document/blockclasses/customblockproxy.d.ts +3 -3
  151. package/document/documentelement/ruleproxy.js +1 -1
  152. package/document/imagedefinition.js +1 -2
  153. package/document/linedefinition.js +3 -4
  154. package/document/linetextareapositioning.js +3 -4
  155. package/document/ruledefinition.js +3 -4
  156. package/document/text/textstyle.js +2 -2
  157. package/editorclient.d.ts +1 -1
  158. package/editorclient.js +3 -3
  159. package/index.d.ts +0 -1
  160. package/index.js +0 -1
  161. package/interop.d.ts +4 -1
  162. package/math.js +13 -13
  163. package/message/importcardfrompastedlinkeventmessage.js +2 -3
  164. package/message/unfurleventmessage.js +2 -3
  165. package/package.json +3 -3
package/commandtypes.d.ts CHANGED
@@ -252,8 +252,8 @@ export type CommandArgs = {
252
252
  result: CancelDragBlockToCanvasResult;
253
253
  };
254
254
  [CommandName.CheckUserFlagAssignment]: {
255
- query: CheckUserFlagAssignmentQuery;
256
- result: CheckUserFlagAssignmentResult;
255
+ query: CheckUserFeatureFlagAssignmentQuery;
256
+ result: CheckUserFeatureFlagAssignmentResult;
257
257
  };
258
258
  [CommandName.Confirm]: {
259
259
  query: ConfirmQuery;
@@ -765,6 +765,13 @@ export type AutoSyncSettings = {
765
765
  'gsf': string;
766
766
  'sqs'?: string | undefined;
767
767
  'syqs'?: string | undefined;
768
+ /** If specified, setup fields that allow user to create query template that auto applies to dynamic tables when created*/
769
+ 'dpf'?: {
770
+ /** Get search fields action */
771
+ 'gsf': string;
772
+ /** Generate preset value action */
773
+ 'gpv': string;
774
+ } | undefined;
768
775
  };
769
776
  export type SerializedFieldConfiguration = {
770
777
  /** Callback to get field definitions for all fields supported by the card integration */
@@ -773,6 +780,10 @@ export type SerializedFieldConfiguration = {
773
780
  'osfc'?: string | undefined;
774
781
  /** Field name -> callback name tuples for searching for legal field values in an enum */
775
782
  'fvsc'?: [string, string][] | undefined;
783
+ /** Field name -> callback name tuples for some function that should be called before the field value is updated */
784
+ 'fttic'?: [string, string][] | undefined;
785
+ /** Field type -> callback name tuples for searching for legal field values in an enum */
786
+ 'ftvsc'?: [string, string][] | undefined;
776
787
  /** Default search callback for searching for legal field values in an enum */
777
788
  'dsc'?: string | undefined;
778
789
  /** Custom field display settings */
@@ -821,6 +832,8 @@ export type AddCardIntegrationQuery = {
821
832
  'mmw'?: number | undefined;
822
833
  /** Use Isolated Search Bar */
823
834
  'uisbui'?: boolean;
835
+ /** Use Updated Filter UI */
836
+ 'uufui'?: boolean;
824
837
  /** Get search fields action */
825
838
  'gsf': string;
826
839
  /** Search action */
@@ -926,8 +939,9 @@ export type AddCardIntegrationQuery = {
926
939
  'ilp'?: string;
927
940
  } | undefined;
928
941
  /**
929
- * If provided, this data is used to turn links pasted on the canvas that match the domain into primary keys and
942
+ * If provided, this data is used to turn links pasted on the canvas that match the domain(s) into primary keys and
930
943
  * other helpful data, which are sent back to the extension as an import action.
944
+ * The 'd' field can be a single domain string or an array of domain strings.
931
945
  */
932
946
  'icfpl'?: {
933
947
  'd': string | string[];
@@ -939,6 +953,15 @@ export type AddCardIntegrationQuery = {
939
953
  'cei'?: string | undefined;
940
954
  /** getAdditionalPanelTabsForCard -- Cards' additional details via tabs in panel */
941
955
  'gaptfc'?: string | undefined;
956
+ /** Instance switching configuration */
957
+ 'is'?: {
958
+ /** Get instances action */
959
+ 'gi': string;
960
+ /** On instance change action */
961
+ 'oic': string;
962
+ /** Get selected instance ID action */
963
+ 'gsii': string;
964
+ } | undefined;
942
965
  };
943
966
  export type AddCardIntegrationResult = undefined;
944
967
  export type AddLineTextAreaQuery = {
@@ -1042,6 +1065,10 @@ export type AddShapeDataQuery = {
1042
1065
  export type AddShapeDataResult = undefined;
1043
1066
  /** @ignore until spreadsheet integration is ready for launch (CHART-51946) */
1044
1067
  export type AddSpreadsheetIntegrationQuery = {
1068
+ /** Item label */
1069
+ 'il'?: string;
1070
+ /** Items label */
1071
+ 'isl'?: string;
1045
1072
  /** labelDescription */
1046
1073
  'ld': string;
1047
1074
  /** labelIconUrl */
@@ -2064,9 +2091,9 @@ export type ZOrderQuery = {
2064
2091
  'o': ZOrderOperation;
2065
2092
  };
2066
2093
  export type ZOrderResult = undefined;
2067
- export type CheckUserFlagAssignmentQuery = {
2094
+ export type CheckUserFeatureFlagAssignmentQuery = {
2068
2095
  /** The name of the flag that will be checked */
2069
2096
  'f': string;
2070
2097
  };
2071
- export type CheckUserFlagAssignmentResult = boolean;
2098
+ export type CheckUserFeatureFlagAssignmentResult = boolean;
2072
2099
  export {};
package/commandtypes.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ZOrderOperation = exports.isRawSendXHRResponse = exports.MermaidDiagramType = exports.GetLLMContextType = exports.GetItemsAtSearchType = exports.GetDocumentChunksType = exports.HashAlgorithmEnum = exports.AuthorizationFlowHandlerStage = exports.commandTitles = void 0;
3
+ exports.ZOrderOperation = exports.MermaidDiagramType = exports.GetLLMContextType = exports.GetItemsAtSearchType = exports.GetDocumentChunksType = exports.HashAlgorithmEnum = exports.AuthorizationFlowHandlerStage = exports.commandTitles = void 0;
4
+ exports.isRawSendXHRResponse = isRawSendXHRResponse;
4
5
  const checks_1 = require("./core/checks");
5
6
  /** @ignore */
6
7
  exports.commandTitles = new Map([
@@ -194,7 +195,6 @@ var MermaidDiagramType;
194
195
  function isRawSendXHRResponse(val) {
195
196
  return (0, checks_1.isString)(val['url']) && (0, checks_1.isString)(val['t']) && (0, checks_1.isNumber)(val['s']) && (0, checks_1.isObject)(val['h']);
196
197
  }
197
- exports.isRawSendXHRResponse = isRawSendXHRResponse;
198
198
  var ZOrderOperation;
199
199
  (function (ZOrderOperation) {
200
200
  ZOrderOperation[ZOrderOperation["UP"] = 1] = "UP";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertNever = void 0;
3
+ exports.assertNever = assertNever;
4
4
  /**
5
5
  * Use this to assert that a type check is exhaustive at build-time. There should never be a code path that reaches this function.
6
6
  * @param x the value to assert is never reached
@@ -8,4 +8,3 @@ exports.assertNever = void 0;
8
8
  function assertNever(x) {
9
9
  throw new Error(`Assertion failed! Expected assertNever to not be called, but it was called with parameter ${JSON.stringify(x)}`);
10
10
  }
11
- exports.assertNever = assertNever;
package/core/base64.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeBase64 = exports.decodeBase64 = void 0;
3
+ exports.decodeBase64 = decodeBase64;
4
+ exports.encodeBase64 = encodeBase64;
4
5
  const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
5
6
  //This gives a ~8x speedup vs. using alphabet.indexOf() in the main decode loop.
6
7
  const charCodeToEncodedInt = [];
@@ -45,7 +46,6 @@ function decodeBase64(base64String) {
45
46
  }
46
47
  return output;
47
48
  }
48
- exports.decodeBase64 = decodeBase64;
49
49
  function encodeBase64(byteArray) {
50
50
  // 3 bytes of input become 4 chars of output
51
51
  // i.e. every 6 bits of input becomes 1 char of output
@@ -85,4 +85,3 @@ function encodeBase64(byteArray) {
85
85
  }
86
86
  return output.join('');
87
87
  }
88
- exports.encodeBase64 = encodeBase64;
@@ -65,7 +65,7 @@ export declare enum FieldDisplayType {
65
65
  */
66
66
  CustomTextField = "CustomTextField"
67
67
  }
68
- export declare const isFieldDisplayType: (x: unknown) => x is FieldDisplayType;
68
+ export declare const isFieldDisplayType: (x: unknown) => x is {} extends typeof FieldDisplayType ? never : FieldDisplayType;
69
69
  /**
70
70
  * When configuring a field on a LucidCardBlock to be displayed as a data graphic, this click handler value
71
71
  * specifies what to do when the user clicks on the data graphic produced.
@@ -98,7 +98,7 @@ export declare enum OnClickHandlerKeys {
98
98
  */
99
99
  OpenTargetTab = "OpenTargetTab"
100
100
  }
101
- export declare const isOnClickHandlerKey: (x: unknown) => x is OnClickHandlerKeys;
101
+ export declare const isOnClickHandlerKey: (x: unknown) => x is {} extends typeof OnClickHandlerKeys ? never : OnClickHandlerKeys;
102
102
  declare const TextBadgeSettingsFormatter: import("../format/format").Format<import("../format/objectformat").ObjectFormatSerializedType<{
103
103
  readonly rounding: readonly ["rounding", import("../format/format").Format<number | null | undefined, number | null | undefined>];
104
104
  readonly bold: readonly ["bold", import("../format/format").Format<boolean | null | undefined, boolean | null | undefined>];
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LucidCardFields = exports.StatusValues = exports.deserializeLucidCardFieldDisplaySettings = exports.serializeLucidCardFieldDisplaySettings = exports.copyLucidCardFieldDisplaySettings = exports.isSerializedLucidCardFieldDisplaySettings = exports.CardFieldDisplaySettingsFormatter = exports.isOnClickHandlerKey = exports.OnClickHandlerKeys = exports.isFieldDisplayType = exports.FieldDisplayType = void 0;
3
+ exports.LucidCardFields = exports.StatusValues = exports.deserializeLucidCardFieldDisplaySettings = exports.serializeLucidCardFieldDisplaySettings = exports.isSerializedLucidCardFieldDisplaySettings = exports.CardFieldDisplaySettingsFormatter = exports.isOnClickHandlerKey = exports.OnClickHandlerKeys = exports.isFieldDisplayType = exports.FieldDisplayType = void 0;
4
+ exports.copyLucidCardFieldDisplaySettings = copyLucidCardFieldDisplaySettings;
4
5
  const enumformat_1 = require("../format/enumformat");
5
6
  const format_1 = require("../format/format");
6
7
  const objectformat_1 = require("../format/objectformat");
@@ -204,7 +205,6 @@ exports.isSerializedLucidCardFieldDisplaySettings = exports.CardFieldDisplaySett
204
205
  function copyLucidCardFieldDisplaySettings(settings) {
205
206
  return (0, exports.deserializeLucidCardFieldDisplaySettings)((0, exports.serializeLucidCardFieldDisplaySettings)(settings));
206
207
  }
207
- exports.copyLucidCardFieldDisplaySettings = copyLucidCardFieldDisplaySettings;
208
208
  /** @ignore */
209
209
  exports.serializeLucidCardFieldDisplaySettings = exports.CardFieldDisplaySettingsFormatter.toJson;
210
210
  /** @ignore */
@@ -1,5 +1,6 @@
1
1
  import type { SerializedFieldType } from '../data/serializedfield/serializedfields';
2
2
  import type { ExtensionCardFieldDefinition, ImportResult, SearchResult } from '../sharedcardintegration/cardintegrationdefinitions';
3
+ import type { DocumentPresetSetupFields } from './lucidcardintegrationpresetsetupmodal';
3
4
  /**
4
5
  * The amount of results that will be displayed per page when using pagination. To enable pagination, define the
5
6
  * {@link SearchResult.itemsPerSearchResult} field in your search results and return workitems equal to this variable's
@@ -39,6 +40,15 @@ export interface CardIntegrationAutoSyncConfig {
39
40
  * @returns the ImportResult for the query string.
40
41
  */
41
42
  syncQueryString?: (queryString: string, otherFields: Map<string, SerializedFieldType>) => Promise<ImportResult | ImportResult[]>;
43
+ /**
44
+ * @experimental
45
+ * Document preset setup configuration for this card integration's auto sync.
46
+ *
47
+ * When specified, this enables your card integration to participate in Lucid's document preset
48
+ * system, which allows users to configure dynamic matrix templates that automatically populate new
49
+ * documents with cards from your integration.
50
+ */
51
+ documentPresetSetupFields?: DocumentPresetSetupFields | undefined;
42
52
  }
43
53
  export interface AutoSyncConfigPhrasesType {
44
54
  /**
@@ -70,4 +80,4 @@ export declare enum SupportedAutoSyncGeneratorType {
70
80
  Timeline = "timeline",
71
81
  DynamicMatrix = "dynamic matrix"
72
82
  }
73
- export declare const isSupportedAutoSyncGeneratorType: (x: unknown) => x is SupportedAutoSyncGeneratorType;
83
+ export declare const isSupportedAutoSyncGeneratorType: (x: unknown) => x is {} extends typeof SupportedAutoSyncGeneratorType ? never : SupportedAutoSyncGeneratorType;
@@ -1,3 +1,4 @@
1
+ import { DisplayOptionType } from '../data/serializedfield/serializeddisplayoption';
1
2
  import { type FormatToDeserializedType, type FormatToSerializedType } from '../format/format';
2
3
  import type { DeepWritable } from '../mutable';
3
4
  declare const CardIntegrationConfigFormatter: import("../format/format").Format<import("../format/objectformat").ObjectFormatSerializedType<{
@@ -185,14 +186,32 @@ declare const CardIntegrationConfigFormatter: import("../format/format").Format<
185
186
  * If true then the visibility of this field in the details panel cannot be modified by a user.
186
187
  */
187
188
  readonly locked: readonly ["l", import("../format/format").Format<boolean | null | undefined, boolean | null | undefined>];
189
+ /**
190
+ * Optional display options for the field (e.g., helper text)
191
+ */
192
+ readonly displayOptions: readonly ["do", import("../format/format").Format<readonly import("../format/objectformat").ObjectFormatSerializedType<{
193
+ readonly type: readonly ["Type", import("../format/format").Format<DisplayOptionType, DisplayOptionType>];
194
+ readonly value: readonly ["Details", import("../format/format").Format<string | null | undefined, string | null | undefined>];
195
+ }>[] | null | undefined, readonly {
196
+ readonly type: DisplayOptionType;
197
+ readonly value?: string | null | undefined;
198
+ }[] | null | undefined>];
188
199
  }>[], readonly {
189
200
  readonly name: string;
190
201
  readonly locked?: boolean | null | undefined;
202
+ readonly displayOptions?: readonly {
203
+ readonly type: DisplayOptionType;
204
+ readonly value?: string | null | undefined;
205
+ }[] | null | undefined;
191
206
  }[]>];
192
207
  }>, {
193
208
  readonly fields: readonly {
194
209
  readonly name: string;
195
210
  readonly locked?: boolean | null | undefined;
211
+ readonly displayOptions?: readonly {
212
+ readonly type: DisplayOptionType;
213
+ readonly value?: string | null | undefined;
214
+ }[] | null | undefined;
196
215
  }[];
197
216
  }>];
198
217
  }>, {
@@ -242,6 +261,10 @@ declare const CardIntegrationConfigFormatter: import("../format/format").Format<
242
261
  readonly fields: readonly {
243
262
  readonly name: string;
244
263
  readonly locked?: boolean | null | undefined;
264
+ readonly displayOptions?: readonly {
265
+ readonly type: DisplayOptionType;
266
+ readonly value?: string | null | undefined;
267
+ }[] | null | undefined;
245
268
  }[];
246
269
  };
247
270
  }>;
@@ -2,12 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deserializeCardIntegrationConfig = exports.serializeCardIntegrationConfig = exports.isSerializedCardIntegrationConfig = void 0;
4
4
  const textstyle_1 = require("../../document/text/textstyle");
5
+ const serializeddisplayoption_1 = require("../data/serializedfield/serializeddisplayoption");
5
6
  const arrayformat_1 = require("../format/arrayformat");
7
+ const enumformat_1 = require("../format/enumformat");
6
8
  const format_1 = require("../format/format");
7
9
  const mapformat_1 = require("../format/mapformat");
8
10
  const objectformat_1 = require("../format/objectformat");
9
11
  const primitiveformat_1 = require("../format/primitiveformat");
10
12
  const cardfielddisplaysettings_1 = require("./cardfielddisplaysettings");
13
+ const DisplayOptionDefinitionFormatter = (0, objectformat_1.ObjectFormat)({
14
+ type: ['Type', (0, enumformat_1.EnumFormat)(serializeddisplayoption_1.DisplayOptionType)],
15
+ value: ['Details', (0, format_1.OptionFormat)(primitiveformat_1.StringFormat)],
16
+ });
11
17
  const CardIntegrationConfigFormatter = (0, objectformat_1.ObjectFormat)({
12
18
  cardConfig: [
13
19
  'cc',
@@ -47,6 +53,10 @@ const CardIntegrationConfigFormatter = (0, objectformat_1.ObjectFormat)({
47
53
  * If true then the visibility of this field in the details panel cannot be modified by a user.
48
54
  */
49
55
  locked: ['l', (0, format_1.OptionFormat)(primitiveformat_1.BooleanFormat)],
56
+ /**
57
+ * Optional display options for the field (e.g., helper text)
58
+ */
59
+ displayOptions: ['do', (0, format_1.OptionFormat)((0, arrayformat_1.ArrayFormat)(DisplayOptionDefinitionFormatter))],
50
60
  })),
51
61
  ],
52
62
  }),
@@ -110,4 +110,14 @@ export interface DataItemCallbackParam {
110
110
  export interface ImportFromSerializedFieldsCallbackParam {
111
111
  'sf': SerializedFields[];
112
112
  }
113
+ /** @ignore */
114
+ export interface FieldTypeValueToItemsCallbackParams {
115
+ 'd'?: string | undefined;
116
+ 'v': SerializedFieldType;
117
+ 'f': string;
118
+ }
119
+ /** @ignore */
120
+ export interface GeneratePresetValueParam {
121
+ 'f': [string, SerializedFieldType][];
122
+ }
113
123
  export {};
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeLucidCardPanelTab = exports.serializeLucidCardPanelTab = exports.isValidSerializedLucidCardPanelTab = exports.isValidLucidCardPanelTab = void 0;
3
+ exports.isValidSerializedLucidCardPanelTab = exports.isValidLucidCardPanelTab = void 0;
4
+ exports.serializeLucidCardPanelTab = serializeLucidCardPanelTab;
5
+ exports.deserializeLucidCardPanelTab = deserializeLucidCardPanelTab;
4
6
  const assertnever_1 = require("../../assertnever");
5
7
  const validators_1 = require("../../validators/validators");
6
8
  const listtab_1 = require("./tabs/listtab");
@@ -17,7 +19,6 @@ function serializeLucidCardPanelTab(concrete) {
17
19
  (0, assertnever_1.assertNever)(concrete.type);
18
20
  }
19
21
  }
20
- exports.serializeLucidCardPanelTab = serializeLucidCardPanelTab;
21
22
  /** @ignore */
22
23
  function deserializeLucidCardPanelTab(serialized) {
23
24
  switch (serialized.type) {
@@ -27,4 +28,3 @@ function deserializeLucidCardPanelTab(serialized) {
27
28
  (0, assertnever_1.assertNever)(serialized.type);
28
29
  }
29
30
  }
30
- exports.deserializeLucidCardPanelTab = deserializeLucidCardPanelTab;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeLucidCardPanelListTab = exports.serializeLucidCardPanelListTab = exports.isValidSerializedLucidCardPanelListTab = exports.isValidLucidCardPanelListTab = void 0;
3
+ exports.isValidSerializedLucidCardPanelListTab = exports.isValidLucidCardPanelListTab = void 0;
4
+ exports.serializeLucidCardPanelListTab = serializeLucidCardPanelListTab;
5
+ exports.deserializeLucidCardPanelListTab = deserializeLucidCardPanelListTab;
4
6
  const checks_1 = require("../../../checks");
5
7
  const validators_1 = require("../../../validators/validators");
6
8
  const extensiondatapanellistitem_1 = require("../../extensiondatapanel/extensiondatapanellistitem");
@@ -24,7 +26,6 @@ function serializeLucidCardPanelListTab(concrete) {
24
26
  'i': concrete.items.map(extensiondatapanellistitem_1.serializeExtensionDataPanelListItem),
25
27
  };
26
28
  }
27
- exports.serializeLucidCardPanelListTab = serializeLucidCardPanelListTab;
28
29
  /** @ignore */
29
30
  function deserializeLucidCardPanelListTab(serialized) {
30
31
  return {
@@ -33,4 +34,3 @@ function deserializeLucidCardPanelListTab(serialized) {
33
34
  items: serialized['i'].map(extensiondatapanellistitem_1.deserializeExtensionDataPanelListItem),
34
35
  };
35
36
  }
36
- exports.deserializeLucidCardPanelListTab = deserializeLucidCardPanelListTab;
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeTabsCallback = exports.registerGetAdditionalPanelTabsForCardCallback = exports.deserializeLucidCardPanelTabs = exports.serializeLucidCardPanelTabs = exports.areValidSerializedLucidCardPanelTabs = exports.areValidLucidCardPanelTabs = void 0;
3
+ exports.areValidSerializedLucidCardPanelTabs = exports.areValidLucidCardPanelTabs = void 0;
4
+ exports.serializeLucidCardPanelTabs = serializeLucidCardPanelTabs;
5
+ exports.deserializeLucidCardPanelTabs = deserializeLucidCardPanelTabs;
6
+ exports.registerGetAdditionalPanelTabsForCardCallback = registerGetAdditionalPanelTabsForCardCallback;
7
+ exports.deserializeTabsCallback = deserializeTabsCallback;
4
8
  const collectionproxy_1 = require("../../../data/collectionproxy");
5
9
  const dataitemproxy_1 = require("../../../data/dataitemproxy");
6
10
  const datasourceproxy_1 = require("../../../data/datasourceproxy");
@@ -14,12 +18,10 @@ exports.areValidSerializedLucidCardPanelTabs = (0, validators_1.arrayValidator)(
14
18
  function serializeLucidCardPanelTabs(concrete) {
15
19
  return concrete.map(tab_1.serializeLucidCardPanelTab);
16
20
  }
17
- exports.serializeLucidCardPanelTabs = serializeLucidCardPanelTabs;
18
21
  /** @ignore */
19
22
  function deserializeLucidCardPanelTabs(serialized) {
20
23
  return serialized.map(tab_1.deserializeLucidCardPanelTab);
21
24
  }
22
- exports.deserializeLucidCardPanelTabs = deserializeLucidCardPanelTabs;
23
25
  /** @ignore */
24
26
  function registerGetAdditionalPanelTabsForCardCallback(client, tabsCallback, serialized, actionName) {
25
27
  serialized['gaptfc'] = actionName;
@@ -40,7 +42,6 @@ function registerGetAdditionalPanelTabsForCardCallback(client, tabsCallback, ser
40
42
  };
41
43
  client.registerAction(actionName, serializedAction);
42
44
  }
43
- exports.registerGetAdditionalPanelTabsForCardCallback = registerGetAdditionalPanelTabsForCardCallback;
44
45
  /** @ignore */
45
46
  function deserializeTabsCallback(callbackHookName, postMessage) {
46
47
  // Serializes, runs callback, and deserializes the result
@@ -59,4 +60,3 @@ function deserializeTabsCallback(callbackHookName, postMessage) {
59
60
  };
60
61
  return wrappedCallback;
61
62
  }
62
- exports.deserializeTabsCallback = deserializeTabsCallback;
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerGetListItemsForFieldCallback = exports.deserializeExtensionDataPanelListItem = exports.serializeExtensionDataPanelListItem = exports.isValidSerializedExtensionDataPanelListItemArray = exports.isValidSerializedExtensionDataPanelListItem = exports.isValidExtensionDataPanelListItem = void 0;
3
+ exports.isValidSerializedExtensionDataPanelListItemArray = exports.isValidSerializedExtensionDataPanelListItem = exports.isValidExtensionDataPanelListItem = void 0;
4
+ exports.serializeExtensionDataPanelListItem = serializeExtensionDataPanelListItem;
5
+ exports.deserializeExtensionDataPanelListItem = deserializeExtensionDataPanelListItem;
6
+ exports.registerGetListItemsForFieldCallback = registerGetListItemsForFieldCallback;
4
7
  const collectionproxy_1 = require("../../../data/collectionproxy");
5
8
  const dataitemproxy_1 = require("../../../data/dataitemproxy");
6
9
  const datasourceproxy_1 = require("../../../data/datasourceproxy");
@@ -32,14 +35,12 @@ exports.isValidSerializedExtensionDataPanelListItemArray = (0, validators_1.arra
32
35
  function serializeExtensionDataPanelListItem(concrete) {
33
36
  return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (concrete.title !== undefined ? { 't': concrete.title } : {})), (concrete.description !== undefined ? { 'd': concrete.description } : {})), (concrete.caption !== undefined ? { 'c': concrete.caption } : {})), (concrete.icon !== undefined ? { 'i': concrete.icon } : {})), (concrete.externalLink !== undefined ? { 'el': concrete.externalLink } : {})), (concrete.tags !== undefined ? { 'ts': concrete.tags.map(extensiondatapanellistitemtag_1.serializeExtensionDataPanelListItemTag) } : {}));
34
37
  }
35
- exports.serializeExtensionDataPanelListItem = serializeExtensionDataPanelListItem;
36
38
  /** @ignore */
37
39
  function deserializeExtensionDataPanelListItem(serialized) {
38
40
  return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (serialized['t'] !== undefined ? { title: serialized['t'] } : {})), (serialized['d'] !== undefined ? { description: serialized['d'] } : {})), (serialized['c'] !== undefined ? { caption: serialized['c'] } : {})), (serialized['i'] !== undefined ? { icon: serialized['i'] } : {})), (serialized['el'] !== undefined ? { externalLink: serialized['el'] } : {})), (serialized['ts'] !== undefined
39
41
  ? { tags: serialized['ts'].map(extensiondatapanellistitemtag_1.deserializeExtensionDataPanelListItemTag) }
40
42
  : {}));
41
43
  }
42
- exports.deserializeExtensionDataPanelListItem = deserializeExtensionDataPanelListItem;
43
44
  /** @ignore */
44
45
  function registerGetListItemsForFieldCallback(client, listItemsCallback, serialized, actionName) {
45
46
  serialized['fc']['gliff'] = actionName;
@@ -60,4 +61,3 @@ function registerGetListItemsForFieldCallback(client, listItemsCallback, seriali
60
61
  };
61
62
  client.registerAction(actionName, serializedAction);
62
63
  }
63
- exports.registerGetListItemsForFieldCallback = registerGetListItemsForFieldCallback;
@@ -1,19 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeExtensionDataPanelListItemTag = exports.serializeExtensionDataPanelListItemTag = exports.isValidSerializedExtensionDataPanelListItemTag = exports.isValidExtensionDataPanelListItemTag = void 0;
3
+ exports.isValidExtensionDataPanelListItemTag = isValidExtensionDataPanelListItemTag;
4
+ exports.isValidSerializedExtensionDataPanelListItemTag = isValidSerializedExtensionDataPanelListItemTag;
5
+ exports.serializeExtensionDataPanelListItemTag = serializeExtensionDataPanelListItemTag;
6
+ exports.deserializeExtensionDataPanelListItemTag = deserializeExtensionDataPanelListItemTag;
4
7
  const extensiondatapanellistitemtexttag_1 = require("./extensiondatapanellistitemtexttag");
5
8
  const extensiondatapanellistitemusertag_1 = require("./extensiondatapanellistitemusertag");
6
9
  /** @ignore */
7
10
  function isValidExtensionDataPanelListItemTag(value) {
8
11
  return (0, extensiondatapanellistitemtexttag_1.isValidExtensionDataPanelListItemTextTag)(value) || (0, extensiondatapanellistitemusertag_1.isValidExtensionDataPanelListItemUserTag)(value);
9
12
  }
10
- exports.isValidExtensionDataPanelListItemTag = isValidExtensionDataPanelListItemTag;
11
13
  /** @ignore */
12
14
  function isValidSerializedExtensionDataPanelListItemTag(value) {
13
15
  return ((0, extensiondatapanellistitemtexttag_1.isValidSerializedExtensionDataPanelListItemTextTag)(value) ||
14
16
  (0, extensiondatapanellistitemusertag_1.isValidSerializedExtensionDataPanelListItemUserTag)(value));
15
17
  }
16
- exports.isValidSerializedExtensionDataPanelListItemTag = isValidSerializedExtensionDataPanelListItemTag;
17
18
  /** @ignore */
18
19
  function serializeExtensionDataPanelListItemTag(concrete) {
19
20
  if ('users' in concrete) {
@@ -21,7 +22,6 @@ function serializeExtensionDataPanelListItemTag(concrete) {
21
22
  }
22
23
  return (0, extensiondatapanellistitemtexttag_1.serializeExtensionDataPanelListItemTextTag)(concrete);
23
24
  }
24
- exports.serializeExtensionDataPanelListItemTag = serializeExtensionDataPanelListItemTag;
25
25
  /** @ignore */
26
26
  function deserializeExtensionDataPanelListItemTag(serialized) {
27
27
  if ('u' in serialized) {
@@ -29,4 +29,3 @@ function deserializeExtensionDataPanelListItemTag(serialized) {
29
29
  }
30
30
  return (0, extensiondatapanellistitemtexttag_1.deserializeExtensionDataPanelListItemTextTag)(serialized);
31
31
  }
32
- exports.deserializeExtensionDataPanelListItemTag = deserializeExtensionDataPanelListItemTag;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeExtensionDataPanelListItemTextTag = exports.serializeExtensionDataPanelListItemTextTag = exports.isValidSerializedExtensionDataPanelListItemTextTag = exports.isValidExtensionDataPanelListItemTextTag = void 0;
3
+ exports.isValidSerializedExtensionDataPanelListItemTextTag = exports.isValidExtensionDataPanelListItemTextTag = void 0;
4
+ exports.serializeExtensionDataPanelListItemTextTag = serializeExtensionDataPanelListItemTextTag;
5
+ exports.deserializeExtensionDataPanelListItemTextTag = deserializeExtensionDataPanelListItemTextTag;
4
6
  const checks_1 = require("../../checks");
5
7
  const validators_1 = require("../../validators/validators");
6
8
  /** @ignore */
@@ -19,9 +21,7 @@ exports.isValidSerializedExtensionDataPanelListItemTextTag = (0, validators_1.ob
19
21
  function serializeExtensionDataPanelListItemTextTag(concrete) {
20
22
  return Object.assign(Object.assign({ 't': concrete.text }, (concrete.color !== undefined ? { 'c': concrete.color } : {})), (concrete.tooltip !== undefined ? { 'tt': concrete.tooltip } : {}));
21
23
  }
22
- exports.serializeExtensionDataPanelListItemTextTag = serializeExtensionDataPanelListItemTextTag;
23
24
  /** @ignore */
24
25
  function deserializeExtensionDataPanelListItemTextTag(serialized) {
25
26
  return Object.assign(Object.assign({ text: serialized['t'] }, (serialized['c'] !== undefined ? { color: serialized['c'] } : {})), (serialized['tt'] !== undefined ? { tooltip: serialized['tt'] } : {}));
26
27
  }
27
- exports.deserializeExtensionDataPanelListItemTextTag = deserializeExtensionDataPanelListItemTextTag;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeExtensionDataPanelListItemUserTag = exports.serializeExtensionDataPanelListItemUserTag = exports.isValidSerializedExtensionDataPanelListItemUserTag = exports.isValidExtensionDataPanelListItemUserTag = void 0;
3
+ exports.isValidSerializedExtensionDataPanelListItemUserTag = exports.isValidExtensionDataPanelListItemUserTag = void 0;
4
+ exports.serializeExtensionDataPanelListItemUserTag = serializeExtensionDataPanelListItemUserTag;
5
+ exports.deserializeExtensionDataPanelListItemUserTag = deserializeExtensionDataPanelListItemUserTag;
4
6
  const cardintegrationdefinitions_1 = require("../../sharedcardintegration/cardintegrationdefinitions");
5
7
  const validators_1 = require("../../validators/validators");
6
8
  /** @ignore */
@@ -17,11 +19,9 @@ function serializeExtensionDataPanelListItemUserTag(concrete) {
17
19
  'u': concrete.users.map(cardintegrationdefinitions_1.serializeCardUserData),
18
20
  };
19
21
  }
20
- exports.serializeExtensionDataPanelListItemUserTag = serializeExtensionDataPanelListItemUserTag;
21
22
  /** @ignore */
22
23
  function deserializeExtensionDataPanelListItemUserTag(serialized) {
23
24
  return {
24
25
  users: serialized['u'].map(cardintegrationdefinitions_1.deserializeCardUserData),
25
26
  };
26
27
  }
27
- exports.deserializeExtensionDataPanelListItemUserTag = deserializeExtensionDataPanelListItemUserTag;
@@ -2,13 +2,14 @@ import { ImportCardsResult } from '../../commandtypes';
2
2
  import { CollectionProxy } from '../../data/collectionproxy';
3
3
  import { DataItemProxy } from '../../data/dataitemproxy';
4
4
  import { DataSourceProxy } from '../../data/datasourceproxy';
5
+ import { DisplayOptionDefinition } from '../../data/displayoptiondefinition';
5
6
  import type { TextStyle } from '../../document/text/textstyle';
6
7
  import { EditorClient } from '../../editorclient';
7
8
  import { isString } from '../checks';
8
9
  import type { SerializedFieldType, SerializedFields } from '../data/serializedfield/serializedfields';
9
10
  import type { ImportCardFromDetails } from '../importcardfromdetails/importcardfromdetails';
10
11
  import type { ImportCardFromPastedLinkCallback } from '../importcardfrompastedlink/importcardfrompastedlinkcallback';
11
- import type { DependenciesForItems, ExtensionCardFieldDefinition, ExtensionFieldConfiguration, ImportResult } from '../sharedcardintegration/cardintegrationdefinitions';
12
+ import { DependenciesForItems, ExtensionCardFieldDefinition, ExtensionFieldConfiguration, ImportResult, Instance } from '../sharedcardintegration/cardintegrationdefinitions';
12
13
  import type { CardIntegrationAutoSyncConfig } from './cardintegrationautosyncconfig';
13
14
  import type { CardIntegrationConfig } from './cardintegrationconfig';
14
15
  import type { AdditionalPanelTabsCallback } from './cardpaneltabs/tabs';
@@ -25,11 +26,18 @@ export interface FieldDescriptor {
25
26
  * This is useful for fields that should always be shown, such as a "name" field.
26
27
  */
27
28
  locked?: boolean | undefined;
29
+ /**
30
+ * @experimental
31
+ * Optional display options for the field (e.g., helper text, multi-user select UI).
32
+ * Controls how the field is rendered in the card details panel.
33
+ */
34
+ displayOptions?: DisplayOptionDefinition[] | undefined;
28
35
  }
29
36
  export declare const isFieldDescriptor: (subject: unknown) => subject is import("../guards").DestructureGuardedTypeObj<{
30
37
  name: typeof isString;
31
38
  label: (x: unknown) => x is string | undefined;
32
39
  locked: (x: unknown) => x is boolean | undefined;
40
+ displayOptions: (x: unknown) => x is DisplayOptionDefinition[] | undefined;
33
41
  }>;
34
42
  export declare abstract class LucidCardIntegration {
35
43
  protected readonly client: EditorClient;
@@ -158,11 +166,14 @@ export declare abstract class LucidCardIntegration {
158
166
  * A definition of the details required to import a card onto the canvas from a pasted url. The callback returns
159
167
  * necessary data to import cards onto the canvas, or `undefined` if the link couldn't be interpreted.
160
168
  *
161
- * If the domain has already been registered by another card integration for importing cards from pasted links, this
162
- * callback will be prevented from being registered.
169
+ * Domain can be a single string or an array of strings. Each domain will be registered separately.
170
+ * Supports wildcard domains like '*.example.com' to match any subdomain.
171
+ *
172
+ * If any domain has already been registered by another card integration for importing cards from pasted links,
173
+ * that specific domain registration will be prevented.
163
174
  */
164
175
  importCardFromPastedLink?: {
165
- domain: string;
176
+ domain: string | string[];
166
177
  callback: ImportCardFromPastedLinkCallback;
167
178
  };
168
179
  /**
@@ -181,4 +192,23 @@ export declare abstract class LucidCardIntegration {
181
192
  * via tabs that are configured by the extension and displayed in the card details panel.
182
193
  */
183
194
  getAdditionalPanelTabsForCard?: AdditionalPanelTabsCallback;
195
+ /**
196
+ * Configuration for instance switching. An instance is a singular context for which a user can perform search actions
197
+ * or import actions in. Switching between instances will reset the state for searching and creating.
198
+ */
199
+ instanceSwitching?: {
200
+ /**
201
+ * Returns available instances the user can switch between.
202
+ */
203
+ getInstances: () => Promise<Instance[]>;
204
+ /**
205
+ * Called when the user selects a different instance.
206
+ * The extension should update its state for subsequent operations.
207
+ */
208
+ onInstanceChange: (instance: Instance) => Promise<void>;
209
+ /**
210
+ * Returns the currently selected instance ID.
211
+ */
212
+ getSelectedInstanceId: () => string | undefined;
213
+ };
184
214
  }
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LucidCardIntegration = exports.isFieldDescriptor = void 0;
4
+ const displayoptiondefinition_1 = require("../../data/displayoptiondefinition");
4
5
  const checks_1 = require("../checks");
5
6
  const validators_1 = require("../validators/validators");
6
7
  exports.isFieldDescriptor = (0, validators_1.objectValidator)({
7
8
  name: checks_1.isString,
8
9
  label: (0, validators_1.option)(checks_1.isString),
9
10
  locked: (0, validators_1.option)(checks_1.isBoolean),
11
+ displayOptions: (0, validators_1.option)((0, validators_1.arrayValidator)(displayoptiondefinition_1.isDisplayOptionDefinition)),
10
12
  });
11
13
  class LucidCardIntegration {
12
14
  constructor(client) {
@@ -0,0 +1,29 @@
1
+ import { SerializedFieldType } from '../data/serializedfield/serializedfields';
2
+ import { type FormatToSerializedType } from '../format/format';
3
+ import { ExtensionCardFieldDefinition } from '../sharedcardintegration/cardintegrationdefinitions';
4
+ declare const ExtensionGeneratorDocumentPresetInputSourceFormatter: import("../format/format").Format<import("../format/objectformat").ObjectFormatSerializedType<{
5
+ readonly dataConnectorName: readonly ["dcn", import("../format/format").Format<string, string>];
6
+ readonly instanceId: readonly ["iid", import("../format/format").Format<string, string>];
7
+ readonly query: readonly ["q", import("../format/format").Format<string, string>];
8
+ }>, {
9
+ readonly dataConnectorName: string;
10
+ readonly instanceId: string;
11
+ readonly query: string;
12
+ }>;
13
+ export interface ExtensionGeneratorDocumentPresetInputSource {
14
+ dataConnectorName: string;
15
+ instanceId: string;
16
+ query: string;
17
+ }
18
+ /** @ignore */
19
+ export type SerializedExtensionGeneratorDocumentPresetInputSource = FormatToSerializedType<typeof ExtensionGeneratorDocumentPresetInputSourceFormatter>;
20
+ export declare const isSerializedExtensionGeneratorDocumentPresetInputSource: typeof ExtensionGeneratorDocumentPresetInputSourceFormatter.validator;
21
+ /** @ignore */
22
+ export declare const serializeExtensionGeneratorDocumentPresetInputSource: typeof ExtensionGeneratorDocumentPresetInputSourceFormatter.toJson;
23
+ /** @ignore */
24
+ export declare const deserializeExtensionGeneratorDocumentPresetInputSource: typeof ExtensionGeneratorDocumentPresetInputSourceFormatter.fromJson;
25
+ export interface DocumentPresetSetupFields {
26
+ getSearchFields: (searchSoFar: Map<string, SerializedFieldType>) => Promise<ExtensionCardFieldDefinition[]>;
27
+ generatePresetValue: (fields: Map<string, SerializedFieldType>) => Promise<ExtensionGeneratorDocumentPresetInputSource>;
28
+ }
29
+ export {};