sfdx-hardis 5.10.2-beta202412231619.0 → 5.10.2-beta202412280136.0
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/defaults/mkdocs/docs/stylesheets/extra.css +25 -0
- package/defaults/mkdocs/mkdocs.yml +4 -2
- package/defaults/mkdocs-project-doc/docs/javascripts/gtag.js +27 -0
- package/defaults/mkdocs-project-doc/docs/javascripts/tables.js +6 -0
- package/defaults/mkdocs-project-doc/docs/overrides/main.html +4 -0
- package/defaults/mkdocs-project-doc/docs/stylesheets/extra.css +33 -0
- package/defaults/mkdocs-project-doc/mkdocs.yml +46 -0
- package/lib/commands/hardis/doc/flow2markdown.js +6 -1
- package/lib/commands/hardis/doc/flow2markdown.js.map +1 -1
- package/lib/commands/hardis/doc/project2markdown.d.ts +6 -2
- package/lib/commands/hardis/doc/project2markdown.js +139 -42
- package/lib/commands/hardis/doc/project2markdown.js.map +1 -1
- package/lib/common/metadata-utils/index.js +3 -2
- package/lib/common/metadata-utils/index.js.map +1 -1
- package/lib/common/utils/flowVisualiser/flowParser.d.ts +0 -7
- package/lib/common/utils/flowVisualiser/flowParser.js +150 -167
- package/lib/common/utils/flowVisualiser/flowParser.js.map +1 -1
- package/lib/common/utils/flowVisualiser/nodeFormatUtils.d.ts +14 -0
- package/lib/common/utils/flowVisualiser/nodeFormatUtils.js +339 -0
- package/lib/common/utils/flowVisualiser/nodeFormatUtils.js.map +1 -0
- package/lib/common/utils/flowVisualiser/renderConfig.d.ts +9 -3
- package/lib/common/utils/flowVisualiser/renderConfig.js +62 -56
- package/lib/common/utils/flowVisualiser/renderConfig.js.map +1 -1
- package/lib/common/utils/mermaidUtils.d.ts +3 -1
- package/lib/common/utils/mermaidUtils.js +124 -68
- package/lib/common/utils/mermaidUtils.js.map +1 -1
- package/oclif.lock +95 -3
- package/oclif.manifest.json +366 -358
- package/package.json +2 -1
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
import * as yaml from 'js-yaml';
|
|
2
|
+
import moment from 'moment';
|
|
3
|
+
const FIELDS_WITH_VALUES_TO_FORMAT = [
|
|
4
|
+
"actionType",
|
|
5
|
+
"fieldType",
|
|
6
|
+
"inputsOnNextNavToAssocScrn",
|
|
7
|
+
"processType",
|
|
8
|
+
"recordTriggerType",
|
|
9
|
+
"triggerType",
|
|
10
|
+
"regionContainerType",
|
|
11
|
+
"runInMode",
|
|
12
|
+
"type"
|
|
13
|
+
];
|
|
14
|
+
const FIELDS_PREFERRED_ORDER_START = [
|
|
15
|
+
"type",
|
|
16
|
+
"object",
|
|
17
|
+
"processType",
|
|
18
|
+
"triggerType",
|
|
19
|
+
"recordTriggerType",
|
|
20
|
+
"label",
|
|
21
|
+
"actionType",
|
|
22
|
+
"actionName",
|
|
23
|
+
"dataType",
|
|
24
|
+
"objectType"
|
|
25
|
+
];
|
|
26
|
+
const FIELDS_PREFERRED_ORDER_END = [
|
|
27
|
+
"connector",
|
|
28
|
+
"nextNode",
|
|
29
|
+
"conditionLogic",
|
|
30
|
+
"filterLogic"
|
|
31
|
+
];
|
|
32
|
+
const FIELDS_WITH_COLUMN_CENTERED = [
|
|
33
|
+
"dataType",
|
|
34
|
+
"objectType",
|
|
35
|
+
"operator",
|
|
36
|
+
"isCollection",
|
|
37
|
+
"isInput",
|
|
38
|
+
"isOutput",
|
|
39
|
+
"rightValue",
|
|
40
|
+
"startDate",
|
|
41
|
+
"startTime",
|
|
42
|
+
"value"
|
|
43
|
+
];
|
|
44
|
+
export function simplifyNode(flowNode) {
|
|
45
|
+
const nodeCopy = Object.assign({}, flowNode);
|
|
46
|
+
for (const nodeKey of Object.keys(nodeCopy)) {
|
|
47
|
+
if (["locationX", "locationY"].includes(nodeKey)) {
|
|
48
|
+
delete nodeCopy[nodeKey];
|
|
49
|
+
}
|
|
50
|
+
else if (nodeCopy[nodeKey] === null || nodeCopy[nodeKey] === undefined) {
|
|
51
|
+
delete nodeCopy[nodeKey];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return nodeCopy;
|
|
55
|
+
}
|
|
56
|
+
export function flowNodeToMarkdown(flowNodeIn, allProperties) {
|
|
57
|
+
const flowNode = Object.assign({}, flowNodeIn);
|
|
58
|
+
delete flowNode["name"];
|
|
59
|
+
const additionalTables = [];
|
|
60
|
+
// Properties that can be found on multiple flow node types
|
|
61
|
+
handleprocessMetadataValues(flowNode, allProperties);
|
|
62
|
+
handleInputParameters(flowNode, allProperties);
|
|
63
|
+
const conditionsTable = handleConditions(flowNode, allProperties);
|
|
64
|
+
additionalTables.push(conditionsTable);
|
|
65
|
+
const filterItemsTable = handleFilterItems(flowNode, allProperties);
|
|
66
|
+
additionalTables.push(filterItemsTable);
|
|
67
|
+
const inputAssignmentsTable = handleInputAssignments(flowNode, allProperties);
|
|
68
|
+
additionalTables.push(inputAssignmentsTable);
|
|
69
|
+
const assignmentItemsTable = handleAssignmentItems(flowNode, allProperties);
|
|
70
|
+
additionalTables.push(assignmentItemsTable);
|
|
71
|
+
const scheduledPathsTable = handleScheduledPaths(flowNode, allProperties);
|
|
72
|
+
additionalTables.push(scheduledPathsTable);
|
|
73
|
+
// Special case of decisions
|
|
74
|
+
if (flowNode.type === "decisions") {
|
|
75
|
+
const rules = getElementAsArray(flowNode, "rules");
|
|
76
|
+
delete flowNode.rules;
|
|
77
|
+
delete flowNode.rules2;
|
|
78
|
+
for (const rule of rules) {
|
|
79
|
+
const ruleNode = Object.assign({}, rule);
|
|
80
|
+
delete ruleNode.name;
|
|
81
|
+
delete ruleNode.label;
|
|
82
|
+
const ruleConditionsTable = handleConditions(ruleNode, allProperties);
|
|
83
|
+
const ruleTable = buildGenericMarkdownTable(ruleNode, ["allFields"], `#### Rule ${rule.name} (${rule.label})`, allProperties);
|
|
84
|
+
additionalTables.push(...[ruleTable, mdEndSection(ruleConditionsTable)]);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else if (flowNode.type === "screens") {
|
|
88
|
+
handleFields(flowNode, allProperties, "", additionalTables);
|
|
89
|
+
}
|
|
90
|
+
else if (flowNode.type === "start") {
|
|
91
|
+
delete flowNode.type;
|
|
92
|
+
}
|
|
93
|
+
// Build final markdown for Node
|
|
94
|
+
let table = buildGenericMarkdownTable(flowNode, ["allFields"], "", allProperties);
|
|
95
|
+
for (const additionalTable of additionalTables) {
|
|
96
|
+
if (additionalTable !== "") {
|
|
97
|
+
table += additionalTable + "\n\n";
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return mdEndSection(table);
|
|
101
|
+
}
|
|
102
|
+
function handleFields(flowNode, allProperties, parentField = "", additionalTables) {
|
|
103
|
+
const fields = getElementAsArray(flowNode, "fields");
|
|
104
|
+
delete flowNode.fields;
|
|
105
|
+
for (const field of fields) {
|
|
106
|
+
const fieldNode = Object.assign({}, field);
|
|
107
|
+
const fieldName = "" + (field.name || field.objectFieldReference);
|
|
108
|
+
delete fieldNode.name;
|
|
109
|
+
if (parentField) {
|
|
110
|
+
fieldNode.parentField = parentField;
|
|
111
|
+
allProperties.push(parentField);
|
|
112
|
+
}
|
|
113
|
+
handleInputParameters(fieldNode, allProperties);
|
|
114
|
+
const fieldsBefore = getElementAsArray(fieldNode, "fields");
|
|
115
|
+
delete fieldNode.fields;
|
|
116
|
+
const fieldTable = buildGenericMarkdownTable(fieldNode, ["allFields"], `#### ${fieldName}`, allProperties);
|
|
117
|
+
// Handle recursive loop
|
|
118
|
+
if (fieldsBefore) {
|
|
119
|
+
fieldNode.name = fieldName;
|
|
120
|
+
fieldNode.fields = fieldsBefore;
|
|
121
|
+
handleFields(fieldNode, allProperties, fieldName, additionalTables);
|
|
122
|
+
additionalTables.push(...[mdEndSection(fieldTable)]);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function handleConditions(ruleNode, allProperties) {
|
|
127
|
+
const conditions = getElementAsArray(ruleNode, "conditions");
|
|
128
|
+
if (conditions.length === 0) {
|
|
129
|
+
return "";
|
|
130
|
+
}
|
|
131
|
+
let id = 0;
|
|
132
|
+
const conditionsValues = conditions.map((item) => {
|
|
133
|
+
id++;
|
|
134
|
+
return {
|
|
135
|
+
conditionId: id,
|
|
136
|
+
leftValueReference: item.leftValueReference,
|
|
137
|
+
operator: stringifyOperator(item.operator),
|
|
138
|
+
rightValue: (item.operator === "IsNull" && item.rightValue === "false") ? "<!-- -->" : stringifyValue(item.rightValue, "", allProperties)
|
|
139
|
+
};
|
|
140
|
+
});
|
|
141
|
+
delete ruleNode.conditions;
|
|
142
|
+
/* let descriptiveLine = "";
|
|
143
|
+
if (ruleNode.conditionLogic) {
|
|
144
|
+
descriptiveLine += "\n\nConditions logic: **" + ruleNode.conditionLogic + "**\n\n";
|
|
145
|
+
delete ruleNode.conditionLogic;
|
|
146
|
+
} */
|
|
147
|
+
return buildCustomMarkdownTable(conditionsValues, ["conditionId", "leftValueReference", "operator", "rightValue"], "", allProperties);
|
|
148
|
+
}
|
|
149
|
+
function handleInputAssignments(flowNode, allProperties) {
|
|
150
|
+
const inputAssignmentsItems = getElementAsArray(flowNode, "inputAssignments");
|
|
151
|
+
if (inputAssignmentsItems.length === 0) {
|
|
152
|
+
return "";
|
|
153
|
+
}
|
|
154
|
+
const inputAssignmentsItemsValues = inputAssignmentsItems.map((item) => {
|
|
155
|
+
return {
|
|
156
|
+
field: item.field,
|
|
157
|
+
value: stringifyValue(item.value, item.field, allProperties)
|
|
158
|
+
};
|
|
159
|
+
});
|
|
160
|
+
delete flowNode.inputAssignments;
|
|
161
|
+
return buildCustomMarkdownTable(inputAssignmentsItemsValues, ["field", "value"], "#### Input Assignments", allProperties);
|
|
162
|
+
}
|
|
163
|
+
export function handleSchedule(flowNode, allProperties) {
|
|
164
|
+
const scheduleItems = getElementAsArray(flowNode, "schedule");
|
|
165
|
+
if (scheduleItems.length === 0) {
|
|
166
|
+
return "";
|
|
167
|
+
}
|
|
168
|
+
const scheduleItemsValues = scheduleItems.map((item) => {
|
|
169
|
+
const startDateFormatted = moment(item.startDate).format("ll");
|
|
170
|
+
const startTimeFormatted = item?.startTime?.endsWith("Z") ? item.startTime.slice(0, 5) : item.startTime;
|
|
171
|
+
return {
|
|
172
|
+
frequency: item.frequency,
|
|
173
|
+
startDate: !startDateFormatted.includes("Invalid") ? startDateFormatted : item.startDate,
|
|
174
|
+
startTime: !startTimeFormatted.includes("Invalid") ? startTimeFormatted : item.startTime,
|
|
175
|
+
};
|
|
176
|
+
});
|
|
177
|
+
delete flowNode.schedule;
|
|
178
|
+
return buildCustomMarkdownTable(scheduleItemsValues, ["frequency", "startDate", "startTime"], "#### Schedules", allProperties);
|
|
179
|
+
}
|
|
180
|
+
export function handleFilterItems(flowNode, allProperties) {
|
|
181
|
+
const filterItems = getElementAsArray(flowNode, "filters");
|
|
182
|
+
if (filterItems.length === 0) {
|
|
183
|
+
return "";
|
|
184
|
+
}
|
|
185
|
+
let id = 0;
|
|
186
|
+
const filterItemsValues = filterItems.map((item) => {
|
|
187
|
+
id++;
|
|
188
|
+
return {
|
|
189
|
+
filterId: id,
|
|
190
|
+
field: item.field,
|
|
191
|
+
operator: stringifyOperator(item.operator),
|
|
192
|
+
value: item.operator === "IsNull" ? "<!-- -->" : stringifyValue(item.value, item.field, allProperties)
|
|
193
|
+
};
|
|
194
|
+
});
|
|
195
|
+
delete flowNode.filters;
|
|
196
|
+
let descriptiveLine = "";
|
|
197
|
+
if (flowNode.filterLogic) {
|
|
198
|
+
descriptiveLine += " (logic: **" + flowNode.filterLogic + "**)";
|
|
199
|
+
delete flowNode.filterLogic;
|
|
200
|
+
}
|
|
201
|
+
return buildCustomMarkdownTable(filterItemsValues, ["filterId", "field", "operator", "value"], "#### Filters" + descriptiveLine, allProperties);
|
|
202
|
+
}
|
|
203
|
+
function handleAssignmentItems(flowNode, allProperties) {
|
|
204
|
+
const assignmentItems = getElementAsArray(flowNode, "assignmentItems");
|
|
205
|
+
if (assignmentItems.length === 0) {
|
|
206
|
+
return "";
|
|
207
|
+
}
|
|
208
|
+
const assignmentItemsValues = assignmentItems.map((item) => {
|
|
209
|
+
const value = item?.value?.elementReference || stringifyValue(item.value, "", allProperties);
|
|
210
|
+
return {
|
|
211
|
+
assignToReference: item.assignToReference,
|
|
212
|
+
operator: stringifyOperator(item.operator),
|
|
213
|
+
value: stringifyValue(value, "", allProperties)
|
|
214
|
+
};
|
|
215
|
+
});
|
|
216
|
+
delete flowNode.assignmentItems;
|
|
217
|
+
return buildCustomMarkdownTable(assignmentItemsValues, ["assignToReference", "operator", "value"], "#### Assignments", allProperties);
|
|
218
|
+
}
|
|
219
|
+
export function handleScheduledPaths(flowNode, allProperties) {
|
|
220
|
+
const scheduledPaths = getElementAsArray(flowNode, "scheduledPaths");
|
|
221
|
+
delete flowNode.scheduledPaths;
|
|
222
|
+
if (scheduledPaths.length === 0) {
|
|
223
|
+
return "";
|
|
224
|
+
}
|
|
225
|
+
return buildCustomMarkdownTable(scheduledPaths, ["label", "name", "offsetNumber", "offsetUnit", "recordField", "timeSource", "connector"], "#### Scheduled Paths", allProperties);
|
|
226
|
+
}
|
|
227
|
+
export function handleInputParameters(flowNode, allProperties) {
|
|
228
|
+
const inputParameters = getElementAsArray(flowNode, "inputParameters");
|
|
229
|
+
for (const inputParam of inputParameters) {
|
|
230
|
+
const inputParamName = `${inputParam.name} (input)`;
|
|
231
|
+
flowNode[inputParamName] = stringifyValue(inputParam.value, inputParam.name, allProperties);
|
|
232
|
+
}
|
|
233
|
+
delete flowNode.inputParameters;
|
|
234
|
+
}
|
|
235
|
+
export function handleprocessMetadataValues(flowNode, allProperties) {
|
|
236
|
+
const metadataValues = {};
|
|
237
|
+
const processMetadataValues = getElementAsArray(flowNode, "processMetadataValues");
|
|
238
|
+
for (const processMetadataValue of processMetadataValues) {
|
|
239
|
+
const inputParamName = `${processMetadataValue.name} (PM)`;
|
|
240
|
+
flowNode[inputParamName] = stringifyValue(processMetadataValue.value, processMetadataValue.name, allProperties);
|
|
241
|
+
metadataValues[processMetadataValue.name] = flowNode[inputParamName];
|
|
242
|
+
}
|
|
243
|
+
delete flowNode.processMetadataValues;
|
|
244
|
+
return metadataValues;
|
|
245
|
+
}
|
|
246
|
+
export function buildGenericMarkdownTable(item, fields, title = "", allProperties) {
|
|
247
|
+
if (fields[0] === "allFields") {
|
|
248
|
+
fields = Object.keys(item);
|
|
249
|
+
// Reorder fields according to preferences
|
|
250
|
+
for (const field of FIELDS_PREFERRED_ORDER_START.reverse()) {
|
|
251
|
+
if (fields.includes(field)) {
|
|
252
|
+
fields.splice(fields.indexOf(field), 1);
|
|
253
|
+
fields.unshift(field);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
for (const field of FIELDS_PREFERRED_ORDER_END) {
|
|
257
|
+
if (fields.includes(field)) {
|
|
258
|
+
fields.splice(fields.indexOf(field), 1);
|
|
259
|
+
fields.push(field);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
let table = title ? `${title}\n\n` : '';
|
|
264
|
+
table += `|<!-- -->|<!-- -->|\n|:---|:---|\n`;
|
|
265
|
+
for (const field of fields) {
|
|
266
|
+
if (item[field] !== undefined) {
|
|
267
|
+
table += `|${prettifyFieldName(field)}|${stringifyValue(item[field], field, allProperties)}|\n`;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return table + "\n\n";
|
|
271
|
+
}
|
|
272
|
+
export function buildCustomMarkdownTable(items, fields, title = "", allProperties) {
|
|
273
|
+
let table = title ? `${title}\n\n` : '';
|
|
274
|
+
table += "|" + fields.map(field => prettifyFieldName(field)).join("|") + "|\n";
|
|
275
|
+
table += "|" + fields.map(field => FIELDS_WITH_COLUMN_CENTERED.includes(field) ? ":--:" : ":-- ").join("|") + " |\n";
|
|
276
|
+
for (const item of items) {
|
|
277
|
+
const fieldValues = fields.map(field => stringifyValue(item[field], field, allProperties));
|
|
278
|
+
table += "|" + fieldValues.join("|") + "|\n";
|
|
279
|
+
}
|
|
280
|
+
return table + "\n\n";
|
|
281
|
+
}
|
|
282
|
+
export function stringifyOperator(operatorIn) {
|
|
283
|
+
return prettifyFieldName(operatorIn);
|
|
284
|
+
}
|
|
285
|
+
export function stringifyValue(valueIn, field, allProperties) {
|
|
286
|
+
const valueType = typeof valueIn;
|
|
287
|
+
// String
|
|
288
|
+
let valueStringified = valueType === "string" ?
|
|
289
|
+
valueIn.split("\n").join("<br/>") :
|
|
290
|
+
// String value
|
|
291
|
+
(valueType === "object" && valueIn.stringValue && Object.keys(valueIn).length === 1) ?
|
|
292
|
+
valueIn.stringValue :
|
|
293
|
+
// Boolean value
|
|
294
|
+
(valueType === "object" && (valueIn.booleanValue !== undefined) && Object.keys(valueIn).length === 1) ?
|
|
295
|
+
valueIn.booleanValue :
|
|
296
|
+
// Number value
|
|
297
|
+
(valueType === "object" && valueIn.numberValue && Object.keys(valueIn).length === 1) ?
|
|
298
|
+
valueIn.numberValue :
|
|
299
|
+
// Target reference
|
|
300
|
+
(valueType === "object" && valueIn.targetReference && Object.keys(valueIn).length === 1) ?
|
|
301
|
+
valueIn.targetReference :
|
|
302
|
+
// Element reference
|
|
303
|
+
(valueType === "object" && valueIn.elementReference && Object.keys(valueIn).length === 1) ?
|
|
304
|
+
valueIn.elementReference :
|
|
305
|
+
// Undefined or empty array or empty object
|
|
306
|
+
(valueType === "undefined" || (Array.isArray(valueIn) && valueIn.length === 0) || (valueType === "object" && Object.keys(valueIn).length === 0)) ?
|
|
307
|
+
'<!-- -->' :
|
|
308
|
+
// Default YAML for array & object
|
|
309
|
+
(Array.isArray(valueIn) || valueType === "object") ?
|
|
310
|
+
yaml.dump(valueIn).replace(/"/gm, "").replace(/^(\s+)/gm, match => ' '.repeat(match.length)).split("\n").join("<br/>") :
|
|
311
|
+
// Default
|
|
312
|
+
String(valueIn).split("\n").join("<br/>");
|
|
313
|
+
// Final updates if necessary
|
|
314
|
+
if (allProperties.includes(valueStringified)) {
|
|
315
|
+
valueStringified = `[${valueStringified}](#${valueStringified.toLowerCase()})`;
|
|
316
|
+
}
|
|
317
|
+
else if (FIELDS_WITH_VALUES_TO_FORMAT.includes(field)) {
|
|
318
|
+
valueStringified = prettifyFieldName(valueStringified);
|
|
319
|
+
if (field === "type" && valueStringified.endsWith("s")) {
|
|
320
|
+
valueStringified = valueStringified.slice(0, -1);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
valueStringified = valueStringified === "true" ? "✅" : valueStringified === "false" ? "⬜" : valueStringified;
|
|
325
|
+
}
|
|
326
|
+
return valueStringified;
|
|
327
|
+
}
|
|
328
|
+
export function prettifyFieldName(field) {
|
|
329
|
+
return field.replace(/([A-Z])/g, " $1").replace(/^./, str => str.toUpperCase()).replace("( P M)", "(PM)").replace("S Object", "SObject");
|
|
330
|
+
}
|
|
331
|
+
export function mdEndSection(sectionString) {
|
|
332
|
+
if (!sectionString)
|
|
333
|
+
return sectionString + "\n\n___\n\n";
|
|
334
|
+
return sectionString;
|
|
335
|
+
}
|
|
336
|
+
export function getElementAsArray(node, key) {
|
|
337
|
+
return Array.isArray(node[key]) ? node[key] : typeof node[key] === "object" ? [node[key]] : [];
|
|
338
|
+
}
|
|
339
|
+
//# sourceMappingURL=nodeFormatUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeFormatUtils.js","sourceRoot":"","sources":["../../../../src/common/utils/flowVisualiser/nodeFormatUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* renderConfig.js
|
|
3
|
-
*/
|
|
4
1
|
export declare const NODE_CONFIG: {
|
|
5
2
|
actionCalls: {
|
|
6
3
|
background: string;
|
|
@@ -61,6 +58,7 @@ export declare const NODE_CONFIG: {
|
|
|
61
58
|
loops: {
|
|
62
59
|
background: string;
|
|
63
60
|
label: string;
|
|
61
|
+
color: string;
|
|
64
62
|
mermaidIcon: string;
|
|
65
63
|
mermaidClose: string;
|
|
66
64
|
mermaidOpen: string;
|
|
@@ -119,4 +117,12 @@ export declare const NODE_CONFIG: {
|
|
|
119
117
|
mermaidClose: string;
|
|
120
118
|
mermaidOpen: string;
|
|
121
119
|
};
|
|
120
|
+
startClass: {
|
|
121
|
+
background: string;
|
|
122
|
+
color: string;
|
|
123
|
+
};
|
|
124
|
+
endClass: {
|
|
125
|
+
background: string;
|
|
126
|
+
color: string;
|
|
127
|
+
};
|
|
122
128
|
};
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* renderConfig.js
|
|
3
|
-
*/
|
|
4
1
|
export const NODE_CONFIG = {
|
|
5
2
|
'actionCalls': {
|
|
6
|
-
background: "#
|
|
7
|
-
color: "
|
|
8
|
-
label: "
|
|
3
|
+
background: "#D4E4FC", // Light blue
|
|
4
|
+
color: "black",
|
|
5
|
+
label: "",
|
|
9
6
|
icon: "<&pulse>",
|
|
10
7
|
mermaidIcon: {
|
|
11
8
|
"apex": "⚙️",
|
|
@@ -17,17 +14,17 @@ export const NODE_CONFIG = {
|
|
|
17
14
|
mermaidOpen: "("
|
|
18
15
|
},
|
|
19
16
|
'assignments': {
|
|
20
|
-
background: "#
|
|
21
|
-
color: "
|
|
22
|
-
label: "
|
|
17
|
+
background: "#FBEED7", // Light beige
|
|
18
|
+
color: "black",
|
|
19
|
+
label: "",
|
|
23
20
|
icon: "<&menu>",
|
|
24
21
|
mermaidIcon: "🟰",
|
|
25
|
-
mermaidClose: "
|
|
26
|
-
mermaidOpen: "
|
|
22
|
+
mermaidClose: "/]",
|
|
23
|
+
mermaidOpen: "[\\"
|
|
27
24
|
},
|
|
28
25
|
'collectionProcessors': {
|
|
29
|
-
background: "#
|
|
30
|
-
color: "
|
|
26
|
+
background: "#F0E3FA", // Light lavender
|
|
27
|
+
color: "black",
|
|
31
28
|
label: {
|
|
32
29
|
"FilterCollectionProcessor": "Collection Filter",
|
|
33
30
|
"SortCollectionProcessor": "Collection Sort",
|
|
@@ -37,87 +34,96 @@ export const NODE_CONFIG = {
|
|
|
37
34
|
"FilterCollectionProcessor": "🔽",
|
|
38
35
|
"SortCollectionProcessor": "🔃",
|
|
39
36
|
},
|
|
40
|
-
mermaidClose: "
|
|
41
|
-
mermaidOpen: "
|
|
37
|
+
mermaidClose: "}}",
|
|
38
|
+
mermaidOpen: "{{"
|
|
42
39
|
},
|
|
43
40
|
'customErrors': {
|
|
44
|
-
background: "#
|
|
45
|
-
color: "
|
|
46
|
-
label: "
|
|
41
|
+
background: "#FFE9E9", // Pale blush
|
|
42
|
+
color: "black",
|
|
43
|
+
label: "",
|
|
47
44
|
icon: "<&pencil>",
|
|
48
45
|
mermaidIcon: "🚫",
|
|
49
46
|
mermaidClose: ")",
|
|
50
47
|
mermaidOpen: "("
|
|
51
48
|
},
|
|
52
49
|
'decisions': {
|
|
53
|
-
background: "#
|
|
54
|
-
color: "
|
|
55
|
-
label: "
|
|
50
|
+
background: "#FDEAF6", // Light pink
|
|
51
|
+
color: "black",
|
|
52
|
+
label: "",
|
|
56
53
|
icon: "<&fork>",
|
|
57
54
|
mermaidIcon: "🔀",
|
|
58
|
-
mermaidClose: "}
|
|
59
|
-
mermaidOpen: "{
|
|
55
|
+
mermaidClose: "}",
|
|
56
|
+
mermaidOpen: "{"
|
|
60
57
|
},
|
|
61
58
|
'loops': {
|
|
62
|
-
background: "#
|
|
63
|
-
label: "
|
|
59
|
+
background: "#FDEAF6", // Light pink (harmonized with decisions)
|
|
60
|
+
label: "",
|
|
61
|
+
color: "black",
|
|
64
62
|
mermaidIcon: "🔁",
|
|
65
|
-
mermaidClose: "
|
|
66
|
-
mermaidOpen: "
|
|
63
|
+
mermaidClose: "}}",
|
|
64
|
+
mermaidOpen: "{{"
|
|
67
65
|
},
|
|
68
66
|
'recordCreates': {
|
|
69
|
-
background: "#
|
|
70
|
-
color: "
|
|
71
|
-
label: "
|
|
67
|
+
background: "#FFF8C9", // Light periwinkle (harmonized with recordCreates and recordDeletes)
|
|
68
|
+
color: "black",
|
|
69
|
+
label: "",
|
|
72
70
|
icon: "<&medical-cross>",
|
|
73
71
|
mermaidIcon: "➕",
|
|
74
|
-
mermaidClose: ")",
|
|
75
|
-
mermaidOpen: "("
|
|
72
|
+
mermaidClose: ")]",
|
|
73
|
+
mermaidOpen: "[("
|
|
76
74
|
},
|
|
77
75
|
'recordDeletes': {
|
|
78
|
-
background: "#
|
|
79
|
-
color: "
|
|
80
|
-
label: "
|
|
76
|
+
background: "#FFF8C9", // Light periwinkle (harmonized with recordCreates and recordDeletes)
|
|
77
|
+
color: "black",
|
|
78
|
+
label: "",
|
|
81
79
|
icon: "<&medical-cross>",
|
|
82
80
|
mermaidIcon: "🗑️",
|
|
83
|
-
mermaidClose: ")",
|
|
84
|
-
mermaidOpen: "("
|
|
81
|
+
mermaidClose: ")]",
|
|
82
|
+
mermaidOpen: "[("
|
|
85
83
|
},
|
|
86
84
|
'recordLookups': {
|
|
87
|
-
background: "#
|
|
88
|
-
color: "
|
|
89
|
-
label: "
|
|
85
|
+
background: "#EDEAFF", // Pale yellow
|
|
86
|
+
color: "black",
|
|
87
|
+
label: "",
|
|
90
88
|
icon: "<&medical-cross>",
|
|
91
89
|
mermaidIcon: "🔍",
|
|
92
|
-
mermaidClose: ")",
|
|
93
|
-
mermaidOpen: "("
|
|
90
|
+
mermaidClose: ")]",
|
|
91
|
+
mermaidOpen: "[("
|
|
94
92
|
},
|
|
95
93
|
'recordUpdates': {
|
|
96
|
-
background: "#
|
|
97
|
-
color: "
|
|
98
|
-
label: "
|
|
94
|
+
background: "#FFF8C9", // Light periwinkle (harmonized with recordCreates and recordDeletes)
|
|
95
|
+
color: "black",
|
|
96
|
+
label: "",
|
|
99
97
|
icon: "<&pencil>",
|
|
100
98
|
mermaidIcon: "🛠️",
|
|
101
|
-
mermaidClose: ")",
|
|
102
|
-
mermaidOpen: "("
|
|
99
|
+
mermaidClose: ")]",
|
|
100
|
+
mermaidOpen: "[("
|
|
103
101
|
},
|
|
104
102
|
'screens': {
|
|
105
|
-
background: "#
|
|
106
|
-
color: "
|
|
107
|
-
label: "
|
|
103
|
+
background: "#DFF6FF", // Pale sky blue
|
|
104
|
+
color: "black",
|
|
105
|
+
label: "",
|
|
108
106
|
icon: "<&pencil>",
|
|
109
107
|
mermaidIcon: "💻",
|
|
110
|
-
mermaidClose: ")",
|
|
111
|
-
mermaidOpen: "("
|
|
108
|
+
mermaidClose: "])",
|
|
109
|
+
mermaidOpen: "(["
|
|
112
110
|
},
|
|
113
111
|
'subflows': {
|
|
114
|
-
background: "#
|
|
115
|
-
color: "
|
|
112
|
+
background: "#D4E4FC", // Light blue (harmonized with actionCalls)
|
|
113
|
+
color: "black",
|
|
116
114
|
label: "Subflow",
|
|
117
115
|
icon: "<&pencil>",
|
|
118
116
|
mermaidIcon: "🔗",
|
|
119
|
-
mermaidClose: "
|
|
120
|
-
mermaidOpen: "
|
|
117
|
+
mermaidClose: "]]",
|
|
118
|
+
mermaidOpen: "[["
|
|
119
|
+
},
|
|
120
|
+
"startClass": {
|
|
121
|
+
background: "#D9F2E6", // Light turquoise (between green and blue)
|
|
122
|
+
color: "black"
|
|
121
123
|
},
|
|
124
|
+
"endClass": {
|
|
125
|
+
background: "#F9BABA", // Slightly shinier pale re
|
|
126
|
+
color: "black"
|
|
127
|
+
}
|
|
122
128
|
};
|
|
123
129
|
//# sourceMappingURL=renderConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderConfig.js","sourceRoot":"","sources":["../../../../src/common/utils/flowVisualiser/renderConfig.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"renderConfig.js","sourceRoot":"","sources":["../../../../src/common/utils/flowVisualiser/renderConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export declare function isMermaidAvailable(): Promise<boolean>;
|
|
2
2
|
export declare function isDockerAvailable(): Promise<boolean>;
|
|
3
|
-
export declare function generateFlowMarkdownFile(flowName: string, flowXml: string, outputFlowMdFile: string
|
|
3
|
+
export declare function generateFlowMarkdownFile(flowName: string, flowXml: string, outputFlowMdFile: string, options?: {
|
|
4
|
+
collapsedDetails: boolean;
|
|
5
|
+
}): Promise<boolean>;
|
|
4
6
|
export declare function generateMarkdownFileWithMermaid(outputFlowMdFile: string): Promise<boolean>;
|
|
5
7
|
export declare function generateMarkdownFileWithMermaidDocker(outputFlowMdFile: string): Promise<boolean>;
|
|
6
8
|
export declare function generateMarkdownFileWithMermaidCli(outputFlowMdFile: string): Promise<boolean>;
|