{
  "version": 3,
  "sources": ["../src/index.js", "../config/index.js", "../src/back.js", "../src/front.js", "../src/waistband-interfacing-left.js", "../src/waistband-interfacing-right.js", "../src/waistband-left.js", "../src/waistband-right.js", "../src/waistband-lining-left.js", "../src/waistband-lining-right.js", "../src/fly-piece.js", "../src/fly-shield.js", "../src/side-piece.js", "../src/front-pocket-bag.js", "../src/back-inner-pocket-bag.js", "../src/back-outer-pocket-bag.js", "../src/back-pocket-facing.js", "../src/back-pocket-interfacing.js", "../src/belt-loop.js"],
  "sourcesContent": ["import freesewing from '@freesewing/core'\nimport plugins from '@freesewing/plugin-bundle'\nimport config from '../config'\n// Parts\nimport draftBack from './back'\nimport draftFront from './front'\nimport draftWaistbandInterfacingLeft from './waistband-interfacing-left'\nimport draftWaistbandInterfacingRight from './waistband-interfacing-right'\nimport draftWaistbandLeft from './waistband-left'\nimport draftWaistbandRight from './waistband-right'\nimport draftWaistbandLiningLeft from './waistband-lining-left'\nimport draftWaistbandLiningRight from './waistband-lining-right'\nimport draftFlyPiece from './fly-piece'\nimport draftFlyShield from './fly-shield'\nimport draftSidePiece from './side-piece'\nimport draftFrontPocketBag from './front-pocket-bag'\nimport draftBackInnerPocketBag from './back-inner-pocket-bag'\nimport draftBackOuterPocketBag from './back-outer-pocket-bag'\nimport draftBackPocketFacing from './back-pocket-facing'\nimport draftBackPocketInterfacing from './back-pocket-interfacing'\nimport draftBeltLoop from './belt-loop'\n\n// Create design\nconst Theo = new freesewing.Design(config, plugins)\n\n// Attach draft methods to prototype\nTheo.prototype.draftBack = (part) => draftBack(part)\nTheo.prototype.draftFront = (part) => draftFront(part)\nTheo.prototype.draftWaistbandInterfacingLeft = (part) => draftWaistbandInterfacingLeft(part)\nTheo.prototype.draftWaistbandInterfacingRight = (part) => draftWaistbandInterfacingRight(part)\nTheo.prototype.draftWaistbandLiningLeft = (part) => draftWaistbandLiningLeft(part)\nTheo.prototype.draftWaistbandLiningRight = (part) => draftWaistbandLiningRight(part)\nTheo.prototype.draftWaistbandLeft = (part) => draftWaistbandLeft(part)\nTheo.prototype.draftWaistbandRight = (part) => draftWaistbandRight(part)\nTheo.prototype.draftFlyPiece = (part) => draftFlyPiece(part)\nTheo.prototype.draftFlyShield = (part) => draftFlyShield(part)\nTheo.prototype.draftSidePiece = (part) => draftSidePiece(part)\nTheo.prototype.draftFrontPocketBag = (part) => draftFrontPocketBag(part)\nTheo.prototype.draftBackInnerPocketBag = (part) => draftBackInnerPocketBag(part)\nTheo.prototype.draftBackOuterPocketBag = (part) => draftBackOuterPocketBag(part)\nTheo.prototype.draftBackPocketFacing = (part) => draftBackPocketFacing(part)\nTheo.prototype.draftBackPocketInterfacing = (part) => draftBackPocketInterfacing(part)\nTheo.prototype.draftBeltLoop = (part) => draftBeltLoop(part)\n\n// Named exports\nexport { config, Theo }\n\n// Default export\nexport default Theo\n", "import { version } from '../package.json'\nimport configHelpers from '@freesewing/config-helpers'\nconst { steps, pctBasedOn } = configHelpers\n\nexport default {\n  version,\n  name: 'theo',\n  deprecated: 'charlie',\n  design: 'Joost De Cock',\n  code: 'Joost De Cock',\n  department: 'bottoms',\n  type: 'pattern',\n  difficulty: 4,\n  optionGroups: {\n    fit: ['backRise', 'wedge'],\n    style: ['waistbandWidth', 'lengthBonus', 'legWidth'],\n  },\n  measurements: ['crotchDepth', 'hips', 'inseam', 'knee', 'seat', 'waistToHips'],\n  dependencies: {},\n  inject: {\n    front: 'back',\n    waistbandLeft: 'waistbandInterfacingLeft',\n    waistbandRight: 'waistbandInterfacingRight',\n    waistbandLiningLeft: 'waistbandInterfacingLeft',\n    waistbandLiningRight: 'waistbandInterfacingRight',\n    flyPiece: 'front',\n    flyShield: 'flyPiece',\n    sidePiece: 'front',\n    frontPocketBag: 'front',\n    backOuterPocketBag: 'backInnerPocketBag',\n    backPocketInterfacing: 'backPocketFacing',\n  },\n  hide: [],\n  parts: ['waistbandInterfacingLeft', 'waistbandInterfacingRight', 'backPocketFacing', 'beltLoop'],\n  options: {\n    // Constants\n\n    // Millimeter\n    //waistbandWidth: { mm: 40, min: 5, max: 80 },\n    waistbandWidth: { pct: 3, min: 2, max: 6, snap: steps, ...pctBasedOn('waistToFloor') },\n\n    // Percentages\n    legWidth: { pct: 10, min: 0, max: 30 },\n    backRise: { pct: 3.5, min: 0.5, max: 8 },\n    lengthBonus: { pct: 0, min: -10, max: 10 },\n    wedge: { pct: 0, min: -3, max: 3 },\n  },\n}\n", "export default function (part) {\n  const {\n    store,\n    sa,\n    Point,\n    points,\n    Path,\n    paths,\n    absoluteOptions,\n    options,\n    complete,\n    paperless,\n    macro,\n    utils,\n    measurements,\n    snippets,\n    Snippet,\n    raise,\n  } = part.shorthand()\n\n  // This pattern needs a rewrite\n  raise.warning(\n    'Theo in its current incarnation is deprecated. A complete rewrite based on our Titan block is on [our v3 roadmap](https://github.com/freesewing/freesewing/discussions/1278). Until that time, if it works, great. If not \u00AF\\\\\\\\__(\u30C4)\\\\__/\u00AF'\n  )\n\n  const calculateSlashCorner = () => {\n    points[901] = utils.beamsIntersect(points[20], points[19], points[26], points[4])\n    points[902] = points[901].clone()\n    const step = -0.1\n    let i = 0\n    while (points[901].dist(points[902]) < 25) {\n      i++\n      points[902] = points[901].rotate(i * step, points[26])\n    }\n\n    return i * step\n  }\n\n  // Store\n  store.set('lengthBonus', measurements.inseam * options.lengthBonus)\n  store.set('backReduction', (measurements.hips / -4) * options.wedge)\n  store.set('legWidth', (measurements.knee * (1 + options.legWidth)) / 2)\n  store.set('backRise', measurements.hips * options.backRise)\n\n  // Points\n  points[0] = new Point(0, 0)\n  points[1] = new Point(\n    0,\n    measurements.crotchDepth - measurements.waistToHips - absoluteOptions.waistbandWidth\n  )\n  points[2] = new Point(0, points[1].y + measurements.inseam + store.get('lengthBonus'))\n  points[201] = points[2].shift(-90, 10)\n  points[202] = new Point(store.get('legWidth') / 4, points[201].y)\n  points[203] = points[202].flipX()\n  points[3] = new Point(0, points[1].y + measurements.inseam / 2 + 50)\n  points[4] = new Point(0, points[1].y - (measurements.crotchDepth - measurements.waistToHips) / 4)\n  points[5] = new Point(10 - measurements.seat / 8, points[1].y)\n  points[9] = new Point(\n    points[5].x - measurements.seat / 16 - 5 + store.get('backReduction'),\n    points[5].y\n  )\n  points[16] = new Point(points[5].x - points[1].dx(points[5]) / 4, points[5].y)\n  points[1601] = points[16].shift(135, 45)\n  points[1602] = points[1601].shift(45, 25)\n  points[1603] = points[1601].shift(-135, 45)\n  points[17] = new Point(points[16].x, points[4].y)\n  points[18] = new Point(points[16].x, 0)\n  points[19] = new Point(points[16].x, points[16].y + points[16].dy(points[18]) / 2)\n  points[20] = new Point(points[18].x + 20, points[18].y)\n  points[1901] = points[20].shiftOutwards(points[19], 25)\n  points[21] = points[19].shiftOutwards(points[20], 10)\n  points[22] = new Point(\n    points[9].x + points[5].dx(points[9]) / 2 - 5 + store.get('backReduction'),\n    points[9].y\n  )\n  points[23] = new Point(points[22].x, points[22].y + 5)\n  points[24] = new Point(points[20].x + measurements.hips / 4 + 45, points[20].y)\n  points[25] = points[21].shiftFractionTowards(points[24], 0.5)\n  points[2501] = points[25].shiftTowards(points[24], 120)\n  points[2502] = points[2501].rotate(-90, points[25])\n  points[2503] = points[25].shiftTowards(points[24], 12.5)\n  points[2504] = points[25].shiftTowards(points[21], 12.5)\n  points[26] = new Point(points[17].x + measurements.seat / 4 + 30, points[17].y)\n  points[2601] = points[24].shiftFractionTowards(points[26], 1, 4)\n  points[27] = new Point(points[2].x + store.get('legWidth') / 2 + 20, points[2].y)\n  points[2701] = new Point(points[27].x, points[27].y - 50)\n  points[2702] = points[2701].flipX()\n  points[28] = points[27].flipX()\n  points[29] = new Point(points[3].x + store.get('legWidth') / 2 + 15 + 20, points[3].y)\n  points[2901] = points[27].shiftFractionTowards(points[29], 1.6)\n  points[30] = points[29].flipX()\n  points[3001] = points[28].shiftFractionTowards(points[30], 1.6)\n\n  // Slash and rotate around point 26\n  let corner = calculateSlashCorner()\n  const rotateThese = [24, 2501, 2502, 2503, 2504, 25, 21, 20, 19, 1901, 2601]\n  for (let id of rotateThese) {\n    let newId = '90' + id\n    points[newId] = points[id].rotate(corner, points[26])\n  }\n\n  // These need to be moved 1cm to the left as per instructions after slash\n  points[901601] = points[1601].shift(180, 10)\n  points[901602] = points[1602].shift(180, 10)\n  points[901603] = points[1603].shift(180, 10)\n  // Add endpoint for pleat line\n  points[900] = utils.beamsIntersect(points[9021], points[9024], points[0], points[1])\n\n  // Points without seam allowance\n  points[-21] = points[9021].shiftTowards(points[902504], 10)\n  points[-2101] = points[-21].shift(points[9020].angle(points[9021]), -10)\n  points[-24] = points[9024].shiftTowards(points[9021], 10)\n  points[-2104] = points[-24].shift(points[9024].angle(points[26]), 10)\n  points[-2501] = points[902504].shiftTowards(points[902502], 10)\n  points[-2502] = points[902503].shiftTowards(points[902502], 10)\n  points[-2503] = points[902504].shiftTowards(points[902502], 60)\n  points[-2504] = points[902503].shiftTowards(points[902502], 60)\n  points[-26] = points[26].shift(points[9024].angle(points[9021]), 10)\n  points[-2601] = points[-2104].shiftFractionTowards(points[-26], 1.4)\n  points[-2901] = points[2901].shift(points[2901].angle(points[29]) - 90, 10)\n  points[-29] = points[29].shift(points[2901].angle(points[29]) - 90, 10)\n  points[-2701] = points[2701].shift(180, 10)\n\n  points[-27] = new Path().move(points[27])._curve(points[202], points[201]).shiftAlong(10)\n  points[-28] = points[-27].flipX()\n  points[-2702] = points[-2701].flipX()\n  points[-30] = points[-29].flipX()\n  points[-3001] = points[3001].shift(points[30].angle(points[3001]) + 90, -10)\n  points[-23] = new Path().move(points[23])._curve(points[901603], points[901601]).shiftAlong(10)\n  points[-2301] = new Path().move(points[-23])._curve(points[-3001], points[-30]).shiftAlong(10)\n  points[-900] = new Point(points[900].x, points[900].y + 10)\n  points[-901603] = points[901603].shift(points[901603].angle(points[901601]) + 90, -10)\n  points[-901601] = points[901601].shift(points[901603].angle(points[901601]) + 90, -10)\n  points[-901602] = points[901602].shift(points[901603].angle(points[901601]) + 90, -10)\n  points[-901901] = points[901901].shift(points[901601].angle(points[9019]) + 90, -10)\n  points[-9019] = points[9019].shift(points[901901].angle(points[9019]) + 90, -10)\n\n  // Extra SA at back seam\n  points[9021] = points[-21].shift(points[-2501].angle(points[-2101]), 40)\n\n  // Extra SA at hem\n  points[-2710] = points[-27].shift(-90, 60)\n  points[-2810] = points[-2710].flipX()\n  points[-20110] = points[201].shift(-90, 60)\n  points[-20210] = points[202].shift(-90, 60)\n  points[-20310] = points[203].shift(-90, 60)\n\n  // Raise waistband\n  points[66601] = points[-2101].shiftTowards(points[-21], store.get('backRise'))\n\n  // Original dart without raise\n  points[66602] = utils.beamsIntersect(points[66601], points[-2104], points[902502], points[-2501])\n  points[66603] = utils.beamsIntersect(points[66601], points[-2104], points[902502], points[-2502])\n  points[66605] = points[-2101].shiftTowards(points[-21], store.get('backRise') + 10)\n  points[66606] = new Point(\n    points[66602].x + points[66601].dx(points[66605]),\n    points[66602].y + points[66601].dy(points[66605])\n  )\n  points[66607] = utils.beamsIntersect(points[66606], points[66605], points[901601], points[9021])\n\n  // Construct the back dart with raise\n  points.dartTop = points[66601].shiftFractionTowards(points[-2104], 0.5)\n  points.dartTip = points.dartTop.shift(\n    points[-2104].angle(points[66601]) + 90,\n    points.dartTop.dist(points[902502])\n  )\n  points.dartTopLeft = points.dartTop.shiftTowards(\n    points[66601],\n    points[66602].dist(points[66603]) / 2\n  )\n  points.dartTopRight = points.dartTop.shiftTowards(\n    points[-2104],\n    points[66602].dist(points[66603]) / 2\n  )\n\n  // Reconstruct back pocket with raise\n  points.pocketCenterLeft = points.dartTopLeft.shiftTowards(points.dartTip, 60)\n  points.pocketCenterRight = points.dartTopRight.shiftTowards(points.dartTip, 60)\n  points.pocketEdgeLeft = points.pocketCenterLeft.shift(\n    points.pocketCenterLeft.angle(points.dartTip) - 90,\n    70\n  )\n  points.pocketEdgeRight = points.pocketCenterRight.shift(\n    points.pocketCenterRight.angle(points.dartTip) + 90,\n    70\n  )\n\n  // Extend back pleat to include rise\n  points[-900] = utils.beamsIntersect(points[900], points[-900], points[66601], points[66602])\n\n  // Paths\n  // This is the original Aldrich path, which includes seam allowance\n  paths.aldrich = new Path()\n    .move(points[23])\n    ._curve(points[901603], points[901601])\n    .curve(points[901602], points[901901], points[9019])\n    .line(points[9021])\n    .line(points[902504])\n    .line(points[902502])\n    .line(points[902503])\n    .line(points[9024])\n    .line(points[26])\n    .curve(points[902601], points[2901], points[29])\n    .curve(points[29], points[2701], points[27])\n    .curve(points[27], points[202], points[201])\n    .curve_(points[203], points[28])\n    .curve_(points[2702], points[30])\n    .curve_(points[3001], points[23])\n    .close()\n  paths.aldrich.render = false\n\n  // This is the path we use, no seam allowance\n  paths.hemBase = new Path()\n    .move(points[-27])\n    ._curve(points[202], points[201])\n    .curve_(points[203], points[-28])\n  paths.saBase1 = new Path()\n    .move(points[-28])\n    .curve_(points[-2702], points[-30])\n    .curve_(points[-3001], points[-2301])\n    ._curve(points[-901603], points[-901601])\n    .curve(points[-901602], points[-901901], points[-9019])\n    .line(points[66601])\n    .line(points.dartTopLeft)\n  paths.saBase2 = new Path()\n    .move(points.dartTopRight)\n    .line(points[-2104])\n    .line(points[-26])\n    .curve(points[-2601], points[-2901], points[-29])\n    .curve(points[-29], points[-2701], points[-27])\n  paths.seam = paths.saBase1\n    .clone()\n    .line(points.dartTip)\n    .line(points.dartTopRight)\n    .join(paths.saBase2)\n    .join(paths.hemBase)\n    .close()\n    .attr('class', 'fabric')\n  paths.hemBase.render = false\n  paths.saBase1.render = false\n  paths.saBase2.render = false\n\n  // Store length of the inseam and side seam\n  store.set(\n    'backInseamLength',\n    new Path().move(points[-2301]).curve_(points[-3001], points[-30]).length() +\n      new Path().move(points[30])._curve(points[-2702], points[-28]).length()\n  )\n  store.set(\n    'backSideseamLength',\n    points[-2104].dist(points[-26]) +\n      new Path().move(points[-26]).curve(points[-2601], points[-2901], points[-29]).length() +\n      new Path().move(points[-29])._curve(points[-2701], points[-27]).length()\n  )\n\n  // Complete pattern?\n  if (complete) {\n    if (sa) {\n      paths.sa = paths.saBase1\n        .offset(-1 * sa)\n        .join(paths.saBase2.offset(-1 * sa))\n        .join(paths.hemBase.offset(-3 * sa))\n        .close()\n        .attr('class', 'fabric sa')\n    }\n    paths.pocket = new Path()\n      .move(points.pocketEdgeLeft)\n      .line(points.pocketCenterLeft)\n      .move(points.pocketCenterRight)\n      .line(points.pocketEdgeRight)\n      .attr('class', 'fabric dashed')\n\n    points.grainlineTop = new Point(0, points[-2104].y)\n    points.grainlineBottom = points[2].clone()\n    macro('grainline', {\n      from: points.grainlineBottom,\n      to: points.grainlineTop,\n    })\n    points.title = new Point(0, points[-2301].y)\n    macro('title', { at: points.title, title: 'back', nr: 1 })\n    points.logo = points.title.shift(-90, 70)\n    snippets.logo = new Snippet('logo', points.logo)\n    points.scalebox = points.logo.shift(-90, 70)\n    macro('scalebox', { at: points.scalebox })\n    macro('sprinkle', {\n      snippet: 'notch',\n      on: ['pocketEdgeLeft', 'pocketEdgeRight'],\n    })\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('ld', {\n      from: points[66601],\n      to: points.dartTopLeft,\n      d: sa + 15,\n    })\n    macro('ld', {\n      from: points.dartTopLeft,\n      to: points.dartTopRight,\n      d: sa + 15,\n    })\n    macro('ld', {\n      from: points[66601],\n      to: points[-2104],\n      d: sa + 30,\n    })\n    macro('ld', {\n      from: points.pocketEdgeLeft,\n      to: points.pocketCenterLeft,\n      d: 15,\n    })\n    macro('ld', {\n      from: points.pocketCenterRight,\n      to: points.pocketEdgeRight,\n      d: 15,\n    })\n    macro('ld', {\n      from: points.dartTip,\n      to: points.dartTop,\n      d: 30,\n    })\n    macro('ld', {\n      from: points.dartTip,\n      to: points.pocketCenterRight,\n      d: -15,\n    })\n    macro('hd', {\n      from: points[-2301],\n      to: points[66601],\n      y: points[66601].y - sa - 45,\n    })\n    macro('hd', {\n      from: points[66601],\n      to: points[-2104],\n      y: points[66601].y - sa - 45,\n    })\n    macro('hd', {\n      from: points[-2301],\n      to: points[-2104],\n      y: points[66601].y - sa - 60,\n    })\n    macro('vd', {\n      from: points[-2301],\n      to: points[66601],\n      x: points[-2301].x - sa - 15,\n    })\n    macro('vd', {\n      from: points[201],\n      to: points[-2301],\n      x: points[-2301].x - sa - 15,\n    })\n    macro('vd', {\n      from: points[201],\n      to: points[66601],\n      x: points[-2301].x - sa - 30,\n    })\n    macro('hd', {\n      from: points[-28],\n      to: points[-27],\n      y: points[201].y + 3 * sa + 15,\n    })\n    macro('vd', {\n      from: points[-27],\n      to: points[-2104],\n      x: points[-2104].x + sa + 15,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let {\n    store,\n    sa,\n    Point,\n    points,\n    Path,\n    paths,\n    options,\n    complete,\n    paperless,\n    macro,\n    utils,\n    measurements,\n    snippets,\n    raise,\n  } = part.shorthand()\n\n  // Let's warn about some common issues\n  if ((measurements.crotchDepth - measurements.waistToHips) / measurements.hips < 0.15)\n    raise.warning(\n      'There is little vertical space to draw the cross seam. Perhaps double-check the seath depth and waist to hips measurements'\n    )\n\n  // Clean up inheritedpaths & snippets\n  for (let id in paths) delete paths[id]\n  for (let id in snippets) delete snippets[id]\n\n  points[1] = new Point(\n    points[0].x,\n    measurements.crotchDepth - measurements.waistToHips - options.waistbandWidth + 10\n  )\n  points[2] = new Point(points[0].x, points[1].y + measurements.inseam + store.get('lengthBonus'))\n  points[3] = new Point(points[0].x, points[1].y + measurements.inseam / 2 + 50)\n  points[4] = new Point(\n    points[0].x,\n    points[1].y - (measurements.crotchDepth - measurements.waistToHips) / 4\n  )\n  points[5] = new Point(points[0].x - measurements.seat / 8 + 10, points[1].y)\n  points[501] = points[5].shift(135, 30)\n  points[502] = points[501].shift(45, 30)\n  points[503] = points[501].shift(-135, 30)\n  points[6] = new Point(points[5].x, points[4].y)\n  points[7] = new Point(points[5].x, points[0].y)\n  points[8] = new Point(points[6].x + measurements.seat / 4 + 20, points[6].y)\n  points[801] = new Point(\n    points[8].x,\n    points[8].y - (measurements.crotchDepth - measurements.waistToHips) / 4\n  )\n  points[802] = new Point(\n    points[8].x,\n    points[8].y + (measurements.crotchDepth - measurements.waistToHips) / 4\n  )\n  points[9] = new Point(\n    points[5].x - measurements.seat / 16 - 5 + store.get('backReduction'),\n    points[5].y\n  )\n  points[10] = new Point(points[7].x + 10, points[7].y)\n  points[1001] = points[10].shiftTowards(points[6], 10)\n  points[1002] = new Point(points[0].x, points[1001].y)\n  points[11] = new Point(points[10].x + measurements.hips / 4 + 25, points[10].y)\n  points[12] = new Point(points[2].x + store.get('legWidth') / 2, points[2].y)\n  points[1201] = new Point(points[12].x, points[12].y - 50)\n  points[13] = points[12].flipX()\n  points[1301] = points[1201].flipX()\n  points[14] = new Point(points[3].x + store.get('legWidth') / 2 + 15, points[3].y)\n  points[1401] = points[12].shiftOutwards(points[14], points[1].dy(points[3]) / 2)\n  points[1402] = points[1401].flipX()\n\n  points[15] = points[14].flipX()\n  points[40] = new Path().move(points[1001]).curve_(points[1002], points[11]).shiftAlong(50)\n  points[41] = new Point(\n    points[40].x + points[1001].dx(points[6]),\n    points[40].y + points[1001].dy(points[6])\n  )\n  let tmp = new Path().move(points[6])._curve(points[502], points[501])\n  points[42] = tmp.shiftAlong(tmp.length() / 2)\n  points[43] = points[42].shift(-35, 10)\n  points['43beam'] = points[42].shift(-35, 40) // We use this to find curve intersection later\n  points[44] = points[43].shift(0, 20)\n  points[45] = points[40].shiftOutwards(points[41], 20)\n\n  points[-1001] = new Path().move(points[1001]).curve_(points[1002], points[11]).shiftAlong(10)\n  points[-100101] = points[-1001].shift(points[1001].angle(points[6]), 10)\n  points[-1002] = points[1002].shift(90, -10)\n  points[-11] = new Path().move(points[11])._curve(points[801], points[8]).shiftAlong(10)\n  points[-1101] = new Path().move(points[11])._curve(points[1002], points[1001]).shiftAlong(10)\n  points[-1102] = new Point(\n    points[-1101].x + points[11].dx(points[-11]),\n    points[-1101].y + points[11].dy(points[-11])\n  )\n  points[-801] = points[801].shift(0, -10)\n  points[-8] = points[8].shift(0, -10)\n  points[-802] = points[802].shift(0, -10)\n  points[-1401] = points[1401].shift(points[1401].angle(points[14]) + 90, -10)\n  points[-14] = points[14].shift(points[1401].angle(points[14]) + 90, -10)\n  points[-1201] = points[1201].shift(0, -10)\n  points[-12] = points[12].shift(0, -10)\n  points[-13] = points[13].shift(0, 10)\n  points[-1301] = points[1301].shift(0, 10)\n  points[-15] = points[-14].flipX()\n  points[-1402] = points[-1401].flipX()\n  points[-901] = new Path().move(points[9])._curve(points[503], points[501]).shiftAlong(10)\n  points[-902] = new Path().move(points[9])._curve(points[1402], points[15]).shiftAlong(10)\n  points[-9] = new Point(\n    points[-902].x + points[9].dx(points[-901]),\n    points[-902].y + points[9].dy(points[-901])\n  )\n  points[-501] = points[501].shift(points[503].angle(points[502]) - 90, 10)\n  points[-502] = points[502].shift(points[503].angle(points[502]) - 90, 10)\n  points[-503] = points[503].shift(points[503].angle(points[502]) - 90, 10)\n  points[-6] = points[6].shift(points[6].angle(points[1001]) - 90, 10)\n  points[-40] = points[40].shiftTowards(points[41], 10)\n\n  // Smooth fly curve a bit at -6\n  points['-6cp'] = points[-100101].shiftOutwards(points[-6], points[-6].dist(points[-502]) / 2)\n\n  // Make sure fly ends on curve\n  let pretipX = utils.lineIntersectsCurve(\n    points[42],\n    points['43beam'],\n    points[-501],\n    points[-502],\n    points['-6cp'],\n    points[-6]\n  )\n  // If we found mulitple points, that's not a great sign.\n  // But at least we need a point instead of an array things we break\n  if (Array.isArray(points.flyPretipX)) points.flyPretipX = pretipX.pop()\n  // If we found no points then we're screwed\n  if (points.flyPreTip) points.flyPretipX = pretipX\n  else {\n    raise.warning(`\n      Unable to determine fly end\n\n      We improvised to prevent the pattern from falling apart.\n      But this is almost certainly going to be a bad pattern since we're in uncharted territory.\n    `)\n    points.flyPretipX = new Path()\n      .move(points[-6])\n      .curve(points['-6cp'], points[-502], points[-501])\n      .shiftFractionAlong(0.75)\n  }\n\n  points[43] = points.flyPretipX.clone()\n  // Slant pocket\n  points[60] = new Path().move(points[-1102])._curve(points[-1002], points[-100101]).shiftAlong(50)\n  let curve = new Path().move(points[-1102])._curve(points[-801], points[-8])\n  let len = curve.length()\n  if (len >= 190) points[61] = curve.shiftAlong(190)\n  else\n    points[61] = new Path()\n      .move(points[-8])\n      .curve(points[-802], points[-1401], points[-14])\n      .shiftAlong(190 - len)\n\n  // Paths\n  // This is the original Aldrich path, which includes seam allowance\n  paths.aldrich = new Path()\n    .move(points[9])\n    ._curve(points[503], points[501])\n    .curve_(points[502], points[6])\n    .line(points[1001])\n    .curve_(points[1002], points[11])\n    ._curve(points[801], points[8])\n    .curve(points[802], points[1401], points[14])\n    ._curve(points[1201], points[12])\n    .line(points[13])\n    .curve_(points[1301], points[15])\n    .curve_(points[1402], points[9])\n    .close()\n\n  // This is the path we use, no seam allowance\n  paths.hemBase = new Path().move(points[-12]).line(points[-13])\n  paths.saBase = new Path()\n    .move(points[-13])\n    .curve_(points[-1301], points[-15])\n    .curve_(points[-1402], points[-9])\n    ._curve(points[-503], points[-501])\n    .curve(points[-502], points['-6cp'], points[-6])\n    .line(points[-100101])\n    .curve_(points[-1002], points[-1102])\n    ._curve(points[-801], points[-8])\n    .curve(points[-802], points[-1401], points[-14])\n    ._curve(points[-1201], points[-12])\n\n  paths.seam = paths.hemBase.clone().join(paths.saBase).close().attr('class', 'fabric')\n\n  paths.aldrich.render = false\n  paths.hemBase.render = false\n  paths.saBase.render = false\n\n  // Complete pattern?\n  if (complete) {\n    if (sa) {\n      paths.sa = paths.hemBase\n        .offset(-3 * sa)\n        .join(paths.saBase.offset(-1 * sa))\n        .close()\n        .attr('class', 'fabric sa')\n    }\n    paths.fly = new Path()\n      .move(points[43])\n      .curve(points[44], points[45], points[41])\n      .line(points[-40])\n      .attr('class', 'fabric dashed')\n    paths.pocket = new Path().move(points[60]).line(points[61]).attr('class', 'fabric dashed')\n    paths.lining = new Path().move(points[-14]).line(points[-15]).attr('class', 'lining dashed')\n    macro('title', { at: points.title, title: 'front', nr: 2 })\n    macro('sprinkle', {\n      snippet: 'notch',\n      on: [60, 61, 43],\n    })\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points[-9],\n      to: points[-100101],\n      y: points[-1102].y - sa - 15,\n    })\n    macro('hd', {\n      from: points[-100101],\n      to: points[-1102],\n      y: points[-1102].y - sa - 15,\n    })\n    macro('hd', {\n      from: points[-9],\n      to: points[-1102],\n      y: points[-1102].y - sa - 15,\n    })\n    macro('hd', {\n      from: points[-9],\n      to: points[-8],\n      y: points[-1102].y - sa - 30,\n    })\n    macro('vd', {\n      from: points[-9],\n      to: points[-100101],\n      x: points[-9].x - sa - 15,\n    })\n    macro('vd', {\n      from: points[-9],\n      to: points[-1102],\n      x: points[-9].x - sa - 30,\n    })\n    macro('vd', {\n      from: points[-13],\n      to: points[-9],\n      x: points[-9].x - sa - 30,\n    })\n    macro('vd', {\n      from: points[-12],\n      to: points[-1102],\n      x: points[-8].x + sa + 15,\n    })\n    macro('hd', {\n      from: points[-13],\n      to: points[-12],\n      y: points[-12].y + 3 * sa + 15,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let {\n    Point,\n    points,\n    Path,\n    paths,\n    absoluteOptions,\n    complete,\n    paperless,\n    measurements,\n    macro,\n    snippets,\n    Snippet,\n  } = part.shorthand()\n\n  points[0] = new Point(0, 0)\n  points[2] = new Point(absoluteOptions.waistbandWidth, measurements.hips / 2 + 60)\n  points[1] = new Point(points[2].x, points[0].y)\n  points[3] = new Point(points[0].x, points[2].y)\n\n  paths.seam = new Path()\n    .move(points[0])\n    .line(points[1])\n    .line(points[2])\n    .line(points[3])\n    .line(points[0])\n    .close()\n    .attr('class', 'interfacing')\n\n  // Complete pattern?\n  if (complete) {\n    points.title = points[0].shiftFractionTowards(points[2], 0.5)\n    macro('title', {\n      at: points.title,\n      title: 'waistbandInterfacingLeft',\n      nr: '3a',\n      scale: 0.5,\n      rotation: -90,\n    })\n    points.logo = new Point(points[2].x / 2, 45)\n    snippets.logo = new Snippet('logo', points.logo).attr('data-scale', 0.7)\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points[3],\n      to: points[2],\n      y: points[2].y + 15,\n    })\n    macro('vd', {\n      from: points[2],\n      to: points[1],\n      x: points[2].x + 15,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let {\n    Point,\n    points,\n    Path,\n    paths,\n    absoluteOptions,\n    complete,\n    paperless,\n    measurements,\n    macro,\n    snippets,\n    Snippet,\n  } = part.shorthand()\n\n  points[0] = new Point(0, 0)\n  points[2] = new Point(absoluteOptions.waistbandWidth, measurements.hips / 2 + 40)\n  points[1] = new Point(points[2].x, points[0].y)\n  points[3] = new Point(points[0].x, points[2].y)\n\n  paths.seam = new Path()\n    .move(points[0])\n    .line(points[1])\n    .line(points[2])\n    .line(points[3])\n    .line(points[0])\n    .close()\n    .attr('class', 'interfacing')\n\n  // Complete pattern?\n  if (complete) {\n    points.title = points[0].shiftFractionTowards(points[2], 0.5)\n    macro('title', {\n      at: points.title,\n      title: 'waistbandInterfacingRight',\n      nr: '3b',\n      scale: 0.5,\n      rotation: -90,\n    })\n    points.logo = new Point(points[2].x / 2, 45)\n    snippets.logo = new Snippet('logo', points.logo).attr('data-scale', 0.7)\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points[3],\n      to: points[2],\n      y: points[2].y + 15,\n    })\n    macro('vd', {\n      from: points[2],\n      to: points[1],\n      x: points[2].x + 15,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { Point, points, macro, paths, complete, sa, paperless } = part.shorthand()\n\n  paths.seam.attributes.set('class', 'fabric')\n\n  // Complete pattern?\n  if (complete) {\n    if (sa) paths.sa = paths.seam.offset(-1 * sa).attr('class', 'fabric sa')\n    points.title = points[0].shiftFractionTowards(points[2], 0.5)\n    macro('title', {\n      at: points.title,\n      title: 'waistbandLeft',\n      nr: '4a',\n      scale: 0.5,\n      rotation: -90,\n    })\n    points.grainlineTop = new Point(points[2].x / 2, 0)\n    points.grainlineBottom = new Point(points[2].x / 2, points[2].y, 0)\n    macro('grainline', {\n      from: points.grainlineBottom,\n      to: points.grainlineTop,\n    })\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points[3],\n      to: points[2],\n      y: points[2].y + sa + 15,\n    })\n    macro('vd', {\n      from: points[2],\n      to: points[1],\n      x: points[2].x + sa + 15,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { Point, points, macro, paths, complete, sa, paperless } = part.shorthand()\n\n  paths.seam.attributes.set('class', 'fabric')\n\n  // Complete pattern?\n  if (complete) {\n    if (sa) paths.sa = paths.seam.offset(-1 * sa).attr('class', 'fabric sa')\n    points.title = points[0].shiftFractionTowards(points[2], 0.5)\n    macro('title', {\n      at: points.title,\n      title: 'waistbandRight',\n      nr: '4b',\n      scale: 0.5,\n      rotation: -90,\n    })\n    points.grainlineTop = new Point(points[2].x / 2, 0)\n    points.grainlineBottom = new Point(points[2].x / 2, points[2].y, 0)\n    macro('grainline', {\n      from: points.grainlineBottom,\n      to: points.grainlineTop,\n    })\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points[3],\n      to: points[2],\n      y: points[2].y + sa + 15,\n    })\n    macro('vd', {\n      from: points[2],\n      to: points[1],\n      x: points[2].x + sa + 15,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { Point, snippets, Snippet, macro, points, paths, Path, complete, sa, paperless } =\n    part.shorthand()\n\n  points[0] = points[0].shift(180, 80)\n  points[3] = points[3].shift(180, 80)\n\n  paths.seam = new Path()\n    .move(points[0])\n    .line(points[1])\n    .line(points[2])\n    .line(points[3])\n    .line(points[0])\n    .close()\n    .attr('class', 'lining')\n\n  // Complete pattern?\n  if (complete) {\n    if (sa) paths.sa = paths.seam.offset(-1 * sa).attr('class', 'lining sa')\n    points.title = points[0].shiftFractionTowards(points[2], 0.5)\n    macro('title', {\n      at: points.title,\n      title: 'waistbandLiningLeft',\n      nr: '5a',\n      scale: 0.5,\n      rotation: -90,\n    })\n    points.logo = points.title.shift(90, 70)\n    snippets.logo = new Snippet('logo', points.logo)\n    points.grainlineTop = new Point(points[2].x / 2, 0)\n    points.grainlineBottom = new Point(points[2].x / 2, points[2].y, 0)\n    macro('grainline', {\n      from: points.grainlineBottom,\n      to: points.grainlineTop,\n    })\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points[3],\n      to: points[2],\n      y: points[2].y + sa + 15,\n    })\n    macro('vd', {\n      from: points[2],\n      to: points[1],\n      x: points[2].x + sa + 15,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { Point, macro, snippets, Snippet, points, paths, Path, complete, sa, paperless } =\n    part.shorthand()\n\n  points[0] = points[0].shift(180, 80)\n  points[3] = points[3].shift(180, 80)\n\n  paths.seam = new Path()\n    .move(points[0])\n    .line(points[1])\n    .line(points[2])\n    .line(points[3])\n    .line(points[0])\n    .close()\n    .attr('class', 'lining')\n\n  // Complete pattern?\n  if (complete) {\n    if (sa) paths.sa = paths.seam.offset(-1 * sa).attr('class', 'lining sa')\n    points.title = points[0].shiftFractionTowards(points[2], 0.5)\n    macro('title', {\n      at: points.title,\n      title: 'waistbandLiningRight',\n      nr: '5b',\n      scale: 0.5,\n      rotation: -90,\n    })\n    points.logo = points.title.shift(90, 70)\n    snippets.logo = new Snippet('logo', points.logo)\n    points.grainlineTop = new Point(points[2].x / 2, 0)\n    points.grainlineBottom = new Point(points[2].x / 2, points[2].y, 0)\n    macro('grainline', {\n      from: points.grainlineBottom,\n      to: points.grainlineTop,\n    })\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points[3],\n      to: points[2],\n      y: points[2].y + sa + 15,\n    })\n    macro('vd', {\n      from: points[2],\n      to: points[1],\n      x: points[2].x + sa + 15,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { snippets, Point, macro, points, Path, paths, complete, sa, paperless } = part.shorthand()\n  // Clean up paths from paperless dimensions\n  for (let id in paths) delete paths[id]\n  for (let id in snippets) delete snippets[id]\n\n  // We need to split the crotch curve at the bottom of the fly\n  paths.fly = new Path()\n    .move(points[-501])\n    .curve(points[-502], points['-6cp'], points[-6])\n    .split(points[43])\n    .pop()\n  paths.fly.render = false\n\n  // We need to split the waist curve at the edge of the fly\n  let waist = new Path().move(points[-100101]).curve_(points[-1002], points[-1102])\n  points.splitWaist = waist.shiftAlong(points[-100101].dist(points[-40]))\n  paths.waist = waist.split(points.splitWaist).shift()\n  paths.waist.render = false\n\n  paths.seam = paths.waist\n    .clone()\n    .line(points[41])\n    .curve(points[45], points[44], points[43])\n    .join(paths.fly)\n    .line(points[-100101])\n    .close()\n    .attr('class', 'fabric')\n\n  // Complete pattern?\n  if (complete) {\n    if (sa) paths.sa = paths.seam.offset(sa * -1).attr('class', 'fabric sa')\n    points.title = points[9019].clone()\n    macro('title', {\n      at: points.title,\n      title: 'flyPiece',\n      nr: 6,\n      scale: 0.7,\n    })\n    points.grainlineTop = points[-100101].shiftFractionTowards(points.splitWaist, 0.3)\n    points.grainlineBottom = new Point(points.grainlineTop.x, points[41].y)\n    macro('grainline', {\n      from: points.grainlineBottom,\n      to: points.grainlineTop,\n    })\n    delete paths.pocket\n    delete paths.lining\n    delete snippets.logo\n    macro('scalebox', false)\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points[-100101],\n      to: points.splitWaist,\n      y: points.splitWaist.y - sa - 15,\n    })\n    macro('hd', {\n      from: points.flyPretipX,\n      to: points.splitWaist,\n      y: points.splitWaist.y - sa - 30,\n    })\n    macro('vd', {\n      from: points.flyPretipX,\n      to: points.splitWaist,\n      x: points.splitWaist.x + sa + 15,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { macro, points, Path, paths, complete, sa, paperless } = part.shorthand()\n\n  // Add points to make shift not impact curves\n  points.leftTop = points[-100101].shift(180, 20)\n  points.new43 = points[43].shift(180, 20)\n\n  // New path\n  paths.seam = new Path()\n    .move(points.leftTop)\n    .join(paths.waist)\n    .line(points[41])\n    .curve(points[45], points[44], points[43])\n    .line(points.new43)\n    .join(paths.fly.translate(-20, 0))\n    .line(points.leftTop)\n    .close()\n    .attr('class', 'fabric')\n\n  // Complete pattern?\n  if (complete) {\n    if (sa) paths.sa = paths.seam.offset(sa * -1).attr('class', 'fabric sa')\n    macro('title', {\n      at: points.title,\n      title: 'flyShield',\n      nr: 7,\n      scale: 0.7,\n    })\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points.leftTop,\n      to: points.splitWaist,\n      y: points.splitWaist.y - sa - 15,\n    })\n    macro('hd', {\n      from: points.new43,\n      to: points.splitWaist,\n      y: points.splitWaist.y - sa - 30,\n    })\n    macro('vd', {\n      from: points.new43,\n      to: points.splitWaist,\n      x: points.splitWaist.x + sa + 15,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { macro, Point, points, Path, paths, complete, sa, paperless, snippets } = part.shorthand()\n  // Clean up paths from paperless dimensions\n  for (let id in paths) delete paths[id]\n  for (let id in snippets) delete snippets[id]\n\n  // Add points\n  points.topLeft = new Path()\n    .move(points[-1102])\n    ._curve(points[-1002], points[-100101])\n    .shiftAlong(100)\n  points.bottomLeft = points[61].shift(180, 50)\n\n  // Split waist curve\n  paths.waist = new Path()\n    .move(points[-1102])\n    ._curve(points[-1002], points[-100101])\n    .split(points.topLeft)\n    .shift()\n  paths.waist.render = false\n\n  // Split side curve\n  paths.side = new Path().move(points[-8]).curve(points[-802], points[-1401], points[-14])\n  let split = paths.side.split(points[61]).shift()\n  if (split) paths.side = split.reverse()\n  else\n    paths.side = new Path()\n      .move(points[-8])\n      .curve_(points[-801], points[-1102])\n      .split(points[61])\n      .pop()\n  paths.side.render = false\n\n  paths.seam = new Path()\n    .move(points.topLeft)\n    .line(points.bottomLeft)\n    .line(points[61])\n    .join(paths.side)\n    .join(paths.waist)\n    .close()\n    .attr('class', 'fabric')\n\n  // Complete pattern?\n  if (complete) {\n    paths.pocket = new Path()\n      .move(points[60])\n      .line(points[61])\n      .attr('class', 'fabric stroke-sm lashed')\n    if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'fabric sa')\n    macro('scalebox', false)\n    delete paths.fly\n    delete paths.lining\n    points.grainlineTop = points[60].clone()\n    points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y)\n    macro('grainline', {\n      from: points.grainlineBottom,\n      to: points.grainlineTop,\n    })\n    points.title = points[-801].shift(180, 40)\n    macro('title', { at: points.title, title: 'sidePiece', nr: 8 })\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points.topLeft,\n      to: points[-1102],\n      y: points[-1102].y - sa - 15,\n    })\n    macro('hd', {\n      from: points.topLeft,\n      to: points[-8],\n      y: points[-1102].y - sa - 30,\n    })\n    macro('hd', {\n      from: points.bottomLeft,\n      to: points[61],\n      y: points.bottomLeft.y + sa + 15,\n    })\n    macro('hd', {\n      from: points.bottomLeft,\n      to: points[-8],\n      y: points.bottomLeft.y + sa + 30,\n    })\n    macro('vd', {\n      from: points.bottomLeft,\n      to: points.topLeft,\n      x: points.topLeft.x - sa - 15,\n    })\n    macro('vd', {\n      from: points.bottomLeft,\n      to: points[-1102],\n      x: points.topLeft.x - sa - 30,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { Point, points, Path, paths, complete, sa, paperless, macro, snippets, Snippet } =\n    part.shorthand()\n\n  // Clean up inherited paths & snippets\n  for (let id in paths) delete paths[id]\n  delete snippets['43-notch']\n\n  // Additional points\n  points[810] = new Point(points[60].x, points[-1102].y + 300)\n  points[811] = new Point(points[-8].x, points[810].y)\n  points[812] = new Point(points[0].x, points[810].y)\n  points[813] = points[-100101].shiftTowards(points[-6], 70)\n  points[814] = points[813].shift(0, 40)\n  points[815] = new Point(points[0].x, points[814].y)\n  points[816] = new Point(points[-40].x - sa, points[-40].y - sa)\n  points[817] = points[813].shift(0, 30)\n  points[818] = new Point(points[814].x - sa, points[814].y + sa)\n\n  // Paths\n  paths.seam = new Path()\n    .move(points[-100101])\n    .curve_(points[-1002], points[-1102])\n    ._curve(points[-801], points[-8])\n    .curve(points[-802], points[811], points[810])\n    .curve(points[812], points[815], points[814])\n    .line(points[813])\n    .line(points[-100101])\n    .close()\n    .attr('class', 'lining')\n\n  paths.flyEdge = new Path().move(points[-40]).line(points[814]).attr('class', 'lining lashed')\n\n  paths.pocket = new Path().move(points[60]).line(points[61]).attr('class', 'lining lashed')\n\n  // Complete pattern?\n  if (complete || paperless) {\n    points.grainlineTop = points[60].clone()\n    points.grainlineBottom = new Point(points.grainlineTop.x, points[810].y)\n  }\n  if (complete) {\n    if (sa) {\n      paths.sa = paths.seam.offset(-1 * sa).attr('class', 'lining sa')\n      paths.flyEdeSa = new Path().move(points[816]).line(points[818]).attr('class', 'lining sa')\n    }\n    points.title = points.dartTip.clone()\n    macro('title', { at: points.title, title: 'frontPocketBag', nr: 9 })\n    macro('grainline', {\n      from: points.grainlineBottom,\n      to: points.grainlineTop,\n    })\n    points.logo = new Point(points[60].x, points[61].y)\n    snippets.logo = new Snippet('logo', points.logo)\n    delete paths.fly\n    delete paths.lining\n    macro('scalebox', false)\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points[813],\n      to: points[-8],\n      y: points.grainlineBottom.y + sa + 15,\n    })\n    macro('hd', {\n      from: points[-40],\n      to: points[-8],\n      y: points[-1102].y - sa - 15,\n    })\n    macro('hd', {\n      from: points[-100101],\n      to: points[-8],\n      y: points[-1102].y - sa - 30,\n    })\n    macro('vd', {\n      from: points.grainlineBottom,\n      to: points[-1102],\n      x: points[-8].x + sa + 15,\n    })\n    macro('vd', {\n      from: points.grainlineBottom,\n      to: points[813],\n      x: points[813].x - sa - 15,\n    })\n    macro('vd', {\n      from: points.grainlineBottom,\n      to: points[-100101],\n      x: points[813].x - sa - 30,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { macro, measurements, Point, points, Path, paths, complete, sa, paperless } =\n    part.shorthand()\n\n  let width = measurements.hips * 0.16\n  let height = width * 1.43\n\n  points.topRight = new Point(width / 2, 0)\n  points.topLeft = points.topRight.flipX()\n  points.bottomRight = new Point(width / 2, height)\n  points.bottomLeft = points.bottomRight.flipX()\n  points.weltLeft = new Point(points.topLeft.x + 15, points.topLeft.y + width / 3)\n  points.weltRight = new Point(points.topRight.x - 15, points.topRight.y + width / 3)\n\n  macro('round', {\n    from: points.topLeft,\n    to: points.bottomRight,\n    via: points.bottomLeft,\n    radius: width / 12,\n    prefix: 'left',\n  })\n  macro('round', {\n    from: points.bottomLeft,\n    to: points.topRight,\n    via: points.bottomRight,\n    radius: width / 12,\n    prefix: 'right',\n  })\n\n  paths.seam = new Path()\n    .move(points.topLeft)\n    .line(points.leftStart)\n    .curve(points.leftCp1, points.leftCp2, points.leftEnd)\n    .line(points.rightStart)\n    .curve(points.rightCp1, points.rightCp2, points.rightEnd)\n    .line(points.topRight)\n    .line(points.topLeft)\n    .close()\n    .attr('class', 'lining')\n  paths.welt = new Path()\n    .move(points.weltLeft)\n    .line(points.weltRight)\n    .attr('class', 'lining dashed')\n\n  // Complete pattern?\n  if (complete) {\n    if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa')\n    points.title = new Point(0, height / 2)\n    macro('title', { at: points.title, title: 'backInnerPocketBag', nr: 10 })\n    points.grainlineTop = new Point(width / -3, 0)\n    points.grainlineBottom = new Point(width / -3, height)\n    macro('grainline', {\n      from: points.grainlineBottom,\n      to: points.grainlineTop,\n    })\n    macro('sprinkle', {\n      snippet: 'notch',\n      on: ['weltLeft', 'weltRight'],\n    })\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points.weltLeft,\n      to: points.weltRight,\n      y: points.weltLeft.y + 15,\n    })\n    macro('hd', {\n      from: points.leftStart,\n      to: points.rightEnd,\n      y: points.leftEnd.y + sa + 15,\n    })\n    macro('vd', {\n      from: points.rightStart,\n      to: points.topRight,\n      x: points.topRight.x + sa + 15,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { macro, points, Path, paths, complete, sa, paperless } = part.shorthand()\n\n  // Make bag 2cm longer\n  points.topRight = points.topRight.shift(90, 20)\n  points.topLeft = points.topLeft.shift(90, 20)\n\n  paths.seam = new Path()\n    .move(points.topLeft)\n    .line(points.leftStart)\n    .curve(points.leftCp1, points.leftCp2, points.leftEnd)\n    .line(points.rightStart)\n    .curve(points.rightCp1, points.rightCp2, points.rightEnd)\n    .line(points.topRight)\n    .line(points.topLeft)\n    .close()\n    .attr('class', 'lining')\n  paths.welt = new Path()\n    .move(points.weltLeft)\n    .line(points.weltRight)\n    .attr('class', 'lining dashed')\n\n  // Complete pattern?\n  if (complete) {\n    if (sa) paths.sa = paths.seam.offset(sa).attr('class', 'lining sa')\n    macro('title', { at: points.title, title: 'backInnerPocketBag', nr: 11 })\n  }\n\n  // Paperless?\n  if (paperless) {\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { macro, measurements, Point, points, Path, paths, complete, paperless } = part.shorthand()\n\n  let width = measurements.hips * 0.16\n  let height = width / 2\n\n  points.topRight = new Point(width / 2, 0)\n  points.topLeft = points.topRight.flipX()\n  points.bottomRight = new Point(width / 2, height)\n  points.bottomLeft = points.bottomRight.flipX()\n  points.weltLeft = new Point(points.topLeft.x + 15, points.topLeft.y + height / 2)\n  points.weltRight = new Point(points.topRight.x - 15, points.topRight.y + height / 2)\n\n  paths.seam = new Path()\n    .move(points.topLeft)\n    .line(points.bottomLeft)\n    .line(points.bottomRight)\n    .line(points.topRight)\n    .line(points.topLeft)\n    .close()\n    .attr('class', 'fabric')\n  paths.welt = new Path()\n    .move(points.weltLeft)\n    .line(points.weltRight)\n    .attr('class', 'fabric dashed')\n\n  // Complete pattern?\n  if (complete) {\n    points.title = points.topLeft.shiftFractionTowards(points.bottomRight, 0.5)\n    macro('title', { at: points.title, title: 'backPocketFacing', nr: 12 })\n    points.grainlineTop = points.topLeft.shiftFractionTowards(points.topRight, 0.2)\n    points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y)\n    macro('grainline', {\n      from: points.grainlineBottom,\n      to: points.grainlineTop,\n    })\n    macro('sprinkle', {\n      snippet: 'notch',\n      on: ['weltLeft', 'weltRight'],\n    })\n  }\n\n  // Paperless?\n  if (paperless) {\n    macro('hd', {\n      from: points.bottomLeft,\n      to: points.bottomRight,\n      y: points.bottomLeft.y + 15,\n    })\n    macro('vd', {\n      from: points.bottomRight,\n      to: points.topRight,\n      x: points.bottomRight.x + 15,\n    })\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { macro, points, paths, complete, paperless } = part.shorthand()\n\n  paths.seam.attributes.set('class', 'interfacing')\n  paths.welt.attributes.set('class', 'interfacing dashed')\n\n  // Complete pattern?\n  if (complete) {\n    macro('title', {\n      at: points.title,\n      title: 'backPocketInterfacing',\n      nr: 13,\n    })\n    macro('grainline', false)\n  }\n\n  // Paperless?\n  if (paperless) {\n  }\n\n  return part\n}\n", "export default function (part) {\n  let { absoluteOptions, Point, points, Path, paths, complete, paperless, macro } = part.shorthand()\n\n  let height = absoluteOptions.waistbandWidth + 30\n  let width = (height - 30) / 2\n\n  points.topRight = new Point(width / 2, 0)\n  points.topLeft = points.topRight.flipX()\n  points.bottomRight = new Point(width / 2, height)\n  points.bottomLeft = points.bottomRight.flipX()\n\n  paths.seam = new Path()\n    .move(points.topLeft)\n    .line(points.bottomLeft)\n    .line(points.bottomRight)\n    .line(points.topRight)\n    .line(points.topLeft)\n    .close()\n    .attr('class', 'fabric')\n\n  // Complete pattern?\n  if (complete) {\n    points.title = new Point(0, height / 2)\n    macro('title', {\n      at: points.title,\n      title: 'beltLoop',\n      nr: 14,\n      scale: 0.4,\n    })\n    points.grainlineTop = points.topLeft.shiftFractionTowards(points.topRight, 0.5)\n    points.grainlineBottom = new Point(points.grainlineTop.x, points.bottomLeft.y)\n    macro('grainline', {\n      from: points.grainlineBottom,\n      to: points.grainlineTop,\n    })\n  }\n\n  // Paperless?\n  if (paperless) {\n  }\n\n  return part\n}\n"],
  "mappings": "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",
  "names": ["freesewing", "plugins", "configHelpers", "steps", "pctBasedOn", "config_default", "version", "back_default", "part", "store", "sa", "Point", "points", "Path", "paths", "absoluteOptions", "options", "complete", "paperless", "macro", "utils", "measurements", "snippets", "Snippet", "raise", "calculateSlashCorner", "step", "i", "corner", "rotateThese", "id", "newId", "front_default", "part", "store", "sa", "Point", "points", "Path", "paths", "options", "complete", "paperless", "macro", "utils", "measurements", "snippets", "raise", "id", "tmp", "pretipX", "curve", "len", "waistband_interfacing_left_default", "part", "Point", "points", "Path", "paths", "absoluteOptions", "complete", "paperless", "measurements", "macro", "snippets", "Snippet", "waistband_interfacing_right_default", "part", "Point", "points", "Path", "paths", "absoluteOptions", "complete", "paperless", "measurements", "macro", "snippets", "Snippet", "waistband_left_default", "part", "Point", "points", "macro", "paths", "complete", "sa", "paperless", "waistband_right_default", "part", "Point", "points", "macro", "paths", "complete", "sa", "paperless", "waistband_lining_left_default", "part", "Point", "snippets", "Snippet", "macro", "points", "paths", "Path", "complete", "sa", "paperless", "waistband_lining_right_default", "part", "Point", "macro", "snippets", "Snippet", "points", "paths", "Path", "complete", "sa", "paperless", "fly_piece_default", "part", "snippets", "Point", "macro", "points", "Path", "paths", "complete", "sa", "paperless", "id", "waist", "fly_shield_default", "part", "macro", "points", "Path", "paths", "complete", "sa", "paperless", "side_piece_default", "part", "macro", "Point", "points", "Path", "paths", "complete", "sa", "paperless", "snippets", "id", "split", "front_pocket_bag_default", "part", "Point", "points", "Path", "paths", "complete", "sa", "paperless", "macro", "snippets", "Snippet", "id", "back_inner_pocket_bag_default", "part", "macro", "measurements", "Point", "points", "Path", "paths", "complete", "sa", "paperless", "width", "height", "back_outer_pocket_bag_default", "part", "macro", "points", "Path", "paths", "complete", "sa", "paperless", "back_pocket_facing_default", "part", "macro", "measurements", "Point", "points", "Path", "paths", "complete", "paperless", "width", "height", "back_pocket_interfacing_default", "part", "macro", "points", "paths", "complete", "paperless", "belt_loop_default", "part", "absoluteOptions", "Point", "points", "Path", "paths", "complete", "paperless", "macro", "height", "width", "Theo", "freesewing", "config_default", "plugins", "part", "back_default", "front_default", "waistband_interfacing_left_default", "waistband_interfacing_right_default", "waistband_lining_left_default", "waistband_lining_right_default", "waistband_left_default", "waistband_right_default", "fly_piece_default", "fly_shield_default", "side_piece_default", "front_pocket_bag_default", "back_inner_pocket_bag_default", "back_outer_pocket_bag_default", "back_pocket_facing_default", "back_pocket_interfacing_default", "belt_loop_default", "src_default", "Theo"]
}
