UNPKG

bliss-svg-builder

Version:

Generates SVG code for Bliss (Blissymbolics) text using a Domain-Specific Language.

493 lines (482 loc) 22.3 kB
/** * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import * as sc from "./bliss-shape-creators.js"; import { charData } from "./bliss-character-data.js"; const blissElementDefinitions = { 'H': sc.createHeart(8), 'E': sc.createEar(8), 'F': sc.createFiber(8), 'DOT': sc.createDot(0.5, 0.333), 'SDOT': sc.createDot(0.5, 0), 'COMMA': sc.createComma(0.5, 0.333), 'C8': sc.createCircle(4), 'C4': sc.createCircle(2), 'C2': sc.createCircle(1), 'C1': sc.createCircle(0.5), 'HC8N': sc.createHalfCircle(4, 'N'), 'HC4N': sc.createHalfCircle(2, 'N'), 'HC2N': sc.createHalfCircle(1, 'N'), 'HC1N': sc.createHalfCircle(0.5, 'N'), 'HC.5N': sc.createHalfCircle(0.25, 'N'), 'HC8S': sc.createHalfCircle(4, 'S'), 'HC4S': sc.createHalfCircle(2, 'S'), 'HC2S': sc.createHalfCircle(1, 'S'), 'HC1S': sc.createHalfCircle(0.5, 'S'), 'HC.5S': sc.createHalfCircle(0.25, 'S'), 'HC8W': sc.createHalfCircle(4, 'W'), 'HC4W': sc.createHalfCircle(2, 'W'), 'HC2W': sc.createHalfCircle(1, 'W'), 'HC1W': sc.createHalfCircle(0.5, 'W'), 'HC.5W': sc.createHalfCircle(0.25, 'W'), 'HC8E': sc.createHalfCircle(4, 'E'), 'HC4E': sc.createHalfCircle(2, 'E'), 'HC2E': sc.createHalfCircle(1, 'E'), 'HC1E': sc.createHalfCircle(0.5, 'E'), 'HC.5E': sc.createHalfCircle(0.25, 'E'), 'QC4NW': sc.createQuarterCircle(4, 'NW'), 'QC2NW': sc.createQuarterCircle(2, 'NW'), 'QC1NW': sc.createQuarterCircle(1, 'NW'), 'QC.5NW': sc.createQuarterCircle(0.5, 'NW'), 'QC4NE': sc.createQuarterCircle(4, 'NE'), 'QC2NE': sc.createQuarterCircle(2, 'NE'), 'QC1NE': sc.createQuarterCircle(1, 'NE'), 'QC.5NE': sc.createQuarterCircle(0.5, 'NE'), 'QC4SW': sc.createQuarterCircle(4, 'SW'), 'QC2SW': sc.createQuarterCircle(2, 'SW'), 'QC1SW': sc.createQuarterCircle(1, 'SW'), 'QC.5SW': sc.createQuarterCircle(0.5, 'SW'), 'QC4SE': sc.createQuarterCircle(4, 'SE'), 'QC2SE': sc.createQuarterCircle(2, 'SE'), 'QC1SE': sc.createQuarterCircle(1, 'SE'), 'QC.5SE': sc.createQuarterCircle(0.5, 'SE'), 'OC8NW': sc.createOpenCircle(4, 'NW'), 'OC4NW': sc.createOpenCircle(2, 'NW'), 'OC2NW': sc.createOpenCircle(1, 'NW'), 'OC1NW': sc.createOpenCircle(0.5, 'NW'), 'OC8NE': sc.createOpenCircle(4, 'NE'), 'OC4NE': sc.createOpenCircle(2, 'NE'), 'OC2NE': sc.createOpenCircle(1, 'NE'), 'OC1NE': sc.createOpenCircle(0.5, 'NE'), 'OC8SW': sc.createOpenCircle(4, 'SW'), 'OC4SW': sc.createOpenCircle(2, 'SW'), 'OC2SW': sc.createOpenCircle(1, 'SW'), 'OC1SW': sc.createOpenCircle(0.5, 'SW'), 'OC8SE': sc.createOpenCircle(4, 'SE'), 'OC4SE': sc.createOpenCircle(2, 'SE'), 'OC2SE': sc.createOpenCircle(1, 'SE'), 'OC1SE': sc.createOpenCircle(0.5, 'SE'), 'W8N': sc.createWave(8, 'N'), 'W8S': sc.createWave(8, 'S'), 'W8W': sc.createWave(8, 'W'), 'W8E': sc.createWave(8, 'E'), 'HW8N': sc.createHalfWave(8, 'N'), 'HW4N': sc.createHalfWave(4, 'N'), 'HW2N': sc.createHalfWave(2, 'N'), 'HW8S': sc.createHalfWave(8, 'S'), 'HW4S': sc.createHalfWave(4, 'S'), 'HW2S': sc.createHalfWave(2, 'S'), 'HW8W': sc.createHalfWave(8, 'W'), 'HW4W': sc.createHalfWave(4, 'W'), 'HW2W': sc.createHalfWave(2, 'W'), 'HW8E': sc.createHalfWave(8, 'E'), 'HW4E': sc.createHalfWave(4, 'E'), 'HW2E': sc.createHalfWave(2, 'E'), 'HQW4NW': sc.createHorizontalQuarterWave(4, 'NW'), 'HQW2NW': sc.createHorizontalQuarterWave(2, 'NW'), 'HQW1NW': sc.createHorizontalQuarterWave(1, 'NW'), 'HQW4NE': sc.createHorizontalQuarterWave(4, 'NE'), 'HQW2NE': sc.createHorizontalQuarterWave(2, 'NE'), 'HQW1NE': sc.createHorizontalQuarterWave(1, 'NE'), 'HQW4SW': sc.createHorizontalQuarterWave(4, 'SW'), 'HQW2SW': sc.createHorizontalQuarterWave(2, 'SW'), 'HQW1SW': sc.createHorizontalQuarterWave(1, 'SW'), 'HQW4SE': sc.createHorizontalQuarterWave(4, 'SE'), 'HQW2SE': sc.createHorizontalQuarterWave(2, 'SE'), 'HQW1SE': sc.createHorizontalQuarterWave(1, 'SE'), 'VQW4NW': sc.createVerticalQuarterWave(4, 'NW'), 'VQW2NW': sc.createVerticalQuarterWave(2, 'NW'), 'VQW1NW': sc.createVerticalQuarterWave(1, 'NW'), 'VQW4NE': sc.createVerticalQuarterWave(4, 'NE'), 'VQW2NE': sc.createVerticalQuarterWave(2, 'NE'), 'VQW1NE': sc.createVerticalQuarterWave(1, 'NE'), 'VQW4SW': sc.createVerticalQuarterWave(4, 'SW'), 'VQW2SW': sc.createVerticalQuarterWave(2, 'SW'), 'VQW1SW': sc.createVerticalQuarterWave(1, 'SW'), 'VQW4SE': sc.createVerticalQuarterWave(4, 'SE'), 'VQW2SE': sc.createVerticalQuarterWave(2, 'SE'), 'VQW1SE': sc.createVerticalQuarterWave(1, 'SE'), 'VL12': sc.createVerticalLine(12), 'VL10': sc.createVerticalLine(10), 'VL8': sc.createVerticalLine(8), 'VL6': sc.createVerticalLine(6), 'VL4': sc.createVerticalLine(4), 'VL3': sc.createVerticalLine(3), 'VL2': sc.createVerticalLine(2), 'VL1.5': sc.createVerticalLine(1.5), 'VL1.25': sc.createVerticalLine(1.25), 'VL1': sc.createVerticalLine(1), 'VL.5': sc.createVerticalLine(0.5), 'VL.25': sc.createVerticalLine(0.25), 'HL16': sc.createHorizontalLine(16), 'HL15': sc.createHorizontalLine(15), 'HL14': sc.createHorizontalLine(14), 'HL12': sc.createHorizontalLine(12), 'HL10': sc.createHorizontalLine(10), 'HL8': sc.createHorizontalLine(8), 'HL6': sc.createHorizontalLine(6), 'HL4': sc.createHorizontalLine(4), 'HL3': sc.createHorizontalLine(3), 'HL2': sc.createHorizontalLine(2), 'HL1.5': sc.createHorizontalLine(1.5), 'HL1': sc.createHorizontalLine(1), 'HL.5': sc.createHorizontalLine(0.5), 'HL.25': sc.createHorizontalLine(0.25), 'DL12N': sc.createAscendingDiagonalLine(12, 12), 'DL8N': sc.createAscendingDiagonalLine(8, 8), 'DL6N': sc.createAscendingDiagonalLine(6, 6), 'DL5N': sc.createAscendingDiagonalLine(5, 5), 'DL4N': sc.createAscendingDiagonalLine(4, 4), 'DL3N': sc.createAscendingDiagonalLine(3, 3), 'DL2N': sc.createAscendingDiagonalLine(2, 2), 'DL1.5N': sc.createAscendingDiagonalLine(1.5, 1.5), 'DL1N': sc.createAscendingDiagonalLine(1, 1), "DL.5N": sc.createAscendingDiagonalLine(0.5, 0.5), 'DL2-3N': sc.createAscendingDiagonalLine(2, 3), 'DL1-1.5N': sc.createAscendingDiagonalLine(1, 1.5), 'DL3-2N': sc.createAscendingDiagonalLine(3, 2), 'DL1.5-1N': sc.createAscendingDiagonalLine(1.5, 1), 'DL4-8N': sc.createAscendingDiagonalLine(4, 8), 'DL2-4N': sc.createAscendingDiagonalLine(2, 4), 'DL1-2N': sc.createAscendingDiagonalLine(1, 2), 'DL.5-1N': sc.createAscendingDiagonalLine(0.5, 1), 'DL8-4N': sc.createAscendingDiagonalLine(8, 4), 'DL4-2N': sc.createAscendingDiagonalLine(4, 2), 'DL2-1N': sc.createAscendingDiagonalLine(2, 1), 'DL1-.5N': sc.createAscendingDiagonalLine(1, 0.5), 'DL1-4N': sc.createAscendingDiagonalLine(1, 4), 'DL.5-2N': sc.createAscendingDiagonalLine(0.5, 2), 'DL4-1N': sc.createAscendingDiagonalLine(4, 1), 'DL2-.5N': sc.createAscendingDiagonalLine(2, 0.5), 'DL12S': sc.createDescendingDiagonalLine(12, 12), 'DL8S': sc.createDescendingDiagonalLine(8, 8), 'DL6S': sc.createDescendingDiagonalLine(6, 6), 'DL5S': sc.createDescendingDiagonalLine(5, 5), 'DL4S': sc.createDescendingDiagonalLine(4, 4), 'DL3S': sc.createDescendingDiagonalLine(3, 3), 'DL2S': sc.createDescendingDiagonalLine(2, 2), 'DL1.5S': sc.createDescendingDiagonalLine(1.5, 1.5), 'DL1S': sc.createDescendingDiagonalLine(1, 1), 'DL.5S': sc.createDescendingDiagonalLine(0.5, 0.5), 'DL2,3S': sc.createDescendingDiagonalLine(2, 3), 'DL1-1.5S': sc.createDescendingDiagonalLine(1, 1.5), 'DL3-2S': sc.createDescendingDiagonalLine(3, 2), 'DL1.5-1S': sc.createDescendingDiagonalLine(1.5, 1), 'DL4-8S': sc.createDescendingDiagonalLine(4, 8), 'DL2-4S': sc.createDescendingDiagonalLine(2, 4), 'DL1-2S': sc.createDescendingDiagonalLine(1, 2), 'DL.5-1S': sc.createDescendingDiagonalLine(0.5, 1), 'DL8-4S': sc.createDescendingDiagonalLine(8, 4), 'DL4-2S': sc.createDescendingDiagonalLine(4, 2), 'DL2-1S': sc.createDescendingDiagonalLine(2, 1), 'DL1-.5S': sc.createDescendingDiagonalLine(1, 0.5), 'DL1-4S': sc.createDescendingDiagonalLine(1, 4), 'DL.5-2S': sc.createDescendingDiagonalLine(0.5, 2), 'DL4-1S': sc.createDescendingDiagonalLine(4, 1), 'DL2-.5S': sc.createDescendingDiagonalLine(2, 0.5), 'DLOC8NW': sc.createDiagonalLineOutsideCircle(8, 'NW'), 'DLOC8NE': sc.createDiagonalLineOutsideCircle(8, 'NE'), 'DLOC8SW': sc.createDiagonalLineOutsideCircle(8, 'SW'), 'DLOC8SE': sc.createDiagonalLineOutsideCircle(8, 'SE'), 'DLOC4NW': sc.createDiagonalLineOutsideCircle(4, 'NW'), 'DLOC4NE': sc.createDiagonalLineOutsideCircle(4, 'NE'), 'DLOC4SW': sc.createDiagonalLineOutsideCircle(4, 'SW'), 'DLOC4SE': sc.createDiagonalLineOutsideCircle(4, 'SE'), 'DLIC8N': sc.createAscendingDiagonalLineInsideCircle(4), 'DLIC4N': sc.createAscendingDiagonalLineInsideCircle(2), 'DLIC8S': sc.createDescendingDiagonalLineInsideCircle(4), 'DLIC4S': sc.createDescendingDiagonalLineInsideCircle(2), 'RA8NW': { codeString: "VL8;HL8" }, 'RA4NW': { codeString: "VL4;HL4" }, 'RA3NW': { codeString: "VL3;HL3" }, 'RA2NW': { codeString: "VL2;HL2" }, 'RA1.5NW': { codeString: "VL1.5;HL1.5" }, 'RA1NW': { codeString: "VL1;HL1" }, 'RA8NE': { codeString: "HL8;VL8:8,0" }, 'RA4NE': { codeString: "HL4;VL4:4,0" }, 'RA3NE': { codeString: "HL3;VL3:3,0" }, 'RA2NE': { codeString: "HL2;VL2:2,0" }, 'RA1.5NE': { codeString: "HL1.5;VL1.5:1.5,0" }, 'RA1NE': { codeString: "HL1;VL1:1,0" }, 'RA8SW': { codeString: "VL8;HL8:0,8" }, 'RA4SW': { codeString: "VL4;HL4:0,4" }, 'RA3SW': { codeString: "VL3;HL3:0,3" }, 'RA2SW': { codeString: "VL2;HL2:0,2" }, 'RA1.5SW': { codeString: "VL1.5;HL1.5:0,1.5" }, 'RA1SW': { codeString: "VL1;HL1:0,1" }, 'RA8SE': { codeString: "HL8:0,8;VL8:8,0" }, 'RA4SE': { codeString: "HL4:0,4;VL4:4,0" }, 'RA3SE': { codeString: "HL3:0,3;VL3:3,0" }, 'RA2SE': { codeString: "HL2:0,2;VL2:2,0" }, 'RA1.5SE': { codeString: "HL1.5:0,1.5;VL1.5:1.5,0" }, 'RA1SE': { codeString: "HL1:0,1;VL1:1,0" }, 'RA8N': { codeString: "DL4N;DL4S:4,0" }, 'RA4N': { codeString: "DL2N;DL2S:2,0" }, 'RA3N': { codeString: "DL1.5N;DL1.5S:1.5,0" }, 'RA2N': { codeString: "DL1N;DL1S:1,0" }, 'RA1N': { codeString: "DL.5N;DL.5S:0.5,0" }, 'RA8S': { codeString: "DL4S;DL4N:4,0" }, 'RA4S': { codeString: "DL2S;DL2N:2,0" }, 'RA3S': { codeString: "DL1.5S;DL1.5N:1.5,0" }, 'RA2S': { codeString: "DL1S;DL1N:1,0" }, 'RA1S': { codeString: "DL.5S;DL.5N:.5,0" }, 'RA8W': { codeString: "DL4N;DL4S:0,4" }, 'RA4W': { codeString: "DL2N;DL2S:0,2" }, 'RA3W': { codeString: "DL1.5N;DL1.5S:0,1.5" }, 'RA2W': { codeString: "DL1N;DL1S:0,1" }, 'RA1W': { codeString: "DL.5N;DL.5S:0,0.5" }, 'RA8E': { codeString: "DL4S;DL4N:0,4" }, 'RA4E': { codeString: "DL2S;DL2N:0,2" }, 'RA3E': { codeString: "DL1.5S;DL1.5N:0,1.5" }, 'RA2E': { codeString: "DL1S;DL1N:0,1" }, 'RA1E': { codeString: "DL.5S;DL.5N:0,0.5" }, 'AA8N': { codeString: "DL4-8N;DL4-8S:4,0" }, 'AA4N': { codeString: "DL2-4N;DL2-4S:2,0" }, 'AA2N': { codeString: "DL1-2N;DL1-2S:1,0" }, 'AA8S': { codeString: "DL4-8S;DL4-8N:4,0" }, 'AA4S': { codeString: "DL2-4S;DL2-4N:2,0" }, 'AA2S': { codeString: "DL1-2S;DL1-2N:1,0" }, 'AA8W': { codeString: "DL8-4N;DL8-4S:0,4" }, 'AA4W': { codeString: "DL4-2N;DL4-2S:0,2" }, 'AA2W': { codeString: "DL2-1N;DL2-1S:0,1" }, 'AA8E': { codeString: "DL8-4S;DL8-4N:0,4" }, 'AA4E': { codeString: "DL4-2S;DL4-2N:0,2" }, 'AA2E': { codeString: "DL2-1S;DL2-1N:0,1" }, 'SC8': { codeString: "HL8:0,4;VL8:4,0" }, 'SC4': { codeString: "HL4:0,2;VL4:2,0" }, 'SC2': { codeString: "HL2:0,1;VL2:1,0" }, 'DC8': { codeString: "DL8S;DL8N" }, 'DC4': { codeString: "DL4S;DL4N" }, 'DC2': { codeString: "DL2S;DL2N" }, 'RT8SW': { codeString: "VL8;HL8:0,8;DL8S" }, 'RT4SW': { codeString: "VL4;HL4:0,4;DL4S" }, 'RT2SW': { codeString: "VL2;HL2:0,2;DL2S" }, 'RT8NW': { codeString: "VL8;HL8;DL8N" }, 'RT4NW': { codeString: "VL4;HL4;DL4N" }, 'RT2NW': { codeString: "VL2;HL2;DL2N" }, 'RT8NE': { codeString: "HL8;VL8:8,0;DL8S" }, 'RT4NE': { codeString: "HL4;VL4:4,0;DL4S" }, 'RT2NE': { codeString: "HL2;VL2:2,0;DL2S" }, 'RT8SE': { codeString: "HL8:0,8;VL8:8,0;DL8N" }, 'RT4SE': { codeString: "HL4:0,4;VL4:4,0;DL4N" }, 'RT2SE': { codeString: "HL2:0,2;VL2:2,0;DL2N" }, 'RT8N': { codeString: "DL4N;DL4S:4,0;HL8:0,4" }, 'RT4N': { codeString: "DL2N;DL2S:2,0;HL4:0,2" }, 'RT2N': { codeString: "DL1N;DL1S:1,0;HL2:0,1" }, 'RT8S': { codeString: "DL4S;DL4N:4,0;HL8" }, 'RT4S': { codeString: "DL2S;DL2N:2,0;HL4" }, 'RT2S': { codeString: "DL1S;DL1N:1,0;HL2" }, 'RT8W': { codeString: "DL4N;DL4S:0,4;VL8:4,0" }, 'RT4W': { codeString: "DL2N;DL2S:0,2;VL4:2,0" }, 'RT2W': { codeString: "DL1N;DL1S:0,1;VL2:1,0" }, 'RT8E': { codeString: "DL4S;DL4N:0,4;VL8" }, 'RT4E': { codeString: "DL2S;DL2N:0,2;VL4" }, 'RT2E': { codeString: "DL1S;DL1N:0,1;VL2" }, 'AT8N': { codeString: "DL4-8N;DL4-8S:4,0;HL8:0,8" }, 'AT4N': { codeString: "DL2-4N;DL2-4S:2,0;HL4:0,4" }, 'AT2N': { codeString: "DL1-2N;DL1-2S:1,0;HL2:0,2" }, 'AT8S': { codeString: "DL4-8S;DL4-8N:4,0;HL8" }, 'AT4S': { codeString: "DL2-4S;DL2-4N:2,0;HL4" }, 'AT2S': { codeString: "DL1-2S;DL1-2N:1,0;HL2" }, 'AT8W': { codeString: "DL8-4N;DL8-4S:0,4;VL8:8,0" }, 'AT4W': { codeString: "DL4-2N;DL4-2S:0,2;VL4:4,0" }, 'AT2W': { codeString: "DL2-1N;DL2-1S:0,1;VL2:2,0" }, 'AT8E': { codeString: "DL8-4S;DL8-4N:0,4;VL8" }, 'AT4E': { codeString: "DL4-2S;DL4-2N:0,2;VL4" }, 'AT2E': { codeString: "DL2-1S;DL2-1N:0,1;VL2" }, 'S8': { codeString: "HL8;HL8:0,8;VL8;VL8:8,0" }, 'S4': { codeString: "HL4;HL4:0,4;VL4;VL4:4,0" }, 'S2': { codeString: "HL2;HL2:0,2;VL2;VL2:2,0" }, 'DS8': { codeString: "DL4N;DL4S:4,0;DL4S:0,4;DL4N:4,4" }, 'DS4': { codeString: "DL2N;DL2S:2,0;DL2S:0,2;DL2N:2,2" }, 'DS2': { codeString: "DL1N;DL1S:1,0;DL1S:0,1;DL1N:1,1" }, 'OS8N': { codeString: "VL8;HL8:0,8;VL8:8,0" }, 'OS4N': { codeString: "VL4;HL4:0,4;VL4:4,0" }, 'OS2N': { codeString: "VL2;HL2:0,2;VL2:2,0" }, 'OS8S': { codeString: "VL8;HL8;VL8:8,0" }, 'OS4S': { codeString: "VL4;HL4;VL4:4,0" }, 'OS2S': { codeString: "VL2;HL2;VL2:2,0" }, 'OS8W': { codeString: "HL8;HL8:0,8;VL8:8,0" }, 'OS4W': { codeString: "HL4;HL4:0,4;VL4:4,0" }, 'OS2W': { codeString: "HL2;HL2:0,2;VL2:2,0" }, 'OS8E': { codeString: "VL8;HL8;HL8:0,8" }, 'OS4E': { codeString: "VL4;HL4;HL4:0,4" }, 'OS2E': { codeString: "VL2;HL2;HL2:0,2" }, 'R84': { codeString: "HL8;HL8:0,4;VL4;VL4:8,0" }, 'R42': { codeString: "HL4;HL4:0,2;VL2;VL2:4,0" }, 'R48': { codeString: "HL4;HL4:0,8;VL8;VL8:4,0" }, 'R24': { codeString: "HL2;HL2:0,4;VL4;VL4:2,0" }, 'OR84N': { codeString: "VL4;HL8:0,4;VL4:8,0" }, 'OR42N': { codeString: "VL2;HL4:0,2;VL2:4,0" }, 'OR84S': { codeString: "VL4;HL8;VL4:8,0" }, 'OR42S': { codeString: "VL2;HL4;VL2:4,0" }, 'OR84W': { codeString: "HL8;HL8:0,4;VL4:8,0" }, 'OR42W': { codeString: "HL4;HL4:0,2;VL2:4,0" }, 'OR84E': { codeString: "VL4;HL8;HL8:0,4" }, 'OR42E': { codeString: "VL2;HL4;HL4:0,2" }, 'OR48N': { codeString: "VL8;HL4:0,8;VL8:4,0" }, 'OR24N': { codeString: "VL4;HL2:0,4;VL4:2,0" }, 'OR48S': { codeString: "VL8;HL4;VL8:4,0" }, 'OR24S': { codeString: "VL4;HL2;VL4:2,0" }, 'OR48W': { codeString: "HL4;HL4:0,8;VL8:4,0" }, 'OR24W': { codeString: "HL2;HL2:0,4;VL4:2,0" }, 'OR48E': { codeString: "VL8;HL4;HL4:0,8" }, 'OR24E': { codeString: "VL4;HL2;HL2:0,4" }, 'LARR8W': { codeString: "P4W;HL8:0,2" }, 'ARR8W': { codeString: "P3W;HL8:0,1.5" }, 'LARR4W': { codeString: "P4W;HL4:0,2" }, 'ARR4W': { codeString: "P3W;HL3:0,1.5" }, 'LARR8E': { codeString: "HL8:0,2;P4E:6,0" }, 'ARR8E': { codeString: "HL8:0,1.5;P3E:6.5,0" }, 'LARR4E': { codeString: "HL4:0,2;P4E:2,0" }, 'ARR4E': { codeString: "HL4:0,1.5;P3E:2.5,0" }, 'LARR8N': { codeString: "P4N;VL8:2,0" }, 'ARR8N': { codeString: "P3N;VL8:1.5,0" }, 'LARR4N': { codeString: "P4N;VL4:2,0" }, 'ARR4N': { codeString: "P3N;VL4:1.5,0" }, 'LARR8S': { codeString: "P4S:0,6;VL8:2,0" }, 'ARR8S': { codeString: "P3S:0,6.5;VL8:1.5,0" }, 'LARR4S': { codeString: "P4S:0,2;VL4:2,0" }, 'ARR4S': { codeString: "P3S:0,2.5;VL4:1.5,0" }, 'LARR8NW': { codeString: "DL8S;P3NW" }, 'ARR8NW': { codeString: "DL8S;P2NW" }, 'LARR4NW': { codeString: "DL4S;P3NW" }, 'ARR4NW': { codeString: "DL4S;P2NW" }, 'LARR8NE': { codeString: "DL8N;P3NE:5,0" }, 'ARR8NE': { codeString: "DL8N;P2NE:6,0" }, 'LARR4NE': { codeString: "DL4N;P3NE:1,0" }, 'ARR4NE': { codeString: "DL4N;P2NE:2,0" }, 'LARR8SW': { codeString: "DL8N;P3SW:0,5" }, 'ARR8SW': { codeString: "DL8N;P2SW:0,6" }, 'LARR4SW': { codeString: "DL4N;P3SW:0,1" }, 'ARR4SW': { codeString: "DL4N;P2SW:0,2" }, 'LARR8SE': { codeString: "DL8S;P3SE:5,5" }, 'ARR8SE': { codeString: "DL8S;P2SE:6,6" }, 'LARR4SE': { codeString: "DL4S;P3SE:1,1" }, 'ARR4SE': { codeString: "DL4S;P2SE:2,2" }, 'P4N': { codeString: "RA4N" }, 'P3N': { codeString: "RA3N" }, 'P2N': { codeString: "RA2N" }, 'P4S': { codeString: "RA4S" }, 'P3S': { codeString: "RA3S" }, 'P2S': { codeString: "RA2S" }, 'P4W': { codeString: "RA4W" }, 'P3W': { codeString: "RA3W" }, 'P2W': { codeString: "RA2W" }, 'P4E': { codeString: "RA4E" }, 'P3E': { codeString: "RA3E" }, 'P2E': { codeString: "RA2E" }, 'P3NW': { codeString: "RA3NW" }, 'P3NE': { codeString: "RA3NE" }, 'P3SW': { codeString: "RA3SW" }, 'P3SE': { codeString: "RA3SE" }, 'P2NW': { codeString: "RA2NW" }, 'P2NE': { codeString: "RA2NE" }, 'P2SW': { codeString: "RA2SW" }, 'P2SE': { codeString: "RA2SE" }, 'P1.5NW': { codeString: "RA1.5NW" }, 'P1.5NE': { codeString: "RA1.5NE" }, 'P1.5SW': { codeString: "RA1.5SW" }, 'P1.5SE': { codeString: "RA1.5SE" }, 'LARRC8EC': { codeString: "C8;P4S:6,2" }, 'ARRC8EC': { codeString: "C8;P3S:6.5,2.5" }, 'LARRC8WC': { codeString: "P4N:0,4;C8:2,0" }, 'ARRC8WC': { codeString: "P3N:0,4;C8:1.5,0" }, 'LARRC8NC': { codeString: "C8:0,2;P4E:2,0" }, 'ARRC8NC': { codeString: "C8:0,1.5;P3E:2.5,0" }, 'LARRC8SC': { codeString: "C8;P4W:4,6" }, 'ARRC8SC': { codeString: "C8;P3W:4,6.5" }, 'LARRC8ECC': { codeString: "C8;P4N:6,4" }, 'ARRC8ECC': { codeString: "C8;P3N:6.5,4" }, 'LARRC8WCC': { codeString: "P4S:0,2;C8:2,0" }, 'ARRC8WCC': { codeString: "P3S:0,2.5;C8:1.5,0" }, 'LARRC8NCC': { codeString: "C8:0,2;P4W:4,0" }, 'ARRC8NCC': { codeString: "C8:0,1.5;P3W:4,0" }, 'LARRC8SCC': { codeString: "C8;P4E:2,6" }, 'ARRC8SCC': { codeString: "C8;P3E:2.5,6.5" }, 'LARROC8SEC': { codeString: "OC8SE;P4S:6,2" }, 'ARROC8SEC': { codeString: "OC8SE;P3S:6.5,2.5" }, 'LARROC8NWC': { codeString: "P4N:0,4;OC8NW:2,0" }, 'ARROC8NWC': { codeString: "P3N:0,4;OC8NW:1.5,0" }, 'LARROC8NEC': { codeString: "OC8NE:0,2;P4E:2,0" }, 'ARROC8NEC': { codeString: "OC8NE:0,1.5;P3E:2.5,0" }, 'LARROC8SWC': { codeString: "OC8SW;P4W:4,6" }, 'ARROC8SWC': { codeString: "OC8SW;P3W:4,6.5" }, 'LARROC8SECC': { codeString: "OC8SE;P4E:2,6" }, 'ARROC8SECC': { codeString: "OC8SE;P3E:2.5,6.5" }, 'LARROC8NWCC': { codeString: "OC8NW:0,2;P4W:4,0" }, 'ARROC8NWCC': { codeString: "OC8NW:0,1.5;P3W:4,0" }, 'LARROC8NECC': { codeString: "OC8NE;P4N:6,4" }, 'ARROC8NECC': { codeString: "OC8NE;P3N:6.5,4" }, 'LARROC8SWCC': { codeString: "P4S:0,2;OC8SW:2,0" }, 'ARROC8SWCC': { codeString: "P3S:0,2.5;OC8SW:1.5,0" }, 'LARRHC8NC': { codeString: "HC8N;P4S:6,2" }, 'ARRHC8NC': { codeString: "HC8N;P3S:6.5,2.5" }, 'LARRHC8SC': { codeString: "P4N;HC8S:2,0" }, 'ARRHC8SC': { codeString: "P3N;HC8S:1.5,0" }, 'LARRHC8WC': { codeString: "HC8W:0,2;P4E:2,0" }, 'ARRHC8WC': { codeString: "HC8W:0,1.5;P3E:2.5,0" }, 'LARRHC8EC': { codeString: "HC8E;P4W:0,6" }, 'ARRHC8EC': { codeString: "HC8E;P3W:0,6.5" }, 'LARRHC8NCC': { codeString: "P4S:0,2;HC8N:2,0" }, 'ARRHC8NCC': { codeString: "P3S:0,2.5;HC8N:1.5,0" }, 'LARRHC8SCC': { codeString: "HC8S;P4N:6,0" }, 'ARRHC8SCC': { codeString: "HC8S;P3N:6.5,0" }, 'LARRHC8WCC': { codeString: "HC8W;P4E:2,6" }, 'ARRHC8WCC': { codeString: "HC8W;P3E:2.5,6.5" }, 'LARRHC8ECC': { codeString: "P4W;HC8E:0,2" }, 'ARRHC8ECC': { codeString: "P3W;HC8E:0,1.5" }, 'LARRQC4NWC': { codeString: "QC4NW:0,2;P4E:2,0" }, 'ARRQC4NWC': { codeString: "QC4NW:0,1.5;P3E:2.5,0" }, 'LARRQC4SWC': { codeString: "P4N;QC4SW:2,0" }, 'ARRQC4SWC': { codeString: "P3N;QC4SW:1.5,0" }, 'LARRQC4NEC': { codeString: "QC4NE;P4S:2,2" }, 'ARRQC4NEC': { codeString: "QC4NE;P3S:2.5,2.5" }, 'LARRQC4SEC': { codeString: "QC4SE;P4W:0,2" }, 'ARRQC4SEC': { codeString: "QC4SE;P3W:0,2.5" }, 'LARRQC4NWCC': { codeString: "P4S:0,2;QC4NW:2,0" }, 'ARRQC4NWCC': { codeString: "P3S:0,2.5;QC4NW:1.5,0" }, 'LARRQC4SWCC': { codeString: "QC4SW;P4E:2,2" }, 'ARRQC4SWCC': { codeString: "QC4SW;P3E:2.5,2.5" }, 'LARRQC4NECC': { codeString: "P4W;QC4NE:0,2" }, 'ARRQC4NECC': { codeString: "P3W;QC4NE:0,1.5" }, 'LARRQC4SECC': { codeString: "QC4SE;P4N:2,0" }, 'ARRQC4SECC': { codeString: "QC4SE;P3N:2.5,0" } }; blissElementDefinitions['DOT'].extraPathOptions = { baseStrokeWidth: 0.5, extraDotWidth: 0.333 }; blissElementDefinitions['SDOT'].extraPathOptions = { baseStrokeWidth: 0.5, extraDotWidth: 0 }; blissElementDefinitions['COMMA'].extraPathOptions = { baseStrokeWidth: 0.5, extraDotWidth: 0.333 }; // Add all external glyphs. const characters = 'abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ'; for (let i = 0; i < characters.length; i++) { const x = characters[i]; blissElementDefinitions[`X${x}`] = sc.createExternalGlyph(x); } // Indicate that all elements defined in the blissElementDefinitions object are atomic for (const definition of Object.values(blissElementDefinitions)) { definition.isAtomic = true; } //character definitions Object.assign(blissElementDefinitions, charData); export { blissElementDefinitions };