{"version":3,"sources":["webpack:///./node_modules/lib-font/src/opentype/tables/simple/other/kern.js"],"names":["kern","constructor","dict","dataview","p","super","this","version","uint16","nTables","offset","tableStart","tables","i","currentPosition","subtable","KernSubTable","push","length","coverage","flags","format","uint8","nPairs","searchRange","entrySelector","rangeShift","Array","map","_","Pair","console","warn","horizontal","minimum","crossstream","override","left","right","value","fword"],"mappings":"2FAAA,8DAUA,MAAMA,UAAa,IACjBC,YAAYC,EAAMC,GAChB,MACEC,EADaC,MAAMH,EAAMC,GACdC,EACbE,KAAKC,QAAUH,EAAEI,OACjBF,KAAKG,QAAUL,EAAEI,OAGjB,YAAKF,KAAM,UAAU,KACnB,IAAII,EAASJ,KAAKK,WAAa,EAC/B,MAAMC,EAAS,GACf,IAAK,IAAIC,EAAI,EAAGA,EAAIP,KAAKG,QAASI,IAAK,CACrCT,EAAEU,gBAAkBJ,EACpB,IAAIK,EAAW,IAAIC,EAAaZ,GAChCQ,EAAOK,KAAKF,GACZL,GAAUK,CACZ,CACA,OAAOH,CAAM,GAEjB,EAEF,MAAMI,EACJf,YAAYG,GACVE,KAAKC,QAAUH,EAAEI,OACjBF,KAAKY,OAASd,EAAEI,OAQhBF,KAAKa,SAAWf,EAAEgB,MAAM,GACxBd,KAAKe,OAASjB,EAAEkB,MACI,IAAhBhB,KAAKe,SACPf,KAAKiB,OAASnB,EAAEI,OAChBF,KAAKkB,YAAcpB,EAAEI,OACrBF,KAAKmB,cAAgBrB,EAAEI,OACvBF,KAAKoB,WAAatB,EAAEI,OACpB,YAAKF,KAAM,SAAS,IAAM,IAAI,IAAIqB,MAAMrB,KAAKiB,SAASK,KAAIC,GAAK,IAAIC,EAAK1B,QAEtD,IAAhBE,KAAKe,QAEPU,QAAQC,KAAK,mGAEjB,CACIC,iBACF,OAAO3B,KAAKa,SAAS,EACvB,CACIe,cACF,OAAO5B,KAAKa,SAAS,EACvB,CACIgB,kBACF,OAAO7B,KAAKa,SAAS,EACvB,CACIiB,eACF,OAAO9B,KAAKa,SAAS,EACvB,EAEF,MAAMW,EACJ7B,YAAYG,GACVE,KAAK+B,KAAOjC,EAAEI,OACdF,KAAKgC,MAAQlC,EAAEI,OACfF,KAAKiC,MAAQnC,EAAEoC,KACjB,E","file":"js/33-fe3a0649983d8952dd6e.chunk.js","sourcesContent":["import { SimpleTable } from \"../../simple-table.js\";\nimport lazy from \"../../../../lazy.js\";\n\n/**\n * The OpenType `kern` table.\n *\n * See https://docs.microsoft.com/en-us/typography/opentype/spec/kern\n *\n * Also don't use this table anymore =(\n */\nclass kern extends SimpleTable {\n constructor(dict, dataview) {\n const _super = super(dict, dataview),\n p = _super.p;\n this.version = p.uint16;\n this.nTables = p.uint16;\n\n // getting this data is hilarious, because I'm intentionally not implementing subtable 2\n lazy(this, `tables`, () => {\n let offset = this.tableStart + 4;\n const tables = [];\n for (let i = 0; i < this.nTables; i++) {\n p.currentPosition = offset;\n let subtable = new KernSubTable(p);\n tables.push(subtable);\n offset += subtable;\n }\n return tables;\n });\n }\n}\nclass KernSubTable {\n constructor(p) {\n this.version = p.uint16;\n this.length = p.uint16; // length of subtable (including the header)\n\n // We deviate from the spec here, because it's ridiculous.\n // The spec says we have a uin16 that represents 16 bits.\n // Then you read the description of how to treat those bits,\n // and you realise it's NOT 16 bits, it's 8 bits of which\n // bits 0-3 are used, and bits 4-7 are reserved, and then it's\n // a plain uint8 \"format\" value. So that's what we do here.\n this.coverage = p.flags(8);\n this.format = p.uint8;\n if (this.format === 0) {\n this.nPairs = p.uint16;\n this.searchRange = p.uint16;\n this.entrySelector = p.uint16;\n this.rangeShift = p.uint16;\n lazy(this, `pairs`, () => [...new Array(this.nPairs)].map(_ => new Pair(p)));\n }\n if (this.format === 2) {\n // Wow. Not only does this font have a kern table, it has a kern table that isn't universally supported. Classy.\n console.warn(`Kern subtable format 2 is not supported: this parser currently only parses universal table data.`);\n }\n }\n get horizontal() {\n return this.coverage[0];\n }\n get minimum() {\n return this.coverage[1];\n }\n get crossstream() {\n return this.coverage[2];\n }\n get override() {\n return this.coverage[3];\n }\n}\nclass Pair {\n constructor(p) {\n this.left = p.uint16;\n this.right = p.uint16;\n this.value = p.fword;\n }\n}\nexport { kern };"],"sourceRoot":""}