Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | 9x 9x 10x 13x 13x 3x 10x 9x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import type { FlowableDocumentState } from '../flowable/types';
export interface ActionCounters {
field: number;
listener: number;
formProperty: number;
ioParameter: number;
dataObject: number;
signalDefinition: number;
messageDefinition: number;
eventListener: number;
localization: number;
}
function getMaxSuffix(ids: string[], prefixes: string[]): number {
let maxSuffix = 0;
for (const id of ids) {
for (const prefix of prefixes) {
const match = id.match(new RegExp(`^${prefix}(\\d+)$`));
if (!match) {
continue;
}
maxSuffix = Math.max(maxSuffix, Number(match[1]));
}
}
return maxSuffix;
}
export function syncActionCountersFromState(state: FlowableDocumentState, counters: ActionCounters): void {
const allElementStates = Object.values(state.elements);
counters.field = getMaxSuffix(
allElementStates.flatMap((elementState) => elementState.fieldExtensions.map((fieldExtension) => fieldExtension.id)),
['field-'],
);
counters.listener = getMaxSuffix(
allElementStates.flatMap((elementState) => [
...elementState.taskListeners.map((listener) => listener.id),
...elementState.executionListeners.map((listener) => listener.id),
]),
['task-listener-', 'execution-listener-'],
);
counters.formProperty = getMaxSuffix(
allElementStates.flatMap((elementState) => elementState.formProperties.map((formProperty) => formProperty.id)),
['form-property-'],
);
counters.ioParameter = getMaxSuffix(
allElementStates.flatMap((elementState) => [
...elementState.inputParameters.map((parameter) => parameter.id),
...elementState.outputParameters.map((parameter) => parameter.id),
]),
['io-param-'],
);
counters.dataObject = getMaxSuffix(state.dataObjects.map((dataObject) => dataObject.id), ['data-object-', 'dataObj-']);
counters.signalDefinition = getMaxSuffix(state.signalDefinitions.map((signalDefinition) => signalDefinition.id), ['signal-']);
counters.messageDefinition = getMaxSuffix(state.messageDefinitions.map((messageDefinition) => messageDefinition.id), ['message-']);
counters.eventListener = getMaxSuffix(state.eventListeners.map((listener) => listener.id), ['event-listener-']);
counters.localization = getMaxSuffix(state.localizations.map((localization) => localization.id), ['localization-']);
} |