@pitcher/canvas-ui 2026.1.7-084725-beta → 2026.1.7-91220
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/canvas-ui.css +18 -18
- package/canvas-ui.js +1181 -293
- package/canvas-ui.js.map +1 -1
- package/lib/api/events/events.helpers.d.ts +14 -2
- package/lib/apps/browser/components/Content/ActionsToolbar/ActionsToolbar.vue.d.ts +12 -3
- package/lib/apps/canvas-builder/components/ui/DataCharts/types.d.ts +1 -0
- package/lib/apps/canvas-builder/composables/useCanvas.d.ts +5 -0
- package/lib/apps/canvas-builder/composables/usePopupApps.d.ts +2 -2
- package/lib/apps/content-selector/components/Content/AllContent/List/FoldersFilesList.vue.d.ts +12 -3
- package/lib/components/CSearchFilters/CSearchFilters.vue.d.ts +4 -1
- package/lib/components/assignedCanvases/CAssignedCanvasesManagement.vue.d.ts +20 -4
- package/lib/components/assignedCanvases/CAssignedCanvasesManagementToolbar.vue.d.ts +4 -1
- package/lib/components/canvas-blocks/CBlockManagement.vue.d.ts +16 -4
- package/lib/components/canvas-blocks/CBlockManagementToolbar.vue.d.ts +4 -1
- package/lib/components/canvas-templates/CTemplateManagement.vue.d.ts +40 -10
- package/lib/components/canvas-templates/CTemplateManagementToolbar.vue.d.ts +16 -4
- package/lib/components/savedCanvases/CSavedCanvasesManagement.vue.d.ts +16 -4
- package/lib/components/savedCanvases/CSavedCanvasesManagementToolbar.vue.d.ts +4 -1
- package/lib/components/sections/CSectionManagement.vue.d.ts +16 -4
- package/lib/components/sections/CSectionManagementToolbar.vue.d.ts +4 -1
- package/lib/components/themes/CThemeManagement.vue.d.ts +16 -4
- package/lib/components/themes/CThemeManagementToolbar.vue.d.ts +4 -1
- package/lib/composables/useCanvasStandardFilters.d.ts +17 -2
- package/lib/composables/useSmartStore.d.ts +25 -0
- package/lib/main.lib.d.ts +2 -0
- package/lib/sdk/api/HighLevelApi.d.ts +4 -0
- package/lib/sdk/api/modules/query.d.ts +77 -1
- package/lib/sdk/api/modules/ui/content.ui.d.ts +22 -1
- package/lib/sdk/api/modules/ui/index.d.ts +2 -0
- package/lib/sdk/api/modules/ui/types.ui.d.ts +12 -0
- package/lib/sdk/main.d.ts +18 -0
- package/lib/sdk/payload.types.d.ts +57 -0
- package/lib/types/app.d.ts +1 -1
- package/lib/types/instanceSettings.types.d.ts +1 -0
- package/lib/types/sfdc.d.ts +5 -0
- package/lib/util/smart-store.util.d.ts +40 -0
- package/lib/util/smart-store.util.spec.d.ts +1 -0
- package/locale/de.json +1 -0
- package/locale/el.json +1 -0
- package/locale/en.json +1 -0
- package/locale/es.json +1 -0
- package/locale/fr.json +1 -0
- package/locale/it.json +1 -0
- package/locale/ja.json +1 -0
- package/locale/nl.json +1 -0
- package/locale/pl.json +1 -0
- package/locale/pt-br.json +1 -0
- package/locale/pt.json +1 -0
- package/locale/th.json +1 -0
- package/locale/tr.json +1 -0
- package/locale/zh.json +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import { ComputedRef, Ref } from 'vue';
|
|
1
2
|
import { MetadataTemplateFieldTypeEnum } from '../../types/openapi';
|
|
3
|
+
export interface TemplateOption {
|
|
4
|
+
label: string;
|
|
5
|
+
value: string;
|
|
6
|
+
}
|
|
2
7
|
export interface CanvasStandardFiltersOptions {
|
|
3
8
|
/**
|
|
4
9
|
* Include the "Tags" filter (default: true)
|
|
@@ -12,6 +17,10 @@ export interface CanvasStandardFiltersOptions {
|
|
|
12
17
|
* Include the "Template Used" filter (only for saved canvases)
|
|
13
18
|
*/
|
|
14
19
|
includeTemplateFilter?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Template options for the dropdown filter
|
|
22
|
+
*/
|
|
23
|
+
templateOptions?: Ref<TemplateOption[]> | ComputedRef<TemplateOption[]>;
|
|
15
24
|
/**
|
|
16
25
|
* Include the "Owner" filter
|
|
17
26
|
*/
|
|
@@ -27,9 +36,15 @@ export interface CanvasStandardFiltersOptions {
|
|
|
27
36
|
* @returns Array of filter component configurations
|
|
28
37
|
*/
|
|
29
38
|
export declare function useCanvasStandardFilters(options?: CanvasStandardFiltersOptions): {
|
|
30
|
-
filterComponents:
|
|
39
|
+
filterComponents: ComputedRef<({
|
|
40
|
+
type: MetadataTemplateFieldTypeEnum;
|
|
41
|
+
name: string;
|
|
42
|
+
label: string;
|
|
43
|
+
options?: undefined;
|
|
44
|
+
} | {
|
|
31
45
|
type: MetadataTemplateFieldTypeEnum;
|
|
32
46
|
name: string;
|
|
33
47
|
label: string;
|
|
34
|
-
|
|
48
|
+
options: TemplateOption[];
|
|
49
|
+
})[]>;
|
|
35
50
|
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { PitcherEnv } from '../sdk/interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Composable for SmartStore availability checks
|
|
5
|
+
*
|
|
6
|
+
* SmartStore is Salesforce Mobile SDK's local database for offline data access on iOS.
|
|
7
|
+
* It requires both iOS mode and the enable_sfdc_sync instance setting to be enabled.
|
|
8
|
+
*
|
|
9
|
+
* @param env - Optional reactive environment object from app store (avoids redundant API calls)
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* // With app store env (recommended - avoids API calls)
|
|
13
|
+
* const appStore = useAppStore()
|
|
14
|
+
* const { shouldUseSmartStore } = useSmartStore(appStore.env)
|
|
15
|
+
* const enabled = shouldUseSmartStore.value
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Without env (for canvas-ui internal usage)
|
|
19
|
+
* const { generateTempSalesforceId } = useSmartStore()
|
|
20
|
+
* const tempId = generateTempSalesforceId('00U')
|
|
21
|
+
*/
|
|
22
|
+
export declare function useSmartStore(env?: Ref<PitcherEnv | null> | PitcherEnv | null): {
|
|
23
|
+
shouldUseSmartStore: import('vue').ComputedRef<boolean>;
|
|
24
|
+
generateTempSalesforceId: (objectPrefix: string) => string;
|
|
25
|
+
};
|
package/lib/main.lib.d.ts
CHANGED
|
@@ -137,6 +137,7 @@ export * as agendaSelector from './apps/agenda-selector/export';
|
|
|
137
137
|
export { default as useTheme } from './composables/useTheme';
|
|
138
138
|
export { default as useThemeVars } from './composables/useThemeVars';
|
|
139
139
|
export { default as useBindValidation } from './composables/useBindValidation';
|
|
140
|
+
export { useSmartStore } from './composables/useSmartStore';
|
|
140
141
|
export { default as useFileDisplayHelpers } from './composables/useFileDisplayHelpers';
|
|
141
142
|
export { default as useFolderNameDescription } from './composables/useFolderNameDescription';
|
|
142
143
|
export { default as useCanvasOverlay } from './composables/useCanvasOverlay';
|
|
@@ -196,6 +197,7 @@ export * from './util/storage.util';
|
|
|
196
197
|
export * from './util/handlebars';
|
|
197
198
|
export * from './apps/collection-selector/utils/content-selector-adapter.util';
|
|
198
199
|
export * from './util/soql.util.ts';
|
|
200
|
+
export * from './util/smart-store.util';
|
|
199
201
|
export * from './util/app.util';
|
|
200
202
|
export * from './utils/iframeInitialize';
|
|
201
203
|
export * from './sdk/main';
|
|
@@ -233,11 +233,15 @@ export declare function createHighLevelApi(options?: ApiOptions): {
|
|
|
233
233
|
}): Promise<void>;
|
|
234
234
|
query(payload: import('../payload.types').QueryPayload): Promise<any>;
|
|
235
235
|
crmQuery(payload: import('../payload.types').CRMQueryPayload): Promise<any>;
|
|
236
|
+
crmQueryAdaptive(payload: import('../payload.types').CRMQueryPayload): Promise<any>;
|
|
236
237
|
crmSmartQuery(payload: import('../payload.types').CRMQueryPayload): Promise<Array<any>>;
|
|
237
238
|
crmSmartObjectMetadata(payload: import('../payload.types').CRMSmartObjectMetadataPayload): Promise<any>;
|
|
238
239
|
crmSmartUpsertObjects(payload: import('../payload.types').UpsertCRMObjectsPayload): Promise<any>;
|
|
239
240
|
crmSmartObjectValidationRules(payload: import('../payload.types').CRMSmartObjectValidationRulesPayload): Promise<any>;
|
|
240
241
|
crmSmartDeleteObjects(payload: import('../payload.types').CRMSmartDeleteObjectsPayload): Promise<any>;
|
|
242
|
+
crmCreate(payload: import('../payload.types').CRMCreatePayload): Promise<any>;
|
|
243
|
+
crmUpsert(payload: import('../payload.types').CRMUpsertPayload): Promise<any>;
|
|
244
|
+
crmDescribe(payload: import('../payload.types').CRMDescribePayload): Promise<any>;
|
|
241
245
|
getFolders(payload: import('../payload.types').FolderListRequest): Promise<import('../../main.lib').PaginatedFolderList>;
|
|
242
246
|
getFolder(payload?: {
|
|
243
247
|
id: import('../../main.lib').FolderRetrieve["id"];
|
|
@@ -1,6 +1,22 @@
|
|
|
1
|
-
import { QueryPayload, CRMQueryPayload, UpsertCRMObjectsPayload, CRMSmartObjectValidationRulesPayload, CRMSmartObjectMetadataPayload, CRMSmartDeleteObjectsPayload } from '../../payload.types';
|
|
1
|
+
import { QueryPayload, CRMQueryPayload, UpsertCRMObjectsPayload, CRMSmartObjectValidationRulesPayload, CRMSmartObjectMetadataPayload, CRMSmartDeleteObjectsPayload, CRMCreatePayload, CRMUpsertPayload, CRMDescribePayload } from '../../payload.types';
|
|
2
2
|
export declare function query(payload: QueryPayload): Promise<any>;
|
|
3
3
|
export declare function crmQuery(payload: CRMQueryPayload): Promise<any>;
|
|
4
|
+
/**
|
|
5
|
+
* Executes a CRM query with automatic iOS/SmartStore adaptation.
|
|
6
|
+
*
|
|
7
|
+
* On iOS devices with the 'enable_sfdc_sync' instance setting enabled,
|
|
8
|
+
* this function automatically converts SOQL queries to SmartStore Smart SQL format
|
|
9
|
+
* and uses the local SmartStore for offline data access.
|
|
10
|
+
* On other platforms or when the setting is disabled, it uses the standard CRM query API.
|
|
11
|
+
*
|
|
12
|
+
* @param {CRMQueryPayload} payload - The query payload containing the SOQL query string.
|
|
13
|
+
* @returns {Promise<any>} - Promise resolving with query results.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // Works on all platforms - automatically adapts for iOS with enable_sfdc_sync instance setting
|
|
17
|
+
* const result = await crmQueryAdaptive({ query: 'SELECT Id, Name FROM Account WHERE Active = true' })
|
|
18
|
+
*/
|
|
19
|
+
export declare function crmQueryAdaptive(payload: CRMQueryPayload): Promise<any>;
|
|
4
20
|
/**
|
|
5
21
|
* Executes a SmartStore query against local CRM data (iOS only).
|
|
6
22
|
* Uses Salesforce Mobile SDK SmartStore query syntax.
|
|
@@ -113,3 +129,63 @@ export declare function crmSmartObjectValidationRules(payload: CRMSmartObjectVal
|
|
|
113
129
|
* })
|
|
114
130
|
*/
|
|
115
131
|
export declare function crmSmartDeleteObjects(payload: CRMSmartDeleteObjectsPayload): Promise<any>;
|
|
132
|
+
/**
|
|
133
|
+
* Creates new records in CRM (Web only).
|
|
134
|
+
* Uses Salesforce REST API to create records.
|
|
135
|
+
*
|
|
136
|
+
* @param {CRMCreatePayload} payload - The create payload containing sobject type and records.
|
|
137
|
+
* @returns {Promise<any>} - Promise resolving with the result of the create operation.
|
|
138
|
+
* @throws {Error} - Throws an error if the payload is invalid.
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* // Web only method to create CRM records.
|
|
142
|
+
* api.crmCreate({
|
|
143
|
+
* sobject: 'Order__c',
|
|
144
|
+
* records: [
|
|
145
|
+
* { Account__c: '001xx000003DGbQAAW', Order_Date__c: '2024-01-15' },
|
|
146
|
+
* { Account__c: '001xx000003DGbRABW', Order_Date__c: '2024-01-16' }
|
|
147
|
+
* ]
|
|
148
|
+
* })
|
|
149
|
+
*/
|
|
150
|
+
export declare function crmCreate(payload: CRMCreatePayload): Promise<any>;
|
|
151
|
+
/**
|
|
152
|
+
* Upserts records in CRM (Web only).
|
|
153
|
+
* Uses Salesforce REST API to insert or update records based on external ID.
|
|
154
|
+
* If a record with matching external ID exists, it will be updated; otherwise, a new record is created.
|
|
155
|
+
*
|
|
156
|
+
* @param {CRMUpsertPayload} payload - The upsert payload containing sobject type, records, and external ID field.
|
|
157
|
+
* @returns {Promise<any>} - Promise resolving with the result of the upsert operation.
|
|
158
|
+
* @throws {Error} - Throws an error if the payload is invalid.
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* // Web only method to upsert CRM records.
|
|
162
|
+
* api.crmUpsert({
|
|
163
|
+
* sobject: 'Order__c',
|
|
164
|
+
* records: [
|
|
165
|
+
* { External_Id__c: 'ORD-001', Account__c: '001xx000003DGbQAAW', Status__c: 'Submitted' },
|
|
166
|
+
* { External_Id__c: 'ORD-002', Account__c: '001xx000003DGbRABW', Status__c: 'Draft' }
|
|
167
|
+
* ],
|
|
168
|
+
* external_id_field: 'External_Id__c'
|
|
169
|
+
* })
|
|
170
|
+
*/
|
|
171
|
+
export declare function crmUpsert(payload: CRMUpsertPayload): Promise<any>;
|
|
172
|
+
/**
|
|
173
|
+
* Retrieves metadata/describe for a CRM object (Web only).
|
|
174
|
+
* Uses Salesforce REST API to fetch object metadata including fields and picklist values.
|
|
175
|
+
*
|
|
176
|
+
* @param {CRMDescribePayload} payload - The describe payload containing the sobject name.
|
|
177
|
+
* @returns {Promise<any>} - Promise resolving with the object metadata including fields and picklist values.
|
|
178
|
+
* @throws {Error} - Throws an error if the payload is invalid.
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* // Web only method to get CRM object metadata.
|
|
182
|
+
* api.crmDescribe({ sobject: 'Account' })
|
|
183
|
+
* .then(metadata => {
|
|
184
|
+
* // Access fields
|
|
185
|
+
* console.log(metadata.fields)
|
|
186
|
+
* // Access picklist values for a specific field
|
|
187
|
+
* const industryField = metadata.fields.find(f => f.name === 'Industry')
|
|
188
|
+
* console.log(industryField.picklistValues)
|
|
189
|
+
* })
|
|
190
|
+
*/
|
|
191
|
+
export declare function crmDescribe(payload: CRMDescribePayload): Promise<any>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UiSelectAgendaRequest, UiSelectAgendaResponse, UiSelectCollectionPlayerRequest, UiSelectCollectionPlayerResponse, UiSelectContentRequest, UiSelectContentResponse, UiOpenRequest, UiToastRequest, UiPreselectSfdcMeetingIdRequest, UiPreselectSfdcMeetingIdResponse } from './types.ui';
|
|
1
|
+
import { UiSelectAgendaRequest, UiSelectAgendaResponse, UiSelectCollectionPlayerRequest, UiSelectCollectionPlayerResponse, UiSelectContentRequest, UiSelectContentResponse, UiOpenRequest, UiToastRequest, UiPreselectSfdcMeetingIdRequest, UiPreselectSfdcMeetingIdResponse, UiOpenGlobalPopupResponse } from './types.ui';
|
|
2
2
|
/**
|
|
3
3
|
* @hidden
|
|
4
4
|
* @deprecated
|
|
@@ -84,3 +84,24 @@ export declare function selectCollectionContent(payload?: UiSelectCollectionPlay
|
|
|
84
84
|
* ```
|
|
85
85
|
*/
|
|
86
86
|
export declare function selectAgendaContent(payload?: UiSelectAgendaRequest): Promise<UiSelectAgendaResponse>;
|
|
87
|
+
/**
|
|
88
|
+
* Opens a global popup app by name.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* const api = useApi()
|
|
92
|
+
* api.openGlobalPopup('my-popup-app')
|
|
93
|
+
* api.openGlobalPopup('my-popup-app', { customData: 'value' })
|
|
94
|
+
*
|
|
95
|
+
* @param appName - The name of the app to open (must have app_type: 'ui-global-popup')
|
|
96
|
+
* @param extraContext - Extra context to pass to the app
|
|
97
|
+
* @returns Promise with the result of the operation
|
|
98
|
+
*/
|
|
99
|
+
export declare function openGlobalPopup(appName: string, extraContext?: Record<string, any>): Promise<UiOpenGlobalPopupResponse>;
|
|
100
|
+
/**
|
|
101
|
+
* Closes the currently open global popup app.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* const api = useApi()
|
|
105
|
+
* api.closeGlobalPopup()
|
|
106
|
+
*/
|
|
107
|
+
export declare function closeGlobalPopup(): Promise<void>;
|
|
@@ -155,6 +155,8 @@ declare const _default: {
|
|
|
155
155
|
preselectSfdcMeetingId(payload: import('./types.ui').UiPreselectSfdcMeetingIdRequest): Promise<import('./types.ui').UiPreselectSfdcMeetingIdResponse>;
|
|
156
156
|
selectCollectionContent(payload?: import('./types.ui').UiSelectCollectionPlayerRequest): Promise<import('./types.ui').UiSelectCollectionPlayerResponse>;
|
|
157
157
|
selectAgendaContent(payload?: import('./types.ui').UiSelectAgendaRequest): Promise<import('./types.ui').UiSelectAgendaResponse>;
|
|
158
|
+
openGlobalPopup(appName: string, extraContext?: Record<string, any>): Promise<import('./types.ui').UiOpenGlobalPopupResponse>;
|
|
159
|
+
closeGlobalPopup(): Promise<void>;
|
|
158
160
|
on: typeof on;
|
|
159
161
|
onMeetingCanceled: typeof onMeetingCanceled;
|
|
160
162
|
onCanvasUpdated: typeof onCanvasUpdated;
|
|
@@ -43,6 +43,8 @@ export declare const UI_API_METHOD_TYPES: {
|
|
|
43
43
|
readonly UI_APP_RESIZE: "ui_app_resize";
|
|
44
44
|
readonly UI_CLOSE_CANVAS_SECTION_EXECUTION: "ui_close_canvas_section_execution";
|
|
45
45
|
readonly UI_CLOSE_CANVAS_DRAWER: "ui_close_canvas_drawer";
|
|
46
|
+
readonly UI_OPEN_GLOBAL_POPUP: "ui_open_global_popup";
|
|
47
|
+
readonly UI_CLOSE_GLOBAL_POPUP: "ui_close_global_popup";
|
|
46
48
|
};
|
|
47
49
|
export declare const UI_MESSAGE_TYPES: {
|
|
48
50
|
readonly UI_MEETING_CANCELED: "ui_meeting_canceled";
|
|
@@ -319,3 +321,13 @@ export type UiPromptPiaResponseStreamedPayload = {
|
|
|
319
321
|
/** Current chunk of the response */
|
|
320
322
|
chunk: string;
|
|
321
323
|
};
|
|
324
|
+
export interface UiOpenGlobalPopupRequest {
|
|
325
|
+
/** Name of the app to open */
|
|
326
|
+
app_name: string;
|
|
327
|
+
/** Extra context to pass to the app */
|
|
328
|
+
extra_context?: Record<string, any>;
|
|
329
|
+
}
|
|
330
|
+
export interface UiOpenGlobalPopupResponse {
|
|
331
|
+
/** Whether the popup was successfully opened */
|
|
332
|
+
success: boolean;
|
|
333
|
+
}
|
package/lib/sdk/main.d.ts
CHANGED
|
@@ -67,6 +67,8 @@ export declare function useUi(): {
|
|
|
67
67
|
preselectSfdcMeetingId(payload: import('./api/modules/ui/types.ui').UiPreselectSfdcMeetingIdRequest): Promise<import('./api/modules/ui/types.ui').UiPreselectSfdcMeetingIdResponse>;
|
|
68
68
|
selectCollectionContent(payload?: import('./api/modules/ui/types.ui').UiSelectCollectionPlayerRequest): Promise<import('./api/modules/ui/types.ui').UiSelectCollectionPlayerResponse>;
|
|
69
69
|
selectAgendaContent(payload?: import('./api/modules/ui/types.ui').UiSelectAgendaRequest): Promise<import('./api/modules/ui/types.ui').UiSelectAgendaResponse>;
|
|
70
|
+
openGlobalPopup(appName: string, extraContext?: Record<string, any>): Promise<import('./api/modules/ui/types.ui').UiOpenGlobalPopupResponse>;
|
|
71
|
+
closeGlobalPopup(): Promise<void>;
|
|
70
72
|
on: <T extends keyof import('./api/modules/ui/types.ui').UiMessagePayloads>(type: T, handler: (data: import('./api/modules/ui/types.ui').UiMessagePayloads[T]) => Promise<void>) => Promise<() => void>;
|
|
71
73
|
onMeetingCanceled: (handler: (data: import('./api/modules/ui/types.ui').UiMeetingCanceledPayload) => Promise<void>) => Promise<() => void>;
|
|
72
74
|
onCanvasUpdated: (handler: (data: import('./api/modules/ui/types.ui').UiCanvasUpdatedPayload) => Promise<void>) => Promise<() => void>;
|
|
@@ -302,11 +304,15 @@ export declare function useApi(options?: ApiOptions): {
|
|
|
302
304
|
}): Promise<void>;
|
|
303
305
|
query(payload: import('./payload.types').QueryPayload): Promise<any>;
|
|
304
306
|
crmQuery(payload: import('./payload.types').CRMQueryPayload): Promise<any>;
|
|
307
|
+
crmQueryAdaptive(payload: import('./payload.types').CRMQueryPayload): Promise<any>;
|
|
305
308
|
crmSmartQuery(payload: import('./payload.types').CRMQueryPayload): Promise<Array<any>>;
|
|
306
309
|
crmSmartObjectMetadata(payload: import('./payload.types').CRMSmartObjectMetadataPayload): Promise<any>;
|
|
307
310
|
crmSmartUpsertObjects(payload: import('./payload.types').UpsertCRMObjectsPayload): Promise<any>;
|
|
308
311
|
crmSmartObjectValidationRules(payload: import('./payload.types').CRMSmartObjectValidationRulesPayload): Promise<any>;
|
|
309
312
|
crmSmartDeleteObjects(payload: import('./payload.types').CRMSmartDeleteObjectsPayload): Promise<any>;
|
|
313
|
+
crmCreate(payload: import('./payload.types').CRMCreatePayload): Promise<any>;
|
|
314
|
+
crmUpsert(payload: import('./payload.types').CRMUpsertPayload): Promise<any>;
|
|
315
|
+
crmDescribe(payload: import('./payload.types').CRMDescribePayload): Promise<any>;
|
|
310
316
|
getFolders(payload: import('./payload.types').FolderListRequest): Promise<import('../main.lib').PaginatedFolderList>;
|
|
311
317
|
getFolder(payload?: {
|
|
312
318
|
id: import('../main.lib').FolderRetrieve["id"];
|
|
@@ -452,6 +458,8 @@ export declare function useApi(options?: ApiOptions): {
|
|
|
452
458
|
preselectSfdcMeetingId(payload: import('./api/modules/ui/types.ui').UiPreselectSfdcMeetingIdRequest): Promise<import('./api/modules/ui/types.ui').UiPreselectSfdcMeetingIdResponse>;
|
|
453
459
|
selectCollectionContent(payload?: import('./api/modules/ui/types.ui').UiSelectCollectionPlayerRequest): Promise<import('./api/modules/ui/types.ui').UiSelectCollectionPlayerResponse>;
|
|
454
460
|
selectAgendaContent(payload?: import('./api/modules/ui/types.ui').UiSelectAgendaRequest): Promise<import('./api/modules/ui/types.ui').UiSelectAgendaResponse>;
|
|
461
|
+
openGlobalPopup(appName: string, extraContext?: Record<string, any>): Promise<import('./api/modules/ui/types.ui').UiOpenGlobalPopupResponse>;
|
|
462
|
+
closeGlobalPopup(): Promise<void>;
|
|
455
463
|
on: <T extends keyof import('./api/modules/ui/types.ui').UiMessagePayloads>(type: T, handler: (data: import('./api/modules/ui/types.ui').UiMessagePayloads[T]) => Promise<void>) => Promise<() => void>;
|
|
456
464
|
onMeetingCanceled: (handler: (data: import('./api/modules/ui/types.ui').UiMeetingCanceledPayload) => Promise<void>) => Promise<() => void>;
|
|
457
465
|
onCanvasUpdated: (handler: (data: import('./api/modules/ui/types.ui').UiCanvasUpdatedPayload) => Promise<void>) => Promise<() => void>;
|
|
@@ -583,11 +591,15 @@ export declare function useApi(options?: ApiOptions): {
|
|
|
583
591
|
}): Promise<void>;
|
|
584
592
|
query(payload: import('./payload.types').QueryPayload): Promise<any>;
|
|
585
593
|
crmQuery(payload: import('./payload.types').CRMQueryPayload): Promise<any>;
|
|
594
|
+
crmQueryAdaptive(payload: import('./payload.types').CRMQueryPayload): Promise<any>;
|
|
586
595
|
crmSmartQuery(payload: import('./payload.types').CRMQueryPayload): Promise<Array<any>>;
|
|
587
596
|
crmSmartObjectMetadata(payload: import('./payload.types').CRMSmartObjectMetadataPayload): Promise<any>;
|
|
588
597
|
crmSmartUpsertObjects(payload: import('./payload.types').UpsertCRMObjectsPayload): Promise<any>;
|
|
589
598
|
crmSmartObjectValidationRules(payload: import('./payload.types').CRMSmartObjectValidationRulesPayload): Promise<any>;
|
|
590
599
|
crmSmartDeleteObjects(payload: import('./payload.types').CRMSmartDeleteObjectsPayload): Promise<any>;
|
|
600
|
+
crmCreate(payload: import('./payload.types').CRMCreatePayload): Promise<any>;
|
|
601
|
+
crmUpsert(payload: import('./payload.types').CRMUpsertPayload): Promise<any>;
|
|
602
|
+
crmDescribe(payload: import('./payload.types').CRMDescribePayload): Promise<any>;
|
|
591
603
|
getFolders(payload: import('./payload.types').FolderListRequest): Promise<import('../main.lib').PaginatedFolderList>;
|
|
592
604
|
getFolder(payload?: {
|
|
593
605
|
id: import('../main.lib').FolderRetrieve["id"];
|
|
@@ -682,6 +694,8 @@ export declare function useApi(options?: ApiOptions): {
|
|
|
682
694
|
preselectSfdcMeetingId(payload: import('./api/modules/ui/types.ui').UiPreselectSfdcMeetingIdRequest): Promise<import('./api/modules/ui/types.ui').UiPreselectSfdcMeetingIdResponse>;
|
|
683
695
|
selectCollectionContent(payload?: import('./api/modules/ui/types.ui').UiSelectCollectionPlayerRequest): Promise<import('./api/modules/ui/types.ui').UiSelectCollectionPlayerResponse>;
|
|
684
696
|
selectAgendaContent(payload?: import('./api/modules/ui/types.ui').UiSelectAgendaRequest): Promise<import('./api/modules/ui/types.ui').UiSelectAgendaResponse>;
|
|
697
|
+
openGlobalPopup(appName: string, extraContext?: Record<string, any>): Promise<import('./api/modules/ui/types.ui').UiOpenGlobalPopupResponse>;
|
|
698
|
+
closeGlobalPopup(): Promise<void>;
|
|
685
699
|
on: <T extends keyof import('./api/modules/ui/types.ui').UiMessagePayloads>(type: T, handler: (data: import('./api/modules/ui/types.ui').UiMessagePayloads[T]) => Promise<void>) => Promise<() => void>;
|
|
686
700
|
onMeetingCanceled: (handler: (data: import('./api/modules/ui/types.ui').UiMeetingCanceledPayload) => Promise<void>) => Promise<() => void>;
|
|
687
701
|
onCanvasUpdated: (handler: (data: import('./api/modules/ui/types.ui').UiCanvasUpdatedPayload) => Promise<void>) => Promise<() => void>;
|
|
@@ -800,11 +814,15 @@ export declare function useApi(options?: ApiOptions): {
|
|
|
800
814
|
}): Promise<ArrayBuffer>;
|
|
801
815
|
query(payload: import('./payload.types').QueryPayload): Promise<any>;
|
|
802
816
|
crmQuery(payload: import('./payload.types').CRMQueryPayload): Promise<any>;
|
|
817
|
+
crmQueryAdaptive(payload: import('./payload.types').CRMQueryPayload): Promise<any>;
|
|
803
818
|
crmSmartQuery(payload: import('./payload.types').CRMQueryPayload): Promise<Array<any>>;
|
|
804
819
|
crmSmartObjectMetadata(payload: import('./payload.types').CRMSmartObjectMetadataPayload): Promise<any>;
|
|
805
820
|
crmSmartUpsertObjects(payload: import('./payload.types').UpsertCRMObjectsPayload): Promise<any>;
|
|
806
821
|
crmSmartObjectValidationRules(payload: import('./payload.types').CRMSmartObjectValidationRulesPayload): Promise<any>;
|
|
807
822
|
crmSmartDeleteObjects(payload: import('./payload.types').CRMSmartDeleteObjectsPayload): Promise<any>;
|
|
823
|
+
crmCreate(payload: import('./payload.types').CRMCreatePayload): Promise<any>;
|
|
824
|
+
crmUpsert(payload: import('./payload.types').CRMUpsertPayload): Promise<any>;
|
|
825
|
+
crmDescribe(payload: import('./payload.types').CRMDescribePayload): Promise<any>;
|
|
808
826
|
getFolders(payload: import('./payload.types').FolderListRequest): Promise<import('../main.lib').PaginatedFolderList>;
|
|
809
827
|
getFolder(payload?: {
|
|
810
828
|
id: import('../main.lib').FolderRetrieve["id"];
|
|
@@ -361,3 +361,60 @@ export interface CRMSmartDeleteObjectsPayload {
|
|
|
361
361
|
*/
|
|
362
362
|
objects: CRMDeleteObject[];
|
|
363
363
|
}
|
|
364
|
+
/**
|
|
365
|
+
* Payload for creating CRM records (Web only).
|
|
366
|
+
* Uses Salesforce REST API to create records.
|
|
367
|
+
*/
|
|
368
|
+
export interface CRMCreatePayload {
|
|
369
|
+
/**
|
|
370
|
+
* The Salesforce object type (e.g., 'Account', 'Contact', 'Order__c').
|
|
371
|
+
*/
|
|
372
|
+
sobject: string;
|
|
373
|
+
/**
|
|
374
|
+
* Array of records to create. Each record is a key-value map of field names to values.
|
|
375
|
+
* Field names should use Salesforce API names (e.g., 'Account__c', 'Order_Date__c').
|
|
376
|
+
*/
|
|
377
|
+
records: Array<Record<string, unknown>>;
|
|
378
|
+
/**
|
|
379
|
+
* Optional name of the CRM service to use.
|
|
380
|
+
*/
|
|
381
|
+
service?: CRMServiceType;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Payload for upserting CRM records (Web only).
|
|
385
|
+
* Uses Salesforce REST API to insert or update records based on external ID.
|
|
386
|
+
*/
|
|
387
|
+
export interface CRMUpsertPayload {
|
|
388
|
+
/**
|
|
389
|
+
* The Salesforce object type (e.g., 'Account', 'Contact', 'Order__c').
|
|
390
|
+
*/
|
|
391
|
+
sobject: string;
|
|
392
|
+
/**
|
|
393
|
+
* Array of records to upsert. Each record is a key-value map of field names to values.
|
|
394
|
+
* Field names should use Salesforce API names (e.g., 'Account__c', 'Order_Date__c').
|
|
395
|
+
*/
|
|
396
|
+
records: Array<Record<string, unknown>>;
|
|
397
|
+
/**
|
|
398
|
+
* The external ID field used to match existing records for update.
|
|
399
|
+
* If a record with matching external ID exists, it will be updated; otherwise, a new record is created.
|
|
400
|
+
*/
|
|
401
|
+
external_id_field: string;
|
|
402
|
+
/**
|
|
403
|
+
* Optional name of the CRM service to use.
|
|
404
|
+
*/
|
|
405
|
+
service?: CRMServiceType;
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Payload for retrieving CRM object metadata/describe (Web only).
|
|
409
|
+
* Uses Salesforce REST API to fetch object metadata including fields and picklist values.
|
|
410
|
+
*/
|
|
411
|
+
export interface CRMDescribePayload {
|
|
412
|
+
/**
|
|
413
|
+
* The Salesforce object type to describe (e.g., 'Account', 'Contact', 'Opportunity').
|
|
414
|
+
*/
|
|
415
|
+
sobject: string;
|
|
416
|
+
/**
|
|
417
|
+
* Optional name of the CRM service to use.
|
|
418
|
+
*/
|
|
419
|
+
service?: CRMServiceType;
|
|
420
|
+
}
|
package/lib/types/app.d.ts
CHANGED
|
@@ -89,7 +89,7 @@ export type AppJson = {
|
|
|
89
89
|
description?: string;
|
|
90
90
|
authors?: string[];
|
|
91
91
|
module: Record<EmbedLocation, Module>;
|
|
92
|
-
app_type?: 'canvas-popup' | 'section-selector' | 'sharebox';
|
|
92
|
+
app_type?: 'canvas-popup' | 'section-selector' | 'sharebox' | 'ui-global-popup';
|
|
93
93
|
app_options?: AppTypeJsonOptions;
|
|
94
94
|
order_override?: number;
|
|
95
95
|
has_multiple_routes?: boolean;
|
|
@@ -60,6 +60,7 @@ export type InstanceSettings = OrganizationSettings & {
|
|
|
60
60
|
enable_multipeer_connectivity?: boolean;
|
|
61
61
|
enable_syncbox?: boolean;
|
|
62
62
|
enable_sync_file_filtering?: boolean;
|
|
63
|
+
enable_sfdc_sync?: boolean;
|
|
63
64
|
time_format?: string;
|
|
64
65
|
date_format?: string;
|
|
65
66
|
is_file_expiration_mandatory?: boolean;
|
package/lib/types/sfdc.d.ts
CHANGED
|
@@ -59,6 +59,7 @@ export type SfEvent = {
|
|
|
59
59
|
Type?: string;
|
|
60
60
|
EventWhoIds?: string[];
|
|
61
61
|
IsAllDayEvent?: boolean;
|
|
62
|
+
is_executed_condition?: string;
|
|
62
63
|
};
|
|
63
64
|
export type SfEventExtended = SfEvent & {
|
|
64
65
|
contactName?: string;
|
|
@@ -106,6 +107,10 @@ export interface SfContactBasic {
|
|
|
106
107
|
type: string;
|
|
107
108
|
url: string;
|
|
108
109
|
};
|
|
110
|
+
callId?: string;
|
|
111
|
+
PersonAccountId?: string;
|
|
112
|
+
AccountName?: string;
|
|
113
|
+
Account?: any;
|
|
109
114
|
}
|
|
110
115
|
export type EventsSfList = {
|
|
111
116
|
done?: boolean;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SmartStore Smart SQL Query Utilities
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities for converting SOQL queries to SmartStore Smart SQL format
|
|
5
|
+
* for offline data access on iOS devices using Salesforce Mobile SDK.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Comprehensive SOQL to SmartStore Smart Query converter
|
|
9
|
+
*
|
|
10
|
+
* Converts standard SOQL queries to SmartStore Smart SQL format for offline use on iOS.
|
|
11
|
+
* Handles SELECT, FROM, WHERE, ORDER BY, GROUP BY, HAVING, LIMIT, OFFSET,
|
|
12
|
+
* aggregate functions, and relationship fields.
|
|
13
|
+
*
|
|
14
|
+
* SmartStore stores denormalized data, so relationship fields are accessed directly
|
|
15
|
+
* within the soup using the full relationship path (e.g., Child_Account_vod__r.Name).
|
|
16
|
+
*
|
|
17
|
+
* @param soqlQuery - The SOQL query string to convert
|
|
18
|
+
* @returns The converted SmartStore Smart SQL query string
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* // Simple query
|
|
22
|
+
* convertSoqlToSmartQuery('SELECT Id, Name FROM Account WHERE Active = true')
|
|
23
|
+
* // Returns: SELECT {Account:Id}, {Account:Name} FROM {Account} WHERE {Account:Active} = true
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* // With relationship fields (denormalized access - no joins needed)
|
|
27
|
+
* convertSoqlToSmartQuery('SELECT Id, Child_Account_vod__r.Name FROM Child_Account_vod__c')
|
|
28
|
+
* // Returns: SELECT {Child_Account_vod__c:Id}, {Child_Account_vod__c:Child_Account_vod__r.Name} FROM {Child_Account_vod__c}
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* // With aggregate functions
|
|
32
|
+
* convertSoqlToSmartQuery('SELECT COUNT(Id), Industry FROM Account GROUP BY Industry')
|
|
33
|
+
* // Returns: SELECT COUNT({Account:Id}), {Account:Industry} FROM {Account} GROUP BY {Account:Industry}
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // With ORDER BY and LIMIT
|
|
37
|
+
* convertSoqlToSmartQuery('SELECT Id, Name FROM Contact ORDER BY LastName ASC, FirstName DESC LIMIT 100')
|
|
38
|
+
* // Returns: SELECT {Contact:Id}, {Contact:Name} FROM {Contact} ORDER BY {Contact:LastName} ASC, {Contact:FirstName} DESC LIMIT 100
|
|
39
|
+
*/
|
|
40
|
+
export declare function convertSoqlToSmartQuery(soqlQuery: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/locale/de.json
CHANGED
package/locale/el.json
CHANGED
package/locale/en.json
CHANGED
package/locale/es.json
CHANGED
package/locale/fr.json
CHANGED
package/locale/it.json
CHANGED
package/locale/ja.json
CHANGED
package/locale/nl.json
CHANGED
package/locale/pl.json
CHANGED
package/locale/pt-br.json
CHANGED
package/locale/pt.json
CHANGED
package/locale/th.json
CHANGED
package/locale/tr.json
CHANGED
package/locale/zh.json
CHANGED