UNPKG

mp70-pptx-automizer

Version:
71 lines 3.86 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MediaHelper = void 0; const file_helper_1 = require("./file-helper"); const xml_helper_1 = require("./xml-helper"); const path_1 = __importDefault(require("path")); class MediaHelper { static copyFiles(sourceArchive, targetArchive, sourceFile, targetFile) { return __awaiter(this, void 0, void 0, function* () { yield file_helper_1.FileHelper.zipCopy(sourceArchive, `ppt/media/${sourceFile}`, targetArchive, `ppt/media/${targetFile}`); }); } static appendTypes(targetArchive, targetFile, mediaType) { return __awaiter(this, void 0, void 0, function* () { const contentTypesPath = '[Content_Types].xml'; const contentTypesXml = yield xml_helper_1.XmlHelper.getXmlFromArchive(targetArchive, contentTypesPath); const types = contentTypesXml.getElementsByTagName('Types')[0]; if (!types) { throw new Error('Types element not found in [Content_Types].xml'); } const partName = `/ppt/media/${targetFile}`; const contentType = mediaType; const newOverride = contentTypesXml.createElement('Override'); newOverride.setAttribute('PartName', partName); newOverride.setAttribute('ContentType', contentType); types.appendChild(newOverride); console.log(`Content Type for ${targetFile}: ${contentType}`); yield xml_helper_1.XmlHelper.writeXmlToArchive(targetArchive, contentTypesPath, contentTypesXml); }); } static appendToSlideRels(targetArchive, targetType, targetSlideNumber, targetFile, relationshipType) { return __awaiter(this, void 0, void 0, function* () { const targetRelFile = `ppt/${targetType}s/_rels/${targetType}${targetSlideNumber}.xml.rels`; const createdRid = yield xml_helper_1.XmlHelper.getNextRelId(targetArchive, targetRelFile); const attributes = { Id: createdRid, Type: relationshipType, Target: `../media/${targetFile}`, }; const createdRelation = yield xml_helper_1.XmlHelper.append(xml_helper_1.XmlHelper.createRelationshipChild(targetArchive, targetRelFile, attributes)); return { createdRid, createdRelation }; }); } static getFileExtension(sourceFile) { return file_helper_1.FileHelper.getFileExtension(sourceFile); } static generateTargetFile(targetNumber, sourceFile) { return `media${targetNumber}${path_1.default.extname(sourceFile)}`; } static getElementsByRid(element, rid) { if (!element || typeof element.getElementsByTagName !== 'function') { return []; } const elements = element.getElementsByTagName('*'); return Array.from(elements).filter((el) => el.getAttribute('r:embed') === rid); } } exports.MediaHelper = MediaHelper; //# sourceMappingURL=media-helper.js.map