{"version":3,"sources":["/Users/apple/Desktop/codes/pptx-embed-fonts/dist/pptxgenjs.cjs","../src/pptxgenjs.ts"],"names":[],"mappings":"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","file":"/Users/apple/Desktop/codes/pptx-embed-fonts/dist/pptxgenjs.cjs","sourcesContent":[null,"import pptxgenjs from \"pptxgenjs\";\nimport JSZip from \"jszip\";\nimport PPTXEmbedFonts from \"./index.js\";\n\ninterface ExportPresentationOptions {\n  outputType?: string;\n  compression?: boolean;\n}\n\ndeclare module \"pptxgenjs\" {\n  export default interface PptxGenJS {\n    exportPresentation(\n      ...args: any[]\n    ): Promise<string | ArrayBuffer | Blob | Buffer | Uint8Array>;\n  }\n}\n\nfunction withPPTXEmbedFonts(pptxgen: typeof pptxgenjs) {\n  return class EmbedFontsPPTXGenJS extends pptxgen {\n    #superExportPresentation: (\n      options: ExportPresentationOptions\n    ) => Promise<any>;\n    constructor() {\n      super();\n      this.#superExportPresentation = this.exportPresentation;\n      this.exportPresentation = async (options: ExportPresentationOptions) => {\n        // 这里可以添加嵌入字体的相关逻辑\n\n        const res = await this.#superExportPresentation(options);\n        const zip = await new JSZip().loadAsync(res);\n\n        await this._pptxEmbedFonts.loadZip(zip);\n        await this._pptxEmbedFonts.updateFiles();\n\n        if (options.outputType === \"STREAM\") {\n          // A: stream file\n          return await zip.generateAsync({\n            type: \"nodebuffer\",\n            compression: options.compression ? \"DEFLATE\" : \"STORE\",\n          });\n        } else if (options.outputType) {\n          // B: Node [fs]: Output type user option or default\n          return await zip.generateAsync({\n            type: options.outputType as any,\n          });\n        } else {\n          // C: Browser: Output blob as app/ms-pptx\n          return await zip.generateAsync({\n            type: \"blob\",\n            compression: options.compression ? \"DEFLATE\" : \"STORE\",\n          });\n        }\n      };\n    }\n    readonly _pptxEmbedFonts: PPTXEmbedFonts = new PPTXEmbedFonts();\n    async addFont(options: {\n      fontFace: string;\n      fontFile: ArrayBuffer;\n      fontType: \"ttf\" | \"eot\" | \"woff\" | \"otf\";\n    }) {\n      if (options.fontType === \"ttf\") {\n        await this._pptxEmbedFonts.addFontFromTTF(\n          options.fontFace,\n          options.fontFile\n        );\n      } else if (options.fontType === \"eot\") {\n        await this._pptxEmbedFonts.addFontFromEOT(\n          options.fontFace,\n          options.fontFile\n        );\n      } else if (options.fontType === \"woff\") {\n        await this._pptxEmbedFonts.addFontFromWOFF(\n          options.fontFace,\n          options.fontFile\n        );\n      } else if (options.fontType === \"otf\") {\n        await this._pptxEmbedFonts.addFontFromOTF(\n          options.fontFace,\n          options.fontFile\n        );\n      } else {\n        throw new Error(`Invalid font type ${options.fontType}`);\n      }\n    }\n    getFontInfo(fontFile: ArrayBuffer) {\n      return this._pptxEmbedFonts.getFontInfo(fontFile);\n    }\n  };\n}\n\nexport default withPPTXEmbedFonts;\n\nexport { withPPTXEmbedFonts };\n"]}