From 803e1c055265756540bb485b82527a73b3ce61cf Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Fri, 10 May 2019 13:14:31 +0200 Subject: [PATCH] :rotating_light: Removed linter warnings --- packages/aaron/src/back.js | 95 ++++---- packages/aaron/src/front.js | 102 ++++++--- packages/bent/src/shared.js | 53 +++-- packages/bent/src/sleeve.js | 196 +++++++++++++---- packages/bent/src/topsleeve.js | 26 ++- packages/bent/src/undersleeve.js | 26 ++- packages/brian/src/back.js | 14 +- packages/brian/src/front.js | 17 +- packages/brian/src/sleeve.js | 19 +- packages/brian/src/sleevecap.js | 16 +- packages/bruce/src/back.js | 103 +++++---- packages/bruce/src/front.js | 202 ++++++++++++------ packages/bruce/src/inset.js | 71 +++--- packages/bruce/src/side.js | 56 +++-- packages/carlita/src/side.js | 3 - packages/carlton/src/chestpocketbag.js | 37 ++-- packages/cathrin/src/base.js | 199 +++++++++-------- packages/cathrin/src/panel1.js | 44 ++-- packages/cathrin/src/panel1ab.js | 115 ++++++---- packages/cathrin/src/panel2.js | 42 ++-- packages/cathrin/src/panel3.js | 42 ++-- packages/cathrin/src/panel4.js | 157 ++++++++------ packages/cathrin/src/panel5.js | 42 ++-- packages/cathrin/src/panel6.js | 49 +++-- packages/cathrin/src/panels.js | 176 +++++++++++---- .../src/.form/FormFieldChecks/index.js | 4 - .../src/.form/FormFieldMeasurement/index.js | 7 +- packages/components/src/Draft/Circle/index.js | 2 +- packages/components/src/Draft/Part/index.js | 7 +- packages/components/src/Draft/Path/index.js | 2 +- packages/components/src/Draft/Point/index.js | 2 +- .../components/src/Draft/Snippet/index.js | 4 +- packages/components/src/Draft/Style/index.js | 9 - packages/components/src/Draft/Svg/index.js | 2 +- packages/components/src/Draft/Text/index.js | 2 +- .../components/src/Draft/TextOnPath/index.js | 2 +- packages/components/src/Draft/index.js | 66 +++--- .../DraftSettingMargin/index.js | 2 +- .../DraftSettingOnly/index.js | 2 - .../DraftConfigurator/OptionGroup/index.js | 6 +- .../DraftConfigurator/OptionPreamble/index.js | 2 +- .../PatternOptionList/index.js | 13 -- .../PatternOptionMillimeter/index.js | 13 -- .../DraftConfigurator/PatternOptions/index.js | 5 - .../components/src/DraftConfigurator/index.js | 14 -- packages/components/src/Footer/index.js | 2 - packages/components/src/Navbar/stories.js | 7 - .../SampleConfigurator/OptionGroup/index.js | 5 +- .../PatternOptions/index.js | 4 +- .../src/SampleConfigurator/index.js | 8 - .../components/src/Workbench/Design/index.js | 2 - .../src/Workbench/DraftPattern/index.js | 2 - .../src/Workbench/Measurements/index.js | 3 +- .../src/Workbench/SamplePattern/index.js | 3 - .../components/src/Workbench/Welcome/index.js | 5 +- packages/components/src/Workbench/index.js | 9 - packages/components/src/withGist/index.js | 2 +- packages/components/src/withLanguage/index.js | 1 - packages/core/src/path.js | 4 +- .../lib/prompt-library-params.js | 2 - .../template/default/rollup.config.js | 7 +- packages/examples/src/index.js | 2 - .../examples/src/path_shiftfractionalong.js | 3 +- packages/examples/src/settings_sa.js | 3 +- packages/examples/src/utils_pointonline.js | 11 +- packages/examples/src/utils_splitcurve.js | 10 +- packages/florent/src/briminterfacing.js | 6 +- packages/florent/src/brimtop.js | 6 +- packages/florent/src/side.js | 4 - packages/florent/src/top.js | 9 - packages/huey/src/back.js | 3 - packages/huey/src/front.js | 3 - packages/huey/src/pocket.js | 5 +- packages/huey/src/shared.js | 13 +- packages/huey/src/sleeve.js | 2 - packages/hugo/src/back.js | 25 ++- packages/hugo/src/cuff.js | 14 +- packages/hugo/src/front.js | 19 +- packages/hugo/src/hoodcenter.js | 21 +- packages/hugo/src/hoodside.js | 19 +- packages/hugo/src/pocket.js | 21 +- packages/hugo/src/pocketfacing.js | 14 +- packages/hugo/src/sleeve.js | 19 +- packages/hugo/src/waistband.js | 15 +- packages/i18n/src/locales/de/options/index.js | 1 - packages/i18n/src/locales/en/options/index.js | 1 - packages/i18n/src/locales/es/options/index.js | 1 - packages/i18n/src/locales/fr/options/index.js | 1 - packages/i18n/src/locales/nl/options/index.js | 1 - packages/pattern-info/package.json | 2 +- packages/plugin-designer/src/decorate.js | 1 - packages/plugin-designer/src/index.js | 4 +- packages/plugin-round/src/index.js | 31 +-- packages/plugin-title/src/index.js | 2 +- packages/plugin-validate/src/validate.js | 166 ++++++++------ packages/rendertest/src/circles.js | 2 +- packages/rendertest/src/colors.js | 8 +- packages/rendertest/src/macros.js | 14 +- packages/rendertest/src/snippets.js | 2 - packages/rendertest/src/text.js | 4 +- packages/shin/src/waistband.js | 3 - packages/simon/src/buttonholeplacket.js | 4 - packages/simon/src/buttonplacket.js | 4 - packages/simon/src/collar.js | 3 - packages/simon/src/collarstand.js | 3 - packages/simon/src/cuff-barrel-angled.js | 8 +- packages/simon/src/cuff-barrel-rounded.js | 8 +- packages/simon/src/cuff-barrel-straight.js | 17 +- packages/simon/src/cuff-french-angled.js | 8 +- packages/simon/src/cuff-french-rounded.js | 7 +- packages/simon/src/cuff-french-straight.js | 10 +- packages/simon/src/front.js | 3 - packages/simon/src/frontleft-classic-cuton.js | 6 - .../simon/src/frontleft-classic-seperate.js | 5 - packages/simon/src/frontleft-seamless.js | 9 - .../simon/src/frontright-classic-cuton.js | 6 - .../simon/src/frontright-classic-seperate.js | 5 - packages/simon/src/frontright-seamless.js | 5 - packages/simon/src/shared.js | 11 +- packages/simon/src/sleeve.js | 6 - packages/simon/src/sleeveplacket-overlap.js | 2 - packages/simon/src/sleeveplacket-underlap.js | 2 - packages/simon/src/yoke.js | 5 - packages/sven/src/cuff.js | 8 +- packages/sven/src/front.js | 4 - packages/sven/src/sleeve.js | 7 +- packages/sven/src/waistband.js | 8 +- packages/tamiko/src/top.js | 4 +- packages/utils/src/formatMm.js | 1 - packages/utils/src/measurementAsMm.js | 2 +- packages/wahid/src/back.js | 3 - packages/wahid/src/front.js | 13 +- packages/wahid/src/frontlining.js | 6 +- packages/wahid/src/pocketbag.js | 4 - packages/wahid/src/pocketfacing.js | 4 - packages/wahid/src/pocketinterfacing.js | 7 +- packages/wahid/src/pocketwelt.js | 4 - packages/wahid/src/shared.js | 4 +- 138 files changed, 1591 insertions(+), 1250 deletions(-) delete mode 100644 packages/components/src/Draft/Style/index.js diff --git a/packages/aaron/src/back.js b/packages/aaron/src/back.js index 74929cfb75e..ac79bd459c9 100644 --- a/packages/aaron/src/back.js +++ b/packages/aaron/src/back.js @@ -1,18 +1,36 @@ -import { dimensions } from './shared'; +import { dimensions } from "./shared"; export default function(part) { - // prettier-ignore - let {store, sa, Point, points, Path, paths, Snippet, snippets, options, complete, paperless, macro, utils, units} = part.shorthand(); + let { + store, + sa, + Point, + points, + Path, + paths, + options, + complete, + paperless, + macro, + utils, + units + } = part.shorthand(); points.strapLeftCp2 = utils.beamsIntersect( points.strapLeft, points.strapCenter.rotate(90, points.strapLeft), points.cbNeck, - points.cbNeck.shift(0,10) + points.cbNeck.shift(0, 10) ); - points.armholeCp2 = points.aaronArmhole.shiftFractionTowards(points.armholeCorner, options.backlineBend); - points.strapRightCp1 = points.strapRight.shiftFractionTowards(points.armholeCorner, options.backlineBend); + points.armholeCp2 = points.aaronArmhole.shiftFractionTowards( + points.armholeCorner, + options.backlineBend + ); + points.strapRightCp1 = points.strapRight.shiftFractionTowards( + points.armholeCorner, + options.backlineBend + ); // Seamline paths.seam = new Path() @@ -29,35 +47,40 @@ export default function(part) { // Complete pattern? if (complete) { - let neckOpeningLength = new Path() - .move(points.strapLeft) - .curve(points.strapLeftCp2, points.cbNeck, points.cbNeck) - .length() + store.get('frontNeckOpeningLength'); - let armholeLength = new Path() - .move(points.aaronArmhole) - .curve(points.armholeCp2, points.strapRightCp1, points.strapRight) - .length() + store.get('frontArmholeLength'); - points.bindinAnchor = new Point(points.aaronArmhole.x / 4, points.aaronArmhole.y) - .attr('data-text', 'cutTwoStripsToFinishTheArmholes') - .attr('data-text', ":\n") - .attr('data-text', "width") - .attr('data-text', ":") - .attr('data-text', units(sa*6)) - .attr('data-text', "\n") - .attr('data-text', "length") - .attr('data-text', ":") - .attr('data-text', units(armholeLength * 0.95 + 2*sa)) - .attr('data-text', "\n \n") - .attr('data-text', 'cutOneStripToFinishTheNeckOpening') - .attr('data-text', ":\n") - .attr('data-text', "width") - .attr('data-text', ":") - .attr('data-text', units(sa*6)) - .attr('data-text', "\n") - .attr('data-text', "length") - .attr('data-text', ":") - .attr('data-text', units(neckOpeningLength * 0.95 + 2*sa)) - .attr('data-text-lineheight', 6); + let neckOpeningLength = + new Path() + .move(points.strapLeft) + .curve(points.strapLeftCp2, points.cbNeck, points.cbNeck) + .length() + store.get("frontNeckOpeningLength"); + let armholeLength = + new Path() + .move(points.aaronArmhole) + .curve(points.armholeCp2, points.strapRightCp1, points.strapRight) + .length() + store.get("frontArmholeLength"); + points.bindinAnchor = new Point( + points.aaronArmhole.x / 4, + points.aaronArmhole.y + ) + .attr("data-text", "cutTwoStripsToFinishTheArmholes") + .attr("data-text", ":\n") + .attr("data-text", "width") + .attr("data-text", ":") + .attr("data-text", units(sa * 6)) + .attr("data-text", "\n") + .attr("data-text", "length") + .attr("data-text", ":") + .attr("data-text", units(armholeLength * 0.95 + 2 * sa)) + .attr("data-text", "\n \n") + .attr("data-text", "cutOneStripToFinishTheNeckOpening") + .attr("data-text", ":\n") + .attr("data-text", "width") + .attr("data-text", ":") + .attr("data-text", units(sa * 6)) + .attr("data-text", "\n") + .attr("data-text", "length") + .attr("data-text", ":") + .attr("data-text", units(neckOpeningLength * 0.95 + 2 * sa)) + .attr("data-text-lineheight", 6); macro("cutonfold", { from: points.cfNeck, @@ -81,4 +104,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/aaron/src/front.js b/packages/aaron/src/front.js index d2840e6e423..e4260852ffe 100644 --- a/packages/aaron/src/front.js +++ b/packages/aaron/src/front.js @@ -1,46 +1,75 @@ -import { dimensions } from './shared'; +import { dimensions } from "./shared"; export default function(part) { - // prettier-ignore - let {utils, store, sa, Point, points, Path, paths, Snippet, snippets, options, measurements, complete, paperless, macro} = part.shorthand(); + let { + utils, + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + options, + measurements, + complete, + paperless, + macro + } = part.shorthand(); // Hide Brian paths - for(let key of Object.keys(paths)) paths[key].render = false; + for (let key of Object.keys(paths)) paths[key].render = false; // Handle stretch - for(let i in points) points[i].x = points[i].x * (1 - options.stretchFactor); + for (let i in points) points[i].x = points[i].x * (1 - options.stretchFactor); // Rename cb (center back) to cf (center front) for (let key of ["Neck", "Shoulder", "Armhole", "Waist", "Hips", "Hem"]) { - points[`cf${key}`] = new Point( - points[`cb${key}`].x, - points[`cb${key}`].y - ); + points[`cf${key}`] = new Point(points[`cb${key}`].x, points[`cb${key}`].y); //delete points[`cb${key}`]; } // Neckline - points.cfNeck = points.cfNeck.shift(-90, options.necklineDrop * - (measurements.centerBackNeckToWaist + measurements.naturalWaistToHip) + points.cfNeck = points.cfNeck.shift( + -90, + options.necklineDrop * + (measurements.centerBackNeckToWaist + measurements.naturalWaistToHip) ); // Strap - points.strapCenter = points.neck.shiftFractionTowards(points.shoulder, options.shoulderStrapPlacement); - points.strapLeft = points.strapCenter.shiftTowards(points.neck, points.neck.dist(points.shoulder) * options.shoulderStrapWidth); + points.strapCenter = points.neck.shiftFractionTowards( + points.shoulder, + options.shoulderStrapPlacement + ); + points.strapLeft = points.strapCenter.shiftTowards( + points.neck, + points.neck.dist(points.shoulder) * options.shoulderStrapWidth + ); points.strapRight = points.strapLeft.rotate(180, points.strapCenter); points.necklineCorner = utils.beamsIntersect( points.strapLeft, points.strapRight.rotate(-90, points.strapLeft), - points.cfNeck.shift(0, points.armholePitch.x/4), - points.cfNeck + points.cfNeck.shift(0, points.armholePitch.x / 4), + points.cfNeck + ); + points.strapLeftCp2 = points.strapLeft.shiftFractionTowards( + points.necklineCorner, + options.necklineBend + ); + points.cfNeckCp1 = points.cfNeck.shiftFractionTowards( + points.necklineCorner, + options.necklineBend ); - points.strapLeftCp2 = points.strapLeft.shiftFractionTowards(points.necklineCorner, options.necklineBend); - points.cfNeckCp1 = points.cfNeck.shiftFractionTowards(points.necklineCorner, options.necklineBend); // Hips - points.hips.x = (measurements.hipsCircumference + (options.hipsEase * measurements.hipsCircumference))/4 * (1 - options.stretchFactor); + points.hips.x = + ((measurements.hipsCircumference + + options.hipsEase * measurements.hipsCircumference) / + 4) * + (1 - options.stretchFactor); points.waist.x = points.hips.x; // Because stretch - points.waistCp2 = points.waist.shift(90,points.armhole.dy(points.waist)/2); + points.waistCp2 = points.waist.shift(90, points.armhole.dy(points.waist) / 2); // Hem points.hem.x = points.hips.x; @@ -50,7 +79,9 @@ export default function(part) { .move(points.hem) .line(points.waist) .curve(points.waistCp2, points.armhole, points.armhole); - let split = side.intersectsY(points.armhole.y * (1 + options.armholeDrop)).pop(); + let split = side + .intersectsY(points.armhole.y * (1 + options.armholeDrop)) + .pop(); paths.side = side.split(split)[0]; paths.side.render = false; points.aaronArmhole = split; @@ -58,12 +89,18 @@ export default function(part) { // Armhole points.armholeCorner = utils.beamsIntersect( points.aaronArmhole, - points.aaronArmhole.shift(180,10), + points.aaronArmhole.shift(180, 10), points.strapRight, points.strapLeft.rotate(90, points.strapRight) ); - points.armholeCp2 = points.aaronArmhole.shiftFractionTowards(points.armholeCorner, 0.8); - points.strapRightCp1 = points.strapRight.shiftFractionTowards(points.armholeCorner, 0.6); + points.armholeCp2 = points.aaronArmhole.shiftFractionTowards( + points.armholeCorner, + 0.8 + ); + points.strapRightCp1 = points.strapRight.shiftFractionTowards( + points.armholeCorner, + 0.6 + ); // Seamline paths.seam = new Path() @@ -80,14 +117,14 @@ export default function(part) { // Store length of armhole and neck opening store.set( - 'frontArmholeLength', + "frontArmholeLength", new Path() .move(points.aaronArmhole) .curve(points.armholeCp2, points.strapRightCp1, points.strapRight) .length() ); store.set( - 'frontNeckOpeningLength', + "frontNeckOpeningLength", new Path() .move(points.strapLeft) .curve(points.cfNeckCp1, points.cfNeckCp1, points.cfNeck) @@ -101,7 +138,7 @@ export default function(part) { to: points.cfHem, grainline: true }); - points.title = new Point(points.waist.x/2, points.waist.y); + points.title = new Point(points.waist.x / 2, points.waist.y); macro("title", { at: points.title, nr: 1, title: "front" }); points.logo = points.title.shift(-90, 75); snippets.logo = new Snippet("logo", points.logo); @@ -113,9 +150,7 @@ export default function(part) { .offset(sa) .line(points.strapLeft) .attr("class", "fabric sa"); - paths.saShoulder - .move(points.strapRight) - .line(paths.saShoulder.start()); + paths.saShoulder.move(points.strapRight).line(paths.saShoulder.start()); paths.saSide = paths.side .offset(sa) .line(points.aaronArmhole) @@ -123,11 +158,10 @@ export default function(part) { paths.saHem = new Path() .move(points.cfHem) .line(points.hem) - .offset(sa * 2.5).attr("class", "fabric sa") + .offset(sa * 2.5) + .attr("class", "fabric sa") .line(paths.saSide.start()); - paths.saHem - .move(points.cfHem) - .line(paths.saHem.start()); + paths.saHem.move(points.cfHem).line(paths.saHem.start()); } } @@ -142,4 +176,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/bent/src/shared.js b/packages/bent/src/shared.js index fcab3001519..6666798b4fb 100644 --- a/packages/bent/src/shared.js +++ b/packages/bent/src/shared.js @@ -1,53 +1,52 @@ export default function(part, s) { - let { macro, Point, Path, points, paths, complete, paperless, snippets, Snippet, sa } = part.shorthand(); + let { macro, points, sa } = part.shorthand(); macro("ld", { - from: points[s+"WristLeft"], - to: points[s+"WristRight"], + from: points[s + "WristLeft"], + to: points[s + "WristRight"], d: 15 }); macro("ld", { - from: points[s+"ElbowLeft"], + from: points[s + "ElbowLeft"], to: points.elbowRight }); macro("ld", { - from: points[s+"LeftEdge"], - to: points[s+"RightEdge"] + from: points[s + "LeftEdge"], + to: points[s + "RightEdge"] }); macro("hd", { - from: points[s+"LeftEdge"], - to: points[s+"ElbowLeft"], - y: points[s+"WristRight"].y + 3 * sa + 15 + from: points[s + "LeftEdge"], + to: points[s + "ElbowLeft"], + y: points[s + "WristRight"].y + 3 * sa + 15 }); macro("hd", { - from: points[s+"LeftEdge"], - to: points[s+"WristLeft"], - y: points[s+"WristRight"].y + 3 * sa + 30 + from: points[s + "LeftEdge"], + to: points[s + "WristLeft"], + y: points[s + "WristRight"].y + 3 * sa + 30 }); macro("hd", { - from: points[s+"LeftEdge"], - to: points[s+"WristRight"], - y: points[s+"WristRight"].y + 3 * sa + 45 + from: points[s + "LeftEdge"], + to: points[s + "WristRight"], + y: points[s + "WristRight"].y + 3 * sa + 45 }); macro("hd", { - from: points[s+"LeftEdge"], + from: points[s + "LeftEdge"], to: points.elbowRight, - y: points[s+"WristRight"].y + 3 * sa + 60 + y: points[s + "WristRight"].y + 3 * sa + 60 }); macro("vd", { - from: points[s+"ElbowLeft"], - to: points[s+"LeftEdge"], - x: points[s+"LeftEdge"].x - sa - 15 + from: points[s + "ElbowLeft"], + to: points[s + "LeftEdge"], + x: points[s + "LeftEdge"].x - sa - 15 }); macro("vd", { - from: points[s+"WristLeft"], - to: points[s+"LeftEdge"], - x: points[s+"LeftEdge"].x - sa - 30 + from: points[s + "WristLeft"], + to: points[s + "LeftEdge"], + x: points[s + "LeftEdge"].x - sa - 30 }); macro("vd", { - from: points[s+"WristRight"], - to: points[s+"LeftEdge"], - x: points[s+"LeftEdge"].x - sa - 45 + from: points[s + "WristRight"], + to: points[s + "LeftEdge"], + x: points[s + "LeftEdge"].x - sa - 45 }); } - diff --git a/packages/bent/src/sleeve.js b/packages/bent/src/sleeve.js index f66277fadd2..ed06418cc62 100644 --- a/packages/bent/src/sleeve.js +++ b/packages/bent/src/sleeve.js @@ -1,22 +1,36 @@ export default function(part) { - let { Point, Path, points, paths, store, options, measurements,utils } = part.shorthand(); - // FIXME: simplify points names a bit, they're too long + let { Path, points, store, options } = part.shorthand(); function draftSleeve(part, tweak) { - let { Point, Path, points, paths, store, options, measurements,utils } = part.shorthand(); + let { + Point, + Path, + points, + paths, + store, + options, + measurements, + utils + } = part.shorthand(); // Sleeve frame points.top = new Point(0, 0); - points.boxTopRight = points.top.shift(0, store.get("sleevecapTarget") / 5.8 * tweak); + points.boxTopRight = points.top.shift( + 0, + (store.get("sleevecapTarget") / 5.8) * tweak + ); points.boxTopLeft = points.boxTopRight.flipX(); - points.boxBottom = points.top.shift(-90, measurements.shoulderToWrist * (1 + options.sleeveLengthBonus)); + points.boxBottom = points.top.shift( + -90, + measurements.shoulderToWrist * (1 + options.sleeveLengthBonus) + ); points.boxBottomRight = points.boxBottom.shift(0, points.boxTopRight.x); points.boxBottomLeft = points.boxBottomRight.flipX(); points.armCenter = points.top.shift( -90, measurements.bicepsCircumference * - (1+ options.bicepsEase) * - options.sleevecapHeight * - tweak + (1 + options.bicepsEase) * + options.sleevecapHeight * + tweak ); points.armRight = points.armCenter.shift(0, points.boxTopRight.x); points.armLeft = points.armRight.flipX(); @@ -34,7 +48,10 @@ export default function(part) { points.usLeftEdge = points.armLeft.shift(0, factor / 4); points.tsRightEdge = points.armRight.shift(0, factor / 9); points.usRightEdge = points.armRight.shift(180, factor / 9); - points.frontPitchPoint = new Point(points.boxTopLeft.x, points.armCenter.y * 0.6); + points.frontPitchPoint = new Point( + points.boxTopLeft.x, + points.armCenter.y * 0.6 + ); points.tsElbowLeft = points.elbowLeft.shift(180, factor / 9); points.usElbowLeft = points.elbowLeft.shift(0, factor / 2.4); @@ -49,31 +66,79 @@ export default function(part) { // Shift wrist left to the exact wrist width let wristWidth = measurements.wristCircumference * (1 + options.cuffEase); - let topWrist = wristWidth/2 + factor/5; - let underWrist = wristWidth/2 - factor/5; - points.tsWristLeftHelperBottom = points.tsWristRight.shift(180, topWrist/2); - points.usWristLeftHelperBottom = points.usWristRight.shift(180, underWrist/2); - points.tsWristLeftHelperTop = points.tsElbowLeft.shiftFractionTowards(points.elbowRight, 0.5) - points.usWristLeftHelperTop = points.usElbowLeft.shiftFractionTowards(points.elbowRight, 0.5) - let tsWristAngle = points.tsWristLeftHelperBottom.angle(points.tsWristLeftHelperTop); - let usWristAngle = points.usWristLeftHelperBottom.angle(points.usWristLeftHelperTop); - points.tsWristLeft = points.tsWristRight.shift(tsWristAngle - 90, topWrist * -1); - points.usWristLeft = points.usWristRight.shift(usWristAngle - 90, underWrist * -1); + let topWrist = wristWidth / 2 + factor / 5; + let underWrist = wristWidth / 2 - factor / 5; + points.tsWristLeftHelperBottom = points.tsWristRight.shift( + 180, + topWrist / 2 + ); + points.usWristLeftHelperBottom = points.usWristRight.shift( + 180, + underWrist / 2 + ); + points.tsWristLeftHelperTop = points.tsElbowLeft.shiftFractionTowards( + points.elbowRight, + 0.5 + ); + points.usWristLeftHelperTop = points.usElbowLeft.shiftFractionTowards( + points.elbowRight, + 0.5 + ); + let tsWristAngle = points.tsWristLeftHelperBottom.angle( + points.tsWristLeftHelperTop + ); + let usWristAngle = points.usWristLeftHelperBottom.angle( + points.usWristLeftHelperTop + ); + points.tsWristLeft = points.tsWristRight.shift( + tsWristAngle - 90, + topWrist * -1 + ); + points.usWristLeft = points.usWristRight.shift( + usWristAngle - 90, + underWrist * -1 + ); // Control points ts - points.tsRightEdgeCpTop = points.tsRightEdge.shift(90, points.backPitchPoint.dy(points.tsRightEdge)/2); - points.tsRightEdgeCpBottom = points.tsRightEdgeCpTop.flipY(points.tsRightEdge); - points.elbowRightCpTop = points.tsWristRight.shiftFractionTowards(points.elbowRight, 1.15); - points.topCpRight = points.top.shift(0, factor/1.6); + points.tsRightEdgeCpTop = points.tsRightEdge.shift( + 90, + points.backPitchPoint.dy(points.tsRightEdge) / 2 + ); + points.tsRightEdgeCpBottom = points.tsRightEdgeCpTop.flipY( + points.tsRightEdge + ); + points.elbowRightCpTop = points.tsWristRight.shiftFractionTowards( + points.elbowRight, + 1.15 + ); + points.topCpRight = points.top.shift(0, factor / 1.6); points.topCpLeft = points.topCpRight.flipX(); - points.tsLeftEdgeCpRight = points.tsLeftEdge.shift(0, points.tsLeftEdge.dist(points.armLeft)/2); - points.frontPitchPointCpBottom = points.frontPitchPoint.shiftFractionTowards(points.tsLeftEdgeCpRight, 0.666); - points.frontPitchPointCpTop = points.frontPitchPointCpBottom.rotate(180, points.frontPitchPoint); - points.tsElbowLeftCpTop = points.tsWristLeft.shiftFractionTowards(points.tsElbowLeft, 1.2); + points.tsLeftEdgeCpRight = points.tsLeftEdge.shift( + 0, + points.tsLeftEdge.dist(points.armLeft) / 2 + ); + points.frontPitchPointCpBottom = points.frontPitchPoint.shiftFractionTowards( + points.tsLeftEdgeCpRight, + 0.666 + ); + points.frontPitchPointCpTop = points.frontPitchPointCpBottom.rotate( + 180, + points.frontPitchPoint + ); + points.tsElbowLeftCpTop = points.tsWristLeft.shiftFractionTowards( + points.tsElbowLeft, + 1.2 + ); // Control points us - points.usRightEdgeCpBottom = points.usRightEdge.shift(points.usTip.angle(points.elbowRight), points.usTip.dy(points.usRightEdge)/2); - points.usRightEdgeCpTop = points.usRightEdgeCpBottom.rotate(180, points.usRightEdge); + points.usRightEdgeCpBottom = points.usRightEdge.shift( + points.usTip.angle(points.elbowRight), + points.usTip.dy(points.usRightEdge) / 2 + ); + points.usRightEdgeCpTop = points.usRightEdgeCpBottom.rotate( + 180, + points.usRightEdge + ); points._helper1 = new Path() .move(points.backPitchPoint) ._curve(points.topCpRight, points.top) @@ -82,24 +147,50 @@ export default function(part) { .move(points.backPitchPoint) ._curve(points.tsRightEdgeCpTop, points.tsRightEdge) .shiftAlong(5); - points.usLeftEdgeRight = points.usLeftEdge.shift(0, points.usLeftEdge.dist(points.armCenter)/3); - points.usLeftEdgeCpRight = points.usLeftEdge.shift(0, points.usLeftEdge.dist(points.armCenter)/1.2); + points.usLeftEdgeRight = points.usLeftEdge.shift( + 0, + points.usLeftEdge.dist(points.armCenter) / 3 + ); + points.usLeftEdgeCpRight = points.usLeftEdge.shift( + 0, + points.usLeftEdge.dist(points.armCenter) / 1.2 + ); // Angle of the usTip - let angle = points._helper1.angle(points.backPitchPoint) - points.backPitchPoint.angle(points._helper2); - points.usTipCpBottom = points.usRightEdgeCpTop.rotate(angle * -1, points.usTip) - points.usElbowLeftCpTop = points.usWristLeft.shiftFractionTowards(points.usElbowLeft, 1.2); + let angle = + points._helper1.angle(points.backPitchPoint) - + points.backPitchPoint.angle(points._helper2); + points.usTipCpBottom = points.usRightEdgeCpTop.rotate( + angle * -1, + points.usTip + ); + points.usElbowLeftCpTop = points.usWristLeft.shiftFractionTowards( + points.usElbowLeft, + 1.2 + ); // Calculate length of the sleevecap seam let lenTop = new Path() .move(points.backPitchPoint) .curve(points.backPitchPoint, points.topCpRight, points.top) - .curve(points.topCpLeft, points.frontPitchPointCpTop, points.frontPitchPoint) - .curve(points.frontPitchPointCpBottom, points.tsLeftEdgeCpRight, points.tsLeftEdge) + .curve( + points.topCpLeft, + points.frontPitchPointCpTop, + points.frontPitchPoint + ) + .curve( + points.frontPitchPointCpBottom, + points.tsLeftEdgeCpRight, + points.tsLeftEdge + ) .length(); let lenUnder = new Path() .move(points.usTip) - .curve(points.usTipCpBottom, points.usLeftEdgeCpRight, points.usLeftEdgeRight) + .curve( + points.usTipCpBottom, + points.usLeftEdgeCpRight, + points.usLeftEdgeRight + ) .line(points.usLeftEdge) .length(); store.set("sleevecapLength", lenTop + lenUnder); @@ -123,16 +214,27 @@ export default function(part) { else tweak = tweak * 1.02; } while (Math.abs(delta) > 2 && runs < 25); - // Paths paths.ts = new Path() .move(points.tsWristRight) .line(points.elbowRight) - .curve(points.elbowRightCpTop, points.tsRightEdgeCpBottom, points.tsRightEdge) + .curve( + points.elbowRightCpTop, + points.tsRightEdgeCpBottom, + points.tsRightEdge + ) .curve_(points.tsRightEdgeCpTop, points.backPitchPoint) .curve(points.backPitchPoint, points.topCpRight, points.top) - .curve(points.topCpLeft, points.frontPitchPointCpTop, points.frontPitchPoint) - .curve(points.frontPitchPointCpBottom, points.tsLeftEdgeCpRight, points.tsLeftEdge) + .curve( + points.topCpLeft, + points.frontPitchPointCpTop, + points.frontPitchPoint + ) + .curve( + points.frontPitchPointCpBottom, + points.tsLeftEdgeCpRight, + points.tsLeftEdge + ) .curve(points.tsLeftEdge, points.tsElbowLeftCpTop, points.tsElbowLeft) .line(points.tsWristLeft) .line(points.tsWristRight) @@ -142,9 +244,17 @@ export default function(part) { paths.us = new Path() .move(points.usWristRight) .line(points.elbowRight) - .curve(points.elbowRightCpTop, points.usRightEdgeCpBottom, points.usRightEdge) + .curve( + points.elbowRightCpTop, + points.usRightEdgeCpBottom, + points.usRightEdge + ) .curve_(points.usRightEdgeCpTop, points.usTip) - .curve(points.usTipCpBottom, points.usLeftEdgeCpRight, points.usLeftEdgeRight) + .curve( + points.usTipCpBottom, + points.usLeftEdgeCpRight, + points.usLeftEdgeRight + ) .line(points.usLeftEdge) .curve(points.usLeftEdge, points.usElbowLeftCpTop, points.usElbowLeft) .line(points.usWristLeft) diff --git a/packages/bent/src/topsleeve.js b/packages/bent/src/topsleeve.js index 8e78948de33..8f41406dc15 100644 --- a/packages/bent/src/topsleeve.js +++ b/packages/bent/src/topsleeve.js @@ -1,13 +1,21 @@ import dimensions from "./shared"; export default function(part) { - let { macro, Point, Path, points, paths, complete, paperless, snippets, Snippet, sa } = part.shorthand(); + let { + macro, + Path, + points, + paths, + complete, + paperless, + snippets, + Snippet, + sa + } = part.shorthand(); // Extract seamline from sleeve delete paths.us; - paths.seam = paths.ts - .clone() - .attr("class", "fabric", true); + paths.seam = paths.ts.clone().attr("class", "fabric", true); delete paths.ts; // Complete? @@ -25,15 +33,15 @@ export default function(part) { paths.sa.ops.splice(-2); paths.sa = paths.sa .offset(sa) - .join(new Path() - .move(points.tsWristLeft) - .line(points.tsWristRight) - .offset(sa * 3) + .join( + new Path() + .move(points.tsWristLeft) + .line(points.tsWristRight) + .offset(sa * 3) ) .close() .attr("class", "fabric sa"); } - } // Paperless? diff --git a/packages/bent/src/undersleeve.js b/packages/bent/src/undersleeve.js index 6edeebaadb6..434023c2da7 100644 --- a/packages/bent/src/undersleeve.js +++ b/packages/bent/src/undersleeve.js @@ -1,13 +1,21 @@ import dimensions from "./shared"; export default function(part) { - let { macro, Point, Path, points, paths, complete, paperless, snippets, Snippet, sa } = part.shorthand(); + let { + macro, + Path, + points, + paths, + complete, + paperless, + snippets, + Snippet, + sa + } = part.shorthand(); // Extract seamline from sleeve delete paths.ts; - paths.seam = paths.us - .clone() - .attr("class", "fabric", true); + paths.seam = paths.us.clone().attr("class", "fabric", true); delete paths.us; // Complete? @@ -25,15 +33,15 @@ export default function(part) { paths.sa.ops.splice(-2); paths.sa = paths.sa .offset(sa) - .join(new Path() - .move(points.usWristLeft) - .line(points.usWristRight) - .offset(sa * 3) + .join( + new Path() + .move(points.usWristLeft) + .line(points.usWristRight) + .offset(sa * 3) ) .close() .attr("class", "fabric sa"); } - } // Paperless? diff --git a/packages/brian/src/back.js b/packages/brian/src/back.js index da74ac454b5..174ced2aa44 100644 --- a/packages/brian/src/back.js +++ b/packages/brian/src/back.js @@ -1,8 +1,18 @@ import * as shared from "./shared"; export default part => { - // prettier-ignore - let {store, sa, points, Path, paths, Snippet, snippets, complete, paperless, macro} = part.shorthand(); + let { + store, + sa, + points, + Path, + paths, + Snippet, + snippets, + complete, + paperless, + macro + } = part.shorthand(); // Seamline paths.saBase = shared.saBase("back", points, Path); diff --git a/packages/brian/src/front.js b/packages/brian/src/front.js index fe57df31b90..f07bdc4737f 100644 --- a/packages/brian/src/front.js +++ b/packages/brian/src/front.js @@ -1,8 +1,21 @@ import * as shared from "./shared"; export default part => { - // prettier-ignore - let {store, sa, Point, points, Path, paths, Snippet, snippets, options, measurements, complete, paperless, macro} = part.shorthand(); + let { + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + options, + measurements, + complete, + paperless, + macro + } = part.shorthand(); // Cut arm a bit deeper at the front let deeper = measurements.chestCircumference * options.frontArmholeDeeper; diff --git a/packages/brian/src/sleeve.js b/packages/brian/src/sleeve.js index 0ee1a6fe3ce..5d65319afa7 100644 --- a/packages/brian/src/sleeve.js +++ b/packages/brian/src/sleeve.js @@ -1,6 +1,21 @@ export default part => { - // prettier-ignore - let {debug, store, units, sa, measurements, options, Point, points, Path, paths, Snippet, snippets, complete, paperless, macro} = part.shorthand(); + let { + debug, + store, + units, + sa, + measurements, + options, + Point, + points, + Path, + paths, + Snippet, + snippets, + complete, + paperless, + macro + } = part.shorthand(); // Wrist let top = paths.sleevecap.bbox().topLeft.y; diff --git a/packages/brian/src/sleevecap.js b/packages/brian/src/sleevecap.js index 01ca179f10f..f28aa53bf92 100644 --- a/packages/brian/src/sleevecap.js +++ b/packages/brian/src/sleevecap.js @@ -14,8 +14,17 @@ function sleevecapAdjust(store) { } function draftSleevecap(part, run) { - // prettier-ignore - let {debug, units, store, measurements, options, Point, points, Path, paths} = part.shorthand(); + let { + debug, + units, + store, + measurements, + options, + Point, + points, + Path, + paths + } = part.shorthand(); // Sleeve center axis points.centerBiceps = new Point(0, 0); points.centerCap = points.centerBiceps.shift( @@ -156,8 +165,7 @@ function draftSleevecap(part, run) { } export default part => { - // prettier-ignore - let {debug, store, units, options, Point, points, paths } = part.shorthand(); + let { debug, store, units, options, Point, points, paths } = part.shorthand(); store.set("sleeveFactor", 1); let run = 0; diff --git a/packages/bruce/src/back.js b/packages/bruce/src/back.js index e75fb7ef7d7..643b31cb81b 100644 --- a/packages/bruce/src/back.js +++ b/packages/bruce/src/back.js @@ -1,42 +1,67 @@ import init from "./init"; export default function(part) { - // prettier-ignore - let {store, sa, Point, points, Path, paths, Snippet, snippets, options, measurements, complete, paperless, macro, utils} = part.shorthand(); + let { + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + complete, + paperless, + macro, + utils + } = part.shorthand(); // Initialize init(part); // Center back - points.zero = new Point(0,0); - points.center = points.zero.shift(90, store.get('rise')); + points.zero = new Point(0, 0); + points.center = points.zero.shift(90, store.get("rise")); // Side top - points.sideRight = new Point(store.get('hipsBack') / 2, points.center.y); + points.sideRight = new Point(store.get("hipsBack") / 2, points.center.y); // Gusset - points.gussetTop = points.center.shift(-90, store.get('riseLength')); - points.gussetBottom = points.gussetTop.shift(-90, store.get('gusset') + store.get('legBonus')); - points.gussetRight = points.gussetBottom.shift(0, store.get('gusset') * store.get('xScale') / 2); + points.gussetTop = points.center.shift(-90, store.get("riseLength")); + points.gussetBottom = points.gussetTop.shift( + -90, + store.get("gusset") + store.get("legBonus") + ); + points.gussetRight = points.gussetBottom.shift( + 0, + (store.get("gusset") * store.get("xScale")) / 2 + ); points.gussetCpRight = new Point(points.gussetRight.x, points.gussetTop.y); // Find leg edge - let isect = utils.circlesIntersect(points.gussetRight, store.get('legBack'), points.sideRight, store.get('fullLength')); + let isect = utils.circlesIntersect( + points.gussetRight, + store.get("legBack"), + points.sideRight, + store.get("fullLength") + ); points.legRight = isect[1]; points.legLeft = points.legRight.flipX(points.center); // Store back seam length and (half of the) crotch seam length - store.set('backSeamLength', points.sideRight.dist(points.legRight)); - store.set('crotchSeamLength', new Path() - .move(points.gussetTop) - .curve(points.gussetCpRight, points.gussetRight, points.gussetRight) - .length() + store.set("backSeamLength", points.sideRight.dist(points.legRight)); + store.set( + "crotchSeamLength", + new Path() + .move(points.gussetTop) + .curve(points.gussetCpRight, points.gussetRight, points.gussetRight) + .length() ); // Handle back rise - points.center = points.center.shift(90, store.get('backRise')); - points.sideRight = points.sideRight.shift(90, store.get('sideRise')); - points.centerCpRight = new Point(points.sideRight.x/2, points.center.y); + points.center = points.center.shift(90, store.get("backRise")); + points.sideRight = points.sideRight.shift(90, store.get("sideRise")); + points.centerCpRight = new Point(points.sideRight.x / 2, points.center.y); points.centerCpLeft = points.centerCpRight.flipX(); paths.seam = new Path() @@ -47,11 +72,11 @@ export default function(part) { .curve(points.sideRight, points.centerCpRight, points.center) .line(points.gussetTop) .close() - .attr('class', 'fabric'); + .attr("class", "fabric"); // Complete pattern? if (complete) { - if(sa) { + if (sa) { let sa1 = new Path() .move(points.legRight) .line(points.sideRight) @@ -60,11 +85,11 @@ export default function(part) { let sa2 = new Path() .move(points.gussetTop) .curve(points.gussetCpRight, points.gussetRight, points.gussetRight) - .offset(sa) + .offset(sa); let hemSa = new Path() .move(points.gussetRight) .line(points.legRight) - .offset(sa * 2) + .offset(sa * 2); paths.sa = new Path() .move(points.gussetTop) .line(sa2.start()) @@ -72,63 +97,63 @@ export default function(part) { .join(hemSa) .join(sa1) .line(points.center) - .attr('class', 'fabric sa'); + .attr("class", "fabric sa"); } - points.title = new Point(points.sideRight.x * 0.6, points.gussetTop.y * 0.6); - macro('title', { + points.title = new Point( + points.sideRight.x * 0.6, + points.gussetTop.y * 0.6 + ); + macro("title", { at: points.title, nr: 1, - title: 'back' + title: "back" }); - macro('cutonfold', { + macro("cutonfold", { from: points.center, to: points.gussetTop, grainline: true }); - snippets.logo = new Snippet( - 'logo', - points.title.shift(90, 50) - ); + snippets.logo = new Snippet("logo", points.title.shift(90, 50)); } // Paperless? if (paperless) { - macro('vd', { + macro("vd", { from: points.gussetTop, to: points.center, x: points.center.x - 15 }); - macro('vd', { + macro("vd", { from: points.gussetRight, to: points.center, x: points.center.x - 30 }); - macro('vd', { + macro("vd", { from: points.legRight, to: points.sideRight, x: points.legRight.x + 15 + sa }); - macro('vd', { + macro("vd", { from: points.legRight, to: points.center, x: points.legRight.x + 30 + sa }); - macro('hd', { + macro("hd", { from: points.center, to: points.sideRight, y: points.center.y - 15 - sa }); - macro('hd', { + macro("hd", { from: points.gussetTop, to: points.gussetRight, y: points.gussetRight.y + 15 + sa * 2 }); - macro('hd', { + macro("hd", { from: points.gussetTop, to: points.legRight, y: points.gussetRight.y + 30 + sa * 2 }); - macro('ld', { + macro("ld", { from: points.gussetRight, to: points.legRight, d: -15 - sa * 2 @@ -136,4 +161,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/bruce/src/front.js b/packages/bruce/src/front.js index 1398be571c1..7f88b84e37b 100644 --- a/packages/bruce/src/front.js +++ b/packages/bruce/src/front.js @@ -1,85 +1,135 @@ import init from "./init"; function tuskDelta(part) { - let {Path, points, store} = part.shorthand(); + let { Path, points } = part.shorthand(); let len = new Path() .move(points.midRight) - .curve(points.curveRightCpTop, points.curveRightCpBottom, points.rightTuskRight) + .curve( + points.curveRightCpTop, + points.curveRightCpBottom, + points.rightTuskRight + ) .length(); - return len - store.get('curve'); + return len - store.get("curve"); } function tweakTusk(delta, part) { - let {Path, points, store} = part.shorthand(); + let { points } = part.shorthand(); let factor; if (Math.abs(delta) > 2) factor = 3; else factor = 5; - points.rightTuskRight = points.rightTuskRight.shift(90, delta/factor); - points.rightTuskLeft = points.rightTuskLeft.shift(90, delta/factor); - points.curveRightCpBottom = points.curveRightCpBottom.shift(90, delta/factor); + points.rightTuskRight = points.rightTuskRight.shift(90, delta / factor); + points.rightTuskLeft = points.rightTuskLeft.shift(90, delta / factor); + points.curveRightCpBottom = points.curveRightCpBottom.shift( + 90, + delta / factor + ); } export default function(part) { - // prettier-ignore - let {store, sa, Point, points, Path, paths, Snippet, snippets, options, measurements, complete, paperless, macro, utils, debug} = part.shorthand(); + let { + store, + sa, + Point, + points, + Path, + paths, + options, + complete, + paperless, + macro, + utils, + debug + } = part.shorthand(); // Initialize init(part); - points.topRight = new Point(store.get('hipsFront')/2, 0); + points.topRight = new Point(store.get("hipsFront") / 2, 0); points.topLeft = points.topRight.flipX(); - points.midMid = new Point(0, store.get('heightFront')); - points.midRight = new Point(points.topRight.x + store.get('heightFront') * 0.05, points.midMid.y); + points.midMid = new Point(0, store.get("heightFront")); + points.midRight = new Point( + points.topRight.x + store.get("heightFront") * 0.05, + points.midMid.y + ); points.midLeft = points.midRight.flipX(); // Store this length for a notch on the side part - store.set('frontNotch', points.topRight.dist(points.midRight)); + store.set("frontNotch", points.topRight.dist(points.midRight)); - points.bottomMid = new Point(0, store.get('riseLength')); + points.bottomMid = new Point(0, store.get("riseLength")); points.rightTuskRight = new Point( - store.get('gusset') * store.get('xScale') * ( 1 - store.get('gussetInsetRatio') ), + store.get("gusset") * + store.get("xScale") * + (1 - store.get("gussetInsetRatio")), points.bottomMid.y ); points.rightTuskLeft = points.bottomMid.clone(); - points.curveRightCpTop = new Point(points.midRight.x - store.get('gusset') * 1.3, points.midRight.y); - points.curveRightCpBottom = new Point(points.rightTuskRight.x, points.rightTuskRight.y - store.get('gusset')*1.3); + points.curveRightCpTop = new Point( + points.midRight.x - store.get("gusset") * 1.3, + points.midRight.y + ); + points.curveRightCpBottom = new Point( + points.rightTuskRight.x, + points.rightTuskRight.y - store.get("gusset") * 1.3 + ); // Adjust tusk length to fit inset curve let delta = tuskDelta(part); let count = 0; - while (Math.abs(delta) > 1) { // Below 1mm is good enough + while (Math.abs(delta) > 1) { + // Below 1mm is good enough tweakTusk(delta, part); delta = tuskDelta(part); count++; - if(count>150) throw("We got stuck trying to calculate an optimal tusk length. Please report this."); + if (count > 150) + throw "We got stuck trying to calculate an optimal tusk length. Please report this."; } - debug(`After ${count} iterations, tusk curve length is ${utils.round(delta)}mm off.`); + debug( + `After ${count} iterations, tusk curve length is ${utils.round( + delta + )}mm off.` + ); // Adjust midMid to new length points.bottomMid = new Point(0, points.rightTuskLeft.y); // Front dart only if bulge > 0 - if(options.bulge > 0) { + if (options.bulge > 0) { + // Rotate tusk according to bulge option + for (let pid of [ + "curveRightCpTop", + "curveRightCpBottom", + "rightTuskRight", + "rightTuskLeft" + ]) { + points[pid] = points[pid].rotate(options.bulge, points.midRight); + } - // Rotate tusk according to bulge option - for (let pid of ['curveRightCpTop', 'curveRightCpBottom', 'rightTuskRight', 'rightTuskLeft']) { - points[pid] = points[pid].rotate(options.bulge, points.midRight); - } + // Dart join point + points.dartJoin = new Point( + 0, + points.midMid.y + 0.65 * points.midMid.dist(points.bottomMid) + ); - // Dart join point - points.dartJoin = new Point(0, points.midMid.y + 0.65 * points.midMid.dist(points.bottomMid)); + // Dart control point + points.dartCpRight = new Point( + 0, + points.dartJoin.y + + points.dartJoin.dist(points.bottomMid) * (options.bulge / 30) + ); + points.dartCpRight = points.dartCpRight.rotate( + options.bulge, + points.dartJoin + ); - // Dart control point - points.dartCpRight = new Point(0, points.dartJoin.y + points.dartJoin.dist(points.bottomMid) * (options.bulge/30)); - points.dartCpRight = points.dartCpRight.rotate(options.bulge, points.dartJoin); - - // Flip control point to left side - points.dartCpLeft = points.dartCpRight.flipX(); + // Flip control point to left side + points.dartCpLeft = points.dartCpRight.flipX(); } else { - points.dartJoin = points.rightTuskLeft; + points.dartJoin = points.rightTuskLeft; } // Flip points to left side @@ -90,23 +140,27 @@ export default function(part) { // Handle back rise points.topMid = new Point(0, points.topLeft.y); - points.topLeft = points.topLeft.shift(90, store.get('frontRise')); - points.topRight = points.topRight.shift(90, store.get('frontRise')); + points.topLeft = points.topLeft.shift(90, store.get("frontRise")); + points.topRight = points.topRight.shift(90, store.get("frontRise")); points.topMidCpRight = new Point(points.topRight.x / 2, points.topMid.y); points.topMidCpLeft = points.topMidCpRight.flipX(); - if(options.bulge > 0) { + if (options.bulge > 0) { paths.trimBase = new Path() .move(points.rightTuskLeft) .curve(points.rightTuskLeft, points.dartCpRight, points.dartJoin) - .curve(points.dartCpLeft, points.leftTuskRight, points.leftTuskRight) + .curve(points.dartCpLeft, points.leftTuskRight, points.leftTuskRight); paths.seamStart = new Path() .move(points.midLeft) .line(points.topLeft) .curve(points.topLeft, points.topMidCpLeft, points.topMid) .curve(points.topMidCpRight, points.topRight, points.topRight) .line(points.midRight) - .curve(points.curveRightCpTop, points.curveRightCpBottom, points.rightTuskRight) + .curve( + points.curveRightCpTop, + points.curveRightCpBottom, + points.rightTuskRight + ) .line(points.rightTuskLeft); paths.seamEnd = new Path() .move(points.leftTuskRight) @@ -123,16 +177,20 @@ export default function(part) { .curve(points.topLeft, points.topMidCpLeft, points.topMid) .curve(points.topMidCpRight, points.topRight, points.topRight) .line(points.midRight) - .curve(points.curveRightCpTop, points.curveRightCpBottom, points.rightTuskRight) + .curve( + points.curveRightCpTop, + points.curveRightCpBottom, + points.rightTuskRight + ) .line(points.leftTuskLeft) .curve(points.curveLeftCpBottom, points.curveLeftCpTop, points.midLeft); } - paths.seam.close().attr('class', 'fabric'); + paths.seam.close().attr("class", "fabric"); // Complete pattern? if (complete) { - if(sa) { - if(options.bulge > 0) { + if (sa) { + if (options.bulge > 0) { let saStart = paths.seamStart.offset(sa * -1); let saTrim = paths.trimBase.offset(sa * -1).trim(); let saEnd = paths.seamEnd.offset(sa * -1); @@ -141,104 +199,110 @@ export default function(part) { paths.sa = paths.seam.offset(sa * -1).trim(); } } - macro('title', { + macro("title", { at: points.midMid, nr: 2, - title: 'front' + title: "front" }); - macro('grainline', { + macro("grainline", { from: points.dartJoin, to: points.topMid }); - } // Paperless? if (paperless) { - macro('hd', { + macro("hd", { from: points.topLeft, to: points.topRight, y: points.topLeft.y - 15 - sa }); - macro('hd', { + macro("hd", { from: points.midLeft, to: points.midRight, y: points.topLeft.y - 30 - sa }); - macro('vd', { + macro("vd", { from: points.midLeft, to: points.topMid, x: points.midLeft.x - 15 - sa }); - macro('vd', { + macro("vd", { from: points.midLeft, to: points.topLeft, x: points.midLeft.x - 30 - sa }); - if(options.bulge === 0) { - macro('hd', { + if (options.bulge === 0) { + macro("hd", { from: points.leftTuskLeft, to: points.rightTuskRight, y: points.leftTuskLeft.y + 15 + sa }); - macro('vd', { + macro("vd", { from: points.leftTuskLeft, to: points.topLeft, x: points.midLeft.x - 45 - sa }); } else { - macro('vd', { + macro("vd", { from: points.leftTuskLeft, to: points.topLeft, x: points.midLeft.x - 45 - sa }); - macro('vd', { + macro("vd", { from: points.leftTuskRight, to: points.topLeft, x: points.midLeft.x - 60 - sa }); points.narrowRight = new Path() .move(points.midRight) - .curve(points.curveRightCpTop, points.curveRightCpBottom, points.rightTuskRight) - .edge('left'); + .curve( + points.curveRightCpTop, + points.curveRightCpBottom, + points.rightTuskRight + ) + .edge("left"); points.narrowLeft = new Path() .move(points.midLeft) - .curve(points.curveLeftCpTop, points.curveLeftCpBottom, points.leftTuskLeft) - .attr('class', 'various stroke-xl lashed') - .edge('right'); - macro('hd', { + .curve( + points.curveLeftCpTop, + points.curveLeftCpBottom, + points.leftTuskLeft + ) + .attr("class", "various stroke-xl lashed") + .edge("right"); + macro("hd", { from: points.narrowLeft, to: points.narrowRight, y: points.narrowLeft.y }); - macro('hd', { + macro("hd", { from: points.leftTuskRight, to: points.rightTuskLeft, y: points.rightTuskLeft.y + 15 + sa }); - macro('hd', { + macro("hd", { from: points.leftTuskLeft, to: points.rightTuskRight, y: points.rightTuskLeft.y + 30 + sa }); - macro('ld', { + macro("ld", { from: points.rightTuskLeft, to: points.rightTuskRight, d: -15 - sa }); - macro('vd', { + macro("vd", { from: points.narrowRight, to: points.topRight, x: points.topRight.x + 15 + sa }); - macro('vd', { + macro("vd", { from: points.dartJoin, to: points.topRight, x: points.topRight.x + 30 + sa }); - } } return part; -}; +} diff --git a/packages/bruce/src/inset.js b/packages/bruce/src/inset.js index 879fe0d3a92..379eb38e6f1 100644 --- a/packages/bruce/src/inset.js +++ b/packages/bruce/src/inset.js @@ -1,29 +1,50 @@ import init from "./init"; export default function(part) { - // prettier-ignore - let {store, sa, Point, points, Path, paths, Snippet, snippets, options, measurements, complete, paperless, macro, utils} = part.shorthand(); + let { + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + measurements, + complete, + paperless, + macro + } = part.shorthand(); // Initialize init(part); // height is 73.5% - points.topLeft = new Point(0,0); - points.bottomLeft = points.topLeft.shift(-90, store.get('heightInset')); - points.bottomRight = new Point(store.get('legInset'), points.bottomLeft.y); - points.tip = new Point(points.bottomRight.x * 1.111, points.bottomRight.y - store.get('gusset')); + points.topLeft = new Point(0, 0); + points.bottomLeft = points.topLeft.shift(-90, store.get("heightInset")); + points.bottomRight = new Point(store.get("legInset"), points.bottomLeft.y); + points.tip = new Point( + points.bottomRight.x * 1.111, + points.bottomRight.y - store.get("gusset") + ); points.tip = points.bottomRight.shiftTowards( points.tip, - store.get('crotchSeamLength') - store.get('gusset') * (1-store.get('gussetInsetRatio')) - ); - points.tipCpTop = new Point(store.get('gusset') * 1.2, 0); - points.tipCpBottom = points.tip.shift(points.bottomRight.angle(points.tip)+90, store.get('gusset') * 1.5); + store.get("crotchSeamLength") - + store.get("gusset") * (1 - store.get("gussetInsetRatio")) + ); + points.tipCpTop = new Point(store.get("gusset") * 1.2, 0); + points.tipCpBottom = points.tip.shift( + points.bottomRight.angle(points.tip) + 90, + store.get("gusset") * 1.5 + ); // Store cuve length - store.set('curve', new Path() - .move(points.tip) - .curve(points.tipCpBottom, points.tipCpTop, points.topLeft) - .length() + store.set( + "curve", + new Path() + .move(points.tip) + .curve(points.tipCpBottom, points.tipCpTop, points.topLeft) + .length() ); // Path @@ -34,41 +55,41 @@ export default function(part) { .line(points.tip) .curve(points.tipCpBottom, points.tipCpTop, points.topLeft) .close() - .attr('class', 'fabric'); + .attr("class", "fabric"); // Complete pattern? if (complete) { - if(sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa'); + if (sa) paths.sa = paths.seam.offset(sa).attr("class", "fabric sa"); points.title = points.topLeft.shiftFractionTowards(points.bottomRight, 0.5); - macro('title', { + macro("title", { at: points.title.shift(-90, 15), nr: 4, - title: 'inset' + title: "inset" }); - macro('grainline', { + macro("grainline", { from: points.bottomLeft.shift(0, 15), - to: points.topLeft.shift(0, 15), + to: points.topLeft.shift(0, 15) }); } // Paperless? if (paperless) { - macro('vd', { + macro("vd", { from: points.bottomLeft, to: points.topLeft, x: points.topLeft.x - 15 - sa }); - macro('vd', { + macro("vd", { from: points.bottomRight, to: points.tip, x: points.tip.x + 15 + sa }); - macro('hd', { + macro("hd", { from: points.bottomLeft, to: points.bottomRight, y: points.bottomRight.y + 15 + sa }); - macro('hd', { + macro("hd", { from: points.bottomLeft, to: points.tip, y: points.bottomRight.y + 30 + sa @@ -76,4 +97,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/bruce/src/side.js b/packages/bruce/src/side.js index b8282edddf0..e0d98e76187 100644 --- a/packages/bruce/src/side.js +++ b/packages/bruce/src/side.js @@ -1,32 +1,47 @@ import init from "./init"; export default function(part) { - // prettier-ignore - let {store, sa, Point, points, Path, paths, Snippet, snippets, options, measurements, complete, paperless, macro, utils} = part.shorthand(); + let { + store, + sa, + Point, + points, + Path, + paths, + complete, + paperless, + macro, + utils + } = part.shorthand(); // Initialize init(part); // Top left points.zero = new Point(0, 0); - points.topLeft = points.zero.shift(90, store.get('rise')); + points.topLeft = points.zero.shift(90, store.get("rise")); // Top right - points.topRight = new Point(store.get('hipsSide'), points.topLeft.y); + points.topRight = new Point(store.get("hipsSide"), points.topLeft.y); // Bottom right - points.bottomRight = points.topRight.shift(-90, store.get('fullLength')); + points.bottomRight = points.topRight.shift(-90, store.get("fullLength")); // Find bottom left - let isect = utils.circlesIntersect(points.bottomRight, store.get('legSide'), points.topLeft, store.get('backSeamLength')); + let isect = utils.circlesIntersect( + points.bottomRight, + store.get("legSide"), + points.topLeft, + store.get("backSeamLength") + ); points.bottomLeft = isect[0]; // Store side seam length - store.set('sideSeamLength', points.topRight.dist(points.bottomRight)); + store.set("sideSeamLength", points.topRight.dist(points.bottomRight)); // Handle back rise - points.topLeft = points.topLeft.shift(90, store.get('sideRise')); - points.topRight = points.topRight.shift(90, store.get('frontRise')); + points.topLeft = points.topLeft.shift(90, store.get("sideRise")); + points.topRight = points.topRight.shift(90, store.get("frontRise")); // Path paths.seam = new Path() @@ -36,8 +51,7 @@ export default function(part) { .line(points.bottomLeft) .line(points.topLeft) .close() - .attr('class', 'fabric'); - + .attr("class", "fabric"); // Anchor point for sampling points.anchor = points.topLeft; @@ -45,15 +59,15 @@ export default function(part) { // Complete pattern? if (complete) { points.title = points.topLeft.shiftFractionTowards(points.bottomRight, 0.5); - macro('title', { + macro("title", { at: points.title.shift(90, 30), nr: 3, - title: 'side' + title: "side" }); - if(sa) { - paths.sa = paths.seam.offset(sa * -1).attr('class', 'fabric sa'); + if (sa) { + paths.sa = paths.seam.offset(sa * -1).attr("class", "fabric sa"); } - macro('grainline', { + macro("grainline", { from: new Point(points.bottomRight.x / 2, points.bottomRight.y), to: new Point(points.bottomRight.x / 2, points.topRight.y) }); @@ -61,22 +75,22 @@ export default function(part) { // Paperless? if (paperless) { - macro('vd', { + macro("vd", { from: points.bottomLeft, to: points.topLeft, x: points.topLeft.x - 15 - sa }); - macro('vd', { + macro("vd", { from: points.bottomRight, to: points.topRight, x: points.topRight.x + 15 + sa }); - macro('hd', { + macro("hd", { from: points.topLeft, to: points.topRight, y: points.topLeft.y - 15 - sa }); - macro('hd', { + macro("hd", { from: points.bottomLeft, to: points.bottomRight, y: points.bottomLeft.y + 15 + sa @@ -84,4 +98,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/carlita/src/side.js b/packages/carlita/src/side.js index 162365d782e..f4bf9807c99 100644 --- a/packages/carlita/src/side.js +++ b/packages/carlita/src/side.js @@ -4,12 +4,9 @@ export default function(part) { sa, snippets, Snippet, - utils, store, complete, points, - measurements, - options, macro, Point, paths, diff --git a/packages/carlton/src/chestpocketbag.js b/packages/carlton/src/chestpocketbag.js index d540de8ed0b..c7fdc5a351e 100644 --- a/packages/carlton/src/chestpocketbag.js +++ b/packages/carlton/src/chestpocketbag.js @@ -1,23 +1,37 @@ export default function(part) { - let { units, paperless, sa, store, complete, points, options, macro, Point, paths, Path } = part.shorthand(); + let { + units, + paperless, + sa, + store, + complete, + points, + macro, + Point, + paths, + Path + } = part.shorthand(); points.topLeft = new Point(0, 0); points.bottomRight = new Point( store.get("chestPocketHeight"), store.get("chestPocketBagDepth") / 2 ); - points.bottomLeft = new Point( - points.topLeft.x, - points.bottomRight.y + points.bottomLeft = new Point(points.topLeft.x, points.bottomRight.y); + points.topRight = new Point(points.bottomRight.x, points.topLeft.y); + points.startLeft = points.topLeft.shiftFractionTowards( + points.bottomLeft, + 0.33 ); - points.topRight = new Point( - points.bottomRight.x, - points.topLeft.y - ); - points.startLeft = points.topLeft.shiftFractionTowards(points.bottomLeft, 0.33); points.endLeft = points.topLeft.shiftFractionTowards(points.bottomLeft, 0.66); - points.startRight = points.topRight.shiftFractionTowards(points.bottomRight, 0.33); - points.endRight = points.topRight.shiftFractionTowards(points.bottomRight, 0.66); + points.startRight = points.topRight.shiftFractionTowards( + points.bottomRight, + 0.33 + ); + points.endRight = points.topRight.shiftFractionTowards( + points.bottomRight, + 0.66 + ); paths.seam = new Path() .move(points.startRight) @@ -57,7 +71,6 @@ export default function(part) { from: points.bottomRight.shift(180, 15), to: points.topRight.shift(180, 15), text: units(store.get("chestPocketBagDepth") * 2) - }); if (paperless) { diff --git a/packages/cathrin/src/base.js b/packages/cathrin/src/base.js index 8f7b0aeecbf..33be3a9cd90 100644 --- a/packages/cathrin/src/base.js +++ b/packages/cathrin/src/base.js @@ -1,110 +1,137 @@ export default function(part) { - // prettier-ignore - let {measurements, options, store, points, snippets, paths, Point, Snippet, Path, utils, complete, debug } = part.shorthand(); + let { + measurements, + options, + store, + points, + paths, + Point, + Path, + utils, + debug + } = part.shorthand(); // Where to divide our corset into panels - if (options.panels === 11) store.set('gaps', [0.15,0.275,0.4,0.6,0.75]); - else store.set('gaps', [0.2,0.35,0.5,0.65,0.8]); + if (options.panels === 11) store.set("gaps", [0.15, 0.275, 0.4, 0.6, 0.75]); + else store.set("gaps", [0.2, 0.35, 0.5, 0.65, 0.8]); // Absolute values for some options - store.set('waistReduction', measurements.naturalWaist * options.waistReduction); + store.set( + "waistReduction", + measurements.naturalWaist * options.waistReduction + ); debug({ type: "info", - label: '✅ Waist reduction', - msg: utils.units(store.get('waistReduction')) + label: "✅ Waist reduction", + msg: utils.units(store.get("waistReduction")) }); - store.set('backOpening', measurements.underbust * options.backOpening); + store.set("backOpening", measurements.underbust * options.backOpening); debug({ type: "info", - label: '✅ Back opening', - msg: utils.units(store.get('backOpening')) + label: "✅ Back opening", + msg: utils.units(store.get("backOpening")) }); - let len = measurements.naturalWaistToUnderbust + measurements.naturalWaistToHip; - for(let option of ['backRise', 'backDrop', 'frontRise', 'frontDrop', 'hipRise']) + let len = + measurements.naturalWaistToUnderbust + measurements.naturalWaistToHip; + for (let option of [ + "backRise", + "backDrop", + "frontRise", + "frontDrop", + "hipRise" + ]) store.set(option, len * options[option]); - store.set('length', len); + store.set("length", len); /** - * How much should we take in the corset at waist and bust - * - * I assume that the hips are larger than the underbust. - * Can I be sure? Maybe not, but a larger underbust than hip - * measurements seems very rare to say the least. - */ - store.set('width', 0.5 * ( - measurements.hipsCircumference - - store.get('backOpening') - )); - store.set('waistIntake', 0.5 * ( - measurements.hipsCircumference - - measurements.naturalWaist + - store.get('waistReduction') - )); - store.set('bustIntake', 0.5 * ( - measurements.hipsCircumference - - measurements.underbust - )); + * How much should we take in the corset at waist and bust + * + * I assume that the hips are larger than the underbust. + * Can I be sure? Maybe not, but a larger underbust than hip + * measurements seems very rare to say the least. + */ + store.set( + "width", + 0.5 * (measurements.hipsCircumference - store.get("backOpening")) + ); + store.set( + "waistIntake", + 0.5 * + (measurements.hipsCircumference - + measurements.naturalWaist + + store.get("waistReduction")) + ); + store.set( + "bustIntake", + 0.5 * (measurements.hipsCircumference - measurements.underbust) + ); - // Basic box (CB = Center back, CF = Center front) - let wid = store.get('width'); - points.underbustCF = new Point(0,0); - points.hipsCF = new Point(0, len); - points.hipsCB = new Point(wid, len); - points.underbustCB = new Point(wid , 0); - points.topSide = points.underbustCF.shiftFractionTowards(points.underbustCB, 0.5); - points.bottomSide = points.hipsCF.shiftFractionTowards(points.hipsCB, 0.5); - points.waistCF = points.underbustCF.shift(-90, measurements.naturalWaistToUnderbust); - points.waistCB = new Point(points.hipsCB.x, points.waistCF.y); + // Basic box (CB = Center back, CF = Center front) + let wid = store.get("width"); + points.underbustCF = new Point(0, 0); + points.hipsCF = new Point(0, len); + points.hipsCB = new Point(wid, len); + points.underbustCB = new Point(wid, 0); + points.topSide = points.underbustCF.shiftFractionTowards( + points.underbustCB, + 0.5 + ); + points.bottomSide = points.hipsCF.shiftFractionTowards(points.hipsCB, 0.5); + points.waistCF = points.underbustCF.shift( + -90, + measurements.naturalWaistToUnderbust + ); + points.waistCB = new Point(points.hipsCB.x, points.waistCF.y); - // frontRise - points.topCF = points.underbustCF.shift(90, store.get('frontRise')); - points.frontRiseStart = points.underbustCF.shift(0, wid * 0.15); - points.frontRiseStartCp2 = points.underbustCF.shift(0, wid * 0.11); - points.topCFCp1 = points.topCF.shift(0, wid * 0.11); + // frontRise + points.topCF = points.underbustCF.shift(90, store.get("frontRise")); + points.frontRiseStart = points.underbustCF.shift(0, wid * 0.15); + points.frontRiseStartCp2 = points.underbustCF.shift(0, wid * 0.11); + points.topCFCp1 = points.topCF.shift(0, wid * 0.11); - // frontDrop - points.bottomCF = points.hipsCF.shift(-90, store.get('frontDrop')); - points.bottomCFCp2 = points.bottomCF.shift(0, wid * 0.11); + // frontDrop + points.bottomCF = points.hipsCF.shift(-90, store.get("frontDrop")); + points.bottomCFCp2 = points.bottomCF.shift(0, wid * 0.11); - // hipRise - points.hipRise = points.bottomSide.shift(90, store.get('hipRise')); - points.hipRiseCp1 = points.hipRise.shift(180, wid * 0.3); - points.hipRiseCp2 = points.hipRise.shift(0, wid * 0.2); + // hipRise + points.hipRise = points.bottomSide.shift(90, store.get("hipRise")); + points.hipRiseCp1 = points.hipRise.shift(180, wid * 0.3); + points.hipRiseCp2 = points.hipRise.shift(0, wid * 0.2); - // backDrop - points.backDrop = points.hipsCB.shift(-90, store.get('backDrop')); - points.backDropCp1 = points.backDrop.shift(180, wid * 0.3); + // backDrop + points.backDrop = points.hipsCB.shift(-90, store.get("backDrop")); + points.backDropCp1 = points.backDrop.shift(180, wid * 0.3); - // backRise - points.backRise = points.underbustCB.shift(90, store.get('backRise')); - points.backRiseCp1 = points.backRise.shift(180, wid * 0.4); - points.topSideCp1 = points.topSide.shift(0, wid * 0.2); + // backRise + points.backRise = points.underbustCB.shift(90, store.get("backRise")); + points.backRiseCp1 = points.backRise.shift(180, wid * 0.4); + points.topSideCp1 = points.topSide.shift(0, wid * 0.2); - // Paths - paths.help1 = new Path() - .move(points.underbustCF) - .line(points.hipsCF) - .line(points.hipsCB) - .line(points.underbustCB) - .close(); - paths.help2 = new Path() - .move(points.topSide) - .line(points.bottomSide) - .line(points.waistCF) - .line(points.waistCB); - paths.help1.render = false; - paths.help2.render = false; + // Paths + paths.help1 = new Path() + .move(points.underbustCF) + .line(points.hipsCF) + .line(points.hipsCB) + .line(points.underbustCB) + .close(); + paths.help2 = new Path() + .move(points.topSide) + .line(points.bottomSide) + .line(points.waistCF) + .line(points.waistCB); + paths.help1.render = false; + paths.help2.render = false; - paths.outline = new Path() - .move(points.bottomCF) - .curve(points.bottomCFCp2, points.hipRiseCp1, points.hipRise) - .curve(points.hipRiseCp2, points.backDropCp1, points.backDrop) - .line(points.backRise) - .curve(points.backRiseCp1, points.topSideCp1, points.topSide) - .line(points.frontRiseStart) - .curve(points.frontRiseStartCp2, points.topCFCp1, points.topCF) - .line(points.bottomCF) - .close(); + paths.outline = new Path() + .move(points.bottomCF) + .curve(points.bottomCFCp2, points.hipRiseCp1, points.hipRise) + .curve(points.hipRiseCp2, points.backDropCp1, points.backDrop) + .line(points.backRise) + .curve(points.backRiseCp1, points.topSideCp1, points.topSide) + .line(points.frontRiseStart) + .curve(points.frontRiseStartCp2, points.topCFCp1, points.topCF) + .line(points.bottomCF) + .close(); return part; -}; +} diff --git a/packages/cathrin/src/panel1.js b/packages/cathrin/src/panel1.js index a827d914fd5..a6f201c7b29 100644 --- a/packages/cathrin/src/panel1.js +++ b/packages/cathrin/src/panel1.js @@ -1,8 +1,15 @@ -import draftPanel1ab from './panel1ab'; +import draftPanel1ab from "./panel1ab"; export default function(part) { - // prettier-ignore - let {macro, sa, points, paths, Point, Path, options, complete, paperless } = part.shorthand(); + let { + macro, + sa, + paths, + Path, + options, + complete, + paperless + } = part.shorthand(); delete paths.outline; delete paths.panel2; @@ -14,58 +21,61 @@ export default function(part) { if (options.panels === 13) return draftPanel1ab(part); // Complete pattern? - if(complete) { - macro('cutonfold', { + if (complete) { + macro("cutonfold", { to: points.bottomCF, from: points.topCF, grainline: true }); - points.title = points.waistCF.shiftFractionTowards(points.underbustGap1Left, 0.5); - macro('title', { + points.title = points.waistCF.shiftFractionTowards( + points.underbustGap1Left, + 0.5 + ); + macro("title", { nr: 1, - title: '', + title: "", at: points.title }); - if(sa) paths.sa = paths.panel1.offset(sa).attr('class', 'fabric sa'); + if (sa) paths.sa = paths.panel1.offset(sa).attr("class", "fabric sa"); } // Paperless? if (paperless) { - macro('vd', { + macro("vd", { from: points.bottomCF, to: points.waistCF, x: points.topCF.x - sa - 15 }); - macro('vd', { + macro("vd", { from: points.waistCF, to: points.topCF, x: points.topCF.x - sa - 15 }); - macro('vd', { + macro("vd", { from: points.hipsGap1, to: points.waistGap1Left, x: points.hipsGap1.x + sa + 15 }); - macro('vd', { + macro("vd", { from: points.waistGap1Left, to: points.underbustGap1Left, x: points.hipsGap1.x + sa + 15 }); - macro('hd', { + macro("hd", { from: points.bottomCF, to: points.hipsGap1, y: points.bottomCF.y + sa + 15 }); - macro('hd', { + macro("hd", { from: points.topCF, to: points.underbustGap1Left, y: points.topCF.y - sa - 15 }); - macro('ld', { + macro("ld", { from: points.waistCF, to: points.waistGap1Left }); } return part; -}; +} diff --git a/packages/cathrin/src/panel1ab.js b/packages/cathrin/src/panel1ab.js index 3c4b93b11d2..37fa6c0d5a7 100644 --- a/packages/cathrin/src/panel1ab.js +++ b/packages/cathrin/src/panel1ab.js @@ -1,6 +1,15 @@ export default function(part) { - // prettier-ignore - let {macro, utils, sa, points, paths, Point, Path, options, complete, paperless } = part.shorthand(); + let { + macro, + utils, + sa, + points, + paths, + Point, + Path, + complete, + paperless + } = part.shorthand(); let top = new Path() .move(points.underbustGap1Left) @@ -8,56 +17,74 @@ export default function(part) { points.topABsplit = top.shiftFractionAlong(0.3); let bottom = new Path() .move(points.bottomCF) - .curve(paths.panel1.ops[1].cp1, paths.panel1.ops[1].cp2, paths.panel1.ops[1].to); + .curve( + paths.panel1.ops[1].cp1, + paths.panel1.ops[1].cp2, + paths.panel1.ops[1].to + ); points.bottomABsplit = bottom.shiftFractionAlong(0.3); - paths.panel1a = bottom.split(points.bottomABsplit)[0] + paths.panel1a = bottom + .split(points.bottomABsplit)[0] .line(points.topABsplit) .join(top.split(points.topABsplit)[1]) .line(points.bottomCF) .close() - .attr('class', 'fabric'); - paths.panel1b = bottom.split(points.bottomABsplit)[1] + .attr("class", "fabric"); + paths.panel1b = bottom + .split(points.bottomABsplit)[1] .curve(points.hipsGap1Cp, points.waistGap1LeftCp1, points.waistGap1Left) - .curve(points.waistGap1LeftCp2, points.underbustGap1LeftCp, points.underbustGap1Left) + .curve( + points.waistGap1LeftCp2, + points.underbustGap1LeftCp, + points.underbustGap1Left + ) .join(top.split(points.topABsplit)[0]) .line(points.bottomABsplit) .close() - .attr('class', 'fabric'); + .attr("class", "fabric"); let translation = 5; - if (sa) translation = 2*sa + 5; - paths.panel1b = paths.panel1b.translate(translation,0); + if (sa) translation = 2 * sa + 5; + paths.panel1b = paths.panel1b.translate(translation, 0); delete paths.panel1; // Complete pattern? - if(complete) { + if (complete) { if (sa) { - paths.saA = paths.panel1a.offset(sa).attr('class', 'fabric sa'); - paths.saB = paths.panel1b.offset(sa).attr('class', 'fabric sa'); + paths.saA = paths.panel1a.offset(sa).attr("class", "fabric sa"); + paths.saB = paths.panel1b.offset(sa).attr("class", "fabric sa"); } - macro('cutonfold', { + macro("cutonfold", { to: points.bottomCF, from: points.topCF, grainline: true }); - macro('grainline', { + macro("grainline", { to: points.topABsplit.translate(translation, 0), from: new Point( points.topABsplit.translate(translation, 0).x, points.hipsGap1.translate(translation, 0).y ) }); - points.midwayAB = points.topABsplit.shiftFractionTowards(points.bottomABsplit, 0.5); - points.titleA = points.underbustCF.shiftFractionTowards(points.midwayAB, 0.5); - macro('title', { - nr: '1a', - prefix: 'panel1a', + points.midwayAB = points.topABsplit.shiftFractionTowards( + points.bottomABsplit, + 0.5 + ); + points.titleA = points.underbustCF.shiftFractionTowards( + points.midwayAB, + 0.5 + ); + macro("title", { + nr: "1a", + prefix: "panel1a", at: points.titleA }); - points.titleB = points.hipsGap1.translate(translation, 0).shiftFractionTowards(points.midwayAB, 0.5); - macro('title', { - nr: '1b', - prefix: 'panel1b', + points.titleB = points.hipsGap1 + .translate(translation, 0) + .shiftFractionTowards(points.midwayAB, 0.5); + macro("title", { + nr: "1b", + prefix: "panel1b", at: points.titleB }); } @@ -65,77 +92,77 @@ export default function(part) { // Paperless? if (paperless) { // 1a - macro('vd', { + macro("vd", { from: points.bottomCF, to: points.waistCF, x: points.topCF.x - sa - 30 }); - macro('vd', { + macro("vd", { from: points.waistCF, to: points.topCF, x: points.topCF.x - sa - 30 }); points.waistAB = utils.beamsIntersect( - points.topABsplit, - points.bottomABsplit, - points.waistCF, - points.waistGap1 + points.topABsplit, + points.bottomABsplit, + points.waistCF, + points.waistGap1 ); - macro('vd', { + macro("vd", { from: points.bottomABsplit, to: points.waistAB, x: points.topCF.x - sa - 15 }); - macro('vd', { + macro("vd", { from: points.waistAB, to: points.topABsplit, x: points.topCF.x - sa - 15 }); - macro('hd', { + macro("hd", { from: points.bottomCF, to: points.bottomABsplit, y: points.bottomCF.y + sa + 15 }); - macro('ld', { + macro("ld", { from: points.waistCF, - to: points.waistAB, + to: points.waistAB }); - macro('hd', { + macro("hd", { from: points.topCF, to: points.topABsplit, y: points.topCF.y - sa - 15 }); // 1b - macro('vd', { + macro("vd", { from: points.hipsGap1.translate(translation, 0), to: points.waistGap1Left.translate(translation, 0), x: points.underbustGap1Left.translate(translation, 0).x + sa + 15 }); - macro('vd', { + macro("vd", { from: points.waistGap1Left.translate(translation, 0), to: points.underbustGap1Left.translate(translation, 0), x: points.underbustGap1Left.translate(translation, 0).x + sa + 15 }); - macro('vd', { + macro("vd", { from: points.bottomABsplit.translate(translation, 0), to: points.waistAB.translate(translation, 0), x: points.underbustGap1Left.translate(translation, 0).x + sa + 30 }); - macro('vd', { + macro("vd", { from: points.waistAB.translate(translation, 0), to: points.topABsplit.translate(translation, 0), x: points.underbustGap1Left.translate(translation, 0).x + sa + 30 }); - macro('hd', { + macro("hd", { from: points.bottomABsplit.translate(translation, 0), to: points.hipsGap1.translate(translation, 0), y: points.bottomABsplit.y + sa + 15 }); - macro('ld', { + macro("ld", { from: points.waistAB.translate(translation, 0), to: points.waistGap1Left.translate(translation, 0) }); - macro('hd', { + macro("hd", { from: points.topABsplit.translate(translation, 0), to: points.underbustGap1Left.translate(translation, 0), y: points.topABsplit.y - sa - 15 @@ -143,4 +170,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/cathrin/src/panel2.js b/packages/cathrin/src/panel2.js index 2528563b6c9..8e2d83574b7 100644 --- a/packages/cathrin/src/panel2.js +++ b/packages/cathrin/src/panel2.js @@ -1,6 +1,13 @@ export default function(part) { - // prettier-ignore - let {macro, sa, points, paths, Point, complete, paperless } = part.shorthand(); + let { + macro, + sa, + points, + paths, + Point, + complete, + paperless + } = part.shorthand(); delete paths.outline; delete paths.panel1; @@ -10,7 +17,7 @@ export default function(part) { delete paths.panel6; // Complete pattern? - if(complete) { + if (complete) { points.grainlineTop = new Point( points.waistGap1Right.shiftFractionTowards(points.waistGap2Left, 0.5).x, points.underbustGap1Right.y @@ -19,51 +26,54 @@ export default function(part) { points.grainlineTop.x, points.hipsGap2.y ); - macro('grainline', { + macro("grainline", { from: points.grainlineBottom, to: points.grainlineTop }); - points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap2Left)/2); - macro('title', { + points.title = points.grainlineTop.shift( + -90, + points.grainlineTop.dy(points.waistGap2Left) / 2 + ); + macro("title", { nr: 2, - title: '', + title: "", at: points.title }); - if(sa) paths.sa = paths.panel2.offset(sa).attr('class', 'fabric sa'); + if (sa) paths.sa = paths.panel2.offset(sa).attr("class", "fabric sa"); } // Paperless? if (paperless) { - macro('hd', { + macro("hd", { from: points.hipsGap1, to: points.hipsGap2, y: points.hipsGap1.y + sa + 15 }); - macro('ld', { + macro("ld", { from: points.waistGap1Right, to: points.waistGap2Left }); - macro('hd', { + macro("hd", { from: points.underbustGap1Right, to: points.underbustGap2Left, y: points.underbustGap1Right.y - sa - 15 }); - macro('vd', { + macro("vd", { from: points.hipsGap1, to: points.waistGap1Right, x: points.hipsGap1.x - sa - 15 }); - macro('vd', { + macro("vd", { from: points.waistGap1Right, to: points.underbustGap1Right, x: points.hipsGap1.x - sa - 15 }); - macro('vd', { + macro("vd", { from: points.hipsGap2, to: points.waistGap1Right, x: points.hipsGap2.x + sa + 15 }); - macro('vd', { + macro("vd", { from: points.waistGap1Right, to: points.underbustGap2Left, x: points.hipsGap2.x + sa + 15 @@ -71,4 +81,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/cathrin/src/panel3.js b/packages/cathrin/src/panel3.js index 1830b325a88..e5204bc155e 100644 --- a/packages/cathrin/src/panel3.js +++ b/packages/cathrin/src/panel3.js @@ -1,6 +1,13 @@ export default function(part) { - // prettier-ignore - let {macro, sa, points, paths, Point, complete, paperless } = part.shorthand(); + let { + macro, + sa, + points, + paths, + Point, + complete, + paperless + } = part.shorthand(); delete paths.outline; delete paths.panel1; @@ -10,7 +17,7 @@ export default function(part) { delete paths.panel6; // Complete pattern? - if(complete) { + if (complete) { points.grainlineTop = new Point( points.waistGap2Right.shiftFractionTowards(points.waistGap3Left, 0.5).x, points.underbustGap2Right.y @@ -19,51 +26,54 @@ export default function(part) { points.grainlineTop.x, points.hipsGap3.y ); - macro('grainline', { + macro("grainline", { from: points.grainlineBottom, to: points.grainlineTop }); - points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap3Left)/2); - macro('title', { + points.title = points.grainlineTop.shift( + -90, + points.grainlineTop.dy(points.waistGap3Left) / 2 + ); + macro("title", { nr: 3, - title: '', + title: "", at: points.title }); - if(sa) paths.sa = paths.panel3.offset(sa).attr('class', 'fabric sa'); + if (sa) paths.sa = paths.panel3.offset(sa).attr("class", "fabric sa"); } // Paperless? if (paperless) { - macro('hd', { + macro("hd", { from: points.hipsGap2, to: points.hipsGap3, y: points.hipsGap2.y + sa + 15 }); - macro('ld', { + macro("ld", { from: points.waistGap2Right, to: points.waistGap3Left }); - macro('hd', { + macro("hd", { from: points.underbustGap2Right, to: points.underbustGap3Left, y: points.underbustGap2Right.y - sa - 15 }); - macro('vd', { + macro("vd", { from: points.hipsGap2, to: points.waistGap2Right, x: points.hipsGap2.x - sa - 15 }); - macro('vd', { + macro("vd", { from: points.waistGap2Right, to: points.underbustGap2Right, x: points.hipsGap2.x - sa - 15 }); - macro('vd', { + macro("vd", { from: points.hipsGap3, to: points.waistGap2Right, x: points.hipsGap3.x + sa + 15 }); - macro('vd', { + macro("vd", { from: points.waistGap2Right, to: points.underbustGap3Left, x: points.hipsGap3.x + sa + 15 @@ -71,4 +81,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/cathrin/src/panel4.js b/packages/cathrin/src/panel4.js index 880675d19e3..1bef21891d1 100644 --- a/packages/cathrin/src/panel4.js +++ b/packages/cathrin/src/panel4.js @@ -1,77 +1,92 @@ export default function(part) { - // prettier-ignore - let {macro, sa, snippets, Snippet, points, paths, Point, complete, paperless } = part.shorthand(); + let { + macro, + sa, + snippets, + Snippet, + points, + paths, + Point, + complete, + paperless + } = part.shorthand(); - delete paths.outline; - delete paths.panel1; - delete paths.panel2; - delete paths.panel3; - delete paths.panel5; - delete paths.panel6; + delete paths.outline; + delete paths.panel1; + delete paths.panel2; + delete paths.panel3; + delete paths.panel5; + delete paths.panel6; - // Complete pattern? - if(complete) { - points.grainlineTop = new Point( - points.waistGap3Right.shiftFractionTowards(points.waistGap4Left, 0.5).x, - points.underbustGap3Right.y - ); - points.grainlineBottom = new Point( - points.grainlineTop.x, - points.hipsGap4.y - ); - macro('grainline', { - from: points.grainlineBottom, - to: points.grainlineTop - }); - points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap4Left)/2); - macro('title', { - nr: 4, - title: '', - at: points.title - }); - points.logo = points.grainlineTop.shiftFractionTowards(points.grainlineBottom, 0.8); - snippets.logo = new Snippet('logo', points.logo).attr('data-scale', 0.8); + // Complete pattern? + if (complete) { + points.grainlineTop = new Point( + points.waistGap3Right.shiftFractionTowards(points.waistGap4Left, 0.5).x, + points.underbustGap3Right.y + ); + points.grainlineBottom = new Point( + points.grainlineTop.x, + points.hipsGap4.y + ); + macro("grainline", { + from: points.grainlineBottom, + to: points.grainlineTop + }); + points.title = points.grainlineTop.shift( + -90, + points.grainlineTop.dy(points.waistGap4Left) / 2 + ); + macro("title", { + nr: 4, + title: "", + at: points.title + }); + points.logo = points.grainlineTop.shiftFractionTowards( + points.grainlineBottom, + 0.8 + ); + snippets.logo = new Snippet("logo", points.logo).attr("data-scale", 0.8); - if(sa) paths.sa = paths.panel4.offset(sa).attr('class', 'fabric sa'); - } + if (sa) paths.sa = paths.panel4.offset(sa).attr("class", "fabric sa"); + } - // Paperless? - if (paperless) { - macro('hd', { - from: points.hipsGap3, - to: points.hipsGap4, - y: points.hipsGap3.y + sa + 15 - }); - macro('ld', { - from: points.waistGap3Right, - to: points.waistGap4Left - }); - macro('hd', { - from: points.underbustGap3Right, - to: points.underbustGap4Left, - y: points.underbustGap4Left.y - sa - 15 - }); - macro('vd', { - from: points.hipsGap3, - to: points.waistGap3Right, - x: points.hipsGap3.x - sa - 15 - }); - macro('vd', { - from: points.waistGap3Right, - to: points.underbustGap3Right, - x: points.hipsGap3.x - sa - 15 - }); - macro('vd', { - from: points.hipsGap4, - to: points.waistGap3Right, - x: points.hipsGap4.x + sa + 15 - }); - macro('vd', { - from: points.waistGap3Right, - to: points.underbustGap4Left, - x: points.hipsGap4.x + sa + 15 - }); - } + // Paperless? + if (paperless) { + macro("hd", { + from: points.hipsGap3, + to: points.hipsGap4, + y: points.hipsGap3.y + sa + 15 + }); + macro("ld", { + from: points.waistGap3Right, + to: points.waistGap4Left + }); + macro("hd", { + from: points.underbustGap3Right, + to: points.underbustGap4Left, + y: points.underbustGap4Left.y - sa - 15 + }); + macro("vd", { + from: points.hipsGap3, + to: points.waistGap3Right, + x: points.hipsGap3.x - sa - 15 + }); + macro("vd", { + from: points.waistGap3Right, + to: points.underbustGap3Right, + x: points.hipsGap3.x - sa - 15 + }); + macro("vd", { + from: points.hipsGap4, + to: points.waistGap3Right, + x: points.hipsGap4.x + sa + 15 + }); + macro("vd", { + from: points.waistGap3Right, + to: points.underbustGap4Left, + x: points.hipsGap4.x + sa + 15 + }); + } - return part; -}; + return part; +} diff --git a/packages/cathrin/src/panel5.js b/packages/cathrin/src/panel5.js index 36f774b817a..84757155c55 100644 --- a/packages/cathrin/src/panel5.js +++ b/packages/cathrin/src/panel5.js @@ -1,6 +1,13 @@ export default function(part) { - // prettier-ignore - let {macro, sa, points, paths, Point, complete, paperless } = part.shorthand(); + let { + macro, + sa, + points, + paths, + Point, + complete, + paperless + } = part.shorthand(); delete paths.outline; delete paths.panel1; @@ -10,7 +17,7 @@ export default function(part) { delete paths.panel6; // Complete pattern? - if(complete) { + if (complete) { points.grainlineTop = new Point( points.waistGap4Right.shiftFractionTowards(points.waistGap5Left, 0.5).x, points.underbustGap4Right.y @@ -19,51 +26,54 @@ export default function(part) { points.grainlineTop.x, points.hipsGap5.y ); - macro('grainline', { + macro("grainline", { from: points.grainlineBottom, to: points.grainlineTop }); - points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap5Left)/2); - macro('title', { + points.title = points.grainlineTop.shift( + -90, + points.grainlineTop.dy(points.waistGap5Left) / 2 + ); + macro("title", { nr: 5, - title: '', + title: "", at: points.title }); - if(sa) paths.sa = paths.panel5.offset(sa).attr('class', 'fabric sa'); + if (sa) paths.sa = paths.panel5.offset(sa).attr("class", "fabric sa"); } // Paperless? if (paperless) { - macro('hd', { + macro("hd", { from: points.hipsGap4, to: points.hipsGap5, y: points.hipsGap4.y + sa + 15 }); - macro('ld', { + macro("ld", { from: points.waistGap4Right, to: points.waistGap5Left }); - macro('hd', { + macro("hd", { from: points.underbustGap4Right, to: points.underbustGap5Left, y: points.underbustGap5Left.y - sa - 15 }); - macro('vd', { + macro("vd", { from: points.hipsGap4, to: points.waistGap4Right, x: points.hipsGap4.x - sa - 15 }); - macro('vd', { + macro("vd", { from: points.waistGap4Right, to: points.underbustGap4Right, x: points.hipsGap4.x - sa - 15 }); - macro('vd', { + macro("vd", { from: points.hipsGap5, to: points.waistGap4Right, x: points.hipsGap5.x + sa + 15 }); - macro('vd', { + macro("vd", { from: points.waistGap4Right, to: points.underbustGap5Left, x: points.hipsGap5.x + sa + 15 @@ -71,4 +81,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/cathrin/src/panel6.js b/packages/cathrin/src/panel6.js index 48034e7f69e..9099834f335 100644 --- a/packages/cathrin/src/panel6.js +++ b/packages/cathrin/src/panel6.js @@ -1,6 +1,13 @@ export default function(part) { - // prettier-ignore - let {macro, sa, points, paths, Point, complete, paperless } = part.shorthand(); + let { + macro, + sa, + points, + paths, + Point, + complete, + paperless + } = part.shorthand(); delete paths.outline; delete paths.panel1; @@ -10,7 +17,7 @@ export default function(part) { delete paths.panel5; // Complete pattern? - if(complete) { + if (complete) { points.grainlineTop = new Point( points.waistGap5Right.shiftFractionTowards(points.waistCB, 0.5).x, points.underbustGap5Right.y @@ -19,59 +26,59 @@ export default function(part) { points.grainlineTop.x, points.hipsGap5.y ); - macro('grainline', { + macro("grainline", { from: points.grainlineBottom, to: points.grainlineTop }); - points.title = points.grainlineTop.shift(-90, points.grainlineTop.dy(points.waistGap5Right)/2); - macro('title', { + points.title = points.grainlineTop.shift( + -90, + points.grainlineTop.dy(points.waistGap5Right) / 2 + ); + macro("title", { nr: 6, - title: '', + title: "", at: points.title }); - points.scalebox = new Point( - points.grainlineTop.x, - points.hipsGap5.y - 55 - ); - macro('scalebox', { + points.scalebox = new Point(points.grainlineTop.x, points.hipsGap5.y - 55); + macro("scalebox", { at: points.scalebox, rotate: 90 }); - if(sa) paths.sa = paths.panel6.offset(sa).attr('class', 'fabric sa'); + if (sa) paths.sa = paths.panel6.offset(sa).attr("class", "fabric sa"); } // Paperless? if (paperless) { - macro('hd', { + macro("hd", { from: points.hipsGap5, to: points.backDrop, y: points.backDrop.y + sa + 15 }); - macro('ld', { + macro("ld", { from: points.waistGap5Right, to: points.waistCB }); - macro('hd', { + macro("hd", { from: points.underbustGap5Right, to: points.backRise, y: points.backRise.y - sa - 15 }); - macro('vd', { + macro("vd", { from: points.hipsGap5, to: points.waistGap5Right, x: points.hipsGap5.x - sa - 15 }); - macro('vd', { + macro("vd", { from: points.waistGap5Right, to: points.underbustGap5Right, x: points.hipsGap5.x - sa - 15 }); - macro('vd', { + macro("vd", { from: points.backDrop, to: points.waistCB, x: points.backDrop.x + sa + 15 }); - macro('vd', { + macro("vd", { from: points.waistCB, to: points.backRise, x: points.backDrop.x + sa + 15 @@ -79,4 +86,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/cathrin/src/panels.js b/packages/cathrin/src/panels.js index 11339d49f36..c35f72f6186 100644 --- a/packages/cathrin/src/panels.js +++ b/packages/cathrin/src/panels.js @@ -1,33 +1,79 @@ export default function(part) { - // prettier-ignore - let {measurements, options, store, points, snippets, paths, Point, Snippet, Path, utils, complete, debug } = part.shorthand(); + let { + measurements, + options, + store, + points, + paths, + Point, + Path, + debug + } = part.shorthand(); let count = 1; let bottom = new Path() .move(points.bottomCF) .curve(points.bottomCFCp2, points.hipRiseCp1, points.hipRise) .curve(points.hipRiseCp2, points.backDropCp1, points.backDrop) - .attr('class', 'lashed various stroke-xl'); - for (let gap of store.get('gaps')) { + .attr("class", "lashed various stroke-xl"); + for (let gap of store.get("gaps")) { // Underbust - points[`underbustGap${count}`] = new Point(store.get('width') * gap, 0); - points[`underbustGap${count}Right`] = points[`underbustGap${count}`].shift(0, store.get('bustIntake') * 0.1); - points[`underbustGap${count}Left`] = points[`underbustGap${count}`].shift(180, store.get('bustIntake') * 0.1); - points[`underbustGap${count}RightCp`] = points[`underbustGap${count}Right`].shift(-90, measurements.naturalWaistToUnderbust * 0.15); - points[`underbustGap${count}LeftCp`] = points[`underbustGap${count}Left`].shift(-90, measurements.naturalWaistToUnderbust * 0.15); + points[`underbustGap${count}`] = new Point(store.get("width") * gap, 0); + points[`underbustGap${count}Right`] = points[`underbustGap${count}`].shift( + 0, + store.get("bustIntake") * 0.1 + ); + points[`underbustGap${count}Left`] = points[`underbustGap${count}`].shift( + 180, + store.get("bustIntake") * 0.1 + ); + points[`underbustGap${count}RightCp`] = points[ + `underbustGap${count}Right` + ].shift(-90, measurements.naturalWaistToUnderbust * 0.15); + points[`underbustGap${count}LeftCp`] = points[ + `underbustGap${count}Left` + ].shift(-90, measurements.naturalWaistToUnderbust * 0.15); // Waist - points[`waistGap${count}`] = new Point(store.get('width') * gap, points.waistCF.y); - points[`waistGap${count}Right`] = points[`waistGap${count}`].shift(0, store.get('waistIntake') * 0.1); - points[`waistGap${count}Left`] = points[`waistGap${count}`].shift(180, store.get('waistIntake') * 0.1); - points[`waistGap${count}RightCp1`] = points[`waistGap${count}Right`].shift(90, measurements.naturalWaistToUnderbust * 0.2); - points[`waistGap${count}LeftCp2`] = points[`waistGap${count}Left`].shift(90, measurements.naturalWaistToUnderbust * 0.2); - points[`waistGap${count}RightCp2`] = points[`waistGap${count}Right`].shift(-90, measurements.naturalWaistToHip * 0.2); - points[`waistGap${count}LeftCp1`] = points[`waistGap${count}Left`].shift(-90, measurements.naturalWaistToHip * 0.2); + points[`waistGap${count}`] = new Point( + store.get("width") * gap, + points.waistCF.y + ); + points[`waistGap${count}Right`] = points[`waistGap${count}`].shift( + 0, + store.get("waistIntake") * 0.1 + ); + points[`waistGap${count}Left`] = points[`waistGap${count}`].shift( + 180, + store.get("waistIntake") * 0.1 + ); + points[`waistGap${count}RightCp1`] = points[`waistGap${count}Right`].shift( + 90, + measurements.naturalWaistToUnderbust * 0.2 + ); + points[`waistGap${count}LeftCp2`] = points[`waistGap${count}Left`].shift( + 90, + measurements.naturalWaistToUnderbust * 0.2 + ); + points[`waistGap${count}RightCp2`] = points[`waistGap${count}Right`].shift( + -90, + measurements.naturalWaistToHip * 0.2 + ); + points[`waistGap${count}LeftCp1`] = points[`waistGap${count}Left`].shift( + -90, + measurements.naturalWaistToHip * 0.2 + ); // Hips - points[`hipsGap${count}`] = new Point(store.get('width') * gap, points.hipsCF.y); - points[`hipsGap${count}`] = bottom.intersectsX(points[`waistGap${count}`].x).pop(); - points[`hipsGap${count}Cp`] = points[`hipsGap${count}`].shiftFractionTowards(points[`waistGap${count}`], 0.2); + points[`hipsGap${count}`] = new Point( + store.get("width") * gap, + points.hipsCF.y + ); + points[`hipsGap${count}`] = bottom + .intersectsX(points[`waistGap${count}`].x) + .pop(); + points[`hipsGap${count}Cp`] = points[ + `hipsGap${count}` + ].shiftFractionTowards(points[`waistGap${count}`], 0.2); count++; } @@ -35,21 +81,33 @@ export default function(part) { paths.panel1 = bottom .split(points.hipsGap1)[0] .curve(points.hipsGap1Cp, points.waistGap1LeftCp1, points.waistGap1Left) - .curve(points.waistGap1LeftCp2, points.underbustGap1LeftCp, points.underbustGap1Left) + .curve( + points.waistGap1LeftCp2, + points.underbustGap1LeftCp, + points.underbustGap1Left + ) .curve(points.frontRiseStartCp2, points.topCFCp1, points.topCF) .line(points.bottomCF) .close() - .attr('class', 'fabric'); + .attr("class", "fabric"); paths.panel2 = bottom .split(points.hipsGap2)[0] .split(points.hipsGap1)[1] .curve(points.hipsGap2Cp, points.waistGap2LeftCp1, points.waistGap2Left) - .curve(points.waistGap2LeftCp2, points.underbustGap2LeftCp, points.underbustGap2Left) + .curve( + points.waistGap2LeftCp2, + points.underbustGap2LeftCp, + points.underbustGap2Left + ) .line(points.underbustGap1Right) - .curve(points.underbustGap1RightCp, points.waistGap1RightCp1, points.waistGap1Right) + .curve( + points.underbustGap1RightCp, + points.waistGap1RightCp1, + points.waistGap1Right + ) .curve(points.waistGap1RightCp2, points.hipsGap1Cp, points.hipsGap1) .close() - .attr('class', 'fabric'); + .attr("class", "fabric"); let panel3 = new Path() .move(points.bottomCF) .curve(points.bottomCFCp2, points.hipRiseCp1, points.hipRise) @@ -57,31 +115,53 @@ export default function(part) { if (options.panels === 11) panel3 = panel3.split(points.hipsGap3)[0]; paths.panel3 = panel3 .curve(points.hipsGap3Cp, points.waistGap3LeftCp1, points.waistGap3Left) - .curve(points.waistGap3LeftCp2, points.underbustGap3LeftCp, points.underbustGap3Left) + .curve( + points.waistGap3LeftCp2, + points.underbustGap3LeftCp, + points.underbustGap3Left + ) .line(points.underbustGap2Right) - .curve(points.underbustGap2RightCp, points.waistGap2RightCp1, points.waistGap2Right) + .curve( + points.underbustGap2RightCp, + points.waistGap2RightCp1, + points.waistGap2Right + ) .curve(points.waistGap2RightCp2, points.hipsGap2Cp, points.hipsGap2) .close() - .attr('class', 'fabric'); + .attr("class", "fabric"); let topBack = new Path() .move(points.backRise) .curve(points.backRiseCp1, points.topSideCp1, points.topSide); - points.underbustGap4Left = topBack.intersectsX(points.underbustGap4Left.x).pop(); + points.underbustGap4Left = topBack + .intersectsX(points.underbustGap4Left.x) + .pop(); paths.panel4 = new Path() .move(points.hipRise) .curve(points.hipRiseCp2, points.backDropCp1, points.backDrop) .split(points.hipsGap4)[0] .curve(points.hipsGap4Cp, points.waistGap4LeftCp1, points.waistGap4Left) - .curve(points.waistGap4LeftCp2, points.underbustGap4LeftCp, points.underbustGap4Left) + .curve( + points.waistGap4LeftCp2, + points.underbustGap4LeftCp, + points.underbustGap4Left + ) .join(topBack.split(points.underbustGap4Left)[1]); - if(options.panels === 11) paths.panel4.line(points.underbustGap3Right); + if (options.panels === 11) paths.panel4.line(points.underbustGap3Right); paths.panel4 - .curve(points.underbustGap3RightCp, points.waistGap3RightCp1, points.waistGap3Right) + .curve( + points.underbustGap3RightCp, + points.waistGap3RightCp1, + points.waistGap3Right + ) .curve(points.waistGap3RightCp2, points.hipsGap3Cp, points.hipsGap3) .close() - .attr('class', 'fabric'); - points.underbustGap4Right = topBack.intersectsX(points.underbustGap4Right.x).pop(); - points.underbustGap5Left = topBack.intersectsX(points.underbustGap5Left.x).pop(); + .attr("class", "fabric"); + points.underbustGap4Right = topBack + .intersectsX(points.underbustGap4Right.x) + .pop(); + points.underbustGap5Left = topBack + .intersectsX(points.underbustGap5Left.x) + .pop(); let top5 = topBack .split(points.underbustGap5Left)[1] .split(points.underbustGap4Right)[0]; @@ -89,23 +169,37 @@ export default function(part) { .split(points.hipsGap5)[0] .split(points.hipsGap4)[1] .curve(points.hipsGap5Cp, points.waistGap5LeftCp1, points.waistGap5Left) - .curve(points.waistGap5LeftCp2, points.underbustGap5LeftCp, points.underbustGap5Left) + .curve( + points.waistGap5LeftCp2, + points.underbustGap5LeftCp, + points.underbustGap5Left + ) .curve(top5.ops[1].cp1, top5.ops[1].cp2, top5.ops[1].to) - .curve(points.underbustGap4RightCp, points.waistGap4RightCp1, points.waistGap4Right) + .curve( + points.underbustGap4RightCp, + points.waistGap4RightCp1, + points.waistGap4Right + ) .curve(points.waistGap4RightCp2, points.hipsGap4Cp, points.hipsGap4) .close() - .attr('class', 'fabric'); - points.underbustGap5Right = topBack.intersectsX(points.underbustGap5Right.x).pop(); + .attr("class", "fabric"); + points.underbustGap5Right = topBack + .intersectsX(points.underbustGap5Right.x) + .pop(); paths.panel6 = bottom .split(points.hipsGap5)[1] .line(points.backRise) .join(topBack.split(points.underbustGap5Right)[0]) - .curve(points.underbustGap5RightCp, points.waistGap5RightCp1, points.waistGap5Right) + .curve( + points.underbustGap5RightCp, + points.waistGap5RightCp1, + points.waistGap5Right + ) .curve(points.waistGap5RightCp2, points.hipsGap5Cp, points.hipsGap5) .close() - .attr('class', 'fabric'); + .attr("class", "fabric"); paths.outline.render = false; return part; -}; +} diff --git a/packages/components/src/.form/FormFieldChecks/index.js b/packages/components/src/.form/FormFieldChecks/index.js index c02a0a87d8f..88910883de5 100644 --- a/packages/components/src/.form/FormFieldChecks/index.js +++ b/packages/components/src/.form/FormFieldChecks/index.js @@ -16,13 +16,9 @@ const FormFieldChecks = props => { props.updateValue(props.name, parts); }; - // Force state update when rerendering due to props change - // if (props.value !== value) setValue(props.value); - return ( {Object.keys(props.checks).map(i => { - let check = props.checks[i]; return ( { ); }; - const distance = { - asMm: () => false - }; - return ( ( diff --git a/packages/components/src/Draft/Part/index.js b/packages/components/src/Draft/Part/index.js index 6ae8f737e63..e67ac47ecd7 100644 --- a/packages/components/src/Draft/Part/index.js +++ b/packages/components/src/Draft/Part/index.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React from "react"; import PropTypes from "prop-types"; import Path from "../Path"; import Point from "../Point"; @@ -73,11 +73,6 @@ const Part = props => { let focus = []; if (props.design) { - let designProps = { - ...props, - key: "dp-" + props.name, - className: "design point" - }; if (props.focus && typeof props.focus[props.name] !== "undefined") { for (let i in props.focus[props.name].points) focus.push(focusPoint(props.focus[props.name].points[i], i)); diff --git a/packages/components/src/Draft/Path/index.js b/packages/components/src/Draft/Path/index.js index 49e3d2b129b..4ab256b741a 100644 --- a/packages/components/src/Draft/Path/index.js +++ b/packages/components/src/Draft/Path/index.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React from "react"; import PropTypes from "prop-types"; import TextOnPath from "../TextOnPath"; import DesignPath from "../DesignPath"; diff --git a/packages/components/src/Draft/Point/index.js b/packages/components/src/Draft/Point/index.js index d0769c32737..c7ed5dd0d89 100644 --- a/packages/components/src/Draft/Point/index.js +++ b/packages/components/src/Draft/Point/index.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React from "react"; import PropTypes from "prop-types"; import DesignPoint from "../DesignPoint"; import Text from "../Text"; diff --git a/packages/components/src/Draft/Snippet/index.js b/packages/components/src/Draft/Snippet/index.js index 8d9c19bcaaa..e0d27f638b3 100644 --- a/packages/components/src/Draft/Snippet/index.js +++ b/packages/components/src/Draft/Snippet/index.js @@ -1,7 +1,5 @@ -import React, { useState } from "react"; +import React from "react"; import PropTypes from "prop-types"; -import Text from "../Text"; -import Circle from "../Circle"; const Snippet = props => { const snippetProps = { diff --git a/packages/components/src/Draft/Style/index.js b/packages/components/src/Draft/Style/index.js deleted file mode 100644 index ed7e0e413f9..00000000000 --- a/packages/components/src/Draft/Style/index.js +++ /dev/null @@ -1,9 +0,0 @@ -import React, { useState } from "react"; -import PropTypes from "prop-types"; - -const Style = props => ; - -Style.propTypes = { css: PropTypes.string }; -Style.defaultProps = { css: "" }; - -export default Style; diff --git a/packages/components/src/Draft/Svg/index.js b/packages/components/src/Draft/Svg/index.js index 694dae627b0..07e759ef6cc 100644 --- a/packages/components/src/Draft/Svg/index.js +++ b/packages/components/src/Draft/Svg/index.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React from "react"; import PropTypes from "prop-types"; const Svg = props => { diff --git a/packages/components/src/Draft/Text/index.js b/packages/components/src/Draft/Text/index.js index 84f53adbe99..1afe2b75b3a 100644 --- a/packages/components/src/Draft/Text/index.js +++ b/packages/components/src/Draft/Text/index.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React from "react"; import PropTypes from "prop-types"; import { strings } from "@freesewing/i18n"; diff --git a/packages/components/src/Draft/TextOnPath/index.js b/packages/components/src/Draft/TextOnPath/index.js index 52e0d64ed17..5b48c1dc84a 100644 --- a/packages/components/src/Draft/TextOnPath/index.js +++ b/packages/components/src/Draft/TextOnPath/index.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React from "react"; import PropTypes from "prop-types"; import { strings } from "@freesewing/i18n"; diff --git a/packages/components/src/Draft/index.js b/packages/components/src/Draft/index.js index 65f6ce38e68..6f85f1afde9 100644 --- a/packages/components/src/Draft/index.js +++ b/packages/components/src/Draft/index.js @@ -1,42 +1,40 @@ -import React, { useState } from "react"; +import React from "react"; import PropTypes from "prop-types"; import Svg from "./Svg"; import Defs from "./Defs"; import Part from "./Part"; -const Draft = props => { - return ( - - - - {Object.keys(props.parts).map(name => ( - - ))} - - - ); -}; +const Draft = props => ( + + + + {Object.keys(props.parts).map(name => ( + + ))} + + +); Draft.propTypes = { parts: PropTypes.object.isRequired, diff --git a/packages/components/src/DraftConfigurator/DraftSettingMargin/index.js b/packages/components/src/DraftConfigurator/DraftSettingMargin/index.js index 787a6691c3b..61c0f3394cb 100644 --- a/packages/components/src/DraftConfigurator/DraftSettingMargin/index.js +++ b/packages/components/src/DraftConfigurator/DraftSettingMargin/index.js @@ -1,7 +1,7 @@ import React, { useState } from "react"; import PropTypes from "prop-types"; import FormFieldSlider from "../../.form/FormFieldSlider"; -import { formatMm, roundMm, defaultSa, sliderStep } from "@freesewing/utils"; +import { formatMm, roundMm, sliderStep } from "@freesewing/utils"; import OptionPreamble from "../OptionPreamble"; const DraftSettingMargin = props => { diff --git a/packages/components/src/DraftConfigurator/DraftSettingOnly/index.js b/packages/components/src/DraftConfigurator/DraftSettingOnly/index.js index 128b55790eb..50db8b4dc24 100644 --- a/packages/components/src/DraftConfigurator/DraftSettingOnly/index.js +++ b/packages/components/src/DraftConfigurator/DraftSettingOnly/index.js @@ -1,8 +1,6 @@ import React, { useState } from "react"; import FormFieldChecks from "../../.form/FormFieldChecks"; import FormFieldList from "../../.form/FormFieldList"; -import FormFieldSlider from "../../.form/FormFieldSlider"; -import { formatMm, roundMm, defaultSa, sliderStep } from "@freesewing/utils"; import OptionPreamble from "../OptionPreamble"; const DraftSettingOnly = props => { diff --git a/packages/components/src/DraftConfigurator/OptionGroup/index.js b/packages/components/src/DraftConfigurator/OptionGroup/index.js index 0d97f7fe697..17e885056c4 100644 --- a/packages/components/src/DraftConfigurator/OptionGroup/index.js +++ b/packages/components/src/DraftConfigurator/OptionGroup/index.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React from "react"; import PropTypes from "prop-types"; import Pct from "../PatternOptionPercentage"; import Deg from "../PatternOptionDegree"; @@ -59,10 +59,10 @@ const OptionGroup = props => { return ( {props.options.map(name => { - let key = name; + //let key = name; let output = []; if (typeof name === "object") { - key = Object.keys(name).pop(); + //key = Object.keys(name).pop(); // Subgroup for (let subGroup of Object.keys(name)) { output.push( diff --git a/packages/components/src/DraftConfigurator/OptionPreamble/index.js b/packages/components/src/DraftConfigurator/OptionPreamble/index.js index 3bae78bf1b6..fe13b6722a9 100644 --- a/packages/components/src/DraftConfigurator/OptionPreamble/index.js +++ b/packages/components/src/DraftConfigurator/OptionPreamble/index.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React from "react"; import PropTypes from "prop-types"; import IconButton from "@material-ui/core/IconButton"; import DownIcon from "@material-ui/icons/KeyboardArrowDown"; diff --git a/packages/components/src/DraftConfigurator/PatternOptionList/index.js b/packages/components/src/DraftConfigurator/PatternOptionList/index.js index 95ab8c8caaf..beecee323f4 100644 --- a/packages/components/src/DraftConfigurator/PatternOptionList/index.js +++ b/packages/components/src/DraftConfigurator/PatternOptionList/index.js @@ -19,19 +19,6 @@ const PatternOptionList = props => { const toggleExpanded = () => setExpanded(!expanded); - const styles = { - container: { - display: "flex", - flexDirection: "row", - alignItems: "center" - }, - left: { - flexGrow: 1, - margin: "0 0.5rem" - }, - right: { margin: "0 0.5rem" } - }; - // Add translations let stringKey = `options.${props.pattern}.${props.name}.options.`; let list = {}; diff --git a/packages/components/src/DraftConfigurator/PatternOptionMillimeter/index.js b/packages/components/src/DraftConfigurator/PatternOptionMillimeter/index.js index e3b5bd9d27b..3fa371ecdd4 100644 --- a/packages/components/src/DraftConfigurator/PatternOptionMillimeter/index.js +++ b/packages/components/src/DraftConfigurator/PatternOptionMillimeter/index.js @@ -36,19 +36,6 @@ const PatternOptionMillimeter = props => { const toggleExpanded = () => setExpanded(!expanded); - const styles = { - container: { - display: "flex", - flexDirection: "row", - alignItems: "center" - }, - left: { - flexGrow: 1, - margin: "0 0.5rem" - }, - right: { margin: "0 0.5rem" } - }; - let option = ( { const [expanded, setExpanded] = useState([]); - const toggleGroup = group => { - let shown = expanded.slice(0); - let index = shown.indexOf(group); - if (index === -1) shown.push(group); - else shown.splice(index, 1); - setExpanded(shown); - }; - console.log("dc props", props); return (
  • diff --git a/packages/components/src/Footer/index.js b/packages/components/src/Footer/index.js index 267f6bc5190..c523a076c05 100644 --- a/packages/components/src/Footer/index.js +++ b/packages/components/src/Footer/index.js @@ -1,8 +1,6 @@ import React from "react"; -import PropTypes from "prop-types"; import Logo from "../Logo"; import { FormattedMessage, FormattedHTMLMessage } from "react-intl"; -import Button from "@material-ui/core/Button"; import IconButton from "@material-ui/core/IconButton"; import Icon from "../Icon"; diff --git a/packages/components/src/Navbar/stories.js b/packages/components/src/Navbar/stories.js index 39b5d0a6924..c991caffc86 100644 --- a/packages/components/src/Navbar/stories.js +++ b/packages/components/src/Navbar/stories.js @@ -3,14 +3,7 @@ import { storiesOf } from "@storybook/react"; import Navbar from "."; import LanguageIcon from "@material-ui/icons/Translate"; import DarkModeIcon from "@material-ui/icons/Brightness3"; -import Avatar from "@material-ui/core/Avatar"; -const props = { - raiseEvent: (type, data) => - console.log(`Action of type ${type} triggered, data passed is`, data), - updateValue: (type, data) => - console.log(`Update ${type} with new value`, data) -}; const navs = { left: [ { diff --git a/packages/components/src/SampleConfigurator/OptionGroup/index.js b/packages/components/src/SampleConfigurator/OptionGroup/index.js index 2fde8075587..615c2065d3f 100644 --- a/packages/components/src/SampleConfigurator/OptionGroup/index.js +++ b/packages/components/src/SampleConfigurator/OptionGroup/index.js @@ -1,6 +1,5 @@ -import React, { useState } from "react"; +import React from "react"; import PropTypes from "prop-types"; -import { optionType } from "@freesewing/utils"; import { FormattedMessage } from "react-intl"; import { injectIntl } from "react-intl"; @@ -8,10 +7,8 @@ const OptionGroup = props => { return ( {props.options.map(name => { - let key = name; let output = []; if (typeof name === "object") { - key = Object.keys(name).pop(); // Subgroup for (let subGroup of Object.keys(name)) { output.push( diff --git a/packages/components/src/SampleConfigurator/PatternOptions/index.js b/packages/components/src/SampleConfigurator/PatternOptions/index.js index d0c19e1f1a5..c9020729d78 100644 --- a/packages/components/src/SampleConfigurator/PatternOptions/index.js +++ b/packages/components/src/SampleConfigurator/PatternOptions/index.js @@ -1,9 +1,7 @@ -import React, { useState } from "react"; +import React from "react"; import PropTypes from "prop-types"; import OptionGroup from "../OptionGroup"; -import { optionType } from "@freesewing/utils"; import { FormattedMessage } from "react-intl"; -import DownIcon from "@material-ui/icons/KeyboardArrowDown"; const PatternOptions = props => { const renderGroup = group => { diff --git a/packages/components/src/SampleConfigurator/index.js b/packages/components/src/SampleConfigurator/index.js index 46927d784e8..677c443d070 100644 --- a/packages/components/src/SampleConfigurator/index.js +++ b/packages/components/src/SampleConfigurator/index.js @@ -7,14 +7,6 @@ import models from "@freesewing/models"; const SampleConfigurator = props => { const [expanded, setExpanded] = useState([]); - const toggleGroup = group => { - let shown = expanded.slice(0); - let index = shown.indexOf(group); - if (index === -1) shown.push(group); - else shown.splice(index, 1); - setExpanded(shown); - }; - const sampleOption = option => { props.updateGist( { diff --git a/packages/components/src/Workbench/Design/index.js b/packages/components/src/Workbench/Design/index.js index b37961b6d84..2951d184583 100644 --- a/packages/components/src/Workbench/Design/index.js +++ b/packages/components/src/Workbench/Design/index.js @@ -1,6 +1,4 @@ import React from "react"; -import PropTypes from "prop-types"; -import { FormattedMessage, FormattedHTMLMessage } from "react-intl"; const Design = props => { // Methods diff --git a/packages/components/src/Workbench/DraftPattern/index.js b/packages/components/src/Workbench/DraftPattern/index.js index 31d31912c56..b22aa7de587 100644 --- a/packages/components/src/Workbench/DraftPattern/index.js +++ b/packages/components/src/Workbench/DraftPattern/index.js @@ -1,10 +1,8 @@ import React, { useState } from "react"; import PropTypes from "prop-types"; -import { defaultGist } from "@freesewing/utils"; import Draft from "../../Draft"; import Design from "../Design"; import DraftConfigurator from "../../DraftConfigurator"; -import { strings } from "@freesewing/i18n"; import { FormattedMessage } from "react-intl"; import Prism from "prismjs"; diff --git a/packages/components/src/Workbench/Measurements/index.js b/packages/components/src/Workbench/Measurements/index.js index 897bd9f0c93..4fe47764bfc 100644 --- a/packages/components/src/Workbench/Measurements/index.js +++ b/packages/components/src/Workbench/Measurements/index.js @@ -1,6 +1,5 @@ -import React, { useState, useEffect } from "react"; +import React from "react"; import PropTypes from "prop-types"; -import { storage } from "@freesewing/utils"; import Button from "@material-ui/core/Button"; import { FormattedMessage, FormattedHTMLMessage } from "react-intl"; import FormFieldMeasurement from "../../.form/FormFieldMeasurement"; diff --git a/packages/components/src/Workbench/SamplePattern/index.js b/packages/components/src/Workbench/SamplePattern/index.js index c6c3420d3d7..f470c80790a 100644 --- a/packages/components/src/Workbench/SamplePattern/index.js +++ b/packages/components/src/Workbench/SamplePattern/index.js @@ -1,10 +1,7 @@ import React from "react"; import PropTypes from "prop-types"; -import { defaultGist } from "@freesewing/utils"; -import Draft from "../../Draft"; import SampleConfigurator from "../../SampleConfigurator"; import svgattrPlugin from "@freesewing/plugin-svgattr"; -import { strings } from "@freesewing/i18n"; import { FormattedMessage } from "react-intl"; const SamplePattern = props => { diff --git a/packages/components/src/Workbench/Welcome/index.js b/packages/components/src/Workbench/Welcome/index.js index 470698a6cc2..0bd401d594b 100644 --- a/packages/components/src/Workbench/Welcome/index.js +++ b/packages/components/src/Workbench/Welcome/index.js @@ -1,10 +1,7 @@ import React from "react"; -import PropTypes from "prop-types"; import Logo from "../../Logo"; -import { FormattedMessage, FormattedHTMLMessage } from "react-intl"; +import { FormattedMessage } from "react-intl"; import Button from "@material-ui/core/Button"; -import IconButton from "@material-ui/core/IconButton"; -import Icon from "../../Icon"; const Welcome = props => { const styles = { diff --git a/packages/components/src/Workbench/index.js b/packages/components/src/Workbench/index.js index 389042e445e..a859433ecae 100644 --- a/packages/components/src/Workbench/index.js +++ b/packages/components/src/Workbench/index.js @@ -1,14 +1,10 @@ import React, { useState, useEffect } from "react"; import PropTypes from "prop-types"; import withGist from "../withGist"; -import { FormattedMessage, IntlProvider } from "react-intl"; -import Button from "@material-ui/core/Button"; import { MuiThemeProvider, createMuiTheme } from "@material-ui/core/styles"; -import { strings } from "@freesewing/i18n"; import Navbar from "../Navbar"; import { defaultGist, storage } from "@freesewing/utils"; import { dark, light } from "@freesewing/mui-theme"; -import Logo from "../Logo"; import withLanguage from "../withLanguage"; import LanguageIcon from "@material-ui/icons/Translate"; import DarkModeIcon from "@material-ui/icons/Brightness3"; @@ -74,11 +70,6 @@ const Workbench = props => { return false; }; - const showLanguageChooser = () => saveDisplay("language"); - const updatePattern = p => { - setPattern(p); - store.set("pattern", p); - }; const toggleDarkMode = () => { if (theme === "light") setTheme("dark"); else setTheme("light"); diff --git a/packages/components/src/withGist/index.js b/packages/components/src/withGist/index.js index e36fa3aa7bc..af271567171 100644 --- a/packages/components/src/withGist/index.js +++ b/packages/components/src/withGist/index.js @@ -54,7 +54,7 @@ const withGist = (WrappedComponent, settings = { gist: {}, store: false }) => { if (l3) gist[l1][l2][l3] = value; else if (l2) gist[l1][l2] = value; - else if (l1) gist[l1] = value; + else gist[l1] = value; this.setState({ gist }); if (settings.store) storage.set(this.state.gist.name || "gist", gist); } diff --git a/packages/components/src/withLanguage/index.js b/packages/components/src/withLanguage/index.js index d3077dd9422..bcebaf36d7e 100644 --- a/packages/components/src/withLanguage/index.js +++ b/packages/components/src/withLanguage/index.js @@ -6,7 +6,6 @@ import es from "react-intl/locale-data/es"; import fr from "react-intl/locale-data/fr"; import nl from "react-intl/locale-data/nl"; import { strings } from "@freesewing/i18n"; -import { storage } from "@freesewing/utils"; const withLanguage = (WrappedComponent, lang = "en", store = false) => { return class extends React.Component { diff --git a/packages/core/src/path.js b/packages/core/src/path.js index 1e00a7c2934..4f235fa1451 100644 --- a/packages/core/src/path.js +++ b/packages/core/src/path.js @@ -666,7 +666,7 @@ Path.prototype.split = function(point) { let divided = this.divide(); let firstHalf = false; let secondHalf = false; - for (let pi in divided) { + for (let pi = 0; pi < divided.length; pi++) { let path = divided[pi]; if (path.ops[1].type === "line") { if (pointOnLine(path.ops[0].to, path.ops[1].to, point)) { @@ -725,7 +725,7 @@ Path.prototype.split = function(point) { /** Removes self-intersections (overlap) from the path */ Path.prototype.trim = function() { let chunks = this.divide(); - for (let i in chunks) { + for (let i = 0; i < chunks.length; i++) { let firstCandidate = parseInt(i) + 2; let lastCandidate = parseInt(chunks.length) - 1; for (let j = firstCandidate; j < lastCandidate; j++) { diff --git a/packages/create-freesewing-pattern/lib/prompt-library-params.js b/packages/create-freesewing-pattern/lib/prompt-library-params.js index ffb65ec2988..727edb3b419 100644 --- a/packages/create-freesewing-pattern/lib/prompt-library-params.js +++ b/packages/create-freesewing-pattern/lib/prompt-library-params.js @@ -1,7 +1,5 @@ "use strict"; -const path = require("path"); -const fs = require("fs"); const inquirer = require("inquirer"); const validateNpmName = require("validate-npm-package-name"); const languages = require("@freesewing/i18n").languages; diff --git a/packages/create-freesewing-pattern/template/default/rollup.config.js b/packages/create-freesewing-pattern/template/default/rollup.config.js index def3b5741a0..70c428bd463 100644 --- a/packages/create-freesewing-pattern/template/default/rollup.config.js +++ b/packages/create-freesewing-pattern/template/default/rollup.config.js @@ -37,6 +37,11 @@ export default { }), resolve({ browser: true }), json(), - commonjs() + commonjs(), + minify({ + comments: false, + sourceMap: true, + banner: `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */` + }) ] }; diff --git a/packages/examples/src/index.js b/packages/examples/src/index.js index eff73041685..6a257b29c15 100644 --- a/packages/examples/src/index.js +++ b/packages/examples/src/index.js @@ -1,7 +1,6 @@ import freesewing from "@freesewing/core"; import plugins from "@freesewing/plugin-bundle"; import config from "../config/"; -import { version } from "../package.json"; // Path API import draftPath_ops from "./path_ops"; import draftPath_attr from "./path_attr"; @@ -103,7 +102,6 @@ let methods = { draftPlugin_logo, draftPlugin_scalebox, draftPlugin_title, - draftPoint_attr, draftPoint_angle, draftPoint_attr, draftPoint_clone, diff --git a/packages/examples/src/path_shiftfractionalong.js b/packages/examples/src/path_shiftfractionalong.js index 81ba64e43c8..09b219f984f 100644 --- a/packages/examples/src/path_shiftfractionalong.js +++ b/packages/examples/src/path_shiftfractionalong.js @@ -1,6 +1,5 @@ export default part => { - // prettier-ignore - let { Point, points, Path, paths, Snippet, snippets } = part.shorthand() + let { Point, points, Path, paths, Snippet, snippets } = part.shorthand(); points.A = new Point(45, 60); points.B = new Point(10, 30); diff --git a/packages/examples/src/settings_sa.js b/packages/examples/src/settings_sa.js index 5b891a76b17..b38004e982c 100644 --- a/packages/examples/src/settings_sa.js +++ b/packages/examples/src/settings_sa.js @@ -1,6 +1,5 @@ export default part => { - // prettier-ignore - let { Point, points, Path, paths } = part.shorthand() + let { Point, points, Path, paths } = part.shorthand(); points.A = new Point(45, 60); points.B = new Point(10, 30); diff --git a/packages/examples/src/utils_pointonline.js b/packages/examples/src/utils_pointonline.js index 5f8d8e73ff5..0df7fda740e 100644 --- a/packages/examples/src/utils_pointonline.js +++ b/packages/examples/src/utils_pointonline.js @@ -1,6 +1,13 @@ export default part => { - // prettier-ignore - let { Point, points, Path, paths, Snippet, snippets, utils } = part.shorthand() + let { + Point, + points, + Path, + paths, + Snippet, + snippets, + utils + } = part.shorthand(); points.from1 = new Point(10, 10); points.to1 = new Point(90, 60); diff --git a/packages/examples/src/utils_splitcurve.js b/packages/examples/src/utils_splitcurve.js index d97768d58a3..dfc0f6f4f39 100644 --- a/packages/examples/src/utils_splitcurve.js +++ b/packages/examples/src/utils_splitcurve.js @@ -1,13 +1,5 @@ export default part => { - let { - Point, - points, - Path, - paths, - utils, - snippets, - Snippet - } = part.shorthand(); + let { Point, points, Path, paths, utils } = part.shorthand(); points.from = new Point(40, 10); points.to = new Point(40, 80); diff --git a/packages/florent/src/briminterfacing.js b/packages/florent/src/briminterfacing.js index 518a19856f1..758f6e1abed 100644 --- a/packages/florent/src/briminterfacing.js +++ b/packages/florent/src/briminterfacing.js @@ -2,15 +2,11 @@ export default function(part) { let { paperless, sa, - store, complete, points, - options, macro, - Point, paths, - Path, - measurements + Path } = part.shorthand(); paths.hint = paths.seam.clone().attr("class", "dashed stroke-sm"); diff --git a/packages/florent/src/brimtop.js b/packages/florent/src/brimtop.js index 5da89c95338..7fbdfd2f7df 100644 --- a/packages/florent/src/brimtop.js +++ b/packages/florent/src/brimtop.js @@ -2,15 +2,11 @@ export default function(part) { let { paperless, sa, - store, complete, points, - options, macro, - Point, paths, - Path, - measurements + Path } = part.shorthand(); paths.hint = new Path() diff --git a/packages/florent/src/side.js b/packages/florent/src/side.js index a3c6178116f..9656f4b130e 100644 --- a/packages/florent/src/side.js +++ b/packages/florent/src/side.js @@ -2,15 +2,11 @@ export default function(part) { let { paperless, sa, - store, complete, points, - options, macro, - Point, paths, Path, - measurements, snippets, Snippet } = part.shorthand(); diff --git a/packages/florent/src/top.js b/packages/florent/src/top.js index c02e9634a1f..39dcb0f5942 100644 --- a/packages/florent/src/top.js +++ b/packages/florent/src/top.js @@ -1,29 +1,20 @@ export default function(part) { let { paperless, - sa, - store, - complete, points, - options, macro, Point, - paths, Path, - measurements, snippets, Snippet } = part.shorthand(); const fitCap = (part, scale) => { let { - paperless, sa, - store, complete, points, options, - macro, Point, paths, Path, diff --git a/packages/huey/src/back.js b/packages/huey/src/back.js index 842a7db5c52..380da7f3aa2 100644 --- a/packages/huey/src/back.js +++ b/packages/huey/src/back.js @@ -4,14 +4,11 @@ export default function(part) { let { store, macro, - Point, Path, points, paths, complete, paperless, - snippets, - Snippet, sa, options, measurements diff --git a/packages/huey/src/front.js b/packages/huey/src/front.js index a08faa8cea5..2585eab83de 100644 --- a/packages/huey/src/front.js +++ b/packages/huey/src/front.js @@ -4,15 +4,12 @@ export default function(part) { let { utils, store, - macro, Point, Path, points, paths, complete, paperless, - snippets, - Snippet, sa, options, measurements diff --git a/packages/huey/src/pocket.js b/packages/huey/src/pocket.js index 3b11c4143db..c3fa47b0e2f 100644 --- a/packages/huey/src/pocket.js +++ b/packages/huey/src/pocket.js @@ -1,8 +1,6 @@ export default function(part) { let { - store, macro, - Point, Path, points, paths, @@ -11,8 +9,7 @@ export default function(part) { snippets, Snippet, sa, - options, - measurements + options } = part.shorthand(); if (!options.pocket) return part; diff --git a/packages/huey/src/shared.js b/packages/huey/src/shared.js index 0d832f5f7a8..b7934190a83 100644 --- a/packages/huey/src/shared.js +++ b/packages/huey/src/shared.js @@ -1,16 +1,5 @@ export const sharedDimensions = function(part, s) { - let { - macro, - Point, - Path, - points, - paths, - complete, - paperless, - snippets, - Snippet, - sa - } = part.shorthand(); + let { macro, Point, points, sa } = part.shorthand(); if (s === "front") { points.cHem = points.cfHem; diff --git a/packages/huey/src/sleeve.js b/packages/huey/src/sleeve.js index bff1a25ea9e..ff49d8b2b64 100644 --- a/packages/huey/src/sleeve.js +++ b/packages/huey/src/sleeve.js @@ -6,8 +6,6 @@ export default function(part) { paths, store, options, - measurements, - utils, complete, sa, paperless, diff --git a/packages/hugo/src/back.js b/packages/hugo/src/back.js index 0d53ac2efe8..3d95bd72507 100644 --- a/packages/hugo/src/back.js +++ b/packages/hugo/src/back.js @@ -4,12 +4,24 @@ export default function(part) { part.paths = {}; part.paths.seam = seam; - // prettier-ignore - let {utils, store, sa, Point, points, Path, paths, Snippet, snippets, options, measurements, complete, paperless, macro, debug} = part.shorthand(); + let { + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + complete, + paperless, + macro, + debug + } = part.shorthand(); // Hem is more descripting than hips in this case //points.cbHem = points.cbHips; - // points.hem = points.hips; + // points.hem = points.hips; // Ribbing points.cbRibbing = points.cbHem.shift(90, store.get("ribbing")); @@ -50,10 +62,7 @@ export default function(part) { }); points.title = new Point(points.armhole.x / 2, points.armhole.y); macro("title", { at: points.title, nr: 2, title: "back" }); - store.set( - "notchBack", - points.raglanTipBack.dist(points.armholeHollow) / 2 - ); + store.set("notchBack", points.raglanTipBack.dist(points.armholeHollow) / 2); points.sleeveNotch = points.raglanTipBack.shiftTowards( points.armholeHollow, store.get("notchBack") @@ -109,4 +118,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/hugo/src/cuff.js b/packages/hugo/src/cuff.js index 5c429b83e19..7ea03a9454a 100644 --- a/packages/hugo/src/cuff.js +++ b/packages/hugo/src/cuff.js @@ -1,6 +1,16 @@ export default function(part) { - // prettier-ignore - let {measurements, options, sa, Point, points, Path, paths, complete, paperless, macro, units} = part.shorthand(); + let { + measurements, + options, + sa, + Point, + points, + Path, + paths, + complete, + paperless, + macro + } = part.shorthand(); let width = (measurements.centerBackNeckToWaist + measurements.naturalWaistToHip) * diff --git a/packages/hugo/src/front.js b/packages/hugo/src/front.js index a24ffb9c148..a52b83e3656 100644 --- a/packages/hugo/src/front.js +++ b/packages/hugo/src/front.js @@ -4,8 +4,23 @@ export default function(part) { part.paths = {}; part.paths.seam = seam; - // prettier-ignore - let {utils, store, sa, Point, points, Path, paths, Snippet, snippets, options, measurements, complete, paperless, macro, debug} = part.shorthand(); + let { + utils, + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + options, + measurements, + complete, + paperless, + macro, + debug + } = part.shorthand(); // Absolute values for percentages store.set( diff --git a/packages/hugo/src/hoodcenter.js b/packages/hugo/src/hoodcenter.js index ac201a574d6..fbabe18dcfb 100644 --- a/packages/hugo/src/hoodcenter.js +++ b/packages/hugo/src/hoodcenter.js @@ -1,6 +1,16 @@ export default function(part) { - // prettier-ignore - let {store, sa, Point, points, Path, paths, complete, paperless, macro, units} = part.shorthand(); + let { + store, + sa, + Point, + points, + Path, + paths, + complete, + paperless, + macro, + units + } = part.shorthand(); let width = store.get("hoodCenterWidth"); points.topLeft = new Point(0, 0); @@ -34,10 +44,7 @@ export default function(part) { if (sa) { paths.sa = paths.seam.offset(sa); } - points.title = points.bottomLeft.shiftFractionTowards( - points.topRight, - 0.5 - ); + points.title = points.bottomLeft.shiftFractionTowards(points.topRight, 0.5); macro("title", { at: points.title, nr: 7, title: "hoodCenter" }); macro("grainline", { from: points.topLeft.shift(-90, width / 2), @@ -61,4 +68,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/hugo/src/hoodside.js b/packages/hugo/src/hoodside.js index e8dee32e15a..db679592606 100644 --- a/packages/hugo/src/hoodside.js +++ b/packages/hugo/src/hoodside.js @@ -1,6 +1,19 @@ export default function(part) { - // prettier-ignore - let {utils, store, sa, Point, points, Path, paths, Snippet, snippets, options, measurements, complete, paperless, macro, debug} = part.shorthand(); + let { + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + measurements, + complete, + paperless, + macro, + debug + } = part.shorthand(); let neckOpening = store.get("neckOpeningLenFront") + store.get("neckOpeningLenBack"); @@ -145,4 +158,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/hugo/src/pocket.js b/packages/hugo/src/pocket.js index 86066460163..db35b2ed550 100644 --- a/packages/hugo/src/pocket.js +++ b/packages/hugo/src/pocket.js @@ -4,8 +4,18 @@ export default function(part) { part.paths = {}; part.snippets = {}; - // prettier-ignore - let {utils, store, sa, Point, points, Path, paths, Snippet, snippets, options, measurements, complete, paperless, macro, debug} = part.shorthand(); + let { + utils, + store, + sa, + points, + Path, + paths, + complete, + paperless, + macro, + debug + } = part.shorthand(); paths.seam = pocket .line(points.cfRibbing) @@ -38,10 +48,7 @@ export default function(part) { from: points.cfRibbing.shift(0, 15), to: points.pocketCf.shift(0, 15) }); - points.title = points.cfRibbing.shiftFractionTowards( - points.pocketTop, - 0.5 - ); + points.title = points.cfRibbing.shiftFractionTowards(points.pocketTop, 0.5); macro("title", { at: points.title, nr: 4, title: "pocket" }); if (sa) { paths.sa = paths.seam.offset(sa).attr("class", "fabric sa"); @@ -73,4 +80,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/hugo/src/pocketfacing.js b/packages/hugo/src/pocketfacing.js index cdcd3ba0728..c6f79d8f7be 100644 --- a/packages/hugo/src/pocketfacing.js +++ b/packages/hugo/src/pocketfacing.js @@ -3,8 +3,16 @@ export default function(part) { let facing = part.paths.facing; part.paths = {}; - // prettier-ignore - let {sa, Point, points, Path, paths, Snippet, snippets, complete, paperless, macro, utils, store} = part.shorthand(); + let { + sa, + points, + Path, + paths, + complete, + paperless, + macro, + store + } = part.shorthand(); paths.seam = facing .line(points.pocketTop) @@ -44,4 +52,4 @@ export default function(part) { } return part; -}; +} diff --git a/packages/hugo/src/sleeve.js b/packages/hugo/src/sleeve.js index fe61cbbe005..963b93b8b2a 100644 --- a/packages/hugo/src/sleeve.js +++ b/packages/hugo/src/sleeve.js @@ -1,6 +1,21 @@ export default function(part) { - // prettier-ignore - let {utils, store, sa, Point, points, Path, paths, Snippet, snippets, options, measurements, complete, paperless, macro, debug} = part.shorthand(); + let { + utils, + store, + sa, + Point, + points, + Path, + paths, + Snippet, + snippets, + options, + measurements, + complete, + paperless, + macro, + debug + } = part.shorthand(); // Top of raglan sleeve points.raglanTop = new Point( diff --git a/packages/hugo/src/waistband.js b/packages/hugo/src/waistband.js index 9aa7b9a8f44..ec9ee25dd4d 100644 --- a/packages/hugo/src/waistband.js +++ b/packages/hugo/src/waistband.js @@ -1,6 +1,17 @@ export default function(part) { - // prettier-ignore - let {measurements, options, sa, Point, points, Path, paths, complete, paperless, macro, units} = part.shorthand(); + let { + measurements, + options, + sa, + Point, + points, + Path, + paths, + complete, + paperless, + macro, + units + } = part.shorthand(); let width = (measurements.centerBackNeckToWaist + measurements.naturalWaistToHip) * diff --git a/packages/i18n/src/locales/de/options/index.js b/packages/i18n/src/locales/de/options/index.js index 327fb92c0ce..b7c8f8a9514 100644 --- a/packages/i18n/src/locales/de/options/index.js +++ b/packages/i18n/src/locales/de/options/index.js @@ -42,7 +42,6 @@ for (let pattern of Object.keys(patterns)) { if (typeof value === "object") options[pattern][option] = value; else { if (typeof value === "undefined") { - let inherit = shared[pattern].dflt; if (typeof patterns[shared[pattern].dflt][option] === "object") options[pattern][option] = patterns[shared[pattern].dflt][option]; else if ( diff --git a/packages/i18n/src/locales/en/options/index.js b/packages/i18n/src/locales/en/options/index.js index 327fb92c0ce..b7c8f8a9514 100644 --- a/packages/i18n/src/locales/en/options/index.js +++ b/packages/i18n/src/locales/en/options/index.js @@ -42,7 +42,6 @@ for (let pattern of Object.keys(patterns)) { if (typeof value === "object") options[pattern][option] = value; else { if (typeof value === "undefined") { - let inherit = shared[pattern].dflt; if (typeof patterns[shared[pattern].dflt][option] === "object") options[pattern][option] = patterns[shared[pattern].dflt][option]; else if ( diff --git a/packages/i18n/src/locales/es/options/index.js b/packages/i18n/src/locales/es/options/index.js index 327fb92c0ce..b7c8f8a9514 100644 --- a/packages/i18n/src/locales/es/options/index.js +++ b/packages/i18n/src/locales/es/options/index.js @@ -42,7 +42,6 @@ for (let pattern of Object.keys(patterns)) { if (typeof value === "object") options[pattern][option] = value; else { if (typeof value === "undefined") { - let inherit = shared[pattern].dflt; if (typeof patterns[shared[pattern].dflt][option] === "object") options[pattern][option] = patterns[shared[pattern].dflt][option]; else if ( diff --git a/packages/i18n/src/locales/fr/options/index.js b/packages/i18n/src/locales/fr/options/index.js index 327fb92c0ce..b7c8f8a9514 100644 --- a/packages/i18n/src/locales/fr/options/index.js +++ b/packages/i18n/src/locales/fr/options/index.js @@ -42,7 +42,6 @@ for (let pattern of Object.keys(patterns)) { if (typeof value === "object") options[pattern][option] = value; else { if (typeof value === "undefined") { - let inherit = shared[pattern].dflt; if (typeof patterns[shared[pattern].dflt][option] === "object") options[pattern][option] = patterns[shared[pattern].dflt][option]; else if ( diff --git a/packages/i18n/src/locales/nl/options/index.js b/packages/i18n/src/locales/nl/options/index.js index 327fb92c0ce..b7c8f8a9514 100644 --- a/packages/i18n/src/locales/nl/options/index.js +++ b/packages/i18n/src/locales/nl/options/index.js @@ -42,7 +42,6 @@ for (let pattern of Object.keys(patterns)) { if (typeof value === "object") options[pattern][option] = value; else { if (typeof value === "undefined") { - let inherit = shared[pattern].dflt; if (typeof patterns[shared[pattern].dflt][option] === "object") options[pattern][option] = patterns[shared[pattern].dflt][option]; else if ( diff --git a/packages/pattern-info/package.json b/packages/pattern-info/package.json index c2f9b8e104c..ea399446aaa 100644 --- a/packages/pattern-info/package.json +++ b/packages/pattern-info/package.json @@ -29,7 +29,7 @@ "pubtest": "npm publish --registry http://localhost:6662", "pubforce": "npm publish", "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -", - "prebuild": "node src/prebuild.js" + "NOprebuild": "node src/prebuild.js" }, "peerDependencies": { "@freesewing/core": "^2.0.0-alpha.25", diff --git a/packages/plugin-designer/src/decorate.js b/packages/plugin-designer/src/decorate.js index f6659ca286b..38ab594414a 100644 --- a/packages/plugin-designer/src/decorate.js +++ b/packages/plugin-designer/src/decorate.js @@ -63,7 +63,6 @@ decorate.paths = function(svg) { for (let pathId in part.paths) { let path = part.paths[pathId]; if (path.render) { - let id; let current; for (let op of path.ops) { if (op.type !== "close") { diff --git a/packages/plugin-designer/src/index.js b/packages/plugin-designer/src/index.js index 5d97d45ac56..26c1e92c443 100644 --- a/packages/plugin-designer/src/index.js +++ b/packages/plugin-designer/src/index.js @@ -1,4 +1,3 @@ -import script from "./lib/script"; import snippets from "./lib/snippets"; import { version, name } from "../package.json"; import decorate from "./decorate"; @@ -14,8 +13,7 @@ export default { // raiseEvent.bind(svg)('plugin-designer-pointHover', evt); //} if (svg.attributes.get("freesewing:plugin-designer") === false) { - // Add script and snippets - //svg.script += script; + // Add snippets svg.defs += snippets; // Add SVG attributes diff --git a/packages/plugin-round/src/index.js b/packages/plugin-round/src/index.js index 64c43d299bb..522d3b2274c 100644 --- a/packages/plugin-round/src/index.js +++ b/packages/plugin-round/src/index.js @@ -20,26 +20,29 @@ export default { let prefix = so.prefix; let angle1 = from.angle(via); let angle2 = via.angle(to); - if((Math.round(angle1)-Math.round(angle2))%90 !== 0) - throw new Error("The round macro currently only supports 90 degree angles."); + if ((Math.round(angle1) - Math.round(angle2)) % 90 !== 0) + throw new Error( + "The round macro currently only supports 90 degree angles." + ); let fd = from.dist(via); let td = to.dist(via); - if(radius > fd || radius > td || typeof radius === "undefined") + if (radius > fd || radius > td || typeof radius === "undefined") radius = fd > td ? td : fd; - this.points[prefix+"Start"] = via.shiftTowards(from, radius); - this.points[prefix+"Cp1"] = via.shiftTowards(from, radius*(1-C)); - this.points[prefix+"Cp2"] = via.shiftTowards(to, radius*(1-C)); - this.points[prefix+"End"] = via.shiftTowards(to, radius); - this.paths[prefix+"Rounded"] = new this.Path() - .move(this.points[prefix+"Start"]) + this.points[prefix + "Start"] = via.shiftTowards(from, radius); + this.points[prefix + "Cp1"] = via.shiftTowards(from, radius * (1 - C)); + this.points[prefix + "Cp2"] = via.shiftTowards(to, radius * (1 - C)); + this.points[prefix + "End"] = via.shiftTowards(to, radius); + this.paths[prefix + "Rounded"] = new this.Path() + .move(this.points[prefix + "Start"]) .curve( - this.points[prefix+"Cp1"], - this.points[prefix+"Cp2"], - this.points[prefix+"End"] + this.points[prefix + "Cp1"], + this.points[prefix + "Cp2"], + this.points[prefix + "End"] ) .attr("class", so.class ? so.class : ""); - if(typeof so.render !== undefined && so.render) this.paths[prefix+"Rounded"].render = true; - else this.paths[prefix+"Rounded"].render = false; + if (typeof so.render !== "undefined" && so.render) + this.paths[prefix + "Rounded"].render = true; + else this.paths[prefix + "Rounded"].render = false; } } }; diff --git a/packages/plugin-title/src/index.js b/packages/plugin-title/src/index.js index 4a003f6afd3..3f20481bffc 100644 --- a/packages/plugin-title/src/index.js +++ b/packages/plugin-title/src/index.js @@ -35,7 +35,7 @@ export default { .clone() .attr("data-text", so.nr, overwrite) .attr("data-text-class", "title-nr note fill-note") - .attr("data-text-transform", transform(so.at, so.at)); + .attr("data-text-transform", transform(so.at)); let shift = 10; if (so.title) { this.points[`_${prefix}_titleName`] = so.at diff --git a/packages/plugin-validate/src/validate.js b/packages/plugin-validate/src/validate.js index 48bf0fc7477..fbc255fb72c 100644 --- a/packages/plugin-validate/src/validate.js +++ b/packages/plugin-validate/src/validate.js @@ -1,72 +1,86 @@ const validate = {}; -validate.point = function (point, partId, pointId, debug) { - if(typeof point !== 'object') { +validate.point = function(point, partId, pointId, debug) { + if (typeof point !== "object") { debug({ type: "error", - label: 'Problem with point', + label: "Problem with point", msg: points }); - throw new Error(`Point pattern.parts.${partId}.points.${pointId} is not an object`); - } else if(typeof point.x !== 'number' || isNaN(point.x)) { + throw new Error( + `Point pattern.parts.${partId}.points.${pointId} is not an object` + ); + } else if (typeof point.x !== "number" || isNaN(point.x)) { debug({ type: "error", - label: 'Problem with point X-value', + label: "Problem with point X-value", msg: points }); - throw new Error(`X-value of point pattern.parts.${partId}.points.${pointId} is not a number`); - } else if(typeof point.y !== 'number' || isNaN(point.y)) { + throw new Error( + `X-value of point pattern.parts.${partId}.points.${pointId} is not a number` + ); + } else if (typeof point.y !== "number" || isNaN(point.y)) { debug({ type: "error", - label: 'Problem with point Y-value', + label: "Problem with point Y-value", msg: points }); - debug(dbg, 'Problem with point Y-value:', point); - throw new Error(`Y-value of point pattern.parts.${partId}.points.${pointId} is not a number`); - } else if(typeof point.attributes !== 'object' || !point.attributes.clone instanceof Function) { + debug(dbg, "Problem with point Y-value:", point); + throw new Error( + `Y-value of point pattern.parts.${partId}.points.${pointId} is not a number` + ); + } else if ( + typeof point.attributes !== "object" || + !(point.attributes.clone instanceof Function) + ) { debug({ type: "error", - label: 'Problem with point attributes', + label: "Problem with point attributes", msg: points }); - throw new Error (dbg, `attributes property of point pattern.parts.${partId}.points.${pointId} is not an object`); - } else if(!point.clone instanceof Function) { + throw new Error( + `attributes property of point pattern.parts.${partId}.points.${pointId} is not an object` + ); + } else if (!(point.clone instanceof Function)) { debug({ type: "error", - label: 'Problem with point', + label: "Problem with point", msg: points }); - throw new Error(`Point pattern.parts.${partId}.points.${pointId} is not a valid Point object`); + throw new Error( + `Point pattern.parts.${partId}.points.${pointId} is not a valid Point object` + ); } return true; -} +}; -validate.text = function (type, item, partId, itemId, debug) { - let text = item.attributes.getAsArray('data-text'); - if(text === false) return true; +validate.text = function(type, item, partId, itemId, debug) { + let text = item.attributes.getAsArray("data-text"); + if (text === false) return true; else { - if(item.attributes.get('data-validate-skip-text') !== false) { + if (item.attributes.get("data-validate-skip-text") !== false) { debug({ type: "warning", - label: '🌐 Possible translation issue', + label: "🌐 Possible translation issue", msg: `This text might be a translation problem:, ${item} However, the error was suppresed, so moving on.` }); return true; } for (let t of text) { - if(typeof t !== 'string' && typeof t !== 'number') { + if (typeof t !== "string" && typeof t !== "number") { debug({ type: "error", - label: 'This text is not a string or number', + label: "This text is not a string or number", msg: t }); - throw new Error(`${type} pattern.parts.${partId}.${type}s.${itemId} has text that is not a string nor a number. Set the 'data-validate-skip-text' attribute to true to suppress this error.`); - - } else if(typeof t === 'string' && t.indexOf(' ') !== -1) { + throw new Error( + `${type} pattern.parts.${partId}.${type}s.${itemId} has text that is not a string nor a number. Set the 'data-validate-skip-text' attribute to true to suppress this error.` + ); + } else if (typeof t === "string" && t.indexOf(" ") !== -1) { debug({ type: "warning", - label: '🌐 Possible translation issue', + label: "🌐 Possible translation issue", msg: t }); debug({ @@ -78,93 +92,111 @@ validate.text = function (type, item, partId, itemId, debug) { } } return true; -} +}; validate.path = function(path, partId, pathId, debug) { - if(typeof path !== 'object') { + if (typeof path !== "object") { debug({ type: "error", - label: 'Problem with path', + label: "Problem with path", msg: path }); - throw new Error(`Path pattern.parts.${partId}.paths.${pathId} is not an object`); - } else if(typeof path.ops !== 'object') { + throw new Error( + `Path pattern.parts.${partId}.paths.${pathId} is not an object` + ); + } else if (typeof path.ops !== "object") { debug({ type: "error", - label: 'Problem with path ops', + label: "Problem with path ops", msg: path }); - throw new Error(`ops property of path pattern.parts.${partId}.paths.${pathId} is not an object`); - } else if(path.ops.length < 2) { + throw new Error( + `ops property of path pattern.parts.${partId}.paths.${pathId} is not an object` + ); + } else if (path.ops.length < 2) { debug({ type: "error", - label: 'Problem with path ops', + label: "Problem with path ops", msg: path }); - throw new Error(`Path pattern.parts.${partId}.paths.${pathId} does not do anything`); - } else if(typeof path.attributes !== 'object') { + throw new Error( + `Path pattern.parts.${partId}.paths.${pathId} does not do anything` + ); + } else if (typeof path.attributes !== "object") { debug({ type: "error", - label: 'Problem with path attributes', + label: "Problem with path attributes", msg: path }); - throw new Error(`attributes property of path pattern.parts.${partId}.paths.${pathId} is not an object`); - } else if(!path.clone instanceof Function) { + throw new Error( + `attributes property of path pattern.parts.${partId}.paths.${pathId} is not an object` + ); + } else if (!(path.clone instanceof Function)) { debug({ type: "error", - label: 'Problem with path', + label: "Problem with path", msg: path }); - throw new Error(`Path pattern.parts.${partId}.paths.${pathId} is not a valid Path object`); - } else if(!path.attributes.clone instanceof Function) { + throw new Error( + `Path pattern.parts.${partId}.paths.${pathId} is not a valid Path object` + ); + } else if (!(path.attributes.clone instanceof Function)) { debug({ type: "error", - label: 'Problem with path attributes', + label: "Problem with path attributes", msg: path }); - throw new Error(`attributes property of path pattern.parts.${partId}.paths.${pathId} is not a valid Attributes object`); + throw new Error( + `attributes property of path pattern.parts.${partId}.paths.${pathId} is not a valid Attributes object` + ); } for (let o in path.ops) { let op = path.ops[o]; - if(op.type !== 'close') { - if(!validate.point(op.to, partId, '_unknown_', debug)) { + if (op.type !== "close") { + if (!validate.point(op.to, partId, "_unknown_", debug)) { debug({ type: "error", - label: 'Problem with path TO point', + label: "Problem with path TO point", msg: op.to }); - throw new Error(`Point in pattern.parts.${partId}.paths.${pathId}.ops[o].to is not a valid Point object`); + throw new Error( + `Point in pattern.parts.${partId}.paths.${pathId}.ops[o].to is not a valid Point object` + ); } - } else if (op.type === 'curve') { - if(!validate.point(op.cp1, partId, '_unknown_', debug)) { + } else if (op.type === "curve") { + if (!validate.point(op.cp1, partId, "_unknown_", debug)) { debug({ type: "error", - label: 'Problem with path CP1 point', + label: "Problem with path CP1 point", msg: op.cp1 }); - throw new Error(`Point in pattern.parts.${partId}.paths.${pathId}.ops[o].cp1 is not a valid Point object`); - } else if(!validate.point(op.cp2, partId, '_unknown_', debug)) { + throw new Error( + `Point in pattern.parts.${partId}.paths.${pathId}.ops[o].cp1 is not a valid Point object` + ); + } else if (!validate.point(op.cp2, partId, "_unknown_", debug)) { debug({ type: "error", - label: 'Problem with path CP2 point', + label: "Problem with path CP2 point", msg: op.cp2 }); - throw new Error(`Point in pattern.parts.${partId}.paths.${pathId}.ops[o].cp2 is not a valid Point object`); + throw new Error( + `Point in pattern.parts.${partId}.paths.${pathId}.ops[o].cp2 is not a valid Point object` + ); } } } return true; -} +}; -validate.snippet = function (snippet, partId, snippetId, debug) { - if(typeof snippet !== 'object') return false; - if(!validate.point(snippet.anchor, partId, '_unknown_', debug)) return false; - if(typeof snippet.attributes !== 'object') return false; - if(!snippet.clone instanceof Function) return false; - if(!snippet.attributes.clone instanceof Function) return false; +validate.snippet = function(snippet, partId, snippetId, debug) { + if (typeof snippet !== "object") return false; + if (!validate.point(snippet.anchor, partId, "_unknown_", debug)) return false; + if (typeof snippet.attributes !== "object") return false; + if (!(snippet.clone instanceof Function)) return false; + if (!(snippet.attributes.clone instanceof Function)) return false; return true; -} +}; export default validate; diff --git a/packages/rendertest/src/circles.js b/packages/rendertest/src/circles.js index edf824d6a7b..e1d1c030e46 100644 --- a/packages/rendertest/src/circles.js +++ b/packages/rendertest/src/circles.js @@ -1,5 +1,5 @@ export default function(part) { - let { options, Point, Path, points, paths, store, macro } = part.shorthand(); + let { Point, Path, points, paths, store } = part.shorthand(); let y = store.get("y"); let w = store.get("w"); diff --git a/packages/rendertest/src/colors.js b/packages/rendertest/src/colors.js index e53eaeda684..11001339519 100644 --- a/packages/rendertest/src/colors.js +++ b/packages/rendertest/src/colors.js @@ -1,5 +1,5 @@ export default function(part) { - let { options, Point, Path, points, paths, store, macro } = part.shorthand(); + let { Point, Path, points, paths, store } = part.shorthand(); let y = store.get("y"); let w = store.get("w"); @@ -17,7 +17,7 @@ export default function(part) { let sizes = ["xs", "sm", "", "l", "xl"]; let utility = ["dotted", "dashed", "lashed", "sa", "help", "hidden"]; - for (let i in colors) { + for (let i = 0; i < utility.length; i++) { y += 15; points["l" + i] = new Point(0, y); points["r" + i] = new Point(w, y); @@ -26,7 +26,7 @@ export default function(part) { .line(points["r" + i]) .attr("class", colors[i]) .attr("data-text", colors[i]); - for (let j in sizes) { + for (let j = 0; j < sizes.length; j++) { y += 10; points["sl" + i + j] = new Point(0, y); points["sr" + i + j] = new Point(w, y); @@ -41,7 +41,7 @@ export default function(part) { ) .attr("data-text-class", "center"); } - for (let j in utility) { + for (let j = 0; j < utility.length; j++) { y += 10; points["ul" + i + j] = new Point(0, y); points["ur" + i + j] = new Point(w, y); diff --git a/packages/rendertest/src/macros.js b/packages/rendertest/src/macros.js index edeaa85018c..3707a8fe369 100644 --- a/packages/rendertest/src/macros.js +++ b/packages/rendertest/src/macros.js @@ -1,17 +1,5 @@ export default function(part) { - let { - macro, - options, - Point, - Path, - points, - paths, - snippets, - Snippet, - complete, - paperless, - store - } = part.shorthand(); + let { macro, Point, Path, points, paths, store } = part.shorthand(); let y = store.get("y"); let w = store.get("w"); diff --git a/packages/rendertest/src/snippets.js b/packages/rendertest/src/snippets.js index 9c0a5414d34..7b2c1daaead 100644 --- a/packages/rendertest/src/snippets.js +++ b/packages/rendertest/src/snippets.js @@ -1,7 +1,5 @@ export default function(part) { let { - macro, - options, Point, Path, points, diff --git a/packages/rendertest/src/text.js b/packages/rendertest/src/text.js index 726f103109e..4724696d68d 100644 --- a/packages/rendertest/src/text.js +++ b/packages/rendertest/src/text.js @@ -27,10 +27,10 @@ export default function(part) { .line(points.trr) .attr("data-text", "text.right") .attr("data-text-class", "right"); - for (let i in text) { + for (let i = 0; i < text.length; i++) { y += 15; points["t" + i] = new Point(0, y) - .attr("data-text", "text" + text[i] === "" ? "" : ".text-" + text[i]) + .attr("data-text", "text" + (text[i] === "" ? "" : ".text-" + text[i])) .attr("data-text-class", "text-" + text[i]); } store.set("y", y); diff --git a/packages/shin/src/waistband.js b/packages/shin/src/waistband.js index 8c5c92f6ba5..10f47c7dd85 100644 --- a/packages/shin/src/waistband.js +++ b/packages/shin/src/waistband.js @@ -8,11 +8,8 @@ export default function(part) { paths, complete, paperless, - snippets, - Snippet, sa, options, - measurements, utils } = part.shorthand(); diff --git a/packages/simon/src/buttonholeplacket.js b/packages/simon/src/buttonholeplacket.js index 9005eeccbdb..473292e47d7 100644 --- a/packages/simon/src/buttonholeplacket.js +++ b/packages/simon/src/buttonholeplacket.js @@ -2,8 +2,6 @@ import { addButtonHoles } from "./shared"; export default part => { let { - store, - measurements, utils, sa, Point, @@ -200,8 +198,6 @@ export default part => { y: points.placketBottomEdge.y + offset + 3 * sa }); } - let len = - points.cfNeck.dist(points.cfHips) * (1 - options.buttonFreeLength); points.button0 = points.placketTopEdge; let j; for (let i = 0; i < options.buttons; i++) { diff --git a/packages/simon/src/buttonplacket.js b/packages/simon/src/buttonplacket.js index 574b3c0cbcf..c0a81a693fd 100644 --- a/packages/simon/src/buttonplacket.js +++ b/packages/simon/src/buttonplacket.js @@ -2,8 +2,6 @@ import { addButtons } from "./shared"; export default part => { let { - store, - measurements, utils, sa, Point, @@ -135,8 +133,6 @@ export default part => { to: points.placketTopEdge, x: points.placketTopEdge.x + 15 + sa }); - let len = - points.cfNeck.dist(points.cfHips) * (1 - options.buttonFreeLength); points.button0 = points.placketTopEdge; let j; for (let i = 0; i < options.buttons; i++) { diff --git a/packages/simon/src/collar.js b/packages/simon/src/collar.js index c6e9dfc3e6b..0ef18669ed8 100644 --- a/packages/simon/src/collar.js +++ b/packages/simon/src/collar.js @@ -1,6 +1,5 @@ export default part => { let { - store, measurements, utils, sa, @@ -8,8 +7,6 @@ export default part => { points, Path, paths, - Snippet, - snippets, complete, paperless, macro, diff --git a/packages/simon/src/collarstand.js b/packages/simon/src/collarstand.js index 014268eea3e..462906d49d4 100644 --- a/packages/simon/src/collarstand.js +++ b/packages/simon/src/collarstand.js @@ -1,8 +1,6 @@ export default part => { let { - store, measurements, - utils, sa, Point, points, @@ -23,7 +21,6 @@ export default part => { let half = length / 2; let buttonSideExtra = options.buttonPlacketWidth / 2; let buttonholeSideExtra = options.buttonholePlacketWidth / 2; - let extra = buttonSideExtra + buttonholeSideExtra; let bend = options.collarStandBend * -1; let curve = options.collarStandCurve - options.collarStandBend; let hinge = 90 + (bend + curve) / 2; diff --git a/packages/simon/src/cuff-barrel-angled.js b/packages/simon/src/cuff-barrel-angled.js index ce3f22ee635..f5531ad1e28 100644 --- a/packages/simon/src/cuff-barrel-angled.js +++ b/packages/simon/src/cuff-barrel-angled.js @@ -7,19 +7,13 @@ import { export default part => { let { store, - measurements, - utils, sa, - Point, points, Path, paths, - Snippet, - snippets, complete, paperless, - macro, - options + macro } = part.shorthand(); draftBarrelCuff(part); diff --git a/packages/simon/src/cuff-barrel-rounded.js b/packages/simon/src/cuff-barrel-rounded.js index 1737ce169d3..fc847f83363 100644 --- a/packages/simon/src/cuff-barrel-rounded.js +++ b/packages/simon/src/cuff-barrel-rounded.js @@ -7,19 +7,13 @@ import { export default part => { let { store, - measurements, - utils, sa, - Point, points, Path, paths, - Snippet, - snippets, complete, paperless, - macro, - options + macro } = part.shorthand(); draftBarrelCuff(part); diff --git a/packages/simon/src/cuff-barrel-straight.js b/packages/simon/src/cuff-barrel-straight.js index 94a3587f7e2..2eaad934514 100644 --- a/packages/simon/src/cuff-barrel-straight.js +++ b/packages/simon/src/cuff-barrel-straight.js @@ -5,22 +5,7 @@ import { } from "./shared"; export default part => { - let { - store, - measurements, - utils, - sa, - Point, - points, - Path, - paths, - Snippet, - snippets, - complete, - paperless, - macro, - options - } = part.shorthand(); + let { sa, points, Path, paths, complete, paperless } = part.shorthand(); draftBarrelCuff(part); paths.seam = new Path() diff --git a/packages/simon/src/cuff-french-angled.js b/packages/simon/src/cuff-french-angled.js index ff0e2063372..3a37e6e8131 100644 --- a/packages/simon/src/cuff-french-angled.js +++ b/packages/simon/src/cuff-french-angled.js @@ -7,19 +7,13 @@ import { export default part => { let { store, - measurements, - utils, sa, - Point, points, Path, paths, - Snippet, - snippets, complete, paperless, - macro, - options + macro } = part.shorthand(); draftFrenchCuff(part); diff --git a/packages/simon/src/cuff-french-rounded.js b/packages/simon/src/cuff-french-rounded.js index dce682af859..db0bea5bb87 100644 --- a/packages/simon/src/cuff-french-rounded.js +++ b/packages/simon/src/cuff-french-rounded.js @@ -8,18 +8,13 @@ export default part => { let { store, measurements, - utils, sa, - Point, points, Path, paths, - Snippet, - snippets, complete, paperless, - macro, - options + macro } = part.shorthand(); draftFrenchCuff(part); let height = store.get("cuffHeight"); diff --git a/packages/simon/src/cuff-french-straight.js b/packages/simon/src/cuff-french-straight.js index b950035a96a..0742b623e3b 100644 --- a/packages/simon/src/cuff-french-straight.js +++ b/packages/simon/src/cuff-french-straight.js @@ -7,23 +7,15 @@ import { export default part => { let { store, - measurements, - utils, sa, - Point, points, Path, paths, - Snippet, - snippets, complete, - paperless, - macro, - options + paperless } = part.shorthand(); draftFrenchCuff(part); - let height = store.get("barrelCuffHeight"); paths.seam = new Path() .move(points.topLeft) diff --git a/packages/simon/src/front.js b/packages/simon/src/front.js index 299422651ef..b2d3ad810c6 100644 --- a/packages/simon/src/front.js +++ b/packages/simon/src/front.js @@ -5,14 +5,11 @@ export default part => { let { store, measurements, - utils, sa, Point, points, Path, paths, - Snippet, - snippets, complete, paperless, macro, diff --git a/packages/simon/src/frontleft-classic-cuton.js b/packages/simon/src/frontleft-classic-cuton.js index bc2fdfd8621..178ed1faec1 100644 --- a/packages/simon/src/frontleft-classic-cuton.js +++ b/packages/simon/src/frontleft-classic-cuton.js @@ -2,15 +2,11 @@ import { addButtonHoles } from "./shared"; export default part => { let { - store, - measurements, - utils, sa, Point, points, Path, paths, - Snippet, snippets, complete, paperless, @@ -194,8 +190,6 @@ export default part => { to: points.shoulder, y: points.placketTopEdge.y - offset - sa - 30 }); - let len = - points.cfNeck.dist(points.cfHips) * (1 - options.buttonFreeLength); points.button0 = points.placketTopEdge; let j; for (let i = 0; i < options.buttons; i++) { diff --git a/packages/simon/src/frontleft-classic-seperate.js b/packages/simon/src/frontleft-classic-seperate.js index 2bbd3f06be6..874c247b234 100644 --- a/packages/simon/src/frontleft-classic-seperate.js +++ b/packages/simon/src/frontleft-classic-seperate.js @@ -1,16 +1,11 @@ -import { addButtonHoles } from "./shared"; - export default part => { let { - store, - measurements, utils, sa, Point, points, Path, paths, - Snippet, snippets, complete, paperless, diff --git a/packages/simon/src/frontleft-seamless.js b/packages/simon/src/frontleft-seamless.js index 32f64afaa45..5967948bc7b 100644 --- a/packages/simon/src/frontleft-seamless.js +++ b/packages/simon/src/frontleft-seamless.js @@ -2,22 +2,15 @@ import { addButtonHoles } from "./shared"; export default part => { let { - store, - measurements, - utils, sa, - Point, points, Path, paths, - Snippet, - snippets, complete, paperless, macro, options } = part.shorthand(); - let fold = options.buttonholePlacketFoldWidth; let width = options.buttonholePlacketWidth; points.placketCfNeck = points.cfNeck; points.placketTopFold1 = points.cfNeck.shift(180, width / 2); @@ -96,8 +89,6 @@ export default part => { to: points.neck, y: points.neck.y - 15 - sa }); - let len = - points.cfNeck.dist(points.cfHips) * (1 - options.buttonFreeLength); points.button0 = points.placketTopEdge; let j; for (let i = 0; i < options.buttons; i++) { diff --git a/packages/simon/src/frontright-classic-cuton.js b/packages/simon/src/frontright-classic-cuton.js index b6b0d4b7f8b..3edb6db1032 100644 --- a/packages/simon/src/frontright-classic-cuton.js +++ b/packages/simon/src/frontright-classic-cuton.js @@ -2,16 +2,12 @@ import { addButtons } from "./shared"; export default part => { let { - store, - measurements, utils, sa, Point, points, Path, paths, - Snippet, - snippets, complete, paperless, macro, @@ -114,8 +110,6 @@ export default part => { to: points.placketTopEdge, y: points.neck.y - 30 - sa }); - let len = - points.cfNeck.dist(points.cfHips) * (1 - options.buttonFreeLength); points.button0 = points.placketTopEdge; let j; for (let i = 0; i < options.buttons; i++) { diff --git a/packages/simon/src/frontright-classic-seperate.js b/packages/simon/src/frontright-classic-seperate.js index ab316acf6e1..0796b4d4eb5 100644 --- a/packages/simon/src/frontright-classic-seperate.js +++ b/packages/simon/src/frontright-classic-seperate.js @@ -1,15 +1,10 @@ export default part => { let { - store, - measurements, utils, sa, Point, points, - Path, paths, - Snippet, - snippets, complete, paperless, macro, diff --git a/packages/simon/src/frontright-seamless.js b/packages/simon/src/frontright-seamless.js index 5370102a471..61fa796b2ff 100644 --- a/packages/simon/src/frontright-seamless.js +++ b/packages/simon/src/frontright-seamless.js @@ -2,16 +2,11 @@ import { addButtons } from "./shared"; export default part => { let { - store, - measurements, - utils, sa, Point, points, Path, paths, - Snippet, - snippets, complete, paperless, macro, diff --git a/packages/simon/src/shared.js b/packages/simon/src/shared.js index dab28b3d881..84ebcd50a5a 100644 --- a/packages/simon/src/shared.js +++ b/packages/simon/src/shared.js @@ -250,16 +250,7 @@ export const paperlessFrenchCuff = part => { }; export const frontDimensions = (part, side = "left") => { - let { - sa, - options, - complete, - paperless, - points, - macro, - Path, - paths - } = part.shorthand(); + let { sa, options, paperless, points, macro, Path } = part.shorthand(); let factor = side === "right" ? -1 : 1; macro("banner", { path: "hemSa", diff --git a/packages/simon/src/sleeve.js b/packages/simon/src/sleeve.js index 08e8110633f..7502674b771 100644 --- a/packages/simon/src/sleeve.js +++ b/packages/simon/src/sleeve.js @@ -1,5 +1,3 @@ -import { calculateReduction } from "./shared"; - export default part => { part.paths = {}; // This removed paperless dimensions from brian block for (let pid of [ @@ -12,16 +10,12 @@ export default part => { ]) delete part.points[pid]; let { - store, measurements, - utils, sa, Point, points, Path, paths, - Snippet, - snippets, complete, paperless, macro, diff --git a/packages/simon/src/sleeveplacket-overlap.js b/packages/simon/src/sleeveplacket-overlap.js index 26e4ccb2237..192fbf09f1d 100644 --- a/packages/simon/src/sleeveplacket-overlap.js +++ b/packages/simon/src/sleeveplacket-overlap.js @@ -1,8 +1,6 @@ export default part => { let { - store, measurements, - utils, sa, Point, points, diff --git a/packages/simon/src/sleeveplacket-underlap.js b/packages/simon/src/sleeveplacket-underlap.js index 165c0293b98..87710e18fb3 100644 --- a/packages/simon/src/sleeveplacket-underlap.js +++ b/packages/simon/src/sleeveplacket-underlap.js @@ -1,8 +1,6 @@ export default part => { let { - store, measurements, - utils, sa, Point, points, diff --git a/packages/simon/src/yoke.js b/packages/simon/src/yoke.js index 34c60097bed..66b5a992de4 100644 --- a/packages/simon/src/yoke.js +++ b/packages/simon/src/yoke.js @@ -1,10 +1,5 @@ -import { calculateReduction } from "./shared"; - export default part => { let { - store, - measurements, - utils, sa, Point, points, diff --git a/packages/sven/src/cuff.js b/packages/sven/src/cuff.js index 69c86f92532..14852979cfc 100644 --- a/packages/sven/src/cuff.js +++ b/packages/sven/src/cuff.js @@ -2,16 +2,9 @@ import { draftRibbing } from "./shared"; export default part => { let { - store, measurements, - utils, sa, - Point, points, - Path, - paths, - Snippet, - snippets, complete, paperless, macro, @@ -33,6 +26,7 @@ export default part => { title: "cuff" }); if (sa) { + // FIXME: Don't we need SA here? } } diff --git a/packages/sven/src/front.js b/packages/sven/src/front.js index ff6e7ead7e2..b08225bc7c6 100644 --- a/packages/sven/src/front.js +++ b/packages/sven/src/front.js @@ -2,14 +2,10 @@ export default part => { let { store, measurements, - utils, sa, - Point, points, Path, paths, - Snippet, - snippets, complete, paperless, macro, diff --git a/packages/sven/src/sleeve.js b/packages/sven/src/sleeve.js index 330d2c9be53..2cabef15e25 100644 --- a/packages/sven/src/sleeve.js +++ b/packages/sven/src/sleeve.js @@ -1,15 +1,10 @@ export default part => { let { store, - measurements, - utils, sa, - Point, points, - Path, paths, - Snippet, - snippets, + Path, complete, paperless, macro, diff --git a/packages/sven/src/waistband.js b/packages/sven/src/waistband.js index 247aebeb65a..6388f363947 100644 --- a/packages/sven/src/waistband.js +++ b/packages/sven/src/waistband.js @@ -2,16 +2,9 @@ import { draftRibbing } from "./shared"; export default part => { let { - store, measurements, - utils, sa, - Point, points, - Path, - paths, - Snippet, - snippets, complete, paperless, macro, @@ -34,6 +27,7 @@ export default part => { title: "waistband" }); if (sa) { + // FIXME: Don't we need SA here? } } diff --git a/packages/tamiko/src/top.js b/packages/tamiko/src/top.js index a61232543ae..10efc8b2c9d 100644 --- a/packages/tamiko/src/top.js +++ b/packages/tamiko/src/top.js @@ -11,9 +11,7 @@ export default function(part) { measurements, complete, paperless, - macro, - utils, - units + macro } = part.shorthand(); // Width at shoulders diff --git a/packages/utils/src/formatMm.js b/packages/utils/src/formatMm.js index b0695b3e38b..158d86a0b87 100644 --- a/packages/utils/src/formatMm.js +++ b/packages/utils/src/formatMm.js @@ -3,7 +3,6 @@ import formatImperial from "./formatImperial"; const formatMm = (val, units, format = "html") => { val = roundMm(val); - let H = format === "html" ? true : false; if (units === "imperial") { if (val == 0) return formatImperial("", 0, false, false, format); let negative = ""; diff --git a/packages/utils/src/measurementAsMm.js b/packages/utils/src/measurementAsMm.js index fdf5c284a1b..f0157d1615e 100644 --- a/packages/utils/src/measurementAsMm.js +++ b/packages/utils/src/measurementAsMm.js @@ -4,7 +4,7 @@ const measurementAsMm = (value, units = "metric") => { if (units === "metric") { value = Number(value); if (isNaN(value)) return false; - return value * (units === "imperial" ? 25.4 : 10); + return value * 10; } else { let chunks = value.split(" "); if (chunks.length === 1) { diff --git a/packages/wahid/src/back.js b/packages/wahid/src/back.js index cce9144313f..1d30a60befe 100644 --- a/packages/wahid/src/back.js +++ b/packages/wahid/src/back.js @@ -8,10 +8,7 @@ export default part => { Path, measurements, options, - utils, macro, - snippets, - Snippet, complete, sa, paperless diff --git a/packages/wahid/src/front.js b/packages/wahid/src/front.js index 9e7d29aa8c1..494294e01af 100644 --- a/packages/wahid/src/front.js +++ b/packages/wahid/src/front.js @@ -145,7 +145,6 @@ export default part => { let pw = measurements.hipsCircumference * options.pocketWidth; // Pocket width let pwh = pw * options.weltHeight; // Pocket welt height let pwvh = pwh / Math.cos(utils.deg2rad(options.pocketAngle)); // Pocket welt vertical height - let pbh = pw * 1.3; // Pocket bag height points.pocketTopMid = points.dartWaistCenter.shiftFractionTowards( points.dartHipCenter, @@ -294,13 +293,11 @@ export default part => { let delta = points.button1.dist(points.lastButton) / (options.buttons - 1); for (let i = 1; i <= options.buttons; i++) { points["button" + i] = points.button1.shift(-90, delta * (i - 1)); - if (complete) { - snippets["button" + i] = new Snippet("button", points["button" + i]); - snippets["buttonhole" + i] = new Snippet( - "buttonhole", - points["button" + i] - ).attr("data-rotate", 90); - } + snippets["button" + i] = new Snippet("button", points["button" + i]); + snippets["buttonhole" + i] = new Snippet( + "buttonhole", + points["button" + i] + ).attr("data-rotate", 90); } // Facing/Lining boundary (flb) diff --git a/packages/wahid/src/frontlining.js b/packages/wahid/src/frontlining.js index 3094c320253..db1774987cf 100644 --- a/packages/wahid/src/frontlining.js +++ b/packages/wahid/src/frontlining.js @@ -1,18 +1,14 @@ export default part => { let { points, - Point, paths, Path, - measurements, options, - utils, macro, snippets, Snippet, complete, - sa, - paperless + sa } = part.shorthand(); // Cleanup from Brian diff --git a/packages/wahid/src/pocketbag.js b/packages/wahid/src/pocketbag.js index 430670b9c74..3145119953e 100644 --- a/packages/wahid/src/pocketbag.js +++ b/packages/wahid/src/pocketbag.js @@ -6,12 +6,8 @@ export default part => { Path, measurements, options, - utils, macro, - snippets, - Snippet, complete, - sa, paperless, store } = part.shorthand(); diff --git a/packages/wahid/src/pocketfacing.js b/packages/wahid/src/pocketfacing.js index a8c9ad60813..3c28ea2703b 100644 --- a/packages/wahid/src/pocketfacing.js +++ b/packages/wahid/src/pocketfacing.js @@ -6,12 +6,8 @@ export default part => { Path, measurements, options, - utils, macro, - snippets, - Snippet, complete, - sa, paperless, store } = part.shorthand(); diff --git a/packages/wahid/src/pocketinterfacing.js b/packages/wahid/src/pocketinterfacing.js index 7f70f6f66c9..7a1a8838223 100644 --- a/packages/wahid/src/pocketinterfacing.js +++ b/packages/wahid/src/pocketinterfacing.js @@ -6,14 +6,9 @@ export default part => { Path, measurements, options, - utils, macro, - snippets, - Snippet, complete, - sa, - paperless, - store + paperless } = part.shorthand(); let pw = measurements.hipsCircumference * options.pocketWidth; // Pocket width diff --git a/packages/wahid/src/pocketwelt.js b/packages/wahid/src/pocketwelt.js index 253a7deb40e..c1397bb4da9 100644 --- a/packages/wahid/src/pocketwelt.js +++ b/packages/wahid/src/pocketwelt.js @@ -6,12 +6,8 @@ export default part => { Path, measurements, options, - utils, macro, - snippets, - Snippet, complete, - sa, paperless } = part.shorthand(); diff --git a/packages/wahid/src/shared.js b/packages/wahid/src/shared.js index e9ecea10900..40bf0511850 100644 --- a/packages/wahid/src/shared.js +++ b/packages/wahid/src/shared.js @@ -55,7 +55,7 @@ export const constructMainDart = part => { }; export const shapeSideSeam = part => { - let { measurements, options, points, Point, store } = part.shorthand(); + let { points, Point, store } = part.shorthand(); let wr12 = store.get("wr12"); let hr12 = store.get("hr12"); @@ -68,7 +68,7 @@ export const shapeSideSeam = part => { }; export const dartPath = part => { - let { paths, Path, points } = part.shorthand(); + let { Path, points } = part.shorthand(); return new Path() .move(points.dartStart) .line(points.dartHipLeft)