import freesewing from "@freesewing/core"; import plugins from "@freesewing/plugin-bundle"; import buttons from "@freesewing/plugin-buttons"; import bust from "@freesewing/plugin-bust"; import Bent from "@freesewing/bent"; import Carlton from "@freesewing/carlton"; import config from "../config"; // Parts import draftFront from "./front"; import draftSide from "./side"; // Create new design const Pattern = new freesewing.Design(config, [plugins, buttons, bust]); let fromBent = ["Base", "Front", "Back", "Sleeve", "TopSleeve", "UnderSleeve"]; // Attach draft methods from Bent to prototype for (let m of fromBent) { Pattern.prototype["draftBent" + m] = function(part) { return new Bent(this.settings)["draft" + m](part); }; } // Attach draft methods from Carlton to prototype for (let m of [ "draftBack", "draftTail", "draftTopSleeve", "draftUnderSleeve", "draftBelt", "draftCollarStand", "draftCollar", "draftCuffFacing", "draftPocket", "draftPocketFlap", "draftPocketLining", "draftChestPocketWelt", "draftChestPocketBag", "draftInnerPocketWelt", "draftInnerPocketBag", "draftInnerPocketTab" ]) { Pattern.prototype[m] = function(part) { return new Carlton(this.settings)[m](part); }; } Pattern.prototype.draftCarltonFront = function(part) { return new Carlton(this.settings).draftFront(part); }; // Attach own draft methods to prototype Pattern.prototype.draftFront = draftFront; Pattern.prototype.draftSide = draftSide; export default Pattern;