import type { Universe } from '@ephox/boss'; import { Arr } from '@ephox/katamari'; import type { WordScope } from '../data/WordScope'; import * as Identify from '../words/Identify'; import type { ZoneDetails } from './LanguageZones'; export interface Zone { readonly elements: E[]; readonly lang: string; readonly words: WordScope[]; } export interface Zones { readonly zones: Zone[]; } export const fromWalking = (universe: Universe, groups: ZoneDetails[]): Zones => { const zones = Arr.map(groups, (group: ZoneDetails) => { const details = group.details; const lang = group.lang; const line = Arr.map(details, (x) => x.text).join(''); const elements = Arr.map(details, (x) => x.item); const words = Identify.words(line); return { lang, words, elements }; }); return { zones }; };