From 6f07ab7f0ab8f763b49ca339f4644908d3e2978a Mon Sep 17 00:00:00 2001 From: Joost De Cock Date: Fri, 28 Dec 2018 17:45:57 +0100 Subject: [PATCH] sparkles: Added simon --- packages/pattern-bundle/README.md | 1 + packages/pattern-bundle/package-lock.json | 231 +++++++++++++--------- packages/pattern-bundle/package.json | 11 +- packages/pattern-bundle/src/index.js | 4 +- packages/pattern-bundle/src/info/index.js | 4 +- packages/pattern-bundle/src/info/simon.js | 108 ++++++++++ 6 files changed, 258 insertions(+), 101 deletions(-) create mode 100644 packages/pattern-bundle/src/info/simon.js diff --git a/packages/pattern-bundle/README.md b/packages/pattern-bundle/README.md index 0ef3bb6a162..184a5a91c1b 100644 --- a/packages/pattern-bundle/README.md +++ b/packages/pattern-bundle/README.md @@ -23,6 +23,7 @@ Blocks or slopers are basic patterns shapes that you can extend into fully detai - [aaron](https://github.com/freesewing/aaron) : A tank top or A-shirt - [bruce](https://github.com/freesewing/bruce) : Boxer briefs - [hugo](https://github.com/freesewing/hugo) : A hooded sweatshirt with raglan sleeves + - [simon](https://github.com/freesewing/simon) : A versatile button-down shirt ### Womenswear diff --git a/packages/pattern-bundle/package-lock.json b/packages/pattern-bundle/package-lock.json index 1005b6a1feb..60ac628b6af 100644 --- a/packages/pattern-bundle/package-lock.json +++ b/packages/pattern-bundle/package-lock.json @@ -697,125 +697,82 @@ } }, "@freesewing/aaron": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@freesewing/aaron/-/aaron-0.7.1.tgz", - "integrity": "sha512-X7OM9XI000J0EP6qJCzUQZIYJ0AeXbgbWEtFT6luVN0aYxGu2Lrc7YujF9b2E30RaNbC19NPHgXyPYS85JEnAA==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@freesewing/aaron/-/aaron-0.10.1.tgz", + "integrity": "sha512-pexeVYlJMINsH0tr0b6jbY6DbVWC0VnrKp3c76p8BHK46c6dye/EvNiw+MAOe7pyRhX18tBVKs5nHVZ/KY/VsQ==", "requires": { - "@freesewing/brian": "^0.19" - }, - "dependencies": { - "@freesewing/brian": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@freesewing/brian/-/brian-0.19.0.tgz", - "integrity": "sha512-Acl5RsIgKXtp/jw5gwTLo0ZM8OSi0ScKuvZiw66l4SN5meZwp9+VZ9ytnR+lbPUkpUKYhdyW3i9khvSMBkzALg==", - "requires": { - "@freesewing/plugin-bundle": "0.5.1", - "freesewing": "^0.23.2" - } - }, - "freesewing": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/freesewing/-/freesewing-0.23.2.tgz", - "integrity": "sha512-6EWJnr/X6lsyCkN4NJK1KAP6TTI4YF7NIaAP0eATOebAU87FENqBaHLH8x+PoY/0BcekprGIen/hhQelUOLc5g==", - "requires": { - "bezier-js": "^2.2.15", - "bin-pack": "1.0.2" - } - } + "@freesewing/brian": "^0.22.1" } }, "@freesewing/brian": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@freesewing/brian/-/brian-0.18.1.tgz", - "integrity": "sha512-9zFz9uhYkoUo4RJY7/iIjA8zd5WlfDZ7RVRLykqFJXuxTUeobd1g2ZQ/5nHumjvXYBcN7VWUqzFG+zrTdX8WdQ==", + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/@freesewing/brian/-/brian-0.22.1.tgz", + "integrity": "sha512-sud2S0mJExsqQT0raJeWnWSAHa4bSTYp9BHBivSuh5RjtgXMtFBnhOvZLBgAbulHeKt4P3UI8jSTLWZdRIWkzQ==", "requires": { - "@freesewing/plugin-bundle": "0.5.1", - "freesewing": "^0.23.1" + "@freesewing/plugin-bundle": "0.7.1", + "freesewing": "^0.26.1" } }, "@freesewing/bruce": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@freesewing/bruce/-/bruce-0.4.0.tgz", - "integrity": "sha512-Wy4ngZyrHhvMU9PiFxcWk5b36voZHtuGWGXv3yzQVDVO31BQmAq5Wt+zhDL6t3bjdMA/BBBQAgS4Mb3ybnXDfA==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@freesewing/bruce/-/bruce-0.5.1.tgz", + "integrity": "sha512-1LAwRs9WM66qV3hbfwIP44a1JFh7ztF/1oOEo6mEop7JhPjPePBofC9iVwIjcUBkSbK31zuHtfZ40hVWBaR/Vg==", "requires": { - "@freesewing/plugin-bundle": "^0.5.1", - "freesewing": "^0.23.2" - }, - "dependencies": { - "freesewing": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/freesewing/-/freesewing-0.23.2.tgz", - "integrity": "sha512-6EWJnr/X6lsyCkN4NJK1KAP6TTI4YF7NIaAP0eATOebAU87FENqBaHLH8x+PoY/0BcekprGIen/hhQelUOLc5g==", - "requires": { - "bezier-js": "^2.2.15", - "bin-pack": "1.0.2" - } - } + "@freesewing/plugin-bundle": "^0.7.1", + "freesewing": "^0.26.1" } }, "@freesewing/cathrin": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@freesewing/cathrin/-/cathrin-0.3.0.tgz", - "integrity": "sha512-4Lc4jw1m5kkkYNPEEiLzcPtANJbzt3XfLT7mAijyENsCyJhNziP8/YOdImQSOVJbTxerkfBi7R8/eFTfjwd83g==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@freesewing/cathrin/-/cathrin-0.4.1.tgz", + "integrity": "sha512-5VaK7/Vf9bEOq2gA8kqzaNAO+N36v4NZWbzXKmh+9pr/NqchGRgijg6bFrorha2MhQqr/gwx39LCuf2dFfoy+Q==", "requires": { - "@freesewing/plugin-bundle": "^0.5.1", - "freesewing": "^0.23.2" - }, - "dependencies": { - "freesewing": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/freesewing/-/freesewing-0.23.2.tgz", - "integrity": "sha512-6EWJnr/X6lsyCkN4NJK1KAP6TTI4YF7NIaAP0eATOebAU87FENqBaHLH8x+PoY/0BcekprGIen/hhQelUOLc5g==", - "requires": { - "bezier-js": "^2.2.15", - "bin-pack": "1.0.2" - } - } + "@freesewing/plugin-bundle": "^0.7.1", + "freesewing": "^0.26.1" } }, "@freesewing/hugo": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@freesewing/hugo/-/hugo-0.2.2.tgz", - "integrity": "sha512-XIJFZOaQexdsVsG03WInogHUBhUK+bBJglT7rUyTOv56uxTzR0+EiD/bxDpz0EWB0QEeCc6a9T+Urdo7Ded4mA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@freesewing/hugo/-/hugo-0.4.1.tgz", + "integrity": "sha512-dJ8SGClO8JQXr1c8zoy4oqXwuwUa+tQRQANqs0Pc/bCiZkozI5Z/Y3QbJ9H3EY4gTbcTJgnsHh9z98R9MXdkfA==", "requires": { - "@freesewing/brian": "^0.19", - "@freesewing/plugin-bundle": "^0.5.1", - "freesewing": "^0.23.2" - }, - "dependencies": { - "@freesewing/brian": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@freesewing/brian/-/brian-0.19.0.tgz", - "integrity": "sha512-Acl5RsIgKXtp/jw5gwTLo0ZM8OSi0ScKuvZiw66l4SN5meZwp9+VZ9ytnR+lbPUkpUKYhdyW3i9khvSMBkzALg==", - "requires": { - "@freesewing/plugin-bundle": "0.5.1", - "freesewing": "^0.23.2" - } - }, - "freesewing": { - "version": "0.23.3", - "resolved": "https://registry.npmjs.org/freesewing/-/freesewing-0.23.3.tgz", - "integrity": "sha512-u3Cq2N8dAnuLFftDsPg5tmKaQQeUo0EY545/caB0cdZ0+nyzMBzJU+7oHzZSM3sSdnTlTNmKHiYHr88M1txsGw==", - "requires": { - "bezier-js": "^2.2.15", - "bin-pack": "1.0.2" - } - } + "@freesewing/brian": "^0.22.1", + "@freesewing/plugin-bundle": "^0.7.1", + "freesewing": "^0.26.1" } }, + "@freesewing/plugin-banner": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@freesewing/plugin-banner/-/plugin-banner-0.2.0.tgz", + "integrity": "sha512-URf6rpXtq9woxu8/NRlTsCDU/CxAY2wm92lBqVkqvMIzQRx1BDPnowXe/F5QnT6hfh/HIKUaAyA9AYlyia8nTA==" + }, "@freesewing/plugin-bundle": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@freesewing/plugin-bundle/-/plugin-bundle-0.5.1.tgz", - "integrity": "sha512-43dF2OkLE6ZxFwK5aLElX/6ejQl4tgLhMFlYO7igqLRjaEufC3Q9mAIR+AyuzyUzDkDdgGdefqTdmOjTdO4PTg==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@freesewing/plugin-bundle/-/plugin-bundle-0.7.1.tgz", + "integrity": "sha512-XrcZzQFbvWNtulJxSgYIw/ZXDq6bCKasO/COUoIs1LEmYkU/igd/lCfW4TN8WZRrtQronKpDIbePYiPmbuFjyQ==", "requires": { "@freesewing/plugin-cutonfold": "0.10.2", "@freesewing/plugin-dimension": "0.7.3", "@freesewing/plugin-grainline": "0.2.2", "@freesewing/plugin-logo": "0.5.2", + "@freesewing/plugin-round": "0.2.0", "@freesewing/plugin-scalebox": "0.3.1", - "@freesewing/plugin-title": "0.9.1" + "@freesewing/plugin-sprinkle": "0.1.0", + "@freesewing/plugin-title": "0.10.0" + }, + "dependencies": { + "@freesewing/plugin-title": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@freesewing/plugin-title/-/plugin-title-0.10.0.tgz", + "integrity": "sha512-UZYge58Cofpgjx7ODhdszTKYRURjVtP2YIkOsUR3/kzicVpAw/wuoFX9n85y9IGG+k9ImIX7/7F4AtqlhNItnQ==" + } } }, + "@freesewing/plugin-buttons": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@freesewing/plugin-buttons/-/plugin-buttons-0.1.0.tgz", + "integrity": "sha512-X3C4duwnx0CT9Q6zUfPeErlz4A1nJMdTLJ/smhtkfjOK9G81hsKkyRO8JIGb7vHcz9McMD5yq3xbsBxVAvGyLw==" + }, "@freesewing/plugin-cutonfold": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/@freesewing/plugin-cutonfold/-/plugin-cutonfold-0.10.2.tgz", @@ -826,6 +783,11 @@ "resolved": "https://registry.npmjs.org/@freesewing/plugin-dimension/-/plugin-dimension-0.7.3.tgz", "integrity": "sha512-F0x+zARVNd2l3IX/sK0UmH2+Y/Mw2rKwZD8eLKWBfq0zCaC3WGHmd4TzlnE0oxQpiDejAYbsliFGm0vLPQyVMg==" }, + "@freesewing/plugin-flip": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@freesewing/plugin-flip/-/plugin-flip-0.1.1.tgz", + "integrity": "sha512-0LmoacN7SYQOiAI/D5PG/HQP2mAZaXVgET9+n7wRNCMLLwKQOK5OP87K9vppPmSurfly5Pcnhs0sXj/sLNMTxQ==" + }, "@freesewing/plugin-grainline": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/@freesewing/plugin-grainline/-/plugin-grainline-0.2.2.tgz", @@ -836,16 +798,97 @@ "resolved": "https://registry.npmjs.org/@freesewing/plugin-logo/-/plugin-logo-0.5.2.tgz", "integrity": "sha512-g+lk/nBYxnzs7hQYUdQ/YDPJCUmUeZcNdk0+xUWoADdoZY95NwrXVxfNz/O2wI9kRCgFpFojgT0dD2HKtkv0/w==" }, + "@freesewing/plugin-round": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@freesewing/plugin-round/-/plugin-round-0.2.0.tgz", + "integrity": "sha512-uzAxICxNHQ0rtS4W07mhQQ0qcm4nHWNUzkInK/322k7BCYYb/v8tsC2EW9PISCvHZqUEhlDBR+vXPsusNSRNhA==" + }, "@freesewing/plugin-scalebox": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@freesewing/plugin-scalebox/-/plugin-scalebox-0.3.1.tgz", "integrity": "sha512-iZwWVQdLGs/cPVZl4ZyBMzNrIUzDRWyhScBg9D62UGuBIPdGFmA1fDEgZ+5hDJ9UuxR65/Ue1emJlOlP2ZwOtw==" }, + "@freesewing/plugin-sprinkle": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@freesewing/plugin-sprinkle/-/plugin-sprinkle-0.1.0.tgz", + "integrity": "sha512-u/tm8sgW5h2RlvGPhyCG4KUb1GhTMwuTkOotgdsevZr9fx3aApDUmZhe2mfmJhvKvgQGaa6IOQJ69OJ402oOCg==" + }, "@freesewing/plugin-title": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/@freesewing/plugin-title/-/plugin-title-0.9.1.tgz", "integrity": "sha512-zsWJ3pXb/7bcgQqEEzSht5+jqZzzN80m1myRFKANqdxwi80ts81GWLhMgY9FlSHCVSvtwbLP4DAXz2bPDFoxKQ==" }, + "@freesewing/simon": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@freesewing/simon/-/simon-0.1.0.tgz", + "integrity": "sha512-ksLCLdWNv6A0HoPpcEmgGvwLJ2vv/TsORgWq7Ecsfs+pyc7yaMFuBUBKIc5Tzsg8eEnRE3bd00ayTQRs6xihxA==", + "requires": { + "@freesewing/brian": "^0.22.0", + "@freesewing/plugin-banner": "0.2.0", + "@freesewing/plugin-bundle": "^0.7.1", + "@freesewing/plugin-buttons": "0.1.0", + "@freesewing/plugin-flip": "0.1.1", + "freesewing": "^0.26.1" + }, + "dependencies": { + "@freesewing/brian": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@freesewing/brian/-/brian-0.22.0.tgz", + "integrity": "sha512-HUTZop9uFRITLgLks0mShnn2DLonAMc7EcIqg0SpYCxbOAndS9WemIx3mOqg1+OixzqE6TDe+k4HJifmd+K3/Q==", + "requires": { + "@freesewing/plugin-bundle": "0.6.0", + "freesewing": "^0.26.1" + }, + "dependencies": { + "@freesewing/plugin-bundle": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@freesewing/plugin-bundle/-/plugin-bundle-0.6.0.tgz", + "integrity": "sha512-gytm7G6CQtgi7wAxXe2ib8vwqak8DpMhR7v++fX418EgR16WBgxTVdglqLVQ8j/qF+W7QRbcS+jomCfU7FLxXQ==", + "requires": { + "@freesewing/plugin-cutonfold": "0.10.2", + "@freesewing/plugin-dimension": "0.7.3", + "@freesewing/plugin-grainline": "0.2.2", + "@freesewing/plugin-logo": "0.5.2", + "@freesewing/plugin-round": "0.2.0", + "@freesewing/plugin-scalebox": "0.3.1", + "@freesewing/plugin-title": "0.9.1" + } + } + } + }, + "@freesewing/plugin-bundle": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@freesewing/plugin-bundle/-/plugin-bundle-0.7.1.tgz", + "integrity": "sha512-XrcZzQFbvWNtulJxSgYIw/ZXDq6bCKasO/COUoIs1LEmYkU/igd/lCfW4TN8WZRrtQronKpDIbePYiPmbuFjyQ==", + "requires": { + "@freesewing/plugin-cutonfold": "0.10.2", + "@freesewing/plugin-dimension": "0.7.3", + "@freesewing/plugin-grainline": "0.2.2", + "@freesewing/plugin-logo": "0.5.2", + "@freesewing/plugin-round": "0.2.0", + "@freesewing/plugin-scalebox": "0.3.1", + "@freesewing/plugin-sprinkle": "0.1.0", + "@freesewing/plugin-title": "0.10.0" + }, + "dependencies": { + "@freesewing/plugin-title": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@freesewing/plugin-title/-/plugin-title-0.10.0.tgz", + "integrity": "sha512-UZYge58Cofpgjx7ODhdszTKYRURjVtP2YIkOsUR3/kzicVpAw/wuoFX9n85y9IGG+k9ImIX7/7F4AtqlhNItnQ==" + } + } + }, + "freesewing": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/freesewing/-/freesewing-0.26.1.tgz", + "integrity": "sha512-j6y7JuM+n3vyKwBPkEYOjpXc4QoU0cBcHDQTaWBi/YXITrIvi2zYcbTW6xwGnQcohBjNDb3feqZSgGhf4dB/xw==", + "requires": { + "bezier-js": "^2.2.15", + "bin-pack": "1.0.2" + } + } + } + }, "@samverschueren/stream-to-observable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", @@ -2606,9 +2649,9 @@ } }, "freesewing": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/freesewing/-/freesewing-0.23.1.tgz", - "integrity": "sha512-LRqcat01NXkxs069liPPMv6CD+wgE781oosDB6sUjR6e/LuFfLRzuY/w+LGORvqrD/mVDjGY2iClfYRov03lww==", + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/freesewing/-/freesewing-0.26.1.tgz", + "integrity": "sha512-j6y7JuM+n3vyKwBPkEYOjpXc4QoU0cBcHDQTaWBi/YXITrIvi2zYcbTW6xwGnQcohBjNDb3feqZSgGhf4dB/xw==", "requires": { "bezier-js": "^2.2.15", "bin-pack": "1.0.2" diff --git a/packages/pattern-bundle/package.json b/packages/pattern-bundle/package.json index 7025e26e8b9..9b73264eabd 100644 --- a/packages/pattern-bundle/package.json +++ b/packages/pattern-bundle/package.json @@ -45,11 +45,12 @@ ] }, "dependencies": { - "@freesewing/aaron": "0.7.1", - "@freesewing/brian": "^0.18.1", - "@freesewing/bruce": "0.4.0", - "@freesewing/cathrin": "0.3.0", - "@freesewing/hugo": "0.2.2" + "@freesewing/aaron": "0.10.1", + "@freesewing/brian": "^0.22.1", + "@freesewing/bruce": "0.5.1", + "@freesewing/cathrin": "0.4.1", + "@freesewing/hugo": "0.4.1", + "@freesewing/simon": "0.1.0" }, "devDependencies": { "@babel/core": "7.0.0-beta.56", diff --git a/packages/pattern-bundle/src/index.js b/packages/pattern-bundle/src/index.js index 51383ccbfa9..13f155f8635 100644 --- a/packages/pattern-bundle/src/index.js +++ b/packages/pattern-bundle/src/index.js @@ -3,6 +3,7 @@ import Brian from "@freesewing/brian"; import Bruce from "@freesewing/bruce"; import Cathrin from "@freesewing/cathrin"; import Hugo from "@freesewing/hugo"; +import Simon from "@freesewing/simon"; import info from "./info"; const capitalize = string => string.charAt(0).toUpperCase() + string.slice(1); @@ -13,7 +14,8 @@ export const patterns = { Brian, Bruce, Cathrin, - Hugo + Hugo, + Simon }; export const patternList = Object.keys(patterns).map(p => uncapitalize(p)); diff --git a/packages/pattern-bundle/src/info/index.js b/packages/pattern-bundle/src/info/index.js index b9e995547a6..80dd48d3059 100644 --- a/packages/pattern-bundle/src/info/index.js +++ b/packages/pattern-bundle/src/info/index.js @@ -3,11 +3,13 @@ import brian from "./brian"; import bruce from "./bruce"; import cathrin from "./cathrin"; import hugo from "./hugo"; +import simon from "./hugo"; export default { aaron, brian, bruce, cathrin, - hugo + hugo, + simon }; diff --git a/packages/pattern-bundle/src/info/simon.js b/packages/pattern-bundle/src/info/simon.js new file mode 100644 index 00000000000..857222fd8b9 --- /dev/null +++ b/packages/pattern-bundle/src/info/simon.js @@ -0,0 +1,108 @@ +export default { + name: "simon", + design: "Joost De Cock", + code: "Joost De Cock", + department: "menswear", + type: "block", + difficulty: 4, + tags: ["top", "shirt"], + parts: [ + "cuff", + "sleevePlacketOverlap", + "sleevePlacketUnderlap", + "collar", + "collarStand", + "frontRight", + "frontLeft", + "buttonPlacket", + "butonholePlacket", + "yoke", + "sleeve" + ], + optionGroups: { + fit: [ + "chestEase", + "collarEase", + "bicepsEase", + "cuffEase", + "shoulderEase", + "lengthBonus", + "sleeveLengthBonus", + "waistEase", + "hipsEase", + "collarEase", + "yokeDart" + ], + style: [ + "splitYoke", + "hemStyle", + "hemCurve", + { + closure: [ + "extraTopButton", + "buttons", + "buttonPlacketType", + "buttonPlacketStyle", + "buttonholePlacketType", + "buttonholePlacketStyle", + "buttonPlacketWidth", + "buttonholePlacketWidth", + "buttonholePlacketFoldWidth", + "buttonFreeLength" + ] + }, + { + cuffs: [ + "cuffStyle", + "barrelcuffNarrowButton", + "cuffButtonRows", + "sleevePlacketWidth", + "sleevePlacketLength", + "cuffDrape", + "cuffLength" + ] + }, + { + collar: [ + "collarAngle", + "collarStandBend", + "collarStandCurve", + "collarFlare", + "collarStandWidth", + "collarBend", + "collarGap", + "collarRoll" + ] + } + ], + advanced: [ + "acrossBackFactor", + "armholeDepthFactor", + "backNeckCutout", + "frontArmholeDeeper", + "shoulderSlopeReduction", + "sleeveWidthGuarantee", + { + sleevecap: [ + "sleevecapEase", + "sleevecapBackFactorX", + "sleevecapBackFactorY", + "sleevecapFrontFactorX", + "sleevecapFrontFactorY", + "sleevecapQ1Offset", + "sleevecapQ2Offset", + "sleevecapQ3Offset", + "sleevecapQ4Offset", + "sleevecapQ1Spread1", + "sleevecapQ1Spread2", + "sleevecapQ2Spread1", + "sleevecapQ2Spread2", + "sleevecapQ3Spread1", + "sleevecapQ3Spread2", + "sleevecapQ4Spread1", + "sleevecapQ4Spread2" + ] + } + ] + } +};