diff --git a/designs/cathrin/config/index.js b/designs/cathrin/config/index.js deleted file mode 100644 index 20392b847dd..00000000000 --- a/designs/cathrin/config/index.js +++ /dev/null @@ -1,53 +0,0 @@ -import pkg from '../package.json' assert { type: 'json' } - -const { version } = pkg - -export default { - version, - name: 'cathrin', - design: ['Cathrin Åhlén', 'Joost De Cock'], - code: 'Joost De Cock', - department: 'underwear', - type: 'pattern', - difficulty: 4, - optionGroups: { - fit: ['waistReduction', 'panels'], - style: ['backOpening', 'backRise', 'backDrop', 'frontRise', 'frontDrop', 'hipRise'], - }, - measurements: ['underbust', 'waist', 'hips', 'waistToUnderbust', 'waistToHips'], - dependencies: { - panel1: 'panels', - panel2: 'panels', - panel3: 'panels', - panel4: 'panels', - panel5: 'panels', - panel6: 'panels', - panels: 'base', - }, - inject: { - panel1: 'panels', - panel2: 'panels', - panel3: 'panels', - panel4: 'panels', - panel5: 'panels', - panel6: 'panels', - panels: 'base', - }, - hide: ['panels', 'base'], - options: { - // Lists - panels: { - list: ['11', '13'], - dflt: '13', - }, - - // Percentages - waistReduction: { pct: 10, min: 2, max: 20 }, - backOpening: { pct: 4, min: 3, max: 10 }, - backRise: { pct: 15, min: 1, max: 25 }, - backDrop: { pct: 2, min: 0, max: 5 }, - frontRise: { pct: 4, min: 0.1, max: 8 }, - frontDrop: { pct: 5, min: 0, max: 10 }, - hipRise: { pct: 5, min: 0, max: 15 }, - }, -} diff --git a/designs/cathrin/src/base.mjs b/designs/cathrin/src/base.mjs index 6b821e4dcd4..1276c40c33f 100644 --- a/designs/cathrin/src/base.mjs +++ b/designs/cathrin/src/base.mjs @@ -1,4 +1,4 @@ -export default function (part) { +function draftCathrinBase (part) { let { measurements, options, store, points, paths, Point, Path } = part.shorthand() // Where to divide our corset into panels @@ -90,3 +90,22 @@ export default function (part) { return part } + +export const base = { + name: 'cathrin.base', + hide: true, + measurements: [ + 'underbust', 'waist', 'hips', 'waistToUnderbust', 'waistToHips', + ], + options: { + waistReduction: { pct: 10, min: 2, max: 20, menu: 'fit' }, + panels: { list: ['11', '13'], dflt: '13', menu: 'fit' }, + backOpening: { pct: 4, min: 3, max: 10, menu: 'style' }, + backRise: { pct: 15, min: 1, max: 25, menu: 'style' }, + backDrop: { pct: 2, min: 0, max: 5, menu: 'style' }, + frontRise: { pct: 4, min: 0.1, max: 8, menu: 'style' }, + frontDrop: { pct: 5, min: 0, max: 10, menu: 'style' }, + hipRise: { pct: 5, min: 0, max: 15, menu: 'style' }, + }, + draft: draftCathrinBase, +} diff --git a/designs/cathrin/src/index.mjs b/designs/cathrin/src/index.mjs index 69433bf8809..70580a22a72 100644 --- a/designs/cathrin/src/index.mjs +++ b/designs/cathrin/src/index.mjs @@ -1,31 +1,26 @@ -import freesewing from '@freesewing/core' -import plugins from '@freesewing/plugin-bundle' -import config from '../config' +import { Design } from '@freesewing/core' +import { data } from '../data.mjs' //Parts -import draftBase from './base' -import draftPanels from './panels' -import draftPanel1 from './panel1' -import draftPanel2 from './panel2' -import draftPanel3 from './panel3' -import draftPanel4 from './panel4' -import draftPanel5 from './panel5' -import draftPanel6 from './panel6' +import { panel1 } from './panel1.mjs' +import { panel2 } from './panel2.mjs' +import { panel3 } from './panel3.mjs' +import { panel4 } from './panel4.mjs' +import { panel5 } from './panel5.mjs' +import { panel6 } from './panel6.mjs' +// Skeleton parts for export +import { base } from './base.mjs' +import { panels } from './panels.mjs' // Create design -const Cathrin = new freesewing.Design(config, plugins) - -// Attach draft methods to prototype -Cathrin.prototype.draftBase = draftBase -Cathrin.prototype.draftPanels = draftPanels -Cathrin.prototype.draftPanel1 = draftPanel1 -Cathrin.prototype.draftPanel2 = draftPanel2 -Cathrin.prototype.draftPanel3 = draftPanel3 -Cathrin.prototype.draftPanel4 = draftPanel4 -Cathrin.prototype.draftPanel5 = draftPanel5 -Cathrin.prototype.draftPanel6 = draftPanel6 +const Cathrin = new Design({ + data, + parts: [ + panel1, panel2, panel3, panel4, panel5, panel6, + ], +}) // Named exports -export { config, Cathrin } - -// Default export -export default Cathrin +export { + base, panels, panel1, panel2, panel3, panel4, panel5, panel6, + Cathrin, +} diff --git a/designs/cathrin/src/panel1.mjs b/designs/cathrin/src/panel1.mjs index fa919dedba8..05b559c3d36 100644 --- a/designs/cathrin/src/panel1.mjs +++ b/designs/cathrin/src/panel1.mjs @@ -1,6 +1,8 @@ -import draftPanel1ab from './panel1ab' +import { pluginBundle } from '@freesewing/plugin-bundle' +import { panels } from './panels.mjs' +import { draftPanel1ab } from './panel1ab.mjs' -export default function (part) { +function draftCathrinPanel1 (part) { let { macro, sa, paths, points, options, complete, paperless } = part.shorthand() points.anchor = points.topCF.clone() @@ -70,3 +72,10 @@ export default function (part) { return part } + +export const panel1 = { + name: 'cathrin.panel1', + from: panels, + plugins: [ pluginBundle ], + draft: draftCathrinPanel1, +} diff --git a/designs/cathrin/src/panel1ab.mjs b/designs/cathrin/src/panel1ab.mjs index 89eb5ba9b0b..c5ad2a75775 100644 --- a/designs/cathrin/src/panel1ab.mjs +++ b/designs/cathrin/src/panel1ab.mjs @@ -1,4 +1,4 @@ -export default function (part) { +export function draftPanel1ab (part) { let { macro, utils, sa, points, paths, Point, Path, complete, paperless } = part.shorthand() points.anchor = points.topCF.clone() diff --git a/designs/cathrin/src/panel2.mjs b/designs/cathrin/src/panel2.mjs index 7d710aa3149..7db266d2bfd 100644 --- a/designs/cathrin/src/panel2.mjs +++ b/designs/cathrin/src/panel2.mjs @@ -1,4 +1,7 @@ -export default function (part) { +import { pluginBundle } from '@freesewing/plugin-bundle' +import { panels } from './panels.mjs' + +function draftCathrinPanel2 (part) { let { macro, sa, points, paths, Point, complete, paperless } = part.shorthand() points.anchor = points.underbustGap1Right.clone() @@ -70,3 +73,10 @@ export default function (part) { return part } + +export const panel2 = { + name: 'cathrin.panel2', + from: panels, + plugins: [ pluginBundle ], + draft: draftCathrinPanel2, +} diff --git a/designs/cathrin/src/panel3.mjs b/designs/cathrin/src/panel3.mjs index 8a1857b1133..a2e9bc63bd1 100644 --- a/designs/cathrin/src/panel3.mjs +++ b/designs/cathrin/src/panel3.mjs @@ -1,4 +1,7 @@ -export default function (part) { +import { pluginBundle } from '@freesewing/plugin-bundle' +import { panels } from './panels.mjs' + +function draftCathrinPanel3 (part) { let { macro, sa, points, paths, Point, complete, paperless } = part.shorthand() points.anchor = points.underbustGap2Right.clone() @@ -70,3 +73,10 @@ export default function (part) { return part } + +export const panel3 = { + name: 'cathrin.panel3', + from: panels, + plugins: [ pluginBundle ], + draft: draftCathrinPanel3, +} diff --git a/designs/cathrin/src/panel4.mjs b/designs/cathrin/src/panel4.mjs index 3970f59ab20..c62670968cd 100644 --- a/designs/cathrin/src/panel4.mjs +++ b/designs/cathrin/src/panel4.mjs @@ -1,4 +1,7 @@ -export default function (part) { +import { pluginBundle } from '@freesewing/plugin-bundle' +import { panels } from './panels.mjs' + +function draftCathrinPanel4 (part) { let { macro, sa, snippets, Snippet, points, paths, Point, complete, paperless } = part.shorthand() points.anchor = points.underbustGap3Right.clone() @@ -73,3 +76,10 @@ export default function (part) { return part } + +export const panel4 = { + name: 'cathrin.panel4', + from: panels, + plugins: [ pluginBundle ], + draft: draftCathrinPanel4, +} diff --git a/designs/cathrin/src/panel5.mjs b/designs/cathrin/src/panel5.mjs index 31d92772cf4..b9da240ff61 100644 --- a/designs/cathrin/src/panel5.mjs +++ b/designs/cathrin/src/panel5.mjs @@ -1,4 +1,7 @@ -export default function (part) { +import { pluginBundle } from '@freesewing/plugin-bundle' +import { panels } from './panels.mjs' + +function draftCathrinPanel5 (part) { let { macro, sa, points, paths, Point, complete, paperless } = part.shorthand() points.anchor = points.underbustGap4Right.clone() @@ -70,3 +73,10 @@ export default function (part) { return part } + +export const panel5 = { + name: 'cathrin.panel5', + from: panels, + plugins: [ pluginBundle ], + draft: draftCathrinPanel5, +} diff --git a/designs/cathrin/src/panel6.mjs b/designs/cathrin/src/panel6.mjs index 1b3b30b3fa4..a3107429660 100644 --- a/designs/cathrin/src/panel6.mjs +++ b/designs/cathrin/src/panel6.mjs @@ -1,4 +1,7 @@ -export default function (part) { +import { pluginBundle } from '@freesewing/plugin-bundle' +import { panels } from './panels.mjs' + +function draftCathrinPanel6 (part) { let { macro, sa, points, paths, Point, complete, paperless } = part.shorthand() points.anchor = points.backRise.clone() @@ -75,3 +78,10 @@ export default function (part) { return part } + +export const panel6 = { + name: 'cathrin.panel6', + from: panels, + plugins: [ pluginBundle ], + draft: draftCathrinPanel6, +} diff --git a/designs/cathrin/src/panels.mjs b/designs/cathrin/src/panels.mjs index 71d8103189e..1ea255db017 100644 --- a/designs/cathrin/src/panels.mjs +++ b/designs/cathrin/src/panels.mjs @@ -1,4 +1,6 @@ -export default function (part) { +import { base } from './base.mjs' + +function draftCathrinPanels (part) { let { measurements, options, store, points, paths, Point, Path } = part.shorthand() let count = 1 let bottom = new Path() @@ -139,3 +141,10 @@ export default function (part) { return part } + +export const panels = { + name: 'cathrin.panels', + from: base, + hide: true, + draft: draftCathrinPanels, +}