{"version":3,"sources":["webpack:///./node_modules/lib-font/src/opentype/tables/advanced/shared/coverage.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/shared/script.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/shared/feature.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gsub/gsub-lookup.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gsub/lookup-type-1.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gsub/lookup-type-2.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gsub/lookup-type-3.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gsub/lookup-type-4.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gsub/lookup-type-5.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gsub/lookup-type-6.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gsub/lookup-type-7.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gsub/lookup-type-8.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/shared/subtables/gsub.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gpos/gpos-lookup.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gpos/lookup-type-1.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gpos/lookup-type-2.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gpos/lookup-type-3.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gpos/lookup-type-4.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gpos/lookup-type-5.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gpos/lookup-type-6.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gpos/lookup-type-7.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gpos/lookup-type-8.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/lookups/gpos/lookup-type-9.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/shared/subtables/gpos.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/shared/lookup.js","webpack:///./node_modules/lib-font/src/opentype/tables/common-layout-table.js","webpack:///./node_modules/lib-font/src/opentype/tables/advanced/GPOS.js"],"names":["CoverageTable","constructor","p","super","this","coverageFormat","uint16","glyphCount","glyphArray","Array","map","_","rangeCount","rangeRecords","CoverageRangeRecord","startGlyphID","endGlyphID","startCoverageIndex","scriptCount","scriptRecords","ScriptRecord","EMPTY","scriptTag","tag","scriptOffset","Offset16","defaultLangSys","langSysCount","langSysRecords","LangSysRecord","langSysTag","langSysOffset","LangSysTable","lookupOrder","requiredFeatureIndex","featureIndexCount","featureIndices","featureCount","featureRecords","FeatureRecord","featureTag","featureOffset","featureParams","lookupIndexCount","lookupListIndices","getFeatureParams","parser","currentPosition","start","Size","startsWith","CharacterVariant","StylisticSet","format","featUiLabelNameId","featUiTooltipTextNameId","sampleTextNameId","numNamedParameters","firstParamUiLabelNameId","charCount","character","uint24","designSize","subfamilyIdentifier","subfamilyNameID","smallEnd","largeEnd","version","UINameID","undoCoverageOffsetParsing","instance","coverageOffset","getCoverageTable","substFormat","SubstLookupRecord","glyphSequenceIndex","lookupListIndex","deltaGlyphID","int16","sequenceCount","sequenceOffsets","getSequence","index","SequenceTable","substituteGlyphIDs","alternateSetCount","alternateSetOffsets","getAlternateSet","AlternateSetTable","alternateGlyphIDs","ligatureSetCount","ligatureSetOffsets","getLigatureSet","ligatureCount","ligatureOffsets","getLigature","LigatureTable","ligatureGlyph","componentCount","componentGlyphIDs","subRuleSetCount","subRuleSetOffsets","classDefOffset","subClassSetCount","subClassSetOffsets","substitutionCount","coverageOffsets","substLookupRecords","getSubRuleSet","Error","getSubClassSet","subRuleCount","subRuleOffsets","getSubRule","inputSequence","subClassRuleCount","subClassRuleOffsets","getSubClass","SubClassRuleTable","chainSubRuleSetCount","chainSubRuleSetOffsets","backtrackClassDefOffset","inputClassDefOffset","lookaheadClassDefOffset","chainSubClassSetCount","chainSubClassSetOffsets","backtrackGlyphCount","backtrackCoverageOffsets","inputGlyphCount","inputCoverageOffsets","lookaheadGlyphCount","lookaheadCoverageOffsets","seqLookupCount","seqLookupRecords","getChainSubRuleSet","getChainSubClassSet","getCoverageFromOffset","offset","chainSubRuleCount","chainSubRuleOffsets","backtrackSequence","lookAheadSequence","lookAheadGlyphCount","SubstCount","chainSubClassRuleCount","chainSubClassRuleOffsets","ChainSubClassRuleTable","sequenceIndex","extensionLookupType","extensionOffset","Offset32","buildSubtable","type","subtable","undefined","console","log","lookupCount","lookups","ctType","lookupType","lookupFlag","subTableCount","subtableOffsets","markFilteringSet","rightToLeft","ignoreBaseGlyphs","ignoreLigatures","ignoreMarks","useMarkFilteringSet","markAttachmentType","getSubTable","builder","dict","dataview","name","_super","tableStart","majorVersion","minorVersion","scriptListOffset","featureListOffset","lookupListOffset","featureVariationsOffset","no_content","lazy","FeatureVariations","getSupportedScripts","scriptList","r","getScriptTable","record","find","table","ensureScriptTable","arg","getSupportedLangSys","scriptTable","hasDefault","supported","l","unshift","getDefaultLangSysTable","defaultForScript","getLangSysTable","arguments","length","getFeatures","langSysTable","getFeature","indexOrTag","parseInt","featureList","f","getLookups","featureTable","getLookup","lookupIndex","lookupOffset","lookupList","GPOS"],"mappings":"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","file":"js/4-96af2073942bbf677252.chunk.js","sourcesContent":["import { ParsedData } from \"../../../../parser.js\";\nclass CoverageTable extends ParsedData {\n constructor(p) {\n super(p);\n this.coverageFormat = p.uint16;\n if (this.coverageFormat === 1) {\n this.glyphCount = p.uint16;\n this.glyphArray = [...new Array(this.glyphCount)].map(_ => p.uint16);\n }\n if (this.coverageFormat === 2) {\n this.rangeCount = p.uint16;\n this.rangeRecords = [...new Array(this.rangeCount)].map(_ => new CoverageRangeRecord(p));\n }\n }\n}\nclass CoverageRangeRecord {\n constructor(p) {\n this.startGlyphID = p.uint16;\n this.endGlyphID = p.uint16;\n this.startCoverageIndex = p.uint16;\n }\n}\nexport { CoverageTable };","import { ParsedData } from \"../../../../parser.js\";\n\n/**\n * ...\n */\nclass ScriptList extends ParsedData {\n constructor(p) {\n super(p);\n this.scriptCount = p.uint16;\n this.scriptRecords = [...new Array(this.scriptCount)].map(_ => new ScriptRecord(p));\n }\n}\n\n/**\n * ...\n */\nScriptList.EMPTY = {\n scriptCount: 0,\n scriptRecords: []\n};\nclass ScriptRecord {\n constructor(p) {\n this.scriptTag = p.tag;\n this.scriptOffset = p.Offset16; // Offset to Script table, from beginning of ScriptList\n }\n}\n\n/**\n * ...\n */\nclass ScriptTable extends ParsedData {\n constructor(p) {\n super(p);\n this.defaultLangSys = p.Offset16; // Offset to default LangSys table, from beginning of Script table — may be NULL\n this.langSysCount = p.uint16;\n this.langSysRecords = [...new Array(this.langSysCount)].map(_ => new LangSysRecord(p));\n }\n}\n\n/**\n * ...\n */\nclass LangSysRecord {\n constructor(p) {\n this.langSysTag = p.tag;\n this.langSysOffset = p.Offset16; // Offset to LangSys table, from beginning of Script table\n }\n}\n\n/**\n * ...\n */\nclass LangSysTable {\n constructor(p) {\n this.lookupOrder = p.Offset16;\n this.requiredFeatureIndex = p.uint16;\n this.featureIndexCount = p.uint16;\n this.featureIndices = [...new Array(this.featureIndexCount)].map(_ => p.uint16);\n }\n}\nexport { ScriptList, ScriptTable, LangSysTable };","import { ParsedData } from \"../../../../parser.js\";\nclass FeatureList extends ParsedData {\n constructor(p) {\n super(p);\n this.featureCount = p.uint16;\n this.featureRecords = [...new Array(this.featureCount)].map(_ => new FeatureRecord(p));\n }\n}\nFeatureList.EMPTY = {\n featureCount: 0,\n featureRecords: []\n};\nclass FeatureRecord {\n constructor(p) {\n this.featureTag = p.tag;\n this.featureOffset = p.Offset16; // Offset to Feature table, from beginning of FeatureList\n }\n}\n\nclass FeatureTable extends ParsedData {\n constructor(p) {\n super(p);\n this.featureParams = p.Offset16;\n this.lookupIndexCount = p.uint16;\n this.lookupListIndices = [...new Array(this.lookupIndexCount)].map(_ => p.uint16);\n // this.featureTag is imparted by the parser\n }\n\n // In order to parse the feature parameters, if there are any, we need to know which\n // feature this is, which is determined by the FeatureRecord.featureTag string.\n getFeatureParams() {\n if (this.featureParams > 0) {\n const p = this.parser;\n p.currentPosition = this.start + this.featureParams;\n const tag = this.featureTag;\n if (tag === `size`) return new Size(p);\n if (tag.startsWith(`cc`)) return new CharacterVariant(p);\n if (tag.startsWith(`ss`)) return new StylisticSet(p);\n }\n }\n}\nclass CharacterVariant {\n // See https://docs.microsoft.com/en-us/typography/opentype/spec/features_ae#tag-cv01--cv99\n constructor(p) {\n this.format = p.uint16;\n this.featUiLabelNameId = p.uint16;\n this.featUiTooltipTextNameId = p.uint16;\n this.sampleTextNameId = p.uint16;\n this.numNamedParameters = p.uint16;\n this.firstParamUiLabelNameId = p.uint16;\n this.charCount = p.uint16;\n this.character = [...new Array(this.charCount)].map(_ => p.uint24);\n }\n}\nclass Size {\n // See https://docs.microsoft.com/en-us/typography/opentype/spec/features_pt#-tag-size\n constructor(p) {\n this.designSize = p.uint16;\n this.subfamilyIdentifier = p.uint16;\n this.subfamilyNameID = p.uint16;\n this.smallEnd = p.uint16;\n this.largeEnd = p.uint16;\n }\n}\nclass StylisticSet {\n // See https://docs.microsoft.com/en-us/typography/opentype/spec/features_pt#-tag-ss01---ss20\n constructor(p) {\n this.version = p.uint16;\n this.UINameID = p.uint16;\n }\n}\nexport { FeatureList, FeatureTable };","import { ParsedData } from \"../../../../../parser.js\";\nimport { CoverageTable } from \"../../shared/coverage.js\";\nfunction undoCoverageOffsetParsing(instance) {\n instance.parser.currentPosition -= 2;\n delete instance.coverageOffset;\n delete instance.getCoverageTable;\n}\nclass LookupType extends ParsedData {\n constructor(p) {\n super(p);\n this.substFormat = p.uint16;\n this.coverageOffset = p.Offset16;\n }\n getCoverageTable() {\n let p = this.parser;\n p.currentPosition = this.start + this.coverageOffset;\n return new CoverageTable(p);\n }\n}\n\n// used by types 5 and 6\nclass SubstLookupRecord {\n constructor(p) {\n this.glyphSequenceIndex = p.uint16; // Index into current glyph sequence — first glyph = 0.\n this.lookupListIndex = p.uint16; // Lookup to apply to that position — zero-based index.\n }\n}\n\nexport { undoCoverageOffsetParsing, LookupType, SubstLookupRecord };","import { LookupType } from \"./gsub-lookup.js\";\nclass LookupType1 extends LookupType {\n constructor(p) {\n super(p);\n this.deltaGlyphID = p.int16;\n }\n}\nexport { LookupType1 };","import { LookupType } from \"./gsub-lookup.js\";\nclass LookupType2 extends LookupType {\n constructor(p) {\n super(p);\n this.sequenceCount = p.uint16;\n this.sequenceOffsets = [...new Array(this.sequenceCount)].map(_ => p.Offset16);\n }\n getSequence(index) {\n let p = this.parser;\n p.currentPosition = this.start + this.sequenceOffsets[index];\n return new SequenceTable(p);\n }\n}\nclass SequenceTable {\n constructor(p) {\n this.glyphCount = p.uint16;\n this.substituteGlyphIDs = [...new Array(this.glyphCount)].map(_ => p.uint16);\n }\n}\nexport { LookupType2 };","import { LookupType } from \"./gsub-lookup.js\";\nclass LookupType3 extends LookupType {\n constructor(p) {\n super(p);\n this.alternateSetCount = p.uint16;\n this.alternateSetOffsets = [...new Array(this.alternateSetCount)].map(_ => p.Offset16);\n }\n getAlternateSet(index) {\n let p = this.parser;\n p.currentPosition = this.start + this.alternateSetOffsets[index];\n return new AlternateSetTable(p);\n }\n}\nclass AlternateSetTable {\n constructor(p) {\n this.glyphCount = p.uint16;\n this.alternateGlyphIDs = [...new Array(this.glyphCount)].map(_ => p.uint16);\n }\n}\nexport { LookupType3 };","import { ParsedData } from \"../../../../../parser.js\";\nimport { LookupType } from \"./gsub-lookup.js\";\nclass LookupType4 extends LookupType {\n constructor(p) {\n super(p);\n this.ligatureSetCount = p.uint16;\n this.ligatureSetOffsets = [...new Array(this.ligatureSetCount)].map(_ => p.Offset16); // from beginning of subtable\n }\n\n getLigatureSet(index) {\n let p = this.parser;\n p.currentPosition = this.start + this.ligatureSetOffsets[index];\n return new LigatureSetTable(p);\n }\n}\nclass LigatureSetTable extends ParsedData {\n constructor(p) {\n super(p);\n this.ligatureCount = p.uint16;\n this.ligatureOffsets = [...new Array(this.ligatureCount)].map(_ => p.Offset16); // from beginning of LigatureSetTable\n }\n\n getLigature(index) {\n let p = this.parser;\n p.currentPosition = this.start + this.ligatureOffsets[index];\n return new LigatureTable(p);\n }\n}\nclass LigatureTable {\n constructor(p) {\n this.ligatureGlyph = p.uint16;\n this.componentCount = p.uint16;\n this.componentGlyphIDs = [...new Array(this.componentCount - 1)].map(_ => p.uint16);\n }\n}\nexport { LookupType4 };","import { ParsedData } from \"../../../../../parser.js\";\nimport { LookupType, undoCoverageOffsetParsing, SubstLookupRecord } from \"./gsub-lookup.js\";\nimport { CoverageTable } from \"../../shared/coverage.js\";\nclass LookupType5 extends LookupType {\n constructor(p) {\n super(p);\n\n // There are three possible subtable formats\n\n if (this.substFormat === 1) {\n this.subRuleSetCount = p.uint16;\n this.subRuleSetOffsets = [...new Array(this.subRuleSetCount)].map(_ => p.Offset16);\n }\n if (this.substFormat === 2) {\n this.classDefOffset = p.Offset16;\n this.subClassSetCount = p.uint16;\n this.subClassSetOffsets = [...new Array(this.subClassSetCount)].map(_ => p.Offset16);\n }\n if (this.substFormat === 3) {\n // undo the coverageOffset parsing, because this format uses an\n // entire *array* of coverage offsets instead, like 6.3\n undoCoverageOffsetParsing(this);\n this.glyphCount = p.uint16;\n this.substitutionCount = p.uint16;\n this.coverageOffsets = [...new Array(this.glyphCount)].map(_ => p.Offset16);\n this.substLookupRecords = [...new Array(this.substitutionCount)].map(_ => new SubstLookupRecord(p));\n }\n }\n getSubRuleSet(index) {\n if (this.substFormat !== 1) throw new Error(`lookup type 5.${this.substFormat} has no subrule sets.`);\n let p = this.parser;\n p.currentPosition = this.start + this.subRuleSetOffsets[index];\n return new SubRuleSetTable(p);\n }\n getSubClassSet(index) {\n if (this.substFormat !== 2) throw new Error(`lookup type 5.${this.substFormat} has no subclass sets.`);\n let p = this.parser;\n p.currentPosition = this.start + this.subClassSetOffsets[index];\n return new SubClassSetTable(p);\n }\n getCoverageTable(index) {\n if (this.substFormat !== 3 && !index) return super.getCoverageTable();\n if (!index) throw new Error(`lookup type 5.${this.substFormat} requires an coverage table index.`);\n let p = this.parser;\n p.currentPosition = this.start + this.coverageOffsets[index];\n return new CoverageTable(p);\n }\n}\n\n// 5.1\n\nclass SubRuleSetTable extends ParsedData {\n constructor(p) {\n super(p);\n this.subRuleCount = p.uint16;\n this.subRuleOffsets = [...new Array(this.subRuleCount)].map(_ => p.Offset16);\n }\n getSubRule(index) {\n let p = this.parser;\n p.currentPosition = this.start + this.subRuleOffsets[index];\n return new SubRuleTable(p);\n }\n}\nclass SubRuleTable {\n constructor(p) {\n this.glyphCount = p.uint16;\n this.substitutionCount = p.uint16;\n this.inputSequence = [...new Array(this.glyphCount - 1)].map(_ => p.uint16);\n this.substLookupRecords = [...new Array(this.substitutionCount)].map(_ => new SubstLookupRecord(p));\n }\n}\n\n// 5.2\n\nclass SubClassSetTable extends ParsedData {\n constructor(p) {\n super(p);\n this.subClassRuleCount = p.uint16;\n this.subClassRuleOffsets = [...new Array(this.subClassRuleCount)].map(_ => p.Offset16);\n }\n getSubClass(index) {\n let p = this.parser;\n p.currentPosition = this.start + this.subClassRuleOffsets[index];\n return new SubClassRuleTable(p);\n }\n}\nclass SubClassRuleTable extends SubRuleTable {\n constructor(p) {\n super(p);\n }\n}\nexport { LookupType5 };","import { ParsedData } from \"../../../../../parser.js\";\nimport { LookupType, undoCoverageOffsetParsing, SubstLookupRecord } from \"./gsub-lookup.js\";\nimport { CoverageTable } from \"../../shared/coverage.js\";\nclass LookupType6 extends LookupType {\n constructor(p) {\n super(p);\n\n // There are three possible subtable formats\n\n if (this.substFormat === 1) {\n this.chainSubRuleSetCount = p.uint16;\n this.chainSubRuleSetOffsets = [...new Array(this.chainSubRuleSetCount)].map(_ => p.Offset16);\n }\n if (this.substFormat === 2) {\n this.backtrackClassDefOffset = p.Offset16;\n this.inputClassDefOffset = p.Offset16;\n this.lookaheadClassDefOffset = p.Offset16;\n this.chainSubClassSetCount = p.uint16;\n this.chainSubClassSetOffsets = [...new Array(this.chainSubClassSetCount)].map(_ => p.Offset16);\n }\n if (this.substFormat === 3) {\n // undo the coverageOffset parsing, because this format uses an\n // entire *array* of coverage offsets instead, like 5.3\n undoCoverageOffsetParsing(this);\n this.backtrackGlyphCount = p.uint16;\n this.backtrackCoverageOffsets = [...new Array(this.backtrackGlyphCount)].map(_ => p.Offset16);\n this.inputGlyphCount = p.uint16;\n this.inputCoverageOffsets = [...new Array(this.inputGlyphCount)].map(_ => p.Offset16);\n this.lookaheadGlyphCount = p.uint16;\n this.lookaheadCoverageOffsets = [...new Array(this.lookaheadGlyphCount)].map(_ => p.Offset16);\n this.seqLookupCount = p.uint16;\n this.seqLookupRecords = [...new Array(this.substitutionCount)].map(_ => new SequenceLookupRecord(p));\n }\n }\n getChainSubRuleSet(index) {\n if (this.substFormat !== 1) throw new Error(`lookup type 6.${this.substFormat} has no chainsubrule sets.`);\n let p = this.parser;\n p.currentPosition = this.start + this.chainSubRuleSetOffsets[index];\n return new ChainSubRuleSetTable(p);\n }\n getChainSubClassSet(index) {\n if (this.substFormat !== 2) throw new Error(`lookup type 6.${this.substFormat} has no chainsubclass sets.`);\n let p = this.parser;\n p.currentPosition = this.start + this.chainSubClassSetOffsets[index];\n return new ChainSubClassSetTable(p);\n }\n getCoverageFromOffset(offset) {\n if (this.substFormat !== 3) throw new Error(`lookup type 6.${this.substFormat} does not use contextual coverage offsets.`);\n let p = this.parser;\n p.currentPosition = this.start + offset;\n return new CoverageTable(p);\n }\n}\n\n// 6.1\n\nclass ChainSubRuleSetTable extends ParsedData {\n constructor(p) {\n super(p);\n this.chainSubRuleCount = p.uint16;\n this.chainSubRuleOffsets = [...new Array(this.chainSubRuleCount)].map(_ => p.Offset16);\n }\n getSubRule(index) {\n let p = this.parser;\n p.currentPosition = this.start + this.chainSubRuleOffsets[index];\n return new ChainSubRuleTable(p);\n }\n}\nclass ChainSubRuleTable {\n constructor(p) {\n this.backtrackGlyphCount = p.uint16;\n this.backtrackSequence = [...new Array(this.backtrackGlyphCount)].map(_ => p.uint16);\n this.inputGlyphCount = p.uint16;\n this.inputSequence = [...new Array(this.inputGlyphCount - 1)].map(_ => p.uint16);\n this.lookaheadGlyphCount = p.uint16;\n this.lookAheadSequence = [...new Array(this.lookAheadGlyphCount)].map(_ => p.uint16);\n this.substitutionCount = p.uint16;\n this.substLookupRecords = [...new Array(this.SubstCount)].map(_ => new SubstLookupRecord(p));\n }\n}\n\n// 6.2\n\nclass ChainSubClassSetTable extends ParsedData {\n constructor(p) {\n super(p);\n this.chainSubClassRuleCount = p.uint16;\n this.chainSubClassRuleOffsets = [...new Array(this.chainSubClassRuleCount)].map(_ => p.Offset16);\n }\n getSubClass(index) {\n let p = this.parser;\n p.currentPosition = this.start + this.chainSubRuleOffsets[index];\n return new ChainSubClassRuleTable(p);\n }\n}\nclass ChainSubClassRuleTable {\n constructor(p) {\n this.backtrackGlyphCount = p.uint16;\n this.backtrackSequence = [...new Array(this.backtrackGlyphCount)].map(_ => p.uint16);\n this.inputGlyphCount = p.uint16;\n this.inputSequence = [...new Array(this.inputGlyphCount - 1)].map(_ => p.uint16);\n this.lookaheadGlyphCount = p.uint16;\n this.lookAheadSequence = [...new Array(this.lookAheadGlyphCount)].map(_ => p.uint16);\n this.substitutionCount = p.uint16;\n this.substLookupRecords = [...new Array(this.substitutionCount)].map(_ => new SequenceLookupRecord(p));\n }\n}\n\n// 6.3\n\nclass SequenceLookupRecord extends ParsedData {\n constructor(p) {\n super(p);\n this.sequenceIndex = p.uint16;\n this.lookupListIndex = p.uint16;\n }\n}\nexport { LookupType6 };","import { ParsedData } from \"../../../../../parser.js\";\nclass LookupType7 extends ParsedData {\n // note: not \"extends LookupType\"\n constructor(p) {\n super(p);\n this.substFormat = p.uint16;\n this.extensionLookupType = p.uint16;\n this.extensionOffset = p.Offset32;\n }\n}\nexport { LookupType7 };","import { LookupType } from \"./gsub-lookup.js\";\nclass LookupType8 extends LookupType {\n constructor(p) {\n super(p);\n this.backtrackGlyphCount = p.uint16;\n this.backtrackCoverageOffsets = [...new Array(this.backtrackGlyphCount)].map(_ => p.Offset16);\n this.lookaheadGlyphCount = p.uint16;\n this.lookaheadCoverageOffsets = [new Array(this.lookaheadGlyphCount)].map(_ => p.Offset16);\n this.glyphCount = p.uint16;\n this.substituteGlyphIDs = [...new Array(this.glyphCount)].map(_ => p.uint16);\n }\n}\nexport { LookupType8 };","import { LookupType1 } from \"../../lookups/gsub/lookup-type-1.js\";\nimport { LookupType2 } from \"../../lookups/gsub/lookup-type-2.js\";\nimport { LookupType3 } from \"../../lookups/gsub/lookup-type-3.js\";\nimport { LookupType4 } from \"../../lookups/gsub/lookup-type-4.js\";\nimport { LookupType5 } from \"../../lookups/gsub/lookup-type-5.js\";\nimport { LookupType6 } from \"../../lookups/gsub/lookup-type-6.js\";\nimport { LookupType7 } from \"../../lookups/gsub/lookup-type-7.js\";\nimport { LookupType8 } from \"../../lookups/gsub/lookup-type-8.js\";\nexport default {\n buildSubtable: function (type, p) {\n const subtable = new [undefined, LookupType1, LookupType2, LookupType3, LookupType4, LookupType5, LookupType6, LookupType7, LookupType8][type](p);\n subtable.type = type;\n return subtable;\n }\n};","import { ParsedData } from \"../../../../../parser.js\";\n\n// Dummy placeholder\nclass LookupType extends ParsedData {\n constructor(p) {\n super(p);\n }\n}\nexport { LookupType };","import { LookupType } from \"./gpos-lookup.js\";\nclass LookupType1 extends LookupType {\n constructor(p) {\n super(p);\n console.log(`lookup type 1`);\n }\n}\nexport { LookupType1 };","import { LookupType } from \"./gpos-lookup.js\";\nclass LookupType2 extends LookupType {\n constructor(p) {\n super(p);\n console.log(`lookup type 2`);\n }\n}\nexport { LookupType2 };","import { LookupType } from \"./gpos-lookup.js\";\nclass LookupType3 extends LookupType {\n constructor(p) {\n super(p);\n console.log(`lookup type 3`);\n }\n}\nexport { LookupType3 };","import { LookupType } from \"./gpos-lookup.js\";\nclass LookupType4 extends LookupType {\n constructor(p) {\n super(p);\n console.log(`lookup type 4`);\n }\n}\nexport { LookupType4 };","import { LookupType } from \"./gpos-lookup.js\";\nclass LookupType5 extends LookupType {\n constructor(p) {\n super(p);\n console.log(`lookup type 5`);\n }\n}\nexport { LookupType5 };","import { LookupType } from \"./gpos-lookup.js\";\nclass LookupType6 extends LookupType {\n constructor(p) {\n super(p);\n console.log(`lookup type 6`);\n }\n}\nexport { LookupType6 };","import { LookupType } from \"./gpos-lookup.js\";\nclass LookupType7 extends LookupType {\n constructor(p) {\n super(p);\n console.log(`lookup type 7`);\n }\n}\nexport { LookupType7 };","import { LookupType } from \"./gpos-lookup.js\";\nclass LookupType8 extends LookupType {\n constructor(p) {\n super(p);\n console.log(`lookup type 8`);\n }\n}\nexport { LookupType8 };","import { LookupType } from \"./gpos-lookup.js\";\nclass LookupType9 extends LookupType {\n constructor(p) {\n super(p);\n console.log(`lookup type 9`);\n }\n}\nexport { LookupType9 };","import { LookupType1 } from \"../../lookups/gpos/lookup-type-1.js\";\nimport { LookupType2 } from \"../../lookups/gpos/lookup-type-2.js\";\nimport { LookupType3 } from \"../../lookups/gpos/lookup-type-3.js\";\nimport { LookupType4 } from \"../../lookups/gpos/lookup-type-4.js\";\nimport { LookupType5 } from \"../../lookups/gpos/lookup-type-5.js\";\nimport { LookupType6 } from \"../../lookups/gpos/lookup-type-6.js\";\nimport { LookupType7 } from \"../../lookups/gpos/lookup-type-7.js\";\nimport { LookupType8 } from \"../../lookups/gpos/lookup-type-8.js\";\nimport { LookupType9 } from \"../../lookups/gpos/lookup-type-9.js\";\nexport default {\n buildSubtable: function (type, p) {\n const subtable = new [undefined, LookupType1, LookupType2, LookupType3, LookupType4, LookupType5, LookupType6, LookupType7, LookupType8, LookupType9][type](p);\n subtable.type = type;\n return subtable;\n }\n};","import { ParsedData } from \"../../../../parser.js\";\nimport GSUBtables from \"./subtables/gsub.js\";\nimport GPOStables from \"./subtables/gpos.js\";\nclass LookupList extends ParsedData {\n constructor(p) {\n super(p);\n this.lookupCount = p.uint16;\n this.lookups = [...new Array(this.lookupCount)].map(_ => p.Offset16); // Array of offsets to Lookup tables, from beginning of LookupList\n }\n}\nLookupList.EMPTY = {\n lookupCount: 0,\n lookups: []\n};\nclass LookupTable extends ParsedData {\n constructor(p, type) {\n super(p);\n this.ctType = type;\n this.lookupType = p.uint16;\n this.lookupFlag = p.uint16;\n this.subTableCount = p.uint16;\n this.subtableOffsets = [...new Array(this.subTableCount)].map(_ => p.Offset16); // Array of offsets to lookup subtables, from beginning of Lookup table\n this.markFilteringSet = p.uint16;\n }\n get rightToLeft() {\n return this.lookupFlag & 0x0001 === 0x0001;\n }\n get ignoreBaseGlyphs() {\n return this.lookupFlag & 0x0002 === 0x0002;\n }\n get ignoreLigatures() {\n return this.lookupFlag & 0x0004 === 0x0004;\n }\n get ignoreMarks() {\n return this.lookupFlag & 0x0008 === 0x0008;\n }\n get useMarkFilteringSet() {\n return this.lookupFlag & 0x0010 === 0x0010;\n }\n get markAttachmentType() {\n return this.lookupFlag & 0xff00 === 0xff00;\n }\n\n // FIXME: make this a lazy .subtables array instead?\n getSubTable(index) {\n const builder = this.ctType === `GSUB` ? GSUBtables : GPOStables;\n this.parser.currentPosition = this.start + this.subtableOffsets[index];\n return builder.buildSubtable(this.lookupType, this.parser);\n }\n}\nexport { LookupList, LookupTable };","import { SimpleTable } from \"./simple-table.js\";\nimport { ScriptList, ScriptTable, LangSysTable } from \"./advanced/shared/script.js\";\nimport { FeatureList, FeatureTable } from \"./advanced/shared/feature.js\";\nimport { LookupList, LookupTable } from \"./advanced/shared/lookup.js\";\nimport lazy from \"../../lazy.js\";\n\n/**\n * The table layout used by both GSUB and GPOS\n *\n * See https://docs.microsoft.com/en-us/typography/opentype/spec/GSUB\n * See https://docs.microsoft.com/en-us/typography/opentype/spec/GPOS\n */\nclass CommonLayoutTable extends SimpleTable {\n constructor(dict, dataview, name) {\n const _super = super(dict, dataview, name),\n p = _super.p,\n tableStart = _super.tableStart;\n this.majorVersion = p.uint16;\n this.minorVersion = p.uint16;\n this.scriptListOffset = p.Offset16;\n this.featureListOffset = p.Offset16;\n this.lookupListOffset = p.Offset16;\n if (this.majorVersion === 1 && this.minorVersion === 1) {\n this.featureVariationsOffset = p.Offset32;\n }\n const no_content = !(this.scriptListOffset || this.featureListOffset || this.lookupListOffset);\n lazy(this, `scriptList`, () => {\n if (no_content) return ScriptList.EMPTY;\n p.currentPosition = tableStart + this.scriptListOffset;\n return new ScriptList(p);\n });\n lazy(this, `featureList`, () => {\n if (no_content) return FeatureList.EMPTY;\n p.currentPosition = tableStart + this.featureListOffset;\n return new FeatureList(p);\n });\n lazy(this, `lookupList`, () => {\n if (no_content) return LookupList.EMPTY;\n p.currentPosition = tableStart + this.lookupListOffset;\n return new LookupList(p);\n });\n\n // FIXME: This class doesn't actually exist anywhere in the code...\n\n if (this.featureVariationsOffset) {\n lazy(this, `featureVariations`, () => {\n if (no_content) return FeatureVariations.EMPTY;\n p.currentPosition = tableStart + this.featureVariationsOffset;\n return new FeatureVariations(p);\n });\n }\n }\n\n // Script functions\n\n getSupportedScripts() {\n return this.scriptList.scriptRecords.map(r => r.scriptTag);\n }\n getScriptTable(scriptTag) {\n let record = this.scriptList.scriptRecords.find(r => r.scriptTag === scriptTag);\n this.parser.currentPosition = this.scriptList.start + record.scriptOffset;\n let table = new ScriptTable(this.parser);\n table.scriptTag = scriptTag;\n return table;\n }\n\n // LangSys functions\n\n ensureScriptTable(arg) {\n if (typeof arg === \"string\") {\n return this.getScriptTable(arg);\n }\n return arg;\n }\n getSupportedLangSys(scriptTable) {\n scriptTable = this.ensureScriptTable(scriptTable);\n const hasDefault = scriptTable.defaultLangSys !== 0;\n const supported = scriptTable.langSysRecords.map(l => l.langSysTag);\n if (hasDefault) supported.unshift(`dflt`);\n return supported;\n }\n getDefaultLangSysTable(scriptTable) {\n scriptTable = this.ensureScriptTable(scriptTable);\n let offset = scriptTable.defaultLangSys;\n if (offset !== 0) {\n this.parser.currentPosition = scriptTable.start + offset;\n let table = new LangSysTable(this.parser);\n table.langSysTag = ``;\n table.defaultForScript = scriptTable.scriptTag;\n return table;\n }\n }\n getLangSysTable(scriptTable) {\n let langSysTag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : `dflt`;\n if (langSysTag === `dflt`) return this.getDefaultLangSysTable(scriptTable);\n scriptTable = this.ensureScriptTable(scriptTable);\n let record = scriptTable.langSysRecords.find(l => l.langSysTag === langSysTag);\n this.parser.currentPosition = scriptTable.start + record.langSysOffset;\n let table = new LangSysTable(this.parser);\n table.langSysTag = langSysTag;\n return table;\n }\n\n // Feature functions\n\n getFeatures(langSysTable) {\n return langSysTable.featureIndices.map(index => this.getFeature(index));\n }\n getFeature(indexOrTag) {\n let record;\n if (parseInt(indexOrTag) == indexOrTag) {\n record = this.featureList.featureRecords[indexOrTag];\n } else {\n record = this.featureList.featureRecords.find(f => f.featureTag === indexOrTag);\n }\n if (!record) return;\n this.parser.currentPosition = this.featureList.start + record.featureOffset;\n let table = new FeatureTable(this.parser);\n table.featureTag = record.featureTag;\n return table;\n }\n\n // Lookup functions\n\n getLookups(featureTable) {\n return featureTable.lookupListIndices.map(index => this.getLookup(index));\n }\n getLookup(lookupIndex, type) {\n let lookupOffset = this.lookupList.lookups[lookupIndex];\n this.parser.currentPosition = this.lookupList.start + lookupOffset;\n return new LookupTable(this.parser, type);\n }\n}\nexport { CommonLayoutTable };","import { CommonLayoutTable } from \"../common-layout-table.js\";\nclass GPOS extends CommonLayoutTable {\n constructor(dict, dataview) {\n super(dict, dataview, `GPOS`);\n }\n getLookup(lookupIndex) {\n return super.getLookup(lookupIndex, `GPOS`);\n }\n}\nexport { GPOS };"],"sourceRoot":""}