{"version":3,"file":"swf.mjs","names":["Data","Rect","Fixed8","Swf","version","frameSize","frameRate","frameCount","tags","constructor","size","reduce","v","t","encoder","data","i","DataView","buffer","byteOffset","byteLength","setUint32","encode","length","setUint16","tag"],"sources":["../../src/swf/swf.ts"],"sourcesContent":["import {Data} from './data.ts';\nimport {Rect} from './rect.ts';\nimport {Fixed8} from './fixed8.ts';\nimport {Tag} from './tag.ts';\n\n/**\n * Swf object.\n */\nexport class Swf extends Data {\n\t/**\n\t * Format version.\n\t */\n\tpublic version: number = 0;\n\n\t/**\n\t * Frame size.\n\t */\n\tpublic frameSize: Rect = new Rect();\n\n\t/**\n\t * Frame rate.\n\t */\n\tpublic frameRate: Fixed8 = new Fixed8();\n\n\t/**\n\t * Frame count.\n\t */\n\tpublic frameCount: number = 0;\n\n\t/**\n\t * Movie tags.\n\t */\n\tpublic tags: Tag[] = [];\n\n\t/**\n\t * Swf constructor.\n\t */\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic get size() {\n\t\treturn this.tags.reduce(\n\t\t\t(v, t) => t.size + v,\n\t\t\t3 + 1 + 4 + this.frameSize.size + this.frameRate.size + 2\n\t\t);\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic encoder(data: Uint8Array) {\n\t\tlet i = 0;\n\t\tdata[i++] = 0x46;\n\t\tdata[i++] = 0x57;\n\t\tdata[i++] = 0x53;\n\t\tdata[i++] = this.version;\n\n\t\tconst v = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\t\tv.setUint32(i, this.size, true);\n\t\ti += 4;\n\n\t\ti += this.frameSize.encode(data, i).length;\n\n\t\ti += this.frameRate.encode(data, i).length;\n\n\t\tv.setUint16(i, this.frameCount, true);\n\t\ti += 2;\n\n\t\tfor (const tag of this.tags) {\n\t\t\ti += tag.encode(data, i).length;\n\t\t}\n\t}\n}\n"],"mappings":"AAAA,SAAQA,IAAI,QAAO,YAAW;AAC9B,SAAQC,IAAI,QAAO,YAAW;AAC9B,SAAQC,MAAM,QAAO,cAAa;AAGlC;AACA;AACA;AACA,OAAO,MAAMC,GAAG,SAASH,IAAI,CAAC;EAC7B;AACD;AACA;EACQI,OAAO,GAAW,CAAC;;EAE1B;AACD;AACA;EACQC,SAAS,GAAS,IAAIJ,IAAI,CAAC,CAAC;;EAEnC;AACD;AACA;EACQK,SAAS,GAAW,IAAIJ,MAAM,CAAC,CAAC;;EAEvC;AACD;AACA;EACQK,UAAU,GAAW,CAAC;;EAE7B;AACD;AACA;EACQC,IAAI,GAAU,EAAE;;EAEvB;AACD;AACA;EACCC,WAAWA,CAAA,EAAG;IACb,KAAK,CAAC,CAAC;EACR;;EAEA;AACD;AACA;EACC,IAAWC,IAAIA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACF,IAAI,CAACG,MAAM,CACtB,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAACH,IAAI,GAAGE,CAAC,EACpB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAACP,SAAS,CAACK,IAAI,GAAG,IAAI,CAACJ,SAAS,CAACI,IAAI,GAAG,CACzD,CAAC;EACF;;EAEA;AACD;AACA;EACQI,OAAOA,CAACC,IAAgB,EAAE;IAChC,IAAIC,CAAC,GAAG,CAAC;IACTD,IAAI,CAACC,CAAC,EAAE,CAAC,GAAG,IAAI;IAChBD,IAAI,CAACC,CAAC,EAAE,CAAC,GAAG,IAAI;IAChBD,IAAI,CAACC,CAAC,EAAE,CAAC,GAAG,IAAI;IAChBD,IAAI,CAACC,CAAC,EAAE,CAAC,GAAG,IAAI,CAACZ,OAAO;IAExB,MAAMQ,CAAC,GAAG,IAAIK,QAAQ,CAACF,IAAI,CAACG,MAAM,EAAEH,IAAI,CAACI,UAAU,EAAEJ,IAAI,CAACK,UAAU,CAAC;IACrER,CAAC,CAACS,SAAS,CAACL,CAAC,EAAE,IAAI,CAACN,IAAI,EAAE,IAAI,CAAC;IAC/BM,CAAC,IAAI,CAAC;IAENA,CAAC,IAAI,IAAI,CAACX,SAAS,CAACiB,MAAM,CAACP,IAAI,EAAEC,CAAC,CAAC,CAACO,MAAM;IAE1CP,CAAC,IAAI,IAAI,CAACV,SAAS,CAACgB,MAAM,CAACP,IAAI,EAAEC,CAAC,CAAC,CAACO,MAAM;IAE1CX,CAAC,CAACY,SAAS,CAACR,CAAC,EAAE,IAAI,CAACT,UAAU,EAAE,IAAI,CAAC;IACrCS,CAAC,IAAI,CAAC;IAEN,KAAK,MAAMS,GAAG,IAAI,IAAI,CAACjB,IAAI,EAAE;MAC5BQ,CAAC,IAAIS,GAAG,CAACH,MAAM,CAACP,IAAI,EAAEC,CAAC,CAAC,CAACO,MAAM;IAChC;EACD;AACD","ignoreList":[]}