UNPKG

devexpress-richedit

Version:

DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.

100 lines (99 loc) 5.9 kB
import { NumberingFormat } from '../numbering-lists/list-level-properties'; import { BulletNumberConverter } from './bullet-number-converter'; import { DecimalEnclosedParenthesesNumberConverter } from './decimal-enclosed-parentheses-number-converter'; import { DecimalNumberConverter } from './decimal-number-converter'; import { DecimalZeroNumberConverter } from './decimal-zero-number-converter'; import { DescriptiveCardinalEnglishNumberConverter, DescriptiveOrdinalEnglishNumberConverter } from './descriptive-number-converter'; import { HexNumberConverter } from './hex-number-converter'; import { LowerLatinLetterNumberConverter, UpperLatinLetterNumberConverter } from './latin-letter-number-converter'; import { NumberInDashNumberConverter } from './number-in-dash-number-converter'; import { OrdinalEnglishNumberConverter, OrdinalFrenchNumberConverter, OrdinalGermanNumberConverter, OrdinalGreekNumberConverter, OrdinalItalianNumberConverter, OrdinalPortugueseNumberConverter, OrdinalRussianNumberConverter, OrdinalSpanishNumberConverter, OrdinalSwedishNumberConverter, OrdinalTurkishNumberConverter, OrdinalUkrainianNumberConverter } from './ordinal-based-number-converter'; import { LowerRomanNumberConverterClassic, UpperRomanNumberConverterClassic } from './roman-number-converter'; export class NumberConverterCreator { static createConverter(type, simpleFormattersManager, langId = "en") { switch (type) { case NumberingFormat.UpperRoman: return new UpperRomanNumberConverterClassic(); case NumberingFormat.LowerRoman: return new LowerRomanNumberConverterClassic(); case NumberingFormat.Ordinal: return NumberConverterCreator.getOrdinalBasedNumberConverter(simpleFormattersManager, langId); case NumberingFormat.OrdinalText: return new DescriptiveOrdinalEnglishNumberConverter(); case NumberingFormat.CardinalText: return new DescriptiveCardinalEnglishNumberConverter(); case NumberingFormat.UpperLetter: return new UpperLatinLetterNumberConverter(); case NumberingFormat.LowerLetter: return new LowerLatinLetterNumberConverter(); case NumberingFormat.NumberInDash: return new NumberInDashNumberConverter(simpleFormattersManager); case NumberingFormat.Bullet: return new BulletNumberConverter(); case NumberingFormat.DecimalZero: return new DecimalZeroNumberConverter(simpleFormattersManager); case NumberingFormat.DecimalEnclosedParentheses: return new DecimalEnclosedParenthesesNumberConverter(simpleFormattersManager); case NumberingFormat.Hex: return new HexNumberConverter(); case NumberingFormat.Decimal: return new DecimalNumberConverter(); default: return new DecimalNumberConverter(); } } static getOrdinalBasedNumberConverter(simpleFormattersManager, langId) { const twoLetterISOLanguageName = langId.substring(0, 2).toLowerCase(); switch (twoLetterISOLanguageName) { case "en": return new OrdinalEnglishNumberConverter(simpleFormattersManager); case "fr": return new OrdinalFrenchNumberConverter(simpleFormattersManager); case "de": return new OrdinalGermanNumberConverter(simpleFormattersManager); case "it": return new OrdinalItalianNumberConverter(simpleFormattersManager); case "ru": return new OrdinalRussianNumberConverter(simpleFormattersManager); case "sv": return new OrdinalSwedishNumberConverter(simpleFormattersManager); case "tr": return new OrdinalTurkishNumberConverter(simpleFormattersManager); case "el": return new OrdinalGreekNumberConverter(simpleFormattersManager); case "es": return new OrdinalSpanishNumberConverter(simpleFormattersManager); case "pt": return new OrdinalPortugueseNumberConverter(simpleFormattersManager); case "uk": return new OrdinalUkrainianNumberConverter(simpleFormattersManager); } return new DecimalNumberConverter(); } static createConverterByTypeName(typeName, simpleFormattersManager) { const uppercaseTypeName = typeName.toUpperCase(); const firstChar = typeName[0]; switch (uppercaseTypeName) { case "ALPHABETIC": return firstChar.toUpperCase() == firstChar ? new UpperLatinLetterNumberConverter() : new LowerLatinLetterNumberConverter(); case "ROMAN": return firstChar.toUpperCase() == firstChar ? new UpperRomanNumberConverterClassic() : new LowerRomanNumberConverterClassic(); case "ARABIC": return new DecimalNumberConverter(); case "ARABICDASH": return new NumberInDashNumberConverter(simpleFormattersManager); case "CARDTEXT": return new DescriptiveCardinalEnglishNumberConverter(); case "CIRCLENUM": return new DecimalEnclosedParenthesesNumberConverter(simpleFormattersManager); case "HEX": return new HexNumberConverter(); case "ORDINAL": return new OrdinalEnglishNumberConverter(simpleFormattersManager); case "ORDTEXT": return new DescriptiveOrdinalEnglishNumberConverter(); default: return new DecimalNumberConverter(); } } }