1
2
3
4
5
6
7
8
9
10
11
12
| export type ParsedTag = { fieldCode: string; type: 'single' } | { fieldCode: string; groupCode: string; rowId: string; type: 'repeat' };
|
| export function parseTag(tag: unknown): ParsedTag | null {
| const parts = typeof tag === 'string' ? tag.split('.') : [];
| if (parts.length === 3 && parts[0] === 'eln' && parts[1] === 'field' && parts[2]) {
| return { type: 'single', fieldCode: parts[2] };
| }
| if (parts.length === 5 && parts[0] === 'eln' && parts[1] === 'repeat' && parts.slice(2).every(Boolean)) {
| return { type: 'repeat', groupCode: parts[2]!, rowId: parts[3]!, fieldCode: parts[4]! };
| }
| return null;
| }
|
|